apache - sirve - ¿Qué es exactamente un modelo de servidor web precargado?
servidor web pdf (1)
Quiero saber qué significa exactamente cuando un servidor web se describe a sí mismo como un servidor web precargado. Tengo algunos ejemplos como unicorn para rubí y gunicorn para pitón.
Más específicamente, estas son las preguntas:
- ¿Qué problema resuelve este modelo?
- ¿Qué sucede cuando se inicia inicialmente un servidor web de precarga?
- ¿Cómo maneja la solicitud?
Además, una pregunta más específica para unicornio / gunicornio:
Digamos que tengo una aplicación web que quiero ejecutar con (g) unicornio. En la inicialización, la aplicación web hará algunas cosas de inicialización (por ejemplo, completar entradas adicionales de la base de datos). Si configuro (g) unicornio con varios trabajadores, ¿las cosas de inicialización se ejecutarán varias veces?
El preentrelazado básicamente significa que un maestro crea horquillas que manejan cada solicitud. Un tenedor es un proceso * nix completamente separado.
Actualización según los comentarios a continuación. La
pre
enpre-fork
significa que estos procesos se bifurcan antes de que entre una solicitud. Sin embargo, por lo general se pueden aumentar o disminuir a medida que la carga sube y baja.
El preentikeamiento se puede usar cuando tiene bibliotecas que NO son seguras para hilos. También significa que los problemas dentro de una solicitud que causen problemas solo afectarán el proceso por el cual son procesados y no el servidor completo.
La inicialización que se ejecuta varias veces depende de lo que está implementando. Por lo general, sin embargo, las agrupaciones de conexiones y cosas de esa naturaleza existirían para cada proceso.
En un modelo de subprocesamiento, el maestro crearía subprocesos más ligeros para enviar solicitudes también. Pero si un hilo provoca problemas masivos, podría tener repercusiones para el proceso maestro.
Con herramientas como Nginx, Apache 2.4''s Event MPM o gevent (que se pueden usar con Gunicorn), estos son asincrónicos, lo que significa que un proceso puede manejar cientos de solicitudes sin bloquear.