| <?xml version="1.0" ?> |
| <!DOCTYPE change_log SYSTEM "../../dtd/changes.dtd" > |
| |
| |
| <change_log title="nginx"> |
| |
| |
| <changes ver="1.21.1" date="2021-07-06"> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь nginx для метода CONNECT всегда возвращает ошибку. |
| </para> |
| <para lang="en"> |
| now nginx always returns an error for the CONNECT method. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь nginx всегда возвращает ошибку, |
| если в запросе одновременно присутствуют строки заголовка "Content-Length" |
| и "Transfer-Encoding". |
| </para> |
| <para lang="en"> |
| now nginx always returns an error |
| if both "Content-Length" and "Transfer-Encoding" header lines |
| are present in the request. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь nginx всегда возвращает ошибку, |
| если в строке запроса используются пробелы или управляющие символы. |
| </para> |
| <para lang="en"> |
| now nginx always returns an error |
| if spaces or control characters are used in the request line. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь nginx всегда возвращает ошибку, |
| если в имени заголовка используются пробелы или управляющие символы. |
| </para> |
| <para lang="en"> |
| now nginx always returns an error |
| if spaces or control characters are used in a header name. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь nginx всегда возвращает ошибку, |
| если в строке "Host" заголовка запроса |
| используются пробелы или управляющие символы. |
| </para> |
| <para lang="en"> |
| now nginx always returns an error |
| if spaces or control characters |
| are used in the "Host" request header line. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| оптимизация тестирования конфигурации |
| при использовании большого количества listen-сокетов. |
| </para> |
| <para lang="en"> |
| optimization of configuration testing |
| when using many listening sockets. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| nginx не экранировал |
| символы """, "<", ">", "\", "^", "`", "{", "|", и "}" |
| при проксировании с изменением URI запроса. |
| </para> |
| <para lang="en"> |
| nginx did not escape |
| """, "<", ">", "\", "^", "`", "{", "|", and "}" characters |
| when proxying with changed URI. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| SSL-переменные могли быть пустыми при записи в лог; |
| ошибка появилась в 1.19.5. |
| </para> |
| <para lang="en"> |
| SSL variables might be empty when used in logs; |
| the bug had appeared in 1.19.5. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| keepalive-соединения с gRPC-бэкендами могли не закрываться |
| после получения GOAWAY-фрейма. |
| </para> |
| <para lang="en"> |
| keepalive connections with gRPC backends might not be closed |
| after receiving a GOAWAY frame. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| уменьшено потребление памяти для долгоживущих запросов |
| при проксировании с использованием более 64 буферов. |
| </para> |
| <para lang="en"> |
| reduced memory consumption for long-lived requests |
| when proxying with more than 64 buffers. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.21.0" date="2021-05-25"> |
| |
| <change type="security"> |
| <para lang="ru"> |
| при использовании директивы resolver |
| во время обработки ответа DNS-сервера |
| могла происходить перезапись одного байта памяти, |
| что позволяло атакующему, |
| имеющему возможность подделывать UDP-пакеты от DNS-сервера, |
| вызвать падение рабочего процесса |
| или, потенциально, выполнение произвольного кода (CVE-2021-23017). |
| </para> |
| <para lang="en"> |
| 1-byte memory overwrite 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 worker process crash |
| or, potentially, arbitrary code execution (CVE-2021-23017). |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директивы proxy_ssl_certificate, proxy_ssl_certificate_key, |
| grpc_ssl_certificate, grpc_ssl_certificate_key, |
| uwsgi_ssl_certificate и uwsgi_ssl_certificate_key |
| поддерживают переменные. |
| </para> |
| <para lang="en"> |
| variables support |
| in the "proxy_ssl_certificate", "proxy_ssl_certificate_key" |
| "grpc_ssl_certificate", "grpc_ssl_certificate_key", |
| "uwsgi_ssl_certificate", and "uwsgi_ssl_certificate_key" directives. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива max_errors в почтовом прокси-сервере. |
| </para> |
| <para lang="en"> |
| the "max_errors" directive in the mail proxy module. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| почтовый прокси-сервер поддерживает POP3 и IMAP pipelining. |
| </para> |
| <para lang="en"> |
| the mail proxy module supports POP3 and IMAP pipelining. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| параметр fastopen директивы listen в модуле stream.<br/> |
| Спасибо Anbang Wen. |
| </para> |
| <para lang="en"> |
| the "fastopen" parameter of the "listen" directive in the stream module.<br/> |
| Thanks to Anbang Wen. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| специальные символы не экранировались |
| при автоматическом перенаправлении с добавлением завершающего слэша. |
| </para> |
| <para lang="en"> |
| special characters were not escaped |
| during automatic redirect with appended trailing slash. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при использовании SMTP pipelining |
| соединения с клиентами в почтовом прокси-сервере |
| могли неожиданно закрываться. |
| </para> |
| <para lang="en"> |
| connections with clients in the mail proxy module |
| might be closed unexpectedly |
| when using SMTP pipelining. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.10" date="2021-04-13"> |
| |
| <change type="change"> |
| <para lang="ru"> |
| в директиве keepalive_requests значение по умолчанию изменено на 1000. |
| </para> |
| <para lang="en"> |
| the default value of the "keepalive_requests" directive was changed to 1000. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива keepalive_time. |
| </para> |
| <para lang="en"> |
| the "keepalive_time" directive. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| переменная $connection_time. |
| </para> |
| <para lang="en"> |
| the $connection_time variable. |
| </para> |
| </change> |
| |
| <change type="workaround"> |
| <para lang="ru"> |
| при использовании zlib-ng |
| в логах появлялись сообщения "gzip filter failed to use preallocated memory". |
| </para> |
| <para lang="en"> |
| "gzip filter failed to use preallocated memory" alerts appeared in logs |
| when using zlib-ng. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.9" date="2021-03-30"> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| nginx не собирался с почтовым прокси-сервером, |
| но без модуля ngx_mail_ssl_module; |
| ошибка появилась в 1.19.8. |
| </para> |
| <para lang="en"> |
| nginx could not be built with the mail proxy module, |
| but without the ngx_mail_ssl_module; |
| the bug had appeared in 1.19.8. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при работе с gRPC-бэкендами могли возникать ошибки |
| "upstream sent response body larger than indicated content length"; |
| ошибка появилась в 1.19.1. |
| </para> |
| <para lang="en"> |
| "upstream sent response body larger than indicated content length" |
| errors might occur when working with gRPC backends; |
| the bug had appeared in 1.19.1. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| если клиент закрывал соединение в момент отбрасывания тела запроса, |
| nginx мог не закрыть соединение до истечения keepalive-таймаута. |
| </para> |
| <para lang="en"> |
| nginx might not close a connection till keepalive timeout expiration |
| if the connection was closed by the client while discarding the request body. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при ожидании задержки limit_req или auth_delay, а также при работе с бэкендами |
| nginx мог не обнаружить, что соединение уже закрыто клиентом. |
| </para> |
| <para lang="en"> |
| nginx might not detect that a connection was already closed by the client |
| when waiting for auth_delay or limit_req delay, or when working with backends. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в методе обработки соединений eventport. |
| </para> |
| <para lang="en"> |
| in the eventport method. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.8" date="2021-03-09"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| в директиве proxy_cookie_flags теперь |
| флаги можно задавать с помощью переменных. |
| </para> |
| <para lang="en"> |
| flags in the "proxy_cookie_flags" directive |
| can now contain variables. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| параметр proxy_protocol в директиве listen, |
| директивы proxy_protocol и set_real_ip_from |
| в почтовом прокси-сервере. |
| </para> |
| <para lang="en"> |
| the "proxy_protocol" parameter of the "listen" directive, |
| the "proxy_protocol" and "set_real_ip_from" directives |
| in mail proxy. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| HTTP/2-соединения сразу закрывались |
| при использовании "keepalive_timeout 0"; |
| ошибка появилась в 1.19.7. |
| </para> |
| <para lang="en"> |
| HTTP/2 connections were immediately closed |
| when using "keepalive_timeout 0"; |
| the bug had appeared in 1.19.7. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| некоторые ошибки логгировались как неизвестные, |
| если nginx был собран с glibc 2.32. |
| </para> |
| <para lang="en"> |
| some errors were logged as unknown |
| if nginx was built with glibc 2.32. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в методе обработки соединений eventport. |
| </para> |
| <para lang="en"> |
| in the eventport method. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.7" date="2021-02-16"> |
| |
| <change type="change"> |
| <para lang="ru"> |
| обработка соединений в HTTP/2 была изменена |
| и теперь более соответствует HTTP/1.x; |
| директивы http2_recv_timeout, http2_idle_timeout |
| и http2_max_requests упразднены, |
| вместо них следует использовать директивы |
| keepalive_timeout и keepalive_requests. |
| </para> |
| <para lang="en"> |
| connections handling in HTTP/2 has been changed |
| to better match HTTP/1.x; |
| the "http2_recv_timeout", "http2_idle_timeout", |
| and "http2_max_requests" directives have been removed, |
| the "keepalive_timeout" and "keepalive_requests" directives |
| should be used instead. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| директивы http2_max_field_size и http2_max_header_size упразднены, |
| вместо них следует использовать директиву large_client_header_buffers. |
| </para> |
| <para lang="en"> |
| the "http2_max_field_size" and "http2_max_header_size" directives |
| have been removed, |
| the "large_client_header_buffers" directive should be used instead. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| теперь при исчерпании свободных соединений |
| nginx закрывает не только keepalive-соединения, |
| но и соединения в lingering close. |
| </para> |
| <para lang="en"> |
| now, if free worker connections are exhausted, |
| nginx starts closing not only keepalive connections, |
| but also connections in lingering close. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в логах могли появляться сообщения "zero size buf in output", |
| если бэкенд возвращал некорректный ответ |
| при небуферизированном проксировании; |
| ошибка появилась в 1.19.1. |
| </para> |
| <para lang="en"> |
| "zero size buf in output" alerts might appear in logs |
| if an upstream server returned an incorrect response |
| during unbuffered proxying; |
| the bug had appeared in 1.19.1. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при использовании директивы return |
| вместе с image_filter или xslt_stylesheet |
| HEAD-запросы обрабатывались некорректно. |
| </para> |
| <para lang="en"> |
| HEAD requests were handled incorrectly |
| if the "return" directive was used |
| with the "image_filter" or "xslt_stylesheet" directives. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в директиве add_trailer. |
| </para> |
| <para lang="en"> |
| in the "add_trailer" directive. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.6" date="2020-12-15"> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| ошибки "no live upstreams", |
| если server в блоке upstream был помечен как down. |
| </para> |
| <para lang="en"> |
| "no live upstreams" errors |
| if a "server" inside "upstream" block was marked as "down". |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при использовании HTTPS в рабочем процессе мог произойти segmentation fault; |
| ошибка появилась в 1.19.5. |
| </para> |
| <para lang="en"> |
| a segmentation fault might occur in a worker process if HTTPS was used; |
| the bug had appeared in 1.19.5. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| nginx возвращал ошибку 400 на запросы вида |
| <nobr>"GET http://example.com?args HTTP/1.0"</nobr>. |
| </para> |
| <para lang="en"> |
| nginx returned the 400 response on requests like |
| <nobr>"GET http://example.com?args HTTP/1.0"</nobr>. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в модулях ngx_http_flv_module и ngx_http_mp4_module.<br/> |
| Спасибо Chris Newton. |
| </para> |
| <para lang="en"> |
| in the ngx_http_flv_module and ngx_http_mp4_module.<br/> |
| Thanks to Chris Newton. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.5" date="2020-11-24"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| ключ -e. |
| </para> |
| <para lang="en"> |
| the -e switch. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| при сборке дополнительных модулей |
| теперь можно указывать одни и те же исходные файлы в разных модулях. |
| </para> |
| <para lang="en"> |
| the same source files can now be specified in different modules |
| while building addon modules. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| SSL shutdown не работал |
| при закрытии соединений с ожиданием дополнительных данных (lingering close). |
| </para> |
| <para lang="en"> |
| SSL shutdown did not work |
| when lingering close was used. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при работе с gRPC-бэкендами |
| могли возникать ошибки "upstream sent frame for closed stream". |
| </para> |
| <para lang="en"> |
| "upstream sent frame for closed stream" errors might occur |
| when working with gRPC backends. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| во внутреннем API для обработки тела запроса. |
| </para> |
| <para lang="en"> |
| in request body filters internal API. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.4" date="2020-10-27"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директивы ssl_conf_command, proxy_ssl_conf_command, grpc_ssl_conf_command |
| и uwsgi_ssl_conf_command. |
| </para> |
| <para lang="en"> |
| the "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command", |
| and "uwsgi_ssl_conf_command" directives. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива ssl_reject_handshake. |
| </para> |
| <para lang="en"> |
| the "ssl_reject_handshake" directive. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива proxy_smtp_auth в почтовом прокси-сервере. |
| </para> |
| <para lang="en"> |
| the "proxy_smtp_auth" directive in mail proxy. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.3" date="2020-09-29"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| модуль ngx_stream_set_module. |
| </para> |
| <para lang="en"> |
| the ngx_stream_set_module. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива proxy_cookie_flags. |
| </para> |
| <para lang="en"> |
| the "proxy_cookie_flags" directive. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива userid_flags. |
| </para> |
| <para lang="en"> |
| the "userid_flags" directive. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| расширение управления кэшированием stale-if-error |
| ошибочно применялось, если бэкенд возвращал ответ |
| с кодом 500, 502, 503, 504, 403, 404 или 429. |
| </para> |
| <para lang="en"> |
| the "stale-if-error" cache control extension |
| was erroneously applied if backend returned a response |
| with status code 500, 502, 503, 504, 403, 404, or 429. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| если использовалось кэширование |
| и бэкенд возвращал ответы с строкой заголовка Vary, |
| в логах могли появляться сообщения "[crit] cache file ... has too long header". |
| </para> |
| <para lang="en"> |
| "[crit] cache file ... has too long header" messages might appear in logs |
| if caching was used |
| and the backend returned responses with the "Vary" header line. |
| </para> |
| </change> |
| |
| <change type="workaround"> |
| <para lang="ru"> |
| при использовании OpenSSL 1.1.1 |
| в логах могли появляться сообщения "[crit] SSL_write() failed". |
| </para> |
| <para lang="en"> |
| "[crit] SSL_write() failed" messages might appear in logs |
| when using OpenSSL 1.1.1. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в логах могли появляться сообщения |
| "SSL_shutdown() failed (SSL: ... bad write retry)"; |
| ошибка появилась в 1.19.2. |
| </para> |
| <para lang="en"> |
| "SSL_shutdown() failed (SSL: ... bad write retry)" |
| messages might appear in logs; |
| the bug had appeared in 1.19.2. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при использовании HTTP/2 |
| в рабочем процессе мог произойти segmentation fault, |
| если ошибки с кодом 400 с помощью директивы error_page |
| перенаправлялись в проксируемый location. |
| </para> |
| <para lang="en"> |
| a segmentation fault might occur in a worker process |
| when using HTTP/2 |
| if errors with code 400 were redirected to a proxied location |
| using the "error_page" directive. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| утечки сокетов при использовании HTTP/2 и подзапросов в модуле njs. |
| </para> |
| <para lang="en"> |
| socket leak when using HTTP/2 and subrequests in the njs module. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.2" date="2020-08-11"> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь nginx начинает закрывать keepalive-соединения, |
| не дожидаясь исчерпания всех свободных соединений, |
| а также пишет об этом предупреждение в лог ошибок. |
| </para> |
| <para lang="en"> |
| now nginx starts closing keepalive connections |
| before all free worker connections are exhausted, |
| and logs a warning about this to the error log. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| оптимизация чтения тела запроса |
| при использовании chunked transfer encoding. |
| </para> |
| <para lang="en"> |
| optimization of client request body reading |
| when using chunked transfer encoding. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| утечки памяти при использовании директивы ssl_ocsp. |
| </para> |
| <para lang="en"> |
| memory leak if the "ssl_ocsp" directive was used. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в логах могли появляться сообщения "zero size buf in output", |
| если FastCGI-сервер возвращал некорректный ответ; |
| ошибка появилась в 1.19.1. |
| </para> |
| <para lang="en"> |
| "zero size buf in output" alerts might appear in logs |
| if a FastCGI server returned an incorrect response; |
| the bug had appeared in 1.19.1. |
| </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 different large_client_header_buffers sizes were used |
| in different virtual servers. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| SSL shutdown мог не работать. |
| </para> |
| <para lang="en"> |
| SSL shutdown might not work. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в логах могли появляться сообщения |
| "SSL_shutdown() failed (SSL: ... bad write retry)". |
| </para> |
| <para lang="en"> |
| "SSL_shutdown() failed (SSL: ... bad write retry)" |
| messages might appear in logs. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в модуле ngx_http_slice_module. |
| </para> |
| <para lang="en"> |
| in the ngx_http_slice_module. |
| </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> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.1" date="2020-07-07"> |
| |
| <change type="change"> |
| <para lang="ru"> |
| директивы lingering_close, lingering_time и lingering_timeout |
| теперь работают при использовании HTTP/2. |
| </para> |
| <para lang="en"> |
| the "lingering_close", "lingering_time", and "lingering_timeout" directives |
| now work when using HTTP/2. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь лишние данные, присланные бэкендом, всегда отбрасываются. |
| </para> |
| <para lang="en"> |
| now extra data sent by a backend are always discarded. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь при получении слишком короткого ответа от FastCGI-сервера |
| nginx пытается отправить клиенту доступную часть ответа, |
| после чего закрывает соединение с клиентом. |
| </para> |
| <para lang="en"> |
| now after receiving a too short response from a FastCGI server |
| nginx tries to send the available part of the response to the client, |
| and then closes the client connection. |
| </para> |
| </change> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь при получении ответа некорректной длины от gRPC-бэкенда |
| nginx прекращает обработку ответа с ошибкой. |
| </para> |
| <para lang="en"> |
| now after receiving a response with incorrect length from a gRPC backend |
| nginx stops response processing with an error. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| параметр min_free в директивах proxy_cache_path, fastcgi_cache_path, |
| scgi_cache_path и uwsgi_cache_path.<br/> |
| Спасибо Adam Bambuch. |
| </para> |
| <para lang="en"> |
| the "min_free" parameter of the "proxy_cache_path", "fastcgi_cache_path", |
| "scgi_cache_path", and "uwsgi_cache_path" directives.<br/> |
| Thanks to Adam Bambuch. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| nginx не удалял unix domain listen-сокеты |
| при плавном завершении по сигналу SIGQUIT. |
| </para> |
| <para lang="en"> |
| nginx did not delete unix domain listen sockets |
| during graceful shutdown on the SIGQUIT signal. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| UDP-пакеты нулевого размера не проксировались. |
| </para> |
| <para lang="en"> |
| zero length UDP datagrams were not proxied. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| проксирование на uwsgi-бэкенды с использованием SSL могло не работать.<br/> |
| Спасибо Guanzhong Chen. |
| </para> |
| <para lang="en"> |
| proxying to uwsgi backends using SSL might not work.<br/> |
| Thanks to Guanzhong Chen. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в обработке ошибок при использовании директивы ssl_ocsp. |
| </para> |
| <para lang="en"> |
| in error handling when using the "ssl_ocsp" directive. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при использовании файловых систем XFS и NFS |
| размер кэша на диске мог считаться некорректно. |
| </para> |
| <para lang="en"> |
| on XFS and NFS file systems |
| disk cache size might be calculated incorrectly. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| если сервер memcached возвращал некорректный ответ, |
| в логах могли появляться сообщения "negative size buf in writer". |
| </para> |
| <para lang="en"> |
| "negative size buf in writer" alerts might appear in logs |
| if a memcached server returned a malformed response. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.19.0" date="2020-05-26"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| проверка клиентских сертификатов с помощью OCSP. |
| </para> |
| <para lang="en"> |
| client certificate validation with OCSP. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при работе с gRPC-бэкендами |
| могли возникать ошибки "upstream sent frame for closed stream". |
| </para> |
| <para lang="en"> |
| "upstream sent frame for closed stream" errors might occur |
| when working with gRPC backends. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| OCSP stapling мог не работать, |
| если не была указана директива resolver. |
| </para> |
| <para lang="en"> |
| OCSP stapling might not work |
| if the "resolver" directive was not specified. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| соединения с некорректным HTTP/2 preface не логгировались. |
| </para> |
| <para lang="en"> |
| connections with incorrect HTTP/2 preface were not logged. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.17.10" date="2020-04-14"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива auth_delay. |
| </para> |
| <para lang="en"> |
| the "auth_delay" directive. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.17.9" date="2020-03-03"> |
| |
| <change type="change"> |
| <para lang="ru"> |
| теперь nginx не разрешает |
| несколько строк "Host" в заголовке запроса. |
| </para> |
| <para lang="en"> |
| now nginx does not allow |
| several "Host" request header lines. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| nginx игнорировал дополнительные |
| строки "Transfer-Encoding" в заголовке запроса. |
| </para> |
| <para lang="en"> |
| nginx ignored additional |
| "Transfer-Encoding" request header lines. |
| </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"> |
| в рабочем процессе мог произойти segmentation fault, |
| если использовался OCSP stapling. |
| </para> |
| <para lang="en"> |
| a segmentation fault might occur in a worker process |
| if OCSP stapling was used. |
| </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"> |
| при перенаправлении ошибок с кодом 494 с помощью директивы error_page |
| nginx возвращал ответ с кодом 494 вместо 400. |
| </para> |
| <para lang="en"> |
| nginx used status code 494 instead of 400 |
| if errors with code 494 were redirected with the "error_page" directive. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| утечки сокетов при использовании подзапросов в модуле njs и директивы aio. |
| </para> |
| <para lang="en"> |
| socket leak when using subrequests in the njs module and the "aio" directive. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.17.8" date="2020-01-21"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива grpc_pass поддерживает переменные. |
| </para> |
| <para lang="en"> |
| variables support in the "grpc_pass" directive. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при обработке pipelined-запросов по SSL-соединению мог произойти таймаут; |
| ошибка появилась в 1.17.5. |
| </para> |
| <para lang="en"> |
| a timeout might occur while handling pipelined requests in an SSL connection; |
| the bug had appeared in 1.17.5. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в директиве debug_points при использовании HTTP/2.<br/> |
| Спасибо Даниилу Бондареву. |
| </para> |
| <para lang="en"> |
| in the "debug_points" directive when using HTTP/2.<br/> |
| Thanks to Daniil Bondarev. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.17.7" date="2019-12-24"> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| на старте или во время переконфигурации мог произойти segmentation fault, |
| если в конфигурации использовалась |
| директива rewrite с пустой строкой замены. |
| </para> |
| <para lang="en"> |
| a segmentation fault might occur on start or during reconfiguration |
| if the "rewrite" directive with an empty replacement string |
| was used in the configuration. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в рабочем процессе мог произойти segmentation fault, |
| если директива break использовалась совместно с директивой alias |
| или директивой proxy_pass с URI. |
| </para> |
| <para lang="en"> |
| a segmentation fault might occur in a worker process |
| if the "break" directive was used with the "alias" directive |
| or with the "proxy_pass" directive with a URI. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| строка Location заголовка ответа могла содержать мусор, |
| если URI запроса был изменён на URI, содержащий нулевой символ. |
| </para> |
| <para lang="en"> |
| the "Location" response header line might contain garbage |
| if the request URI was rewritten to the one containing a null character. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| при возврате перенаправлений с помощью директивы error_page |
| запросы с телом обрабатывались некорректно; |
| ошибка появилась в 0.7.12. |
| </para> |
| <para lang="en"> |
| requests with bodies were handled incorrectly |
| when returning redirections with the "error_page" directive; |
| the bug had appeared in 0.7.12. |
| </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"> |
| при обработке pipelined-запросов по SSL-соединению мог произойти таймаут; |
| ошибка появилась в 1.17.5. |
| </para> |
| <para lang="en"> |
| a timeout might occur while handling pipelined requests in an SSL connection; |
| the bug had appeared in 1.17.5. |
| </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.17.6" date="2019-11-19"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| переменные $proxy_protocol_server_addr и $proxy_protocol_server_port. |
| </para> |
| <para lang="en"> |
| the $proxy_protocol_server_addr and $proxy_protocol_server_port variables. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| директива limit_conn_dry_run. |
| </para> |
| <para lang="en"> |
| the "limit_conn_dry_run" directive. |
| </para> |
| </change> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| переменные $limit_req_status и $limit_conn_status. |
| </para> |
| <para lang="en"> |
| the $limit_req_status and $limit_conn_status variables. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <changes ver="1.17.5" date="2019-10-22"> |
| |
| <change type="feature"> |
| <para lang="ru"> |
| теперь nginx использует вызов ioctl(FIONREAD), если он доступен, |
| чтобы избежать чтения из быстрого соединения в течение долгого времени. |
| </para> |
| <para lang="en"> |
| now nginx uses ioctl(FIONREAD), if available, |
| to avoid reading from a fast connection for a long time. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| неполные закодированные символы в конце URI запроса игнорировались. |
| </para> |
| <para lang="en"> |
| incomplete escaped characters at the end of the request URI were ignored. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| "/." и "/.." в конце URI запроса не нормализовывались. |
| </para> |
| <para lang="en"> |
| "/." and "/.." at the end of the request URI were not normalized. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в директиве merge_slashes. |
| </para> |
| <para lang="en"> |
| in the "merge_slashes" directive. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| в директиве ignore_invalid_headers.<br/> |
| Спасибо Alan Kemp. |
| </para> |
| <para lang="en"> |
| in the "ignore_invalid_headers" directive.<br/> |
| Thanks to Alan Kemp. |
| </para> |
| </change> |
| |
| <change type="bugfix"> |
| <para lang="ru"> |
| nginx не собирался с MinGW-w64 gcc 8.1 и новее. |
| </para> |
| <para lang="en"> |
| nginx could not be built with MinGW-w64 gcc 8.1 or newer. |
| </para> |
| </change> |
| |
| </changes> |
| |
| |
| <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—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—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= |