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

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

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

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

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

Съгласно данни от W3Techs, nginx се използва на 33.8% от сайтовете от милиона най-посещавани (през април миналата година този показател беше 34.3%, преди две години — 34.5%). Долята на Apache е спаднала за година от 30.1% до 26.3%, а долята на Microsoft IIS е спаднала от 5% до 4%. Долята на Node.js е нараснала от 3.2% до 4.4%, а долята на LiteSpeed от 12.9% до 14.6%.

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

  • За връзките, използващи протокол QUIC, е добавена поддръжка на алгоритъма за управление на мрежовото претоварване CUBIC (RFC 9438), чиято работа се свежда до постепенно увеличаване на размера на прозореца на претоварване до появата на загуба на пакети, след което размерът на прозореца се връща на стойността преди началото на загубата. В проведените тестове използването на CUBIC е позволило да се съкрати времето за пренос на файл с размер 500MB с 24% при закъснение от 40ms и BDP 750K (Bandwidth Delay Product) и с 73% при закъснение от 100ms и BDP 9M.
  • В модула stream е добавена поддръжка за проверка на отзоваване на клиентски сертификати, използвайки протокол OCSP (Online Certificate Status Protocol).
  • В модула stream е реализирана поддръжка на техниката за проверка на отзиви за сертификати OCSP Stapling, която се състои в това, че при установяване на TLS връзка, удостоверен от удостоверяващ център отговор OCSP се предава от сървъра, обслужващ сайта, без необходимост от пряко обръщение към удостоверяващия център.
  • При стартиране и обновяване на конфигурацията е реализирано кеширане SSL сертификати, ключове и CRL (Списък за отмяна на сертификати).
  • Добавени са възможности за намаляване на потреблението на ресурси и намаляване на натоварването на CPU при използване на TLS в конфигурации с голям брой блокове server и location. Добавените промени позволяват вместо създаването на отделен SSL контекст (SSL_CTX в OpenSSL) за всеки блок конфигурация, да се използва вече съществуващият SSL контекст от родителския блок.
  • В директивата «ssl_client_certificate» е осигурена поддръжка на сертификати с допълнителна информация.
  • За проверка на клиентски SSL сертификати директивата «ssl_client_certificate» вече не е задължителна.
  • В модула ngx_mail_proxy_module е добавена поддръжка на специфичен за SmarterMail режим IMAP LOGIN с неетикетирован отговор CAPABILITY.
  • В модула ngx_http_proxy_module е добавена директива «proxy_pass_trailers», която позволява предаване на полета на заглавките в края на отговора от проксируемия сървър към клиента.
  • В директивата «server», използвана в блока «upstream», е добавена поддръжка на параметъра «resolve», който включва проследяване на промените IP адреси за използваното домейн име и автоматично обновление на конфигурацията на блока «upstream», без необходимост от рестартиране на nginx при промяна на адреса.
  • Добавена е възможност за използване на променливи в директивите «proxy_limit_rate», «fastcgi_limit_rate», «scgi_limit_rate» и «uwsgi_limit_rate».
  • В директивите «proxy_bind», «fastcgi_bind», «grpc_bind», «memcached_bind», «scgi_bind» и «uwsgi_bind», както и в качеството на клиентски адрес в модула ngx_http_realip_module, е разрешено посочването на IPv6 адреси в квадратни скоби без номер на порта.
  • Добавена е директива «keepalive_min_timeout», която определя времето за изчакване, в което nginx не ще закрива keep-alive връзката с клиента.
  • По подразбиране са деактивирани протоколите TLSv1 и TLSv1.1.
  • Решени са проблемите с дългото зареждане на конфигурационни файлове поради повторното разчитане на един и същи набор от TLS сертификати, ключове и списъци с удостоверяващи центрове. Ускорено е презареждането на конфигурацията чрез повторно използване на неизменени TLS обекти, като сертификати, ключове и CRL. За деактивиране на наследяването на обекти при обновяване на конфигурацията е добавена директива „ssl_object_cache_inheritable“.
  • Добавено е кеширане за сертификати и ключове, заредени с използване на променливи в директивите (например, „ssl_certificate /etc/ssl/$ssl_server_name.crt“). За управление на кеша са добавени директиви „ssl_certificate_cache“, „proxy_ssl_certificate_cache“, „grpc_ssl_certificate_cache“ и „uwsgi_ssl_certificate_cache“. Чрез посочените директиви може да се настрои максималният размер на кеша, времето на живот на записите и времето за почистване на неизползваемите записи. Например: „ssl_certificate_cache max=1000 inactive=20s valid=1m;“.
  • Намалено е потреблението на памет при обработка на дългосрочни заявки в конфигурации, в които се използват директивите „gzip“, „gunzip“, „ssi“, „sub_filter“ или „grpc_pass“.
  • Максималният размер на кешираните в споделена памет сесии SSL е увеличен до 8192.
  • Оптимизирана е компилацията с C-библиотеката Musl.
  • Извършена е работа по оптимизация на производителността и отстраняване на грешки в реализацията на HTTP/3.

Допълнително може да се отбележи публикуването на релиз на проекта FreeNginx 1.28.0, развиващ форк на Nginx. Развитието на форка се води от Максим Дунин, един от основните разработчици на Nginx. FreeNginx се позиционира като некомерсиален проект, който осигурява разработката на кодовата база на Nginx без корпоративна намеса. Сред специфичните промени във версията FreeNginx 1.28:

  • Параметърът „off“ в директивата „pid“, деактивиращ създаването на PID файл.
  • Ограничение на интензивността на записите в логовете за грешки за защита от запълване на логовете с типови съобщения.
  • Реализация на параметъра multipath в директивата listen за поддръжка на Multipath TCP.
  • Поддръжка на HTTP заглавието „Age“ за определяне на времето на живот на кеш записите.
  • Добавяне на методи за автентикация XOAUTH2 и OAUTHBEARER в модула mail_proxy.

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

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