¿Por qué es nginx mejor que Apache para servir contenido estático?

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.

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?

Nota: No hago mucha configuración de servidor, esto es puramente de mi experimentación amateur.

Apache tiene muchos módulos y debe configurarse con mucho cuidado para que sea eficiente en el servicio de imágenes estáticas correctamente. Nginx, por otro lado, tiene recetas muy fáciles de implementar y no proporciona la misma sobrecarga que Apache hace de fábrica.

Apache, cuando se usa solo, tiende a configurarse para hacer más de una cosa (por ejemplo, servir contenido dinámico y estático), mientras que el contenido dinámico de nginx reverse-proxy a un servidor de aplicaciones.

More Interesting

¿Cuáles son algunas buenas sugerencias para apilar computadoras portátiles en una matriz de servidores?

¿Cómo sirve Netflix para ofrecer videos de alta resolución a tanta gente?

Servidores: ¿Cuál es la diferencia de rendimiento entre SSD SAS y SSD SATA?

¿Quiénes son los principales fabricantes / vendedores de servidores en el mundo?

¿Es posible ejecutar un código Python desde un servidor como GoDaddy?

¿Qué sistema operativo de servidor se usa principalmente en el mercado empresarial?

¿Cómo se ve una solicitud HTTP?

¿Cómo llegan las solicitudes y respuestas en Internet del cliente al servidor y viceversa?

¿Cuál es la diferencia entre host y servidor en términos de redes de computadoras?

¿Cuál es la cantidad promedio de RAM tomada por apache2 + django + mod_wsgi?

Cómo usar el comando sudo su -l: estoy conectado como [correo electrónico protegido] en un servidor y quiero cambiar a user2. Cuando escribo [ [correo electrónico protegido] ] sudo su -l user2, me pide una contraseña y dice que no tengo acceso para hacer sudo

¿Cuál es la arquitectura del servidor de WhatsApp?

Si se considera que Linux es un sistema operativo de código abierto, ¿cómo podría ser un servidor de sistema operativo seguro utilizado por las empresas de alojamiento de Internet?

¿Qué son exactamente los servidores y las bases de datos en términos de programación?

¿Hay algo como wamp / mamp que me ayude a ejecutar un servidor virtual en la nube en mi computadora?