Релиз на nginx 1.18.0

След година разработка представена нова стабилна версия на високопроизводителен HTTP сървър и многопротоколен прокси сървър nginx 1.18.0, която обедини измененията, натрупани в основната версия 1.17.x. В бъдеще всички промени в стабилната версия 1.18 ще бъдат свързани с отстраняването на сериозни грешки и уязвимости. Скоро ще бъде създадена основна версия nginx 1.19, в рамките на която ще продължи развитието на нови възможности. За обикновените потребители, които не се нуждаят от съвместимост с трети модули, се препоръчва да използват основната версия, на базата на която на всеки три месеца се формулират издания на търговския продукт Nginx Plus.

В съответствие с априлския отчет на компанията Netcraft nginx се използва на 19.56% от всички активни сайтове (преди година 20.73%, преди две години 21.02%), което съответства на второ място по популярност в тази категория (дялът на Apache е 27.64%, Google — 10.03%, Microsoft IIS — 4.77%). При това, при разглеждане на всички сайтове, nginx запазва лидерството и заема 36.91% от пазара (преди година 27.52%), докато делът на Apache е 24.73%, Microsoft IIS — 12.85%, Google — 3.42%.

Между най-посещаваните сайтове в света делът на nginx е 25.54% (преди година 26.22%, преди две години 23.76%). В момента под управлението на nginx работят около 459 млн. сайта (преди година 397 млн.). По данните W3Techs nginx се използва на 31.9% от сайтовете сред милиона най-посещавани, през април миналата година този показател беше 41.8%, преди две години — 38% (падението е обяснено с прехода към отделно отчитане на http-сървъра Cloudflare). Дялът на Apache за годината спадна от 43.6% до 38.9%, а делът на Microsoft IIS от 8.6% до 8.3%. В Русия nginx се използва се среща на 78.9% от най-посещаваните сайтове (преди година — 81%).

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

  • Добавена е директива limit_req_dry_run, който активира режим на пробен старт, в който не се прилагат ограничения за интензитет на обработка на заявките (без rate limit), но продължава да се следи броят на заявките, които излизат извън зададените лимити в споделена памет;
  • Добавена е директива limit_conn_dry_run, превеждаща модула ngx_http_limit_conn_module в режим на пробен опит, при който броят на свързванията не е ограничен, но се отчита;
  • Добавена е директива „auth_delay“, която позволява добавяне на закъснение за неавторизирани заявки с код на отговор 401 за намаляване на интензивността на подбора на пароли и защита от атаки, манипулиращи измерването на времето за изпълнение на операциите (timing attack) при достъп до системи, достъпът до които е ограничен с парола, резултата от подзаявка или JWT (JSON Web Token);
  • Добавена е поддръжка на променливи в директивите «limit_rate» и «limit_rate_after», както и в директивите «proxy_upload_rate» и «proxy_download_rate» на модула stream;
  • В директивата grpc_pass добавена е поддръжка за използване на променлива в параметъра, определящ адреса. Ако адресът е посочен като доменно име, името се търси сред описаните групи сървъри и, ако не бъде намерено, се определя с помощта на resolver’a;
  • Добавени са нови променливи $proxy_protocol_server_addr и $proxy_protocol_server_port, които съдържат адреса и порта на сървъра, получени от заглавката на протокола PROXY;
  • В модула ngx_stream_limit_conn_module добавена е променлива $limit_conn_status, която съхранява резултата от ограничението на броя на връзките: PASSED, REJECTED или REJECTED_DRY_RUN;
  • В модула ngx_http_limit_req_module добавена е променлива $limit_req_status, която съхранява резултата от ограничението на速ността на постъпване на заявки: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN или REJECTED_DRY_RUN;
  • По подразбиране е осигурена компилация на модула ngx_http_postpone_filter_module;
  • Добавена е поддръжка за превключване на именувани блокове „location“ с помощта на метода $r->internal_redirect(), предоставян от вградения интерпретатор Perl. Този метод сега изисква обработка на URI с екранирани символи;
  • При използване в блока със настройки «upstream» на директивата «hash» за организиране на балансировка на натоварването с привързване на клиента към сървъра, сега, когато се зададе празна стойност на ключа, се активира режим на равномерна балансировка (round-robin);
  • Добавена е поддръжка за извикване на ioctl(FIONREAD), ако е наличен, за да се избегне четене от бърза връзка за дълго време.

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

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