
Изменения в nginx 1.20.2                                          16.11.2021

    *) Добавление: совместимость с OpenSSL 3.0.

    *) Исправление: SSL-переменные могли быть пустыми при записи в лог;
       ошибка появилась в 1.19.5.

    *) Исправление: keepalive-соединения с gRPC-бэкендами могли не
       закрываться после получения GOAWAY-фрейма.

    *) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать
       после SSL handshake.

    *) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если
       использовались методы select, poll или /dev/poll.

    *) Исправление: в переменной $content_length при использовании chunked
       transfer encoding.

    *) Исправление: при использовании HTTP/2 и директивы aio_write запросы
       могли зависать.


Изменения в nginx 1.20.1                                          25.05.2021

    *) Безопасность: при использовании директивы resolver во время обработки
       ответа DNS-сервера могла происходить перезапись одного байта памяти,
       что позволяло атакующему, имеющему возможность подделывать UDP-пакеты
       от DNS-сервера, вызвать падение рабочего процесса или, потенциально,
       выполнение произвольного кода (CVE-2021-23017).


Изменения в nginx 1.20.0                                          20.04.2021

    *) Стабильная ветка 1.20.x.


Изменения в nginx 1.19.10                                         13.04.2021

    *) Изменение: в директиве keepalive_requests значение по умолчанию
       изменено на 1000.

    *) Добавление: директива keepalive_time.

    *) Добавление: переменная $connection_time.

    *) Изменение: при использовании zlib-ng в логах появлялись сообщения
       "gzip filter failed to use preallocated memory".


Изменения в nginx 1.19.9                                          30.03.2021

    *) Исправление: nginx не собирался с почтовым прокси-сервером, но без
       модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8.

    *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
       "upstream sent response body larger than indicated content length";
       ошибка появилась в 1.19.1.

    *) Исправление: если клиент закрывал соединение в момент отбрасывания
       тела запроса, nginx мог не закрыть соединение до истечения
       keepalive-таймаута.

    *) Исправление: при ожидании задержки limit_req или auth_delay, а также
       при работе с бэкендами nginx мог не обнаружить, что соединение уже
       закрыто клиентом.

    *) Исправление: в методе обработки соединений eventport.


Изменения в nginx 1.19.8                                          09.03.2021

    *) Добавление: в директиве proxy_cookie_flags теперь флаги можно
       задавать с помощью переменных.

    *) Добавление: параметр proxy_protocol в директиве listen, директивы
       proxy_protocol и set_real_ip_from в почтовом прокси-сервере.

    *) Исправление: HTTP/2-соединения сразу закрывались при использовании
       "keepalive_timeout 0"; ошибка появилась в 1.19.7.

    *) Исправление: некоторые ошибки логгировались как неизвестные, если
       nginx был собран с glibc 2.32.

    *) Исправление: в методе обработки соединений eventport.


Изменения в nginx 1.19.7                                          16.02.2021

    *) Изменение: обработка соединений в 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.

    *) Добавление: теперь при исчерпании свободных соединений nginx
       закрывает не только keepalive-соединения, но и соединения в lingering
       close.

    *) Исправление: в логах могли появляться сообщения "zero size buf in
       output", если бэкенд возвращал некорректный ответ при
       небуферизированном проксировании; ошибка появилась в 1.19.1.

    *) Исправление: при использовании директивы return вместе с image_filter
       или xslt_stylesheet HEAD-запросы обрабатывались некорректно.

    *) Исправление: в директиве add_trailer.


Изменения в nginx 1.19.6                                          15.12.2020

    *) Исправление: ошибки "no live upstreams", если server в блоке upstream
       был помечен как down.

    *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
       segmentation fault; ошибка появилась в 1.19.5.

    *) Исправление: nginx возвращал ошибку 400 на запросы вида
       "GET http://example.com?args HTTP/1.0".

    *) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module.
       Спасибо Chris Newton.


