Pregunta

Estoy tratando de desplegar mi pequeña aplicación web utilizando catalizador Plack / Starman. Toda la documentación parece sugerir que quiero usar esto en combinación con nginx. ¿Cuáles son los beneficios de esto? ¿Por qué no usar Starman hacia arriba en el puerto 80?

¿Fue útil?

Solución

No tiene por qué ser nginx en particular, pero quiere algún tipo de servidor anticipado proxy al servidor de aplicaciones por varias razones:

  1. Para que pueda ejecutar el servidor de catalizador en un puerto alto, como un usuario normal, mientras se ejecuta el servidor anticipado en el puerto 80.

  2. Para servir archivos estáticos (recursos ordinarios como imágenes, JS y CSS, así como cualquier tipo de descargas es posible que desee utilizar X-Sendfile o X-Accel-redirección con) sin ocupar un proceso Perl durante la duración de la descarga.

  3. Hace las cosas más fáciles si quiere pasar a una configuración más complicada que implica, por ejemplo, Incluye borde lateral, o que tengan el servidor web sirve directamente de MogileFS memcached o ambas cosas (que nginx puede hacer), o un / HA config.

  4. balanceo de carga

Otros consejos

hice esta pregunta en #plack y obtuvo la siguiente respuesta de @nothingmuch (I agregado formato):

Con nginx puede configurar loadbalancing / conmutación por error de tipo cosas. Si el sitio es pequeño / fácil que podría ser un exceso.

No sé de cualquier Starman podría tener desventajas. Tal vez si tiene muchos accesos a archivos estáticos nginx utilizarían menos CPU / memoria para manejarlos, pero es poco probable que sea significativo en una aplicación web típica. fuerzas grandes descargas atar los trabajadores Starman de archivo estático descargas sin embargo. (Tal vez no, con sendfile.) Eso es todo lo que pueda pensar en.

... configuración de conmutación por error Una lata bueno si quieres hacer mejoras sin tiempo de inactividad. ( "Fail" el viejo versión.)

Otra razón es que un servidor anticipado ligero (incluso Apache está bien) consume mucha menos memoria por conexión de un proceso típico Starman (un par de decenas vs. MB o más de 100 MB). Dado que una conexión está abierta desde hace algún tiempo, especialmente si usted desea utilizar conexiones de mantenimiento de conexión, puede soportar un gran número de conexiones simultáneas con mucha menos memoria RAM. Sólo asegúrese de que el tamaño del búfer del servidor proxy interfaz es lo suficientemente grande como para cargar una respuesta HTTP típico de inmediato desde el servidor. A continuación, el servidor es libre para procesar la siguiente solicitud.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top