Después de un año de desarrollo nueva rama estable del servidor HTTP de alto rendimiento y proxy multilateral , que incorpora cambios acumulados en la rama principal 1.15.x. En adelante, todos los cambios en la rama estable 1.16 estarán relacionados con la corrección de errores graves y vulnerabilidades. Pronto se formará la rama principal nginx 1.17, donde se continuará el desarrollo de nuevas funcionalidades. Para los usuarios comunes, que no tienen la tarea de asegurar la compatibilidad con módulos de terceros, se recomienda utilizar la rama principal, a partir de la cual se generan lanzamientos del producto comercial Nginx Plus cada tres meses.
Las mejoras más notables añadidas en el proceso de formación de la rama principal 1.15.x:
- Se ha añadido la posibilidad de usar variables en las directivas ‘‘ y ‘‘, que se pueden utilizar para la carga dinámica de certificados;
- Se ha agregado la opción de cargar certificados SSL y claves secretas desde variables sin usar archivos intermedios;
- En el bloque «» se ha implementado una nueva directiva ««, con la que se puede organizar la carga equilibrada de conexiones seleccionando aleatoriamente un servidor para enrutar la conexión;
- En el módulo se ha implementado la variable ,
, que determina la versión más alta del protocolo SSL/TLS soportada por el cliente. La variable permite para el acceso utilizando diferentes protocolos, con SSL y sin SSL a través de un solo puerto de red al transmitir tráfico utilizando módulos http y stream. Por ejemplo, para organizar el acceso por SSH y HTTPS a través de un único puerto 443, por defecto se puede enrutar a SSH, pero si se ha definido una versión de SSL, se puede enrutar a HTTPS. - En el módulo upstream se ha añadido una nueva variable ««, que muestra el número de bytes enviados al servidor del grupo;
- En el módulo dentro de una sesión se ha añadido la posibilidad de manejar múltiples datagramas UDP entrantes del cliente;
- En el módulo stream se ha añadido la directiva ««, que establece el número de datagramas recibidos del cliente, al alcanzar el cual se elimina la vinculación entre el cliente y la sesión UDP existente. Después de recibir el número especificado de datagramas, el siguiente datagrama recibido del mismo cliente inicia una nueva sesión;
- En la directiva listen, ahora es posible especificar rangos de puertos;
- Se ha añadido la directiva «» para habilitar el modo al usar TLSv1.3, que permite mantener los parámetros previamente acordados de la conexión TLS y reducir a 2 el número de RTT en la reanudación de una conexión previamente establecida;
- Para configurar keepalive para conexiones salientes (activar o desactivar la opción SO_KEEPALIVE para los sockets), se han añadido nuevas directivas:
- «» — configura el comportamiento de «TCP keepalive» para conexiones salientes a un servidor proxy;
- «» — configura el comportamiento de «TCP keepalive» para conexiones salientes a un servidor FastCGI;
- «» — configura el comportamiento de «TCP keepalive» para conexiones salientes a un servidor gRPC;
- «» — configura el comportamiento de «TCP keepalive» para conexiones salientes a un servidor memcached;
- «» — configura el comportamiento de «TCP keepalive» para conexiones salientes a un servidor SCGI;
- «» — configura el comportamiento de «TCP keepalive» para conexiones salientes a un servidor uwsgi.
- En la directiva « » se ha añadido un nuevo parámetro «delay», que establece el límite al alcanzar el cual se retrasan las solicitudes excesivas;
- En el bloque «upstream», se han añadido nuevas directivas «keepalive_timeout» y «keepalive_requests» para establecer límites para Keepalive;
- Se declara obsoleta la directiva «ssl», la cual es reemplazada por el parámetro «ssl» en la directiva «listen». La identificación de certificados SSL ausentes ahora se realiza en la etapa de prueba de configuración al utilizar la directiva «listen» con el parámetro «ssl»;
- Al usar la directiva reset_timedout_connection, al expirar el tiempo de espera de la conexión, ahora se cierra con el código 444;
- Los errores SSL «http request», «https proxy request», «unsupported protocol» y «version too low» ahora se registran en el log con nivel «info» en lugar de «crit»;
- Se ha añadido soporte para el método poll en sistemas Windows al usar Windows Vista o posterior;
- Se ha habilitado el uso de al compilar con la biblioteca BoringSSL, y no solo con OpenSSL.
Fuente: opennet.ru
