nginx (motor x) es un servidor proxy de correo abierto y proxy inverso de una sola fuente, así como un servidor web (HTTP) de alto rendimiento y liviano para Linux, BSD y Windows sistemas operativos. Su desarrollador lo describe como una ventaja para entornos de misión crítica.
Características de un vistazo
Los principales aspectos destacados incluyen el proxy inverso acelerado con almacenamiento en caché, soporte acelerado con almacenamiento en caché de SCGI, FastCGI, uwsgi y servidores de memcached, una arquitectura modular, así como compatibilidad TLS SNI y SSL.
El servidor proxy de correo ofrece soporte para SSL (Secure Sockets Layer), STLS, STARTTLS protocolos encriptados, varios métodos de autenticación para IMAP, POP3 y SMTP, redirección de usuario a servidores POP3 o IMAP, así como autenticación de usuario y redirección de conexión . Entre otras características interesantes, podemos mencionar el soporte para kqueue, sendfile, File AIO, DIRECTIO, accept-filters, y mucho, mucho más.
Puede procesar numerosas inclusiones de SSI al mismo tiempo, dentro de una sola página web, si están controladas por FastCGI o servidores proxy. Además, la parte del servidor HTTP admite la validación de la transmisión HTTP referer, MP4 y FLV, Perl integrado, limitación de la tasa de respuesta, redireccionamiento para los códigos de error 3xx-5xx, así como soporte para conexiones segmentadas y segmentadas.
Servidores tanto de índice como de archivos estáticos
El software puede servir tanto archivos de índice como estáticos, proporciona a los usuarios tolerancia a errores y equilibrio de carga simple, varios filtros como XSLT, gzipping, SSI, transformación de imágenes, respuestas fragmentadas y rangos de bytes.
Debido a que proporciona una configuración fácil, lógica y flexible, varios sitios web conocidos usan el software nginx para ofrecer a sus usuarios información única y de alta calidad. Entre estos, podemos mencionar Wordpress.com, Netflix y FastMail.FM.
Sistemas operativos compatibles
Por el momento, nginx se ha probado con éxito en Linux 2.2-3 (32 bits), Linux 2.6-3 (64 bits), FreeBSD 3-10 (32 bits), FreeBSD 5-10 (64- bit), Solaris 9 (32 bits), Solaris 10 (32 bits y 64 bits), AIX 7.1 (PowerPC), HP-UX 11.31 (IA64), Mac OS X (PowerPC y 32 bits), Windows XP y Windows Server 2003.
Qué hay de nuevo en esta versión:
- Se ha lanzado la versión estable nginx-1.12.0, que incorpora nuevas funciones y correcciones de errores del 1.11. .x mainline branch - incluye soporte de variables y otras mejoras en el módulo de flujo, arreglos HTTP / 2, soporte para múltiples certificados SSL de diferentes tipos, soporte para módulos dinámicos mejorados, y más.
Qué hay de nuevo en la versión:
- Se ha lanzado la versión estable de nginx-1.12.0, incorporando nuevas funciones y correcciones de errores de la rama principal 1.11.x, que incluyen soporte de variables y otras mejoras en el módulo de flujo, arreglos HTTP / 2, soporte para múltiples certificados SSL de diferentes tipos, compatibilidad mejorada de módulos dinámicos, y más.
Qué hay de nuevo en la versión 1.8.1:
- Seguridad: la eliminación de puntero no válida puede producirse durante el proceso de respuesta del servidor DNS si & quot; resolver & quot; se utilizó la directiva, lo que permite que un atacante que pueda forzar paquetes UDP desde el servidor DNS cause una falla de segmentación en un proceso de trabajo (CVE-2016-0742).
- Seguridad: la condición de uso después de la liberación puede ocurrir durante el procesamiento de respuesta CNAME si el & quot; resolver & quot; directiva se utilizó, lo que permite a un atacante que puede activar la resolución de nombres provocar un error de segmentación en un proceso de trabajo o puede tener otro impacto potencial (CVE-2016-0746).
- Seguridad: la resolución de CNAME no fue lo suficientemente limitada si el & quot; resolver & quot; directiva fue utilizada, lo que permite a un atacante que puede desencadenar una resolución arbitraria de nombres provocar un consumo excesivo de recursos en los procesos de trabajo (CVE-2016-0747).
- Corrección de errores: el & quot; proxy_protocol & quot; parámetro de & quot; escuchar & quot; directiva no funcionó si no se especifica en el primer & quot; escuchar & quot; directiva para un socket de escucha.
- Corrección de errores: nginx podría no iniciarse en algunas variantes de Linux antiguas; el error apareció en 1.7.11.
- Corrección de errores: una falla de segmentación puede ocurrir en un proceso de trabajo si & quot; try_files & quot; y & quot; alias & quot; las directivas se usaron dentro de una ubicación dada por una expresión regular; el error apareció en 1.7.1.
- Corrección de errores: el & quot; try_files & quot; directiva dentro de una ubicación anidada dada por una expresión regular funcionó incorrectamente si el & quot; alias & quot; directiva fue utilizada en la ubicación externa.
- Corrección de errores: & quot; encabezado ya enviado & quot; las alertas pueden aparecer en los registros cuando se utiliza la memoria caché; el error apareció en 1.7.5.
- Corrección de errores: una falla de segmentación podría ocurrir en un proceso de trabajo si se usaran diferentes configuraciones de ssl_session_cache en diferentes servidores virtuales.
- Correción de errores: el & quot; expira & quot; directiva puede no funcionar cuando se usan variables.
- Corrección de errores: si nginx se creó con el ngx_http_spdy_module, fue posible utilizar el protocolo SPDY incluso si el & quot; spdy & quot; parámetro de & quot; escuchar & quot; directiva no fue especificada.
Qué hay de nuevo en la versión 1.8.0:
- Incluye muchas características nuevas de la línea principal 1.7.x. bifurcación, incluido el método de equilibrio de carga de hash, verificación de certificado SSL de fondo, compatibilidad de grupos de subprocesos experimentales, proxy_request_buffering y más.
Qué hay de nuevo en la versión 1.7.8:
- Cambiar: ahora las líneas de cabecera de solicitud de & quot; If-Modified-Since & quot ;, & quot; If-Range & quot ;, etc. se pasan a un backend mientras se almacena en caché si nginx sabe de antemano que la respuesta no se almacenará en caché (p. ej., cuando se utiliza proxy_cache_min_uses).
- Cambiar: ahora después de proxy_cache_lock_timeout nginx envía una solicitud a un backend con el almacenamiento en caché desactivado; las nuevas directivas & quot; proxy_cache_lock_age & quot ;, & quot ;, & quot; fastcgi_cache_lock_age & quot ;, & quot; scgi_cache_lock_age & quot ;, y & quot; uwsgi_cache_lock_age & quot; especifique un tiempo después del cual se liberará el bloqueo y se realizará otro intento de almacenar en caché una respuesta.
- Cambiar: el & quot; formato_registro & quot; directiva ahora puede usarse solo a nivel http.
- Característica: el & quot; proxy_ssl_certificate & quot ;, & quot; proxy_ssl_certificate_key & quot ;, & quot; proxy_ssl_password_file & quot ;, & quot; uwsgi_ssl_certificate & quot ;, & quot; uwsgi_ssl_certificate_key & quot ;, y & quot; uwsgi_ssl_password_file & quot; directivas. Gracias a Piotr Sikora.
- Característica: ahora es posible cambiar a una ubicación con nombre usando & quot; X-Accel-Redirect & quot ;. Gracias a Toshikuni Fukaya.
- Característica: ahora el & quot; tcp_nodelay & quot; La directiva funciona con conexiones SPDY.
- Característica: nuevas directivas en scripts de resaltado de sintaxis de vim. Gracias a Peter Wu.
- Correción de errores: nginx ignoró el & quot; s-maxage & quot; valor en & quot; Control de caché & quot; línea de encabezado de respuesta de backend. Gracias a Piotr Sikora.
- Corrección de errores: en el ngx_http_spdy_module. Gracias a Piotr Sikora.
- Corrección de errores: en el & quot; ssl_password_file & quot; directiva cuando se usa OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
- Corrección de error: alerta & quot; encabezado ya enviado & quot; apareció en los registros si el & quot; post_action & quot; directiva fue utilizada; el error apareció en 1.5.4.
- Corrección de errores: alertas & quot; la cadena de salida http está vacía & quot; podría aparecer en los registros si el & quot; postpone_output 0 & quot; directiva se utilizó con SSI incluye.
- Corrección de errores: en el & quot; proxy_cache_lock & quot; directiva con las subpeticiones de SSI. Gracias a Yichun Zhang.
Qué hay de nuevo en la versión 1.6.2:
- Seguridad: era posible reutilizar sesiones SSL en contextos no relacionados si se utilizaba una caché de sesión SSL compartida o la misma clave de ticket de sesión TLS para múltiples & quot; servidor & quot; bloques (CVE-2014-3616). Gracias a Antoine Delignat-Lavaud.
- Solución de problemas: las solicitudes pueden bloquearse si se utilizó el sistema de resolución y un servidor DNS devolvió una respuesta mal formada; el error apareció en 1.5.8.
- Corrección de errores: las solicitudes pueden bloquearse si se utilizó el sistema de resolución y se produjo un tiempo de espera durante una solicitud de DNS.
Qué hay de nuevo en la versión 1.6.1:
- Seguridad: los comandos canalizados no se descartaron después del comando STARTTLS en el proxy SMTP (CVE-2014-3556); el error apareció en 1.5.6. Gracias a Chris Boulton.
- Corrección de errores: la variable $ uri puede contener basura al devolver errores con el código 400. Gracias a Sergey Bobrov.
- Corrección de errores: en & quot; ninguno & quot; parámetro en & quot; smtp_auth & quot; directiva; el error apareció en 1.5.6. Gracias a Sviatoslav Nikolsky.
Qué hay de nuevo en la versión 1.6.0:
- Esta versión estable incorpora muchas funciones nuevas de la rama principal de 1.5.x, incluidas varias mejoras de SSL, soporte de SPDY 3.1, revalidación de caché con solicitudes condicionales, módulo de solicitud de autenticación y más.
¿Qué hay de nuevo en la versión 1.4.7:
- Seguridad: puede producirse un desbordamiento del búfer en la memoria de pila un proceso de trabajo mientras se maneja una solicitud especialmente diseñada por ngx_http_spdy_module, lo que potencialmente da como resultado la ejecución de código arbitrario (CVE-2014-0133). Gracias a Lucas Molas, investigador del Programa STIC, Fundación Dr. Manuel Sadosky, Buenos Aires, Argentina.
- Corrección de errores: en el & quot; fastcgi_next_upstream & quot; directiva. Gracias a Lucas Molas.
Qué hay de nuevo en la versión 1.4.6:
- Corrección de errores: el & quot; client_max_body_size & quot; directiva puede no funcionar al leer un cuerpo de solicitud utilizando codificación de transferencia fragmentada; el error apareció en 1.3.9. Gracias a Lucas Molas.
- Corrección de errores: puede producirse un error de segmentación en un proceso de trabajo al realizar un proxy de conexiones de WebSocket.
Qué hay de nuevo en la versión 1.4.5:
- Corrección de errores: la variable $ ssl_session_id contenía sesiones completas serializadas en lugar de solo una identificación de sesión. Gracias a Ivan Ristic.
- Solución de problemas: las conexiones de los clientes pueden cerrarse inmediatamente si se utilizó la aceptación diferida; el error apareció en 1.3.15.
- Corrección de errores: alertas & quot; tamaño cero buf en salida & quot; podría aparecer en los registros durante el proxy; el error apareció en 1.3.9.
- Corrección de errores: una falla de segmentación puede ocurrir en un proceso de trabajo si se usó el ngx_http_spdy_module.
- Corrección de errores: las conexiones de WebSocket con proxy podrían bloquearse justo después del reconocimiento si se usaron los métodos select, poll o / dev / poll.
- Corrección de errores: puede producirse un tiempo de espera mientras se lee el cuerpo de solicitud del cliente en una conexión SSL utilizando codificación de transferencia fragmentada.
- Corrección de errores: pérdida de memoria en nginx / Windows.
Novedades en la versión 1.4.4:
- Esta versión presenta una solución para el análisis de líneas de solicitud vulnerabilidad en nginx 0.8.41 - 1.5.6 descubierta por Ivan Fratric del equipo de seguridad de Google (CVE-2013-4547).
Qué hay de nuevo en la versión 1.5.0:
- Seguridad: un desbordamiento de búfer basado en la pila puede ocurrir en un proceso de trabajo mientras se maneja una solicitud especialmente diseñada, lo que potencialmente da como resultado la ejecución de código arbitrario (CVE-2013-2028); el error apareció en 1.3.9. Gracias a Greg MacManus, iSIGHT Partners Labs.
Comentarios que no se encuentran