it-swarm-es.com

PHP: ¿Cuáles son las ventajas de FastCGI sobre mod_php?

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.

30
cletus

Usando mod_php cada trabajador de Apache tiene todo el intérprete PHP cargado). Debido a que Apache necesita un proceso de trabajador por solicitud entrante, puede terminar rápidamente con cientos de trabajadores de Apache en uso, cada uno con su propio PHP intérprete cargado, que consume grandes cantidades de memoria.

(Tenga en cuenta que esto no es exactamente cierto, Apache's worker_mpm le 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 sospechas de problemas de subprocesos con las extensiones PHP).

Al usar PHP en modo fast_cgi (usando algo como spawn-fcgi del paquete lighttpd) tiene los siguientes beneficios

  • ajuste el número de PHP trabajadores por separado del número de conexiones entrantes
  • le permite ponerle trabajadores PHP trabajadores en un servidor diferente, o escalar a través de muchos servidores sin cambiar su nivel web
  • le brinda flexibilidad para elegir un servidor web diferente, como nginx o lighttpd
  • le permite ejecutar su aplicación PHP en un dominio de seguridad diferente en su servidor web
37
Dave Cheney

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.

5
pjz

Otra ventaja aún no mencionada 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.

4
Martin C.