След година разработка нова стабилна версия на високопроизводителен 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 връзката и намалява до 2 броя RTT при възобновяване на предишно установената връзка;
- За настройка на 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
