Рэліз nginx 1.16.0

Пасля года распрацоўкі прадстаўлена новая стабільная галіна высокапрадукцыйнага 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.

Крыніца: opennet.ru

Дадаць каментар