Изменения в nginx 1.19.5                                          24.11.2020

    *) Добавление: ключ -e.

    *) Добавление: при сборке дополнительных модулей теперь можно указывать
       одни и те же исходные файлы в разных модулях.

    *) Исправление: SSL shutdown не работал при закрытии соединений с
       ожиданием дополнительных данных (lingering close).

    *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
       "upstream sent frame for closed stream".

    *) Исправление: во внутреннем API для обработки тела запроса.


Изменения в nginx 1.19.4                                          27.10.2020

    *) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
       grpc_ssl_conf_command и uwsgi_ssl_conf_command.

    *) Добавление: директива ssl_reject_handshake.

    *) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере.


Изменения в nginx 1.19.3                                          29.09.2020

    *) Добавление: модуль ngx_stream_set_module.

    *) Добавление: директива proxy_cookie_flags.

    *) Добавление: директива userid_flags.

    *) Исправление: расширение управления кэшированием stale-if-error
       ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502,
       503, 504, 403, 404 или 429.

    *) Исправление: если использовалось кэширование и бэкенд возвращал
       ответы с строкой заголовка Vary, в логах могли появляться сообщения
       "[crit] cache file ... has too long header".

    *) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться
       сообщения "[crit] SSL_write() failed".

    *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
       failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2.

    *) Исправление: при использовании HTTP/2 в рабочем процессе мог
       произойти segmentation fault, если ошибки с кодом 400 с помощью
       директивы error_page перенаправлялись в проксируемый location.

    *) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в
       модуле njs.


Изменения в nginx 1.19.2                                          11.08.2020

    *) Изменение: теперь nginx начинает закрывать keepalive-соединения, не
       дожидаясь исчерпания всех свободных соединений, а также пишет об этом
       предупреждение в лог ошибок.

    *) Изменение: оптимизация чтения тела запроса при использовании chunked
       transfer encoding.

    *) Исправление: утечки памяти при использовании директивы ssl_ocsp.

    *) Исправление: в логах могли появляться сообщения "zero size buf in
       output", если FastCGI-сервер возвращал некорректный ответ; ошибка
       появилась в 1.19.1.

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если размеры large_client_header_buffers отличались в разных
       виртуальных серверах.

    *) Исправление: SSL shutdown мог не работать.

    *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
       failed (SSL: ... bad write retry)".

    *) Исправление: в модуле ngx_http_slice_module.

    *) Исправление: в модуле ngx_http_xslt_filter_module.


Изменения в nginx 1.19.1                                          07.07.2020

    *) Изменение: директивы lingering_close, lingering_time и
       lingering_timeout теперь работают при использовании HTTP/2.

    *) Изменение: теперь лишние данные, присланные бэкендом, всегда
       отбрасываются.

    *) Изменение: теперь при получении слишком короткого ответа от
       FastCGI-сервера nginx пытается отправить клиенту доступную часть
       ответа, после чего закрывает соединение с клиентом.

    *) Изменение: теперь при получении ответа некорректной длины от
       gRPC-бэкенда nginx прекращает обработку ответа с ошибкой.

    *) Добавление: параметр min_free в директивах proxy_cache_path,
       fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
       Спасибо Adam Bambuch.

    *) Исправление: nginx не удалял unix domain listen-сокеты при плавном
       завершении по сигналу SIGQUIT.

    *) Исправление: UDP-пакеты нулевого размера не проксировались.

    *) Исправление: проксирование на uwsgi-бэкенды с использованием SSL
       могло не работать.
       Спасибо Guanzhong Chen.

    *) Исправление: в обработке ошибок при использовании директивы ssl_ocsp.

    *) Исправление: при использовании файловых систем XFS и NFS размер кэша
       на диске мог считаться некорректно.

    *) Исправление: если сервер memcached возвращал некорректный ответ, в
       логах могли появляться сообщения "negative size buf in writer".


