¿De qué hablamos cuando nos referimos a Nginx?
Ngnix tiene un largo historial de éxito que ha hecho que sea utilizado para una variedad cada vez mayor de propósitos. Comenzó como un servidor web de código abierto, pero con el tiempo se han ido ampliando sus usos: proxy inverso, caché de HTTP, balanceador de carga, y también como proxy de correo electrónico para IMAP, POP3 y SMTP. Este software —cuya pronunciación en inglés se asemejaría a “Engine-x”— se caracteriza por su capacidad para lidiar con diversidad de conexiones y por su gran velocidad.
Esto explica que plataformas web de la talla de Google, Facebook, Apple, Twitter, Microsoft, Netflix, Adobe, WordPress, y un larguísimo etcétera, se decantan por este servicio debido al gran volumen de tráfico que es capaz de soportar (de hecho, Nginx cuenta nada menos que con el 20% de la cuota de mercado de servidores web). Su creador, Igor Sysoev, que en un principio enfocó el proyecto a obtener una alta concurrencia y un uso reducido de memoria, comenzó a desarrollar su servidor en 2002, aunque no fue hasta 2004 cuando éste se comenzó a distribuir. A la hora de manejar números de conexiones simultáneas elevadas, su rendimiento no tiene parangón, especialmente a la hora de servir contenido estático.
¿Cómo funciona Nginx exáctamente?
Como ya hemos mencionado, el creador del servicio tuvo siempre entre ceja y ceja reducir el uso de memoria a la vez que conseguía una alta concurrencia. Y lo consiguió. Su manera de funcionar es la siguiente: no crea procesos nuevos para cada solicitud web que recibe, sino que utiliza un enfoque asincrónico basado en eventos donde se lidia con las solicitudes en un solo hilo (recordemos que los hilos se refieren a aquello que aparece cada vez que un usuario realiza una petición al servidor; sencillamente entrando al dominio, por ejemplo, surgirá un nuevo hilo).
Ese hilo o proceso incluye varios microprocesos o llamadas de trabajo. Esto se traduce en que los hilos parecidos se gestionan bajo un proceso de trabajo, teniendo cada proceso de trabajo unidades de menor tamaño que llevan el nombre de conexiones de trabajo. Estas unidades son las que se dedican a manejar el hilo de las solicitudes. Las conexiones de trabajo (que puede llegar a atender más de 1000 solicitudes similares), entregan las solicitudes a un proceso de trabajo, que, a su vez, lo enviará a un proceso maestro. Al final, ese proceso maestro suministrará el resultado de las solicitudes correspondientes.
Ventajas e inconvenientes de Nginx
Nginx tiene una capacidad de procesamiento increíble, siendo capaz de hacer frente a miles de solicitudes sin dificultad. Su particular arquitectura, que puede generar variedad de solicitudes en un solo hilo la hace más eficiente que otros servidores. Apache, su principal competidor, por ejemplo, solo es capaz de crear una solicitud por cada hilo (aunque este sí admite archivos .htaccess para configuraciones de la aplicación web, cosa que Nginx no hace).
¿Qué supone esto? Pues que para poder utilizar determinadas plataformas web resulta imprescindible realizar configuraciones extra en el servidor: solo así su funcionamiento será el adecuado. Para evitar problemas de compatibilidad y solucionar este tipo de situaciones, algunas webs utilizan una combinación de servidores (es decir, usan Nginx y Apache simultáneamente alternando sus procesos según sus necesidades). Con ello se logra aprovechar la velocidad y el bajo uso de memoria que aporta Nginx en los archivos estáticos, pero se beneficia de la compatibilidad de Apache con los CMS más importantes.
Reflexiones finales
Los datos de uso de estos softwares arrojan la siguiente conclusión: aunque Apache es la opción genérica con mayor alcance, Nginx es, de facto, el servidor web más utilizado en aquellos sitios web que cuentan con un tráfico elevado.
La capacidad de Nginx de actuar, además de como servidor web, como proxy de correo electrónico, proxy inverso con caché y balanceador de carga, le otorga, además, una funcionalidad adicional en varios campos, ampliando así su atractivo. Su estructura de software permite procesar diversidad de solicitudes a la vez, y es un sistema altamente escalable, que quiere decir que sus servicios crecen a medida que aumenta el tráfico de los sitios web para los que opera.
A pesar de todas estas prestaciones, como casi siempre, la unión hace la fuerza, y, en ocasiones, convendrá utilizar este servidor en combinación con Apache, otro de los grandes del sector. Así lograremos tener todas nuestras necesidades de rendimiento, compatibilidad y soporte al usuario cubiertas en todo momento.
Si deseas obtener más información sobre el servidor NGINX, no dudes en ponerte en contacto con nosotros, nuestro equipo de VADAVO estará encantado de atenderte para resolver todas tus dudas.