Выпуск nginx 1.17.6 и njs 0.3.7
Сформирован выпуск основной ветки nginx 1.17.6, в рамках которой продолжается развитие новых возможностей (в параллельно поддерживаемой стабильной ветке 1.16 вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей).
Основные изменения:
Добавлены новые переменные $proxy_protocol_server_addr и $proxy_protocol_server_port, которые содержат адрес и порт сервера, полученные из заголовка протокола PROXY;
Добавлена директива limit_conn_dry_run, переводящая модуль ngx_http_limit_conn_module в режим пробного запуска, при котором число соединений не ограничивается, но учитывается.
В модуле 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.
Дополнительно можно отметить выпуск njs 0.3.7, интерпретатора языка JavaScript для веб-сервера nginx. Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации. Скрипты могут использоваться в файле конфигурации для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответа, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях.
В новом выпуске добавлена поддержка методов Object.assign() и Array.prototype.copyWithin(). В console.time() обеспечена возможность использования меток. Переработан код для взаимодействия со внешними объектами и обработки данных в формате JSON. Из CLI удалён вызов console.help().