Po roku vývoja zastúpené nová stabilná vetva vysokovýkonného HTTP servera a multiprotokolového proxy servera nginx 1.16.0, ktorý absorboval zmeny nahromadené v rámci hlavnej vetvy 1.15.x. V budúcnosti budú všetky zmeny v stabilnej vetve 1.16 súvisieť s odstránením závažných chýb a zraniteľností. Čoskoro sa vytvorí hlavná vetva nginx 1.17, v rámci ktorej bude pokračovať vývoj nových funkcií. Pre bežných používateľov, ktorí nemajú za úlohu zabezpečiť kompatibilitu s modulmi tretích strán, odporúča použite hlavnú vetvu, na základe ktorej sa každé tri mesiace tvoria vydania komerčného produktu Nginx Plus.
Najpozoruhodnejšie vylepšenia pridané počas vývoja upstream vetvy 1.15.x:
Pridaná možnosť používať premenné v smerniciachssl_certificate' a 'ssl_certificate_key', ktorý možno použiť na dynamické načítanie certifikátov;
Pridaná možnosť načítať certifikáty SSL a tajné kľúče z premenných bez použitia medzisúborov;
V bloku"upstream» implementovaná nová smernica «náhodný“, pomocou ktorého môžete organizovať vyvažovanie záťaže s náhodným výberom servera na presmerovanie spojenia;
V module ngx_stream_ssl_preread implementovaná premenná $ssl_preread_protocol,
ktorý určuje najvyššiu verziu protokolu SSL/TLS, ktorú klient podporuje. Premenná umožňuje vytvárať konfigurácie pre prístup pomocou rôznych protokolov s a bez SSL cez jeden sieťový port pri proxy prenose pomocou http a stream modulov. Napríklad, ak chcete organizovať prístup cez SSH a HTTPS cez jeden port, port 443 môže byť predvolene presmerovaný na SSH, ale ak je definovaná verzia SSL, presmerovať na HTTPS.
Do upstream modulu bola pridaná nová premenná "$upstream_bytes_sent", ktorý zobrazuje počet bajtov prenesených na skupinový server;
Do modulu prúd v rámci jednej relácie pribudla možnosť spracovať niekoľko prichádzajúcich UDP datagramov od klienta;
Smernica "proxy_requests“, určuje počet prijatých datagramov od klienta, po dosiahnutí ktorých sa väzba medzi klientom a existujúcou UDP reláciou odstráni. Po prijatí určeného počtu datagramov začne ďalší datagram prijatý od toho istého klienta novú reláciu;
Direktíva listen má teraz možnosť špecifikovať rozsahy portov;
Pridaná smernica "ssl_early_data» aktivujte režim 0-RTT pri použití TLSv1.3, ktorý vám umožňuje uložiť predtým dohodnuté parametre pripojenia TLS a znížiť počet RTT na 2 pri obnovení predtým vytvoreného pripojenia;
Boli pridané nové smernice na konfiguráciu keepalive pre odchádzajúce pripojenia (povolenie alebo zakázanie možnosti SO_KEEPALIVE pre sokety):
«proxy_socket_keepalive" - konfiguruje správanie "TCP keepalive" pre odchádzajúce pripojenia k serveru proxy;
«fastcgi_socket_keepalive" - konfiguruje správanie "TCP keepalive" pre odchádzajúce pripojenia k serveru FastCGI;
«grpc_socket_keepalive" - konfiguruje správanie "TCP keepalive" pre odchádzajúce pripojenia k serveru gRPC;
«memcached_socket_keepalive" - konfiguruje správanie "TCP keepalive" pre odchádzajúce pripojenia k serveru memcached;
«scgi_socket_keepalive" - konfiguruje správanie "TCP keepalive" pre odchádzajúce pripojenia k serveru SCGI;
«uwsgi_socket_keepalive" - konfiguruje správanie "TCP keepalive" pre odchádzajúce pripojenia k serveru uwsgi.
V smernici "limit_req" pridaný nový parameter „oneskorenie“, ktorý nastavuje limit, po ktorom sú nadbytočné požiadavky oneskorené;
Nové direktívy „keepalive_timeout“ a „keepalive_requests“ boli pridané do bloku „upstream“ na nastavenie limitov pre Keepalive;
Direktíva „ssl“ bola zastaraná, nahradená parametrom „ssl“ v smernici „počúvať“. Chýbajúce certifikáty SSL sa teraz zisťujú v štádiu testovania konfigurácie pri použití direktívy „listen“ s parametrom „ssl“ v nastaveniach;
Pri použití direktívy reset_timedout_connection sú teraz pripojenia po vypršaní časového limitu uzavreté kódom 444;
Chyby SSL „požiadavka http“, „požiadavka https proxy“, „nepodporovaný protokol“ a „príliš nízka verzia“ sa teraz zobrazujú v protokole s úrovňou „info“ namiesto „crit“;
Pridaná podpora pre metódu hlasovania v systémoch Windows pri používaní Windows Vista a novších;
Možnosť využitia TLSv1.3 pri vytváraní pomocou knižnice BoringSSL, nielen OpenSSL.