blob: 6bbff2cfd7d09c1ae03ef87923db42a386647a7d [file] [log] [blame]
<?xml version="1.0" ?>
<!DOCTYPE change_log SYSTEM "../../dtd/changes.dtd" >
<change_log title="nginx">
<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
теперь можно указывать несколько раз
для загрузки сертификатов разных типов (например, RSA и ECDSA).
</para>
<para lang="en">
the "ssl_certificate" and "ssl_certificate_key" directives
can be specified multiple times
to load certificates of different types (for example, RSA and ECDSA).
</para>
</change>
<change type="feature">
<para lang="ru">
при использовании OpenSSL 1.0.2 и новее
с помощью директивы ssl_ecdh_curve теперь можно задать список кривых;
по умолчанию используется встроенный в OpenSSL список кривых.
</para>
<para lang="en">
the "ssl_ecdh_curve" directive now allows specifying a list of curves
when using OpenSSL 1.0.2 or newer;
by default a list built into OpenSSL is used.
</para>
</change>
<change type="change">
<para lang="ru">
для использования DHE-шифров теперь надо явно задавать файл параметров
с помощью директивы ssl_dhparam.
</para>
<para lang="en">
to use DHE ciphers it is now required to specify parameters
using the "ssl_dhparam" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
переменная $proxy_protocol_port.
</para>
<para lang="en">
the $proxy_protocol_port variable.
</para>
</change>
<change type="feature">
<para lang="ru">
переменная $realip_remote_port в модуле ngx_http_realip_module.
</para>
<para lang="en">
the $realip_remote_port variable in the ngx_http_realip_module.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_http_realip_module теперь позволяет устанавливать
не только адрес, но и порт клиента.
</para>
<para lang="en">
the ngx_http_realip_module is now able to set the client port
in addition to the address.
</para>
</change>
<change type="change">
<para lang="ru">
при попытке запросить виртуальный сервер,
отличающийся от согласованного в процессе SSL handshake,
теперь возвращается ответ "421 Misdirected Request";
это улучшает совместимость с некоторыми HTTP/2-клиентами
в случае использования клиентских сертификатов.
</para>
<para lang="en">
the "421 Misdirected Request" response now used
when rejecting requests to a virtual server
different from one negotiated during an SSL handshake;
this improves interoperability with some HTTP/2 clients
when using client certificates.
</para>
</change>
<change type="change">
<para lang="ru">
HTTP/2-клиенты теперь могут сразу присылать тело запроса;
директива http2_body_preread_size позволяет указать размер буфера, который
будет использоваться до того, как nginx начнёт читать тело.
</para>
<para lang="en">
HTTP/2 clients can now start sending request body immediately;
the "http2_body_preread_size" directive controls size of the buffer used
before nginx will start reading client request body.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы proxy_cache_bypass
не обновлялись закэшированные ошибочные ответы.
</para>
<para lang="en">
cached error responses were not updated
when using the "proxy_cache_bypass" directive.
</para>
</change>
</changes>
<changes ver="1.9.15" date="2016-04-19">
<change type="bugfix">
<para lang="ru">
при использовании HHVM в качестве FastCGI-сервера
могли возникать ошибки "recv() failed".
</para>
<para lang="en">
"recv() failed" errors might occur
when using HHVM as a FastCGI server.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 и директив limit_req или auth_request
при чтении тела запроса мог произойти таймаут
или ошибка "client violated flow control";
ошибка появилась в 1.9.14.
</para>
<para lang="en">
when using HTTP/2 and the "limit_req" or "auth_request" directives
a timeout or a "client violated flow control" error
might occur while reading client request body;
the bug had appeared in 1.9.14.
</para>
</change>
<change type="workaround">
<para lang="ru">
при использовании HTTP/2 ответ мог не показываться некоторыми браузерами,
если тело запроса было прочитано не целиком;
ошибка появилась в 1.9.14.
</para>
<para lang="en">
a response might not be shown by some browsers
if HTTP/2 was used and client request body was not fully read;
the bug had appeared in 1.9.14.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы "aio threads" соединения могли зависать.<br/>
Спасибо Mindaugas Rasiukevicius.
</para>
<para lang="en">
connections might hang when using the "aio threads" directive.<br/>
Thanks to Mindaugas Rasiukevicius.
</para>
</change>
</changes>
<changes ver="1.9.14" date="2016-04-05">
<change type="feature">
<para lang="ru">
совместимость с OpenSSL 1.1.0.
</para>
<para lang="en">
OpenSSL 1.1.0 compatibility.
</para>
</change>
<change type="feature">
<para lang="ru">
директивы proxy_request_buffering, fastcgi_request_buffering,
scgi_request_buffering и uwsgi_request_buffering
теперь работают при использовании HTTP/2.
</para>
<para lang="en">
the "proxy_request_buffering", "fastcgi_request_buffering",
"scgi_request_buffering", and "uwsgi_request_buffering" directives
now work with HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2
в логах могли появляться сообщения "zero size buf in output".
</para>
<para lang="en">
"zero size buf in output" alerts might appear in logs
when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2
директива client_max_body_size могла работать неверно.
</para>
<para lang="en">
the "client_max_body_size" directive might work incorrectly
when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
незначительных ошибок логгирования.
</para>
<para lang="en">
of minor bugs in logging.
</para>
</change>
</changes>
<changes ver="1.9.13" date="2016-03-29">
<change type="change">
<para lang="ru">
неидемпотентные запросы (POST, LOCK, PATCH)
теперь по умолчанию не передаются на другой сервер,
если запрос уже был отправлен на бэкенд;
параметр non_idempotent директивы proxy_next_upstream
явно разрешает повторять такие запросы.
</para>
<para lang="en">
non-idempotent requests (POST, LOCK, PATCH)
are no longer passed to the next server by default
if a request has been sent to a backend;
the "non_idempotent" parameter of the "proxy_next_upstream" directive
explicitly allows retrying such requests.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_http_perl_module теперь можно собрать динамически.
</para>
<para lang="en">
the ngx_http_perl_module can be built dynamically.
</para>
</change>
<change type="feature">
<para lang="ru">
поддержка UDP в модуле stream.
</para>
<para lang="en">
UDP support in the stream module.
</para>
</change>
<change type="feature">
<para lang="ru">
директива aio_write.
</para>
<para lang="en">
the "aio_write" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь cache manager следит за количеством элементов в кэше
и старается не допускать переполнений зоны разделяемой памяти.
</para>
<para lang="en">
now cache manager monitors number of elements in caches
and tries to avoid cache keys zone overflows.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директив sendfile и aio с подзапросами
в логах могли появляться сообщения "task already active" и "second aio post".
</para>
<para lang="en">
"task already active" and "second aio post" alerts might appear in logs
when using the "sendfile" and "aio" directives with subrequests.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании кэширования
в логах могли появляться сообщения "zero size buf in output",
если клиент закрывал соединение преждевременно.
</para>
<para lang="en">
"zero size buf in output" alerts might appear in logs
if caching was used
and a client closed a connection prematurely.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании кэширования
соединения с клиентами могли закрываться без необходимости.<br/>
Спасибо Justin Li.
</para>
<para lang="en">
connections with clients might be closed needlessly
if caching was used.<br/>
Thanks to Justin Li.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx мог нагружать процессор
при использовании директивы sendfile на Linux и Solaris,
если отправляемый файл был изменён в процессе отправки.
</para>
<para lang="en">
nginx might hog CPU
if the "sendfile" directive was used on Linux or Solaris
and a file being sent was changed during sending.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директив sendfile и "aio threads"
соединения могли зависать.
</para>
<para lang="en">
connections might hang
when using the "sendfile" and "aio threads" directives.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в директивах proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
при использовании переменных.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
in the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
when using variables.<br/>
Thanks to Piotr Sikora.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_sub_filter_module.
</para>
<para lang="en">
in the ngx_http_sub_filter_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если в закэшированном соединении к бэкенду происходила ошибка,
запрос передавался на другой сервер
без учёта директивы proxy_next_upstream.
</para>
<para lang="en">
if an error occurred in a cached backend connection,
the request was passed to the next server
regardless of the proxy_next_upstream directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ошибки "CreateFile() failed" при создании временных файлов на Windows.
</para>
<para lang="en">
"CreateFile() failed" errors when creating temporary files on Windows.
</para>
</change>
</changes>
<changes ver="1.9.12" date="2016-02-24">
<change type="feature">
<para lang="ru">
кодирование Хаффмана заголовков ответов в HTTP/2.<br/>
Спасибо Владу Краснову.
</para>
<para lang="en">
Huffman encoding of response headers in HTTP/2.<br/>
Thanks to Vlad Krasnov.
</para>
</change>
<change type="feature">
<para lang="ru">
директива worker_cpu_affinity теперь поддерживает более 64 процессоров.
</para>
<para lang="en">
the "worker_cpu_affinity" directive now supports more than 64 CPUs.
</para>
</change>
<change type="bugfix">
<para lang="ru">
совместимость со сторонними модулями на C++;
ошибка появилась в 1.9.11.<br/>
Спасибо Piotr Sikora.
</para>
<para lang="en">
compatibility with 3rd party C++ modules;
the bug had appeared in 1.9.11.<br/>
Thanks to Piotr Sikora.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx не собирался статически с OpenSSL на Linux;
ошибка появилась в 1.9.11.
</para>
<para lang="en">
nginx could not be built statically with OpenSSL on Linux;
the bug had appeared in 1.9.11.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива "add_header ... always" с пустым значением
не удаляла из заголовков ошибочных ответов
строки Last-Modified и ETag.
</para>
<para lang="en">
the "add_header ... always" directive with an empty value
did not delete "Last-Modified" and "ETag" header lines
from error responses.
</para>
</change>
<change type="workaround">
<para lang="ru">
при использовании OpenSSL 1.0.2f в логах могли появляться
сообщения "called a function you should not call" и
"shutdown while in init".
</para>
<para lang="en">
"called a function you should not call"
and "shutdown while in init" messages might appear in logs
when using OpenSSL 1.0.2f.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ошибочные заголовки могли логгироваться некорректно.
</para>
<para lang="en">
invalid headers might be logged incorrectly.
</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">
в модуле ngx_http_v2_module.
</para>
<para lang="en">
in the ngx_http_v2_module.
</para>
</change>
</changes>
<changes ver="1.9.11" date="2016-02-09">
<change type="feature">
<para lang="ru">
теперь resolver поддерживает TCP.
</para>
<para lang="en">
TCP support in resolver.
</para>
</change>
<change type="feature">
<para lang="ru">
динамические модули.
</para>
<para lang="en">
dynamic modules.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2
переменная $request_length не учитывала размер заголовков запроса.
</para>
<para lang="en">
the $request_length variable did not include size of request headers
when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_v2_module.
</para>
<para lang="en">
in the ngx_http_v2_module.
</para>
</change>
</changes>
<changes ver="1.9.10" date="2016-01-26">
<change type="security">
<para lang="ru">
при использовании директивы resolver
во время обработки ответов DNS-сервера
могло происходить разыменование некорректного адреса,
что позволяло атакующему,
имеющему возможность подделывать UDP-пакеты от DNS-сервера,
вызвать segmentation fault в рабочем процессе (CVE-2016-0742).
</para>
<para lang="en">
invalid pointer dereference might occur
during DNS server response processing
if the "resolver" directive was used,
allowing an attacker who is able to forge UDP packets from the DNS server
to cause segmentation fault in a worker process (CVE-2016-0742).
</para>
</change>
<change type="security">
<para lang="ru">
при использовании директивы resolver
во время обработки CNAME-записей
могло произойти обращение к ранее освобождённой памяти,
что позволяло атакующему,
имеющему возможность инициировать преобразование произвольных имён в адреса,
вызвать segmentation fault в рабочем процессе,
а также потенциально могло иметь другие последствия (CVE-2016-0746).
</para>
<para lang="en">
use-after-free condition might occur
during CNAME response processing
if the "resolver" directive was used,
allowing an attacker who is able to trigger name resolution
to cause segmentation fault in a worker process,
or might have potential other impact (CVE-2016-0746).
</para>
</change>
<change type="security">
<para lang="ru">
при использовании директивы resolver
во время обработки CNAME-записей
не во всех случаях проверялось ограничение
на максимальное количество записей в цепочке,
что позволяло атакующему,
имеющему возможность инициировать преобразование произвольных имён в адреса,
вызвать чрезмерное потребление ресурсов рабочими процессами (CVE-2016-0747).
</para>
<para lang="en">
CNAME resolution was insufficiently limited
if the "resolver" directive was used,
allowing an attacker who is able to trigger arbitrary name resolution
to cause excessive resource consumption in worker processes (CVE-2016-0747).
</para>
</change>
<change type="feature">
<para lang="ru">
параметр auto директивы worker_cpu_affinity.
</para>
<para lang="en">
the "auto" parameter of the "worker_cpu_affinity" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
параметр proxy_protocol директивы listen не работал
с IPv6 listen-сокетами.
</para>
<para lang="en">
the "proxy_protocol" parameter of the "listen" directive did not work
with IPv6 listen sockets.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы keepalive
соединения к бэкендам могли кэшироваться некорректно.
</para>
<para lang="en">
connections to upstream servers might be cached incorrectly
when using the "keepalive" directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
после перенаправления запроса с помощью X-Accel-Redirect
при проксировании использовался HTTP-метод оригинального запроса.
</para>
<para lang="en">
proxying used the HTTP method of the original request
after an "X-Accel-Redirect" redirection.
</para>
</change>
</changes>
<changes ver="1.9.9" date="2015-12-09">
<change type="bugfix">
<para lang="ru">
проксирование в unix domain сокеты не работало при использовании переменных;
ошибка появилась в 1.9.8.
</para>
<para lang="en">
proxying to unix domain sockets did not work when using variables;
the bug had appeared in 1.9.8.
</para>
</change>
</changes>
<changes ver="1.9.8" date="2015-12-08">
<change type="feature">
<para lang="ru">
поддержка pwritev().
</para>
<para lang="en">
pwritev() support.
</para>
</change>
<change type="feature">
<para lang="ru">
директива include в блоке upstream.
</para>
<para lang="en">
the "include" directive inside the "upstream" block.
</para>
</change>
<change type="feature">
<para lang="ru">
модуль ngx_http_slice_module.
</para>
<para lang="en">
the ngx_http_slice_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании LibreSSL
в рабочем процессе мог произойти segmentation fault;
ошибка появилась в 1.9.6.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
when using LibreSSL;
the bug had appeared in 1.9.6.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx мог не собираться на OS X.
</para>
<para lang="en">
nginx could not be built on OS X in some cases.
</para>
</change>
</changes>
<changes ver="1.9.7" date="2015-11-17">
<change type="feature">
<para lang="ru">
параметр nohostname логгирования в syslog.
</para>
<para lang="en">
the "nohostname" parameter of logging to syslog.
</para>
</change>
<change type="feature">
<para lang="ru">
директива proxy_cache_convert_head.
</para>
<para lang="en">
the "proxy_cache_convert_head" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
переменная $realip_remote_addr в модуле ngx_http_realip_module.
</para>
<para lang="en">
the $realip_remote_addr variable in the ngx_http_realip_module.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива expires могла не срабатывать при использовании переменных.
</para>
<para lang="en">
the "expires" directive might not work when using variables.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2
в рабочем процессе мог произойти segmentation fault;
ошибка появилась в 1.9.6.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
when using HTTP/2;
the bug had appeared in 1.9.6.
</para>
</change>
<change type="bugfix">
<para lang="ru">
если nginx был собран с модулем ngx_http_v2_module,
протокол HTTP/2 мог быть использован клиентом,
даже если не был указан параметр http2 директивы listen.
</para>
<para lang="en">
if nginx was built with the ngx_http_v2_module
it was possible to use the HTTP/2 protocol
even if the "http2" parameter of the "listen" directive was not specified.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в модуле ngx_http_v2_module.
</para>
<para lang="en">
in the ngx_http_v2_module.
</para>
</change>
</changes>
<changes ver="1.9.6" date="2015-10-27">
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2
в рабочем процессе мог произойти segmentation fault.<br/>
Спасибо Piotr Sikora и Denis Andzakovic.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
when using HTTP/2.<br/>
Thanks to Piotr Sikora and Denis Andzakovic.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании HTTP/2 переменная $server_protocol была пустой.
</para>
<para lang="en">
the $server_protocol variable was empty when using HTTP/2.
</para>
</change>
<change type="bugfix">
<para lang="ru">
SSL-соединения к бэкендам в модуле stream
могли неожиданно завершаться по таймауту.
</para>
<para lang="en">
backend SSL connections in the stream module
might be timed out unexpectedly.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании различных настроек ssl_session_cache
в разных виртуальных серверах
в рабочем процессе мог произойти segmentation fault.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if different ssl_session_cache settings were used
in different virtual servers.
</para>
</change>
<change type="bugfix">
<para lang="ru">
nginx/Windows не собирался с MinGW gcc;
ошибка появилась в 1.9.4.<br/>
Спасибо Kouhei Sutou.
</para>
<para lang="en">
nginx/Windows could not be built with MinGW gcc;
the bug had appeared in 1.9.4.<br/>
Thanks to Kouhei Sutou.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы timer_resolution на Windows время не обновлялось.
</para>
<para lang="en">
time was not updated when the timer_resolution directive was used on Windows.
</para>
</change>
<change>
<para lang="ru">
Незначительные исправления и улучшения.<br/>
Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
</para>
<para lang="en">
Miscellaneous minor fixes and improvements.<br/>
Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora.
</para>
</change>
</changes>
<changes ver="1.9.5" date="2015-09-22">
<change type="feature">
<para lang="ru">
модуль ngx_http_v2_module (заменяет модуль ngx_http_spdy_module).<br/>
Спасибо Dropbox и Automattic за спонсирование разработки.
</para>
<para lang="en">
the ngx_http_v2_module (replaces ngx_http_spdy_module).<br/>
Thanks to Dropbox and Automattic for sponsoring this work.
</para>
</change>
<change type="change">
<para lang="ru">
теперь по умолчанию директива output_buffers использует два буфера.
</para>
<para lang="en">
now the "output_buffers" directive uses two buffers by default.
</para>
</change>
<change type="change">
<para lang="ru">
теперь nginx ограничивает максимальную вложенность подзапросов,
а не количество одновременных подзапросов.
</para>
<para lang="en">
now nginx limits subrequests recursion,
not simultaneous subrequests.
</para>
</change>
<change type="change">
<para lang="ru">
теперь при возврате ответов из кэша nginx проверяет ключ полностью.<br/>
Спасибо Геннадию Махомеду и Сергею Брестеру.
</para>
<para lang="en">
now nginx checks the whole cache key when returning a response from cache.<br/>
Thanks to Gena Makhomed and Sergey Brester.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании кэша
в логах могли появляться сообщения "header already sent";
ошибка появилась в 1.7.5.
</para>
<para lang="en">
"header already sent" alerts might appear in logs
when using cache;
the bug had appeared in 1.7.5.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании CephFS и директивы timer_resolution на Linux
в логах могли появляться сообщения
"writev() failed (4: Interrupted system call)".
</para>
<para lang="en">
"writev() failed (4: Interrupted system call)"
errors might appear in logs
when using CephFS and the "timer_resolution" directive on Linux.
</para>
</change>
<change type="bugfix">
<para lang="ru">
в обработке ошибок конфигурации.<br/>
Спасибо Markus Linnala.
</para>
<para lang="en">
in invalid configurations handling.<br/>
Thanks to Markus Linnala.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при использовании директивы sub_filter на уровне http
в рабочем процессе происходил segmentation fault;
ошибка появилась в 1.9.4.
</para>
<para lang="en">
a segmentation fault occurred in a worker process
if the "sub_filter" directive was used at http level;
the bug had appeared in 1.9.4.
</para>
</change>
</changes>
<changes ver="1.9.4" date="2015-08-18">
<change type="change">
<para lang="ru">
директивы proxy_downstream_buffer и proxy_upstream_buffer в модуле stream
заменены директивой proxy_buffer_size.
</para>
<para lang="en">
the "proxy_downstream_buffer" and "proxy_upstream_buffer" directives
of the stream module are replaced with the "proxy_buffer_size" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
директива tcp_nodelay в модуле stream.
</para>
<para lang="en">
the "tcp_nodelay" directive in the stream module.
</para>
</change>
<change type="feature">
<para lang="ru">
теперь можно указать несколько директив sub_filter одновременно.
</para>
<para lang="en">
multiple "sub_filter" directives can be used simultaneously.
</para>
</change>
<change type="feature">
<para lang="ru">
директива sub_filter поддерживает переменные в строке поиска.
</para>
<para lang="en">
variables support in the search string of the "sub_filter" directive.
</para>
</change>
<change type="workaround">
<para lang="ru">
тестирование конфигурации могло не работать под Linux OpenVZ.<br/>
Спасибо Геннадию Махомеду.
</para>
<para lang="en">
configuration testing might fail under Linux OpenVZ.<br/>
Thanks to Gena Makhomed.
</para>
</change>
<change type="bugfix">
<para lang="ru">
после переконфигурации старые рабочие процессы могли сильно нагружать процессор
при больших значениях worker_connections.
</para>
<para lang="en">
old worker processes might hog CPU after reconfiguration
with a large number of worker_connections.
</para>
</change>
<change type="bugfix">
<para lang="ru">
при совместном использовании директив try_files и alias
внутри location'а, заданного регулярным выражением,
в рабочем процессе мог произойти segmentation fault;
ошибка появилась в 1.7.1.
</para>
<para lang="en">
a segmentation fault might occur in a worker process
if the "try_files" and "alias" directives were used
inside a location given by a regular expression;
the bug had appeared in 1.7.1.
</para>
</change>
<change type="bugfix">
<para lang="ru">
директива try_files внутри вложенного location'а, заданного регулярным
выражением, работала неправильно, если во внешнем location'е использовалась
директива alias.
</para>
<para lang="en