Изменения в nginx 1.19.0                                          26.05.2020

    *) Добавление: проверка клиентских сертификатов с помощью OCSP.

    *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
       "upstream sent frame for closed stream".

    *) Исправление: OCSP stapling мог не работать, если не была указана
       директива resolver.

    *) Исправление: соединения с некорректным HTTP/2 preface не
       логгировались.


Изменения в nginx 1.17.10                                         14.04.2020

    *) Добавление: директива auth_delay.


Изменения в nginx 1.17.9                                          03.03.2020

    *) Изменение: теперь nginx не разрешает несколько строк "Host" в
       заголовке запроса.

    *) Исправление: nginx игнорировал дополнительные строки
       "Transfer-Encoding" в заголовке запроса.

    *) Исправление: утечки сокетов при использовании HTTP/2.

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если использовался OCSP stapling.

    *) Исправление: в модуле ngx_http_mp4_module.

    *) Исправление: при перенаправлении ошибок с кодом 494 с помощью
       директивы error_page nginx возвращал ответ с кодом 494 вместо 400.

    *) Исправление: утечки сокетов при использовании подзапросов в модуле
       njs и директивы aio.


Изменения в nginx 1.17.8                                          21.01.2020

    *) Добавление: директива grpc_pass поддерживает переменные.

    *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
       произойти таймаут; ошибка появилась в 1.17.5.

    *) Исправление: в директиве debug_points при использовании HTTP/2.
       Спасибо Даниилу Бондареву.


Изменения в nginx 1.17.7                                          24.12.2019

    *) Исправление: на старте или во время переконфигурации мог произойти
       segmentation fault, если в конфигурации использовалась директива
       rewrite с пустой строкой замены.

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если директива break использовалась совместно с директивой alias или
       директивой proxy_pass с URI.

    *) Исправление: строка Location заголовка ответа могла содержать мусор,
       если URI запроса был изменён на URI, содержащий нулевой символ.

    *) Исправление: при возврате перенаправлений с помощью директивы
       error_page запросы с телом обрабатывались некорректно; ошибка
       появилась в 0.7.12.

    *) Исправление: утечки сокетов при использовании HTTP/2.

    *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
       произойти таймаут; ошибка появилась в 1.17.5.

    *) Исправление: в модуле ngx_http_dav_module.


Изменения в nginx 1.17.6                                          19.11.2019

    *) Добавление: переменные $proxy_protocol_server_addr и
       $proxy_protocol_server_port.

    *) Добавление: директива limit_conn_dry_run.

    *) Добавление: переменные $limit_req_status и $limit_conn_status.


Изменения в nginx 1.17.5                                          22.10.2019

    *) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
       доступен, чтобы избежать чтения из быстрого соединения в течение
       долгого времени.

    *) Исправление: неполные закодированные символы в конце URI запроса
       игнорировались.

    *) Исправление: "/." и "/.." в конце URI запроса не нормализовывались.

    *) Исправление: в директиве merge_slashes.

    *) Исправление: в директиве ignore_invalid_headers.
       Спасибо Alan Kemp.

    *) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее.


Изменения в nginx 1.17.4                                          24.09.2019

    *) Изменение: улучшено детектирование некорректного поведения клиентов в
       HTTP/2.

    *) Изменение: в обработке непрочитанного тела запроса при возврате
       ошибок в HTTP/2.

    *) Исправление: директива worker_shutdown_timeout могла не работать при
       использовании HTTP/2.

    *) Исправление: при использовании HTTP/2 и директивы
       proxy_request_buffering в рабочем процессе мог произойти segmentation
       fault.

    *) Исправление: на Windows при использовании SSL уровень записи в лог
       ошибки ECONNABORTED был "crit" вместо "error".

    *) Исправление: nginx игнорировал лишние данные при использовании
       chunked transfer encoding.

    *) Исправление: если использовалась директива return и при чтении тела
       запроса возникала ошибка, nginx всегда возвращал ошибку 500.

    *) Исправление: в обработке ошибок выделения памяти.


