Вышла новая ветка nginx 1.20.0

Её разрабатывали год, и теперь она вышла. Встречайте новую ветку nginx 1.20.0, которая вобрала все изменения из 1.19.Х-серии. Если вам не нужна совместимость со сторонними модулями, разработчики советуют пользоваться основной веткой.

Немного цифр

29 марта компания Netcraft опубликовала отчёт, согласно с которым nginx используют 20,15% активных сайтов (второе место, первое — у Apache с 25,38%). Но среди всех сайтов у nginx первое место с 35,34%, когда у Apache 25,98%. А всего чуть больше четверти из миллиона самых посещаемых сайтов работают на nginx (25,55%)

Что добавили из 1.19.Х?

  • Теперь можно проверять клиентские сертификаты с привлечением внешних служб на базе протокола OCSP. Чтобы включить проверку, разработчики предложили директиву ssl_ocsp; чтобы настроить размера кэша —  ssl_ocsp_cache, переопределить URL указанного в сертификате  OCSP-обработчика — ssl_ocsp_responder.
  • Добавили модуль ngx_stream_set_module. Он даёт присвоить значение переменной

    server {
        listen 12345;
        set    $true 1;
    }

  • Добавили директиву proxy_cookie_flags для указания флагов для куки в проксируемых соединениях. Если вы хотите добавить к куки “one” флаг  “httponly”, а для всех остальных куки флаги “nosecure” и “samesite=strict”, попробуйте вот так:

    proxy_cookie_flags one httponly;
    proxy_cookie_flags ~ nosecure samesite=strict;

  • Директиву userid_flags для добавления флагов к куки сделали для модуля ngx_http_userid.
  • Добавили директивы “ssl_conf_command“, “proxy_ssl_conf_command“, “grpc_ssl_conf_command” и “uwsgi_ssl_conf_command”. Они дают задать произвольные параметры для настройки OpenSSL. Например, для приоритизации шифров ChaCha и расширенной настройки шифров TLSv1.3 можно указать

   ssl_conf_command Options PrioritizeChaCha;
   ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;

  • Добавили директиву “ssl_reject_handshake“.  Она запрещает согласовывать SSL-соединения. Например, её можно использовать для отклонения всех обращений с неизвестными именами хостов в поле SNI:

    server {
        listen 443 ssl;
        ssl_reject_handshake on;
    }
    server {
        listen 443 ssl;
        server_name example.com;
        ssl_certificate example.com.crt;
        ssl_certificate_key example.com.key;
    }

  • В почтовый прокси добавили директиву proxy_smtp_auth. С ней можно аутентифицировать пользователя на бэкенде через команды AUTH и механизм PLAIN SASL.
  • Добавили директиву “keepalive_time“, которая ограничивает общее время жизни каждого keep-alive соединения, после истечении которого соединение будет закрыто (не путать с keepalive_timeout, определяющем время неактивности, после которого keep-alive соединение закрывается).
  • Добавили переменную $connection_time, через которую можно получить информацию о продолжительности соединения в секундах с миллисекундной точностью.
  • В директивы “proxy_cache_path“, “fastcgi_cache_path”, “scgi_cache_path” и “uwsgi_cache_path” добавили параметр “min_free”. Он регулирует размер кэша на основе определения минимального размера свободного дискового пространства.
  • Директивы “lingering_close“, “lingering_time” и “lingering_timeout” адаптировали  для работы с HTTP/2.
  • Код обработки соединений в HTTP/2 приблизили к реализации HTTP/1.x. Поддержку отдельных настроек “http2_recv_timeout”, “http2_idle_timeout” и “http2_max_requests” прекратили в пользу общих директив “keepalive_timeout” и “keepalive_requests”. Удалили настройки “http2_max_field_size” и “http2_max_header_size”, вместо которых нужно использовать “large_client_header_buffers”.
  • Добавили новую опцию командной строки “-e”. Она даёт указать альтернативный файл для записи лога ошибок, который будет использоваться вместо заданного в настройках лога. Вместо имени файла можно указать специальное значение stderr.

Спасибо за информацию opennet.ru

Узнать дополнительную информацию про учебные материалы в IT EDUCATION CENTER.

Залишити відповідь

Дякуємо, що поділились