Издание на nginx 1.30.0 и форк на FreeNginx 1.30.0

След като година разработка, публикувана е новата стабилна версия на високопроизводителния HTTP сървър и многопротоколен прокси сървър nginx 1.30.0, която обединява промените, натрупани в основната версия 1.29.x. В бъдеще всички промени в стабилната версия 1.30 ще бъдат насочени към отстраняване на сериозни грешки и уязвимости. Скоро ще бъде създадена основната версия nginx 1.31, в която ще продължи развитието на нови функции. За обикновените потребители, които нямат нужда от съвместимост с външни модули, се препоръчва да използват основната версия, на базата на която на всеки три месеца се изготвят изданията на търговския продукт Nginx Plus. Кодът на nginx е написан на езика С и се разпространява под лиценз BSD.

Според февруарския доклад на компанията Netcraft, под управлението на nginx работят около 321 млн сайта (преди година 245 млн, преди две години — 243 млн, преди три години 289 млн). Nginx се използва на 16.08% от всички активни сайтове (преди година 17.89%, преди две години 18.15%, преди три години 18.94%), което го поставя на второ място по популярност в тази категория (делът на Apache е 13.27% (преди година 16.03%, преди две години 20.09%, преди три години 20.52%), Cloudflare — 20.62% (17.81%, 14.12%, 11.32%), Google — 10.65% (9.89%, 10.41%, 9.89%).

При разглеждане на всички сайтове, nginx запазва лидерството си с дял от 22.65% на пазара (преди година 20.48%, преди две години — 22.31%, преди три години — 25.94%), докато делът на Apache е 12.19% (16.03%, 20.17%, 20.58%), Cloudflare — 15.27% (12.87%, 11.24%, 10.17%), OpenResty (платформа на база nginx и LuaJIT) — 8.01% (9.36%, 7.93%, 7.94%).

Сред един милионте най-посещавани сайтове в света, nginx заема второ място с дял от 19.85% (преди година 20.37%, преди две години 20.63%, преди три години 21.37%). Първото място държи Cloudflare — 26.84% (22.32%, 22.59%, 21.62%). Дялът на Apache httpd е 15.84% (17.95%, 20.09%, 21.18%). Издание на nginx 1.30.0 и форк на FreeNginx 1.30.0

Според данни от W3Techs, nginx се използва на 32.8% от сайтовете в милиона най-посещавани (през април миналата година този процент беше 33.8%, преди две години — 34.3%). Делът на Apache е намалял от 26.3% на 23.9% за година, делът на Microsoft IIS е спаднал от 4% на 3.4%, а делът на Caddy от 0.3% на 0.2%. Делът на Node.js е нараснал от 4.4% на 6.0%, а делът на LiteSpeed от 14.6% на 15.2%.

Най-забележимите подобрения, добавени в процеса на формиране на основната версия 1.29.x:

  • Добавена е поддръжка за разширение на TLS ECH (Encrypted ClientHello), продължаващо развитието на разширението ESNI (Encrypted Server Name Indication), използвано за криптиране на информация за параметрите на TLS сесиите, като заявеното домейн име. Ключовата разлика между ECH и ESNI е, че в ECH вместо криптиране на ниво отделни полета, цялото TLS съобщение ClientHello се криптира, което позволява блокиране на течовете чрез полета, които не обхваща ESNI, например полето PSK (Pre-Shared Key). Използването на ECH се активира чрез указание в директивата 'ssl_ech_file' файла конфигурация ECHConfig в формат PEM. Поддръжката е налична при използване на сборки OpenSSL с ECH.
  • Добавена е поддръжка на протокола Multipath TCP (MPTCP), който позволява доставяне на пакети едновременно по няколко маршрута през различни мрежови интерфейси. За включване в директивата «listen» е добавен параметърът «multipath».
  • Добавена е възможността за свързване на клиентски сесии към едни и същи сървъри в групата. Налични са три метода: „cookie“ — предаване на данни за избраната сървър чрез посочената Cookie; „route“ — проксируемият сървър назначава маршрут на клиента при получаване на първото искане; „learn“ — nginx анализира отговорите от upstream-сървъра и запомня започнатите сесии от сървъра. За настройка на свързването в блока „upstream“ на модула „http“ е добавена директива „sticky“, а в директивата „server“ са добавени параметрите „route“ и „drain“.
  • Добавена директива «early_hints» и реализирана поддръжка на HTTP кода 103 в отговорите от бекендов proxy и gRPC. Код 103 позволява да се информира клиента за съдържанието на някои HTTP заглавия веднага след запитването, без да се чака сървърът да изпълни всички свързани с запитването операции и да започне отдаването на съдържанието. По този начин могат да се съобщават подсказки за свързаните с отдаваната страница елементи, които могат да бъдат предварително заредени (например може да се предоставят линкове към използваните на страницата css и javascript). Получавайки информация за подобни ресурси, браузърът ще започне тяхното зареждане, без да чака завършването на отдаването на основната страница, което позволява да се намали общото време на обработка на запитването.
  • Добавени са директивите add_header_inherit и add_trailer_inherit, които позволяват промяна на правилата за наследяване на стойности, зададени в директивите add_header и add_trailer. Параметърът „off“ отменя наследяването на стойности, а параметърът „merge“ включва добавянето на стойности от предишното ниво към стойностите на текущото ниво.
  • Добавена е директива «ssl_certificate_compression» за управление на компресията. на TLS сертификати.
  • Добавена е директивата max_headers, ограничаваща максималния брой на HTTP заглавията в заявката. При надвишаване на лимита се връща грешка 400 (Bad Request). Възможността е пренесена от FreeNginx.
  • Добавени са променливите $request_port и $is_request_port. Първата променлива съдържа номера на порта от компонента URI или от заглавието „Host“, а втората съдържа „:“, ако променливата $request_port не е празна.
  • Добавени са променливите $ssl_sigalg и $ssl_client_sigalg, съдържащи името на алгоритъма за генериране на цифрова подпись за TLS връзка.
  • В директивата «geo» е добавен параметър «volatile», който деактивира кеширането на променливата. Разрешено е да се използват маски в директивата «include», зададена вътре в блока «geo».
  • В блока «upstream» е активирана по подразбиране директивата «keepalive». В директивата «keepalive», използвана в блока «upstream», е добавен параметър «local». При задаване на този параметър, вместо споделянето на едно съединение с общия upstream сървър, споменат в различни блокове location и server, за всеки блок се поддържа отделно съединение с upstream.
  • При използване в режим proxy по подразбиране е настроена версия на протокола HTTP/1.1 с включен режим keep-alive (в модула ngx_http_proxy_module е включена по подразбиране поддръжка на keep-alive и е зададено значението «1.1» в директивата «proxy_http_version» и изпращането на заглавието «Connection» е прекратено по подразбиране).
  • В модула ngx_http_proxy е добавена поддръжка на протокола HTTP/2, което позволява използването на HTTP/2 при достъп до бекенди.
  • Предоставена е възможност за зареждане на криптографски ключове от хардуерни токени, използвайки библиотеката OpenSSL като доставчик.
  • В реализацията на протокола QUIC е добавена поддръжка на режима 0-RTT, налична на системи с OpenSSL 3.5.1 и по-нови версии.
  • Добавена е възможност за сглобяване с криптографската библиотека AWS-LC, разработвана от Amazon.
  • По подразбиране е деактивирана компресията на сертификати TLSv1.3.
  • Осигурена е съвместимост с библиотеката OpenSSL 4.0.

Допълнително може да се спомене пускането на версията на проекта FreeNginx 1.30.0, развиваща клон на Nginx. Разработката на клона се води от Максим Дунин, един от ключовите разработчици на Nginx. FreeNginx се позиционира като некомерсиален проект, който осигурява разработването на кодовата база на Nginx без корпоративна намеса. Кодът на FreeNginx продължава да се предоставя под лицензия BSD. Сред промените в клона FreeNginx 1.30: добавена е поддръжка на разширението TLS ECH (Encrypted Client Hello); подобрена е обработката на директивата limit_rate; добавени са директивите send_min_rate и client_body_min_rate; реализирана е възможност за ограничаване на броя на съединенията и интензивността на заявките в пощенския прокси; добавена е поддръжка на БД GeoIP2 в модула GeoIP; засилена е защитата на модула XSLT.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster