¿Qué es Nginx y cómo funciona?
Nginx es un servidor web que también puede ser usado como proxy inverso, balanceador de carga y proxy para protocolos de correo.
Además de otras tareas, los servidores web son los encargados de la entrega de aplicaciones web, respondiendo a peticiones HTTPS realizadas por usuarios, normalmente desde un navegador web.
El proyecto nginx se empieza a distribuir en 2004 desarrollado Igor Sysoev, enfocado a obtener una alta concurrencia y un uso reducido de memoria.
Fue creado para solucionar las principales limitaciones de rendimiento de Apache, por ejemplo el llamado problema c10k que se produce a partir de 10.000 conexiones simultáneas a una web.
Actualmente Nginx tiene el 20% de la cuota de mercado de servidores web.
Su excelente rendimiento en proyectos web con muchas visitas simultáneas o concurrentes a la hora de servir sobre todo contenido estático, lo ha llevado a ser el software de servidor web más usado en la actualidad, saliendo ganador en comparativas de rendimiento respecto de otros servidores web.
Cómo funciona Nginx
El funcionamiento base de Nginx es similar al de otros servidores web, en el que un usuario realiza una petición a través del navegador al servidor, y este le envía la información solicitada al navegador.
Lo que hace diferente a Nginx es su arquitectura a la hora de manejar procesos, ya que otros servidores web como Apache crean un hilo por cada solicitud.
Es decir, cada vez que un usuario haga una petición al servidor, por ejemplo entrando en la web, se creará un hilo nuevo.
Nginx funciona de una forma más eficiente gracias a la arquitectura asíncrona basada en eventos, en la que en vez de crear un hilo por cada petición, lo gestiona todo bajo el mismo proceso de trabajo donde se gestionan los diferentes hilos.
Este hilo o proceso de nginx contiene varios microprocesos o llamadas de trabajo. Esto se traduce en un mejor rendimiento de Nginx frente Apache sobre todo en consumo de memoria.
Nginx vs Apache
La principal diferencia entre Nginx y Apache está en su arquitectura. Como comentamos anteriormente Nginx puede manejar múltiples solicitudes en un solo hilo mientras que apache creará un hilo para cada solicitud.
De todas maneras, no todo son ventajas en el uso de nginx frente Apache. Nginx por ejemplo no admite el archivo .htaccess para configuraciones de la aplicación web. Sería necesario hacer estas modificaciones a nivel de servidor.
Esto implica que a la hora de usar aplicaciones web como WordPress sea necesario realizar configuraciones adicionales en el servidor para su correcto funcionamiento.
Para evitar este problema de compatibilidad de las aplicaciones web con Nginx en Webempresa usamos una combinación de Nginx y Apache.
Esto permite aprovechar la velocidad de Nginx para servir los archivos estáticos y la compatibilidad de Apache con los principales CMS.
Cómo saber si mi web usa Nginx
Tenemos diferentes herramientas para saber si nuestra web usa o no Nginx, como por ejemplo Pingdom o el inspector de elementos de tu navegador.
Si quieres consultar quién sirve los distintos elementos de tu web puedes usar GTMetrix:
En Webempresa por defecto usamos Apache como servidor Web y Nginx como proxy inverso + Varnish (Magic Cache si tu plan lo tiene incluido) lo que, añadido al resto de configuraciones personalizadas de nuestros servidores, te permiten conseguir una velocidad de carga óptima para tu proyecto Web.