След година разработка новата стабилна версия на високопроизводителен HTTP сървър и многопротоколен прокси-сървър , която събира промени, натрупани в основната версия 1.15.x. В бъдеще всички изменения в стабилната версия 1.16 ще бъдат свързани с отстраняване на сериозни грешки и уязвимости. Скоро ще бъде оформена основната версия nginx 1.17, в която ще продължи развитието на нови функции. За обикновените потребители, които нямат задача да осигурят съвместимост с външни модули, препоръчително е да използват основната версия, на базата на която на всеки три месеца се оформят издания на търговския продукт Nginx Plus.
Най-забележимите подобрения, добавени в процеса на оформяне на основната версия 1.15.x:
- Добавена е възможността за използване на променливи в директивите ‘‘ и ‘‘, което може да се използва за динамично зареждане на сертификати;
- Добавена е възможност за зареждане на SSL сертификати и секретни ключове от променливи без използване на междинни файлове;
- В блока ‘‘ е реализирана нова директива ‘‘, с помощта на която може да се организира балансиране на натоварването с случайно избиране на сървър за пренасочване на връзката;
- В модула е реализирана променлива ,
която определя най-високата версия на протокола SSL/TLS, която клиентът поддържа. Променливата позволява за достъп с различни протоколи с SSL и без SSL през един мрежови порт при проксиране на трафика с използване на модули http и stream. Например, за организиране на достъп по SSH и HTTPS през един порт 443, порт по подразбиране може да бъде пренасочен към SSH, но ако е определена версия на SSL, да бъде пренасочен към HTTPS. - В модула upstream е добавена нова променлива ‘‘, която показва броя на байтовете, предадени на сървъра на групата;
- В модула в рамките на една сесия е добавена възможността за обработка на няколко входящи UDP датаграми от клиента;
- В модула stream е добавена директивата ‘‘, която задава броя на датаграмите, получени от клиента, при достигане на който се премахва свързването между клиента и съществуващата UDP сесия. След получаване на посочения брой датаграми, следващата датаграма, получена от същия клиент, започва нова сесия;
- В директивата listen се появи възможност за указване на диапазони от портове;
- Добавена е директива «» за активиране на режима , използвайки TLSv1.3, който позволява запазването на предварително уговорените параметри на TLS-свързването и намаляване на RTT до 2 при възобновяване на предишно установена връзка;
- За настройване на keepalive за изходящи връзки (включване или изключване на опциите SO_KEEPALIVE за сокетите) са добавени нови директиви:
- «» — конфигурира поведението на «TCP keepalive» за изходящи връзки към прокси-сървъра;
- «» — конфигурира поведението на «TCP keepalive» за изходящи връзки към FastCGI-сървъра;
- «» — конфигурира поведението на «TCP keepalive» за изходящи връзки към gRPC-сървъра;
- «» — конфигурира поведението на «TCP keepalive» за изходящи връзки към memcached-сървъра;
- «» — конфигурира поведението на «TCP keepalive» за изходящи връзки към SCGI-сървъра;
- «» — конфигурира поведението на «TCP keepalive» за изходящи връзки към uwsgi-сървъра.
- В директивата « » е добавен нов параметър «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 и по-нови;
- Осигурена е възможност за използване на при компилация с библиотеката BoringSSL, а не само с OpenSSL.
Източник: opennet.ru