Изменения в nginx 1.17.3                                          13.08.2019

    *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
       потребление памяти и ресурсов процессора (CVE-2019-9511,
       CVE-2019-9513, CVE-2019-9516).

    *) Исправление: при использовании сжатия в логах могли появляться
       сообщения "zero size buf"; ошибка появилась в 1.17.2.

    *) Исправление: при использовании директивы resolver в SMTP
       прокси-сервере в рабочем процессе мог произойти segmentation fault.


Изменения в nginx 1.17.2                                          23.07.2019

    *) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4.
       Спасибо Илье Леошкевичу.

    *) Изменение: метод $r->internal_redirect() встроенного перла теперь
       ожидает закодированный URI.

    *) Добавление: теперь с помощью метода $r->internal_redirect()
       встроенного перла можно перейти в именованный location.

    *) Исправление: в обработке ошибок во встроенном перле.

    *) Исправление: на старте или во время переконфигурации мог произойти
       segmentation fault, если в конфигурации использовалось значение hash
       bucket size больше 64 килобайт.

    *) Исправление: при использовании методов обработки соединений select,
       poll и /dev/poll nginx мог нагружать процессор во время
       небуферизованного проксирования и при проксировании
       WebSocket-соединений.

    *) Исправление: в модуле ngx_http_xslt_filter_module.

    *) Исправление: в модуле ngx_http_ssi_filter_module.


Изменения в nginx 1.17.1                                          25.06.2019

    *) Добавление: директива limit_req_dry_run.

    *) Добавление: при использовании директивы hash в блоке upstream пустой
       ключ хэширования теперь приводит к переключению на round-robin
       балансировку.
       Спасибо Niklas Keller.

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если использовалось кэширование и директива image_filter, а ошибки с
       кодом 415 перенаправлялись с помощью директивы error_page; ошибка
       появилась в 1.11.10.

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если использовался встроенный перл; ошибка появилась в 1.7.3.


Изменения в nginx 1.17.0                                          21.05.2019

    *) Добавление: директивы limit_rate и limit_rate_after поддерживают
       переменные.

    *) Добавление: директивы proxy_upload_rate и proxy_download_rate в
       модуле stream поддерживают переменные.

    *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8.

    *) Изменение: теперь postpone-фильтр собирается всегда.

    *) Исправление: директива include не работала в блоках if и
       limit_except.

    *) Исправление: в обработке byte ranges.


Изменения в nginx 1.15.12                                         16.04.2019

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если в директивах ssl_certificate или ssl_certificate_key
       использовались переменные и был включён OCSP stapling.


Изменения в nginx 1.15.11                                         09.04.2019

    *) Исправление: в директиве ssl_stapling_file на Windows.


Изменения в nginx 1.15.10                                         26.03.2019

    *) Изменение: теперь при использовании имени хоста в директиве listen
       nginx создаёт listen-сокеты для всех адресов, соответствующих этому
       имени (ранее использовался только первый адрес).

    *) Добавление: диапазоны портов в директиве listen.

    *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
       из переменных.

    *) Изменение: переменная $ssl_server_name могла быть пустой при
       использовании OpenSSL 1.1.1.

    *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
       ошибка появилась в 1.15.9.


Изменения в nginx 1.15.9                                          26.02.2019

    *) Добавление: директивы ssl_certificate и ssl_certificate_key
       поддерживают переменные.

    *) Добавление: метод poll теперь доступен на Windows при использовании
       Windows Vista и новее.

    *) Исправление: если при использовании метода select на Windows
       происходила ошибка при установлении соединения с бэкендом, nginx
       ожидал истечения таймаута на установление соединения.

    *) Исправление: директивы proxy_upload_rate и proxy_download_rate в
       модуле stream работали некорректно при проксировании UDP-пакетов.


