След година разработка новата стабилна версия на високопроизводителен HTTP сървър и многопротоколен прокси-сървър , която включва измененията, натрупани в основната клон 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:
- Добавена директива , който активира режим на пробен старт, при който не се прилагат ограничения за интензивността на обработката на заявки (без rate limit), но продължава да се отчита изходящият брой на заявките, който надвишава лимитите в споделена памет;
- Добавена директива , прехвърляща модула ngx_http_limit_conn_module в режим на пробен пуск, при който броят на връзките не е ограничен, но се отчита;
- Добавена е директива ««, която позволява добавяне на закъснение за неавторизирани заявки с код на отговор 401, за да се намали интензивността на подбора на пароли и защита от , манипулиращи измерването на времето за изпълнение на операции (timing attack) при достъп до системи, достъпът до които е ограничен , или (JSON Web Token);
- Добавена е поддръжка за променливи в директивите „limit_rate“ и „limit_rate_after“, както и в директивите „proxy_upload_rate“ и „proxy_download_rate“ на модула stream;
- В директиве добавена е поддръжка за използване на променлива в параметъра, определящ адреса. Ако адресът е указан под формата на домейн, името се търси сред описаните групи сървъри и, ако не бъде намерено, се определя с помощта на resolver’a;
- Добавени нови променливи и , които съдържат адреса и порта на сървъра, получени от заглавката на PROXY протокола;
- В модула добавена е променлива , която съхранява резултата от ограничаването на броя на връзките: PASSED, REJECTED или REJECTED_DRY_RUN;
- В модула добавена е променлива , която съхранява резултата от ограничаването на скоростта на постъпване на заявки: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN или REJECTED_DRY_RUN;
- По подразбиране е осигурена сборка на модула ;
- Добавена поддръжка за превключване на именувани блокове „location“ чрез метода $r->internal_redirect(), предоставян от вградения Perl интерпретатор. Този метод сега предполага обработка на URI с ескейпирани символи;
- При използването в блока с настройки «upstream» на директивата «» за организиране на балансиране на натоварването с привързване на клиента към сървъра, в случай на указване на празна стойност на ключа, сега се активира режим на равномерно балансиране (round-robin);
- Добавена поддръжка за извикване на ioctl(FIONREAD), ако е налично, за да се избегне четенето от бърза връзка за дълго време.
Източник: opennet.ru
