blob: fd7e3083cbb558c3a22fd0bcee195d2e5a46aadc [file] [log] [blame]
<?xml version="1.0" ?>
<!DOCTYPE change_log SYSTEM "../../dtd/changes.dtd" >
<change_log title="nginx">
<changes ver="1.17.4" date="2019-09-24">
<change type="change">
<para lang="ru">
улучшено детектирование некорректного поведения клиентов в HTTP/2.
</para>
<para lang="en">
better detection of incorrect client behavior in HTTP/2.
</para>
</change>
<change type="change">
<para lang="ru">
в обработке непрочитанного тела запроса
при возврате ошибок в HTTP/2.
</para>
<para lang="en">
in handling of not fully read client request body
when returning errors in HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива worker_shutdown_timeout могла не работать
при использовании HTTP/2.
</para>
<para lang="en">
the "worker_shutdown_timeout" directive might not work
when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 и директивы proxy_request_buffering
в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
when using HTTP/2 and the "proxy_request_buffering" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
на Windows при использовании SSL
уровень записи в лог ошибки ECONNABORTED был "crit" вместо "error".
</para>
<para lang="en">
the ECONNABORTED error log level was "crit" instead of "error"
on Windows when using SSL.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx игнорировал лишние данные при использовании chunked transfer encoding.
</para>
<para lang="en">
nginx ignored extra data when using chunked transfer encoding.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если использовалась директива return и
при чтении тела запроса возникала ошибка,
nginx всегда возвращал ошибку 500.
</para>
<para lang="en">
nginx always returned the 500 error
if the "return" directive was used
and an error occurred during reading client request body.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке ошибок выделения памяти.
</para>
<para lang="en">
in memory allocation error handling.
</para>
</change>
</changes>
<changes ver="1.17.3" date="2019-08-13">
<change type="security">
<para lang="ru">
при использовании HTTP/2 клиент мог вызвать
чрезмерное потребление памяти и ресурсов процессора
(CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
</para>
<para lang="en">
when using HTTP/2 a client might cause
excessive memory consumption and CPU usage
(CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании сжатия в логах могли появляться сообщения "zero size buf";
ошибка появилась в 1.17.2.
</para>
<para lang="en">
"zero size buf" alerts might appear in logs when using gzipping;
the bug had appeared in 1.17.2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы resolver в SMTP прокси-сервере
в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if the "resolver" directive was used in SMTP proxy.
</para>
</change>
</changes>
<changes ver="1.17.2" date="2019-07-23">
<change type="change">
<para lang="ru">
минимальная поддерживаемая версия zlib&mdash;1.2.0.4.<br/>
Спасибо Илье Леошкевичу.
</para>
<para lang="en">
minimum supported zlib version is 1.2.0.4.<br/>
Thanks to Ilya Leoshkevich.
</para>
</change>
<change type="change">
<para lang="ru">
метод $r->internal_redirect() встроенного перла
теперь ожидает закодированный URI.
</para>
<para lang="en">
the $r->internal_redirect() embedded perl method
now expects escaped URIs.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь с помощью метода $r->internal_redirect() встроенного перла
можно перейти в именованный location.
</para>
<para lang="en">
it is now possible to switch to a named location
using the $r->internal_redirect() embedded perl method.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке ошибок во встроенном перле.
</para>
<para lang="en">
in error handling in embedded perl.
</para>
</change>
<change type="bugfix">
<para lang="ru">
на старте или во время переконфигурации мог произойти segmentation fault,
если в конфигурации использовалось значение hash bucket size больше 64 килобайт.
</para>
<para lang="en">
a segmentation fault might occur on start or during reconfiguration
if hash bucket size larger than 64 kilobytes was used in the configuration.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании методов обработки соединений select, poll и /dev/poll
nginx мог нагружать процессор во время небуферизованного проксирования
и при проксировании WebSocket-соединений.
</para>
<para lang="en">
nginx might hog CPU during unbuffered proxying
and when proxying WebSocket connections
if the select, poll, or /dev/poll methods were used.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_xslt_filter_module.
</para>
<para lang="en">
in the ngx_http_xslt_filter_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_ssi_filter_module.
</para>
<para lang="en">
in the ngx_http_ssi_filter_module.
</para>
</change>
</changes>
<changes ver="1.17.1" date="2019-06-25">
<change type="feature">
<para lang="ru">
директива limit_req_dry_run.
</para>
<para lang="en">
the "limit_req_dry_run" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
при использовании директивы hash в блоке upstream
пустой ключ хэширования теперь приводит к переключению
на round-robin балансировку.<br/>
Спасибо Niklas Keller.
</para>
<para lang="en">
when using the "hash" directive inside the "upstream" block
an empty hash key now triggers round-robin balancing.<br/>
Thanks to Niklas Keller.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в рабочем процессе мог произойти segmentation fault,
если использовалось кэширование и директива image_filter,
а ошибки с кодом 415 перенаправлялись с помощью директивы error_page;
ошибка появилась в 1.11.10.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if caching was used along with the "image_filter" directive,
and errors with code 415 were redirected with the "error_page" directive;
the bug had appeared in 1.11.10.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в рабочем процессе мог произойти segmentation fault,
если использовался встроенный перл;
ошибка появилась в 1.7.3.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if embedded perl was used;
the bug had appeared in 1.7.3.
</para>
</change>
</changes>
<changes ver="1.17.0" date="2019-05-21">
<change type="feature">
<para lang="ru">
директивы limit_rate и limit_rate_after поддерживают переменные.
</para>
<para lang="en">
variables support in the "limit_rate" and "limit_rate_after" directives.
</para>
</change>
<change type="feature">
<para lang="ru">
директивы proxy_upload_rate и proxy_download_rate в модуле stream
поддерживают переменные.
</para>
<para lang="en">
variables support
in the "proxy_upload_rate" and "proxy_download_rate" directives
in the stream module.
</para>
</change>
<change type="change">
<para lang="ru">
минимальная поддерживаемая версия OpenSSL&mdash;0.9.8.
</para>
<para lang="en">
minimum supported OpenSSL version is 0.9.8.
</para>
</change>
<change type="change">
<para lang="ru">
теперь postpone-фильтр собирается всегда.
</para>
<para lang="en">
now the postpone filter is always built.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива include не работала в блоках if и limit_except.
</para>
<para lang="en">
the "include" directive did not work inside the "if" and "limit_except" blocks.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке byte ranges.
</para>
<para lang="en">
in byte ranges processing.
</para>
</change>
</changes>
<changes ver="1.15.12" date="2019-04-16">
<change type="bugfix">
<para lang="ru">
в рабочем процессе мог произойти segmentation fault,
если в директивах ssl_certificate или ssl_certificate_key
использовались переменные
и был включён OCSP stapling.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if variables were used
in the "ssl_certificate" or "ssl_certificate_key" directives
and OCSP stapling was enabled.
</para>
</change>
</changes>
<changes ver="1.15.11" date="2019-04-09">
<change type="bugfix">
<para lang="ru">
в директиве ssl_stapling_file на Windows.
</para>
<para lang="en">
in the "ssl_stapling_file" directive on Windows.
</para>
</change>
</changes>
<changes ver="1.15.10" date="2019-03-26">
<change type="change">
<para lang="ru">
теперь при использовании имени хоста в директиве listen
nginx создаёт listen-сокеты для всех адресов,
соответствующих этому имени
(ранее использовался только первый адрес).
</para>
<para lang="en">
when using a hostname in the "listen" directive
nginx now creates listening sockets
for all addresses the hostname resolves to
(previously, only the first address was used).
</para>
</change>
<change type="feature">
<para lang="ru">
диапазоны портов в директиве listen.
</para>
<para lang="en">
port ranges in the "listen" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
возможность загрузки SSL-сертификатов и секретных ключей из переменных.
</para>
<para lang="en">
loading of SSL certificates and secret keys from variables.
</para>
</change>
<change type="workaround">
<para lang="ru">
переменная $ssl_server_name могла быть пустой
при использовании OpenSSL 1.1.1.
</para>
<para lang="en">
the $ssl_server_name variable might be empty
when using OpenSSL 1.1.1.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx/Windows не собирался с Visual Studio 2015 и новее;
ошибка появилась в 1.15.9.
</para>
<para lang="en">
nginx/Windows could not be built with Visual Studio 2015 or newer;
the bug had appeared in 1.15.9.
</para>
</change>
</changes>
<changes ver="1.15.9" date="2019-02-26">
<change type="feature">
<para lang="ru">
директивы ssl_certificate и ssl_certificate_key
поддерживают переменные.
</para>
<para lang="en">
variables support
in the "ssl_certificate" and "ssl_certificate_key" directives.
</para>
</change>
<change type="feature">
<para lang="ru">
метод poll теперь доступен на Windows
при использовании Windows Vista и новее.
</para>
<para lang="en">
the "poll" method is now available on Windows
when using Windows Vista or newer.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если при использовании метода select на Windows
происходила ошибка при установлении соединения с бэкендом,
nginx ожидал истечения таймаута на установление соединения.
</para>
<para lang="en">
if the "select" method was used on Windows
and an error occurred while establishing a backend connection,
nginx waited for the connection establishment timeout to expire.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директивы proxy_upload_rate и proxy_download_rate
в модуле stream
работали некорректно при проксировании UDP-пакетов.
</para>
<para lang="en">
the "proxy_upload_rate" and "proxy_download_rate" directives
in the stream module
worked incorrectly when proxying UDP datagrams.
</para>
</change>
</changes>
<changes ver="1.15.8" date="2018-12-25">
<change type="feature">
<para lang="ru">
переменная $upstream_bytes_sent.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
the $upstream_bytes_sent variable.<br/>
Thanks to Piotr Sikora.
</para>
</change>
<change type="feature">
<para lang="ru">
новые директивы в скриптах подсветки синтаксиса для vim.<br/>
Спасибо Геннадию Махомеду.
</para>
<para lang="en">
new directives in vim syntax highlighting scripts.<br/>
Thanks to Gena Makhomed.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в директиве proxy_cache_background_update.
</para>
<para lang="en">
in the "proxy_cache_background_update" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в директиве geo при использовании unix domain listen-сокетов.
</para>
<para lang="en">
in the "geo" directive when using unix domain listen sockets.
</para>
</change>
<change type="workaround">
<para lang="ru">
при использовании директивы ssl_early_data с OpenSSL
в логах могли появляться сообщения
"ignoring stale global SSL error ... bad length".
</para>
<para lang="en">
the "ignoring stale global SSL error ... bad length"
alerts might appear in logs
when using the "ssl_early_data" directive with OpenSSL.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в nginx/Windows.
</para>
<para lang="en">
in nginx/Windows.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_autoindex_module на 32-битных платформах.
</para>
<para lang="en">
in the ngx_http_autoindex_module on 32-bit platforms.
</para>
</change>
</changes>
<changes ver="1.15.7" date="2018-11-27">
<change type="feature">
<para lang="ru">
директива proxy_requests в модуле stream.
</para>
<para lang="en">
the "proxy_requests" directive in the stream module.
</para>
</change>
<change type="feature">
<para lang="ru">
параметр "delay" директивы "limit_req".<br/>
Спасибо Владиславу Шабанову и Петру Щучкину.
</para>
<para lang="en">
the "delay" parameter of the "limit_req" directive.<br/>
Thanks to Vladislav Shabanov and Peter Shchuchkin.
</para>
</change>
<change type="bugfix">
<para lang="ru">
утечки памяти в случае ошибок при переконфигурации.
</para>
<para lang="en">
memory leak on errors during reconfiguration.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в переменных $upstream_response_time, $upstream_connect_time и
$upstream_header_time.
</para>
<para lang="en">
in the $upstream_response_time, $upstream_connect_time, and
$upstream_header_time variables.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в рабочем процессе мог произойти segmentation fault,
если использовался модуль ngx_http_mp4_module на 32-битных платформах.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if the ngx_http_mp4_module was used on 32-bit platforms.
</para>
</change>
</changes>
<changes ver="1.15.6" date="2018-11-06">
<change type="security">
<para lang="ru">
при использовании HTTP/2 клиент мог вызвать
чрезмерное потреблению памяти (CVE-2018-16843)
и ресурсов процессора (CVE-2018-16844).
</para>
<para lang="en">
when using HTTP/2 a client might cause
excessive memory consumption (CVE-2018-16843)
and CPU usage (CVE-2018-16844).
</para>
</change>
<change type="security">
<para lang="ru">
при обработке специально созданного mp4-файла модулем ngx_http_mp4_module
содержимое памяти рабочего процесса могло быть отправлено клиенту
(CVE-2018-16845).
</para>
<para lang="en">
processing of a specially crafted mp4 file with the ngx_http_mp4_module
might result in worker process memory disclosure
(CVE-2018-16845).
</para>
</change>
<change type="feature">
<para lang="ru">
директивы proxy_socket_keepalive, fastcgi_socket_keepalive,
grpc_socket_keepalive, memcached_socket_keepalive,
scgi_socket_keepalive и uwsgi_socket_keepalive.
</para>
<para lang="en">
the "proxy_socket_keepalive", "fastcgi_socket_keepalive",
"grpc_socket_keepalive", "memcached_socket_keepalive",
"scgi_socket_keepalive", and "uwsgi_socket_keepalive" directives.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если nginx был собран с OpenSSL 1.1.0, а использовался с OpenSSL 1.1.1,
протокол TLS 1.3 всегда был разрешён.
</para>
<para lang="en">
if nginx was built with OpenSSL 1.1.0 and used with OpenSSL 1.1.1,
the TLS 1.3 protocol was always enabled.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при работе с gRPC-бэкендами могло расходоваться большое количество памяти.
</para>
<para lang="en">
working with gRPC backends might result in excessive memory consumption.
</para>
</change>
</changes>
<changes ver="1.15.5" date="2018-10-02">
<change type="bugfix">
<para lang="ru">
при использовании OpenSSL 1.1.0h и новее
в рабочем процессе мог произойти segmentation fault;
ошибка появилась в 1.15.4.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
when using OpenSSL 1.1.0h or newer;
the bug had appeared in 1.15.4.
</para>
</change>
<change type="bugfix">
<para lang="ru">
незначительных потенциальных ошибок.
</para>
<para lang="en">
of minor potential bugs.
</para>
</change>
</changes>
<changes ver="1.15.4" date="2018-09-25">
<change type="feature">
<para lang="ru">
теперь директиву ssl_early_data можно использовать с OpenSSL.
</para>
<para lang="en">
now the "ssl_early_data" directive can be used with OpenSSL.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_uwsgi_module.<br/>
Спасибо Chris Caputo.
</para>
<para lang="en">
in the ngx_http_uwsgi_module.<br/>
Thanks to Chris Caputo.
</para>
</change>
<change type="bugfix">
<para lang="ru">
соединения к некоторым gRPC-бэкендам могли не кэшироваться
при использовании директивы keepalive.
</para>
<para lang="en">
connections with some gRPC backends might not be cached
when using the "keepalive" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы error_page для перенаправления ошибок,
возникающих на ранних этапах обработки запроса,
в частности ошибок с кодом 400,
могла происходить утечка сокетов.
</para>
<para lang="en">
a socket leak might occur
when using the "error_page" directive
to redirect early request processing errors,
notably errors with code 400.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива return при возврате ошибок не изменяла код ответа,
если запрос был перенаправлен с помощью директивы error_page.
</para>
<para lang="en">
the "return" directive did not change the response code when returning errors
if the request was redirected by the "error_page" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
стандартные сообщения об ошибках и ответы модуля ngx_http_autoindex_module
содержали атрибут bgcolor, что могло приводить к их некорректному отображению
при использовании пользовательских настроек цветов в браузерах.<br/>
Спасибо Nova DasSarma.
</para>
<para lang="en">
standard error pages and responses of the ngx_http_autoindex_module module
used the "bgcolor" attribute, and might be displayed incorrectly when using
custom color settings in browsers.<br/>
Thanks to Nova DasSarma.
</para>
</change>
<change type="change">
<para lang="ru">
уровень логгирования ошибок SSL "no suitable key share" и
"no suitable signature algorithm"
понижен с уровня crit до info.
</para>
<para lang="en">
the logging level of the "no suitable key share" and
"no suitable signature algorithm" SSL errors
has been lowered from "crit" to "info".
</para>
</change>
</changes>
<changes ver="1.15.3" date="2018-08-28">
<change type="feature">
<para lang="ru">
теперь TLSv1.3 можно использовать с BoringSSL.
</para>
<para lang="en">
now TLSv1.3 can be used with BoringSSL.
</para>
</change>
<change type="feature">
<para lang="ru">
директива ssl_early_data,
сейчас доступна при использовании BoringSSL.
</para>
<para lang="en">
the "ssl_early_data" directive,
currently available with BoringSSL.
</para>
</change>
<change type="feature">
<para lang="ru">
директивы keepalive_timeout и keepalive_requests
в блоке upstream.
</para>
<para lang="en">
the "keepalive_timeout" and "keepalive_requests" directives
in the "upstream" block.
</para>
</change>
<change type="bugfix">
<para lang="ru">
модуль ngx_http_dav_module
при копировании файла поверх существующего файла с помощью метода COPY
не обнулял целевой файл.
</para>
<para lang="en">
the ngx_http_dav_module
did not truncate destination file when copying a file over an existing one
with the COPY method.
</para>
</change>
<change type="bugfix">
<para lang="ru">
модуль ngx_http_dav_module
при перемещении файла между файловыми системами с помощью метода MOVE
устанавливал нулевые права доступа на результирующий файл
и не сохранял время изменения файла.
</para>
<para lang="en">
the ngx_http_dav_module
used zero access rights on the destination file
and did not preserve file modification time
when moving a file between different file systems with the MOVE method.
</para>
</change>
<change type="bugfix">
<para lang="ru">
модуль ngx_http_dav_module
при копировании файла с помощью метода COPY
для результирующего файла использовал права доступа по умолчанию.
</para>
<para lang="en">
the ngx_http_dav_module
used default access rights
when copying a file with the COPY method.
</para>
</change>
<change type="workaround">
<para lang="ru">
некоторые клиенты могли не работать при использовании HTTP/2;
ошибка появилась в 1.13.5.
</para>
<para lang="en">
some clients might not work when using HTTP/2;
the bug had appeared in 1.13.5.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался с LibreSSL 2.8.0.
</para>
<para lang="en">
nginx could not be built with LibreSSL 2.8.0.
</para>
</change>
</changes>
<changes ver="1.15.2" date="2018-07-24">
<change type="feature">
<para lang="ru">
переменная $ssl_preread_protocol
в модуле ngx_stream_ssl_preread_module.
</para>
<para lang="en">
the $ssl_preread_protocol variable
in the ngx_stream_ssl_preread_module.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь при использовании директивы reset_timedout_connection
nginx сбрасывает соединения, закрываемые с кодом 444.
</para>
<para lang="en">
now when using the "reset_timedout_connection" directive
nginx will reset connections being closed with the 444 code.
</para>
</change>
<change type="change">
<para lang="ru">
уровень логгирования ошибок SSL "http request", "https proxy request",
"unsupported protocol" и "version too low"
понижен с уровня crit до info.
</para>
<para lang="en">
a logging level of the "http request", "https proxy request",
"unsupported protocol", and "version too low" SSL errors
has been lowered from "crit" to "info".
</para>
</change>
<change type="bugfix">
<para lang="ru">
запросы к DNS-серверу не отправлялись повторно,
если при первой попытке отправки происходила ошибка.
</para>
<para lang="en">
DNS requests were not resent
if initial sending of a request failed.
</para>
</change>
<change type="bugfix">
<para lang="ru">
параметр reuseport директивы listen игнорировался,
если количество рабочих процессов было задано после директивы listen.
</para>
<para lang="en">
the "reuseport" parameter of the "listen" directive was ignored
if the number of worker processes was specified after the "listen" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании OpenSSL 1.1.0 и новее
директиву ssl_prefer_server_ciphers нельзя было выключить
в виртуальном сервере, если она была включена в сервере по умолчанию.
</para>
<para lang="en">
when using OpenSSL 1.1.0 or newer
it was not possible to switch off "ssl_prefer_server_ciphers" in
a virtual server if it was switched on in the default server.
</para>
</change>
<change type="bugfix">
<para lang="ru">
повторное использование SSL-сессий к бэкендам
не работало с протоколом TLS 1.3.
</para>
<para lang="en">
SSL session reuse with upstream servers
did not work with the TLS 1.3 protocol.
</para>
</change>
</changes>
<changes ver="1.15.1" date="2018-07-03">
<change type="feature">
<para lang="ru">
директива random в блоке upstream.
</para>
<para lang="en">
the "random" directive inside the "upstream" block.
</para>
</change>
<change type="feature">
<para lang="ru">
улучшена производительность при использовании директив hash и ip_hash
совместно с директивой zone.
</para>
<para lang="en">
improved performance when using the "hash" and "ip_hash" directives
with the "zone" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
параметр reuseport директивы listen
теперь использует SO_REUSEPORT_LB на FreeBSD 12.
</para>
<para lang="en">
the "reuseport" parameter of the "listen" directive
now uses SO_REUSEPORT_LB on FreeBSD 12.
</para>
</change>
<change type="bugfix">
<para lang="ru">
HTTP/2 server push не работал, если SSL терминировался прокси-сервером
перед nginx'ом.
</para>
<para lang="en">
HTTP/2 server push did not work if SSL was terminated by a proxy server
in front of nginx.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива tcp_nopush всегда использовалась для соединений к бэкендам.
</para>
<para lang="en">
the "tcp_nopush" directive was always used on backend connections.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при отправке сохранённого на диск тела запроса на gRPC-бэкенд
могли возникать ошибки.
</para>
<para lang="en">
sending a disk-buffered request body to a gRPC backend
might fail.
</para>
</change>
</changes>
<changes ver="1.15.0" date="2018-06-05">
<change type="change">
<para lang="ru">
директива "ssl" теперь считается устаревшей;
вместо неё следует использовать параметр ssl директивы listen.
</para>
<para lang="en">
the "ssl" directive is deprecated;
the "ssl" parameter of the "listen" directive should be used instead.
</para>
</change>
<change type="change">
<para lang="ru">
теперь при использовании директивы listen с параметром ssl
nginx определяет отсутствие SSL-сертификатов при тестировании конфигурации.
</para>
<para lang="en">
now nginx detects missing SSL certificates during configuration testing
when using the "ssl" parameter of the "listen" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь модуль stream умеет обрабатывать
несколько входящих UDP-пакетов от клиента в рамках одной сессии.
</para>
<para lang="en">
now the stream module can handle
multiple incoming UDP datagrams from a client within a single session.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в директиве proxy_cache_valid
можно было указать некорректный код ответа.
</para>
<para lang="en">
it was possible to specify an incorrect response code
in the "proxy_cache_valid" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался gcc 8.1.
</para>
<para lang="en">
nginx could not be built by gcc 8.1.
</para>
</change>
<change type="bugfix">
<para lang="ru">
логгирование в syslog останавливалось при изменении локального IP-адреса.
</para>
<para lang="en">
logging to syslog stopped on local IP address changes.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался компилятором clang, если был установлен CUDA SDK;
ошибка появилась в 1.13.8.
</para>
<para lang="en">
nginx could not be built by clang with CUDA SDK installed;
the bug had appeared in 1.13.8.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании unix domain listen-сокетов на FreeBSD
в процессе обновления исполняемого файла
в логе могли появляться сообщения "getsockopt(TCP_FASTOPEN) ... failed".
</para>
<para lang="en">
"getsockopt(TCP_FASTOPEN) ... failed" messages might appear in logs
during binary upgrade
when using unix domain listen sockets on FreeBSD.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался на Fedora 28 Linux.
</para>
<para lang="en">
nginx could not be built on Fedora 28 Linux.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы limit_req
заданная скорость обработки запросов могла не соблюдаться.
</para>
<para lang="en">
request processing rate might exceed configured rate
when using the "limit_req" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке адресов клиентов при использовании unix domain listen-сокетов
для работы с датаграммами на Linux.
</para>
<para lang="en">
in handling of client addresses when using unix domain listen sockets
to work with datagrams on Linux.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке ошибок выделения памяти.
</para>
<para lang="en">
in memory allocation error handling.
</para>
</change>
</changes>
<changes ver="1.13.12" date="2018-04-10">
<change type="bugfix">
<para lang="ru">
при возврате большого ответа
соединения с gRPC-бэкендами могли неожиданно закрываться.
</para>
<para lang="en">
connections with gRPC backends might be closed unexpectedly
when returning a large response.
</para>
</change>
</changes>
<changes ver="1.13.11" date="2018-04-03">
<change type="feature">
<para lang="ru">
параметр proxy_protocol директивы listen
теперь поддерживает протокол PROXY версии 2.
</para>
<para lang="en">
the "proxy_protocol" parameter of the "listen" directive
now supports the PROXY protocol version 2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался с OpenSSL 1.1.1 статически на Linux.
</para>
<para lang="en">
nginx could not be built with OpenSSL 1.1.1 statically on Linux.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в параметрах http_404, http_500 и им подобных
директивы proxy_next_upstream.
</para>
<para lang="en">
in the "http_404", "http_500", etc. parameters
of the "proxy_next_upstream" directive.
</para>
</change>
</changes>
<changes ver="1.13.10" date="2018-03-20">
<change type="feature">
<para lang="ru">
теперь параметр set в SSI-директиве include
позволяет сохранять в переменную любые ответы;
максимальный размер ответа задаётся директивой subrequest_output_buffer_size.
</para>
<para lang="en">
the "set" parameter of the "include" SSI directive now allows
writing arbitrary responses to a variable;
the "subrequest_output_buffer_size" directive defines maximum response size.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь nginx использует вызов clock_gettime(CLOCK_MONOTONIC), если он доступен,
что позволяет избежать некорректного срабатывания таймаутов
при изменениях системного времени.
</para>
<para lang="en">
now nginx uses clock_gettime(CLOCK_MONOTONIC) if available,
to avoid timeouts being incorrectly triggered
on system time changes.
</para>
</change>
<change type="feature">
<para lang="ru">
параметр "escape=none" директивы log_format.<br/>
Спасибо Johannes Baiter и Calin Don.
</para>
<para lang="en">
the "escape=none" parameter of the "log_format" directive.<br/>
Thanks to Johannes Baiter and Calin Don.
</para>
</change>
<change type="feature">
<para lang="ru">
переменная $ssl_preread_alpn_protocols
в модуле ngx_stream_ssl_preread_module.
</para>
<para lang="en">
the $ssl_preread_alpn_protocols variable
in the ngx_stream_ssl_preread_module.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_http_grpc_module.
</para>
<para lang="en">
the ngx_http_grpc_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке ошибок выделения памяти в директиве geo.
</para>
<para lang="en">
in memory allocation error handling in the "geo" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании переменных в директиве auth_basic_user_file
в лог мог выводиться символ '\0'.<br/>
Спасибо Вадиму Филимонову.
</para>
<para lang="en">
when using variables in the "auth_basic_user_file" directive
a null character might appear in logs.<br/>
Thanks to Vadim Filimonov.
</para>
</change>
</changes>
<changes ver="1.13.9" date="2018-02-20">
<change type="feature">
<para lang="ru">
поддержка HTTP/2 server push;
директивы http2_push и http2_push_preload.
</para>
<para lang="en">
HTTP/2 server push support;
the "http2_push" and "http2_push_preload" directives.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании кэша
в логах могли появляться сообщения "header already sent";
ошибка появилась в 1.9.13.
</para>
<para lang="en">
"header already sent" alerts might appear in logs
when using cache;
the bug had appeared in 1.9.13.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы ssl_verify_client
в рабочем процессе мог произойти segmentation fault,
если в виртуальном сервере не был указан SSL-сертификат.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if the "ssl_verify_client" directive was used
and no SSL certificate was specified in a virtual server.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_v2_module.
</para>
<para lang="en">
in the ngx_http_v2_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_dav_module.
</para>
<para lang="en">
in the ngx_http_dav_module.
</para>
</change>
</changes>
<changes ver="1.13.8" date="2017-12-26">
<change type="feature">
<para lang="ru">
теперь при использовании параметра transparent директив proxy_bind,
fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
nginx автоматически сохраняет capability CAP_NET_RAW в рабочих процессах.
</para>
<para lang="en">
now nginx automatically preserves the CAP_NET_RAW capability in worker processes
when using the "transparent" parameter of the "proxy_bind",
"fastcgi_bind", "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
</para>
</change>
<change type="feature">
<para lang="ru">
улучшения в определении размера строки кэша процессора.<br/>
Спасибо Debayan Ghosh.
</para>
<para lang="en">
improved CPU cache line size detection.<br/>
Thanks to Debayan Ghosh.
</para>
</change>
<change type="feature">
<para lang="ru">
новые директивы в скриптах подсветки синтаксиса для vim.<br/>
Спасибо Геннадию Махомеду.
</para>
<para lang="en">
new directives in vim syntax highlighting scripts.<br/>
Thanks to Gena Makhomed.
</para>
</change>
<change type="bugfix">
<para lang="ru">
процедура обновления исполняемого файла не работала,
если после завершения родительского процесса
новым родительским процессом nginx'а становился процесс с PID, отличным от 1.
</para>
<para lang="en">
binary upgrade refused to work
if nginx was re-parented to a process with PID different from 1
after its parent process has finished.
</para>
</change>
<change type="bugfix">
<para lang="ru">
модуль ngx_http_autoindex_module неправильно обрабатывал запросы с телом.
</para>
<para lang="en">
the ngx_http_autoindex_module incorrectly handled requests with bodies.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в директиве proxy_limit_rate при использовании с директивой keepalive.
</para>
<para lang="en">
in the "proxy_limit_rate" directive when used with the "keepalive" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании "proxy_buffering off" часть ответа могла буферизироваться,
если клиентское соединение использовало SSL.<br/>
Спасибо Patryk Lesiewicz.
</para>
<para lang="en">
some parts of a response might be buffered when using "proxy_buffering off"
if the client connection used SSL.<br/>
Thanks to Patryk Lesiewicz.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в директиве proxy_cache_background_update.
</para>
<para lang="en">
in the "proxy_cache_background_update" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
переменную вида "${name}" с именем в фигурных скобках
нельзя было использовать в начале параметра
не заключив весь параметр в кавычки.
</para>
<para lang="en">
it was not possible to start a parameter
with a variable in the "${name}" form with the name in curly brackets
without enclosing the parameter into single or double quotes.
</para>
</change>
</changes>
<changes ver="1.13.7" date="2017-11-21">
<change type="bugfix">
<para lang="ru">
в переменной $upstream_status.
</para>
<para lang="en">
in the $upstream_status variable.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в рабочем процессе мог произойти segmentation fault,
если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if a backend returned a "101 Switching Protocols" response to a subrequest.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если при переконфигурации изменялся размер зоны разделяемой памяти
и переконфигурация завершалась неудачно,
то в главном процессе происходил segmentation fault.
</para>
<para lang="en">
a segmentation fault occurred in a master process
if a shared memory zone size was changed during a reconfiguration
and the reconfiguration failed.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_fastcgi_module.
</para>
<para lang="en">
in the ngx_http_fastcgi_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx возвращал ошибку 500,
если в директиве xslt_stylesheet
были заданы параметры без использования переменных.
</para>
<para lang="en">
nginx returned the 500 error
if parameters without variables were specified
in the "xslt_stylesheet" directive.
</para>
</change>
<change type="workaround">
<para lang="ru">
при использовании варианта библиотеки zlib от Intel
в лог писались сообщения "gzip filter failed to use preallocated memory".
</para>
<para lang="en">
"gzip filter failed to use preallocated memory" alerts appeared in logs
when using a zlib library variant from Intel.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива worker_shutdown_timeout не работала
при использовании почтового прокси-сервера
и при проксировании WebSocket-соединений.
</para>
<para lang="en">
the "worker_shutdown_timeout" directive did not work
when using mail proxy and when proxying WebSocket connections.
</para>
</change>
</changes>
<changes ver="1.13.6" date="2017-10-10">
<change type="bugfix">
<para lang="ru">
при использовании директивы ssl_preread
в модуле stream не работало переключение на следующий бэкенд.
</para>
<para lang="en">
switching to the next upstream server in the stream module did not work
when using the "ssl_preread" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_v2_module.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
in the ngx_http_v2_module.<br/>
Thanks to Piotr Sikora.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не поддерживал даты после 2038 года
на 32-битных платформах с 64-битным time_t.
</para>
<para lang="en">
nginx did not support dates after the year 2038
on 32-bit platforms with 64-bit time_t.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке дат до 1970 года и после 10000 года.
</para>
<para lang="en">
in handling of dates prior to the year 1970 and after the year 10000.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле stream таймауты ожидания UDP-пакетов от бэкендов
не логгировались или логгировались на уровне info вместо error.
</para>
<para lang="en">
in the stream module timeouts waiting for UDP datagrams from upstream servers
were not logged or logged at the "info" level instead of "error".
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 nginx мог вернуть ошибку 400,
не указав в логе причину.
</para>
<para lang="en">
when using HTTP/2 nginx might return the 400 response
without logging the reason.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке повреждённых файлов кэша.
</para>
<para lang="en">
in processing of corrupted cache files.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при кэшировании ошибок, перехваченных error_page,
не учитывались заголовки управления кэшированием.
</para>
<para lang="en">
cache control headers were ignored
when caching errors intercepted by error_page.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 тело запроса могло быть повреждено.
</para>
<para lang="en">
when using HTTP/2 client request body might be corrupted.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке адресов клиентов при использовании unix domain сокетов.
</para>
<para lang="en">
in handling of client addresses when using unix domain sockets.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы "hash ... consistent" в блоке upstream
nginx нагружал процессор, если использовались большие веса
и все или почти все бэкенды были недоступны.
</para>
<para lang="en">
nginx hogged CPU
when using the "hash ... consistent" directive in the upstream block
if large weights were used and all or most of the servers were unavailable.
</para>
</change>
</changes>
<changes ver="1.13.5" date="2017-09-05">
<change type="feature">
<para lang="ru">
переменная $ssl_client_escaped_cert.
</para>
<para lang="en">
the $ssl_client_escaped_cert variable.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива ssl_session_ticket_key и параметр include директивы geo
не работали на Windows.
</para>
<para lang="en">
the "ssl_session_ticket_key" directive and
the "include" parameter of the "geo" directive did not work on Windows.
</para>
</change>
<change type="bugfix">
<para lang="ru">
на 32-битных платформах
при запросе более 4 гигабайт с помощью нескольких диапазонов
возвращалась некорректная длина ответа.
</para>
<para lang="en">
incorrect response length was returned
on 32-bit platforms when requesting more than 4 gigabytes
with multiple ranges.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива "expires modified" и
обработка строки If-Range заголовка запроса
не учитывали время последнего изменения ответа,
если использовалось проксирование без кэширования.
</para>
<para lang="en">
the "expires modified" directive and
processing of the "If-Range" request header line
did not use the response last modification time
if proxying without caching was used.
</para>
</change>
</changes>
<changes ver="1.13.4" date="2017-08-08">
<change type="feature">
<para lang="ru">
модуль ngx_http_mirror_module.
</para>
<para lang="en">
the ngx_http_mirror_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
клиентские соединения могли сбрасываться при тестировании конфигурации,
если использовался параметр reuseport директивы listen на Linux.
</para>
<para lang="en">
client connections might be dropped during configuration testing
when using the "reuseport" parameter of the "listen" directive on Linux.
</para>
</change>
<change type="bugfix">
<para lang="ru">
тело запроса могло быть недоступно в подзапросах,
если оно было сохранено в файл и использовалось проксирование.
</para>
<para lang="en">
request body might not be available in subrequests
if it was saved to a file and proxying was used.
</para>
</change>
<change type="bugfix">
<para lang="ru">
очистка кэша по max_size не работала на Windows.
</para>
<para lang="en">
cleaning cache based on the "max_size" parameter did not work on Windows.
</para>
</change>
<change type="bugfix">
<para lang="ru">
любое выделение разделяемой памяти на Windows требовало 4096 байт памяти.
</para>
<para lang="en">
any shared memory allocation required 4096 bytes on Windows.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы zone в блоке upstream на Windows
рабочий процесс мог завершаться аварийно.
</para>
<para lang="en">
nginx worker might be terminated abnormally
when using the "zone" directive inside the "upstream" block on Windows.
</para>
</change>
</changes>
<changes ver="1.13.3" date="2017-07-11">
<change type="security">
<para lang="ru">
специально созданный запрос мог вызвать целочисленное переполнение
в range-фильтре и последующую некорректную обработку запрошенных диапазонов,
что потенциально могло привести к утечке конфиденциальной информации
(CVE-2017-7529).
</para>
<para lang="en">
a specially crafted request might result in an integer overflow
and incorrect processing of ranges in the range filter,
potentially resulting in sensitive information leak
(CVE-2017-7529).
</para>
</change>
</changes>
<changes ver="1.13.2" date="2017-06-27">
<change type="change">
<para lang="ru">
теперь при запросе диапазона, начинающегося с 0, из пустого файла
nginx возвращает ответ 200 вместо 416.
</para>
<para lang="en">
nginx now returns 200 instead of 416
when a range starting with 0 is requested from an empty file.
</para>
</change>
<change type="feature">
<para lang="ru">
директива add_trailer.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
the "add_trailer" directive.<br/>
Thanks to Piotr Sikora.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался под Cygwin и NetBSD;
ошибка появилась в 1.13.0.
</para>
<para lang="en">
nginx could not be built on Cygwin and NetBSD;
the bug had appeared in 1.13.0.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался под MSYS2 / MinGW 64-bit.<br/>
Спасибо Orgad Shaneh.
</para>
<para lang="en">
nginx could not be built under MSYS2 / MinGW 64-bit.<br/>
Thanks to Orgad Shaneh.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании SSI с большим количеством подзапросов
и proxy_pass с переменными
в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
when using SSI with many includes
and proxy_pass with variables.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_v2_module.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
in the ngx_http_v2_module.<br/>
Thanks to Piotr Sikora.
</para>
</change>
</changes>
<changes ver="1.13.1" date="2017-05-30">
<change type="feature">
<para lang="ru">
теперь в качестве параметра директивы set_real_ip_from
можно указывать имя хоста.
</para>
<para lang="en">
now a hostname can be used
as the "set_real_ip_from" directive parameter.
</para>
</change>
<change type="feature">
<para lang="ru">
улучшения в скриптах подсветки синтаксиса для vim.
</para>
<para lang="en">
vim syntax highlighting scripts improvements.
</para>
</change>
<change type="feature">
<para lang="ru">
директива worker_cpu_affinity теперь работает на DragonFly BSD.<br/>
Спасибо Sepherosa Ziehau.
</para>
<para lang="en">
the "worker_cpu_affinity" directive now works on DragonFly BSD.<br/>
Thanks to Sepherosa Ziehau.
</para>
</change>
<change type="bugfix">
<para lang="ru">
SSL renegotiation в соединениях к бэкендам
не работал при использовании OpenSSL до 1.1.0.
</para>
<para lang="en">
SSL renegotiation on backend connections
did not work when using OpenSSL before 1.1.0.
</para>
</change>
<change type="workaround">
<para lang="ru">
nginx не собирался с Oracle Developer Studio 12.5.
</para>
<para lang="en">
nginx could not be built with Oracle Developer Studio 12.5.
</para>
</change>
<change type="workaround">
<para lang="ru">
теперь cache manager пропускает заблокированные записи
при очистке кэша по max_size.
</para>
<para lang="en">
now cache manager ignores long locked cache entries
when cleaning cache based on the "max_size" parameter.
</para>
</change>
<change type="bugfix">
<para lang="ru">
клиентские SSL-соединения сразу закрывались, если использовался
отложенный accept и параметр proxy_protocol директивы listen.
</para>
<para lang="en">
client SSL connections were immediately closed if deferred accept
and the "proxy_protocol" parameter of the "listen" directive were used.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в директиве proxy_cache_background_update.
</para>
<para lang="en">
in the "proxy_cache_background_update" directive.
</para>
</change>
<change type="workaround">
<para lang="ru">
теперь директива tcp_nodelay
устанавливает опцию TCP_NODELAY перед SSL handshake.
</para>
<para lang="en">
now the "tcp_nodelay" directive
sets the TCP_NODELAY option before an SSL handshake.
</para>
</change>
</changes>
<changes ver="1.13.0" date="2017-04-25">
<change type="change">
<para lang="ru">
теперь SSL renegotiation допускается в соединениях к бэкендам.
</para>
<para lang="en">
SSL renegotiation is now allowed on backend connections.
</para>
</change>
<change type="feature">
<para lang="ru">
параметры rcvbuf и sndbuf директив listen
в почтовом прокси-сервере и модуле stream.
</para>
<para lang="en">
the "rcvbuf" and "sndbuf" parameters of the "listen" directives
of the mail proxy and stream modules.
</para>
</change>
<change type="feature">
<para lang="ru">
директивы return и error_page теперь могут использоваться для возврата
перенаправлений с кодом 308.<br/>
Спасибо Simon Leblanc.
</para>
<para lang="en">
the "return" and "error_page" directives can now be used to return 308
redirections.<br/>
Thanks to Simon Leblanc.
</para>
</change>
<change type="feature">
<para lang="ru">
параметр TLSv1.3 в директиве ssl_protocols.
</para>
<para lang="en">
the "TLSv1.3" parameter of the "ssl_protocols" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
при логгировании сигналов теперь указывается PID отправившего сигнал процесса.
</para>
<para lang="en">
when logging signals nginx now logs PID of the process which sent the signal.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке ошибок выделения памяти.
</para>
<para lang="en">
in memory allocation error handling.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если сервер в модуле stream слушал на wildcard-адресе,
исходящий адрес ответного UDP-пакета
мог отличаться от адреса назначения исходного пакета.
</para>
<para lang="en">
if a server in the stream module listened on a wildcard address,
the source address of a response UDP datagram could differ
from the original datagram destination address.
</para>
</change>
</changes>
<changes ver="1.11.13" date="2017-04-04">
<change type="feature">
<para lang="ru">
параметр http_429 в директивах proxy_next_upstream, fastcgi_next_upstream,
scgi_next_upstream и uwsgi_next_upstream.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
the "http_429" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
"scgi_next_upstream", and "uwsgi_next_upstream" directives.<br/>
Thanks to Piotr Sikora.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке ошибок выделения памяти.
</para>
<para lang="en">
in memory allocation error handling.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директив sendfile и timer_resolution на Linux
запросы могли зависать.
</para>
<para lang="en">
requests might hang
when using the "sendfile" and "timer_resolution" directives on Linux.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании с подзапросами директив sendfile и aio_write
запросы могли зависать.
</para>
<para lang="en">
requests might hang
when using the "sendfile" and "aio_write" directives with subrequests.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_v2_module.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
in the ngx_http_v2_module.<br/>
Thanks to Piotr Sikora.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
запросы могли зависать
при использовании с подзапросами директив limit_rate, sendfile_max_chunk,
limit_req или метода $r->sleep() встроенного перла.
</para>
<para lang="en">
requests might hang
when using the "limit_rate", "sendfile_max_chunk", "limit_req" directives,
or the $r->sleep() embedded perl method with subrequests.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_slice_module.
</para>
<para lang="en">
in the ngx_http_slice_module.
</para>
</change>
</changes>
<changes ver="1.11.12" date="2017-03-24">
<change type="bugfix">
<para lang="ru">
nginx мог нагружать процессор;
ошибка появилась в 1.11.11.
</para>
<para lang="en">
nginx might hog CPU;
the bug had appeared in 1.11.11.
</para>
</change>
</changes>
<changes ver="1.11.11" date="2017-03-21">
<change type="feature">
<para lang="ru">
директива worker_shutdown_timeout.
</para>
<para lang="en">
the "worker_shutdown_timeout" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
улучшения в скриптах подсветки синтаксиса для vim.<br/>
Спасибо Wei-Ko Kao.
</para>
<para lang="en">
vim syntax highlighting scripts improvements.<br/>
Thanks to Wei-Ko Kao.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при попытке установить переменную $limit_rate в пустую строку
в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if the $limit_rate variable was set to an empty string.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директивы proxy_cache_background_update, fastcgi_cache_background_update,
scgi_cache_background_update и uwsgi_cache_background_update
могли работать некорректно, если использовалась директива if.
</para>
<para lang="en">
the "proxy_cache_background_update", "fastcgi_cache_background_update",
"scgi_cache_background_update", and "uwsgi_cache_background_update" directives
might work incorrectly if the "if" directive was used.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в рабочем процессе мог произойти segmentation fault,
если количество large_client_header_buffers в виртуальном сервере
отличалось от такового в сервере по умолчанию.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if number of large_client_header_buffers in a virtual server
was different from the one in the default server.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в почтовом прокси-сервере.
</para>
<para lang="en">
in the mail proxy server.
</para>
</change>
</changes>
<changes ver="1.11.10" date="2017-02-14">
<change type="change">
<para lang="ru">
формат заголовка кэша был изменен,
ранее закэшированные ответы будут загружены заново.
</para>
<para lang="en">
cache header format has been changed,
previously cached responses will be invalidated.
</para>
</change>
<change type="feature">
<para lang="ru">
поддержка расширений stale-while-revalidate и stale-if-error
в строке "Cache-Control" в заголовке ответа бэкенда.
</para>
<para lang="en">
support of "stale-while-revalidate" and "stale-if-error" extensions
in the "Cache-Control" backend response header line.
</para>
</change>
<change type="feature">
<para lang="ru">
директивы proxy_cache_background_update, fastcgi_cache_background_update,
scgi_cache_background_update и uwsgi_cache_background_update.
</para>
<para lang="en">
the "proxy_cache_background_update", "fastcgi_cache_background_update",
"scgi_cache_background_update", and "uwsgi_cache_background_update" directives.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь nginx может кэшировать ответы
со строкой Vary заголовка длиной до 128 символов
(вместо 42 символов в предыдущих версиях).
</para>
<para lang="en">
nginx is now able to cache responses
with the "Vary" header line up to 128 characters long
(instead of 42 characters in previous versions).
</para>
</change>
<change type="feature">
<para lang="ru">
параметр build директивы server_tokens.<br/>
Спасибо Tom Thorogood.
</para>
<para lang="en">
the "build" parameter of the "server_tokens" directive.<br/>
Thanks to Tom Thorogood.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса
в логах могли появляться сообщения "[crit] SSL_write() failed".
</para>
<para lang="en">
"[crit] SSL_write() failed" messages might appear in logs
when handling requests with the "Expect: 100-continue" request header line.
</para>
</change>
<change type="bugfix">
<para lang="ru">
модуль ngx_http_slice_module не работал в именованных location'ах.
</para>
<para lang="en">
the ngx_http_slice_module did not work in named locations.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании AIO после перенаправления запроса с помощью X-Accel-Redirect
в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
when using AIO after an "X-Accel-Redirect" redirection.
</para>
</change>
<change type="bugfix">
<para lang="ru">
уменьшено потребление памяти для долгоживущих запросов, использующих сжатие.
</para>
<para lang="en">
reduced memory consumption for long-lived requests using gzipping.
</para>
</change>
</changes>
<changes ver="1.11.9" date="2017-01-24">
<change type="bugfix">
<para lang="ru">
при использовании модуля stream nginx мог нагружать процессор;
ошибка появилась в 1.11.5.
</para>
<para lang="en">
nginx might hog CPU when using the stream module;
the bug had appeared in 1.11.5.
</para>
</change>
<change type="bugfix">
<para lang="ru">
метод аутентификации EXTERNAL в почтовом прокси-сервере
можно было использовать, даже если он не был разрешён в конфигурации.
</para>
<para lang="en">
EXTERNAL authentication mechanism in mail proxy
was accepted even if it was not enabled in the configuration.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы ssl_verify_client модуля stream
в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if the "ssl_verify_client" directive of the stream module was used.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива ssl_verify_client модуля stream могла не работать.
</para>
<para lang="en">
the "ssl_verify_client" directive of the stream module might not work.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при исчерпании рабочим процессом свободных соединений
keepalive-соединения могли закрываться излишне агрессивно.<br/>
Спасибо Joel Cunningham.
</para>
<para lang="en">
closing keepalive connections due to no free worker connections
might be too aggressive.<br/>
Thanks to Joel Cunningham.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы sendfile на FreeBSD и macOS
мог возвращаться некорректный ответ;
ошибка появилась в 1.7.8.
</para>
<para lang="en">
an incorrect response might be returned
when using the "sendfile" directive on FreeBSD and macOS;
the bug had appeared in 1.7.8.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы aio_write
ответ мог сохраняться в кэш не полностью.
</para>
<para lang="en">
a truncated response might be stored in cache
when using the "aio_write" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы aio_write
могла происходить утечка сокетов.
</para>
<para lang="en">
a socket leak might occur
when using the "aio_write" directive.
</para>
</change>
</changes>
<changes ver="1.11.8" date="2016-12-27">
<change type="feature">
<para lang="ru">
директива absolute_redirect.
</para>
<para lang="en">
the "absolute_redirect" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
параметр escape директивы log_format.
</para>
<para lang="en">
the "escape" parameter of the "log_format" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
проверка клиентских SSL-сертификатов в модуле stream.
</para>
<para lang="en">
client SSL certificates verification in the stream module.
</para>
</change>
<change type="feature">
<para lang="ru">
директива ssl_session_ticket_key поддерживает
шифрование TLS session tickets с помощью AES256
при использовании с 80-байтными ключами.
</para>
<para lang="en">
the "ssl_session_ticket_key" directive supports
AES256 encryption of TLS session tickets
when used with 80-byte keys.
</para>
</change>
<change type="feature">
<para lang="ru">
поддержка vim-commentary в скриптах для vim.<br/>
Спасибо Armin Grodon.
</para>
<para lang="en">
vim-commentary support in vim scripts.<br/>
Thanks to Armin Grodon.
</para>
</change>
<change type="bugfix">
<para lang="ru">
рекурсия при получении значений переменных не ограничивалась.
</para>
<para lang="en">
recursion when evaluating variables was not limited.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_stream_ssl_preread_module.
</para>
<para lang="en">
in the ngx_stream_ssl_preread_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если сервер, описанный в блоке upstream в модуле stream,
был признан неработающим, то после истечения fail_timeout он
признавался работающим только после завершения тестового соединения;
теперь достаточно, чтобы соединение было успешно установлено.
</para>
<para lang="en">
if a server in an upstream in the stream module failed,
it was considered alive only when a test connection sent
to it after fail_timeout was closed;
now a successfully established connection is enough.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx/Windows не собирался с 64-битным Visual Studio.
</para>
<para lang="en">
nginx/Windows could not be built with 64-bit Visual Studio.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx/Windows не собирался с OpenSSL 1.1.0.
</para>
<para lang="en">
nginx/Windows could not be built with OpenSSL 1.1.0.
</para>
</change>
</changes>
<changes ver="1.11.7" date="2016-12-13">
<change type="change">
<para lang="ru">
переменная $ssl_client_verify теперь
в случае ошибки проверки клиентского сертификата
содержит строку с описанием ошибки,
например, "FAILED:certificate has expired".
</para>
<para lang="en">
now in case of a client certificate verification error
the $ssl_client_verify variable contains a string with the failure reason,
for example, "FAILED:certificate has expired".
</para>
</change>
<change type="feature">
<para lang="ru">
переменные $ssl_ciphers, $ssl_curves,
$ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
</para>
<para lang="en">
the $ssl_ciphers, $ssl_curves,
$ssl_client_v_start, $ssl_client_v_end, and $ssl_client_v_remain variables.
</para>
</change>
<change type="feature">
<para lang="ru">
параметр volatile директивы map.
</para>
<para lang="en">
the "volatile" parameter of the "map" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при сборке динамических модулей
не учитывались заданные для модуля зависимости.
</para>
<para lang="en">
dependencies specified for a module
were ignored while building dynamic modules.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 и директив limit_req или auth_request
тело запроса могло быть повреждено;
ошибка появилась в 1.11.0.
</para>
<para lang="en">
when using HTTP/2 and the "limit_req" or "auth_request" directives
client request body might be corrupted;
the bug had appeared in 1.11.0.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault;
ошибка появилась в 1.11.3.
</para>
<para lang="en">
a segmentation fault might occur in a worker process when using HTTP/2;
the bug had appeared in 1.11.3.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_mp4_module.<br/>
Спасибо Congcong Hu.
</para>
<para lang="en">
in the ngx_http_mp4_module.<br/>
Thanks to Congcong Hu.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_perl_module.
</para>
<para lang="en">
in the ngx_http_perl_module.
</para>
</change>
</changes>
<changes ver="1.11.6" date="2016-11-15">
<change type="change">
<para lang="ru">
формат переменных $ssl_client_s_dn и $ssl_client_i_dn
изменён на соответствующий RFC 2253 (RFC 4514);
значения в старом формате доступны через переменные
$ssl_client_s_dn_legacy и $ssl_client_i_dn_legacy.
</para>
<para lang="en">
format of the $ssl_client_s_dn and $ssl_client_i_dn variables
has been changed to follow RFC 2253 (RFC 4514);
values in the old format are available in
the $ssl_client_s_dn_legacy and $ssl_client_i_dn_legacy variables.
</para>
</change>
<change type="change">
<para lang="ru">
при сохранении временных файлов в каталоге кэша
они теперь располагаются не в отдельном подкаталоге для временных файлов,
а в том же подкаталоге, что и соответствующие файлы в кэше.
</para>
<para lang="en">
when storing temporary files in a cache directory
they will be stored in the same subdirectories as corresponding cache files
instead of a separate subdirectory for temporary files.
</para>
</change>
<change type="feature">
<para lang="ru">
поддержка метода аутентификации EXTERNAL
в почтовом прокси-сервере.<br/>
Спасибо Robert Norris.
</para>
<para lang="en">
EXTERNAL authentication mechanism support
in mail proxy.<br/>
Thanks to Robert Norris.
</para>
</change>
<change type="feature">
<para lang="ru">
поддержка WebP в модуле ngx_http_image_filter_module.
</para>
<para lang="en">
WebP support in the ngx_http_image_filter_module.
</para>
</change>
<change type="feature">
<para lang="ru">
директива proxy_method поддерживает переменные.<br/>
Спасибо Дмитрию Лазуркину.
</para>
<para lang="en">
variables support in the "proxy_method" directive.<br/>
Thanks to Dmitry Lazurkin.
</para>
</change>
<change type="feature">
<para lang="ru">
директива http2_max_requests в модуле ngx_http_v2_module.
</para>
<para lang="en">
the "http2_max_requests" directive in the ngx_http_v2_module.
</para>
</change>
<change type="feature">
<para lang="ru">
директивы proxy_cache_max_range_offset, fastcgi_cache_max_range_offset,
scgi_cache_max_range_offset и uwsgi_cache_max_range_offset.
</para>
<para lang="en">
the "proxy_cache_max_range_offset", "fastcgi_cache_max_range_offset",
"scgi_cache_max_range_offset", and "uwsgi_cache_max_range_offset" directives.
</para>
</change>
<change type="bugfix">
<para lang="ru">
плавное завершение старых рабочих процессов могло занимать бесконечное время
при использовании HTTP/2.
</para>
<para lang="en">
graceful shutdown of old worker processes might require infinite time
when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_mp4_module.
</para>
<para lang="en">
in the ngx_http_mp4_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при проксировании WebSocket-соединений и включённом кэшировании
в логах могли появляться сообщения "ignore long locked inactive cache entry".
</para>
<para lang="en">
"ignore long locked inactive cache entry" alerts might appear in logs
when proxying WebSocket connections with caching enabled.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если во время SSL handshake с бэкендом происходил таймаут,
nginx ничего не писал в лог
и возвращал ответ с кодом 502 вместо 504.
</para>
<para lang="en">
nginx did not write anything to log
and returned a response with code 502 instead of 504
when a timeout occurred during an SSL handshake to a backend.
</para>
</change>
</changes>
<changes ver="1.11.5" date="2016-10-11">
<change type="change">
<para lang="ru">
параметр configure --with-ipv6 упразднён,
поддержка IPv6 теперь собирается автоматически.
</para>
<para lang="en">
the --with-ipv6 configure option was removed,
now IPv6 support is configured automatically.
</para>
</change>
<change type="change">
<para lang="ru">
теперь, если в блоке upstream не оказалось доступных серверов,
nginx не сбрасывает статистику ошибок всех серверов, как делал ранее,
а ожидает истечения fail_timeout.
</para>
<para lang="en">
now if there are no available servers in an upstream,
nginx will not reset number of failures of all servers as it previously did,
but will wait for fail_timeout to expire.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_stream_ssl_preread_module.
</para>
<para lang="en">
the ngx_stream_ssl_preread_module.
</para>
</change>
<change type="feature">
<para lang="ru">
директива server в блоке upstream поддерживает параметр max_conns.
</para>
<para lang="en">
the "server" directive in the "upstream" context supports
the "max_conns" parameter.
</para>
</change>
<change type="feature">
<para lang="ru">
параметр configure --with-compat.
</para>
<para lang="en">
the --with-compat configure option.
</para>
</change>
<change type="feature">
<para lang="ru">
параметры manager_files, manager_threshold и manager_sleep
директив proxy_cache_path, fastcgi_cache_path, scgi_cache_path и
uwsgi_cache_path.
</para>
<para lang="en">
"manager_files", "manager_threshold", and "manager_sleep" parameters
of the "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path", and
"uwsgi_cache_path" directives.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при сборке perl-модуля не использовались флаги,
заданные с помощью параметра configure --with-ld-opt.
</para>
<para lang="en">
flags passed by the --with-ld-opt configure option
were not used while building perl module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в директиве add_after_body при использовании совместно с директивой sub_filter.
</para>
<para lang="en">
in the "add_after_body" directive when used with the "sub_filter" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в переменной $realip_remote_addr.
</para>
<para lang="en">
in the $realip_remote_addr variable.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директивы dav_access, proxy_store_access, fastcgi_store_access,
scgi_store_access и uwsgi_store_access
игнорировали права, заданные для пользователя.
</para>
<para lang="en">
the "dav_access", "proxy_store_access", "fastcgi_store_access",
"scgi_store_access", and "uwsgi_store_access" directives
ignored permissions specified for user.
</para>
</change>
<change type="bugfix">
<para lang="ru">
unix domain listen-сокеты могли не наследоваться
при обновлении исполняемого файла на Linux.
</para>
<para lang="en">
unix domain listen sockets might not be inherited
during binary upgrade on Linux.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx возвращал ошибку 400 на запросы
с символом "-" в HTTP-методе.
</para>
<para lang="en">
nginx returned the 400 response on requests
with the "-" character in the HTTP method.
</para>
</change>
</changes>
<changes ver="1.11.4" date="2016-09-13">
<change type="feature">
<para lang="ru">
переменная $upstream_bytes_received.
</para>
<para lang="en">
the $upstream_bytes_received variable.
</para>
</change>
<change type="feature">
<para lang="ru">
переменные $bytes_received, $session_time, $protocol, $status,
$upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
$upstream_connect_time, $upstream_first_byte_time
и $upstream_session_time в модуле stream.
</para>
<para lang="en">
the $bytes_received, $session_time, $protocol, $status,
$upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
$upstream_connect_time, $upstream_first_byte_time,
and $upstream_session_time variables in the stream module.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_stream_log_module.
</para>
<para lang="en">
the ngx_stream_log_module.
</para>
</change>
<change type="feature">
<para lang="ru">
параметр proxy_protocol в директиве listen,
переменные $proxy_protocol_addr и $proxy_protocol_port
в модуле stream.
</para>
<para lang="en">
the "proxy_protocol" parameter of the "listen" directive,
the $proxy_protocol_addr and $proxy_protocol_port variables
in the stream module.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_stream_realip_module.
</para>
<para lang="en">
the ngx_stream_realip_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался с модулем stream и модулем ngx_http_ssl_module,
но без модуля ngx_stream_ssl_module;
ошибка появилась в 1.11.3.
</para>
<para lang="en">
nginx could not be built with the stream module and the ngx_http_ssl_module,
but without ngx_stream_ssl_module;
the bug had appeared in 1.11.3.
</para>
</change>
<change type="feature">
<para lang="ru">
опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
ошибка появилась в 1.11.2.
</para>
<para lang="en">
the IP_BIND_ADDRESS_NO_PORT socket option was not used;
the bug had appeared in 1.11.2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в параметре ranges директивы geo.
</para>
<para lang="en">
in the "ranges" parameter of the "geo" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директив "aio threads" и sendfile
мог возвращаться некорректный ответ; ошибка появилась в 1.9.13.
</para>
<para lang="en">
an incorrect response might be returned
when using the "aio threads" and "sendfile" directives;
the bug had appeared in 1.9.13.
</para>
</change>
</changes>
<changes ver="1.11.3" date="2016-07-26">
<change type="change">
<para lang="ru">
теперь accept_mutex по умолчанию выключен.
</para>
<para lang="en">
now the "accept_mutex" directive is turned off by default.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь nginx использует EPOLLEXCLUSIVE на Linux.
</para>
<para lang="en">
now nginx uses EPOLLEXCLUSIVE on Linux.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_stream_geo_module.
</para>
<para lang="en">
the ngx_stream_geo_module.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_stream_geoip_module.
</para>
<para lang="en">
the ngx_stream_geoip_module.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_stream_split_clients_module.
</para>
<para lang="en">
the ngx_stream_split_clients_module.
</para>
</change>
<change type="feature">
<para lang="ru">
директивы proxy_pass и proxy_ssl_name в модуле stream
поддерживают переменные.
</para>
<para lang="en">
variables support
in the "proxy_pass" and "proxy_ssl_name" directives in the stream module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
утечки сокетов при использовании HTTP/2.
</para>
<para lang="en">
socket leak when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в configure.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
in configure tests.<br/>
Thanks to Piotr Sikora.
</para>
</change>
</changes>
<changes ver="1.11.2" date="2016-07-05">
<change type="change">
<para lang="ru">
теперь nginx всегда использует внутренние реализации MD5 и SHA1;
параметры configure --with-md5 и --with-sha1 упразднены.
</para>
<para lang="en">
now nginx always uses internal MD5 and SHA1 implementations;
the --with-md5 and --with-sha1 configure options were canceled.
</para>
</change>
<change type="feature">
<para lang="ru">
поддержка переменных в модуле stream.
</para>
<para lang="en">
variables support in the stream module.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_stream_map_module.
</para>
<para lang="en">
the ngx_stream_map_module.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_stream_return_module.
</para>
<para lang="en">
the ngx_stream_return_module.
</para>
</change>
<change type="feature">
<para lang="ru">
в директивах proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
теперь можно указывать порт.
</para>
<para lang="en">
a port can be specified in the "proxy_bind", "fastcgi_bind",
"memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь nginx использует опцию сокета IP_BIND_ADDRESS_NO_PORT, если она доступна.
</para>
<para lang="en">
now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option when available.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 и директивы proxy_request_buffering
в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
when using HTTP/2 and the "proxy_request_buffering" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2
к запросам, передаваемым на бэкенд,
всегда добавлялась строка заголовка "Content-Length",
даже если у запроса не было тела.
</para>
<para lang="en">
the "Content-Length" request header line
was always added to requests passed to backends,
including requests without body,
when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2
в логах могли появляться сообщения "http request count is zero".
</para>
<para lang="en">
"http request count is zero" alerts might appear in logs
when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы sub_filter
могло буферизироваться больше данных, чем это необходимо;
проблема появилась в 1.9.4.
</para>
<para lang="en">
unnecessary buffering might occur
when using the "sub_filter" directive;
the issue had appeared in 1.9.4.
</para>
</change>
</changes>
<changes ver="1.11.1" date="2016-05-31">
<change type="security">
<para lang="ru">
при записи тела специально созданного запроса во временный файл
в рабочем процессе мог происходить segmentation fault
(CVE-2016-4450);
ошибка появилась в 1.3.9.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
while writing a specially crafted request body to a temporary file
(CVE-2016-4450);
the bug had appeared in 1.3.9.
</para>
</change>
</changes>
<changes ver="1.11.0" date="2016-05-24">
<change type="feature">
<para lang="ru">
параметр transparent директив proxy_bind, fastcgi_bind,
memcached_bind, scgi_bind и uwsgi_bind.
</para>
<para lang="en">
the "transparent" parameter of the "proxy_bind", "fastcgi_bind",
"memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
</para>
</change>
<change type="feature">
<para lang="ru">
переменная $request_id.
</para>
<para lang="en">
the $request_id variable.
</para>
</change>
<change type="feature">
<para lang="ru">
директива map поддерживает комбинации нескольких переменных
в качестве результирующих значений.
</para>
<para lang="en">
the "map" directive supports combinations of multiple variables
as resulting values.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь при использовании метода epoll
nginx проверяет, поддерживает ли ядро события EPOLLRDHUP,
и соответственно оптимизирует обработку соединений.
</para>
<para lang="en">
now nginx checks if EPOLLRDHUP events are supported by kernel,
and optimizes connection handling accordingly
if the "epoll" method is used.
</para>
</change>
<change type="feature">
<para lang="ru">
директивы ssl_certificate и ssl_certificate_key
теперь