Nginx 1.26.0 በ HTTP/3 ድጋፍ ተለቋል

После года разработки опубликована новая стабильная ветка высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера nginx 1.26.0, которая вобрала в себя изменения, накопленные в основной ветке 1.25.x. В дальнейшем все изменения в стабильной ветке 1.26 будут связаны с устранением серьёзных ошибок и уязвимостей. В скором времени будет сформирована основная ветка nginx 1.27, в которой будет продолжено развитие новых возможностей. Для обычных пользователей, у которых нет задачи обеспечить совместимость со сторонними модулями, рекомендуется использовать основную ветку, на базе которой раз в три месяца формируются выпуски коммерческого продукта Nginx Plus.

В соответствии с мартовским отчётом компании Netcraft под управлением nginx работает около 243 млн сайтов (год назад 289 млн). Nginx используется на 18.15% всех активных сайтов (год назад 18.94%, два года назад 20.08%), что соответствует второму месту по популярности в данной категории (доля Apache соответствует 20.09% (год назад 20.52, два года назад 22.58%), Cloudflare — 14.12% (11.32%, 10.42%), Google — 10.41% (9.89%, 8.89%). При этом при рассмотрении всех сайтов nginx сохраняет лидерство и занимает 22.31% рынка (год назад 25.94%, два года назад — 31.13%), в то время как доля Apache соответствует 20.17% (20.58, 23.08%), Cloudflare — 11.24% (10.17, 5.49%), OpenResty (платформа на базе nginx и LuaJIT) — 7.93% (7.94%, 8.01%).

Среди миллиона самых посещаемых сайтов в мире доля nginx составляет 20.63% (год назад 21.37%, два года назад 21.79%), Cloudflare — 22.59% (год назад 21.62%), Apache httpd — 20.09% (21.18%). По данным W3Techs nginx используется на 34.3% сайтов из миллиона самых посещаемых, в апреля прошлого года этот показатель составлял 34.5%, позапрошлого — 33.1%. Доля Apache за год снизилась с 32.2% до %30.1, а доля Microsoft IIS снизилась с 5.6% до 4.8%. Доля Node.js увеличилась с 2.4% до 3.2%, а доля LiteSpeed с 11.8% до 12.9%.

በ1.25.x የላይኛው ተፋሰስ ቅርንጫፍ ልማት ወቅት የታከሉ በጣም የታወቁ ማሻሻያዎች፡-

  • Добавлен модуль ngx_http_v3 с экспериментальной поддержкой протокола HTTP/3. Для сборки модуля предусмотрена опция «—with-http_v3_module». HTTP/3 определяет использование протокола QUIC (Quick UDP Internet Connections) в качестве транспорта для HTTP/2. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL. Протокол был создан в 2013 году компанией Google в качестве альтернативы связке TCP+TLS для Web, решающей проблемы с большим временем установки и согласования соединений в TCP и устраняющей задержки при потере пакетов в процессе передачи данных.
  • የኤችቲቲፒ/2 ፕሮቶኮልን ከአገልጋዮች ጋር በተገናኘ ለመምረጥ የተለየ የ"http2" መመሪያ ታክሏል (በተለየ "ሰርቨር" ብሎኮች መጠቀም ይቻላል)። በ"ማዳመጥ" መመሪያ ውስጥ ያለው የ"http2" መለኪያ ተቋርጧል።
  • Усилена защита от аномальной активности клиентов HTTP/2, и, в частности, от DoS-атак класса «Rapid Reset», в которых создаётся большое число сразу сбрасываемых потоков в рамках одного соединения HTTP/2. В конфигурации по умолчанию подобные атаки упираются в лимит на число запросов на соединение «keepalive_requests» (после каждых 1000 запросов соединение будет сбрасываться) и в ограничения «limit_req». Для более раннего реагирования на флуд запросами через большое число потоков добавлено дополнительное ограничение, не позволяющие создавать по умолчанию более 256 (2 * max_concurrent_streams) новых потоков на каждый цикл обработки событий. Новое ограничение даёт возможность начать блокировать запросы до достижения общего лимита на число одновременных потоков, например, когда потоки обрабатываются асинхронно или сбрасываются.
  • የቨርቹዋል ሰርቨሮች ድጋፍ ወደ ዥረት ሞዱል ተጨምሯል፣የዚህም ውቅር በአገልጋይ_ስም መመሪያ ተጠቅሞ በ"አገልጋይ {... }" ብሎክ ይገለጻል። አገልጋይ {የአገልጋይ_ስም ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
  • አዲስ ሞጁል ngx_stream_pass_module ታክሏል፣ የተቀበሉትን ግንኙነቶች እንደ http፣ ዥረት እና ሜይል ካሉ ሞጁሎች ጋር ወደተገናኘ ማንኛውም የማዳመጫ ሶኬት በቀጥታ ለማስተላለፍ ታስቦ የተሰራ ነው። ዥረት {አገልጋይ {12345 ssl ያዳምጡ; ssl_certificate domain.crt; ssl_certificate_key domain.key; ማለፍ 127.0.0.1:8000; }
  • የዥረት ሞጁሉ የማዳመጥ መመሪያ ለ"የተላለፈው" (የዘገየ መቀበልን ያስችላል)፣ "ተቀበል_ማጣሪያ" (የገቢ ግንኙነት ማጣሪያ ተቀባይ ተግባሩን ከመጥራት በፊት ይተገበራል) እና "setfib" (የመሄጃ ሰንጠረዡን በማዘጋጀት) መለኪያዎችን ይደግፋል።
  • ለአንዳንድ አርክቴክቸር በሲፒዩ መሸጎጫ እና ሚሞሪ መካከል መረጃን ለማስተላለፍ የሚያገለግለውን የማገጃ መጠን (መሸጎጫ መስመር) ለመወሰን ድጋፍ ተተግብሯል።
  • የኤችቲቲፒ/2 ግንኙነቶችን በራስ-ሰር ሲያገኙ ጥቅም ላይ የሚውሉ የተሻሻለ የመጠባበቂያዎች አስተዳደር።
  • ብዙ ቁጥር ያላቸው የ "አካባቢ" መመሪያዎች ያላቸው ውቅረቶችን የማስጀመር አፈጻጸም ተሻሽሏል።
  • በ HTTP/2 ውስጥ ለአገልጋይ የግፊት ቴክኖሎጂ ድጋፍ ተወግዷል።
  • የ "ssl" መመሪያ ድጋፍ, ቀደም ሲል ተቋርጧል, ተጥሏል.

Стабильный выпуск проекта FreeNginx 1.26.0, развивающего форк Nginx, был опубликован две недели назад. Разработку форка ведёт Максим Дунин, один из ключевых разработчиков Nginx. FreeNginx позиционируется как некоммерческий проект, обеспечивающий разработку кодовой базы Nginx без корпоративного вмешательства.

ምንጭ: opennet.ru

አስተያየት ያክሉ