- Es un servidor web de código abierto, rápido, liviano y de alto rendimiento que se puede utilizar para servir archivos estáticos.
- NGINX ha sido considerado como el servidor web popular detrás del servidor web Apache y del IIS de Microsoft.
- En su versión inicial, NGINX funcionaba para servicio web HTTP. Hoy en día, sin embargo, también sirve como servidor proxy inverso para los protocolos HTTP, HTTPS, SMTP, IMAP, POP3; por otro lado, también se utiliza para el balanceador de carga HTTP, caché HTTP y proxy de correo electrónico para IMAP, POP3 y SMTP.
- NGINX mejora la entrega de contenidos y aplicaciones, mejora la seguridad y facilita la escalabilidad y disponibilidad para los sitios web más concurridos de Internet.
- En resumen, podemos decir que Nginx es solo un tipo de software que se utiliza en servidores web para atender solicitudes simultáneas.
- Anteriormente solíamos instalar Apache en servidores web para manejar estas funciones, pero a medida que el mundo, al crecer y demandar más cosas a la vez, llega al mundo el término concurrencia y se lanza nginx para lo mismo.
- Nginx fue creado por Igor Sysoev, con su 1callecomunicado público en octubre de 2004 como un intento de responder a la problema c10k . Donde C10k es el desafío de gestionar 10.000 conexiones al mismo tiempo. Hoy en día hay aún más conexiones que los servidores web tienen que manejar. Por esta razón, nginx ofrece una arquitectura asincrónica y basada en eventos. Esta característica convierte a nginx en el servidor más confiable en cuanto a escalabilidad y velocidad.
- Algunas empresas de alto perfil que utilizan Nginx incluyen IBM, Google, Atlassian, Autodesk, GitLab, DuckDuckGo, T-Mobile, Microsoft, Adobe, Salesforce, VMware, LinkedIn, Cisco, Twitter, Apple, Intel, Facebook y muchas más.
¿Por qué utilizar NGINX?
NGINX proporciona varios servicios, como proxy inverso, equilibrador de carga y servicios de red con límite de velocidad. El proxy inverso es útil si tenemos varios servicios web escuchando en varios puertos y necesitamos un único punto final público para redirigir las solicitudes internamente. Esto nos permitiría alojar varios nombres de dominio en el puerto 80 mientras usamos una combinación de diferentes NodeJ, Go y Java para impulsar servicios web separados detrás de escena.
Nginx puede manejar el registro, las listas negras, el equilibrio de carga y el servicio de archivos estáticos mientras los servicios web se centran en lo que deben hacer.
La configuración de Nginx es más sencilla que la de Apache httpd. Nginx fue diseñado para alta concurrencia y es muy rápido.
¿Cómo funciona NGINX?
Antes de conocer el proceso de NGINX, echemos un vistazo a cómo funciona un servidor web. Cuando solicitamos abrir una página web, el navegador contacta con el servidor. Luego, el servidor busca los archivos solicitados para la página y los envía al navegador. Este es el único tipo de trabajo más sencillo para una solicitud.
El ejemplo anterior también se considera como un hilo único. Tradicionalmente, los servidores web como Apache crean un único hilo para cada solicitud, pero Nginx no funciona de esa manera. Nginx funciona con una arquitectura asincrónica basada en eventos. Sigue inteligentemente los eventos de un proceso.
Nginx dividió su trabajo en proceso de trabajo y conexiones de trabajadores . Aquí, las conexiones de los trabajadores se utilizan para gestionar la solicitud realizada y la respuesta obtenida por los usuarios en el servidor web; al mismo tiempo, estas solicitudes se pasan a su proceso principal, que se denomina proceso de trabajo.
Veamos un ejemplo de un servidor Nginx que maneja solicitudes simultáneas de archivos MP3 y MP4: -
En el diagrama anterior, podemos ver que una sola conexión de trabajador puede manejar alrededor de 1024 conexiones a la vez. Es la mejor capacidad de una conexión laboral. Puede haber 'n' números del proceso de trabajo en Nginx según el tipo de servidor que tengamos y cada proceso de trabajo maneja diferentes trabajos para que pueda manejar más cantidades de solicitudes simultáneas.
Finalmente, el proceso de trabajo transfiere las solicitudes al proceso maestro de Nginx, que responde directamente únicamente a las solicitudes únicas.
Dado que la conexión del trabajador puede atender hasta 1024 solicitudes similares. Por eso, Nginx puede manejar miles de solicitudes sin ninguna dificultad. También es la razón por la que Nginx se convirtió en un excelente servidor para sitios web ocupados como el comercio electrónico, los motores de búsqueda y el almacenamiento en la nube.
Características de NGINX
Algunas características de Nginx son las siguientes:
- Proxy inverso con almacenamiento en caché
- IPv6
- Balanceo de carga
- Enchufes web
- Manejo de archivos estáticos, archivos indexados e indexación automática
- Soporte FastCGI con almacenamiento en caché
- Reescritura y redirección de URL
¿Qué pueden hacer NGINX y NGINX Plus por usted?
Nginx y Nginx plus son los mejores servidores web y soluciones de entrega de aplicaciones utilizados por sitios web de alto tráfico como Netflix, Dropbox y Zynga. Los sitios web más concurridos como Google, Netflix, Twitter, Facebook, etc. confían en Nginx y Nginx Plus para entregar su contenido de forma segura, confiable y rápida.
- Nginx hace que los balanceadores de carga de hardware queden obsoletos: Nginx es de código abierto, menos costoso y más configurable que los balanceadores de carga de hardware, y está diseñado para arquitecturas de nube modernas.
Nginx plus brinda soporte para la reconfiguración sobre la marcha y se integra con herramientas modernas de DevOps para facilitar el monitoreo. - NNginx es una herramienta multifunción: con el uso de Nginx, podemos usar la misma herramienta que nuestro equilibrador de carga, caché de contenido, proxy inverso y servidor web. Minimiza la cantidad de herramientas que la configuración de nuestra organización necesita mantener.
Nginx Plus incluye la respuesta rápida al servicio de atención al cliente, por lo que podemos obtener ayuda fácilmente para diagnosticar cualquier parte de nuestra pila que utilice Nginx Plus y Nginx. - NGINX sigue evolucionando. Durante la última década, NGINX ha estado a la vanguardia del desarrollo de la Web moderna y ha ayudado a liderar el camino en todo, desde HTTP/2 hasta el soporte de microservicios.
A medida que el desarrollo y la entrega de aplicaciones web continúan evolucionando, NGINX Plus agrega continuamente funciones para permitir una entrega impecable de aplicaciones.