Изменения в nginx 1.15.8                                          25.12.2018

    *) Добавление: переменная $upstream_bytes_sent.
       Спасибо Piotr Sikora.

    *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
       Спасибо Геннадию Махомеду.

    *) Исправление: в директиве proxy_cache_background_update.

    *) Исправление: в директиве geo при использовании unix domain
       listen-сокетов.

    *) Изменение: при использовании директивы ssl_early_data с OpenSSL в
       логах могли появляться сообщения "ignoring stale global SSL error ...
       bad length".

    *) Исправление: в nginx/Windows.

    *) Исправление: в модуле ngx_http_autoindex_module на 32-битных
       платформах.


Изменения в nginx 1.15.7                                          27.11.2018

    *) Добавление: директива proxy_requests в модуле stream.

    *) Добавление: параметр "delay" директивы "limit_req".
       Спасибо Владиславу Шабанову и Петру Щучкину.

    *) Исправление: утечки памяти в случае ошибок при переконфигурации.

    *) Исправление: в переменных $upstream_response_time,
       $upstream_connect_time и $upstream_header_time.

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если использовался модуль ngx_http_mp4_module на 32-битных
       платформах.


Изменения в nginx 1.15.6                                          06.11.2018

    *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
       потреблению памяти (CVE-2018-16843) и ресурсов процессора
       (CVE-2018-16844).

    *) Безопасность: при обработке специально созданного mp4-файла модулем
       ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
       отправлено клиенту (CVE-2018-16845).

    *) Добавление: директивы proxy_socket_keepalive,
       fastcgi_socket_keepalive, grpc_socket_keepalive,
       memcached_socket_keepalive, scgi_socket_keepalive и
       uwsgi_socket_keepalive.

    *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
       OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.

    *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
       количество памяти.


Изменения в nginx 1.15.5                                          02.10.2018

    *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
       процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.

    *) Исправление: незначительных потенциальных ошибок.


Изменения в nginx 1.15.4                                          25.09.2018

    *) Добавление: теперь директиву ssl_early_data можно использовать с
       OpenSSL.

    *) Исправление: в модуле ngx_http_uwsgi_module.
       Спасибо Chris Caputo.

    *) Исправление: соединения к некоторым gRPC-бэкендам могли не
       кэшироваться при использовании директивы keepalive.

    *) Исправление: при использовании директивы error_page для
       перенаправления ошибок, возникающих на ранних этапах обработки
       запроса, в частности ошибок с кодом 400, могла происходить утечка
       сокетов.

    *) Исправление: директива return при возврате ошибок не изменяла код
       ответа, если запрос был перенаправлен с помощью директивы error_page.

    *) Исправление: стандартные сообщения об ошибках и ответы модуля
       ngx_http_autoindex_module содержали атрибут bgcolor, что могло
       приводить к их некорректному отображению при использовании
       пользовательских настроек цветов в браузерах.
       Спасибо Nova DasSarma.

    *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
       "no suitable signature algorithm" понижен с уровня crit до info.


Изменения в nginx 1.15.3                                          28.08.2018

    *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.

    *) Добавление: директива ssl_early_data, сейчас доступна при
       использовании BoringSSL.

    *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
       upstream.

    *) Исправление: модуль ngx_http_dav_module при копировании файла поверх
       существующего файла с помощью метода COPY не обнулял целевой файл.

    *) Исправление: модуль ngx_http_dav_module при перемещении файла между
       файловыми системами с помощью метода MOVE устанавливал нулевые права
       доступа на результирующий файл и не сохранял время изменения файла.

    *) Исправление: модуль ngx_http_dav_module при копировании файла с
       помощью метода COPY для результирующего файла использовал права
       доступа по умолчанию.

    *) Изменение: некоторые клиенты могли не работать при использовании
       HTTP/2; ошибка появилась в 1.13.5.

    *) Исправление: nginx не собирался с LibreSSL 2.8.0.


