След година разработка нова стабилна версия на високопроизводителен 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
