След 13 месеца развитие пуснат нов стабилен клон Високопроизводителен HTTP сървър и многопротоколен прокси сървър nginx 1.22.0, който включва промените, натрупани в главния клон 1.21.x.
В бъдеще, всички промени в стабилния клон 1.22 ще бъдат свързани с отстраняване на грешки и сериозни уязвимости. Скоро ще се формира основният клон на nginx 1.23, в който ще продължи разработването на нови функции.
За обикновените потребители, които нямат задача да осигурят съвместимост с модули на трети страни, се препоръчва използването на основния клон, въз основа на който се формират версии на търговския продукт Nginx Plus на всеки три месеца.
Основни новини в nginx 1.22.0
В тази нова версия на nginx 1.22.0, която е представена, Подобрена защита срещу атаки на клас HTTP Request Smuggling в системи от предния край, които ви позволяват да получите достъп до съдържанието на заявките на други потребители, обработени в същата нишка между предния и бекенд. Nginx вече винаги връща грешка при използване на метода CONNECT; чрез едновременно посочване на заглавките "Content-Length" и "Transfer-Encoding"; когато има интервали или контролни знаци в низа на заявката, името на HTTP заглавката или стойността на заглавката "Host".
Друга новост, която се откроява в тази нова версия, е това добавена поддръжка за променливи към директивите "proxy_ssl_certificate", "proxy_ssl_certificate_key", "grpc_ssl_certificate", "grpc_ssl_certificate_key", "uwsgi_ssl_certificate" и "uwsgi_ssl_certificate_key".
Освен това се отбелязва също, че е добавен поддръжка за режим "тръбопровод". за изпращане на множество POP3 или IMAP заявки за една и съща връзка към пощенския прокси модул, както и нова директива "max_errors", която определя максималния брой грешки в протокола, след които връзката ще бъде затворена.
Хедъри „Auth-SSL-Protocol“ и „Auth-SSL-Cipher“ се предават към сървъра за удостоверяване на пощенския прокси сървър, плюс поддръжка за разширението ALPN TLS беше добавена към предавателния модул. За да се определи списъкът с поддържани ALPN протоколи (h2, http/1.1), се предлага директивата ssl_alpn, а за получаване на информация за протокола ALPN, съгласуван с клиента, променливата $ssl_alpn_protocol.
От останалите промени които се открояват:
- Блокиране на HTTP/1.0 заявки, които включват HTTP заглавката "Transfer-Encoding" (въведена във версията на протокола HTTP/1.1).
- Платформата FreeBSD има подобрена поддръжка за системното извикване sendfile, което е проектирано да организира директно прехвърляне на данни между файлов дескриптор и сокет. Режимът sendfile(SF_NODISKIO) е постоянно активиран и е добавена поддръжка за режима sendfile(SF_NOCACHE).
- Параметърът "fastopen" е добавен към предавателния модул, който позволява режим "TCP Fast Open" за слушащи гнезда.
- Фиксирано екраниране на символи """, "<", ">", "\", "^", "`", "{", "|" и "}" при използване на прокси с промяна на URI.
- Към модула за поток е добавена директивата proxy_half_close, с която може да се конфигурира поведението, когато прокси TCP връзка е затворена от едната страна ("TCP half-close").
- Добавена е нова директива mp4_start_key_frame към модула ngx_http_mp4_module за поточно предаване на видео от ключов кадър.
- Добавена е променлива $ssl_curve за връщане на типа елиптична крива, избрана за договаряне на ключове в TLS сесия.
- Директивата sendfile_max_chunk промени стойността по подразбиране на 2 мегабайта;
- Поддръжка, предоставена с библиотеката OpenSSL 3.0. Добавена поддръжка за извикване на SSL_sendfile() при използване на OpenSSL 3.0.
- Асемблирането с библиотеката PCRE2 е активирано по подразбиране и предоставя функции за обработка на регулярни изрази.
- При зареждане на сървърни сертификати е коригирано използването на нива на сигурност, поддържани от OpenSSL 1.1.0 и зададени чрез параметъра "@SECLEVEL=N" в директивата ssl_ciphers.
- Премахната поддръжка за експортен шифров пакет.
- В API за филтриране на тялото на заявката е разрешено буфериране на обработени данни.
- Премахната поддръжка за установяване на HTTP/2 връзки с помощта на разширението Next Protocol Negotiation (NPN) вместо ALPN.
Накрая ако се интересувате да научите повече за това, можете да проверите подробностите В следващия линк.