Изменения в nginx 1.15.2                                          24.07.2018

    *) Добавление: переменная $ssl_preread_protocol в модуле
       ngx_stream_ssl_preread_module.

    *) Добавление: теперь при использовании директивы
       reset_timedout_connection nginx сбрасывает соединения, закрываемые с
       кодом 444.

    *) Изменение: уровень логгирования ошибок SSL "http request", "https
       proxy request", "unsupported protocol" и "version too low" понижен с
       уровня crit до info.

    *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
       первой попытке отправки происходила ошибка.

    *) Исправление: параметр reuseport директивы listen игнорировался, если
       количество рабочих процессов было задано после директивы listen.

    *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
       ssl_prefer_server_ciphers нельзя было выключить в виртуальном
       сервере, если она была включена в сервере по умолчанию.

    *) Исправление: повторное использование SSL-сессий к бэкендам не
       работало с протоколом TLS 1.3.


Изменения в nginx 1.15.1                                          03.07.2018

    *) Добавление: директива random в блоке upstream.

    *) Добавление: улучшена производительность при использовании директив
       hash и ip_hash совместно с директивой zone.

    *) Добавление: параметр reuseport директивы listen теперь использует
       SO_REUSEPORT_LB на FreeBSD 12.

    *) Исправление: HTTP/2 server push не работал, если SSL терминировался
       прокси-сервером перед nginx'ом.

    *) Исправление: директива tcp_nopush всегда использовалась для
       соединений к бэкендам.

    *) Исправление: при отправке сохранённого на диск тела запроса на
       gRPC-бэкенд могли возникать ошибки.


Изменения в nginx 1.15.0                                          05.06.2018

    *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
       следует использовать параметр ssl директивы listen.

    *) Изменение: теперь при использовании директивы listen с параметром ssl
       nginx определяет отсутствие SSL-сертификатов при тестировании
       конфигурации.

    *) Добавление: теперь модуль stream умеет обрабатывать несколько
       входящих UDP-пакетов от клиента в рамках одной сессии.

    *) Исправление: в директиве proxy_cache_valid можно было указать
       некорректный код ответа.

    *) Исправление: nginx не собирался gcc 8.1.

    *) Исправление: логгирование в syslog останавливалось при изменении
       локального IP-адреса.

    *) Исправление: nginx не собирался компилятором clang, если был
       установлен CUDA SDK; ошибка появилась в 1.13.8.

    *) Исправление: при использовании unix domain listen-сокетов на FreeBSD
       в процессе обновления исполняемого файла в логе могли появляться
       сообщения "getsockopt(TCP_FASTOPEN) ... failed".

    *) Исправление: nginx не собирался на Fedora 28 Linux.

    *) Исправление: при использовании директивы limit_req заданная скорость
       обработки запросов могла не соблюдаться.

    *) Исправление: в обработке адресов клиентов при использовании unix
       domain listen-сокетов для работы с датаграммами на Linux.

    *) Исправление: в обработке ошибок выделения памяти.


Изменения в nginx 1.13.12                                         10.04.2018

    *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
       могли неожиданно закрываться.


Изменения в nginx 1.13.11                                         03.04.2018

    *) Добавление: параметр proxy_protocol директивы listen теперь
       поддерживает протокол PROXY версии 2.

    *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.

    *) Исправление: в параметрах http_404, http_500 и им подобных директивы
       proxy_next_upstream.


Изменения в nginx 1.13.10                                         20.03.2018

    *) Добавление: теперь параметр set в SSI-директиве include позволяет
       сохранять в переменную любые ответы; максимальный размер ответа
       задаётся директивой subrequest_output_buffer_size.

    *) Добавление: теперь nginx использует вызов
       clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
       избежать некорректного срабатывания таймаутов при изменениях
       системного времени.

    *) Добавление: параметр "escape=none" директивы log_format.
       Спасибо Johannes Baiter и Calin Don.

    *) Добавление: переменная $ssl_preread_alpn_protocols в модуле
       ngx_stream_ssl_preread_module.

    *) Добавление: модуль ngx_http_grpc_module.

    *) Исправление: в обработке ошибок выделения памяти в директиве geo.

    *) Исправление: при использовании переменных в директиве
       auth_basic_user_file в лог мог выводиться символ '\0'.
       Спасибо Вадиму Филимонову.


