Recientemente me sugirieron que uso FastCGI con PHP. Ahora fui a la página FastCGI y lo leí, pero realmente no entiendo cuáles son las ventajas.
fuente
Recientemente me sugirieron que uso FastCGI con PHP. Ahora fui a la página FastCGI y lo leí, pero realmente no entiendo cuáles son las ventajas.
Usando mod_php, cada trabajador de Apache tiene todo el intérprete PHP cargado. Debido a que Apache necesita un proceso de trabajo por solicitud entrante, puede terminar rápidamente con cientos de trabajadores de Apache en uso, cada uno con su propio intérprete PHP cargado, que consume grandes cantidades de memoria.
(Tenga en cuenta que esto no es exactamente cierto, Apache le worker_mpm
permite atender muchas solicitudes con un solo trabajador Apache con subprocesos. Sin embargo, incluso en 2009, esta no es la forma recomendada de implementar PHP debido a problemas sospechosos de subprocesamiento con las extensiones PHP).
Al usar PHP en modo fast_cgi (usando algo como spawn-fcgi del paquete lighttpd) tiene los siguientes beneficios
FastCGI significa que los bits php no se están ejecutando en el mismo proceso que los bits apache, a diferencia de mod_php. Esta separación puede tener algunas ventajas definitivas cuando se trata de reiniciar el servidor o tratar con aplicaciones fuera de control: en el caso de mod_php eso significa que es el proceso de apache el que está "fuera de control", pero bajo fastcgi es solo un proceso con el que apache está hablando, así que No es necesario desmontar todo el servidor.
Otra ventaja que aún no se menciona es el hecho de que con mod_fcgid
(que es una implementación más nueva para usar FastCGI en Apache) y suexec puede realizar configuraciones donde diferentes vhosts usan diferentes usuarios de Linux para la ejecución, lo que puede ser un beneficio de seguridad real en un escenario de alojamiento compartido .
Con mod_php, todos los vhosts comparten el mismo usuario, que es el usuario de Apache. Esto puede conducir a problemas de seguridad.