NGINX

NGINX

Información
Creador Igor Sysoev y Maxim Konovalov ( d )
Desarrollado por NGINX, Inc. ( en ) e Igor Sysoev
Primera versión 4 de octubre de 2004
Última versión 1.21.0 (25 de mayo de 2021)
Versión avanzada 1.19.1 (7 de julio de 2020)
1.19.2 (11 de agosto de 2020)
1,19,0 (26 de mayo de 2020)
1,19,3 (29 de septiembre de 2020)
1,19,4 (28 de octubre de 2020)
1,19,5 (24 de noviembre de 2020)
1,19,6 (15 de diciembre de 2020)
1,19,7 (16 de febrero de 2021)
1,19,8 (9 de marzo de 2021)
1,19,9 (30 de marzo de 2021)
Depositar hg.nginx.org/nginx y github.com/nginx/nginx
Escrito en VS
Sistema de explotación Escriba Unix y Microsoft Windows
Leer formatos Certificado codificado PEM ( d ) , clave privada RSA codificada PEM ( d ) y sitios Nginx disponibles ( d )
Tipo Agente de servidor web
Política de distribución software libre
Licencia BSD 2-cláusulas ( d )
Sitio web nginx.org

NGINX open source o NGINX (pronunciado [ˌɛndʒɪnɛks] y también escrito Nginx o nginx ) es un software gratuito para Web Server (o HTTP ) y un proxy inverso escrito por Igor Sysoev , cuyo desarrollo comenzó en 2002 con el propósito de 'un sitio ruso con muy alto tráfico ( Rambler ). La documentación está disponible en varios idiomas. Ha sido desdeabril de 2019, el servidor web más utilizado del mundo según Netcraft , o el segundo servidor más utilizado según W3techs.

NGINX Inc fue adquirida por F5 Networks el11 de marzo de 2019, por $ 670 millones.

Sus fuentes están disponibles bajo una licencia tipo BSD .

Particularidades

Servidor asincrónico

NGINX es un sistema asíncrono a diferencia de los servidores síncronos donde cada solicitud es manejada por un proceso dedicado. En lugar de explotar una arquitectura paralela y la multiplexación de tareas por división de tiempo por parte del sistema operativo, NGINX usa cambios de estado para administrar múltiples conexiones al mismo tiempo; el procesamiento de cada solicitud se divide en numerosas minitareas y, por lo tanto, permite lograr una multiplexación eficiente entre las conexiones. Para aprovechar las ventajas de las computadoras multiprocesador, se pueden iniciar varios procesos. Esta elección de arquitectura conduce a un rendimiento muy alto, así como a un consumo de memoria y carga mucho menor que los servidores HTTP convencionales como Apache .

Modularidad

NGINX es muy modular: un kernel mínimo y muchos módulos, complementando las funciones básicas. Cada módulo puede actuar como un filtro en la entrada, salida o contenido intermedio (proxy) a través de numerosas devoluciones de llamada . Así, a modo de ejemplo, el contenido dinámico se puede comprimir sobre la marcha mediante el módulo "  gzip  " antes de enviarlo.

Estos módulos están vinculados al servidor durante la compilación. NGINX no admite bibliotecas dinámicas compartidas. Tengine , la bifurcación NGINX de Taobao, agregó esta característica, que no se transfirió a NGINX.

Optimizaciones

El kernel se basa en estructuras de datos mínimas, pero óptimas, destinadas a reducir la cantidad de llamadas al sistema, especialmente para todo lo que tiene que ver con la asignación de memoria. Se pueden utilizar diferentes mecanismos de señalización para aprovechar al máximo el sistema operativo (por ejemplo: epoll en Linux y kqueue en BSD ). La arquitectura asincrónica alivia el programador del sistema operativo y promueve el uso de cachés o procesadores.

Diverso

Un proceso maestro controla el proceso o los procesos del servidor. Esto permite cambios de configuración o actualización del archivo ejecutable del servidor sin interrumpir el servicio HTTP.

Plataformas compatibles

NGINX se ejecuta en los sistemas operativos GNU / Linux , BSD , Mac OS X y Solaris  ; Desde la versión avanzada 0.7.52, NGINX también está disponible para Microsoft Windows .

Usos

Además de ser un servidor HTTP, NGINX se puede configurar para que sea un proxy inverso (en inglés  : proxy inverso ) Web y servidor proxy de correo electrónico ( IMAP / POP3 ). El uso más frecuente de NGINX es configurarlo como un servidor web clásico para servir archivos estáticos y como un proxy para solicitudes dinámicas que normalmente se enrutan mediante una interfaz FastCGI a uno o más servidores de aplicaciones con un mecanismo de equilibrio de carga .