Изменения в nginx 1.13.9                                          20.02.2018

    *) Добавление: поддержка HTTP/2 server push; директивы http2_push и
       http2_push_preload.

    *) Исправление: при использовании кэша в логах могли появляться
       сообщения "header already sent"; ошибка появилась в 1.9.13.

    *) Исправление: при использовании директивы ssl_verify_client в рабочем
       процессе мог произойти segmentation fault, если в виртуальном сервере
       не был указан SSL-сертификат.

    *) Исправление: в модуле ngx_http_v2_module.

    *) Исправление: в модуле ngx_http_dav_module.


Изменения в nginx 1.13.8                                          26.12.2017

    *) Добавление: теперь при использовании параметра transparent директив
       proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
       nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
       процессах.

    *) Добавление: улучшения в определении размера строки кэша процессора.
       Спасибо Debayan Ghosh.

    *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
       Спасибо Геннадию Махомеду.

    *) Исправление: процедура обновления исполняемого файла не работала,
       если после завершения родительского процесса новым родительским
       процессом nginx'а становился процесс с PID, отличным от 1.

    *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
       запросы с телом.

    *) Исправление: в директиве proxy_limit_rate при использовании с
       директивой keepalive.

    *) Исправление: при использовании "proxy_buffering off" часть ответа
       могла буферизироваться, если клиентское соединение использовало SSL.
       Спасибо Patryk Lesiewicz.

    *) Исправление: в директиве proxy_cache_background_update.

    *) Исправление: переменную вида "${name}" с именем в фигурных скобках
       нельзя было использовать в начале параметра не заключив весь параметр
       в кавычки.


Изменения в nginx 1.13.7                                          21.11.2017

    *) Исправление: в переменной $upstream_status.

    *) Исправление: в рабочем процессе мог произойти segmentation fault,
       если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.

    *) Исправление: если при переконфигурации изменялся размер зоны
       разделяемой памяти и переконфигурация завершалась неудачно, то в
       главном процессе происходил segmentation fault.

    *) Исправление: в модуле ngx_http_fastcgi_module.

    *) Исправление: nginx возвращал ошибку 500, если в директиве
       xslt_stylesheet были заданы параметры без использования переменных.

    *) Изменение: при использовании варианта библиотеки zlib от Intel в лог
       писались сообщения "gzip filter failed to use preallocated memory".

    *) Исправление: директива worker_shutdown_timeout не работала при
       использовании почтового прокси-сервера и при проксировании
       WebSocket-соединений.


Изменения в nginx 1.13.6                                          10.10.2017

    *) Исправление: при использовании директивы ssl_preread в модуле stream
       не работало переключение на следующий бэкенд.

    *) Исправление: в модуле ngx_http_v2_module.
       Спасибо Piotr Sikora.

    *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
       платформах с 64-битным time_t.

    *) Исправление: в обработке дат до 1970 года и после 10000 года.

    *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
       бэкендов не логгировались или логгировались на уровне info вместо
       error.

    *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
       не указав в логе причину.

    *) Исправление: в обработке повреждённых файлов кэша.

    *) Исправление: при кэшировании ошибок, перехваченных error_page, не
       учитывались заголовки управления кэшированием.

    *) Исправление: при использовании HTTP/2 тело запроса могло быть
       повреждено.

    *) Исправление: в обработке адресов клиентов при использовании unix
       domain сокетов.

    *) Исправление: при использовании директивы "hash ... consistent" в
       блоке upstream nginx нагружал процессор, если использовались большие
       веса и все или почти все бэкенды были недоступны.


