Вышла новая ветка 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.