El primer punto para estar de acuerdo con la hipótesis que sugiere es que nginx es un servidor web controlado por eventos. Como tal, el flujo de trabajo de procesamiento de solicitudes es reactivo al trabajo real que el SO subyacente está listo para atender en nombre del servidor nginx. Reacciona a eventos discretos del sistema operativo.
Para el contexto: http://stackoverflow.com/questio…
Ahora, esto se opone a otras arquitecturas y modelos de servidores web, como los basados en hilos o restringidos por el perfil de ejecución de la aplicación / servidor web, como la bifurcación, etc.
- ¿Cuál es la mayor cantidad de máquinas virtuales que ha visto en un servidor host o en el host?
- Cómo configurar una base de datos para el servidor de mi sitio web que se puede escalar
- ¿Cuál es la razón para continuar manteniendo las imágenes de Facebook eliminadas por el usuario en los servidores FB?
- ¿Hay algún servidor de chat XMPP que admita el historial de chat como gmail [Detalles a continuación]?
- ¿Por qué los servidores del gobierno son lentos e incapaces de manejar el tráfico pesado?
Una aplicación basada en eventos es realmente buena para permitir que la solicitud progrese a través de la pila de aplicaciones / procesos cuando el flujo de solicitud subyacente se desencadena para que proceda por eventos (por ejemplo, recibí una respuesta de una base de datos ascendente, el archivo estático que me pidieron la carga está lista para leer). Prácticamente puedes mapear eventos en este caso a interrupciones por el sistema operativo.
Debido a que todos los sistemas operativos modernos son bastante expertos en la programación de los recursos del sistema operativo para las aplicaciones que se ejecutan sobre ellos, generalmente puede abdicar una gran cantidad de problemas de gestión de recursos en torno a la memoria, el cambio de contexto y la contención de acceso a archivos, etc., al sistema operativo. Por lo tanto, pueden omitir otras alternativas responsables de aplicaciones pesadas como subprocesos y los mecanismos de sincronización asociados como bloqueos, semáforos y cosas que realmente significan que la aplicación está inactiva y esperando la pista para continuar con la solicitud del servidor web.
En pocas palabras, los servidores controlados por eventos como nginx, tornado o lighttpd no tienen que esperar / dormir y reservar recursos para atender las solicitudes de sus clientes.
Por último, ¿puedo llamar su atención sobre otras opciones como el barniz para la publicación de contenido estático puro?