NGINX también puede transmitir, según el mismo principio que lighttpd con mod_flv_streaming , contenido de video en modo de transmisión ( streaming) a un reproductor Flash sin tener que recurrir a Flash Media Server. Para esto, tiene un http_glv_module opcional para transmitir archivos de video flv y varios módulos de transmisión que pueden transmitir video codificado en H.264 . También le permite transmitir mp4 gracias a su módulo http_mp4_module opcional .

También se usa ampliamente en producción para servir aplicaciones Ruby on Rails gracias al módulo Phusion Passenger . La mayoría de los sitios de Ruby on Rails con mucho tráfico utilizan NGINX (por ejemplo, basecamp o LinuxFr.org ).

Popularidad

NGINX era poco conocido, excepto en Rusia , antes de que Aleksandar Lazic comenzara la traducción al inglés en 2006.

Notas y referencias

  1. "  http://nginx.org/ru/CHANGES.ru  "
  2. Versión 1.21.0  " ,25 de mayo de 2021(consultado el 21 de junio de 2021 )
  3. "  https://nginx.org/en/CHANGES  " (Consultado el 8 de julio de 2020 )
  4. Versión 1.19.1  " ,7 de julio de 2020(consultado el 22 de agosto de 2020 )
  5. "  https://nginx.org/en/CHANGES  " (Consultado el 16 de agosto de 2020 )
  6. Versión 1.19.2  " ,11 de agosto de 2020(consultado el 22 de agosto de 2020 )
  7. Versión 1.19.0  " ,26 de mayo de 2020(consultado el 22 de agosto de 2020 )
  8. Versión 1.19.3  " ,29 de septiembre de 2020(consultado el 21 de octubre de 2020 )
  9. Versión 1.19.4  " ,27 de septiembre de 2020(consultado el 10 de noviembre de 2020 )
  10. Release 1.19.5  " ,24 de noviembre de 2020(consultado el 20 de diciembre de 2020 )
  11. Release 1.19.6  " ,15 de diciembre de 2020(consultado el 20 de diciembre de 2020 )
  12. Release 1.19.7  " ,16 de febrero de 2021(consultado el 18 de febrero de 2021 )
  13. release-1.19.8  " (consultado el 11 de marzo de 2021 )
  14. release-1.19.9  " (consultado el 9 de abril de 2021 )
  15. (en-US) “  NGINX | Balanceador de carga de alto rendimiento, servidor web y proxy inverso  ” , en NGINX (consultado el 28 de septiembre de 2018 )
  16. (en) "  de abril de 2019 Encuesta de servidor Web  " , en Netcraft ,22 de abril de 2019
  17. "  Estadísticas de uso y participación de mercado de servidores web, marzo de 2020  " , en w3techs.com (consultado el 4 de marzo de 2020 )
  18. (in) "  Dynamic Module Loading Support (DSO)  " , tengine.taobao.org (consultado el 20 de agosto de 2014 )
  19. Arquitectura de LinuxFr.org , vigente desde febrero de 2011
  20. (en) "  Software de servidor web y malware  " en Googleonlinesecurity.blogspot.com ,5 de junio de 2007
  21. (en) "  Encuesta sobre servidores web de diciembre de 2008  " en Netcraft
  22. (En) "  Encuesta de servidores web de marzo de 2009  " en Netcraft ,15 de marzo de 2009
  23. (en) "  Encuesta sobre servidores web de noviembre de 2010  " en Netcraft ,5 de noviembre de 2010
  24. (en) "  Encuesta sobre servidores web de julio de 2011  " en Netcraft ,8 de julio de 2011
  25. (in) "  El servidor web ruso de primer nivel Nginx recauda $ 3 millones de fondos rusos e internacionales  " , en East-West Digital News ,13 de octubre de 2011(consultado el 29 de septiembre de 2019 )
  26. (en) "  Encuesta sobre servidores web de enero de 2012  " en Netcraft ,3 de junio de 2012
  27. (en) "  Encuesta de servidores web de abril de 2013  " en Netcraft ,2 de abril de 2013
  28. (en) "  Encuesta sobre servidores web de mayo de 2015  " en Netcraft ,19 de mayo de 2015
  29. (en) "  Encuesta de servidores web de abril de 2016  " en Netcraft ,21 de abril de 2016
  30. (en) "  Encuesta de servidores web de diciembre de 2018  " en Netcraft ,17 de diciembre de 2018

Ver también

enlaces externos