Los servidores de los piratas informáticos Chris Fidao hablaron ampliamente sobre esto en un reciente horario de oficina de Codementor Nginx.
Tanto Nginx como Apache tienen la misma funcionalidad y son excelentes con contenido estático, pero tienen una gestión de procesos diferente.
TL; DR: Nginx es más eficiente y, por lo tanto, mejor que Apache si está buscando escalar su aplicación web en el futuro.
- Cómo implementar un sistema de carga usando AngularJs y Django Rest Framework
- Cómo crear una página de inicio de sesión y registro para administrador y usuario en asp.net
- ¿Cuántos botones CTA debo poner en una página de inicio? ¿Hay alguna investigación al respecto? Quiero saber si hay alguna mejor práctica.
- ¿Cuáles son algunos buenos proyectos HTML5 con CSS3 y JavaScript?
- ¿Cuáles son los mejores cursos de desarrollo web en línea?
De forma predeterminada, Apache genera procesos para cada solicitud web en cada conexión web, y después de que maneja y responde al proceso, el proceso se elimina. Apache creará un nuevo proceso para la próxima solicitud y así sucesivamente. Sin embargo, la forma en que se manejan los procesos en Apache tendrá una gran sobrecarga, lo que significa que será un uso intensivo de la CPU, ya que tener un gran número de procesos es algo muy pesado para un servidor. Aunque un servidor típico tiene mucha RAM que puede manejar muchos procesos, tener demasiados procesos puede afectar negativamente el tráfico y la conexión.
A diferencia de Apache, Nginx está diseñado para una alta concurrencia, por lo que puede manejar múltiples solicitudes simultáneas al mismo tiempo. Es casi como un proceso único, ya que hay muy pocos procesos y son de un solo hilo (cuántos procesos tiene dependen de cuántos núcleos tiene su CPU, es decir, una CPU de 4 núcleos tiene 4 procesos). Esto significa que Ngnix es más eficiente, ya que no genera múltiples hilos y se ejecuta en un ciclo de eventos eficiente. Por ejemplo, si tiene que leer un archivo o tener algún tipo de operación de red, Nginx puede hacer otra cosa y procesar otro solicite mientras espera que el otro termine.
En conclusión, a diferencia de Apache, Nginx tendrá pocos procesos pero aún puede manejar muchas solicitudes simultáneas simultáneas debido a su naturaleza síncrona. Nginx maneja archivos estáticos de manera muy eficiente, y a veces es tan rápido como un caché como Varnish.
Fuente: Tutorial de PHP DevOps: Cómo usar Nginx con su aplicación web – Codementor