Egy év fejlesztés után bemutatott a nagy teljesítményű HTTP szerver és a többprotokollos proxyszerver új stabil ága nginx 1.16.0, amely elnyelte a főágon belül felhalmozódott változásokat 1.15.x. A jövőben az 1.16-as stabil ág minden változása a súlyos hibák és sérülékenységek kiküszöbölésére fog vonatkozni. Hamarosan megalakul az nginx 1.17 fő ága, amelyen belül folytatódik az új funkciók fejlesztése. Azoknak a hétköznapi felhasználóknak, akiknek nem feladata a harmadik féltől származó modulokkal való kompatibilitás biztosítása, ajánlott használja a fő ágat, amely alapján az Nginx Plus kereskedelmi termék kiadásai háromhavonta jönnek létre.
A legfigyelemreméltóbb fejlesztések az 1.15.x upstream ág fejlesztése során:
Hozzáadtuk a változók „irányelvekben” való használatának lehetőségétssl_certificate' és 'ssl_certificate_key‘, amely a tanúsítványok dinamikus betöltésére használható;
Hozzáadtuk az SSL-tanúsítványok és titkos kulcsok változókból történő betöltésének lehetőségét köztes fájlok használata nélkül;
A blokkban"upstream» új irányelv végrehajtása «véletlen“, melynek segítségével megszervezheti a terheléselosztást a kapcsolat továbbítására szolgáló szerver véletlenszerű kiválasztásával;
A modulban ngx_stream_ssl_preread változó implementálva $ssl_preread_protocol,
amely az ügyfél által támogatott SSL/TLS protokoll legmagasabb verzióját határozza meg. A változó lehetővé teszi konfigurációkat hozhat létre különböző protokollok használatával való eléréshez SSL-lel és anélkül, egyetlen hálózati porton keresztül, amikor a forgalmat a http és stream modulok használatával proxyzik. Például az SSH-n és HTTPS-en keresztüli hozzáférés egy porton keresztüli megszervezéséhez a 443-as port alapértelmezés szerint továbbítható az SSH-hoz, de ha az SSL-verzió meg van határozva, akkor továbbíthatja a HTTPS-re.
Egy új változó került hozzáadásra az upstream modulhoz "$upstream_bytes_eld", amely a csoportszerverre átvitt bájtok számát jeleníti meg;
A modulhoz folyam egy munkameneten belül több bejövő UDP-datagram feldolgozásának képessége is hozzáadásra került az ügyféltől;
Az irányelv"proxy_requests", az ügyféltől kapott datagramok számát határozza meg, amelyek elérésekor megszűnik a kliens és a meglévő UDP-munkamenet közötti kötés. A megadott számú datagram fogadása után az ugyanattól a klienstől kapott következő datagram új munkamenetet kezd;
A listen direktíva mostantól képes megadni a porttartományokat;
Hozzáadott direktíva "ssl_early_data» az üzemmód engedélyezéséhez 0-RTT a TLSv1.3 használatakor, amely lehetővé teszi a korábban egyeztetett TLS-kapcsolati paraméterek mentését, és az RTT-k számának 2-re csökkentését egy korábban létrehozott kapcsolat folytatásakor;
Új direktívák kerültek hozzáadásra a kimenő kapcsolatok megőrzésének konfigurálásához (a SO_KEEPALIVE opció engedélyezése vagy letiltása a socketeknél):
«proxy_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést a proxyszerverhez kimenő kapcsolatokhoz;
«fastcgi_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést a FastCGI-kiszolgálóhoz tartó kimenő kapcsolatokhoz;
«grpc_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést a gRPC-kiszolgálóhoz tartó kimenő kapcsolatokhoz;
«memcached_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést a memcached kiszolgálóhoz vezető kimenő kapcsolatokhoz;
«scgi_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést az SCGI-kiszolgálóhoz vezető kimenő kapcsolatokhoz;
«uwsgi_socket_keepalive" - beállítja a "TCP Keepalive" viselkedést az uwsgi kiszolgálóhoz vezető kimenő kapcsolatokhoz.
Az irányelvben "limit_req" hozzáadott egy új „delay” paramétert, amely beállít egy határt, amely után a redundáns kérések késleltetésre kerülnek;
Új „keepalive_timeout” és „keepalive_requests” direktívák kerültek az „upstream” blokkhoz, hogy korlátokat állítsanak be a Keepalive számára;
Az "ssl" direktíva elavult, helyébe az "ssl" paraméter lépett a "listen" direktívában. A hiányzó SSL-tanúsítványok a konfiguráció tesztelésének szakaszában észlelhetők, amikor a „hallgatás” direktívát használja az „ssl” paraméterrel a beállításokban;
A reset_timedout_connection direktíva használatakor a kapcsolatok 444-es kóddal záródnak le, amikor az időtúllépés lejár;
A „http kérés”, „https proxy kérés”, „nem támogatott protokoll” és „a verzió túl alacsony” SSL-hibák most a „crit” helyett „info” szinten jelennek meg a naplóban;
Hozzáadott támogatás a lekérdezési módszerhez Windows rendszereken Windows Vista és újabb verziók esetén;
Felhasználási lehetőség TLSv1.3 amikor a BoringSSL könyvtárral építünk, nem csak az OpenSSL-lel.