Релиз 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«а;
- Добавлены новые переменные $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), если он доступен, чтобы избежать чтения из быстрого соединения в течение долгого времени;
Источник: http://www.opennet.ru/opennews/art.shtml? num=52780
© OpenNet