Una opción muy popular para ejecutar aplicaciones web Perl en estos días parece estar detrás de un servidor web nginx enviando solicitudes a un daemon FastCGI o un servidor web habilitado para PSGI (por ejemplo, Starman) .nginx y Perl: FastCGI vs proxy inverso (PSGI/Starman)
Ha habido un montón de pregunta de por qué se podría hacer esto en general (por ejemplo Why use nginx with Catalyst/Plack/Starman?) y las respuestas parecen aplicar en ambos casos (por ejemplo, permitir que nginx para servir contenido estático, fácil reinicio del servidor de aplicaciones, balanceo de carga , etc.)
Sin embargo, estoy especialmente interesado en los pros/contras de usar FastCGI frente a un enfoque de proxy inverso. Parece que Starman es ampliamente considerado como el servidor web/aplicación Perl PSGI más rápido y mejor que existe, y estoy luchando para ver las ventajas de usar FastCGI en absoluto. Ambos enfoques parecen apoyar:
- sockets de dominio UNIX aswell como sockets TCP
- servidores del Gestor de estilos tenedor/proceso Aswell como servidores no bloqueantes basadas en eventos (por ejemplo AnyEvent).
- señal de manipulación/reinicio agraciado
- PSGI
Del mismo modo, la configuración nginx para cualquiera de las opciones es muy similar.
¿Por qué elegiría uno sobre el otro?
original dirección IP del cliente se pasa se pasa X-reenviado-For cabecera y el encabezado de host original en X-Forwarded- Cabecera de host, por lo que las dos primeras desventajas no son importantes. – marpetr
+1 gracias por la comparación. Como uno puede ejecutar un proceso maestro para administrar procesos e hilos de fondo, el punto 3 no es un problema. Has planteado un punto interesante con respecto a Zope y la forma de conocer la IP del cliente original y el nombre de host para construir URL válidas – Viet