Пасля года распрацоўкі прадстаўлена новая стабільная галіна высокапрадукцыйнага HTTP-сервера і шматпратакольнага проксі-сервера Nginx 1.16.0, якая ўвабрала ў сябе змены, назапашаныя ў рамках асноўнай галіны 1.15.x. У далейшым усе змены ў стабільнай галінцы 1.16 будуць звязаныя з ухіленнем сур'ёзных памылак і ўразлівасцяў. У хуткім часе будзе сфарміравана асноўная галінка nginx 1.17, у рамках якой будзе працягнута развіццё новых магчымасцяў. Для звычайных карыстальнікаў, у якіх няма задачы забяспечыць сумяшчальнасць са іншымі модулямі, рэкамендуецца выкарыстоўваць асноўную галінку, на базе якой раз у тры месяцы фармуюцца выпускі камерцыйнага прадукта Nginx Plus.
Найбольш прыкметныя паляпшэнні, дададзеныя падчас фармавання асноўнай галінкі 1.15.x:
Дададзена магчымасць выкарыстання зменных у дырэктывахssl_сертыфікат' і 'ssl_certificate_key', што можна выкарыстоўваць для дынамічнай загрузкі сертыфікатаў;
Дададзена магчымасць загрузкі SSL-сертыфікатаў і сакрэтных ключоў са зменных без выкарыстання прамежкавых файлаў;
У блоку «уверх па плынірэалізавана новая дырэктывавыпадковы«, пры дапамозе якой можна арганізаваць балансаванне нагрузкі са выпадковым выбарам сервера для пракіду злучэння;
У модулі ngx_stream_ssl_preread рэалізавана пераменная $ssl_preread_protocol,
якая вызначае найвялікую версію пратаколу SSL/TLS, якую падтрымлівае кліент. Пераменная дазваляе ствараць канфігурацыі для доступу з выкарыстаннем розных пратаколаў з SSL і без SSL праз адзін сеткавы порт пры праксіраванні трафіку з выкарыстаннем модуляў http і stream. Напрыклад, для арганізацыі доступу па SSH і HTTPS праз адзін порт 443 порт па змаўчанні можна прабіваць на SSH, але калі вызначана версія SSL прабіваць на HTTPS.
У модуль upstream дададзена новая пераменная$upstream_bytes_sent«, якая адлюстроўвае лік байт, перададзеных на сервер групы;
У модуль паток у рамках аднаго сеансу дададзена магчымасць апрацоўкі некалькіх уваходных UDP-датаграм ад кліента;
У модуль stream дададзена дырэктыва «proxy_requests«, задаючы лік датаграм, атрыманых ад кліента, па дасягненні якога выдаляецца прывязка паміж кліентам і існуючай UDP-сесіяй. Пасля атрымання названай колькасці датаграм наступная датаграма, атрыманая ад таго ж кліента, пачынае новую сесію;
У дырэктыве listen з'явілася магчымасць указання дыяпазонаў портаў;
Дададзена дырэктываssl_early_data» для ўключэння рэжыму 0-RTT пры выкарыстанні TLSv1.3, які дазваляе захаваць раней узгодненыя параметры TLS-злучэнні і зменшыць да 2 лік RTT пры аднаўленні раней усталяванага злучэння;
Для налады keepalive для выходных злучэнняў (уключэнні ці выключэнні опцыі SO_KEEPALIVE для сокетаў) дададзены новыя дырэктывы:
«proxy_socket_keepalive» - канфігуруе паводзіны «TCP keepalive» для выходных злучэнняў да праксіраванага сервера;
«fastcgi_socket_keepalive» - канфігуруе паводзіны «TCP keepalive» для выходных злучэнняў да FastCGI-серверу;
«grpc_socket_keepalive» - канфігуруе паводзіны «TCP keepalive» для выходных злучэнняў да gRPC-серверу;
«memcached_socket_keepalive» - канфігуруе паводзіны «TCP keepalive» для выходных злучэнняў да сервера memcached;
«scgi_socket_keepalive» - канфігуруе паводзіны «TCP keepalive» для выходных злучэнняў да SCGI-серверу;
«uwsgi_socket_keepalive» - канфігуруе паводзіны "TCP keepalive" для выходных злучэнняў да uwsgi-серверу.
У дырэктыву «limit_req» дададзены новы параметр "delay", які задае ліміт, па дасягненні якога залішнія запыты затрымоўваюцца;
У блок "upstream" дададзены новыя дырэктывы "keepalive_timeout" і "keepalive_requests" для задання лімітаў для Keepalive;
Абвешчаная састарэлай дырэктыва "ssl", на змену якой прыйшоў параметр "ssl" у дырэктыве "listen". Вызначэнне адсутных SSL-сертыфікатаў зараз вырабляецца на этапе тэставання канфігурацыі пры выкарыстанні ў наладах дырэктывы "listen" з параметрам "ssl";
Пры выкарыстанні дырэктывы reset_timedout_connection пры заканчэнні таймаўту злучэння зараз зачыняюцца з ужываннем кода 444;
SSL-памылкі "http request", "https proxy request", "unsupported protocol" і "version too low" зараз адлюстроўваюцца ў логу з узроўнем "info" замест "crit";
Дададзена падтрымка метаду poll на сістэмах Windows пры выкарыстанні Windows Vista і навей;
Забяспечана магчымасць выкарыстання TLSv1.3 пры зборцы з бібліятэкай BoringSSL, а не толькі з OpenSSL.