Изменения в nginx 1.13.5                                          05.09.2017

    *) Добавление: переменная $ssl_client_escaped_cert.

    *) Исправление: директива ssl_session_ticket_key и параметр include
       директивы geo не работали на Windows.

    *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
       помощью нескольких диапазонов возвращалась некорректная длина ответа.

    *) Исправление: директива "expires modified" и обработка строки If-Range
       заголовка запроса не учитывали время последнего изменения ответа,
       если использовалось проксирование без кэширования.


Изменения в nginx 1.13.4                                          08.08.2017

    *) Добавление: модуль ngx_http_mirror_module.

    *) Исправление: клиентские соединения могли сбрасываться при
       тестировании конфигурации, если использовался параметр reuseport
       директивы listen на Linux.

    *) Исправление: тело запроса могло быть недоступно в подзапросах, если
       оно было сохранено в файл и использовалось проксирование.

    *) Исправление: очистка кэша по max_size не работала на Windows.

    *) Исправление: любое выделение разделяемой памяти на Windows требовало
       4096 байт памяти.

    *) Исправление: при использовании директивы zone в блоке upstream на
       Windows рабочий процесс мог завершаться аварийно.


Изменения в nginx 1.13.3                                          11.07.2017

    *) Безопасность: специально созданный запрос мог вызвать целочисленное
       переполнение в range-фильтре и последующую некорректную обработку
       запрошенных диапазонов, что потенциально могло привести к утечке
       конфиденциальной информации (CVE-2017-7529).


Изменения в nginx 1.13.2                                          27.06.2017

    *) Изменение: теперь при запросе диапазона, начинающегося с 0, из
       пустого файла nginx возвращает ответ 200 вместо 416.

    *) Добавление: директива add_trailer.
       Спасибо Piotr Sikora.

    *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
       в 1.13.0.

    *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
       Спасибо Orgad Shaneh.

    *) Исправление: при использовании SSI с большим количеством подзапросов
       и proxy_pass с переменными в рабочем процессе мог произойти
       segmentation fault.

    *) Исправление: в модуле ngx_http_v2_module.
       Спасибо Piotr Sikora.


Изменения в nginx 1.13.1                                          30.05.2017

    *) Добавление: теперь в качестве параметра директивы set_real_ip_from
       можно указывать имя хоста.

    *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.

    *) Добавление: директива worker_cpu_affinity теперь работает на
       DragonFly BSD.
       Спасибо Sepherosa Ziehau.

    *) Исправление: SSL renegotiation в соединениях к бэкендам не работал
       при использовании OpenSSL до 1.1.0.

    *) Изменение: nginx не собирался с Oracle Developer Studio 12.5.

    *) Изменение: теперь cache manager пропускает заблокированные записи при
       очистке кэша по max_size.

    *) Исправление: клиентские SSL-соединения сразу закрывались, если
       использовался отложенный accept и параметр proxy_protocol директивы
       listen.

    *) Исправление: в директиве proxy_cache_background_update.

    *) Изменение: теперь директива tcp_nodelay устанавливает опцию
       TCP_NODELAY перед SSL handshake.


Изменения в nginx 1.13.0                                          25.04.2017

    *) Изменение: теперь SSL renegotiation допускается в соединениях к
       бэкендам.

    *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
       прокси-сервере и модуле stream.

    *) Добавление: директивы return и error_page теперь могут использоваться
       для возврата перенаправлений с кодом 308.
       Спасибо Simon Leblanc.

    *) Добавление: параметр TLSv1.3 в директиве ssl_protocols.

    *) Добавление: при логгировании сигналов теперь указывается PID
       отправившего сигнал процесса.

    *) Исправление: в обработке ошибок выделения памяти.

    *) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
       исходящий адрес ответного UDP-пакета мог отличаться от адреса
       назначения исходного пакета.


Изменения в nginx 1.11.13                                         04.04.2017

    *) Добавление: параметр http_429 в директивах proxy_next_upstream,
       fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
       Спасибо Piotr Sikora.

    *) Исправление: в обработке ошибок выделения памяти.

    *) Исправление: при использовании директив sendfile и timer_resolution
       на Linux запросы могли зависать.

