From e18a033b921d0d79fa8278f853548e6125b93e0c Mon Sep 17 00:00:00 2001 From: Konstantin Ananyev Date: Tue, 31 Oct 2017 12:40:17 +0000 Subject: Integrate TLDK with NGINX Created a clone of nginx (from https://github.com/nginx/nginx) to demonstrate and benchmark TLDK library integrated with real world application. A new nginx module is created and and BSD socket-like API is implemented on top of native TLDK API. Note, that right now only minimalistic subset of socket-like API is provided: - accept - close - readv - recv - writev so only limited nginx functionality is available for a moment. Change-Id: Ie1efe9349a0538da4348a48fb8306cbf636b5a92 Signed-off-by: Mohammad Abdul Awal Signed-off-by: Reshma Pattan Signed-off-by: Remy Horton Signed-off-by: Konstantin Ananyev --- app/nginx/docs/GNUmakefile | 41 + app/nginx/docs/dtd/change_log_conf.dtd | 22 + app/nginx/docs/dtd/changes.dtd | 22 + app/nginx/docs/html/50x.html | 21 + app/nginx/docs/html/index.html | 25 + app/nginx/docs/man/nginx.8 | 206 + app/nginx/docs/text/LICENSE | 26 + app/nginx/docs/text/README | 3 + app/nginx/docs/xml/change_log_conf.xml | 47 + app/nginx/docs/xml/nginx/changes.xml | 25676 +++++++++++++++++++++++++++++++ app/nginx/docs/xsls/changes.xsls | 134 + app/nginx/docs/xslt/changes.xslt | 128 + 12 files changed, 26351 insertions(+) create mode 100644 app/nginx/docs/GNUmakefile create mode 100644 app/nginx/docs/dtd/change_log_conf.dtd create mode 100644 app/nginx/docs/dtd/changes.dtd create mode 100644 app/nginx/docs/html/50x.html create mode 100644 app/nginx/docs/html/index.html create mode 100644 app/nginx/docs/man/nginx.8 create mode 100644 app/nginx/docs/text/LICENSE create mode 100644 app/nginx/docs/text/README create mode 100644 app/nginx/docs/xml/change_log_conf.xml create mode 100644 app/nginx/docs/xml/nginx/changes.xml create mode 100644 app/nginx/docs/xsls/changes.xsls create mode 100644 app/nginx/docs/xslt/changes.xslt (limited to 'app/nginx/docs') diff --git a/app/nginx/docs/GNUmakefile b/app/nginx/docs/GNUmakefile new file mode 100644 index 0000000..9a920fe --- /dev/null +++ b/app/nginx/docs/GNUmakefile @@ -0,0 +1,41 @@ + +VER= $(shell grep 'define NGINX_VERSION' src/core/nginx.h \ + | sed -e 's/^.*"\(.*\)".*/\1/') +NGINX= nginx-$(VER) +TEMP= tmp +XSLS?= xslscript.pl + + +all: changes + +changes: $(TEMP)/$(NGINX)/CHANGES.ru \ + $(TEMP)/$(NGINX)/CHANGES + + +$(TEMP)/$(NGINX)/CHANGES.ru: docs/dtd/changes.dtd \ + docs/xml/nginx/changes.xml \ + docs/xml/change_log_conf.xml \ + docs/xslt/changes.xslt + + mkdir -p $(TEMP)/$(NGINX) + + xmllint --noout --valid docs/xml/nginx/changes.xml + xsltproc --stringparam lang ru \ + -o $@ docs/xslt/changes.xslt docs/xml/nginx/changes.xml + + +$(TEMP)/$(NGINX)/CHANGES: docs/dtd/changes.dtd \ + docs/xml/nginx/changes.xml \ + docs/xml/change_log_conf.xml \ + docs/xslt/changes.xslt + + mkdir -p $(TEMP)/$(NGINX) + + xmllint --noout --valid docs/xml/nginx/changes.xml + xsltproc --stringparam lang en \ + -o $@ docs/xslt/changes.xslt docs/xml/nginx/changes.xml + + +docs/xslt/changes.xslt: docs/xsls/changes.xsls + + $(XSLS) -o $@ $< diff --git a/app/nginx/docs/dtd/change_log_conf.dtd b/app/nginx/docs/dtd/change_log_conf.dtd new file mode 100644 index 0000000..40a0123 --- /dev/null +++ b/app/nginx/docs/dtd/change_log_conf.dtd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/nginx/docs/dtd/changes.dtd b/app/nginx/docs/dtd/changes.dtd new file mode 100644 index 0000000..e14518a --- /dev/null +++ b/app/nginx/docs/dtd/changes.dtd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/nginx/docs/html/50x.html b/app/nginx/docs/html/50x.html new file mode 100644 index 0000000..f60f5e7 --- /dev/null +++ b/app/nginx/docs/html/50x.html @@ -0,0 +1,21 @@ + + + +Error + + + +

An error occurred.

+

Sorry, the page you are looking for is currently unavailable.
+Please try again later.

+

If you are the system administrator of this resource then you should check +the error log for details.

+

Faithfully yours, nginx.

+ + diff --git a/app/nginx/docs/html/index.html b/app/nginx/docs/html/index.html new file mode 100644 index 0000000..2ca3b95 --- /dev/null +++ b/app/nginx/docs/html/index.html @@ -0,0 +1,25 @@ + + + +Welcome to nginx! + + + +

Welcome to nginx!

+

If you see this page, the nginx web server is successfully installed and +working. Further configuration is required.

+ +

For online documentation and support please refer to +nginx.org.
+Commercial support is available at +nginx.com.

+ +

Thank you for using nginx.

+ + diff --git a/app/nginx/docs/man/nginx.8 b/app/nginx/docs/man/nginx.8 new file mode 100644 index 0000000..1f4dc89 --- /dev/null +++ b/app/nginx/docs/man/nginx.8 @@ -0,0 +1,206 @@ +.\" +.\" Copyright (C) 2010 Sergey A. Osokin +.\" Copyright (C) Nginx, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" +.Dd June 16, 2015 +.Dt NGINX 8 +.Os +.Sh NAME +.Nm nginx +.Nd "HTTP and reverse proxy server, mail proxy server" +.Sh SYNOPSIS +.Nm +.Op Fl ?hqTtVv +.Op Fl c Ar file +.Op Fl g Ar directives +.Op Fl p Ar prefix +.Op Fl s Ar signal +.Sh DESCRIPTION +.Nm +(pronounced +.Dq engine x ) +is an HTTP and reverse proxy server, as well as a mail proxy server. +It is known for its high performance, stability, rich feature set, simple +configuration, and low resource consumption. +.Pp +The options are as follows: +.Bl -tag -width ".Fl d Ar directives" +.It Fl ?\& , h +Print help. +.It Fl c Ar file +Use an alternative configuration +.Ar file . +.It Fl g Ar directives +Set global configuration directives. +See +.Sx EXAMPLES +for details. +.It Fl p Ar prefix +Set the prefix path. +The default value is +.Pa %%PREFIX%% . +.It Fl q +Suppress non-error messages during configuration testing. +.It Fl s Ar signal +Send a signal to the master process. +The argument +.Ar signal +can be one of: +.Cm stop , quit , reopen , reload . +The following table shows the corresponding system signals: +.Pp +.Bl -tag -width ".Cm reopen" -compact +.It Cm stop +.Dv SIGTERM +.It Cm quit +.Dv SIGQUIT +.It Cm reopen +.Dv SIGUSR1 +.It Cm reload +.Dv SIGHUP +.El +.It Fl t +Do not run, just test the configuration file. +.Nm +checks the configuration file syntax and then tries to open files +referenced in the configuration file. +.It Fl T +Same as +.Fl t , +but additionally dump configuration files to standard output. +.It Fl V +Print the +.Nm +version, compiler version, and +.Pa configure +script parameters. +.It Fl v +Print the +.Nm +version. +.El +.Sh SIGNALS +The master process of +.Nm +can handle the following signals: +.Pp +.Bl -tag -width ".Dv SIGINT , SIGTERM" -compact +.It Dv SIGINT , SIGTERM +Shut down quickly. +.It Dv SIGHUP +Reload configuration, start the new worker process with a new +configuration, and gracefully shut down old worker processes. +.It Dv SIGQUIT +Shut down gracefully. +.It Dv SIGUSR1 +Reopen log files. +.It Dv SIGUSR2 +Upgrade the +.Nm +executable on the fly. +.It Dv SIGWINCH +Shut down worker processes gracefully. +.El +.Pp +While there is no need to explicitly control worker processes normally, +they support some signals too: +.Pp +.Bl -tag -width ".Dv SIGINT , SIGTERM" -compact +.It Dv SIGTERM +Shut down quickly. +.It Dv SIGQUIT +Shut down gracefully. +.It Dv SIGUSR1 +Reopen log files. +.El +.Sh DEBUGGING LOG +To enable a debugging log, reconfigure +.Nm +to build with debugging: +.Pp +.Dl "./configure --with-debug ..." +.Pp +and then set the +.Cm debug +level of the +.Va error_log : +.Pp +.Dl "error_log /path/to/log debug;" +.Pp +It is also possible to enable the debugging for a particular IP address: +.Bd -literal -offset indent +events { + debug_connection 127.0.0.1; +} +.Ed +.Sh ENVIRONMENT +The +.Ev NGINX +environment variable is used internally by +.Nm +and should not be set directly by the user. +.Sh FILES +.Bl -tag -width indent +.It Pa %%PID_PATH%% +Contains the process ID of +.Nm . +The contents of this file are not sensitive, so it can be world-readable. +.It Pa %%CONF_PATH%% +The main configuration file. +.It Pa %%ERROR_LOG_PATH%% +Error log file. +.El +.Sh EXIT STATUS +Exit status is 0 on success, or 1 if the command fails. +.Sh EXAMPLES +Test configuration file +.Pa ~/mynginx.conf +with global directives for PID and quantity of worker processes: +.Bd -literal -offset indent +nginx -t -c ~/mynginx.conf \e + -g "pid /var/run/mynginx.pid; worker_processes 2;" +.Ed +.Sh SEE ALSO +.\"Xr nginx.conf 5 +.\"Pp +Documentation at +.Pa http://nginx.org/en/docs/ . +.Pp +For questions and technical support, please refer to +.Pa http://nginx.org/en/support.html . +.Sh HISTORY +Development of +.Nm +started in 2002, with the first public release on October 4, 2004. +.Sh AUTHORS +.An -nosplit +.An Igor Sysoev Aq igor@sysoev.ru . +.Pp +This manual page was originally written by +.An Sergey A. Osokin Aq osa@FreeBSD.org.ru +as a result of compiling many +.Nm +documents from all over the world. diff --git a/app/nginx/docs/text/LICENSE b/app/nginx/docs/text/LICENSE new file mode 100644 index 0000000..3f29d93 --- /dev/null +++ b/app/nginx/docs/text/LICENSE @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2002-2017 Igor Sysoev + * Copyright (C) 2011-2017 Nginx, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ diff --git a/app/nginx/docs/text/README b/app/nginx/docs/text/README new file mode 100644 index 0000000..2f68e14 --- /dev/null +++ b/app/nginx/docs/text/README @@ -0,0 +1,3 @@ + +Documentation is available at http://nginx.org + diff --git a/app/nginx/docs/xml/change_log_conf.xml b/app/nginx/docs/xml/change_log_conf.xml new file mode 100644 index 0000000..c03dc34 --- /dev/null +++ b/app/nginx/docs/xml/change_log_conf.xml @@ -0,0 +1,47 @@ + + + + + +76 + + *) + + + + Изменения в + 66 + + Исправление + Добавление + Изменение + Безопасность + Изменение + + + + Changes with + 65 + + Bugfix + Feature + Change + Security + Workaround + + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + Oct + Nov + Dec + + + + diff --git a/app/nginx/docs/xml/nginx/changes.xml b/app/nginx/docs/xml/nginx/changes.xml new file mode 100644 index 0000000..ea39ab2 --- /dev/null +++ b/app/nginx/docs/xml/nginx/changes.xml @@ -0,0 +1,25676 @@ + + + + + + + + + + + +параметр http_429 в директивах proxy_next_upstream, fastcgi_next_upstream, +scgi_next_upstream и uwsgi_next_upstream.
+Спасибо Piotr Sikora. +
+ +the "http_429" parameter of the "proxy_next_upstream", "fastcgi_next_upstream", +"scgi_next_upstream", and "uwsgi_next_upstream" directives.
+Thanks to Piotr Sikora. +
+
+ + + +в обработке ошибок выделения памяти. + + +in memory allocation error handling. + + + + + +при использовании директив sendfile и timer_resolution на Linux +запросы могли зависать. + + +requests might hang +when using the "sendfile" and "timer_resolution" directives on Linux. + + + + + +при использовании с подзапросами директив sendfile и aio_write +запросы могли зависать. + + +requests might hang +when using the "sendfile" and "aio_write" directives with subrequests. + + + + + +в модуле ngx_http_v2_module.
+Спасибо Piotr Sikora. +
+ +in the ngx_http_v2_module.
+Thanks to Piotr Sikora. +
+
+ + + +при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process when using HTTP/2. + + + + + +запросы могли зависать +при использовании с подзапросами директив limit_rate, sendfile_max_chunk, +limit_req или метода $r->sleep() встроенного перла. + + +requests might hang +when using the "limit_rate", "sendfile_max_chunk", "limit_req" directives, +or the $r->sleep() embedded perl method with subrequests. + + + + + +в модуле ngx_http_slice_module. + + +in the ngx_http_slice_module. + + + +
+ + + + + + +nginx мог нагружать процессор; +ошибка появилась в 1.11.11. + + +nginx might hog CPU; +the bug had appeared in 1.11.11. + + + + + + + + + + +директива worker_shutdown_timeout. + + +the "worker_shutdown_timeout" directive. + + + + + +улучшения в скриптах подсветки синтаксиса для vim.
+Спасибо Wei-Ko Kao. +
+ +vim syntax highlighting scripts improvements.
+Thanks to Wei-Ko Kao. +
+
+ + + +при попытке установить переменную $limit_rate в пустую строку +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +if the $limit_rate variable was set to an empty string. + + + + + +директивы proxy_cache_background_update, fastcgi_cache_background_update, +scgi_cache_background_update и uwsgi_cache_background_update +могли работать некорректно, если использовалась директива if. + + +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. + + + + + +в рабочем процессе мог произойти segmentation fault, +если количество large_client_header_buffers в виртуальном сервере +отличалось от такового в сервере по умолчанию. + + +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. + + + + + +в почтовом прокси-сервере. + + +in the mail proxy server. + + + +
+ + + + + + +формат заголовка кэша был изменен, +ранее закэшированные ответы будут загружены заново. + + +cache header format has been changed, +previously cached responses will be invalidated. + + + + + +поддержка расширений stale-while-revalidate и stale-if-error +в строке "Cache-Control" в заголовке ответа бэкенда. + + +support of "stale-while-revalidate" and "stale-if-error" extensions +in the "Cache-Control" backend response header line. + + + + + +директивы proxy_cache_background_update, fastcgi_cache_background_update, +scgi_cache_background_update и uwsgi_cache_background_update. + + +the "proxy_cache_background_update", "fastcgi_cache_background_update", +"scgi_cache_background_update", and "uwsgi_cache_background_update" directives. + + + + + +теперь nginx может кэшировать ответы +со строкой Vary заголовка длиной до 128 символов +(вместо 42 символов в предыдущих версиях). + + +nginx is now able to cache responses +with the "Vary" header line up to 128 characters long +(instead of 42 characters in previous versions). + + + + + +параметр build директивы server_tokens.
+Спасибо Tom Thorogood. +
+ +the "build" parameter of the "server_tokens" directive.
+Thanks to Tom Thorogood. +
+
+ + + +при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса +в логах могли появляться сообщения "[crit] SSL_write() failed". + + +"[crit] SSL_write() failed" messages might appear in logs +when handling requests with the "Expect: 100-continue" request header line. + + + + + +модуль ngx_http_slice_module не работал в именованных location'ах. + + +the ngx_http_slice_module did not work in named locations. + + + + + +при использовании AIO после перенаправления запроса с помощью X-Accel-Redirect +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +when using AIO after an "X-Accel-Redirect" redirection. + + + + + +уменьшено потребление памяти для долгоживущих запросов, использующих сжатие. + + +reduced memory consumption for long-lived requests using gzipping. + + + +
+ + + + + + +при использовании модуля stream nginx мог нагружать процессор; +ошибка появилась в 1.11.5. + + +nginx might hog CPU when using the stream module; +the bug had appeared in 1.11.5. + + + + + +метод аутентификации EXTERNAL в почтовом прокси-сервере +можно было использовать, даже если он не был разрешён в конфигурации. + + +EXTERNAL authentication mechanism in mail proxy +was accepted even if it was not enabled in the configuration. + + + + + +при использовании директивы ssl_verify_client модуля stream +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +if the "ssl_verify_client" directive of the stream module was used. + + + + + +директива ssl_verify_client модуля stream могла не работать. + + +the "ssl_verify_client" directive of the stream module might not work. + + + + + +при исчерпании рабочим процессом свободных соединений +keepalive-соединения могли закрываться излишне агрессивно.
+Спасибо Joel Cunningham. +
+ +closing keepalive connections due to no free worker connections +might be too aggressive.
+Thanks to Joel Cunningham. +
+
+ + + +при использовании директивы sendfile на FreeBSD и macOS +мог возвращаться некорректный ответ; +ошибка появилась в 1.7.8. + + +an incorrect response might be returned +when using the "sendfile" directive on FreeBSD and macOS; +the bug had appeared in 1.7.8. + + + + + +при использовании директивы aio_write +ответ мог сохраняться в кэш не полностью. + + +a truncated response might be stored in cache +when using the "aio_write" directive. + + + + + +при использовании директивы aio_write +могла происходить утечка сокетов. + + +a socket leak might occur +when using the "aio_write" directive. + + + +
+ + + + + + +директива absolute_redirect. + + +the "absolute_redirect" directive. + + + + + +параметр escape директивы log_format. + + +the "escape" parameter of the "log_format" directive. + + + + + +проверка клиентских SSL-сертификатов в модуле stream. + + +client SSL certificates verification in the stream module. + + + + + +директива ssl_session_ticket_key поддерживает +шифрование TLS session tickets с помощью AES256 +при использовании с 80-байтными ключами. + + +the "ssl_session_ticket_key" directive supports +AES256 encryption of TLS session tickets +when used with 80-byte keys. + + + + + +поддержка vim-commentary в скриптах для vim.
+Спасибо Armin Grodon. +
+ +vim-commentary support in vim scripts.
+Thanks to Armin Grodon. +
+
+ + + +рекурсия при получении значений переменных не ограничивалась. + + +recursion when evaluating variables was not limited. + + + + + +в модуле ngx_stream_ssl_preread_module. + + +in the ngx_stream_ssl_preread_module. + + + + + +если сервер, описанный в блоке upstream в модуле stream, +был признан неработающим, то после истечения fail_timeout он +признавался работающим только после завершения тестового соединения; +теперь достаточно, чтобы соединение было успешно установлено. + + +if a server in an upstream in the stream module failed, +it was considered alive only when a test connection sent +to it after fail_timeout was closed; +now a successfully established connection is enough. + + + + + +nginx/Windows не собирался с 64-битным Visual Studio. + + +nginx/Windows could not be built with 64-bit Visual Studio. + + + + + +nginx/Windows не собирался с OpenSSL 1.1.0. + + +nginx/Windows could not be built with OpenSSL 1.1.0. + + + +
+ + + + + + +переменная $ssl_client_verify теперь +в случае ошибки проверки клиентского сертификата +содержит строку с описанием ошибки, +например, "FAILED:certificate has expired". + + +now in case of a client certificate verification error +the $ssl_client_verify variable contains a string with the failure reason, +for example, "FAILED:certificate has expired". + + + + + +переменные $ssl_ciphers, $ssl_curves, +$ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain. + + +the $ssl_ciphers, $ssl_curves, +$ssl_client_v_start, $ssl_client_v_end, and $ssl_client_v_remain variables. + + + + + +параметр volatile директивы map. + + +the "volatile" parameter of the "map" directive. + + + + + +при сборке динамических модулей +не учитывались заданные для модуля зависимости. + + +dependencies specified for a module +were ignored while building dynamic modules. + + + + + +при использовании HTTP/2 и директив limit_req или auth_request +тело запроса могло быть повреждено; +ошибка появилась в 1.11.0. + + +when using HTTP/2 and the "limit_req" or "auth_request" directives +client request body might be corrupted; +the bug had appeared in 1.11.0. + + + + + +при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.11.3. + + +a segmentation fault might occur in a worker process when using HTTP/2; +the bug had appeared in 1.11.3. + + + + + +в модуле ngx_http_mp4_module.
+Спасибо Congcong Hu. +
+ +in the ngx_http_mp4_module.
+Thanks to Congcong Hu. +
+
+ + + +в модуле ngx_http_perl_module. + + +in the ngx_http_perl_module. + + + +
+ + + + + + +формат переменных $ssl_client_s_dn и $ssl_client_i_dn +изменён на соответствующий RFC 2253 (RFC 4514); +значения в старом формате доступны через переменные +$ssl_client_s_dn_legacy и $ssl_client_i_dn_legacy. + + +format of the $ssl_client_s_dn and $ssl_client_i_dn variables +has been changed to follow RFC 2253 (RFC 4514); +values in the old format are available in +the $ssl_client_s_dn_legacy and $ssl_client_i_dn_legacy variables. + + + + + +при сохранении временных файлов в каталоге кэша +они теперь располагаются не в отдельном подкаталоге для временных файлов, +а в том же подкаталоге, что и соответствующие файлы в кэше. + + +when storing temporary files in a cache directory +they will be stored in the same subdirectories as corresponding cache files +instead of a separate subdirectory for temporary files. + + + + + +поддержка метода аутентификации EXTERNAL +в почтовом прокси-сервере.
+Спасибо Robert Norris. +
+ +EXTERNAL authentication mechanism support +in mail proxy.
+Thanks to Robert Norris. +
+
+ + + +поддержка WebP в модуле ngx_http_image_filter_module. + + +WebP support in the ngx_http_image_filter_module. + + + + + +директива proxy_method поддерживает переменные.
+Спасибо Дмитрию Лазуркину. +
+ +variables support in the "proxy_method" directive.
+Thanks to Dmitry Lazurkin. +
+
+ + + +директива http2_max_requests в модуле ngx_http_v2_module. + + +the "http2_max_requests" directive in the ngx_http_v2_module. + + + + + +директивы proxy_cache_max_range_offset, fastcgi_cache_max_range_offset, +scgi_cache_max_range_offset и uwsgi_cache_max_range_offset. + + +the "proxy_cache_max_range_offset", "fastcgi_cache_max_range_offset", +"scgi_cache_max_range_offset", and "uwsgi_cache_max_range_offset" directives. + + + + + +плавное завершение старых рабочих процессов могло занимать бесконечное время +при использовании HTTP/2. + + +graceful shutdown of old worker processes might require infinite time +when using HTTP/2. + + + + + +в модуле ngx_http_mp4_module. + + +in the ngx_http_mp4_module. + + + + + +при проксировании WebSocket-соединений и включённом кэшировании +в логах могли появляться сообщения "ignore long locked inactive cache entry". + + +"ignore long locked inactive cache entry" alerts might appear in logs +when proxying WebSocket connections with caching enabled. + + + + + +если во время SSL handshake с бэкендом происходил таймаут, +nginx ничего не писал в лог +и возвращал ответ с кодом 502 вместо 504. + + +nginx did not write anything to log +and returned a response with code 502 instead of 504 +when a timeout occurred during an SSL handshake to a backend. + + + +
+ + + + + + +параметр configure --with-ipv6 упразднён, +поддержка IPv6 теперь собирается автоматически. + + +the --with-ipv6 configure option was removed, +now IPv6 support is configured automatically. + + + + + +теперь, если в блоке upstream не оказалось доступных серверов, +nginx не сбрасывает статистику ошибок всех серверов, как делал ранее, +а ожидает истечения fail_timeout. + + +now if there are no available servers in an upstream, +nginx will not reset number of failures of all servers as it previously did, +but will wait for fail_timeout to expire. + + + + + +модуль ngx_stream_ssl_preread_module. + + +the ngx_stream_ssl_preread_module. + + + + + +директива server в блоке upstream поддерживает параметр max_conns. + + +the "server" directive in the "upstream" context supports +the "max_conns" parameter. + + + + + +параметр configure --with-compat. + + +the --with-compat configure option. + + + + + +параметры manager_files, manager_threshold и manager_sleep +директив proxy_cache_path, fastcgi_cache_path, scgi_cache_path и +uwsgi_cache_path. + + +"manager_files", "manager_threshold", and "manager_sleep" parameters +of the "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path", and +"uwsgi_cache_path" directives. + + + + + +при сборке perl-модуля не использовались флаги, +заданные с помощью параметра configure --with-ld-opt. + + +flags passed by the --with-ld-opt configure option +were not used while building perl module. + + + + + +в директиве add_after_body при использовании совместно с директивой sub_filter. + + +in the "add_after_body" directive when used with the "sub_filter" directive. + + + + + +в переменной $realip_remote_addr. + + +in the $realip_remote_addr variable. + + + + + +директивы dav_access, proxy_store_access, fastcgi_store_access, +scgi_store_access и uwsgi_store_access +игнорировали права, заданные для пользователя. + + +the "dav_access", "proxy_store_access", "fastcgi_store_access", +"scgi_store_access", and "uwsgi_store_access" directives +ignored permissions specified for user. + + + + + +unix domain listen-сокеты могли не наследоваться +при обновлении исполняемого файла на Linux. + + +unix domain listen sockets might not be inherited +during binary upgrade on Linux. + + + + + +nginx возвращал ошибку 400 на запросы +с символом "-" в HTTP-методе. + + +nginx returned the 400 response on requests +with the "-" character in the HTTP method. + + + + + + + + + + +переменная $upstream_bytes_received. + + +the $upstream_bytes_received variable. + + + + + +переменные $bytes_received, $session_time, $protocol, $status, +$upstream_addr, $upstream_bytes_sent, $upstream_bytes_received, +$upstream_connect_time, $upstream_first_byte_time +и $upstream_session_time в модуле stream. + + +the $bytes_received, $session_time, $protocol, $status, +$upstream_addr, $upstream_bytes_sent, $upstream_bytes_received, +$upstream_connect_time, $upstream_first_byte_time, +and $upstream_session_time variables in the stream module. + + + + + +модуль ngx_stream_log_module. + + +the ngx_stream_log_module. + + + + + +параметр proxy_protocol в директиве listen, +переменные $proxy_protocol_addr и $proxy_protocol_port +в модуле stream. + + +the "proxy_protocol" parameter of the "listen" directive, +the $proxy_protocol_addr and $proxy_protocol_port variables +in the stream module. + + + + + +модуль ngx_stream_realip_module. + + +the ngx_stream_realip_module. + + + + + +nginx не собирался с модулем stream и модулем ngx_http_ssl_module, +но без модуля ngx_stream_ssl_module; +ошибка появилась в 1.11.3. + + +nginx could not be built with the stream module and the ngx_http_ssl_module, +but without ngx_stream_ssl_module; +the bug had appeared in 1.11.3. + + + + + +опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась; +ошибка появилась в 1.11.2. + + +the IP_BIND_ADDRESS_NO_PORT socket option was not used; +the bug had appeared in 1.11.2. + + + + + +в параметре ranges директивы geo. + + +in the "ranges" parameter of the "geo" directive. + + + + + +при использовании директив "aio threads" и sendfile +мог возвращаться некорректный ответ; ошибка появилась в 1.9.13. + + +an incorrect response might be returned +when using the "aio threads" and "sendfile" directives; +the bug had appeared in 1.9.13. + + + + + + + + + + +теперь accept_mutex по умолчанию выключен. + + +now the "accept_mutex" directive is turned off by default. + + + + + +теперь nginx использует EPOLLEXCLUSIVE на Linux. + + +now nginx uses EPOLLEXCLUSIVE on Linux. + + + + + +модуль ngx_stream_geo_module. + + +the ngx_stream_geo_module. + + + + + +модуль ngx_stream_geoip_module. + + +the ngx_stream_geoip_module. + + + + + +модуль ngx_stream_split_clients_module. + + +the ngx_stream_split_clients_module. + + + + + +директивы proxy_pass и proxy_ssl_name в модуле stream +поддерживают переменные. + + +variables support +in the "proxy_pass" and "proxy_ssl_name" directives in the stream module. + + + + + +утечки сокетов при использовании HTTP/2. + + +socket leak when using HTTP/2. + + + + + +в configure.
+Спасибо Piotr Sikora. +
+ +in configure tests.
+Thanks to Piotr Sikora. +
+
+ +
+ + + + + + +теперь nginx всегда использует внутренние реализации MD5 и SHA1; +параметры configure --with-md5 и --with-sha1 упразднены. + + +now nginx always uses internal MD5 and SHA1 implementations; +the --with-md5 and --with-sha1 configure options were canceled. + + + + + +поддержка переменных в модуле stream. + + +variables support in the stream module. + + + + + +модуль ngx_stream_map_module. + + +the ngx_stream_map_module. + + + + + +модуль ngx_stream_return_module. + + +the ngx_stream_return_module. + + + + + +в директивах proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind +теперь можно указывать порт. + + +a port can be specified in the "proxy_bind", "fastcgi_bind", +"memcached_bind", "scgi_bind", and "uwsgi_bind" directives. + + + + + +теперь nginx использует опцию сокета IP_BIND_ADDRESS_NO_PORT, если она доступна. + + +now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option when available. + + + + + +при использовании HTTP/2 и директивы proxy_request_buffering +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +when using HTTP/2 and the "proxy_request_buffering" directive. + + + + + +при использовании HTTP/2 +к запросам, передаваемым на бэкенд, +всегда добавлялась строка заголовка "Content-Length", +даже если у запроса не было тела. + + +the "Content-Length" request header line +was always added to requests passed to backends, +including requests without body, +when using HTTP/2. + + + + + +при использовании HTTP/2 +в логах могли появляться сообщения "http request count is zero". + + +"http request count is zero" alerts might appear in logs +when using HTTP/2. + + + + + +при использовании директивы sub_filter +могло буферизироваться больше данных, чем это необходимо; +проблема появилась в 1.9.4. + + +unnecessary buffering might occur +when using the "sub_filter" directive; +the issue had appeared in 1.9.4. + + + + + + + + + + +при записи тела специально созданного запроса во временный файл +в рабочем процессе мог происходить segmentation fault +(CVE-2016-4450); +ошибка появилась в 1.3.9. + + +a segmentation fault might occur in a worker process +while writing a specially crafted request body to a temporary file +(CVE-2016-4450); +the bug had appeared in 1.3.9. + + + + + + + + + + +параметр transparent директив proxy_bind, fastcgi_bind, +memcached_bind, scgi_bind и uwsgi_bind. + + +the "transparent" parameter of the "proxy_bind", "fastcgi_bind", +"memcached_bind", "scgi_bind", and "uwsgi_bind" directives. + + + + + +переменная $request_id. + + +the $request_id variable. + + + + + +директива map поддерживает комбинации нескольких переменных +в качестве результирующих значений. + + +the "map" directive supports combinations of multiple variables +as resulting values. + + + + + +теперь при использовании метода epoll +nginx проверяет, поддерживает ли ядро события EPOLLRDHUP, +и соответственно оптимизирует обработку соединений. + + +now nginx checks if EPOLLRDHUP events are supported by kernel, +and optimizes connection handling accordingly +if the "epoll" method is used. + + + + + +директивы ssl_certificate и ssl_certificate_key +теперь можно указывать несколько раз +для загрузки сертификатов разных типов (например, RSA и ECDSA). + + +the "ssl_certificate" and "ssl_certificate_key" directives +can be specified multiple times +to load certificates of different types (for example, RSA and ECDSA). + + + + + +при использовании OpenSSL 1.0.2 и новее +с помощью директивы ssl_ecdh_curve теперь можно задать список кривых; +по умолчанию используется встроенный в OpenSSL список кривых. + + +the "ssl_ecdh_curve" directive now allows specifying a list of curves +when using OpenSSL 1.0.2 or newer; +by default a list built into OpenSSL is used. + + + + + +для использования DHE-шифров теперь надо явно задавать файл параметров +с помощью директивы ssl_dhparam. + + +to use DHE ciphers it is now required to specify parameters +using the "ssl_dhparam" directive. + + + + + +переменная $proxy_protocol_port. + + +the $proxy_protocol_port variable. + + + + + +переменная $realip_remote_port в модуле ngx_http_realip_module. + + +the $realip_remote_port variable in the ngx_http_realip_module. + + + + + +модуль ngx_http_realip_module теперь позволяет устанавливать +не только адрес, но и порт клиента. + + +the ngx_http_realip_module is now able to set the client port +in addition to the address. + + + + + +при попытке запросить виртуальный сервер, +отличающийся от согласованного в процессе SSL handshake, +теперь возвращается ответ "421 Misdirected Request"; +это улучшает совместимость с некоторыми HTTP/2-клиентами +в случае использования клиентских сертификатов. + + +the "421 Misdirected Request" response now used +when rejecting requests to a virtual server +different from one negotiated during an SSL handshake; +this improves interoperability with some HTTP/2 clients +when using client certificates. + + + + + +HTTP/2-клиенты теперь могут сразу присылать тело запроса; +директива http2_body_preread_size позволяет указать размер буфера, который +будет использоваться до того, как nginx начнёт читать тело. + + +HTTP/2 clients can now start sending request body immediately; +the "http2_body_preread_size" directive controls size of the buffer used +before nginx will start reading client request body. + + + + + +при использовании директивы proxy_cache_bypass +не обновлялись закэшированные ошибочные ответы. + + +cached error responses were not updated +when using the "proxy_cache_bypass" directive. + + + + + + + + + + +при использовании HHVM в качестве FastCGI-сервера +могли возникать ошибки "recv() failed". + + +"recv() failed" errors might occur +when using HHVM as a FastCGI server. + + + + + +при использовании HTTP/2 и директив limit_req или auth_request +при чтении тела запроса мог произойти таймаут +или ошибка "client violated flow control"; +ошибка появилась в 1.9.14. + + +when using HTTP/2 and the "limit_req" or "auth_request" directives +a timeout or a "client violated flow control" error +might occur while reading client request body; +the bug had appeared in 1.9.14. + + + + + +при использовании HTTP/2 ответ мог не показываться некоторыми браузерами, +если тело запроса было прочитано не целиком; +ошибка появилась в 1.9.14. + + +a response might not be shown by some browsers +if HTTP/2 was used and client request body was not fully read; +the bug had appeared in 1.9.14. + + + + + +при использовании директивы "aio threads" соединения могли зависать.
+Спасибо Mindaugas Rasiukevicius. +
+ +connections might hang when using the "aio threads" directive.
+Thanks to Mindaugas Rasiukevicius. +
+
+ +
+ + + + + + +совместимость с OpenSSL 1.1.0. + + +OpenSSL 1.1.0 compatibility. + + + + + +директивы proxy_request_buffering, fastcgi_request_buffering, +scgi_request_buffering и uwsgi_request_buffering +теперь работают при использовании HTTP/2. + + +the "proxy_request_buffering", "fastcgi_request_buffering", +"scgi_request_buffering", and "uwsgi_request_buffering" directives +now work with HTTP/2. + + + + + +при использовании HTTP/2 +в логах могли появляться сообщения "zero size buf in output". + + +"zero size buf in output" alerts might appear in logs +when using HTTP/2. + + + + + +при использовании HTTP/2 +директива client_max_body_size могла работать неверно. + + +the "client_max_body_size" directive might work incorrectly +when using HTTP/2. + + + + + +незначительных ошибок логгирования. + + +of minor bugs in logging. + + + + + + + + + + +неидемпотентные запросы (POST, LOCK, PATCH) +теперь по умолчанию не передаются на другой сервер, +если запрос уже был отправлен на бэкенд; +параметр non_idempotent директивы proxy_next_upstream +явно разрешает повторять такие запросы. + + +non-idempotent requests (POST, LOCK, PATCH) +are no longer passed to the next server by default +if a request has been sent to a backend; +the "non_idempotent" parameter of the "proxy_next_upstream" directive +explicitly allows retrying such requests. + + + + + +модуль ngx_http_perl_module теперь можно собрать динамически. + + +the ngx_http_perl_module can be built dynamically. + + + + + +поддержка UDP в модуле stream. + + +UDP support in the stream module. + + + + + +директива aio_write. + + +the "aio_write" directive. + + + + + +теперь cache manager следит за количеством элементов в кэше +и старается не допускать переполнений зоны разделяемой памяти. + + +now cache manager monitors number of elements in caches +and tries to avoid cache keys zone overflows. + + + + + +при использовании директив sendfile и aio с подзапросами +в логах могли появляться сообщения "task already active" и "second aio post". + + +"task already active" and "second aio post" alerts might appear in logs +when using the "sendfile" and "aio" directives with subrequests. + + + + + +при использовании кэширования +в логах могли появляться сообщения "zero size buf in output", +если клиент закрывал соединение преждевременно. + + +"zero size buf in output" alerts might appear in logs +if caching was used +and a client closed a connection prematurely. + + + + + +при использовании кэширования +соединения с клиентами могли закрываться без необходимости.
+Спасибо Justin Li. +
+ +connections with clients might be closed needlessly +if caching was used.
+Thanks to Justin Li. +
+
+ + + +nginx мог нагружать процессор +при использовании директивы sendfile на Linux и Solaris, +если отправляемый файл был изменён в процессе отправки. + + +nginx might hog CPU +if the "sendfile" directive was used on Linux or Solaris +and a file being sent was changed during sending. + + + + + +при использовании директив sendfile и "aio threads" +соединения могли зависать. + + +connections might hang +when using the "sendfile" and "aio threads" directives. + + + + + +в директивах proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass +при использовании переменных.
+Спасибо Piotr Sikora. +
+ +in the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives +when using variables.
+Thanks to Piotr Sikora. +
+
+ + + +в модуле ngx_http_sub_filter_module. + + +in the ngx_http_sub_filter_module. + + + + + +если в закэшированном соединении к бэкенду происходила ошибка, +запрос передавался на другой сервер +без учёта директивы proxy_next_upstream. + + +if an error occurred in a cached backend connection, +the request was passed to the next server +regardless of the proxy_next_upstream directive. + + + + + +ошибки "CreateFile() failed" при создании временных файлов на Windows. + + +"CreateFile() failed" errors when creating temporary files on Windows. + + + +
+ + + + + + +кодирование Хаффмана заголовков ответов в HTTP/2.
+Спасибо Владу Краснову. +
+ +Huffman encoding of response headers in HTTP/2.
+Thanks to Vlad Krasnov. +
+
+ + + +директива worker_cpu_affinity теперь поддерживает более 64 процессоров. + + +the "worker_cpu_affinity" directive now supports more than 64 CPUs. + + + + + +совместимость со сторонними модулями на C++; +ошибка появилась в 1.9.11.
+Спасибо Piotr Sikora. +
+ +compatibility with 3rd party C++ modules; +the bug had appeared in 1.9.11.
+Thanks to Piotr Sikora. +
+
+ + + +nginx не собирался статически с OpenSSL на Linux; +ошибка появилась в 1.9.11. + + +nginx could not be built statically with OpenSSL on Linux; +the bug had appeared in 1.9.11. + + + + + +директива "add_header ... always" с пустым значением +не удаляла из заголовков ошибочных ответов +строки Last-Modified и ETag. + + +the "add_header ... always" directive with an empty value +did not delete "Last-Modified" and "ETag" header lines +from error responses. + + + + + +при использовании OpenSSL 1.0.2f в логах могли появляться +сообщения "called a function you should not call" и +"shutdown while in init". + + +"called a function you should not call" +and "shutdown while in init" messages might appear in logs +when using OpenSSL 1.0.2f. + + + + + +ошибочные заголовки могли логгироваться некорректно. + + +invalid headers might be logged incorrectly. + + + + + +утечки сокетов при использовании HTTP/2. + + +socket leak when using HTTP/2. + + + + + +в модуле ngx_http_v2_module. + + +in the ngx_http_v2_module. + + + +
+ + + + + + +теперь resolver поддерживает TCP. + + +TCP support in resolver. + + + + + +динамические модули. + + +dynamic modules. + + + + + +при использовании HTTP/2 +переменная $request_length не учитывала размер заголовков запроса. + + +the $request_length variable did not include size of request headers +when using HTTP/2. + + + + + +в модуле ngx_http_v2_module. + + +in the ngx_http_v2_module. + + + + + + + + + + +при использовании директивы resolver +во время обработки ответов DNS-сервера +могло происходить разыменование некорректного адреса, +что позволяло атакующему, +имеющему возможность подделывать UDP-пакеты от DNS-сервера, +вызвать segmentation fault в рабочем процессе (CVE-2016-0742). + + +invalid pointer dereference might occur +during DNS server response processing +if the "resolver" directive was used, +allowing an attacker who is able to forge UDP packets from the DNS server +to cause segmentation fault in a worker process (CVE-2016-0742). + + + + + +при использовании директивы resolver +во время обработки CNAME-записей +могло произойти обращение к ранее освобождённой памяти, +что позволяло атакующему, +имеющему возможность инициировать преобразование произвольных имён в адреса, +вызвать segmentation fault в рабочем процессе, +а также потенциально могло иметь другие последствия (CVE-2016-0746). + + +use-after-free condition might occur +during CNAME response processing +if the "resolver" directive was used, +allowing an attacker who is able to trigger name resolution +to cause segmentation fault in a worker process, +or might have potential other impact (CVE-2016-0746). + + + + + +при использовании директивы resolver +во время обработки CNAME-записей +не во всех случаях проверялось ограничение +на максимальное количество записей в цепочке, +что позволяло атакующему, +имеющему возможность инициировать преобразование произвольных имён в адреса, +вызвать чрезмерное потребление ресурсов рабочими процессами (CVE-2016-0747). + + +CNAME resolution was insufficiently limited +if the "resolver" directive was used, +allowing an attacker who is able to trigger arbitrary name resolution +to cause excessive resource consumption in worker processes (CVE-2016-0747). + + + + + +параметр auto директивы worker_cpu_affinity. + + +the "auto" parameter of the "worker_cpu_affinity" directive. + + + + + +параметр proxy_protocol директивы listen не работал +с IPv6 listen-сокетами. + + +the "proxy_protocol" parameter of the "listen" directive did not work +with IPv6 listen sockets. + + + + + +при использовании директивы keepalive +соединения к бэкендам могли кэшироваться некорректно. + + +connections to upstream servers might be cached incorrectly +when using the "keepalive" directive. + + + + + +после перенаправления запроса с помощью X-Accel-Redirect +при проксировании использовался HTTP-метод оригинального запроса. + + +proxying used the HTTP method of the original request +after an "X-Accel-Redirect" redirection. + + + + + + + + + + +проксирование в unix domain сокеты не работало при использовании переменных; +ошибка появилась в 1.9.8. + + +proxying to unix domain sockets did not work when using variables; +the bug had appeared in 1.9.8. + + + + + + + + + + +поддержка pwritev(). + + +pwritev() support. + + + + + +директива include в блоке upstream. + + +the "include" directive inside the "upstream" block. + + + + + +модуль ngx_http_slice_module. + + +the ngx_http_slice_module. + + + + + +при использовании LibreSSL +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.9.6. + + +a segmentation fault might occur in a worker process +when using LibreSSL; +the bug had appeared in 1.9.6. + + + + + +nginx мог не собираться на OS X. + + +nginx could not be built on OS X in some cases. + + + + + + + + + + +параметр nohostname логгирования в syslog. + + +the "nohostname" parameter of logging to syslog. + + + + + +директива proxy_cache_convert_head. + + +the "proxy_cache_convert_head" directive. + + + + + +переменная $realip_remote_addr в модуле ngx_http_realip_module. + + +the $realip_remote_addr variable in the ngx_http_realip_module. + + + + + +директива expires могла не срабатывать при использовании переменных. + + +the "expires" directive might not work when using variables. + + + + + +при использовании HTTP/2 +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.9.6. + + +a segmentation fault might occur in a worker process +when using HTTP/2; +the bug had appeared in 1.9.6. + + + + + +если nginx был собран с модулем ngx_http_v2_module, +протокол HTTP/2 мог быть использован клиентом, +даже если не был указан параметр http2 директивы listen. + + +if nginx was built with the ngx_http_v2_module +it was possible to use the HTTP/2 protocol +even if the "http2" parameter of the "listen" directive was not specified. + + + + + +в модуле ngx_http_v2_module. + + +in the ngx_http_v2_module. + + + + + + + + + + +при использовании HTTP/2 +в рабочем процессе мог произойти segmentation fault.
+Спасибо Piotr Sikora и Denis Andzakovic. +
+ +a segmentation fault might occur in a worker process +when using HTTP/2.
+Thanks to Piotr Sikora and Denis Andzakovic. +
+
+ + + +при использовании HTTP/2 переменная $server_protocol была пустой. + + +the $server_protocol variable was empty when using HTTP/2. + + + + + +SSL-соединения к бэкендам в модуле stream +могли неожиданно завершаться по таймауту. + + +backend SSL connections in the stream module +might be timed out unexpectedly. + + + + + +при использовании различных настроек ssl_session_cache +в разных виртуальных серверах +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +if different ssl_session_cache settings were used +in different virtual servers. + + + + + +nginx/Windows не собирался с MinGW gcc; +ошибка появилась в 1.9.4.
+Спасибо Kouhei Sutou. +
+ +nginx/Windows could not be built with MinGW gcc; +the bug had appeared in 1.9.4.
+Thanks to Kouhei Sutou. +
+
+ + + +при использовании директивы timer_resolution на Windows время не обновлялось. + + +time was not updated when the timer_resolution directive was used on Windows. + + + + + +Незначительные исправления и улучшения.
+Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora. +
+ +Miscellaneous minor fixes and improvements.
+Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora. +
+
+ +
+ + + + + + +модуль ngx_http_v2_module (заменяет модуль ngx_http_spdy_module).
+Спасибо Dropbox и Automattic за спонсирование разработки. +
+ +the ngx_http_v2_module (replaces ngx_http_spdy_module).
+Thanks to Dropbox and Automattic for sponsoring this work. +
+
+ + + +теперь по умолчанию директива output_buffers использует два буфера. + + +now the "output_buffers" directive uses two buffers by default. + + + + + +теперь nginx ограничивает максимальную вложенность подзапросов, +а не количество одновременных подзапросов. + + +now nginx limits subrequests recursion, +not simultaneous subrequests. + + + + + +теперь при возврате ответов из кэша nginx проверяет ключ полностью.
+Спасибо Геннадию Махомеду и Сергею Брестеру. +
+ +now nginx checks the whole cache key when returning a response from cache.
+Thanks to Gena Makhomed and Sergey Brester. +
+
+ + + +при использовании кэша +в логах могли появляться сообщения "header already sent"; +ошибка появилась в 1.7.5. + + +"header already sent" alerts might appear in logs +when using cache; +the bug had appeared in 1.7.5. + + + + + +при использовании CephFS и директивы timer_resolution на Linux +в логах могли появляться сообщения +"writev() failed (4: Interrupted system call)". + + +"writev() failed (4: Interrupted system call)" +errors might appear in logs +when using CephFS and the "timer_resolution" directive on Linux. + + + + + +в обработке ошибок конфигурации.
+Спасибо Markus Linnala. +
+ +in invalid configurations handling.
+Thanks to Markus Linnala. +
+
+ + + +при использовании директивы sub_filter на уровне http +в рабочем процессе происходил segmentation fault; +ошибка появилась в 1.9.4. + + +a segmentation fault occurred in a worker process +if the "sub_filter" directive was used at http level; +the bug had appeared in 1.9.4. + + + +
+ + + + + + +директивы proxy_downstream_buffer и proxy_upstream_buffer в модуле stream +заменены директивой proxy_buffer_size. + + +the "proxy_downstream_buffer" and "proxy_upstream_buffer" directives +of the stream module are replaced with the "proxy_buffer_size" directive. + + + + + +директива tcp_nodelay в модуле stream. + + +the "tcp_nodelay" directive in the stream module. + + + + + +теперь можно указать несколько директив sub_filter одновременно. + + +multiple "sub_filter" directives can be used simultaneously. + + + + + +директива sub_filter поддерживает переменные в строке поиска. + + +variables support in the search string of the "sub_filter" directive. + + + + + +тестирование конфигурации могло не работать под Linux OpenVZ.
+Спасибо Геннадию Махомеду. +
+ +configuration testing might fail under Linux OpenVZ.
+Thanks to Gena Makhomed. +
+
+ + + +после переконфигурации старые рабочие процессы могли сильно нагружать процессор +при больших значениях worker_connections. + + +old worker processes might hog CPU after reconfiguration +with a large number of worker_connections. + + + + + +при совместном использовании директив try_files и alias +внутри location'а, заданного регулярным выражением, +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.7.1. + + +a segmentation fault might occur in a worker process +if the "try_files" and "alias" directives were used +inside a location given by a regular expression; +the bug had appeared in 1.7.1. + + + + + +директива try_files внутри вложенного location'а, заданного регулярным +выражением, работала неправильно, если во внешнем location'е использовалась +директива alias. + + +the "try_files" directive inside a nested location +given by a regular expression worked incorrectly +if the "alias" directive was used in the outer location. + + + + + +в обработке ошибок при построении хэш-таблиц. + + +in hash table initialization error handling. + + + + + +nginx не собирался с Visual Studio 2015. + + +nginx could not be built with Visual Studio 2015. + + + +
+ + + + + + +дублирующиеся блоки http, mail и stream теперь запрещены. + + +duplicate "http", "mail", and "stream" blocks are now disallowed. + + + + + +ограничение количества соединений в модуле stream. + + +connection limiting in the stream module. + + + + + +ограничение скорости в модуле stream. + + +data rate limiting in the stream module. + + + + + +директива zone в блоке upstream не работала на Windows. + + +the "zone" directive inside the "upstream" block did not work on Windows. + + + + + +совместимость с LibreSSL в модуле stream.
+Спасибо Piotr Sikora. +
+ +compatibility with LibreSSL in the stream module.
+Thanks to Piotr Sikora. +
+
+ + + +в параметре --builddir в configure.
+Спасибо Piotr Sikora. +
+ +in the "--builddir" configure parameter.
+Thanks to Piotr Sikora. +
+
+ + + +директива ssl_stapling_file не работала; +ошибка появилась в 1.9.2.
+Спасибо Faidon Liambotis и Brandon Black. +
+ +the "ssl_stapling_file" directive did not work; +the bug had appeared in 1.9.2.
+Thanks to Faidon Liambotis and Brandon Black. +
+
+ + + +при использовании директивы ssl_stapling +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.9.2.
+Спасибо Matthew Baldwin. +
+ +a segmentation fault might occur in a worker process +if the "ssl_stapling" directive was used; +the bug had appeared in 1.9.2.
+Thanks to Matthew Baldwin. +
+
+ +
+ + + + + + +параметр backlog директивы listen +в почтовом прокси-сервере и модуле stream. + + +the "backlog" parameter of the "listen" directives +of the mail proxy and stream modules. + + + + + +директивы allow и deny в модуле stream. + + +the "allow" and "deny" directives in the stream module. + + + + + +директива proxy_bind в модуле stream. + + +the "proxy_bind" directive in the stream module. + + + + + +директива proxy_protocol в модуле stream. + + +the "proxy_protocol" directive in the stream module. + + + + + +ключ -T. + + +the -T switch. + + + + + +параметр REQUEST_SCHEME добавлен в стандартные конфигурационные файлы +fastcgi.conf, fastcgi_params, scgi_params и uwsgi_params. + + +the REQUEST_SCHEME parameter added to the fastcgi.conf, fastcgi_params, +scgi_params, and uwsgi_params standard configuration files. + + + + + +параметр reuseport директивы listen в модуле stream +не работал. + + +the "reuseport" parameter of the "listen" directive of the stream module +did not work. + + + + + +OCSP stapling в некоторых случаях мог вернуть устаревший OCSP-ответ. + + +OCSP stapling might return an expired OCSP response in some cases. + + + + + + + + + + +теперь протокол SSLv3 по умолчанию запрещён. + + +now SSLv3 protocol is disabled by default. + + + + + +некоторые давно устаревшие директивы больше не поддерживаются. + + +some long deprecated directives are not supported anymore. + + + + + +параметр reuseport директивы listen.
+Спасибо Yingqi Lu из Intel и Sepherosa Ziehau. +
+ +the "reuseport" parameter of the "listen" directive.
+Thanks to Yingqi Lu at Intel and Sepherosa Ziehau. +
+
+ + + +переменная $upstream_connect_time. + + +the $upstream_connect_time variable. + + + + + +в директиве hash на big-endian платформах. + + +in the "hash" directive on big-endian platforms. + + + + + +nginx мог не запускаться на некоторых старых версиях Linux; +ошибка появилась в 1.7.11. + + +nginx might fail to start on some old Linux variants; +the bug had appeared in 1.7.11. + + + + + +в парсинге IP-адресов.
+Спасибо Сергею Половко. +
+ +in IP address parsing.
+Thanks to Sergey Polovko. +
+
+ +
+ + + + + + +устаревшие методы обработки соединений aio и rtsig больше не поддерживаются. + + +obsolete aio and rtsig event methods have been removed. + + + + + +директива zone в блоке upstream. + + +the "zone" directive inside the "upstream" block. + + + + + +модуль stream. + + +the stream module. + + + + + +поддержка byte ranges для ответов модуля ngx_http_memcached_module.
+Спасибо Martin Mlynář. +
+ +byte ranges support in the ngx_http_memcached_module.
+Thanks to Martin Mlynář. +
+
+ + + +разделяемую память теперь можно использовать на версиях Windows +с рандомизацией адресного пространства.
+Спасибо Сергею Брестеру. +
+ +shared memory can now be used on Windows versions +with address space layout randomization.
+Thanks to Sergey Brester. +
+
+ + + +директиву error_log теперь можно использовать +на уровнях mail и server в почтовом прокси-сервере. + + +the "error_log" directive can now be used +on mail and server levels in mail proxy. + + + + + +параметр proxy_protocol директивы listen не работал, +если не был указан в первой директиве listen для данного listen-сокета. + + +the "proxy_protocol" parameter of the "listen" directive did not work +if not specified in the first "listen" directive for a listen socket. + + + +
+ + + + + + +теперь директива tcp_nodelay работает для SSL-соединений с бэкендами. + + +now the "tcp_nodelay" directive works with backend SSL connections. + + + + + +теперь потоки могут использоваться для чтения заголовков файлов в кэше. + + +now thread pools can be used to read cache file headers. + + + + + +в директиве proxy_request_buffering. + + +in the "proxy_request_buffering" directive. + + + + + +при использовании потоков на Linux +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +when using thread pools on Linux. + + + + + +в обработке ошибок при использовании директивы ssl_stapling.
+Спасибо Filipe da Silva. +
+ +in error handling when using the "ssl_stapling" directive.
+Thanks to Filipe da Silva. +
+
+ + + +в модуле ngx_http_spdy_module. + + +in the ngx_http_spdy_module. + + + +
+ + + + + + +параметр sendfile директивы aio более не нужен; +теперь nginx автоматически использует AIO для подгрузки данных для sendfile, +если одновременно используются директивы aio и sendfile. + + +the "sendfile" parameter of the "aio" directive is deprecated; +now nginx automatically uses AIO to pre-load data for sendfile +if both "aio" and "sendfile" directives are used. + + + + + +экспериментальная поддержка потоков. + + +experimental thread pools support. + + + + + +директивы proxy_request_buffering, fastcgi_request_buffering, +scgi_request_buffering и uwsgi_request_buffering. + + +the "proxy_request_buffering", "fastcgi_request_buffering", +"scgi_request_buffering", and "uwsgi_request_buffering" directives. + + + + + +экспериментальное API для обработки тела запроса. + + +request body filters experimental API. + + + + + +проверка клиентских SSL-сертификатов в почтовом прокси-сервере.
+Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva. +
+ +client SSL certificates support in mail proxy.
+Thanks to Sven Peter, Franck Levionnois, and Filipe Da Silva. +
+
+ + + +уменьшение времени запуска +при использовании директивы "hash ... consistent" в блоке upstream.
+Спасибо Wai Keen Woon. +
+ +startup speedup +when using the "hash ... consistent" directive in the upstream block.
+Thanks to Wai Keen Woon. +
+
+ + + +отладочное логгирование в кольцевой буфер в памяти. + + +debug logging into a cyclic memory buffer. + + + + + +в обработке хэш-таблиц.
+Спасибо Chris West. +
+ +in hash table handling.
+Thanks to Chris West. +
+
+ + + +в директиве proxy_cache_revalidate. + + +in the "proxy_cache_revalidate" directive. + + + + + +SSL-соединения могли зависать, если использовался отложенный accept +или параметр proxy_protocol директивы listen.
+Спасибо James Hamlin. +
+ +SSL connections might hang if deferred accept +or the "proxy_protocol" parameter of the "listen" directive were used.
+Thanks to James Hamlin. +
+
+ + + +переменная $upstream_response_time могла содержать неверное значение +при использовании директивы image_filter. + + +the $upstream_response_time variable might contain a wrong value +if the "image_filter" directive was used. + + + + + +в обработке целочисленных переполнений.
+Спасибо Régis Leroy. +
+ +in integer overflow handling.
+Thanks to Régis Leroy. +
+
+ + + +при использовании LibreSSL было невозможно включить поддержку SSLv3. + + +it was not possible to enable SSLv3 with LibreSSL. + + + + + +при использовании LibreSSL в логах появлялись сообщения +"ignoring stale global SSL error ... called a function you should not call". + + +the "ignoring stale global SSL error ... called a function you should not call" +alerts appeared in logs when using LibreSSL. + + + + + +сертификаты, указанные в директивах ssl_client_certificate и +ssl_trusted_certificate, использовались +для автоматического построения цепочек сертификатов. + + +certificates specified by the "ssl_client_certificate" and +"ssl_trusted_certificate" directives were inadvertently used +to automatically construct certificate chains. + + + +
+ + + + + + +параметр use_temp_path директив proxy_cache_path, fastcgi_cache_path, +scgi_cache_path и uwsgi_cache_path. + + +the "use_temp_path" parameter of the "proxy_cache_path", "fastcgi_cache_path", +"scgi_cache_path", and "uwsgi_cache_path" directives. + + + + + +переменная $upstream_header_time. + + +the $upstream_header_time variable. + + + + + +теперь при переполнении диска nginx пытается писать error_log'и только +раз в секунду. + + +now on disk overflow nginx tries to write error logs once a second only. + + + + + +директива try_files при тестировании каталогов +не игнорировала обычные файлы.
+Спасибо Damien Tournoud. +
+ +the "try_files" directive did not ignore normal files +while testing directories.
+Thanks to Damien Tournoud. +
+
+ + + +при использовании директивы sendfile на OS X +возникали ошибки "sendfile() failed"; +ошибка появилась в nginx 1.7.8. + + +alerts "sendfile() failed" +if the "sendfile" directive was used on OS X; +the bug had appeared in 1.7.8. + + + + + +в лог могли писаться сообщения "sem_post() failed". + + +alerts "sem_post() failed" might appear in logs. + + + + + +nginx не собирался с musl libc.
+Спасибо James Taylor. +
+ +nginx could not be built with musl libc.
+Thanks to James Taylor. +
+
+ + + +nginx не собирался на Tru64 UNIX.
+Спасибо Goetz T. Fischer. +
+ +nginx could not be built on Tru64 UNIX.
+Thanks to Goetz T. Fischer. +
+
+ +
+ + + + + + +директивы proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache +поддерживают переменные. + + +variables support in the "proxy_cache", "fastcgi_cache", "scgi_cache", +and "uwsgi_cache" directives. + + + + + +директива expires поддерживает переменные. + + +variables support in the "expires" directive. + + + + + +возможность загрузки секретных ключей с аппаратных устройств +с помощью OpenSSL engines.
+Спасибо Дмитрию Пичулину. +
+ +loading of secret keys from hardware tokens +with OpenSSL engines.
+Thanks to Dmitrii Pichulin. +
+
+ + + +директива autoindex_format. + + +the "autoindex_format" directive. + + + + + +ревалидация элементов кэша теперь используется только для ответов +с кодами 200 и 206.
+Спасибо Piotr Sikora. +
+ +cache revalidation is now only used for responses +with 200 and 206 status codes.
+Thanks to Piotr Sikora. +
+
+ + + +строка "TE" заголовка запроса клиента передавалась на бэкенд при проксировании. + + +the "TE" client request header line was passed to backends while proxying. + + + + + +директивы proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass +могли неправильно работать внутри блоков if и limit_except. + + +the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives +might not work correctly inside the "if" and "limit_except" blocks. + + + + + +директива proxy_store с параметром "on" игнорировалась, +если на предыдущем уровне использовалась директива proxy_store +с явно заданным путём к файлам. + + +the "proxy_store" directive with the "on" parameter was ignored +if the "proxy_store" directive with an explicitly specified file path +was used on a previous level. + + + + + +nginx не собирался с BoringSSL.
+Спасибо Lukas Tribus. +
+ +nginx could not be built with BoringSSL.
+Thanks to Lukas Tribus. +
+
+ +
+ + + + + + +теперь строки "If-Modified-Since", "If-Range" и им подобные +в заголовке запроса клиента передаются бэкенду при включённом кэшировании, +если nginx заранее знает, что не будет кэшировать ответ +(например, при использовании proxy_cache_min_uses). + + +now the "If-Modified-Since", "If-Range", etc. +client request header lines are passed to a backend while caching +if nginx knows in advance that the response will not be cached +(e.g., when using proxy_cache_min_uses). + + + + + +теперь после истечения proxy_cache_lock_timeout +nginx отправляет запрос на бэкенд без кэширования; +новые директивы proxy_cache_lock_age, fastcgi_cache_lock_age, +scgi_cache_lock_age и uwsgi_cache_lock_age позволяют указать, +через какое время блокировка будет принудительно снята +и будет сделана ещё одна попытка закэшировать ответ. + + +now after proxy_cache_lock_timeout +nginx sends a request to a backend with caching disabled; +the new directives "proxy_cache_lock_age", "fastcgi_cache_lock_age", +"scgi_cache_lock_age", and "uwsgi_cache_lock_age" specify a time +after which the lock will be released +and another attempt to cache a response will be made. + + + + + +директива log_format теперь может использоваться только на уровне http. + + +the "log_format" directive can now be used only at http level. + + + + + +директивы proxy_ssl_certificate, proxy_ssl_certificate_key, +proxy_ssl_password_file, uwsgi_ssl_certificate, +uwsgi_ssl_certificate_key и uwsgi_ssl_password_file.
+Спасибо Piotr Sikora. +
+ +the "proxy_ssl_certificate", "proxy_ssl_certificate_key", +"proxy_ssl_password_file", "uwsgi_ssl_certificate", +"uwsgi_ssl_certificate_key", and "uwsgi_ssl_password_file" directives.
+Thanks to Piotr Sikora. +
+
+ + + +теперь с помощью X-Accel-Redirect +можно перейти в именованный location.
+Спасибо Toshikuni Fukaya. +
+ +it is now possible to switch to a named location +using "X-Accel-Redirect".
+Thanks to Toshikuni Fukaya. +
+
+ + + +теперь директива tcp_nodelay работает для SPDY-соединений. + + +now the "tcp_nodelay" directive works with SPDY connections. + + + + + +новые директивы в скриптах подсветки синтаксиса для vim.
+Спасибо Peter Wu. +
+ +new directives in vim syntax highliting scripts.
+Thanks to Peter Wu. +
+
+ + + +nginx игнорировал значение "s-maxage" +в строке "Cache-Control" в заголовке ответа бэкенда.
+Спасибо Piotr Sikora. +
+ +nginx ignored the "s-maxage" value +in the "Cache-Control" backend response header line.
+Thanks to Piotr Sikora. +
+
+ + + +в модуле ngx_http_spdy_module.
+Спасибо Piotr Sikora. +
+ +in the ngx_http_spdy_module.
+Thanks to Piotr Sikora. +
+
+ + + +в директиве ssl_password_file +при использовании OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j. + + +in the "ssl_password_file" directive +when using OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j. + + + + + +при использовании директивы post_action +в лог писались сообщения "header already sent"; +ошибка появилась в nginx 1.5.4. + + +alerts "header already sent" appeared in logs +if the "post_action" directive was used; +the bug had appeared in 1.5.4. + + + + + +при использовании директивы "postpone_output 0" с SSI-подзапросами +в лог могли писаться сообщения "the http output chain is empty". + + +alerts "the http output chain is empty" might appear in logs +if the "postpone_output 0" directive was used with SSI includes. + + + + + +в директиве proxy_cache_lock при использовании SSI-подзапросов.
+Спасибо Yichun Zhang. +
+ +in the "proxy_cache_lock" directive with SSI subrequests.
+Thanks to Yichun Zhang. +
+
+ +
+ + + + + + +теперь nginx учитывает при кэшировании строку "Vary" +в заголовке ответа бэкенда. + + +now nginx takes into account the "Vary" +header line in a backend response while caching. + + + + + +директивы proxy_force_ranges, fastcgi_force_ranges, +scgi_force_ranges и uwsgi_force_ranges. + + +the "proxy_force_ranges", "fastcgi_force_ranges", +"scgi_force_ranges", and "uwsgi_force_ranges" directives. + + + + + +директивы proxy_limit_rate, fastcgi_limit_rate, +scgi_limit_rate и uwsgi_limit_rate. + + +the "proxy_limit_rate", "fastcgi_limit_rate", +"scgi_limit_rate", and "uwsgi_limit_rate" directives. + + + + + +параметр Vary директив proxy_ignore_headers, fastcgi_ignore_headers, +scgi_ignore_headers и uwsgi_ignore_headers. + + +the "Vary" parameter of the "proxy_ignore_headers", "fastcgi_ignore_headers", +"scgi_ignore_headers", and "uwsgi_ignore_headers" directives. + + + + + +последняя часть ответа, полученного от бэкенда +при небуферизированном проксировании, +могла не отправляться клиенту, +если использовались директивы gzip или gunzip. + + +the last part of a response received from a backend +with unbufferred proxy +might not be sent to a client +if "gzip" or "gunzip" directives were used. + + + + + +в директиве proxy_cache_revalidate.
+Спасибо Piotr Sikora. +
+ +in the "proxy_cache_revalidate" directive.
+Thanks to Piotr Sikora. +
+
+ + + +в обработке ошибок.
+Спасибо Yichun Zhang и Даниилу Бондареву. +
+ +in error handling.
+Thanks to Yichun Zhang and Daniil Bondarev. +
+
+ + + +в директивах +proxy_next_upstream_tries и proxy_next_upstream_timeout.
+Спасибо Feng Gu. +
+ +in the "proxy_next_upstream_tries" and "proxy_next_upstream_timeout" +directives.
+Thanks to Feng Gu. +
+
+ + + +nginx/Windows не собирался с MinGW-w64 gcc.
+Спасибо Kouhei Sutou. +
+ +nginx/Windows could not be built with MinGW-w64 gcc.
+Thanks to Kouhei Sutou. +
+
+ +
+ + + + + + +устаревшая директива limit_zone больше не поддерживается. + + +the deprecated "limit_zone" directive is not supported anymore. + + + + + +в директивах limit_conn_zone и limit_req_zone теперь можно использовать +комбинации нескольких переменных. + + +the "limit_conn_zone" and "limit_req_zone" directives now can be used +with combinations of multiple variables. + + + + + +при повторной отправке FastCGI-запроса на бэкенд +тело запроса могло передаваться неправильно. + + +request body might be transmitted incorrectly +when retrying a FastCGI request to the next upstream server. + + + + + +в логгировании в syslog. + + +in logging to syslog. + + + + + + + + + + +при использовании общего для нескольких блоков server +разделяемого кэша SSL-сессий или общего ключа для шифрования +TLS session tickets было возможно повторно использовать +SSL-сессию в контексте другого блока server (CVE-2014-3616).
+Спасибо Antoine Delignat-Lavaud. +
+ +it was possible to reuse SSL sessions in unrelated contexts +if a shared SSL session cache or the same TLS session ticket key +was used for multiple "server" blocks (CVE-2014-3616).
+Thanks to Antoine Delignat-Lavaud. +
+
+ + + +директиву stub_status теперь можно указывать без параметров. + + +now the "stub_status" directive does not require a parameter. + + + + + +параметр always директивы add_header. + + +the "always" parameter of the "add_header" directive. + + + + + +директивы +proxy_next_upstream_tries, proxy_next_upstream_timeout, +fastcgi_next_upstream_tries, fastcgi_next_upstream_timeout, +memcached_next_upstream_tries, memcached_next_upstream_timeout, +scgi_next_upstream_tries, scgi_next_upstream_timeout, +uwsgi_next_upstream_tries и uwsgi_next_upstream_timeout. + + +the +"proxy_next_upstream_tries", "proxy_next_upstream_timeout", +"fastcgi_next_upstream_tries", "fastcgi_next_upstream_timeout", +"memcached_next_upstream_tries", "memcached_next_upstream_timeout", +"scgi_next_upstream_tries", "scgi_next_upstream_timeout", +"uwsgi_next_upstream_tries", and "uwsgi_next_upstream_timeout" +directives. + + + + + +в параметре if директивы access_log. + + +in the "if" parameter of the "access_log" directive. + + + + + +в модуле ngx_http_perl_module.
+Спасибо Piotr Sikora. +
+ +in the ngx_http_perl_module.
+Thanks to Piotr Sikora. +
+
+ + + +директива listen почтового прокси-сервера +не позволяла указать более двух параметров. + + +the "listen" directive of the mail proxy module +did not allow to specify more than two parameters. + + + + + +директива sub_filter не работала +с заменяемой строкой из одного символа. + + +the "sub_filter" directive did not work +with a string to replace consisting of a single character. + + + + + +запросы могли зависать, если использовался resolver +и в процессе обращения к DNS-серверу происходил таймаут. + + +requests might hang if resolver was used +and a timeout occurred during a DNS request. + + + + + +в модуле ngx_http_spdy_module при использовании совместно с AIO. + + +in the ngx_http_spdy_module when using with AIO. + + + + + +в рабочем процессе мог произойти segmentation fault, +если с помощью директивы set изменялись переменные +"$http_...", "$sent_http_..." или "$upstream_http_...". + + +a segmentation fault might occur in a worker process +if the "set" directive was used to change the "$http_...", +"$sent_http_...", or "$upstream_http_..." variables. + + + + + +в обработке ошибок выделения памяти.
+Спасибо Markus Linnala и Feng Gu. +
+ +in memory allocation error handling.
+Thanks to Markus Linnala and Feng Gu. +
+
+ +
+ + + + + + +pipelined-команды не отбрасывались +после команды STARTTLS в SMTP прокси-сервере (CVE-2014-3556); +ошибка появилась в 1.5.6.
+Спасибо Chris Boulton. +
+ +pipelined commands were not discarded +after STARTTLS command in SMTP proxy (CVE-2014-3556); +the bug had appeared in 1.5.6.
+Thanks to Chris Boulton. +
+
+ + + +экранирование символов в URI теперь использует +шестнадцатеричные цифры в верхнем регистре.
+Спасибо Piotr Sikora. +
+ +URI escaping now uses +uppercase hexadecimal digits.
+Thanks to Piotr Sikora. +
+
+ + + +теперь nginx можно собрать с BoringSSL и LibreSSL.
+Спасибо Piotr Sikora. +
+ +now nginx can be build with BoringSSL and LibreSSL.
+Thanks to Piotr Sikora. +
+
+ + + +запросы могли зависать, если использовался resolver +и DNS-сервер возвращал некорректный ответ; +ошибка появилась в 1.5.8. + + +requests might hang if resolver was used +and a DNS server returned a malformed response; +the bug had appeared in 1.5.8. + + + + + +в модуле ngx_http_spdy_module.
+Спасибо Piotr Sikora. +
+ +in the ngx_http_spdy_module.
+Thanks to Piotr Sikora. +
+
+ + + +переменная $uri могла содержать мусор +при возврате ошибок с кодом 400.
+Спасибо Сергею Боброву. +
+ +the $uri variable might contain garbage +when returning errors with code 400.
+Thanks to Sergey Bobrov. +
+
+ + + +в обработке ошибок в директиве proxy_store +и в модуле ngx_http_dav_module.
+Спасибо Feng Gu. +
+ +in error handling in the "proxy_store" directive +and the ngx_http_dav_module.
+Thanks to Feng Gu. +
+
+ + + +при логгировании ошибок в syslog мог происходить segmentation fault; +ошибка появилась в 1.7.1. + + +a segmentation fault might occur if logging of errors to syslog was used; +the bug had appeared in 1.7.1. + + + + + +переменные $geoip_latitude, $geoip_longitude, $geoip_dma_code +и $geoip_area_code могли не работать.
+Спасибо Yichun Zhang. +
+ +the $geoip_latitude, $geoip_longitude, $geoip_dma_code, +and $geoip_area_code variables might not work.
+Thanks to Yichun Zhang. +
+
+ + + +в обработке ошибок выделения памяти.
+Спасибо Tatsuhiko Kubo и Piotr Sikora. +
+ +in memory allocation error handling.
+Thanks to Tatsuhiko Kubo and Piotr Sikora. +
+
+ +
+ + + + + + +weak entity tags теперь не удаляются при изменениях ответа, +а strong entity tags преобразуются в weak. + + +weak entity tags are now preserved on response modifications, +and strong ones are changed to weak. + + + + + +ревалидация элементов кэша теперь, если это возможно, +использует заголовок If-None-Match. + + +cache revalidation now uses If-None-Match header +if possible. + + + + + +директива ssl_password_file. + + +the "ssl_password_file" directive. + + + + + +при возврате ответа из кэша +заголовок запроса If-None-Match игнорировался, +если в ответе не было заголовка Last-Modified. + + +the If-None-Match request header line was ignored +if there was no Last-Modified header +in a response returned from cache. + + + + + +сообщения "peer closed connection in SSL handshake" +при соединении с бэкендами логгировались на уровне info вместо error. + + +"peer closed connection in SSL handshake" messages +were logged at "info" level instead of "error" while connecting to backends. + + + + + +в модуле ngx_http_dav_module в nginx/Windows. + + +in the ngx_http_dav_module module in nginx/Windows. + + + + + +SPDY-соединения могли неожиданно закрываться, +если использовалось кэширование. + + +SPDY connections might be closed prematurely +if caching was used. + + + + + + + + + + +директива hash в блоке upstream. + + +the "hash" directive inside the "upstream" block. + + + + + +дефрагментация свободных блоков разделяемой памяти.
+Спасибо Wandenberg Peixoto и Yichun Zhang. +
+ +defragmentation of free shared memory blocks.
+Thanks to Wandenberg Peixoto and Yichun Zhang. +
+
+ + + +в рабочем процессе мог произойти segmentation fault, +если использовалось значение access_log по умолчанию; +ошибка появилась в 1.7.0.
+Спасибо Piotr Sikora. +
+ +a segmentation fault might occur in a worker process +if the default value of the "access_log" directive was used; +the bug had appeared in 1.7.0.
+Thanks to Piotr Sikora. +
+
+ + + +завершающий слэш ошибочно удалялся +из последнего параметра директивы try_files. + + +trailing slash was mistakenly removed +from the last parameter of the "try_files" directive. + + + + + +nginx мог не собираться на OS X. + + +nginx could not be built on OS X in some cases. + + + + + +в модуле ngx_http_spdy_module. + + +in the ngx_http_spdy_module. + + + +
+ + + + + + +переменные "$upstream_cookie_...". + + +the "$upstream_cookie_..." variables. + + + + + +переменная $ssl_client_fingerprint. + + +the $ssl_client_fingerprint variable. + + + + + +директивы error_log и access_log теперь поддерживают логгирование в syslog. + + +the "error_log" and "access_log" directives now support logging to syslog. + + + + + +почтовый прокси-сервер теперь логгирует порт клиента при соединении. + + +the mail proxy now logs client port on connect. + + + + + +утечки памяти при использовании директивы "ssl_stapling".
+Спасибо Filipe da Silva. +
+ +memory leak if the "ssl_stapling" directive was used.
+Thanks to Filipe da Silva. +
+
+ + + +директива alias внутри location'а, заданного регулярным выражением, +работала неправильно, если использовались директивы if или limit_except. + + +the "alias" directive used inside a location given by a regular expression +worked incorrectly if the "if" or "limit_except" directives were used. + + + + + +директива charset не ставила кодировку для сжатых ответов бэкендов. + + +the "charset" directive did not set a charset to encoded backend responses. + + + + + +директива proxy_pass без URI могла использовать оригинальный запрос +после установки переменной $args.
+Спасибо Yichun Zhang. +
+ +a "proxy_pass" directive without URI part might use original request +after the $args variable was set.
+Thanks to Yichun Zhang. +
+
+ + + +в работе параметра none директивы smtp_auth; +ошибка появилась в 1.5.6.
+Спасибо Святославу Никольскому. +
+ +in the "none" parameter in the "smtp_auth" directive; +the bug had appeared in 1.5.6.
+Thanks to Svyatoslav Nikolsky. +
+
+ + + +при совместном использовании sub_filter и SSI +ответы могли передаваться неверно. + + +if sub_filter and SSI were used together, +then responses might be transferred incorrectly. + + + + + +nginx не собирался с параметром --with-file-aio на Linux/aarch64. + + +nginx could not be built with the --with-file-aio option on Linux/aarch64. + + + +
+ + + + + + +проверка SSL-сертификатов бэкендов. + + +backend SSL certificate verification. + + + + + +поддержка SNI при работе с бэкендами по SSL. + + +support for SNI while working with SSL backends. + + + + + +переменная $ssl_server_name. + + +the $ssl_server_name variable. + + + + + +параметр if директивы access_log. + + +the "if" parameter of the "access_log" directive. + + + + + + + + + + +улучшена обработка хэш-таблиц; +в директивах variables_hash_max_size и types_hash_bucket_size +значения по умолчанию изменены на 1024 и 64 соответственно. + + +improved hash table handling; +the default values of the "variables_hash_max_size" and +"types_hash_bucket_size" were changed to 1024 and 64 respectively. + + + + + +модуль ngx_http_mp4_module теперь понимает аргумент end. + + +the ngx_http_mp4_module now supports the "end" argument. + + + + + +поддержка byte ranges модулем ngx_http_mp4_module и при сохранении +ответов в кэш. + + +byte ranges support in the ngx_http_mp4_module and while saving responses +to cache. + + + + + +теперь nginx не пишет в лог сообщения "ngx_slab_alloc() failed: no memory" +при использовании разделяемой памяти в ssl_session_cache +и в модуле ngx_http_limit_req_module. + + +alerts "ngx_slab_alloc() failed: no memory" no longer logged +when using shared memory in the "ssl_session_cache" directive +and in the ngx_http_limit_req_module. + + + + + +директива underscores_in_headers +не разрешала подчёркивание в первом символе заголовка.
+Спасибо Piotr Sikora. +
+ +the "underscores_in_headers" directive +did not allow underscore as a first character of a header.
+Thanks to Piotr Sikora. +
+
+ + + +cache manager мог нагружать процессор при выходе в nginx/Windows. + + +cache manager might hog CPU on exit in nginx/Windows. + + + + + +при использовании ssl_session_cache с параметром shared +рабочий процесс nginx/Windows завершался аварийно. + + +nginx/Windows terminated abnormally +if the "ssl_session_cache" directive was used with the "shared" parameter. + + + + + +в модуле ngx_http_spdy_module. + + +in the ngx_http_spdy_module. + + + +
+ + + + + + +при обработке специально созданного запроса модулем ngx_http_spdy_module +могло происходить переполнение буфера в рабочем процессе, +что потенциально могло приводить к выполнению произвольного кода +(CVE-2014-0133).
+Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel +Sadosky, Buenos Aires, Argentina. +
+ +a heap memory buffer overflow might occur in a worker process +while handling a specially crafted request by ngx_http_spdy_module, +potentially resulting in arbitrary code execution +(CVE-2014-0133).
+Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel +Sadosky, Buenos Aires, Argentina. +
+
+ + + +параметр proxy_protocol в директивах listen и real_ip_header, +переменная $proxy_protocol_addr. + + +the "proxy_protocol" parameters of the "listen" and "real_ip_header" directives, +the $proxy_protocol_addr variable. + + + + + +в директиве fastcgi_next_upstream.
+Спасибо Lucas Molas. +
+ +in the "fastcgi_next_upstream" directive.
+Thanks to Lucas Molas. +
+
+ +
+ + + + + + +при обработке специально созданного запроса модулем ngx_http_spdy_module +на 32-битных платформах могла повреждаться память рабочего процесса, +что потенциально могло приводить к выполнению произвольного кода +(CVE-2014-0088); +ошибка появилась в 1.5.10.
+Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel +Sadosky, Buenos Aires, Argentina. +
+ +memory corruption might occur in a worker process on 32-bit platforms +while handling a specially crafted request by ngx_http_spdy_module, +potentially resulting in arbitrary code execution (CVE-2014-0088); +the bug had appeared in 1.5.10.
+Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel +Sadosky, Buenos Aires, Argentina. +
+
+ + + +переменная $ssl_session_reused. + + +the $ssl_session_reused variable. + + + + + +директива client_max_body_size могла не работать +при чтении тела запроса с использованием chunked transfer encoding; +ошибка появилась в 1.3.9.
+Спасибо Lucas Molas. +
+ +the "client_max_body_size" directive might not work +when reading a request body using chunked transfer encoding; +the bug had appeared in 1.3.9.
+Thanks to Lucas Molas. +
+
+ + + +при проксировании WebSocket-соединений +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +when proxying WebSocket connections. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_spdy_module на 32-битных платформах; +ошибка появилась в 1.5.10. + + +a segmentation fault might occur in a worker process +if the ngx_http_spdy_module was used on 32-bit platforms; +the bug had appeared in 1.5.10. + + + + + +значение переменной $upstream_status могло быть неверным, +если использовались директивы proxy_cache_use_stale +или proxy_cache_revalidate.
+Спасибо Piotr Sikora. +
+ +the $upstream_status variable might contain wrong data +if the "proxy_cache_use_stale" or "proxy_cache_revalidate" directives +were used.
+Thanks to Piotr Sikora. +
+
+ + + +в рабочем процессе мог произойти segmentation fault, +если ошибки с кодом 400 с помощью директивы error_page +перенаправлялись в именованный location. + + +a segmentation fault might occur in a worker process +if errors with code 400 were redirected to a named location +using the "error_page" directive. + + + + + +nginx/Windows не собирался с Visual Studio 2013. + + +nginx/Windows could not be built with Visual Studio 2013. + + + +
+ + + + + + +модуль ngx_http_spdy_module теперь использует протокол SPDY 3.1.
+Спасибо Automattic и MaxCDN за спонсирование разработки. +
+ +the ngx_http_spdy_module now uses SPDY 3.1 protocol.
+Thanks to Automattic and MaxCDN for sponsoring this work. +
+
+ + + +модуль ngx_http_mp4_module теперь пропускает дорожки, +имеющие меньшую длину, чем запрошенная перемотка. + + +the ngx_http_mp4_module now skips tracks +too short for a seek requested. + + + + + +в рабочем процессе мог произойти segmentation fault, +если переменная $ssl_session_id использовалась при логгировании; +ошибка появилась в 1.5.9. + + +a segmentation fault might occur in a worker process +if the $ssl_session_id variable was used in logs; +the bug had appeared in 1.5.9. + + + + + +переменные $date_local и $date_gmt использовали неверный формат +вне модуля ngx_http_ssi_filter_module. + + +the $date_local and $date_gmt variables used wrong format +outside of the ngx_http_ssi_filter_module. + + + + + +клиентские соединения могли сразу закрываться, +если использовался отложенный accept; +ошибка появилась в 1.3.15. + + +client connections might be immediately closed +if deferred accept was used; +the bug had appeared in 1.3.15. + + + + + +сообщения "getsockopt(TCP_FASTOPEN) ... failed" записывались в лог +в процессе обновления исполняемого файла на Linux; +ошибка появилась в 1.5.8.
+Спасибо Piotr Sikora. +
+ +alerts "getsockopt(TCP_FASTOPEN) ... failed" appeared in logs +during binary upgrade on Linux; +the bug had appeared in 1.5.8.
+Thanks to Piotr Sikora. +
+
+ +
+ + + + + + +теперь в заголовке X-Accel-Redirect nginx ожидает закодированный URI. + + +now nginx expects escaped URIs in "X-Accel-Redirect" headers. + + + + + +директива ssl_buffer_size. + + +the "ssl_buffer_size" directive. + + + + + +директиву limit_rate теперь можно использовать для +ограничения скорости передачи ответов клиенту в SPDY-соединениях. + + +the "limit_rate" directive can now be used to +rate limit responses sent in SPDY connections. + + + + + +директива spdy_chunk_size. + + +the "spdy_chunk_size" directive. + + + + + +директива ssl_session_tickets.
+Спасибо Dirkjan Bussink. +
+ +the "ssl_session_tickets" directive.
+Thanks to Dirkjan Bussink. +
+
+ + + +переменная $ssl_session_id содержала всю сессию в сериализованном виде +вместо её идентификатора.
+Спасибо Ivan Ristić. +
+ +the $ssl_session_id variable contained full session serialized +instead of just a session id.
+Thanks to Ivan Ristić. +
+
+ + + +nginx неправильно обрабатывал закодированный символ "?" в команде SSI include. + + +nginx incorrectly handled escaped "?" character in the "include" SSI command. + + + + + +модуль ngx_http_dav_module не раскодировал целевой URI при +обработке методов COPY и MOVE. + + +the ngx_http_dav_module did not unescape destination URI +of the COPY and MOVE methods. + + + + + +resolver не понимал доменные имена с точкой в конце. +Спасибо Yichun Zhang. + + +resolver did not understand domain names with a trailing dot. +Thanks to Yichun Zhang. + + + + + +при проксировании в логах могли появляться сообщения "zero size buf in output"; +ошибка появилась в 1.3.9. + + +alerts "zero size buf in output" might appear in logs while proxying; +the bug had appeared in 1.3.9. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_spdy_module. + + +a segmentation fault might occur in a worker process +if the ngx_http_spdy_module was used. + + + + + +при использовании методов обработки соединений select, poll и /dev/poll +проксируемые WebSocket-соединения могли зависать сразу после открытия. + + +proxied WebSocket connections might hang right after handshake +if the select, poll, or /dev/poll methods were used. + + + + + +директива xclient почтового прокси-сервера +некорректно передавала IPv6-адреса. + + +the "xclient" directive of the mail proxy module +incorrectly handled IPv6 client addresses. + + + +
+ + + + + + +теперь resolver поддерживает IPv6. + + +IPv6 support in resolver. + + + + + +директива listen поддерживает параметр fastopen.
+Спасибо Mathew Rodley. +
+ +the "listen" directive supports the "fastopen" parameter.
+Thanks to Mathew Rodley. +
+
+ + + +поддержка SSL в модуле ngx_http_uwsgi_module.
+Спасибо Roberto De Ioris. +
+ +SSL support in the ngx_http_uwsgi_module.
+Thanks to Roberto De Ioris. +
+
+ + + +скрипты подсветки синтаксиса для vim добавлены в contrib.
+Спасибо Evan Miller. +
+ +vim syntax highlighting scripts were added to contrib.
+Thanks to Evan Miller. +
+
+ + + +при чтении тела запроса с использованием chunked transfer encoding +по SSL-соединению мог произойти таймаут. + + +a timeout might occur while reading client request body +in an SSL connection using chunked transfer encoding. + + + + + +директива master_process работала неправильно в nginx/Windows. + + +the "master_process" directive did not work correctly in nginx/Windows. + + + + + +параметр setfib директивы listen мог не работать. + + +the "setfib" parameter of the "listen" directive might not work. + + + + + +в модуле ngx_http_spdy_module. + + +in the ngx_http_spdy_module. + + + +
+ + + + + + +символ, следующий за незакодированным пробелом в строке запроса, +обрабатывался неправильно (CVE-2013-4547); +ошибка появилась в 0.8.41.
+Спасибо Ivan Fratric из Google Security Team. +
+ +a character following an unescaped space in a request line +was handled incorrectly (CVE-2013-4547); +the bug had appeared in 0.8.41.
+Thanks to Ivan Fratric of the Google Security Team. +
+
+ + + +уровень логгирования ошибок auth_basic об отсутствии пароля +понижен с уровня error до info. + + +a logging level of auth_basic errors about no user/password provided +has been lowered from "error" to "info". + + + + + +директивы proxy_cache_revalidate, fastcgi_cache_revalidate, +scgi_cache_revalidate и uwsgi_cache_revalidate. + + +the "proxy_cache_revalidate", "fastcgi_cache_revalidate", +"scgi_cache_revalidate", and "uwsgi_cache_revalidate" directives. + + + + + +директива ssl_session_ticket_key.
+Спасибо Piotr Sikora. +
+ +the "ssl_session_ticket_key" directive.
+Thanks to Piotr Sikora. +
+
+ + + +директива "add_header Cache-Control ''" +добавляла строку заголовка ответа "Cache-Control" с пустым значением. + + +the directive "add_header Cache-Control ''" +added a "Cache-Control" response header line with an empty value. + + + + + +директива "satisfy any" могла вернуть ошибку 403 вместо 401 +при использовании директив auth_request и auth_basic.
+Спасибо Jan Marc Hoffmann. +
+ +the "satisfy any" directive might return 403 error instead of 401 +if auth_request and auth_basic directives were used.
+Thanks to Jan Marc Hoffmann. +
+
+ + + +параметры accept_filter и deferred директивы listen игнорировались +для listen-сокетов, создаваемых в процессе обновления исполняемого файла.
+Спасибо Piotr Sikora. +
+ +the "accept_filter" and "deferred" parameters of the "listen" directive +were ignored for listen sockets created during binary upgrade.
+Thanks to Piotr Sikora. +
+
+ + + +часть данных, полученных от бэкенда при небуферизированном проксировании, +могла не отправляться клиенту сразу, +если использовались директивы gzip или gunzip.
+Спасибо Yichun Zhang. +
+ +some data received from a backend with unbufferred proxy +might not be sent to a client immediately +if "gzip" or "gunzip" directives were used.
+Thanks to Yichun Zhang. +
+
+ + + +в обработке ошибок в модуле ngx_http_gunzip_filter_module. + + +in error handling in ngx_http_gunzip_filter_module. + + + + + +ответы могли зависать, +если использовался модуль ngx_http_spdy_module +и директива auth_request. + + +responses might hang +if the ngx_http_spdy_module was used +with the "auth_request" directive. + + + + + +утечки памяти в nginx/Windows. + + +memory leak in nginx/Windows. + + + +
+ + + + + + +директива fastcgi_buffering. + + +the "fastcgi_buffering" directive. + + + + + +директивы proxy_ssl_protocols и proxy_ssl_ciphers.
+Спасибо Piotr Sikora. +
+ +the "proxy_ssl_protocols" and "proxy_ssl_ciphers" directives.
+Thanks to Piotr Sikora. +
+
+ + + +оптимизация SSL handshake при использовании длинных цепочек сертификатов. + + +optimization of SSL handshakes when using long certificate chains. + + + + + +почтовый прокси-сервер поддерживает SMTP pipelining. + + +the mail proxy supports SMTP pipelining. + + + + + +в модуле ngx_http_auth_basic_module +при использовании метода шифрования паролей "$apr1$".
+Спасибо Markus Linnala. +
+ +in the ngx_http_auth_basic_module +when using "$apr1$" password encryption method.
+Thanks to Markus Linnala. +
+
+ + + +на MacOSX, Cygwin и nginx/Windows +для обработки запроса мог использоваться неверный location, +если для задания location'ов использовались символы разных регистров. + + +in MacOSX, Cygwin, and nginx/Windows +incorrect location might be used to process a request +if locations were given using characters in different cases. + + + + + +автоматическое перенаправление с добавлением завершающего слэша +для проксированных location'ов могло не работать. + + +automatic redirect with appended trailing slash +for proxied locations might not work. + + + + + +в почтовом прокси-сервере. + + +in the mail proxy server. + + + + + +в модуле ngx_http_spdy_module. + + +in the ngx_http_spdy_module. + + + +
+ + + + + + +теперь nginx по умолчанию использует HTTP/1.0, +если точно определить протокол не удалось. + + +now nginx assumes HTTP/1.0 by default +if it is not able to detect protocol reliably. + + + + + +директива disable_symlinks теперь использует O_PATH на Linux. + + +the "disable_symlinks" directive now uses O_PATH on Linux. + + + + + +для определения того, что клиент закрыл соединение, +при использовании метода epoll +теперь используются события EPOLLRDHUP. + + +now nginx uses EPOLLRDHUP events +to detect premature connection close by clients +if the "epoll" method is used. + + + + + +в директиве valid_referers при использовании параметра server_names. + + +in the "valid_referers" directive if the "server_names" parameter was used. + + + + + +переменная $request_time не работала в nginx/Windows. + + +the $request_time variable did not work in nginx/Windows. + + + + + +в директиве image_filter.
+Спасибо Lanshun Zhou. +
+ +in the "image_filter" directive.
+Thanks to Lanshun Zhou. +
+
+ + + +совместимость с OpenSSL 1.0.1f.
+Спасибо Piotr Sikora. +
+ +OpenSSL 1.0.1f compatibility.
+Thanks to Piotr Sikora. +
+
+ + +
+ + + + + + +MIME-тип для расширения js изменён на "application/javascript"; +значение по умолчанию директивы charset_types изменено соответственно. + + +the "js" extension MIME type has been changed to "application/javascript"; +default value of the "charset_types" directive was changed accordingly. + + + + + +теперь директива image_filter с параметром size +возвращает ответ с MIME-типом "application/json". + + +now the "image_filter" directive with the "size" parameter +returns responses with the "application/json" MIME type. + + + + + +модуль ngx_http_auth_request_module. + + +the ngx_http_auth_request_module. + + + + + +на старте или во время переконфигурации мог произойти segmentation fault, +если использовалась директива try_files с пустым параметром. + + +a segmentation fault might occur on start or during reconfiguration +if the "try_files" directive was used with an empty parameter. + + + + + +утечки памяти при использовании в директивах root и auth_basic_user_file +относительных путей, заданных с помощью переменных. + + +memory leak if relative paths were specified using variables +in the "root" or "auth_basic_user_file" directives. + + + + + +директива valid_referers неправильно выполняла регулярные выражения, +если заголовок Referer начинался с "https://".
+Спасибо Liangbin Li. +
+ +the "valid_referers" directive incorrectly executed regular expressions +if a "Referer" header started with "https://".
+Thanks to Liangbin Li. +
+
+ + + +ответы могли зависать, если использовались подзапросы и при обработке подзапроса +происходила ошибка во время SSL handshake с бэкендом.
+Спасибо Aviram Cohen. +
+ +responses might hang if subrequests were used +and an SSL handshake error happened during subrequest processing.
+Thanks to Aviram Cohen. +
+
+ + + +в модуле ngx_http_autoindex_module. + + +in the ngx_http_autoindex_module. + + + + + +в модуле ngx_http_spdy_module. + + +in the ngx_http_spdy_module. + + + +
+ + + + + + +Изменение во внутреннем API: +теперь при небуферизированной работе с бэкендами +u->length по умолчанию устанавливается в -1. + + +Change in internal API: +now u->length defaults to -1 +if working with backends in unbuffered mode. + + + + + +теперь при получении неполного ответа от бэкенда +nginx отправляет полученную часть ответа, +после чего закрывает соединение с клиентом. + + +now after receiving an incomplete response from a backend server +nginx tries to send an available part of the response to a client, +and then closes client connection. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_spdy_module +и директива client_body_in_file_only. + + +a segmentation fault might occur in a worker process +if the ngx_http_spdy_module was used +with the "client_body_in_file_only" directive. + + + + + +параметр so_keepalive директивы listen +мог работать некорректно на DragonFlyBSD.
+Спасибо Sepherosa Ziehau. +
+ +the "so_keepalive" parameter of the "listen" directive +might be handled incorrectly on DragonFlyBSD.
+Thanks to Sepherosa Ziehau. +
+
+ + + +в модуле ngx_http_xslt_filter_module. + + +in the ngx_http_xslt_filter_module. + + + + + +в модуле ngx_http_sub_filter_module. + + +in the ngx_http_sub_filter_module. + + + +
+ + + + + + +теперь можно использовать несколько директив error_log. + + +now several "error_log" directives can be used. + + + + + +метод $r->header_in() встроенного перла не возвращал значения строк +"Cookie" и "X-Forwarded-For" из заголовка запроса; +ошибка появилась в 1.3.14. + + +the $r->header_in() embedded perl method did not return value of the +"Cookie" and "X-Forwarded-For" request header lines; +the bug had appeared in 1.3.14. + + + + + +в модуле ngx_http_spdy_module.
+Спасибо Jim Radford. +
+ +in the ngx_http_spdy_module.
+Thanks to Jim Radford. +
+
+ + + +nginx не собирался на Linux при использовании x32 ABI.
+Спасибо Сергею Иванцову. +
+ +nginx could not be built on Linux with x32 ABI.
+Thanks to Serguei Ivantsov. +
+
+ +
+ + + + + + +директивы ssi_last_modified, sub_filter_last_modified и +xslt_last_modified.
+Спасибо Алексею Колпакову. +
+ +the "ssi_last_modified", "sub_filter_last_modified", and +"xslt_last_modified" directives.
+Thanks to Alexey Kolpakov. +
+
+ + + +параметр http_403 в директивах proxy_next_upstream, fastcgi_next_upstream, +scgi_next_upstream и uwsgi_next_upstream. + + +the "http_403" parameter of the "proxy_next_upstream", "fastcgi_next_upstream", +"scgi_next_upstream", and "uwsgi_next_upstream" directives. + + + + + +директивы allow и deny теперь поддерживают unix domain сокеты. + + +the "allow" and "deny" directives now support unix domain sockets. + + + + + +nginx не собирался с модулем ngx_mail_ssl_module, +но без модуля ngx_http_ssl_module; +ошибка появилась в 1.3.14. + + +nginx could not be built with the ngx_mail_ssl_module, +but without ngx_http_ssl_module; +the bug had appeared in 1.3.14. + + + + + +в директиве proxy_set_body.
+Спасибо Lanshun Zhou. +
+ +in the "proxy_set_body" directive.
+Thanks to Lanshun Zhou. +
+
+ + + +в директиве lingering_time.
+Спасибо Lanshun Zhou. +
+ +in the "lingering_time" directive.
+Thanks to Lanshun Zhou. +
+
+ + + +параметр fail_timeout директивы server +в блоке upstream мог не работать, +если использовался параметр max_fails; +ошибка появилась в 1.3.0. + + +the "fail_timeout" parameter of the "server" directive +in the "upstream" context might not work +if "max_fails" parameter was used; +the bug had appeared in 1.3.0. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовалась директива ssl_stapling.
+Спасибо Piotr Sikora. +
+ +a segmentation fault might occur in a worker process +if the "ssl_stapling" directive was used.
+Thanks to Piotr Sikora. +
+
+ + + +в почтовом прокси-сервере.
+Спасибо Filipe Da Silva. +
+ +in the mail proxy server.
+Thanks to Filipe Da Silva. +
+
+ + + +nginx/Windows мог перестать принимать соединения, +если использовалось несколько рабочих процессов. + + +nginx/Windows might stop accepting connections +if several worker processes were used. + + + +
+ + + + + + +при обработке специально созданного запроса +мог перезаписываться стек рабочего процесса, +что могло приводить к выполнению произвольного кода (CVE-2013-2028); +ошибка появилась в 1.3.9.
+Спасибо Greg MacManus, iSIGHT Partners Labs. +
+ +a stack-based buffer overflow might occur in a worker process +while handling a specially crafted request, +potentially resulting in arbitrary code execution (CVE-2013-2028); +the bug had appeared in 1.3.9.
+Thanks to Greg MacManus, iSIGHT Partners Labs. +
+
+ +
+ + + + + + +nginx не собирался с модулем ngx_http_perl_module, +если использовался параметр --with-openssl; +ошибка появилась в 1.3.16. + + +nginx could not be built with the ngx_http_perl_module +if the --with-openssl option was used; +the bug had appeared in 1.3.16. + + + + + +в работе с телом запроса из модуля ngx_http_perl_module; +ошибка появилась в 1.3.9. + + +in a request body handling in the ngx_http_perl_module; +the bug had appeared in 1.3.9. + + + + + + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовались подзапросы; +ошибка появилась в 1.3.9. + + +a segmentation fault might occur in a worker process +if subrequests were used; +the bug had appeared in 1.3.9. + + + + + +директива tcp_nodelay вызывала ошибку +при проксировании WebSocket-соединений в unix domain сокет. + + +the "tcp_nodelay" directive caused an error +if a WebSocket connection was proxied into a unix domain socket. + + + + + +переменная $upstream_response_length возвращала значение "0", +если не использовалась буферизация.
+Спасибо Piotr Sikora. +
+ +the $upstream_response_length variable has an incorrect value "0" +if buffering was not used.
+Thanks to Piotr Sikora. +
+
+ + + +в методах обработки соединений eventport и /dev/poll. + + +in the eventport and /dev/poll methods. + + + +
+ + + + + + +открытие и закрытие соединения без отправки в нём каких-либо данных +больше не записывается в access_log с кодом ошибки 400. + + +opening and closing a connection without sending any data in it +is no longer logged to access_log with error code 400. + + + + + +модуль ngx_http_spdy_module.
+Спасибо Automattic за спонсирование разработки. +
+ +the ngx_http_spdy_module.
+Thanks to Automattic for sponsoring this work. +
+
+ + + +директивы limit_req_status и limit_conn_status.
+Спасибо Nick Marden. +
+ +the "limit_req_status" and "limit_conn_status" directives.
+Thanks to Nick Marden. +
+
+ + + +директива image_filter_interlace.
+Спасибо Ивану Боброву. +
+ +the "image_filter_interlace" directive.
+Thanks to Ian Babrou. +
+
+ + + +переменная $connections_waiting в модуле ngx_http_stub_status_module. + + +$connections_waiting variable in the ngx_http_stub_status_module. + + + + + +теперь почтовый прокси-сервер поддерживает IPv6-бэкенды. + + +the mail proxy module now supports IPv6 backends. + + + + + +при повторной отправке запроса на бэкенд +тело запроса могло передаваться неправильно; +ошибка появилась в 1.3.9.
+Спасибо Piotr Sikora. +
+ +request body might be transmitted incorrectly +when retrying a request to the next upstream server; +the bug had appeared in 1.3.9.
+Thanks to Piotr Sikora. +
+
+ + + +в директиве client_body_in_file_only; +ошибка появилась в 1.3.9. + + +in the "client_body_in_file_only" directive; +the bug had appeared in 1.3.9. + + + + + +ответы могли зависать, +если использовались подзапросы +и при обработке подзапроса происходила DNS-ошибка.
+Спасибо Lanshun Zhou. +
+ +responses might hang +if subrequests were used +and a DNS error happened during subrequest processing.
+Thanks to Lanshun Zhou. +
+
+ + + +в процедуре учёта использования бэкендов. + + +in backend usage accounting. + + + +
+ + + + + + +переменные $connections_active, $connections_reading и $connections_writing +в модуле ngx_http_stub_status_module. + + +$connections_active, $connections_reading, and $connections_writing variables +in the ngx_http_stub_status_module. + + + + + +поддержка WebSocket-соединений +в модулях ngx_http_uwsgi_module и ngx_http_scgi_module. + + +support of WebSocket connections +in the ngx_http_uwsgi_module and ngx_http_scgi_module. + + + + + +в обработке виртуальных серверов при использовании SNI. + + +in virtual servers handling with SNI. + + + + + +при использовании директивы "ssl_session_cache shared" +новые сессии могли не сохраняться, +если заканчивалось место в разделяемой памяти.
+Спасибо Piotr Sikora. +
+ +new sessions were not always stored +if the "ssl_session_cache shared" directive was used +and there was no free space in shared memory.
+Thanks to Piotr Sikora. +
+
+ + + +несколько заголовков X-Forwarded-For обрабатывались неправильно.
+Спасибо Neal Poole за спонсирование разработки. +
+ +multiple X-Forwarded-For headers were handled incorrectly.
+Thanks to Neal Poole for sponsoring this work. +
+
+ + + +в модуле ngx_http_mp4_module.
+Спасибо Gernot Vormayr. +
+ +in the ngx_http_mp4_module.
+Thanks to Gernot Vormayr. +
+
+ +
+ + + + + + +теперь для сборки по умолчанию используется компилятор с именем "cc". + + +a compiler with name "cc" is now used by default. + + + + + +поддержка проксирования WebSocket-соединений.
+Спасибо Apcera и CloudBees за спонсирование разработки. +
+ +support for proxying of WebSocket connections.
+Thanks to Apcera and CloudBees for sponsoring this work. +
+
+ + + +директива auth_basic_user_file поддерживает шифрование паролей +методом "{SHA}".
+Спасибо Louis Opter. +
+ +the "auth_basic_user_file" directive supports "{SHA}" +password encryption method.
+Thanks to Louis Opter. +
+
+ +
+ + + + + + +директивы proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind +поддерживают переменные. + + +variables support in the "proxy_bind", "fastcgi_bind", "memcached_bind", +"scgi_bind", and "uwsgi_bind" directives. + + + + + +переменные $pipe, $request_length, $time_iso8601 и $time_local +теперь можно использовать не только в директиве log_format.
+Спасибо Kiril Kalchev. +
+ +the $pipe, $request_length, $time_iso8601, and $time_local variables +can now be used not only in the "log_format" directive. +Thanks to Kiril Kalchev. + +
+ + + +поддержка IPv6 в модуле ngx_http_geoip_module.
+Спасибо Gregor Kališnik. +
+ +IPv6 support in the ngx_http_geoip_module.
+Thanks to Gregor Kališnik. +
+
+ + + +директива proxy_method работала неверно, если была указана на уровне http. + + +in the "proxy_method" directive. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовался resolver и метод poll. + + +a segmentation fault might occur in a worker process +if resolver was used with the poll method. + + + + + +nginx мог нагружать процессор во время SSL handshake с бэкендом +при использовании методов обработки соединений select, poll и /dev/poll. + + +nginx might hog CPU during SSL handshake with a backend +if the select, poll, or /dev/poll methods were used. + + + + + +ошибка "[crit] SSL_write() failed (SSL:)". + + +the "[crit] SSL_write() failed (SSL:)" error. + + + + + +в директиве client_body_in_file_only; +ошибка появилась в 1.3.9. + + +in the "client_body_in_file_only" directive; +the bug had appeared in 1.3.9. + + + + + +в директиве fastcgi_keep_conn. + + +in the "fastcgi_keep_conn" directive. + + + +
+ + + + + + +при записи в лог мог происходить segmentation fault; +ошибка появилась в 1.3.10. + + +a segmentation fault might occur if logging was used; +the bug had appeared in 1.3.10. + + + + + +директива proxy_pass не работала с IP-адресами +без явного указания порта; +ошибка появилась в 1.3.10. + + +the "proxy_pass" directive did not work with IP addresses +without port specified; +the bug had appeared in 1.3.10. + + + + + +на старте или во время переконфигурации происходил segmentation fault, +если директива keepalive была указана несколько раз +в одном блоке upstream. + + +a segmentation fault occurred on start or during reconfiguration +if the "keepalive" directive was specified more than once +in a single upstream block. + + + + + +параметр default директивы geo не определял значение по умолчанию +для IPv6-адресов. + + +parameter "default" of the "geo" directive did not set default value +for IPv6 addresses. + + + + + + + + + + +для указанных в конфигурационном файле доменных имён теперь +используются не только IPv4, но и IPv6 адреса. + + +domain names specified in configuration file +are now resolved to IPv6 addresses as well as IPv4 ones. + + + + + +теперь при использовании директивы include с маской на Unix-системах +включаемые файлы сортируются в алфавитном порядке. + + +now if the "include" directive with mask is used on Unix systems, +included files are sorted in alphabetical order. + + + + + +директива add_header добавляет строки в ответы с кодом 201. + + +the "add_header" directive adds headers to 201 responses. + + + + + +директива geo теперь поддерживает IPv6 адреса в формате CIDR. + + +the "geo" directive now supports IPv6 addresses in CIDR notation. + + + + + +параметры flush и gzip в директиве access_log. + + +the "flush" and "gzip" parameters of the "access_log" directive. + + + + + +директива auth_basic поддерживает переменные. + + +variables support in the "auth_basic" directive. + + + + + +nginx в некоторых случаях не собирался с модулем ngx_http_perl_module. + + +nginx could not be built with the ngx_http_perl_module in some cases. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_xslt_module. + + +a segmentation fault might occur in a worker process +if the ngx_http_xslt_module was used. + + + + + +nginx мог не собираться на MacOSX.
+Спасибо Piotr Sikora. +
+ +nginx could not be built on MacOSX in some cases.
+Thanks to Piotr Sikora. +
+
+ + + +при использовании директивы limit_rate с большими значениями скорости +на 32-битных системах ответ мог возвращаться не целиком.
+Спасибо Алексею Антропову. +
+ +the "limit_rate" directive with high rates +might result in truncated responses on 32-bit platforms.
+Thanks to Alexey Antropov. +
+
+ + + +в рабочем процессе мог произойти segmentation fault, +если использовалась директива if.
+Спасибо Piotr Sikora. +
+ +a segmentation fault might occur in a worker process +if the "if" directive was used.
+Thanks to Piotr Sikora. +
+
+ + + +ответ "100 Continue" выдавался +вместе с ответом "413 Request Entity Too Large". + + +a "100 Continue" response was issued +with "413 Request Entity Too Large" responses. + + + + + +директивы image_filter, image_filter_jpeg_quality и image_filter_sharpen +могли наследоваться некорректно.
+Спасибо Ивану Боброву. +
+ +the "image_filter", "image_filter_jpeg_quality" +and "image_filter_sharpen" directives +might be inherited incorrectly.
+Thanks to Ian Babrou. +
+
+ + + +при использовании директивы auth_basic под Linux +могли возникать ошибки "crypt_r() failed". + + +"crypt_r() failed" errors might appear +if the "auth_basic" directive was used on Linux. + + + + + +в обработке backup-серверов.
+Спасибо Thomas Chen. +
+ +in backup servers handling.
+Thanks to Thomas Chen. +
+
+ + + +при проксировании HEAD-запросов мог возвращаться некорректный ответ, +если использовалась директива gzip. + + +proxied HEAD requests might return incorrect response +if the "gzip" directive was used. + + + +
+ + + + + + +поддержка chunked transfer encoding при получении тела запроса. + + +support for chunked transfer encoding while reading client request body. + + + + + +переменные $request_time и $msec +теперь можно использовать не только в директиве log_format. + + +the $request_time and $msec variables +can now be used not only in the "log_format" directive. + + + + + +cache manager и cache loader могли не запускаться, +если использовалось более 512 listen-сокетов. + + +cache manager and cache loader processes might not be able to start +if more than 512 listen sockets were used. + + + + + +в модуле ngx_http_dav_module. + + +in the ngx_http_dav_module. + + + + + + + + + + +параметр optional_no_ca директивы ssl_verify_client.
+Спасибо Михаилу Казанцеву и Eric O'Connor. +
+ +the "optional_no_ca" parameter of the "ssl_verify_client" directive.
+Thanks to Mike Kazantsev and Eric O'Connor. +
+
+ + + +переменные $bytes_sent, $connection и $connection_requests +теперь можно использовать не только в директиве log_format.
+Спасибо Benjamin Grössing. +
+ +the $bytes_sent, $connection, and $connection_requests variables +can now be used not only in the "log_format" directive.
+Thanks to Benjamin Grössing. +
+
+ + + +параметр auto директивы worker_processes. + + +the "auto" parameter of the "worker_processes" directive. + + + + + +сообщения "cache file ... has md5 collision". + + +"cache file ... has md5 collision" alert. + + + + + +в модуле ngx_http_gunzip_filter_module. + + +in the ngx_http_gunzip_filter_module. + + + + + +в директиве ssl_stapling. + + +in the "ssl_stapling" directive. + + + +
+ + + + + + +поддержка OCSP stapling.
+Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки. +
+ +OCSP stapling support.
+Thanks to Comodo, DigiCert and GlobalSign for sponsoring this work. +
+
+ + + +директива ssl_trusted_certificate. + + +the "ssl_trusted_certificate" directive. + + + + + +теперь resolver случайным образом меняет порядок +возвращаемых закэшированных адресов.
+Спасибо Антону Жулину. +
+ +resolver now randomly rotates addresses +returned from cache.
+Thanks to Anton Jouline. +
+
+ + + +совместимость с OpenSSL 0.9.7. + + +OpenSSL 0.9.7 compatibility. + + + +
+ + + + + + +модуль ngx_http_gunzip_filter_module. + + +the ngx_http_gunzip_filter_module. + + + + + +директива memcached_gzip_flag. + + +the "memcached_gzip_flag" directive. + + + + + +параметр always директивы gzip_static. + + +the "always" parameter of the "gzip_static" directive. + + + + + +в директиве "limit_req"; +ошибка появилась в 1.1.14.
+Спасибо Charles Chen. +
+ +in the "limit_req" directive; +the bug had appeared in 1.1.14.
+Thanks to Charles Chen. +
+
+ + + +nginx не собирался gcc 4.7 с оптимизацией -O2 +если использовался параметр --with-ipv6. + + +nginx could not be built by gcc 4.7 with -O2 optimization +if the --with-ipv6 option was used. + + + +
+ + + + + + +модуль ngx_http_mp4_module больше не отфильтровывает дорожки +в форматах, отличных от H.264 и AAC. + + +the ngx_http_mp4_module module no longer skips +tracks in formats other than H.264 and AAC. + + + + + +в рабочем процессе мог произойти segmentation fault, +если в директиве map в качестве значений использовались переменные. + + +a segmentation fault might occur in a worker process +if the "map" directive was used with variables as values. + + + + + +в рабочем процессе мог произойти segmentation fault +при использовании директивы geo с параметром ranges, +но без параметра default; ошибка появилась в 0.8.43.
+Спасибо Zhen Chen и Weibin Yao. +
+ +a segmentation fault might occur in a worker process +if the "geo" directive was used with the "ranges" parameter +but without the "default" parameter; the bug had appeared in 0.8.43.
+Thanks to Zhen Chen and Weibin Yao. +
+
+ + + +в обработке параметра командной строки -p. + + +in the -p command-line parameter handling. + + + + + +в почтовом прокси-сервере. + + +in the mail proxy server. + + + + + +незначительных потенциальных ошибок.
+Спасибо Coverity. +
+ +of minor potential bugs.
+Thanks to Coverity. +
+
+ + + +nginx/Windows не собирался с Visual Studio 2005 Express.
+Спасибо HAYASHI Kentaro. +
+ +nginx/Windows could not be built with Visual Studio 2005 Express.
+Thanks to HAYASHI Kentaro. +
+
+ +
+ + + + + + +теперь на слушающих IPv6-сокетах параметр ipv6only +включён по умолчанию. + + +the "ipv6only" parameter is now turned on by default for +listening IPv6 sockets. + + + + + +поддержка компилятора Clang. + + +the Clang compiler support. + + + + + +могли создаваться лишние слушающие сокеты.
+Спасибо Роману Одайскому. +
+ +extra listening sockets might be created.
+Thanks to Roman Odaisky. +
+
+ + + +nginx/Windows мог нагружать процессор, если при запуске рабочего процесса +происходила ошибка.
+Спасибо Ricardo Villalobos Guevara. +
+ +nginx/Windows might hog CPU if a worker process failed to start.
+Thanks to Ricardo Villalobos Guevara. +
+
+ + + +директивы proxy_pass_header, fastcgi_pass_header, scgi_pass_header, +uwsgi_pass_header, proxy_hide_header, fastcgi_hide_header, +scgi_hide_header и uwsgi_hide_header +могли наследоваться некорректно. + + +the "proxy_pass_header", "fastcgi_pass_header", "scgi_pass_header", +"uwsgi_pass_header", "proxy_hide_header", "fastcgi_hide_header", +"scgi_hide_header", and "uwsgi_hide_header" directives +might be inherited incorrectly. + + + +
+ + + + + + +поддержка entity tags и директива etag. + + +entity tags support and the "etag" directive. + + + + + +при использовании директивы map с параметром hostnames +не игнорировалась конечная точка в исходном значении. + + +trailing dot in a source value was not ignored +if the "map" directive was used with the "hostnames" parameter. + + + + + +для обработки запроса мог использоваться неверный location, +если переход в именованный location происходил +после изменения URI с помощью директивы rewrite. + + +incorrect location might be used to process a request +if a URI was changed via a "rewrite" directive +before an internal redirect to a named location. + + + + + + + + + + +параметр single директивы keepalive теперь игнорируется. + + +the "single" parameter of the "keepalive" directive is now ignored. + + + + + +сжатие SSL теперь отключено +в том числе при использовании OpenSSL старее 1.0.0. + + +SSL compression is now disabled when using all versions of OpenSSL, +including ones prior to 1.0.0. + + + + + +директиву "ip_hash" теперь можно использовать для балансировки IPv6 клиентов. + + +it is now possible to use the "ip_hash" directive to balance IPv6 clients. + + + + + +переменную $status теперь можно использовать не только в директиве log_format. + + +the $status variable can now be used not only in the "log_format" directive. + + + + + +при завершении рабочего процесса мог произойти segmentation fault, +если использовалась директива resolver. + + +a segmentation fault might occur in a worker process on shutdown +if the "resolver" directive was used. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_mp4_module. + + +a segmentation fault might occur in a worker process +if the ngx_http_mp4_module was used. + + + + + +в модуле ngx_http_mp4_module. + + +in the ngx_http_mp4_module. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовались конфликтующие имена серверов с масками. + + +a segmentation fault might occur in a worker process +if conflicting wildcard server names were used. + + + + + +на платформе ARM nginx мог аварийно завершаться по сигналу SIGBUS. + + +nginx might be terminated abnormally on a SIGBUS signal on ARM platform. + + + + + +во время переконфигурации на HP-UX в лог +записывался alert "sendmsg() failed (9: Bad file number)". + + +an alert "sendmsg() failed (9: Bad file number)" on HP-UX +while reconfiguration. + + + + + + + + + + +теперь nginx/Windows игнорирует точку в конце компонента URI +и не разрешает URI, содержащие последовательность ":$".
+Спасибо Владимиру Кочеткову, Positive Research Center. +
+ +now nginx/Windows ignores trailing dot in URI path component, and +does not allow URIs with ":$" in it.
+Thanks to Vladimir Kochetkov, Positive Research Center. +
+
+ + + +директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass и +директива server в блоке upstream +теперь поддерживают IPv6-адреса. + + +the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass" directives, and +the "server" directive inside the "upstream" block, +now support IPv6 addresses. + + + + + +в директиве resolver теперь можно указывать порт и +задавать IPv6-адреса DNS-серверов. + + +the "resolver" directive now supports IPv6 addresses and +an optional port specification. + + + + + +директива least_conn в блоке upstream. + + +the "least_conn" directive inside the "upstream" block. + + + + + +при использовании директивы ip_hash +теперь можно задавать веса серверов. + + +it is now possible to specify a weight for servers +while using the "ip_hash" directive. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовалась директива image_filter; +ошибка появилась в 1.3.0. + + +a segmentation fault might occur in a worker process +if the "image_filter" directive was used; +the bug had appeared in 1.3.0. + + + + + +nginx не собирался с модулем ngx_cpp_test_module; +ошибка появилась в 1.1.12. + + +nginx could not be built with ngx_cpp_test_module; +the bug had appeared in 1.1.12. + + + + + +доступ к переменным из SSI и встроенного перла мог не работать после +переконфигурации.
+Спасибо Yichun Zhang. +
+ +access to variables from SSI and embedded perl module might not work after +reconfiguration.
+Thanks to Yichun Zhang. +
+
+ + + +в модуле ngx_http_xslt_filter_module.
+Спасибо Kuramoto Eiji. +
+ +in the ngx_http_xslt_filter_module.
+Thanks to Kuramoto Eiji. +
+
+ + + +утечки памяти при использовании переменной $geoip_org.
+Спасибо Денису Латыпову. +
+ +memory leak if $geoip_org variable was used.
+Thanks to Denis F. Latypoff. +
+
+ + + +в директивах proxy_cookie_domain и proxy_cookie_path. + + +in the "proxy_cookie_domain" and "proxy_cookie_path" directives. + + + +
+ + + + + + +директива debug_connection теперь поддерживает IPv6-адреса +и параметр "unix:". + + +the "debug_connection" directive now supports IPv6 addresses +and the "unix:" parameter. + + + + + +директива set_real_ip_from и параметр proxy +директивы geo теперь поддерживают IPv6-адреса. + + +the "set_real_ip_from" directive and the "proxy" parameter +of the "geo" directive now support IPv6 addresses. + + + + + +директивы real_ip_recursive, geoip_proxy и geoip_proxy_recursive. + + +the "real_ip_recursive", "geoip_proxy", and "geoip_proxy_recursive" directives. + + + + + +параметр proxy_recursive директивы geo. + + +the "proxy_recursive" parameter of the "geo" directive. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовалась директива resolver. + + +a segmentation fault might occur in a worker process +if the "resolver" directive was used. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass +и бэкенд возвращал некорректный ответ. + + +a segmentation fault might occur in a worker process +if the "fastcgi_pass", "scgi_pass", or "uwsgi_pass" directives were used +and backend returned incorrect response. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовалась директива rewrite и в новых аргументах запроса в строке +замены использовались переменные. + + +a segmentation fault might occur in a worker process +if the "rewrite" directive was used and new request arguments +in a replacement used variables. + + + + + +nginx мог нагружать процессор, +если было достигнуто ограничение на количество открытых файлов. + + +nginx might hog CPU +if the open file resource limit was reached. + + + + + +при использовании директивы proxy_next_upstream с параметром http_404 +nginx мог бесконечно перебирать бэкенды, если в блоке upstream был +хотя бы один сервер с флагом backup. + + +nginx might loop infinitely over backends +if the "proxy_next_upstream" directive with the "http_404" parameter was used +and there were backup servers specified in an upstream block. + + + + + +при использовании директивы ip_hash +установка параметра down директивы server +могла приводить к ненужному перераспределению клиентов между бэкендами. + + +adding the "down" parameter of the "server" directive +might cause unneeded client redistribution among backend servers +if the "ip_hash" directive was used. + + + + + +утечки сокетов.
+Спасибо Yichun Zhang. +
+ +socket leak.
+Thanks to Yichun Zhang. +
+
+ + + +в модуле ngx_http_fastcgi_module. + + +in the ngx_http_fastcgi_module. + + + +
+ + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовалась директива try_files; +ошибка появилась в 1.1.19. + + +a segmentation fault might occur in a worker process +if the "try_files" directive was used; +the bug had appeared in 1.1.19. + + + + + +ответ мог быть передан не полностью, +если использовалось больше IOV_MAX буферов. + + +response might be truncated +if there were more than IOV_MAX buffers used. + + + + + +в работе параметра crop директивы image_filter.
+Спасибо Maxim Bublis. +
+ +in the "crop" parameter of the "image_filter" directive.
+Thanks to Maxim Bublis. +
+
+ +
+ + + + + + +при обработке специально созданного mp4 файла модулем ngx_http_mp4_module +могли перезаписываться области памяти рабочего процесса, что могло +приводить к выполнению произвольного кода (CVE-2012-2089).
+Спасибо Matthew Daley. +
+ +specially crafted mp4 file might allow to overwrite +memory locations in a worker process +if the ngx_http_mp4_module was used, +potentially resulting in arbitrary code execution (CVE-2012-2089).
+Thanks to Matthew Daley. +
+
+ + + +nginx/Windows мог завершаться аварийно.
+Спасибо Vincent Lee. +
+ +nginx/Windows might be terminated abnormally.
+Thanks to Vincent Lee. +
+
+ + + +nginx нагружал процессор, если все серверы в upstream'е были помечены +флагом backup. + + +nginx hogged CPU if all servers in an upstream were marked as "backup". + + + + + +директивы allow и deny могли наследоваться некорректно, +если в них использовались IPv6 адреса. + + +the "allow" and "deny" directives might be inherited incorrectly +if they were used with IPv6 addresses. + + + + + +директивы modern_browser и ancient_browser +могли наследоваться некорректно. + + +the "modern_browser" and "ancient_browser" directives +might be inherited incorrectly. + + + + + +таймауты могли работать некорректно на Solaris/SPARC. + + +timeouts might be handled incorrectly on Solaris/SPARC. + + + + + +в модуле ngx_http_mp4_module. + + +in the ngx_http_mp4_module. + + + +
+ + + + + + +теперь keepalive соединения не запрещены для Safari по умолчанию. + + +keepalive connections are no longer disabled for Safari by default. + + + + + +переменная $connection_requests. + + +the $connection_requests variable. + + + + + +переменные $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd и +$tcpinfo_rcv_space. + + +$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and +$tcpinfo_rcv_space variables. + + + + + +директива worker_cpu_affinity теперь работает на FreeBSD. + + +the "worker_cpu_affinity" directive now works on FreeBSD. + + + + + +директивы xslt_param и xslt_string_param.
+Спасибо Samuel Behan. +
+ +the "xslt_param" and "xslt_string_param" directives.
+Thanks to Samuel Behan. +
+
+ + + +в configure.
+Спасибо Piotr Sikora. +
+ +in configure tests.
+Thanks to Piotr Sikora. +
+
+ + + +в модуле ngx_http_xslt_filter_module. + + +in the ngx_http_xslt_filter_module. + + + + + +nginx не собирался на Debian GNU/Hurd. + + +nginx could not be built on Debian GNU/Hurd. + + + +
+ + + + + + +содержимое ранее освобождённой памяти могло быть отправлено клиенту, +если бэкенд возвращал специально созданный ответ.
+Спасибо Matthew Daley. +
+ +content of previously freed memory might be sent to a client +if backend returned specially crafted response.
+Thanks to Matthew Daley. +
+
+ + + +при использовании встроенного перла из SSI.
+Спасибо Matthew Daley. +
+ +in the embedded perl module if used from SSI.
+Thanks to Matthew Daley. +
+
+ + + +в модуле ngx_http_uwsgi_module. + + +in the ngx_http_uwsgi_module. + + + +
+ + + + + + +ограничение на количество одновременных подзапросов поднято до 200. + + +the simultaneous subrequest limit has been raised to 200. + + + + + +параметр from в директиве disable_symlinks. + + +the "from" parameter of the "disable_symlinks" directive. + + + + + +директивы return и error_page теперь могут использоваться для возврата +перенаправлений с кодом 307. + + +the "return" and "error_page" directives can now be used to return 307 +redirections. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовалась директива resolver +и на глобальном уровне не была задана директива error_log.
+Спасибо Роману Арутюняну. +
+ +a segmentation fault might occur in a worker process +if the "resolver" directive was used +and there was no "error_log" directive specified at global level.
+Thanks to Roman Arutyunyan. +
+
+ + + +в рабочем процессе мог произойти segmentation fault, +если использовались директивы "proxy_http_version 1.1" или +"fastcgi_keep_conn on". + + +a segmentation fault might occur in a worker process +if the "proxy_http_version 1.1" or "fastcgi_keep_conn on" directives +were used. + + + + + +утечек памяти.
+Спасибо Lanshun Zhou. +
+ +memory leaks.
+Thanks to Lanshun Zhou. +
+
+ + + +в директиве disable_symlinks. + + +in the "disable_symlinks" directive. + + + + + +при использовании ZFS размер кэша на диске мог считаться некорректно; +ошибка появилась в 1.0.1. + + +on ZFS filesystem disk cache size might be calculated incorrectly; +the bug had appeared in 1.0.1. + + + + + +nginx не собирался компилятором icc 12.1. + + +nginx could not be built by the icc 12.1 compiler. + + + + + +nginx не собирался gcc на Solaris; +ошибка появилась в 1.1.15. + + +nginx could not be built by gcc on Solaris; +the bug had appeared in 1.1.15. + + + +
+ + + + + + +директива disable_symlinks. + + +the "disable_symlinks" directive. + + + + + +директивы proxy_cookie_domain и proxy_cookie_path. + + +the "proxy_cookie_domain" and "proxy_cookie_path" directives. + + + + + +nginx мог некорректно сообщать об ошибке "upstream prematurely closed +connection" вместо "upstream sent too big header".
+Спасибо Feibo Li. +
+ +nginx might log incorrect error "upstream prematurely closed connection" +instead of correct "upstream sent too big header" one.
+Thanks to Feibo Li. +
+
+ + + +nginx не собирался с модулем ngx_http_perl_module, +если использовался параметр --with-openssl. + + +nginx could not be built with the ngx_http_perl_module +if the --with-openssl option was used. + + + + + +количество внутренних перенаправлений в именованные location'ы +не ограничивалось. + + +the number of internal redirects to named locations was not limited. + + + + + +вызов $r->flush() несколько раз подряд мог приводить к ошибкам +в модуле ngx_http_gzip_filter_module. + + +calling $r->flush() multiple times might cause errors +in the ngx_http_gzip_filter_module. + + + + + +при использовании директивы proxy_store с SSI-подзапросами +временные файлы могли не удаляться. + + +temporary files might be not removed +if the "proxy_store" directive was used with SSI includes. + + + + + +в некоторых случаях некэшируемые переменные (такие, как $args) +возвращали старое пустое закэшированное значение. + + +in some cases non-cacheable variables (such as the $args variable) +returned old empty cached value. + + + + + +в рабочем процессе мог произойти segmentation fault, +если одновременно создавалось слишком много SSI-подзапросов; +ошибка появилась в 0.7.25. + + +a segmentation fault might occur in a worker process +if too many SSI subrequests were issued simultaneously; +the bug had appeared in 0.7.25. + + + +
+ + + + + + +теперь можно указать несколько ограничений limit_req одновременно. + + +multiple "limit_req" limits may be used simultaneously. + + + + + +в обработке ошибок при соединении с бэкендом.
+Спасибо Piotr Sikora. +
+ +in error handling while connecting to a backend.
+Thanks to Piotr Sikora. +
+
+ + + +в обработке ошибок при использовании AIO на FreeBSD. + + +in AIO error handling on FreeBSD. + + + + + +в инициализации библиотеки OpenSSL. + + +in the OpenSSL library initialization. + + + + + +директивы proxy_redirect могли наследоваться некорректно. + + +the "proxy_redirect" directives might be inherited incorrectly. + + + + + +утечки памяти при переконфигурации, если использовалась директива pcre_jit. + + +memory leak during reconfiguration if the "pcre_jit" directive was used. + + + +
+ + + + + + +параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols. + + +the "TLSv1.1" and "TLSv1.2" parameters of the "ssl_protocols" directive. + + + + + +параметры директивы limit_req наследовались некорректно; +ошибка появилась в 1.1.12. + + +the "limit_req" directive parameters were not inherited correctly; +the bug had appeared in 1.1.12. + + + + + +директива proxy_redirect некорректно обрабатывала заголовок Refresh +при использовании регулярных выражений. + + +the "proxy_redirect" directive incorrectly processed "Refresh" header +if regular expression were used. + + + + + +директива proxy_cache_use_stale с параметром error не возвращала ответ из +кэша, если все бэкенды были признаны неработающими. + + +the "proxy_cache_use_stale" directive with "error" parameter did not return +answer from cache if there were no live upstreams. + + + + + +директива worker_cpu_affinity могла не работать. + + +the "worker_cpu_affinity" directive might not work. + + + + + +nginx не собирался на Solaris; +ошибка появилась в 1.1.12. + + +nginx could not be built on Solaris; +the bug had appeared in 1.1.12. + + + + + +в модуле ngx_http_mp4_module. + + +in the ngx_http_mp4_module. + + + + + + + + + + +после перенаправления запроса с помощью директивы error_page +директива proxy_pass без URI теперь использует изменённый URI.
+Спасибо Lanshun Zhou. +
+ +a "proxy_pass" directive without URI part now uses changed URI +after redirection with the "error_page" directive.
+Thanks to Lanshun Zhou. +
+
+ + + +директивы proxy/fastcgi/scgi/uwsgi_cache_lock, +proxy/fastcgi/scgi/uwsgi_cache_lock_timeout. + + +the "proxy/fastcgi/scgi/uwsgi_cache_lock", +"proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives. + + + + + +директива pcre_jit. + + +the "pcre_jit" directive. + + + + + +SSI команда if поддерживает выделения в регулярных выражениях. + + +the "if" SSI command supports captures in regular expressions. + + + + + +SSI команда if не работала внутри команды block. + + +the "if" SSI command did not work inside the "block" command. + + + + + +директивы limit_conn_log_level и limit_req_log_level могли не работать. + + +the "limit_conn_log_level" and "limit_req_log_level" directives might not work. + + + + + +директива limit_rate не позволяла передавать на полной скорости, +даже если был указан очень большой лимит. + + +the "limit_rate" directive did not allow to use full throughput, +even if limit value was very high. + + + + + +директива sendfile_max_chunk не работала, +если использовалась директива limit_rate. + + +the "sendfile_max_chunk" directive did not work, +if the "limit_rate" directive was used. + + + + + +если в директиве proxy_pass использовались переменные и не был указан URI, +всегда использовался URI исходного запроса. + + +a "proxy_pass" directive without URI part always used original request URI +if variables were used. + + + + + +после перенаправления запроса с помощью директивы try_files +директива proxy_pass без URI могла использовать URI исходного запроса.
+Спасибо Lanshun Zhou. +
+ +a "proxy_pass" directive without URI part might use original request +after redirection with the "try_files" directive.
+Thanks to Lanshun Zhou. +
+
+ + + +в модуле ngx_http_scgi_module. + + +in the ngx_http_scgi_module. + + + + + +в модуле ngx_http_mp4_module. + + +in the ngx_http_mp4_module. + + + + + +nginx не собирался на Solaris; +ошибка появилась в 1.1.9. + + +nginx could not be built on Solaris; +the bug had appeared in 1.1.9. + + + +
+ + + + + + +параметр so_keepalive в директиве listen.
+Спасибо Всеволоду Стахову. +
+ +the "so_keepalive" parameter of the "listen" directive.
+Thanks to Vsevolod Stakhov. +
+
+ + + +параметр if_not_empty в директивах fastcgi/scgi/uwsgi_param. + + +the "if_not_empty" parameter of the "fastcgi/scgi/uwsgi_param" directives. + + + + + +переменная $https. + + +the $https variable. + + + + + +директива proxy_redirect поддерживает переменные в первом параметре. + + +the "proxy_redirect" directive supports variables in the first parameter. + + + + + +директива proxy_redirect поддерживает регулярные выражения. + + +the "proxy_redirect" directive supports regular expressions. + + + + + +переменная $sent_http_cache_control могла содержать неверное значение при +использовании директивы expires.
+Спасибо Yichun Zhang. +
+ +the $sent_http_cache_control variable might contain a wrong value if the +"expires" directive was used.
+Thanks to Yichun Zhang. +
+
+ + + +директива read_ahead могла не работать при использовании совместно с +try_files и open_file_cache. + + +the "read_ahead" directive might not work combined with "try_files" +and "open_file_cache". + + + + + +если в параметре inactive директивы proxy_cache_path +было указано малое время, +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +if small time was used in the "inactive" parameter of +the "proxy_cache_path" directive. + + + + + +ответы из кэша могли зависать. + + +responses from cache might hang. + + + +
+ + + + + + +при использовании AIO на Linux в рабочем процессе происходил segmentation fault; +ошибка появилась в 1.1.9. + + +a segmentation fault occurred in a worker process if AIO was used on Linux; +the bug had appeared in 1.1.9. + + + + + + + + + + +теперь двойные кавычки экранируется при выводе SSI-командой echo.
+Спасибо Зауру Абасмирзоеву. +
+ +now double quotes are encoded in an "echo" SSI-command output.
+Thanks to Zaur Abasmirzoev. +
+
+ + + +параметр valid в директиве resolver. По умолчанию теперь +используется TTL, возвращённый DNS-сервером.
+Спасибо Кириллу Коринскому. +
+ +the "valid" parameter of the "resolver" directive. By default TTL +returned by a DNS server is used.
+Thanks to Kirill A. Korinskiy. +
+
+ + + +nginx мог перестать отвечать, если рабочий процесс завершался аварийно. + + +nginx might hang after a worker process abnormal termination. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовалось SNI; +ошибка появилась в 1.1.2. + + +a segmentation fault might occur in a worker process +if SNI was used; +the bug had appeared in 1.1.2. + + + + + +в директиве keepalive_disable; +ошибка появилась в 1.1.8.
+Спасибо Александру Усову. +
+ +in the "keepalive_disable" directive; +the bug had appeared in 1.1.8.
+Thanks to Alexander Usov. +
+
+ + + +сигнал SIGWINCH переставал работать после первого обновления исполняемого +файла; +ошибка появилась в 1.1.1. + + +SIGWINCH signal did not work after first binary upgrade; +the bug had appeared in 1.1.1. + + + + + +теперь ответы бэкендов, длина которых не соответствует заголовку +Content-Length, не кэширутся. + + +backend responses with length not matching "Content-Length" header line +are no longer cached. + + + + + +в директиве scgi_param при использовании составных параметров. + + +in the "scgi_param" directive, if complex parameters were used. + + + + + +в методе epoll.
+Спасибо Yichun Zhang. +
+ +in the "epoll" event method.
+Thanks to Yichun Zhang. +
+
+ + + +в модуле ngx_http_flv_module.
+Спасибо Piotr Sikora. +
+ +in the ngx_http_flv_module.
+Thanks to Piotr Sikora. +
+
+ + + +в модуле ngx_http_mp4_module. + + +in the ngx_http_mp4_module. + + + + + +теперь nginx понимает IPv6-адреса в строке запроса и в заголовке Host. + + +IPv6 addresses are now handled properly in a request line and in a "Host" +request header line. + + + + + +директивы add_header и expires не работали для ответов с кодом 206, +если запрос проксировался. + + +"add_header" and "expires" directives did not work if a request was proxied +and response status code was 206. + + + + + +nginx не собирался на FreeBSD 10. + + +nginx could not be built on FreeBSD 10. + + + + + +nginx не собирался на AIX. + + +nginx could not be built on AIX. + + + +
+ + + + + + +модуль ngx_http_limit_zone_module переименован в ngx_http_limit_conn_module. + + +the ngx_http_limit_zone_module was renamed to the ngx_http_limit_conn_module. + + + + + +директива limit_zone заменена директивой limit_conn_zone с новым синтаксисом. + + +the "limit_zone" directive was superseded by the "limit_conn_zone" directive +with a new syntax. + + + + + +поддержка ограничения по нескольким limit_conn на одном уровне. + + +support for multiple "limit_conn" limits on the same level. + + + + + +директива image_filter_sharpen. + + +the "image_filter_sharpen" directive. + + + + + +в рабочем процессе мог произойти segmentation fault, +если resolver получил большой DNS-ответ.
+Спасибо Ben Hawkes. +
+ +a segmentation fault might occur in a worker process +if resolver got a big DNS response.
+Thanks to Ben Hawkes. +
+
+ + + +в вычислении ключа для кэширования, +если использовалась внутренняя реализация MD5; +ошибка появилась в 1.0.4. + + +in cache key calculation +if internal MD5 implementation was used; +the bug had appeared in 1.0.4. + + + + + +строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса +клиента могли передаваться бэкенду при кэшировании; или не передаваться при +выключенном кэшировании, если кэширование было включено в другой части +конфигурации. + + +the "If-Modified-Since", "If-Range", etc. client request header lines +might be passed to backend while caching; or not passed without caching +if caching was enabled in another part of the configuration. + + + + + +модуль ngx_http_mp4_module выдавал неверную строку "Content-Length" +в заголовке ответа, использовался аргумент start.
+Спасибо Piotr Sikora. +
+ +the module ngx_http_mp4_module sent incorrect "Content-Length" response +header line if the "start" argument was used.
+Thanks to Piotr Sikora. +
+
+ +
+ + + + + + +поддержка нескольких DNS серверов в директиве "resolver".
+Спасибо Кириллу Коринскому. +
+ +support of several DNS servers in the "resolver" directive.
+Thanks to Kirill A. Korinskiy. +
+
+ + + +на старте или во время переконфигурации происходил segmentation fault, +если директива ssl использовалась на уровне http и не был указан +ssl_certificate. + + +a segmentation fault occurred on start or during reconfiguration +if the "ssl" directive was used at http level and there was +no "ssl_certificate" defined. + + + + + +уменьшено потребление памяти при проксировании больших файлов, +если они буферизировались на диск. + + +reduced memory consumption while proxying big files +if they were buffered to disk. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовалась директива "proxy_http_version 1.1". + + +a segmentation fault might occur in a worker process +if "proxy_http_version 1.1" directive was used. + + + + + +в директиве "expires @time". + + +in the "expires @time" directive. + + + +
+ + + + + + +Изменение во внутреннем API: теперь при внутреннем редиректе +в именованный location контексты модулей очищаются.
+По запросу Yichun Zhang. +
+ +Change in internal API: now module context data are cleared +while internal redirect to named location.
+Requested by Yichun Zhang. +
+
+ + + +теперь если сервер, описанный в блоке upstream, был признан неработающим, +то после истечения fail_timeout на него будет отправлен только один запрос; +сервер будет считаться работающим, если успешно ответит на этот запрос. + + +if a server in an upstream failed, only one request will be sent to it +after fail_timeout; the server will be considered alive if it will +successfully respond to the request. + + + + + +теперь символы 0x7F-0xFF в access_log записываются в виде \xXX. + + +now the 0x7F-0xFF characters are escaped as \xXX in an access_log. + + + + + +директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" теперь поддерживают +значения X-Accel-Limit-Rate, X-Accel-Buffering и X-Accel-Charset. + + +"proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support the following +additional values: X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset. + + + + + +уменьшение потребления памяти при использовании SSL. + + +decrease of memory consumption if SSL is used. + + + + + +некоторые UTF-8 символы обрабатывались неправильно.
+Спасибо Алексею Куцу. +
+ +some UTF-8 characters were processed incorrectly.
+Thanks to Alexey Kuts. +
+
+ + + +директивы модуля ngx_http_rewrite_module, заданные на уровне server, +применялись повторно, если для запроса не находилось ни одного location'а. + + +the ngx_http_rewrite_module directives specified at "server" level were +executed twice if no matching locations were defined. + + + + + +при использовании "aio sendfile" могла происходить утечка сокетов. + + +a socket leak might occurred if "aio sendfile" was used. + + + + + +при использовании файлового AIO соединения с быстрыми клиентами +могли быть закрыты по истечению send_timeout. + + +connections with fast clients might be closed after send_timeout +if file AIO was used. + + + + + +в модуле ngx_http_autoindex_module. + + +in the ngx_http_autoindex_module. + + + + + +модуль ngx_http_mp4_module не поддерживал перемотку на 32-битных платформах. + + +the module ngx_http_mp4_module did not support seeking on 32-bit platforms. + + + +
+ + + + + + +директивы uwsgi_buffering и scgi_buffering.
+Спасибо Peter Smit. +
+ +the "uwsgi_buffering" and "scgi_buffering" directives.
+Thanks to Peter Smit. +
+
+ + + +при использовании proxy_cache_bypass могли быть закэшированы +некэшируемые ответы.
+Спасибо John Ferlito. +
+ +non-cacheable responses might be cached if "proxy_cache_bypass" directive +was used.
+Thanks to John Ferlito. +
+
+ + + +в модуле ngx_http_proxy_module при работе с бэкендами по HTTP/1.1. + + +in HTTP/1.1 support in the ngx_http_proxy_module. + + + + + +закэшированные ответы с пустым телом возвращались некорректно; +ошибка появилась в 0.8.31. + + +cached responses with an empty body were returned incorrectly; +the bug had appeared in 0.8.31. + + + + + +ответы с кодом 201 модуля ngx_http_dav_module были некорректны; +ошибка появилась в 0.8.32. + + +201 responses of the ngx_http_dav_module were incorrect; +the bug had appeared in 0.8.32. + + + + + +в директиве return. + + +in the "return" directive. + + + + + +при использовании директивы "ssl_session_cache builtin" происходил +segmentation fault; +ошибка появилась в 1.1.1. + + +the "ssl_session_cache builtin" directive caused segmentation fault; +the bug had appeared in 1.1.1. + + + +
+ + + + + + +модуль ngx_http_upstream_keepalive. + + +the ngx_http_upstream_keepalive module. + + + + + +директива proxy_http_version. + + +the "proxy_http_version" directive. + + + + + +директива fastcgi_keep_conn. + + +the "fastcgi_keep_conn" directive. + + + + + +директива worker_aio_requests. + + +the "worker_aio_requests" directive. + + + + + +если nginx был собран с файловым AIO, +он не мог запускаться на Linux без поддержки AIO. + + +if nginx was built --with-file-aio it could not be run on Linux +kernel which did not support AIO. + + + + + +в обработке ошибок при работе с Linux AIO. +
+Спасибо Hagai Avrahami. +
+ +in Linux AIO error processing. +
+Thanks to Hagai Avrahami. +
+
+ + + +уменьшено потребление памяти для долгоживущих запросов. + + +reduced memory consumption for long-lived requests. + + + + + +модуль ngx_http_mp4_module не поддерживал 64-битный MP4-атом co64. + + +the module ngx_http_mp4_module did not support 64-bit MP4 "co64" atom. + + + +
+ + + + + + +модуль ngx_http_mp4_module. + + +the module ngx_http_mp4_module. + + + + + +в Linux AIO, используемым совместно с open_file_cache. + + +in Linux AIO combined with open_file_cache. + + + + + +open_file_cache не обновлял информацию о файле, +если файл был изменён не атомарно. + + +open_file_cache did not update file info on retest +if file was not atomically changed. + + + + + +nginx не собирался на MacOSX 10.7. + + +nginx could not be built on MacOSX 10.7. + + + + + + + + + + +теперь, если суммарный размер всех диапазонов больше размера исходного ответа, +то nginx возвращает только исходный ответ, не обрабатывая диапазоны. + + +now if total size of all ranges is greater than source response size, +then nginx disables ranges and returns just the source response. + + + + + +директива max_ranges. + + +the "max_ranges" directive. + + + + + +директивы ssl_verify_client, ssl_verify_depth и ssl_prefer_server_cipher +могли работать некорректно, если использовался SNI. + + +the "ssl_verify_client", "ssl_verify_depth", and "ssl_prefer_server_ciphers" +directives might work incorrectly if SNI was used. + + + + + +в директивах proxy/fastcgi/scgi/ uwsgi_ignore_client_abort. + + +in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" directives. + + + + + + + + + + +теперь загрузчик кэша за каждую итерацию либо обрабатывает число файлов, +указанное в параметре load_files, либо работает не дольше времени, +указанного в параметре loader_threshold. + + +now cache loader processes either as many files as specified by "loader_files" +parameter or works no longer than time specified by the "loader_threshold" +parameter during each iteration. + + + + + +SIGWINCH сигнал теперь работает только в режиме демона. + + +now SIGWINCH signal works only in daemon mode. + + + + + +теперь разделяемые зоны и кэши используют семафоры POSIX на Solaris.
+Спасибо Денису Иванову. +
+ +now shared zones and caches use POSIX semaphores on Solaris.
+Thanks to Den Ivanov. +
+
+ + + +теперь на NetBSD поддерживаются accept фильтры. + + +accept filters are now supported on NetBSD. + + + + + +nginx не собирался на Linux 3.0. + + +nginx could not be built on Linux 3.0. + + + + + +в некоторых случаях nginx не использовал сжатие; +ошибка появилась в 1.1.0. + + +nginx did not use gzipping in some cases; +the bug had appeared in 1.1.0. + + + + + +обработка тела запроса могла быть неверной, если клиент использовал pipelining. + + +request body might be processed incorrectly if client used pipelining. + + + + + +в директиве request_body_in_single_buf. + + +in the "request_body_in_single_buf" directive. + + + + + +в директивах proxy_set_body и proxy_pass_request_body +при использовании SSL-соединения с бэкендом. + + +in "proxy_set_body" and "proxy_pass_request_body" directives +if SSL connection to backend was used. + + + + + +nginx нагружал процессор, если все серверы в upstream'е были помечены +флагом down. + + +nginx hogged CPU if all servers in an upstream were marked as "down". + + + + + +при переконфигурации мог произойти segmentation fault, +если в предыдущей конфигурации был определён, но не использовался +ssl_session_cache. + + +a segmentation fault might occur during reconfiguration +if ssl_session_cache was defined but not used in previous configuration. + + + + + +при использовании большого количества backup-серверов +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in a worker process +if many backup servers were used in an upstream. + + + + + +при использовании директив fastcgi/scgi/uwsgi_param +со значениями, начинающимися со строки "HTTP_", +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.8.40. + + +a segmentation fault might occur in a worker process +if "fastcgi/scgi/uwsgi_param" directives were used +with values starting with "HTTP_"; +the bug had appeared in 0.8.40. + + + +
+ + + + + + +уменьшение времени работы загрузчика кэша. + + +cache loader run time decrease. + + + + + +параметры loader_files, loader_sleep и loader_threshold +директив proxy/fastcgi/scgi/uwsgi_cache_path. + + +"loader_files", "loader_sleep", and "loader_threshold" options +of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives. + + + + + +уменьшение времени загрузки конфигураций с большим количеством HTTPS серверов. + + +loading time decrease of configuration with large number of HTTPS sites. + + + + + +теперь nginx поддерживает шифры с обменом ECDHE-ключами.
+Спасибо Adrian Kotelba. +
+ +now nginx supports ECDHE key exchange ciphers.
+Thanks to Adrian Kotelba. +
+
+ + + +директива lingering_close.
+Спасибо Максиму Дунину. +
+ +the "lingering_close" directive.
+Thanks to Maxim Dounin. +
+
+ + + +закрытия соединения для pipelined-запросов.
+Спасибо Максиму Дунину. +
+ +in closing connection for pipelined requests.
+Thanks to Maxim Dounin. +
+
+ + + +nginx не запрещал сжатие при получении значения "gzip;q=0" +в строке "Accept-Encoding" в заголовке запроса клиента. + + +nginx did not disable gzipping if client sent "gzip;q=0" in +"Accept-Encoding" request header line. + + + + + +таймаута при небуферизированном проксировании.
+Спасибо Максиму Дунину. +
+ +in timeout in unbuffered proxied mode.
+Thanks to Maxim Dounin. +
+
+ + + +утечки памяти при использовании переменных в директиве proxy_pass +при работе с бэкендом по HTTPS.
+Спасибо Максиму Дунину. +
+ +memory leaks when a "proxy_pass" directive contains variables and proxies +to an HTTPS backend.
+Thanks to Maxim Dounin. +
+
+ + + +в проверке параметра директивы proxy_pass, заданного переменными.
+Спасибо Lanshun Zhou. +
+ +in parameter validation of a "proxy_pass" directive with variables.
+Thanks to Lanshun Zhou. +
+
+ + + +SSL не работал на QNX.
+Спасибо Максиму Дунину. +
+ +SSL did not work on QNX.
+Thanks to Maxim Dounin. +
+
+ + + +SSL модули не собирались gcc 4.6 без параметра --with-debug. + + +SSL modules could not be built by gcc 4.6 without --with-debug option. + + + +
+ + + + + + +теперь по умолчанию используются следующие шифры SSL: "HIGH:!aNULL:!MD5".
+Спасибо Rob Stradling. +
+ +now default SSL ciphers are "HIGH:!aNULL:!MD5".
+Thanks to Rob Stradling. +
+
+ + + +директивы referer_hash_max_size и referer_hash_bucket_size.
+Спасибо Witold Filipczyk. +
+ +the "referer_hash_max_size" and "referer_hash_bucket_size" +directives.
+Thanks to Witold Filipczyk. +
+
+ + + +переменная $uid_reset. + + +$uid_reset variable. + + + + + +при использовании кэширования +в рабочем процессе мог произойти segmentation fault.
+Спасибо Lanshun Zhou. +
+ +a segmentation fault might occur in a worker process, +if a caching was used.
+Thanks to Lanshun Zhou. +
+
+ + + +при использовании кэширования рабочие процессы +могли зациклиться во время переконфигурации; +ошибка появилась в 0.8.48.
+Спасибо Максиму Дунину. +
+ +worker processes may got caught in an endless loop during reconfiguration, +if a caching was used; +the bug had appeared in 0.8.48.
+Thanks to Maxim Dounin. +
+
+ + + +сообщения "stalled cache updating".
+Спасибо Максиму Дунину. +
+ +"stalled cache updating" alert.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +теперь в регулярных выражениях в директиве map можно задать +чувствительность к регистру с помощью префиксов "~" и "~*". + + +now regular expressions case sensitivity in the "map" directive +is given by prefixes "~" or "~*". + + + + + +теперь разделяемые зоны и кэши используют семафоры POSIX на Linux.
+Спасибо Денису Латыпову. +
+ +now shared zones and caches use POSIX semaphores on Linux.
+Thanks to Denis F. Latypoff. +
+
+ + + +сообщения "stalled cache updating". + + +"stalled cache updating" alert. + + + + + +nginx не собирался с параметром --without-http_auth_basic_module; +ошибка появилась в 1.0.3. + + +nginx could not be built --without-http_auth_basic_module; +the bug had appeared in 1.0.3. + + + +
+ + + + + + +директива auth_basic_user_file поддерживает шифрование пароля +методами "$apr1", "{PLAIN}" и "{SSHA}".
+Спасибо Максиму Дунину. +
+ +the "auth_basic_user_file" directive supports "$apr1", "{PLAIN}", +and "{SSHA}" password encryption methods.
+Thanks to Maxim Dounin. +
+
+ + + +директива geoip_org и переменная $geoip_org.
+Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову. +
+ +the "geoip_org" directive and $geoip_org variable.
+Thanks to Alexander Uskov, Arnaud Granal, and Denis F. Latypoff. +
+
+ + + +модули ngx_http_geo_module и ngx_http_geoip_module поддерживают +адреса IPv4, отображённые на IPv6 адреса. + + +ngx_http_geo_module and ngx_http_geoip_module support IPv4 addresses +mapped to IPv6 addresses. + + + + + +при проверке адреса IPv4, отображённого на адрес IPv6, +в рабочем процессе происходил segmentation fault, +если директивы access или deny были определены только для адресов IPv6; +ошибка появилась в 0.8.22. + + +a segmentation fault occurred in a worker process +during testing IPv4 address mapped to IPv6 address, +if access or deny rules were defined only for IPv6; +the bug had appeared in 0.8.22. + + + + + +закэшированный ответ мог быть испорчен, если значения директив +proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/ uwsgi_no_cache +были разными; +ошибка появилась в 0.8.46. + + +a cached response may be broken if "proxy/fastcgi/scgi/ uwsgi_cache_bypass" +and "proxy/fastcgi/scgi/uwsgi_no_cache" directive values were different; +the bug had appeared in 0.8.46. + + + +
+ + + + + + +теперь разделяемые зоны и кэши используют семафоры POSIX. + + +now shared zones and caches use POSIX semaphores. + + + + + +в работе параметра rotate директивы image_filter.
+Спасибо Adam Bocim. +
+ +in the "rotate" parameter of the "image_filter" directive.
+Thanks to Adam Bocim. +
+
+ + + +nginx не собирался на Solaris; +ошибка появилась в 1.0.1. + + +nginx could not be built on Solaris; +the bug had appeared in 1.0.1. + + + +
+ + + + + + +теперь директива split_clients использует алгоритм MurmurHash2 из-за +лучшего распределения.
+Спасибо Олегу Мамонтову. +
+ +now the "split_clients" directive uses MurmurHash2 algorithm because +of better distribution.
+Thanks to Oleg Mamontov. +
+
+ + + +теперь длинные строки, начинающиеся с нуля, не считаются ложными +значениями.
+Спасибо Максиму Дунину. +
+ +now long strings starting with zero are not considered as false values.
+Thanks to Maxim Dounin. +
+
+ + + +теперь по умолчанию nginx использует значение 511 для listen backlog на Linux. + + +now nginx uses a default listen backlog value 511 on Linux. + + + + + +переменные $upstream_... можно использовать в SSI и перловом модулях. + + +the $upstream_... variables may be used in the SSI and perl modules. + + + + + +теперь nginx лучше ограничивает размер кэша на диске.
+Спасибо Олегу Мамонтову. +
+ +now nginx limits better disk cache size.
+Thanks to Oleg Mamontov. +
+
+ + + +при парсинге неправильного IPv4 адреса мог произойти segmentation fault; +ошибка появилась в 0.8.22.
+Спасибо Максиму Дунину. +
+ +a segmentation fault might occur while parsing incorrect IPv4 address; +the bug had appeared in 0.9.3.
+Thanks to Maxim Dounin. +
+
+ + + +nginx не собирался gcc 4.6 без параметра --with-debug. + + +nginx could not be built by gcc 4.6 without --with-debug option. + + + + + +nginx не собирался на Solaris 9 и более ранних; +ошибка появилась в 0.9.3.
+Спасибо Dagobert Michelsen. +
+ +nginx could not be built on Solaris 9 and earlier; +the bug had appeared in 0.9.3.
+Thanks to Dagobert Michelsen. +
+
+ + + +переменная $request_time имела неверные значения, если использовались +подзапросы; +ошибка появилась в 0.8.47.
+Спасибо Игорю А. Валькову. +
+ +$request_time variable had invalid values if subrequests were used; +the bug had appeared in 0.8.47.
+Thanks to Igor A. Valcov. +
+
+ +
+ + + + + + +cache manager мог нагружать процессор после переконфигурации.
+Спасибо Максиму Дунину. +
+ +a cache manager might hog CPU after reload.
+Thanks to Maxim Dounin. +
+
+ + + +директива "image_filter crop" неправильно работала в сочетании с +"image_filter rotate 180". + + +an "image_filter crop" directive worked incorrectly coupled with +an "image_filter rotate 180" directive. + + + + + +директива "satisfy any" запрещала выдачу пользовательской страницы +для 401 кода. + + +a "satisfy any" directive disabled custom 401 error page. + + + +
+ + + + + + +теперь соединения в состоянии keepalive могут быть закрыты преждевременно, +если у воркера нет свободных соединений.
+Спасибо Максиму Дунину. +
+ +now keepalive connections may be closed premature, +if there are no free worker connections.
+Thanks to Maxim Dounin. +
+
+ + + +параметр rotate директивы image_filter.
+Спасибо Adam Bocim. +
+ +the "rotate" parameter of the "image_filter" directive.
+Thanks to Adam Bocim. +
+
+ + + +ситуации, когда бэкенд в директивах fastcgi_pass, scgi_pass или uwsgi_pass +задан выражением и ссылается на описанный upstream. + + +a case when a backend in "fastcgi_pass", "scgi_pass", or "uwsgi_pass" +directives is given by expression and refers to a defined upstream. + + + +
+ + + + + + +директива map поддерживает регулярные выражения в качестве значения +первого параметра. + + +the "map" directive supports regular expressions as value of the first +parameter. + + + + + +переменная $time_iso8601 для access_log.
+Спасибо Michael Lustfield. +
+ +$time_iso8601 access_log variable.
+Thanks to Michael Lustfield. +
+
+ +
+ + + + + + +теперь по умолчанию nginx использует значение -1 для listen backlog +на Linux.
+Спасибо Андрею Нигматулину. +
+ +now nginx uses a default listen backlog value -1 on Linux.
+Thanks to Andrei Nigmatulin. +
+
+ + + +параметр utf8 в директивах geoip_country и geoip_city.
+Спасибо Денису Латыпову. +
+ +the "utf8" parameter of "geoip_country" and "geoip_city" directives.
+Thanks to Denis F. Latypoff. +
+
+ + + +исправление в умолчательной директиве proxy_redirect, если в директиве +proxy_pass не был описан URI.
+Спасибо Максиму Дунину. +
+ +in a default "proxy_redirect" directive if "proxy_pass" directive has no +URI part.
+Thanks to Maxim Dounin. +
+
+ + + +директива error_page не работала с нестандартными кодами ошибок; +ошибка появилась в 0.8.53.
+Спасибо Максиму Дунину. +
+ +an "error_page" directive did not work with nonstandard error codes; +the bug had appeared in 0.8.53.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +директива server_name поддерживает переменную $hostname. + + +the "server_name" directive supports the $hostname variable. + + + + + +494 код для ошибки "Request Header Too Large". + + +494 code for "Request Header Too Large" error. + + + + + + + + + + +если для пары IPv6-адрес:порт описан только один сервер, то выделения +в регулярных выражениях в директиве server_name не работали. + + +if there was a single server for given IPv6 address:port pair, +then captures in regular expressions in a "server_name" directive did not work. + + + + + +nginx не собирался под Solaris; +ошибка появилась в 0.9.0. + + +nginx could not be built on Solaris; +the bug had appeared in 0.9.0. + + + + + + + + + + +поддержка строки "If-Unmodified-Since" в заголовке запроса клиента. + + +the "If-Unmodified-Since" client request header line support. + + + + + +использование accept(), если accept4() не реализован; +ошибка появилась в 0.9.0. + + +fallback to accept() syscall if accept4() was not implemented; +the issue had appeared in 0.9.0. + + + + + +nginx не собирался под Cygwin; +ошибка появилась в 0.9.0. + + +nginx could not be built on Cygwin; +the bug had appeared in 0.9.0. + + + + + +уязвимости в OpenSSL CVE-2010-4180.
+Спасибо Максиму Дунину. +
+ +for OpenSSL vulnerability CVE-2010-4180.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +директивы вида "return CODE message" не работали; +ошибка появилась в 0.9.0. + + +"return CODE message" directives did not work; +the bug had appeared in 0.9.0. + + + + + + + + + + +директива keepalive_disable. + + +the "keepalive_disable" directive. + + + + + +директива map поддерживает переменные в качестве значения определяемой +переменной. + + +the "map" directive supports variables as value of a defined variable. + + + + + +директива map поддерживает пустые строки в качестве значения первого параметра. + + +the "map" directive supports empty strings as value of the first parameter. + + + + + +директива map поддерживает выражения в первом параметре. + + +the "map" directive supports expressions as the first parameter. + + + + + +страница руководства nginx(8).
+Спасибо Сергею Осокину. +
+ +nginx(8) manual page.
+Thanks to Sergey Osokin. +
+
+ + + +поддержка accept4() в Linux.
+Спасибо Simon Liu. +
+ +Linux accept4() support.
+Thanks to Simon Liu. +
+
+ + + +устранение предупреждения линкера о "sys_errlist" и "sys_nerr" под Linux; +предупреждение появилось в 0.8.35. + + +elimination of Linux linker warning about "sys_errlist" and "sys_nerr"; +the warning had appeared in 0.8.35. + + + + + +при использовании директивы auth_basic +в рабочем процессе мог произойти segmentation fault.
+Спасибо Михаилу Лалетину. +
+ +a segmentation fault might occur in a worker process, +if the "auth_basic" directive was used.
+Thanks to Michail Laletin. +
+
+ + + +совместимость с модулем ngx_http_eval_module; +ошибка появилась в 0.8.42. + + +compatibility with ngx_http_eval_module; +the bug had appeared in 0.8.42. + + + +
+ + + + + + +теперь директива error_page позволяет менять код статуса у редиректа. + + +now the "error_page" directive allows to change a status code in a redirect. + + + + + +директива gzip_disable поддерживает специальную маску degradation. + + +the "gzip_disable" directive supports special "degradation" mask. + + + + + +при использовании файлового AIO могла происходить утечка сокетов.
+Спасибо Максиму Дунину. +
+ +a socket leak might occurred if file AIO was used.
+Thanks to Maxim Dounin. +
+
+ + + +если в первом сервере не была описана директива listen и нигде явно +не описан сервер по умолчанию, то сервером по умолчанию становился +следующий сервер с директивой listen; +ошибка появилась в 0.8.21. + + +if the first server had no "listen" directive and there was no explicit +default server, then a next server with a "listen" directive became +the default server; +the bug had appeared in 0.8.21. + + + +
+ + + + + + +nginx использовал режим SSL для listen сокета, если для него был +установлен любой listen-параметр; +ошибка появилась в 0.8.51. + + +nginx used SSL mode for a listen socket if any listen option was set; +the bug had appeared in 0.8.51. + + + + + + + + + + +директива secure_link_expires упразднена. + + +the "secure_link_expires" directive has been canceled. + + + + + +уровень логгирования ошибок resolver'а понижен с уровня alert на error. + + +a logging level of resolver errors has been lowered from "alert" to "error". + + + + + +теперь параметр "ssl" listen-сокета можно устанавливать несколько раз. + + +now a listen socket "ssl" parameter may be set several times. + + + + + + + + + + +директивы secure_link, secure_link_md5 и secure_link_expires +модуля ngx_http_secure_link_module. + + +the "secure_link", "secure_link_md5", and "secure_link_expires" directives of +the ngx_http_secure_link_module. + + + + + +ключ -q.
+Спасибо Геннадию Махомеду. +
+ +the -q switch.
+Thanks to Gena Makhomed. +
+
+ + + +при использовании кэширования рабочие процессы и могли зациклиться +во время переконфигурации; +ошибка появилась в 0.8.48. + + +worker processes may got caught in an endless loop during reconfiguration, +if a caching was used; +the bug had appeared in 0.8.48. + + + + + +в директиве gzip_disable.
+Спасибо Derrick Petzold. +
+ +in the "gzip_disable" directive.
+Thanks to Derrick Petzold. +
+
+ + + +nginx/Windows не мог посылать сигналы stop, quit, reopen, reload процессу, +запущенному в другой сессии. + + +nginx/Windows could not send stop, quit, reopen, and reload signals +to a process run in other session. + + + +
+ + + + + + +директива image_filter_jpeg_quality поддерживает переменные. + + +the "image_filter_jpeg_quality" directive supports variables. + + + + + +при использовании переменной $geoip_region_name +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.8.48. + + +a segmentation fault might occur in a worker process, +if the $geoip_region_name variables was used; +the bug had appeared in 0.8.48. + + + + + +ошибки, перехваченные error_page, кэшировались только до следующего запроса; +ошибка появилась в 0.8.48. + + +errors intercepted by error_page were cached only for next request; +the bug had appeared in 0.8.48. + + + + + + + + + + +теперь по умолчанию директива server_name имеет значение пустое имя "".
+Спасибо Геннадию Махомеду. +
+ +now the "server_name" directive default value is an empty name "".
+Thanks to Gena Makhomed. +
+
+ + + +теперь по умолчанию директива server_name_in_redirect имеет значение off. + + +now the "server_name_in_redirect" directive default value is "off". + + + + + +переменные $geoip_dma_code, $geoip_area_code и $geoip_region_name.
+Спасибо Christine McGonagle. +
+ +the $geoip_dma_code, $geoip_area_code, and $geoip_region_name variables.
+Thanks to Christine McGonagle. +
+
+ + + +директивы proxy_pass, fastcgi_pass, uwsgi_pass и scgi_pass не наследовались +в блоки limit_except. + + +the "proxy_pass", "fastcgi_pass", "uwsgi_pass", and "scgi_pass" directives +were not inherited inside "limit_except" blocks. + + + + + +директивы proxy_cache_min_uses, fastcgi_cache_min_uses +uwsgi_cache_min_uses и scgi_cache_min_uses не работали; +ошибка появилась в 0.8.46. + + +the "proxy_cache_min_uses", "fastcgi_cache_min_uses" +"uwsgi_cache_min_uses", and "scgi_cache_min_uses" directives did not work; +the bug had appeared in 0.8.46. + + + + + +директива fastcgi_split_path_info неверно использовала выделения, +если в выделения попадала только часть URI.
+Спасибо Юрию Тарадаю и Frank Enderle. +
+ +the "fastcgi_split_path_info" directive used incorrectly captures, +if only parts of an URI were captured.
+Thanks to Yuriy Taraday and Frank Enderle. +
+
+ + + +директива rewrite не экранировала символ ";" при копировании из URI +в аргументы.
+Спасибо Daisuke Murase. +
+ +the "rewrite" directive did not escape a ";" character during copying +from URI to query string.
+Thanks to Daisuke Murase. +
+
+ + + +модуль ngx_http_image_filter_module закрывал соединение, +если изображение было больше размера image_filter_buffer. + + +the ngx_http_image_filter_module closed a connection, +if an image was larger than "image_filter_buffer" size. + + + +
+ + + + + + +переменная $request_time имела неверные значения для подзапросов. + + +$request_time variable had invalid values for subrequests. + + + + + +ошибки, перехваченные error_page, не кэшировались. + + +errors intercepted by error_page could not be cached. + + + + + +если использовался параметр max_size, то cache manager мог зациклиться; +ошибка появилась в 0.8.46. + + +a cache manager process may got caught in an endless loop, +if max_size parameter was used; +the bug had appeared in 0.8.46. + + + + + + + + + + +директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache +и scgi_no_cache теперь влияют только на сохранение закэшированного ответа. + + +now the "proxy_no_cache", "fastcgi_no_cache", "uwsgi_no_cache", and +"scgi_no_cache" directives affect on a cached response saving only. + + + + + +директивы proxy_cache_bypass, fastcgi_cache_bypass, uwsgi_cache_bypass +и scgi_cache_bypass. + + +the "proxy_cache_bypass", "fastcgi_cache_bypass", "uwsgi_cache_bypass", +and "scgi_cache_bypass" directives. + + + + + +nginx не освобождал память в keys_zone кэшей в случае ошибки работы с +бэкендом: память освобождалась только по истечении времени неактивности +или при недостатке памяти. + + +nginx did not free memory in cache keys zones if there was an error +during working with backend: the memory was freed only after inactivity +time or on memory low condition. + + + + + + + + + + +улучшения в модуле ngx_http_xslt_filter.
+Спасибо Laurence Rowe. +
+ +ngx_http_xslt_filter improvements.
+Thanks to Laurence Rowe. +
+
+ + + +ответ SSI модуля мог передаваться не полностью после команды include +с параметром wait="yes"; +ошибка появилась в 0.7.25.
+Спасибо Максиму Дунину. +
+ +SSI response might be truncated after include with wait="yes"; +the bug had appeared in 0.7.25.
+Thanks to Maxim Dounin. +
+
+ + + +директива listen не поддерживала параметр setfib=0. + + +the "listen" directive did not support the "setfib=0" parameter. + + + +
+ + + + + + +теперь nginx по умолчанию не кэширует ответы бэкендов, +в заголовке которых есть строка "Set-Cookie". + + +now nginx does not cache by default backend responses, +if they have a "Set-Cookie" header line. + + + + + +директива listen поддерживает параметр setfib.
+Спасибо Андрею Филонову. +
+ +the "listen" directive supports the "setfib" parameter.
+Thanks to Andrew Filonov. +
+
+ + + +директива sub_filter могла изменять регистр букв при частичном совпадении. + + +the "sub_filter" directive might change character case on partial match. + + + + + +совместимость с HP/UX. + + +compatibility with HP/UX. + + + + + +совместимость с компилятором AIX xlC_r. + + +compatibility with AIX xlC_r compiler. + + + + + +nginx считал большие пакеты SSLv2 как обычные текстовые запросы.
+Спасибо Miroslaw Jaworski. +
+ +nginx treated large SSLv2 packets as plain requests.
+Thanks to Miroslaw Jaworski. +
+
+ +
+ + + + + + +ускорение загрузки больших баз geo-диапазонов. + + +large geo ranges base loading speed-up. + + + + + +перенаправление ошибки в "location /zero {return 204;}" без изменения +кода ответа оставляло тело ошибки; +ошибка появилась в 0.8.42. + + +an error_page redirection to "location /zero {return 204;}" without +changing status code kept the error body; +the bug had appeared in 0.8.42. + + + + + +nginx мог закрывать IPv6 listen сокет во время переконфигурации.
+Спасибо Максиму Дунину. +
+ +nginx might close IPv6 listen socket during reconfiguration.
+Thanks to Maxim Dounin. +
+
+ + + +переменную $uid_set можно использовать на любой стадии обработки запроса. + + +the $uid_set variable may be used at any request processing stage. + + + +
+ + + + + + +теперь nginx проверяет location'ы, заданные регулярными выражениями, +если запрос полностью совпал с location'ом, заданным строкой префикса. +Предыдущее поведение появилось в 0.7.1. + + +now nginx tests locations given by regular expressions, +if request was matched exactly by a location given by a prefix string. +The previous behavior has been introduced in 0.7.1. + + + + + +модуль ngx_http_scgi_module.
+Спасибо Manlio Perillo. +
+ +the ngx_http_scgi_module.
+Thanks to Manlio Perillo. +
+
+ + + +в директиве return можно добавлять текст ответа. + + +a text answer may be added to a "return" directive. + + + +
+ + + + + + +рабочий процесс nginx/Windows мог завершаться аварийно при запросе файла +с неверной кодировкой UTF-8. + + +nginx/Windows worker might be terminated abnormally if a requested file name +has invalid UTF-8 encoding. + + + + + +теперь nginx разрешает использовать пробелы в строке запроса. + + +now nginx allows to use spaces in a request line. + + + + + +директива proxy_redirect неправильно изменяла строку "Refresh" в заголовке +ответа бэкенда.
+Спасибо Андрею Андрееву и Максиму Согину. +
+ +the "proxy_redirect" directive changed incorrectly a backend "Refresh" +response header line.
+Thanks to Andrey Andreew and Max Sogin. +
+
+ + + +nginx не поддерживал путь без имени хоста в +строке "Destination" в заголовке запроса. + + +nginx did not support path without host name +in "Destination" request header line. + + + +
+ + + + + + +теперь nginx/Windows игнорирует имя потока файла по умолчанию.
+Спасибо Jose Antonio Vazquez Gonzalez. +
+ +now nginx/Windows ignores default file stream name.
+Thanks to Jose Antonio Vazquez Gonzalez. +
+
+ + + +модуль ngx_http_uwsgi_module.
+Спасибо Roberto De Ioris. +
+ +the ngx_http_uwsgi_module.
+Thanks to Roberto De Ioris. +
+
+ + + +директива fastcgi_param со значением, начинающимся со строки "HTTP_", +изменяет строку заголовка в запросе клиента. + + +a "fastcgi_param" directive with value starting with "HTTP_" overrides +a client request header line. + + + + + +строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса +клиента передавались FastCGI-серверу при кэшировании. + + +the "If-Modified-Since", "If-Range", etc. client request header lines +were passed to FastCGI-server while caching. + + + + + +listen unix domain сокет нельзя было изменить во время переконфигурации.
+Спасибо Максиму Дунину. +
+ +listen unix domain socket could not be changed during reconfiguration.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +наследуемая директива alias неправильно работала во вложенном location'е. + + +an inherited "alias" directive worked incorrectly in inclusive location. + + + + + +в комбинации директив alias с переменными и try_files; + + +in "alias" with variables and "try_files" directives combination. + + + + + +listen unix domain и IPv6 сокеты не наследовались во время обновления +без перерыва.
+Спасибо Максиму Дунину. +
+ +listen unix domain and IPv6 sockets did not inherit while online upgrade.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +директивы proxy_no_cache и fastcgi_no_cache. + + +the "proxy_no_cache" and "fastcgi_no_cache" directives. + + + + + +теперь при использовании переменной $scheme в директиве rewrite +автоматически делается редирект.
+Спасибо Piotr Sikora. +
+ +now the "rewrite" directive does a redirect automatically +if the $scheme variable is used.
+Thanks to Piotr Sikora. +
+
+ + + +теперь задержки в директиве limit_req соответствует описанному алгоритму.
+Спасибо Максиму Дунину. +
+ +now "limit_req" delay directive conforms to the described algorithm.
+Thanks to Maxim Dounin. +
+
+ + + +переменную $uid_got нельзя было использовать в SSI и перловом модулях. + + +the $uid_got variable might not be used in the SSI and perl modules. + + + +
+ + + + + + +модуль ngx_http_split_clients_module. + + +the ngx_http_split_clients_module. + + + + + +директива map поддерживает ключи больше 255 символов. + + +the "map" directive supports keys more than 255 characters. + + + + + +nginx игнорировал значения "private" и "no-store" в строке "Cache-Control" +в заголовке ответа бэкенда. + + +nginx ignored the "private" and "no-store" values +in the "Cache-Control" backend response header line. + + + + + +параметр stub в SSI-директиве include не использовался, +если пустой ответ имел код 200. + + +a "stub" parameter of an "include" SSI directive was not used, +if empty response has 200 status code. + + + + + +если проксированный или FastCGI запрос внутренне перенаправлялся +в другой проксированный или FastCGI location, +то в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.8.33.
+Спасибо Yichun Zhang. +
+ +if a proxied or FastCGI request was internally redirected +to another proxied or FastCGI location, +then a segmentation fault might occur in a worker process; +the bug had appeared in 0.8.33.
+Thanks to Yichun Zhang. +
+
+ + + +соединения IMAP к серверу Zimbra могло зависнуть до таймаута.
+Спасибо Alan Batie. +
+ +IMAP connections may hang until they timed out +while talking to Zimbra server.
+Thanks to Alan Batie. +
+
+ +
+ + + + + + +модуль ngx_http_dav_module неправильно обрабатывал методы DELETE, COPY и MOVE +для симлинков. + + +the ngx_http_dav_module handled incorrectly the DELETE, COPY, and MOVE methods +for symlinks. + + + + + +модуль SSI в подзапросах использовал закэшированные в основном запросе +значения переменных $query_string, $arg_... и им подобных. + + +values of the $query_string, $arg_..., etc. variables cached in main +request were used by the SSI module in subrequests. + + + + + +значение переменной повторно экранировалось после каждого вывода +SSI-команды echo; +ошибка появилась в 0.6.14. + + +a variable value was repeatedly encoded after each +an "echo" SSI-command output; +the bug had appeared in 0.6.14. + + + + + +рабочий процесс зависал при запросе файла FIFO.
+Спасибо Vicente Aguilar и Максиму Дунину. +
+ +a worker process hung if a FIFO file was requested.
+Thanks to Vicente Aguilar and Maxim Dounin. +
+
+ + + +совместимость с OpenSSL-1.0.0 на 64-битном Linux.
+Спасибо Максиму Дунину. +
+ +OpenSSL-1.0.0 compatibility on 64-bit Linux.
+Thanks to Maxim Dounin. +
+
+ + + +nginx не собирался с параметром --without-http-cache; +ошибка появилась в 0.8.35. + + +nginx could not be built --without-http-cache; +the bug had appeared in 0.8.35. + + + +
+ + + + + + +теперь charset-фильтр работает до SSI-фильтра. + + +now the charset filter runs before the SSI filter. + + + + + +директива chunked_transfer_encoding. + + +the "chunked_transfer_encoding" directive. + + + + + +символ "&" при копировании в аргументы в правилах rewrite не экранировался. + + +an "&" character was not escaped when it was copied in arguments part +in a rewrite rule. + + + + + +nginx мог завершаться аварийно во время обработки сигнала или +при использовании директивы timer_resolution на платформах, +не поддерживающих методы kqueue или eventport.
+Спасибо George Xie и Максиму Дунину. +
+ +nginx might be terminated abnormally +while a signal processing or if the directive "timer_resolution" was used +on platforms which do not support kqueue or eventport notification methods.
+Thanks to George Xie and Maxim Dounin. +
+
+ + + +если временные файлы и постоянное место хранения располагались на разных +файловых системах, то у постоянных файлов время изменения было неверным.
+Спасибо Максиму Дунину. +
+ +if temporary files and permanent storage area resided at different +file systems, then permanent file modification times were incorrect.
+Thanks to Maxim Dounin. +
+
+ + + +модуль ngx_http_memcached_module мог выдавать ошибку "memcached sent invalid +trailer".
+Спасибо Максиму Дунину. +
+ +ngx_http_memcached_module might issue the error message "memcached sent invalid +trailer".
+Thanks to Maxim Dounin. +
+
+ + + +nginx не мог собрать библиотеку zlib-1.2.4 из исходных текстов.
+Спасибо Максиму Дунину. +
+ +nginx could not built zlib-1.2.4 library using the library sources.
+Thanks to Maxim Dounin. +
+
+ + + +в рабочем процессе происходил segmentation fault, +если перед ответом FastCGI-сервера было много вывода в stderr; +ошибка появилась в 0.8.34.
+Спасибо Максиму Дунину. +
+ +a segmentation fault occurred in a worker process, +if there was large stderr output before FastCGI response; +the bug had appeared in 0.8.34.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +nginx не поддерживал все шифры, используемые в клиентских сертификатах.
+Спасибо Иннокентию Еникееву. +
+ +nginx did not support all ciphers and digests used in client certificates.
+Thanks to Innocenty Enikeew. +
+
+ + + +nginx неправильно кэшировал FastCGI-ответы, если перед ответом было +много вывода в stderr. + + +nginx cached incorrectly FastCGI responses if there was large stderr output +before response. + + + + + +nginx не поддерживал HTTPS-рефереры. + + +nginx did not support HTTPS referrers. + + + + + +nginx/Windows мог не находить файлы, если путь в конфигурации был задан +в другом регистре; +ошибка появилась в 0.8.33. + + +nginx/Windows might not find file if path in configuration was given +in other character case; +the bug had appeared in 0.8.33. + + + + + +переменная $date_local выдавала неверное время, +если использовался формат "%s".
+Спасибо Максиму Дунину. +
+ +the $date_local variable has an incorrect value, +if the "%s" format was used.
+Thanks to Maxim Dounin. +
+
+ + + +если ssl_session_cache не был установлен или установлен в none, +то при проверке клиентского сертификаты могла происходить +ошибка "session id context uninitialized"; +ошибка появилась в 0.7.1. + + +if ssl_session_cache was not set or was set to "none", +then during client certificate verify +the error "session id context uninitialized" might occur; +the bug had appeared in 0.7.1. + + + + + +geo-диапазон возвращал значение по умолчанию, если диапазон включал +в себя одну и более сетей размером /16 и не начинался на границе сети +размером /16. + + +a geo range returned default value if the range included two or more +/16 networks and did not begin at /16 network boundary. + + + + + +блок, используемый в параметре stub в SSI-директиве include, +выводился с MIME-типом "text/plain". + + +a block used in a "stub" parameter of an "include" SSI directive +was output with "text/plain" MIME type. + + + + + +$r->sleep() не работал; +ошибка появилась в 0.8.11. + + +$r->sleep() did not work; +the bug had appeared in 0.8.11. + + + +
+ + + + + + +теперь nginx/Windows игнорирует пробелы в конце URI.
+Спасибо Dan Crowley, Core Security Technologies. +
+ +now nginx/Windows ignores trailing spaces in URI.
+Thanks to Dan Crowley, Core Security Technologies. +
+
+ + + +теперь nginx/Windows игнорирует короткие имена файлов.
+Спасибо Dan Crowley, Core Security Technologies. +
+ +now nginx/Windows ignores short files names.
+Thanks to Dan Crowley, Core Security Technologies. +
+
+ + + +теперь keepalive соединения после запросов POST не запрещаются для +MSIE 7.0+.
+Спасибо Adam Lounds. +
+ +now keepalive connections after POST requests are not disabled for +MSIE 7.0+.
+Thanks to Adam Lounds. +
+
+ + + +теперь keepalive соединения запрещены для Safari.
+Спасибо Joshua Sierles. +
+ +now keepalive connections are disabled for Safari.
+Thanks to Joshua Sierles. +
+
+ + + +если проксированный или FastCGI запрос внутренне перенаправлялся +в другой проксированный или FastCGI location, то переменная +$upstream_response_time могла иметь ненормально большое значение; +ошибка появилась в 0.8.7. + + +if a proxied or FastCGI request was internally redirected +to another proxied or FastCGI location, +then $upstream_response_time variable may have abnormally large value; +the bug had appeared in 0.8.7. + + + + + +в рабочем процессе мог произойти segmentation fault +при отбрасывания тела запроса; +ошибка появилась в 0.8.11. + + +a segmentation fault might occur in a worker process, +while discarding a request body; +the bug had appeared in 0.8.11. + + + +
+ + + + + + +ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module.
+Спасибо Максиму Дунину. +
+ +UTF-8 encoding usage in the ngx_http_autoindex_module.
+Thanks to Maxim Dounin. +
+
+ + + +именованные выделения в регулярных выражениях работали только для +двух переменных.
+Спасибо Максиму Дунину. +
+ +regular expression named captures worked for two names only.
+Thanks to Maxim Dounin. +
+
+ + + +теперь в строке заголовка запроса "Host" используется имя "localhost", +если в директиве auth_http указан unix domain сокет.
+Спасибо Максиму Дунину. +
+ +now the "localhost" name is used in the "Host" request header line, +if an unix domain socket is defined in the "auth_http" directive.
+Thanks to Maxim Dounin. +
+
+ + + +nginx не поддерживал передачу chunk'ами для 201-ых ответов.
+Спасибо Julian Reich. +
+ +nginx did not support chunked transfer encoding for 201 responses.
+Thanks to Julian Reich. +
+
+ + + +если директива "expires modified" выставляла дату в прошлом, то в строке +заголовка ответа "Cache-Control" выдавалось отрицательное число.
+Спасибо Алексею Капранову. +
+ +if the "expires modified" set date in the past, then a negative number +was set in the "Cache-Control" response header line.
+Thanks to Alex Kapranoff. +
+
+ +
+ + + + + + +теперь директива error_page может перенаправлять ответы со статусом 301 и 302. + + +now the "error_page" directive may redirect the 301 and 302 responses. + + + + + +переменные $geoip_city_continent_code, $geoip_latitude и $geoip_longitude.
+Спасибо Arvind Sundararajan. +
+ +the $geoip_city_continent_code, $geoip_latitude, and $geoip_longitude +variables.
+Thanks to Arvind Sundararajan. +
+
+ + + +модуль ngx_http_image_filter_module теперь всегда удаляет +EXIF и другие данные, если они занимают больше 5% в JPEG-файле. + + +now the ngx_http_image_filter_module deletes always EXIF and other +application specific data if the data consume more than 5% of a JPEG file. + + + + + +nginx закрывал соединение при запросе закэшированного +ответа с пустым телом.
+Спасибо Piotr Sikora. +
+ +nginx closed a connection if a cached response had an empty body.
+Thanks to Piotr Sikora. +
+
+ + + +nginx мог не собираться gcc 4.x при использовании оптимизации -O2 и выше.
+Спасибо Максиму Дунину и Денису Латыпову. +
+ +nginx might not be built by gcc 4.x if the -O2 or higher optimization option +was used.
+Thanks to Maxim Dounin and Denis F. Latypoff. +
+
+ + + +регулярные выражения в location всегда тестировались с учётом регистра; +ошибка появилась в 0.8.25. + + +regular expressions in location were always tested in case-sensitive mode; +the bug had appeared in 0.8.25. + + + + + +nginx кэшировал 304 ответ, если в заголовке проксируемого запроса +была строка "If-None-Match".
+Спасибо Tim Dettrick и David Kostal. +
+ +nginx cached a 304 response if there was the "If-None-Match" header line +in a proxied request.
+Thanks to Tim Dettrick and David Kostal. +
+
+ + + +nginx/Windows пытался дважды удалить временный файл +при перезаписи уже существующего файла. + + +nginx/Windows tried to delete a temporary file twice +if the file should replace an already existent file. + + + +
+ + + + + + +теперь по умолчанию размер буфера директивы large_client_header_buffers +равен 8K.
+Спасибо Andrew Cholakian. +
+ +now the default buffer size of the "large_client_header_buffers" +directive is 8K.
+Thanks to Andrew Cholakian. +
+
+ + + +файл conf/fastcgi.conf для простых конфигураций FastCGI. + + +the conf/fastcgi.conf for simple FastCGI configurations. + + + + + +nginx/Windows пытался дважды переименовать временный файл +при перезаписи уже существующего файла. + + +nginx/Windows tried to rename a temporary file twice if the file +should replace an already existent file. + + + + + +ошибки double free or corruption, возникающей, если имя хоста не было найдено; +ошибка появилась в 0.8.22.
+Спасибо Константину Свисту. +
+ +of "double free or corruption" error issued if host could not be resolved; +the bug had appeared in 0.8.22.
+Thanks to Konstantin Svist. +
+
+ + + +в использовании libatomic на некоторых платформах.
+Спасибо W-Mark Kubacki. +
+ +in libatomic usage on some platforms.
+Thanks to W-Mark Kubacki. +
+
+ +
+ + + + + + +теперь для проксируемых ответов HTTP/0.9 в лог пишется код ответа "009". + + +now the "009" status code is written to an access log for proxied HTTP/0.9 +responses. + + + + + +директивы addition_types, charset_types, gzip_types, ssi_types, +sub_filter_types и xslt_types поддерживают параметр "*". + + +the "addition_types", "charset_types", "gzip_types", "ssi_types", +"sub_filter_types", and "xslt_types" directives support an "*" parameter. + + + + + +использование встроенных атомарных операций GCC 4.1+.
+Спасибо W-Mark Kubacki. +
+ +GCC 4.1+ built-in atomic operations usage.
+Thanks to W-Mark Kubacki. +
+
+ + + +параметр --with-libatomic[=DIR] в configure.
+Спасибо W-Mark Kubacki. +
+ +the --with-libatomic[=DIR] option in the configure.
+Thanks to W-Mark Kubacki. +
+
+ + + +listen unix domain сокет имели ограниченные права доступа. + + +listen unix domain socket had limited access rights. + + + + + +закэшированные ответы ответов HTTP/0.9 неправильно обрабатывались. + + +cached HTTP/0.9 responses were handled incorrectly. + + + + + +именованные выделения в регулярных выражениях, заданные как "?P<...>", +не работали в директиве server_name.
+Спасибо Максиму Дунину. +
+ +regular expression named captures given by "?P<...>" did not work +in a "server_name" directive.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +nginx не собирался с параметром --without-pcre; +ошибка появилась в 0.8.25. + + +nginx could not be built with the --without-pcre parameter; +the bug had appeared in 0.8.25. + + + + + + + + + + +регулярные выражения не работали в nginx/Windows; +ошибка появилась в 0.8.25. + + +regular expressions did not work in nginx/Windows; +the bug had appeared in 0.8.25. + + + + + + + + + + +ошибки при использовании выделений в директиве rewrite; +ошибка появилась в 0.8.25. + + +in captures usage in "rewrite" directive; +the bug had appeared in 0.8.25. + + + + + +nginx не собирался без параметра --with-debug; +ошибка появилась в 0.8.25. + + +nginx could not be built without the --with-debug option; +the bug had appeared in 0.8.25. + + + + + + + + + + +теперь в лог ошибок не пишется сообщение, если переменная не найдена +с помощью метода $r->variable(). + + +now no message is written in an error log if a variable is not found by +$r->variable() method. + + + + + +модуль ngx_http_degradation_module. + + +the ngx_http_degradation_module. + + + + + +именованные выделения в регулярных выражениях. + + +regular expression named captures. + + + + + +теперь при использовании переменных в директиве proxy_pass не требуется +задавать URI. + + +now URI part is not required a "proxy_pass" directive if variables are used. + + + + + +теперь директива msie_padding работает и для Chrome. + + +now the "msie_padding" directive works for Chrome too. + + + + + +в рабочем процессе происходил segmentation fault при недостатке памяти; +ошибка появилась в 0.8.18. + + +a segmentation fault occurred in a worker process on low memory condition; +the bug had appeared in 0.8.18. + + + + + +nginx передавал сжатые ответы клиентам, не поддерживающим сжатие, +при настройках gzip_static on и gzip_vary off; +ошибка появилась в 0.8.16. + + +nginx sent gzipped responses to clients those do not support gzip, +if "gzip_static on" and "gzip_vary off"; +the bug had appeared in 0.8.16. + + + + + + + + + + +nginx всегда добавлял строку "Content-Encoding: gzip" в заголовок +304-ых ответов модуля ngx_http_gzip_static_module. + + +nginx always added "Content-Encoding: gzip" response header line +in 304 responses sent by ngx_http_gzip_static_module. + + + + + +nginx не собирался без параметра --with-debug; +ошибка появилась в 0.8.23. + + +nginx could not be built without the --with-debug option; +the bug had appeared in 0.8.23. + + + + + +параметр "unix:" в директиве set_real_ip_from неправильно наследовался +с предыдущего уровня. + + +the "unix:" parameter of the "set_real_ip_from" directive inherited +incorrectly from previous level. + + + + + +в resolver'е при определении пустого имени. + + +in resolving empty name. + + + + + + + + + + +теперь SSL/TLS renegotiation запрещён.
+Спасибо Максиму Дунину. +
+ +now SSL/TLS renegotiation is disabled.
+Thanks to Maxim Dounin. +
+
+ + + +listen unix domain сокет не наследовался во время обновления без перерыва. + + +listen unix domain socket did not inherit while online upgrade. + + + + + +параметр "unix:" в директиве set_real_ip_from не работал без ещё +одной директивы с любым IP-адресом. + + +the "unix:" parameter of the "set_real_ip_from" directive did not without +yet another directive with any IP address. + + + + + +segmentation fault и зацикливания в resolver'е. + + +segmentation fault and infinite looping in resolver. + + + + + +в resolver'е.
+Спасибо Артёму Бохану. +
+ +in resolver.
+Thanks to Artem Bokhan. +
+
+ +
+ + + + + + +директивы proxy_bind, fastcgi_bind и memcached_bind. + + +the "proxy_bind", "fastcgi_bind", and "memcached_bind" directives. + + + + + +директивы access и deny поддерживают IPv6. + + +the "access" and the "deny" directives support IPv6. + + + + + +директива set_real_ip_from поддерживает IPv6 адреса в заголовках запроса. + + +the "set_real_ip_from" directive supports IPv6 addresses in request headers. + + + + + +параметр "unix:" в директиве set_real_ip_from. + + +the "unix:" parameter of the "set_real_ip_from" directive. + + + + + +nginx не удалял unix domain сокет после тестирования конфигурации. + + +nginx did not delete unix domain socket after configuration testing. + + + + + +nginx удалял unix domain сокет во время обновления без перерыва. + + +nginx deleted unix domain socket while online upgrade. + + + + + +оператор "!-x" не работал.
+Спасибо Максиму Дунину. +
+ +the "!-x" operator did not work.
+Thanks to Maxim Dounin. +
+
+ + + +в рабочем процессе мог произойти segmentation fault +при использовании limit_rate в HTTPS сервере.
+Спасибо Максиму Дунину. +
+ +a segmentation fault might occur in a worker process, +if limit_rate was used in HTTPS server.
+Thanks to Maxim Dounin. +
+
+ + + +при записи в лог переменной $limit_rate +в рабочем процессе происходил segmentation fault.
+Спасибо Максиму Дунину. +
+ +a segmentation fault might occur in a worker process +while $limit_rate logging.
+Thanks to Maxim Dounin. +
+
+ + + +в рабочем процессе мог произойти segmentation fault, +если внутри блока server не было директивы listen; +ошибка появилась в 0.8.21. + + +a segmentation fault might occur in a worker process, +if there was no "listen" directive in "server" block; +the bug had appeared in 0.8.21. + + + +
+ + + + + + +теперь ключ -V показывает статус поддержки TLS SNI. + + +now the "-V" switch shows TLS SNI support. + + + + + +директива listen модуля HTTP поддерживает unix domain сокеты.
+Спасибо Hongli Lai. +
+ +the "listen" directive of the HTTP module supports unix domain sockets.
+Thanks to Hongli Lai. +
+
+ + + +параметр "default_server" в директиве listen. + + +the "default_server" parameter of the "listen" directive. + + + + + +теперь параметр "default" не обязателен для установки параметров listen-сокета. + + +now a "default" parameter is not required to set listen socket options. + + + + + +nginx не поддерживал даты в 2038 году на 32-битных платформах; + + +nginx did not support dates in 2038 year on 32-bit platforms; + + + + + +утечки сокетов; +ошибка появилась в 0.8.11. + + +socket leak; +the bug had appeared in 0.8.11. + + + +
+ + + + + + +теперь по умолчанию используются следующие шифры SSL: "HIGH:!ADH:!MD5". + + +now default SSL ciphers are "HIGH:!ADH:!MD5". + + + + + +модуль ngx_http_autoindex_module не показывал последний слэш для линков +на каталоги; +ошибка появилась в 0.7.15. + + +the ngx_http_autoindex_module did not show the trailing slash in links to +a directory; +the bug had appeared in 0.7.15. + + + + + +nginx не закрывал лог, заданный параметром конфигурации --error-log-path; +ошибка появилась в 0.7.53. + + +nginx did not close a log file set by the --error-log-path configuration option; +the bug had appeared in 0.7.53. + + + + + +nginx не считал запятую разделителем в строке "Cache-Control" в +заголовке ответа бэкенда. + + +nginx did not treat a comma as separator in the "Cache-Control" backend response +header line. + + + + + +nginx/Windows мог не создать временный файл, файл в кэше или файл +с помощью директив proxy/fastcgi_store, если рабочий процесс не имел +достаточно прав для работы с каталогами верхнего уровня. + + +nginx/Windows might not create temporary file, a cache file, or +"proxy/fastcgi_store"d file if a worker had no enough access rights +for top level directories. + + + + + +строки "Set-Cookie" и "P3P" в заголовке ответа FastCGI-сервера не скрывались +при кэшировании, если не использовались директивы fastcgi_hide_header +с любыми параметрами. + + +the "Set-Cookie" and "P3P" FastCGI response header lines were not hidden +while caching if no "fastcgi_hide_header" directives were used with +any parameters. + + + + + +nginx неверно считал размер кэша на диске. + + +nginx counted incorrectly disk cache size. + + + + + + + + + + +теперь протокол SSLv2 по умолчанию запрещён. + + +now SSLv2 protocol is disabled by default. + + + + + +теперь по умолчанию используются следующие шифры SSL: +"ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM". + + +now default SSL ciphers are "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM". + + + + + +директива limit_req не работала; +ошибка появилась в 0.8.18. + + +a "limit_req" directive did not work; +the bug had appeared in 0.8.18. + + + + + + + + + + +директива read_ahead. + + +the "read_ahead" directive. + + + + + +теперь можно использовать несколько директив perl_modules. + + +now several "perl_modules" directives may be used. + + + + + +директивы limit_req_log_level и limit_conn_log_level. + + +the "limit_req_log_level" and "limit_conn_log_level" directives. + + + + + +теперь директива limit_req соответствует алгоритму leaky bucket.
+Спасибо Максиму Дунину. +
+ +now "limit_req" directive conforms to the leaky bucket algorithm.
+Thanks to Maxim Dounin. +
+
+ + + +nginx не работал на Linux/sparc.
+Спасибо Marcus Ramberg. +
+ +nginx did not work on Linux/sparc.
+Thanks to Marcus Ramberg. +
+
+ + + +nginx слал символ '\0' в строке "Location" в заголовке в ответе на запрос +MKCOL.
+Спасибо Xie Zhenye. +
+ +nginx sent '\0' in a "Location" response header line on MKCOL request.
+Thanks to Xie Zhenye. +
+
+ + + +вместо кода ответа 499 в лог записывался код 0; +ошибка появилась в 0.8.11. + + +zero status code was logged instead of 499 status code; +the bug had appeared in 0.8.11. + + + + + +утечки сокетов; +ошибка появилась в 0.8.11. + + +socket leak; +the bug had appeared in 0.8.11. + + + +
+ + + + + + +теперь символы "/../" запрещены в строке "Destination" в заголовке запроса. + + +now "/../" are disabled in "Destination" request header line. + + + + + +теперь значение переменной $host всегда в нижнем регистре. + + +now $host variable value is always low case. + + + + + +переменная $ssl_session_id. + + +the $ssl_session_id variable. + + + + + +утечки сокетов; +ошибка появилась в 0.8.11. + + +socket leak; +the bug had appeared in 0.8.11. + + + + + + + + + + +директива image_filter_transparency. + + +the "image_filter_transparency" directive. + + + + + +директива "addition_types" была неверно названа "addtion_types". + + +"addition_types" directive was incorrectly named "addtion_types". + + + + + +порчи кэша resolver'а.
+Спасибо Matthew Dempsky. +
+ +resolver cache poisoning.
+Thanks to Matthew Dempsky. +
+
+ + + +утечки памяти в resolver'е.
+Спасибо Matthew Dempsky. +
+ +memory leak in resolver.
+Thanks to Matthew Dempsky. +
+
+ + + +неверная строка запроса в переменной $request записывалась в access_log +только при использовании error_log на уровне info или debug. + + +invalid request line in $request variable was written in access_log +only if error_log was set to "info" or "debug" level. + + + + + +в поддержке альфа-канала PNG в модуле ngx_http_image_filter_module. + + +in PNG alpha-channel support in the ngx_http_image_filter_module. + + + + + +nginx всегда добавлял строку "Vary: Accept-Encoding" в заголовок ответа, +если обе директивы gzip_static и gzip_vary были включены. + + +nginx always added "Vary: Accept-Encoding" response header line, +if both "gzip_static" and "gzip_vary" were on. + + + + + +в поддержке кодировки UTF-8 директивой try_files в nginx/Windows. + + +in UTF-8 encoding support by "try_files" directive in nginx/Windows. + + + + + +ошибки при использовании post_action; +ошибка появилась в 0.8.11.
+Спасибо Игорю Артемьеву. +
+ +in "post_action" directive usage; +the bug had appeared in 0.8.11.
+Thanks to Igor Artemiev. +
+
+ +
+ + + + + + +при обработке специально созданного запроса +в рабочем процессе мог произойти segmentation fault.
+Спасибо Chris Ries. +
+ +a segmentation fault might occur in worker process +while specially crafted request handling.
+Thanks to Chris Ries. +
+
+ + + +если были описаны имена .domain.tld, .sub.domain.tld и .domain-some.tld, +то имя .sub.domain.tld попадало под маску .domain.tld. + + +if names .domain.tld, .sub.domain.tld, and .domain-some.tld were defined, +then the name .sub.domain.tld was matched by .domain.tld. + + + + + +в поддержке прозрачности в модуле ngx_http_image_filter_module. + + +in transparency support in the ngx_http_image_filter_module. + + + + + +в файловом AIO. + + +in file AIO. + + + + + +ошибки при использовании X-Accel-Redirect; +ошибка появилась в 0.8.11. + + +in X-Accel-Redirect usage; +the bug had appeared in 0.8.11. + + + + + +ошибки при использовании встроенного перла; +ошибка появилась в 0.8.11. + + +in embedded perl module; +the bug had appeared in 0.8.11. + + + +
+ + + + + + +устаревший закэшированный запрос мог залипнуть в состоянии "UPDATING". + + +an expired cached response might stick in the "UPDATING" state. + + + + + +при использовании error_log на уровне info или debug +в рабочем процессе мог произойти segmentation fault.
+Спасибо Сергею Боченкову. +
+ +a segmentation fault might occur in worker process, +if error_log was set to info or debug level.
+Thanks to Sergey Bochenkov. +
+
+ + + +ошибки при использовании встроенного перла; +ошибка появилась в 0.8.11. + + +in embedded perl module; +the bug had appeared in 0.8.11. + + + + + +директива error_page не перенаправляла ошибку 413; +ошибка появилась в 0.6.10. + + +an "error_page" directive did not redirect a 413 error; +the bug had appeared in 0.6.10. + + + +
+ + + + + + +в директиве "aio sendfile"; +ошибка появилась в 0.8.12. + + +in the "aio sendfile" directive; +the bug had appeared in 0.8.12. + + + + + +nginx не собирался без параметра --with-file-aio на FreeBSD; +ошибка появилась в 0.8.12. + + +nginx could not be built without the --with-file-aio option on FreeBSD; +the bug had appeared in 0.8.12. + + + + + + + + + + +параметр sendfile в директиве aio во FreeBSD. + + +the "sendfile" parameter in the "aio" directive on FreeBSD. + + + + + +ошибки при использовании try_files; +ошибка появилась в 0.8.11. + + +in try_files; +the bug had appeared in 0.8.11. + + + + + +ошибки при использовании memcached; +ошибка появилась в 0.8.11. + + +in memcached; +the bug had appeared in 0.8.11. + + + + + + + + + +теперь директива "gzip_disable msie6" не запрещает сжатие для +MSIE 6.0 SV1. + + +now directive "gzip_disable msie6" does not disable gzipping for +MSIE 6.0 SV1. + + + + + +поддержка файлового AIO во FreeBSD и Linux. + + +file AIO support on FreeBSD and Linux. + + + + + +директива directio_alignment. + + +the "directio_alignment" directive. + + + + + + + + + + +утечек памяти при использовании базы GeoIP City. + + +memory leaks if GeoIP City database was used. + + + + + +ошибки при копировании временных файлов в постоянное место хранения; +ошибка появилась в 0.8.9. + + +in copying temporary files to permanent storage area; +the bug had appeared in 0.8.9. + + + + + + + + + + +теперь стартовый загрузчик кэша работает в отдельном процесс; +это должно улучшить обработку больших кэшей. + + +now the start cache loader runs in a separate process; +this should improve large caches handling. + + + + + +теперь временные файлы и постоянное место хранения могут располагаться +на разных файловых системах. + + +now temporary files and permanent storage area may reside at +different file systems. + + + + + + + + + + +в обработке заголовков ответа, разделённых в FastCGI-записях. + + +in handling FastCGI headers split in records. + + + + + +если запрос обрабатывался в двух проксированных или FastCGI location'ах +и в первом из них использовалось кэширование, +то в рабочем процессе происходил segmentation fault; +ошибка появилась в 0.8.7. + + +a segmentation fault occurred in worker process, +if a request was handled in two proxied or FastCGIed locations +and a caching was enabled in the first location; +the bug had appeared in 0.8.7. + + + + + + + + + + +минимальная поддерживаемая версия OpenSSL—0.9.7. + + +minimum supported OpenSSL version is 0.9.7. + + + + + +параметр ask директивы ssl_verify_client изменён на параметр optional +и теперь он проверяет клиентский сертификат, если он был предложен.
+Спасибо Brice Figureau. +
+ +the "ask" parameter of the "ssl_verify_client" directive was changed +to the "optional" parameter and now it checks a client certificate if it was +offered.
+Thanks to Brice Figureau. +
+
+ + + +переменная $ssl_client_verify.
+Спасибо Brice Figureau. +
+ +the $ssl_client_verify variable.
+Thanks to Brice Figureau. +
+
+ + + +директива ssl_crl.
+Спасибо Brice Figureau. +
+ +the "ssl_crl" directive.
+Thanks to Brice Figureau. +
+
+ + + +параметр proxy директивы geo. + + +the "proxy" parameter of the "geo" directive. + + + + + +директива image_filter поддерживает переменные для задания размеров. + + +the "image_filter" directive supports variables for setting size. + + + + + +использование переменной $ssl_client_cert портило память; +ошибка появилась в 0.7.7.
+Спасибо Сергею Журавлёву. +
+ +the $ssl_client_cert variable usage corrupted memory; +the bug had appeared in 0.7.7.
+Thanks to Sergey Zhuravlev. +
+
+ + + +директивы proxy_pass_header и fastcgi_pass_header" не передавали клиенту +строки "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering" и +"X-Accel-Charset" из заголовка ответа бэкенда.
+Спасибо Максиму Дунину. +
+ +"proxy_pass_header" and "fastcgi_pass_header" directives did not pass to +a client the "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering", +and "X-Accel-Charset" lines from backend response header.
+Thanks to Maxim Dounin. +
+
+ + + +в обработке строк "Last-Modified" и "Accept-Ranges" в заголовке ответа бэкенда; +ошибка появилась в 0.7.44.
+Спасибо Максиму Дунину. +
+ +in handling "Last-Modified" and "Accept-Ranges" backend response header lines; +the bug had appeared in 0.7.44.
+Thanks to Maxim Dounin. +
+
+ + + +ошибки "[alert] zero size buf" при получении пустых ответы в подзапросах; +ошибка появилась в 0.8.5. + + +the "[alert] zero size buf" error if subrequest returns an empty response; +the bug had appeared in 0.8.5. + + + +
+ + + + + + +модуль ngx_http_geoip_module. + + +the ngx_http_geoip_module. + + + + + +XSLT-фильтр мог выдавать ошибку "not well formed XML document" для +правильного документа.
+Спасибо Kuramoto Eiji. +
+ +XSLT filter may fail with message "not well formed XML document" +for valid XML document.
+Thanks to Kuramoto Eiji. +
+
+ + + +в MacOSX, Cygwin и nginx/Windows при проверке location'ов, заданных +регулярным выражением, теперь всегда делается сравнение без учёта +регистра символов. + + +now in MacOSX, Cygwin, and nginx/Windows locations given by a regular +expression are always tested in case insensitive mode. + + + + + +теперь nginx/Windows игнорирует точки в конце URI.
+Спасибо Hugo Leisink. +
+ +now nginx/Windows ignores trailing dots in URI.
+Thanks to Hugo Leisink. +
+
+ + + +имя файла указанного в --conf-path игнорировалось при установке; +ошибка появилась в 0.6.6.
+Спасибо Максиму Дунину. +
+ +name of file specified in --conf-path was not honored during installation; +the bug had appeared in 0.6.6.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +теперь nginx разрешает подчёркивания в методе запроса. + + +now nginx allows underscores in a request method. + + + + + +при использовании HTTP Basic-аутентификации на Windows +для неверных имени/пароля возвращалась 500-ая ошибка. + + +a 500 error code was returned for invalid login/password while HTTP +Basic authentication on Windows. + + + + + +ответы модуля ngx_http_perl_module не работали в подзапросах. + + +ngx_http_perl_module responses did not work in subrequests. + + + + + +в модуле ngx_http_limit_req_module.
+Спасибо Максиму Дунину. +
+ +in ngx_http_limit_req_module.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +nginx не собирался с параметром --without-http-cache; +ошибка появилась в 0.8.3. + + +nginx could not be built --without-http-cache; +the bug had appeared in 0.8.3. + + + + + + + + + + +переменная $upstream_cache_status. + + +the $upstream_cache_status variable. + + + + + +nginx не собирался на MacOSX 10.6. + + +nginx could not be built on MacOSX 10.6. + + + + + +nginx не собирался с параметром --without-http-cache; +ошибка появилась в 0.8.2. + + +nginx could not be built --without-http-cache; +the bug had appeared in 0.8.2. + + + + + +если использовался перехват 401 ошибки от бэкенда и бэкенд +не возвращал строку "WWW-Authenticate" в заголовке ответа, +то в рабочем процессе происходил segmentation fault.
+Спасибо Евгению Мычло. +
+ +a segmentation fault occurred in worker process, +if a backend 401 error was intercepted and the backend did not set +the "WWW-Authenticate" response header line.
+Thanks to Eugene Mychlo. +
+
+ +
+ + + + + + +во взаимодействии open_file_cache и proxy/fastcgi кэша на старте. + + +in open_file_cache and proxy/fastcgi cache interaction on start up. + + + + + +open_file_cache мог кэшировать открытые файлы очень долго; +ошибка появилась в 0.7.4. + + +open_file_cache might cache open file descriptors too long; +the bug had appeared in 0.7.4. + + + + + + + + + + +параметр updating в директивах proxy_cache_use_stale и fastcgi_cache_use_stale. + + +the "updating" parameter in "proxy_cache_use_stale" and +"fastcgi_cache_use_stale" directives. + + + + + +строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса +клиента передавались бэкенду при кэшировании, если не использовалась +директива proxy_set_header с любыми параметрами. + + +the "If-Modified-Since", "If-Range", etc. client request header lines +were passed to backend while caching if no "proxy_set_header" directive +was used with any parameters. + + + + + +строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда не скрывались +при кэшировании, если не использовались директивы +proxy_hide_header/fastcgi_hide_header с любыми параметрами. + + +the "Set-Cookie" and "P3P" response header lines were not hidden while caching +if no "proxy_hide_header/fastcgi_hide_header" directives were used with +any parameters. + + + + + +модуль ngx_http_image_filter_module не понимал формат GIF87a.
+Спасибо Денису Ильиных. +
+ +the ngx_http_image_filter_module did not support GIF87a format.
+Thanks to Denis Ilyinyh. +
+
+ + + +nginx не собирался на Solaris 10 и более ранних; +ошибка появилась в 0.7.56. + + +nginx could not be built modules on Solaris 10 and early; +the bug had appeared in 0.7.56. + + + +
+ + + + + + +директива keepalive_requests. + + +the "keepalive_requests" directive. + + + + + +директива limit_rate_after.
+Спасибо Ivan Debnar. +
+ +the "limit_rate_after" directive.
+Thanks to Ivan Debnar. +
+
+ + + +XSLT-фильтр не работал в подзапросах. + + +XLST filter did not work in subrequests. + + + + + +обработке относительных путей в nginx/Windows. + + +in relative paths handling in nginx/Windows. + + + + + +в proxy_store, fastcgi_store, proxy_cache и fastcgi_cache в nginx/Windows. + + +in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache in nginx/Windows. + + + + + +в обработке ошибок выделения памяти.
+Спасибо Максиму Дунину и Кириллу Коринскому. +
+ +in memory allocation error handling.
+Thanks to Maxim Dounin and Kirill A. Korinskiy. +
+
+ +
+ + + + + + +директивы proxy_cache_methods и fastcgi_cache_methods. + + +the "proxy_cache_methods" and "fastcgi_cache_methods" directives. + + + + + +утечки сокетов; +ошибка появилась в 0.7.25.
+Спасибо Максиму Дунину. +
+ +socket leak; +the bug had appeared in 0.7.25.
+Thanks to Maxim Dounin. +
+
+ + + +при использовании переменной $request_body +в рабочем процессе происходил segmentation fault, +если в запросе не было тела; +ошибка появилась в 0.7.58. + + +a segmentation fault occurred in worker process, +if a request had no body and the $request_body +variable was used;
+the bug had appeared in 0.7.58. +
+
+ + + +SSL-модули могли не собираться на Solaris и Linux; +ошибка появилась в 0.7.56. + + +the SSL modules might not built on Solaris and Linux;
+the bug had appeared in 0.7.56. +
+
+ + + +ответы модуля ngx_http_xslt_filter_module не обрабатывались +SSI-, charset- и gzip-фильтрами. + + +ngx_http_xslt_filter_module responses were not handled by SSI, charset, +and gzip filters. + + + + + +директива charset не ставила кодировку для ответов модуля +ngx_http_gzip_static_module. + + +a "charset" directive did not set a charset to ngx_http_gzip_static_module +responses. + + + +
+ + + + + + +директива listen почтового прокси-сервера поддерживает IPv6. + + +a "listen" directive of the mail proxy module supports IPv6. + + + + + +директива image_filter_jpeg_quality. + + +the "image_filter_jpeg_quality" directive. + + + + + +директива client_body_in_single_buffer. + + +the "client_body_in_single_buffer" directive. + + + + + +переменная $request_body. + + +the $request_body variable. + + + + + +в модуле ngx_http_autoindex_module в ссылках на имена файлов, +содержащих символ ":". + + +in ngx_http_autoindex_module in file name links +having a ":" symbol in the name. + + + + + +процедура "make upgrade" не работала; +ошибка появилась в 0.7.53.
+Спасибо Денису Латыпову. +
+ +"make upgrade" procedure did not work; +the bug had appeared in 0.7.53.
+Thanks to Denis F. Latypoff. +
+
+ +
+ + + + + + +при перенаправлении ошибок модуля ngx_http_image_filter_module +в именованный location в рабочем процессе происходил floating-point fault; +ошибка появилась в 0.7.56. + + +a floating-point fault occurred in worker process, +if the ngx_http_image_filter_module errors were redirected to named location; +the bug had appeared in 0.7.56. + + + + + + + + + + +nginx/Windows поддерживает IPv6 в директиве listen модуля HTTP. + + +nginx/Windows supports IPv6 in a "listen" directive of the HTTP module. + + + + + +в модуле ngx_http_image_filter_module. + + +in ngx_http_image_filter_module. + + + + + + + + + + +параметры http_XXX в директивах proxy_cache_use_stale +и fastcgi_cache_use_stale не работали. + + +the http_XXX parameters in "proxy_cache_use_stale" and +"fastcgi_cache_use_stale" directives did not work. + + + + + +fastcgi кэш не кэшировал ответы, состоящие только из заголовка. + + +fastcgi cache did not cache header only responses. + + + + + +ошибки "select() failed (9: Bad file descriptor)" в nginx/Unix +и "select() failed (10038: ...)" в nginx/Windows. + + +of "select() failed (9: Bad file descriptor)" error in nginx/Unix +and "select() failed (10038: ...)" error in nginx/Windows. + + + + + +при использовании директивы debug_connection +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.7.54. + + +a segmentation fault might occur in worker process, +if an "debug_connection" directive was used; +the bug had appeared in 0.7.54. + + + + + +в сборке модуля ngx_http_image_filter_module. + + +fix ngx_http_image_filter_module building errors. + + + + + +файлы больше 2G не передавались с использованием $r->sendfile.
+Спасибо Максиму Дунину. +
+ +the files bigger than 2G could not be transferred using $r->sendfile.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +модуль ngx_http_image_filter_module. + + +the ngx_http_image_filter_module. + + + + + +директивы proxy_ignore_headers и fastcgi_ignore_headers. + + +the "proxy_ignore_headers" and "fastcgi_ignore_headers" directives. + + + + + +при использовании переменных "open_file_cache_errors on" +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.7.53. + + +a segmentation fault might occur in worker process, +if an "open_file_cache_errors off" directive was used; +the bug had appeared in 0.7.53. + + + + + +директива "port_in_redirect off" не работала; +ошибка появилась в 0.7.39. + + +the "port_in_redirect off" directive did not work; +the bug had appeared in 0.7.39. + + + + + +улучшение обработки ошибок метода select. + + +improve handling of "select" method errors. + + + + + +ошибки "select() failed (10022: ...)" в nginx/Windows. + + +of "select() failed (10022: ...)" error in nginx/Windows. + + + + + +в текстовых сообщениях об ошибках в nginx/Windows; +ошибка появилась в 0.7.53. + + +in error text descriptions in nginx/Windows; +the bug had appeared in 0.7.53. + + + + + + + + + + +теперь лог, указанный в --error-log-path, создаётся с самого начала работы. + + +now a log set by --error-log-path is created from the very start-up. + + + + + +теперь ошибки и предупреждения при старте записываются в error_log +и выводятся на stderr. + + +now the start up errors and warnings are outputted to an error_log and stderr. + + + + + +при сборке с пустым параметром --prefix= nginx использует как префикс каталог, +в котором он был запущен. + + +the empty --prefix= configure parameter forces nginx to use a directory +where it was run as prefix. + + + + + +ключ -p. + + +the -p switch. + + + + + +ключ -s на Unix-платформах. + + +the -s switch on Unix platforms. + + + + + +ключи -? и -h.
+Спасибо Jerome Loyet. +
+ +the -? and -h switches.
+Thanks to Jerome Loyet. +
+
+ + + +теперь ключи можно задавать в сжатой форме. + + +now switches may be set in condensed form. + + + + + +nginx/Windows не работал, если файл конфигурации был задан ключом -c. + + +nginx/Windows did not work if configuration file was given by the -c switch. + + + + + +при использовании директив proxy_store, fastcgi_store, +proxy_cache или fastcgi_cache временные файлы могли не удаляться.
+Спасибо Максиму Дунину. +
+ +temporary files might be not removed if the "proxy_store", "fastcgi_store", +"proxy_cache", or "fastcgi_cache" were used.
+Thanks to Maxim Dounin. +
+
+ + + +в заголовке Auth-Method запроса серверу аутентификации почтового +прокси-сервера передавалось неверное значение; +ошибка появилась в 0.7.34.
+Спасибо Simon Lecaille. +
+ +an incorrect value was passed to mail proxy authentication server +in "Auth-Method" header line; +the bug had appeared
+in 0.7.34.
+Thanks to Simon Lecaille. +
+
+ + + +при логгировании на Linux не писались текстовые описания системных ошибок; +ошибка появилась в 0.7.45. + + +system error text descriptions were not logged on Linux;
+the bug had appeared in 0.7.45. +
+
+ + + +директива fastcgi_cache_min_uses не работала.
+Спасибо Андрею Воробьёву. +
+ +the "fastcgi_cache_min_uses" directive did not work.
+Thanks to Andrew Vorobyoff. +
+
+ +
+ + + + + + +первая бинарная версия под Windows. + + +the first native Windows binary release. + + + + + +корректная обработка метода HEAD при кэшировании. + + +in processing HEAD method while caching. + + + + + +корректная обработка строк "If-Modified-Since", "If-Range" и им подобных +в заголовке запроса клиента при кэшировании. + + +in processing the "If-Modified-Since", "If-Range", etc. client request +header lines while caching. + + + + + +теперь строки "Set-Cookie" и "P3P" скрываются в заголовке ответа +для закэшированных ответов. + + +now the "Set-Cookie" and "P3P" header lines are hidden in cacheable responses. + + + + + +если nginx был собран с модулем ngx_http_perl_module и perl +поддерживал потоки, то при выходе основного процесса +могла выдаваться ошибка "panic: MUTEX_LOCK". + + +if nginx was built with the ngx_http_perl_module and with a perl which +supports threads, then during a master process exit +the message "panic: MUTEX_LOCK" might be issued. + + + + + +nginx не собирался с параметром --without-http-cache; +ошибка появилась в 0.7.48. + + +nginx could not be built --without-http-cache; +the bug had appeared in 0.7.48. + + + + + +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.7.42. + + +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.7.42. + + + + + + + + + + +директива try_files поддерживает код ответа в последнем параметре. + + +the "try_files" directive supports a response code in the fallback parameter. + + + + + +теперь в директиве return можно использовать любой код ответа. + + +now any response code can be used in the "return" directive. + + + + + +директива error_page делала внешний редирект без строки запроса; +ошибка появилась в 0.7.44. + + +the "error_page" directive made an external redirect without query string; +the bug had appeared in 0.7.44. + + + + + +если сервера слушали на нескольких явно описанных адресах, +то виртуальные сервера могли не работать; +ошибка появилась в 0.7.39. + + +if servers listened on several defined explicitly addresses, +then virtual servers might not work; +the bug had appeared in 0.7.39. + + + + + + + + + + +переменные $arg_... не работали; +ошибка появилась в 0.7.49. + + +the $arg_... variables did not work; +the bug had appeared in 0.7.49. + + + + + + + + + + +при использовании переменных $arg_... +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.7.48. + + +a segmentation fault might occur in worker process, +if the $arg_... variables were used; +the bug had appeared in 0.7.48. + + + + + + + + + + +директива proxy_cache_key. + + +the "proxy_cache_key" directive. + + + + + +теперь nginx учитывает при кэшировании строки "X-Accel-Expires", +"Expires" и "Cache-Control" в заголовке ответа бэкенда. + + +now nginx takes into account the "X-Accel-Expires", "Expires", and +"Cache-Control" header lines in a backend response. + + + + + +теперь nginx кэширует только ответы на запросы GET. + + +now nginx caches responses for the GET requests only. + + + + + +директива fastcgi_cache_key не наследовалась. + + +the "fastcgi_cache_key" directive was not inherited. + + + + + +переменные $arg_... не работали с SSI-подзапросами.
+Спасибо Максиму Дунину. +
+ +the $arg_... variables did not work with SSI subrequests.
+Thanks to Maxim Dounin. +
+
+ + + +nginx не собирался с библиотекой uclibc.
+Спасибо Timothy Redaelli. +
+ +nginx could not be built with uclibc library.
+Thanks to Timothy Redaelli. +
+
+ + + +nginx не собирался на OpenBSD; +ошибка появилась в 0.7.46. + + +nginx could not be built on OpenBSD; +the bug had appeared in 0.7.46. + + + +
+ + + + + + +nginx не собирался на FreeBSD 6 и более ранних версиях; +ошибка появилась в 0.7.46. + + +nginx could not be built on FreeBSD 6 and early versions; +the bug had appeared in 0.7.46. + + + + + +nginx не собирался на MacOSX; +ошибка появилась в 0.7.46. + + +nginx could not be built on MacOSX; +the bug had appeared in 0.7.46. + + + + + +если использовался параметр max_size, то cache manager мог удалить весь кэш; +ошибка появилась в 0.7.46. + + +if the "max_size" parameter was set, then the cache manager might purge +a whole cache; +the bug had appeared in 0.7.46. + + + + + +в рабочем процессе мог произойти segmentation fault, +если директивы proxy_cache/fastcgi_cache +и proxy_cache_valid/ fastcgi_cache_valid не были заданы на одном уровне; +ошибка появилась в 0.7.46. + + +a segmentation fault might occur in worker process, +if the "proxy_cache"/"fastcgi_cache" and +the "proxy_cache_valid"/ "fastcgi_cache_valid" were set on different levels; +the bug had appeared in 0.7.46. + + + + + +в рабочем процессе мог произойти segmentation fault +при перенаправлении запроса проксированному или FastCGI-серверу +с помощью error_page или try_files; +ошибка появилась в 0.7.44. + + +a segmentation fault might occur in worker process, +if a request was redirected to a proxied or FastCGI server via +error_page or try_files; +the bug had appeared in 0.7.44. + + + + + + + + + + +архив предыдущего релиза был неверным. + + +the previous release tarball was incorrect. + + + + + + + + + + +теперь директивы proxy_cache и proxy_cache_valid можно задавать +на разных уровнях. + + +now the "proxy_cache" and the "proxy_cache_valid" directives can be set on +different levels. + + + + + +параметр clean_time в директиве proxy_cache_path удалён. + + +the "clean_time" parameter of the "proxy_cache_path" directive is canceled. + + + + + +параметр max_size в директиве proxy_cache_path. + + +the "max_size" parameter of the "proxy_cache_path" directive. + + + + + +предварительная поддержка кэширования в модуле ngx_http_fastcgi_module. + + +the ngx_http_fastcgi_module preliminary cache support. + + + + + +теперь при ошибках выделения в разделяемой памяти в логе указываются +названия директивы и зоны. + + +now on shared memory allocation errors directive and zone names are logged. + + + + + +директива "add_header last-modified ''" не удаляла в заголовке ответа +строку "Last-Modified"; +ошибка появилась в 0.7.44. + + +the directive "add_header last-modified ''" did not delete a "Last-Modified" +response header line; +the bug had appeared in 0.7.44. + + + + + +в директиве auth_basic_user_file не работал относительный путь, +заданный строкой без переменных; +ошибка появилась в 0.7.44.
+Спасибо Jerome Loyet. +
+ +a relative path in the "auth_basic_user_file" directive given without variables +did not work; +the bug had appeared in 0.7.44.
+Thanks to Jerome Loyet. +
+
+ + + +в директиве alias, заданной переменными +без ссылок на выделения в регулярных выражениях; +ошибка появилась в 0.7.42. + + +in an "alias" directive given using variables +without references to captures of regular expressions; +the bug had appeared in 0.7.42. + + + +
+ + + + + + +предварительная поддержка кэширования в модуле ngx_http_proxy_module. + + +the ngx_http_proxy_module preliminary cache support. + + + + + +параметр --with-pcre в configure. + + +the --with-pcre option in the configure. + + + + + +теперь директива try_files может быть использована на уровне server. + + +the "try_files" directive is now allowed on the server block level. + + + + + +директива try_files неправильно обрабатывала строку запроса в последнем +параметре. + + +the "try_files" directive handled incorrectly a query string +in a fallback parameter. + + + + + +директива try_files могла неверно тестировать каталоги. + + +the "try_files" directive might test incorrectly directories. + + + + + +если для пары адрес:порт описан только один сервер, то выделения +в регулярных выражениях в директиве server_name не работали. + + +if there was a single server for given address:port pair, +then captures in regular expressions in a "server_name" directive did not work. + + + + + + + + + + +запрос обрабатывался неверно, если директива root использовала переменные; +ошибка появилась в 0.7.42. + + +a request was handled incorrectly, if a "root" directive used variables; +the bug had appeared in 0.7.42. + + + + + +если сервер слушал на адресах типа "*", то значение переменной $server_addr +было "0.0.0.0"; +ошибка появилась в 0.7.36. + + +if a server listened on wildcard address, then the $server_addr variable +value was "0.0.0.0"; +the bug had appeared in 0.7.36. + + + + + + + + + + +ошибка "Invalid argument", возвращаемая setsockopt(TCP_NODELAY) на Solaris, +теперь игнорируется. + + +now the "Invalid argument" error returned by setsockopt(TCP_NODELAY) on Solaris, +is ignored. + + + + + +при отсутствии файла, указанного в директиве auth_basic_user_file, +теперь возвращается ошибка 403 вместо 500. + + +now if a file specified in a "auth_basic_user_file" directive is absent, +then the 403 error is returned instead of the 500 one. + + + + + +директива auth_basic_user_file поддерживает переменные. +
+Спасибо Кириллу Коринскому. +
+ +the "auth_basic_user_file" directive supports variables.
+Thanks to Kirill A. Korinskiy. +
+
+ + + +директива listen поддерживает параметр ipv6only.
+Спасибо Zhang Hua. +
+ +the "listen" directive supports the "ipv6only" parameter. +
+Thanks to Zhang Hua. +
+
+ + + +в директиве alias со ссылками на выделения в регулярных выражениях; +ошибка появилась в 0.7.40. + + +in an "alias" directive with references to captures of regular expressions; +the bug had appeared in 0.7.40. + + + + + +совместимость с Tru64 UNIX.
+Спасибо Dustin Marquess. +
+ +compatibility with Tru64 UNIX.
+Thanks to Dustin Marquess. +
+
+ + + +nginx не собирался без библиотеки PCRE; +ошибка появилась в 0.7.41. + + +nginx could not be built without PCRE library; +the bug had appeared in 0.7.41. + + + +
+ + + + + + +в рабочем процессе мог произойти segmentation fault, +если в server_name или location были выделения в регулярных выражениях; +ошибка появилась в 0.7.40.
+Спасибо Владимиру Сопоту. +
+ +a segmentation fault might occur in worker process, +if a "server_name" or a "location" directives had captures +in regular expressions; +the issue had appeared in 0.7.40.
+Thanks to Vladimir Sopot. +
+
+ +
+ + + + + + +директива location поддерживает выделения в регулярных выражениях. + + +the "location" directive supports captures in regular expressions. + + + + + +директиву alias с ссылками на выделения в регулярных выражениях +можно использовать внутри location'а, заданного регулярным выражением +с выделениями. + + +an "alias" directive with capture references may be used inside +a location given by a regular expression with captures. + + + + + +директива server_name поддерживает выделения в регулярных выражениях. + + +the "server_name" directive supports captures in regular expressions. + + + + + +модуль ngx_http_autoindex_module не показывал последний слэш для каталогов +на файловой системе XFS; +ошибка появилась в 0.7.15.
+Спасибо Дмитрию Кузьменко. +
+ +the ngx_http_autoindex_module did not show the trailing slash in directories +on XFS filesystem; +the issue had appeared in 0.7.15.
+Thanks to Dmitry Kuzmenko. +
+
+ +
+ + + + + + +при включённом сжатии большие ответы с использованием SSI могли зависать; +ошибка появилась в 0.7.28.
+Спасибо Артёму Бохану. +
+ +large response with SSI might hang, if gzipping was enabled; +the bug had appeared in 0.7.28.
+Thanks to Artem Bokhan. +
+
+ + + +при использовании коротких статических вариантов в директиве try_files +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process, +if short static variants are used in a "try_files" directive. + + + +
+ + + + + + +логгирование ошибок аутентификации. + + +authentication failures logging. + + + + + +имя/пароль, заданные в auth_basic_user_file, игнорировались после нечётного +числа пустых строк.
+Спасибо Александру Загребину. +
+ +name/password in auth_basic_user_file were ignored after odd number +of empty lines.
+Thanks to Alexander Zagrebin. +
+
+ + + +при использовании длинного пути в unix domain сокете +в главном процессе происходил segmentation fault; +ошибка появилась в 0.7.36. + + +a segmentation fault occurred in a master process, +if long path was used in unix domain socket; +the bug had appeared in 0.7.36. + + + +
+ + + + + + +директивы, использующие upstream'ы, не работали; +ошибка появилась в 0.7.36. + + +directives using upstreams did not work; +the bug had appeared in 0.7.36. + + + + + + + + + + +предварительная поддержка IPv6; +директива listen модуля HTTP поддерживает IPv6. + + +a preliminary IPv6 support; +the "listen" directive of the HTTP module supports IPv6. + + + + + +переменная $ancient_browser не работала для браузеров, заданных +директивами modern_browser. + + +the $ancient_browser variable did not work for browsers +preset by a "modern_browser" directives. + + + + + + + + + + +директива ssl_engine не использовала SSL-акселератор +для асимметричных шифров.
+Спасибо Marcin Gozdalik. +
+ +a "ssl_engine" directive did not use a SSL-accelerator +for asymmetric ciphers.
+Thanks to Marcin Gozdalik. +
+
+ + + +директива try_files выставляла MIME-type, исходя из расширения +первоначального запроса. + + +a "try_files" directive set MIME type depending on an +original request extension. + + + + + +в директивах server_name, valid_referers и map +неправильно обрабатывались имена вида "*domain.tld", +если использовались маски вида ".domain.tld" и ".subdomain.domain.tld"; +ошибка появилась в 0.7.9. + + +"*domain.tld" names were handled incorrectly in +"server_name", "valid_referers", and "map" directives, +if ".domain.tld" and ".subdomain.domain.tld" wildcards were used; +the bug had appeared in 0.7.9. + + + +
+ + + + + + +параметр off в директиве if_modified_since. + + +the "off" parameter of the "if_modified_since" directive. + + + + + +теперь после команды XCLIENT nginx посылает команду HELO/EHLO.
+Спасибо Максиму Дунину. +
+ +now nginx sends an HELO/EHLO command after a XCLIENT command.
+Thanks to Maxim Dounin. +
+
+ + + +поддержка Microsoft-специфичного режима +"AUTH LOGIN with User Name" +в почтовом прокси-сервере.
+Спасибо Максиму Дунину. +
+ +Microsoft specific "AUTH LOGIN with User Name" mode support +in mail proxy server.
+Thanks to Maxim Dounin. +
+
+ + + +в директиве rewrite, возвращающей редирект, старые аргументы присоединялись +к новым через символ "?" вместо "&";
+ошибка появилась в 0.1.18.
+Спасибо Максиму Дунину. +
+ +in a redirect rewrite directive original arguments were concatenated with +new arguments by a "?" rather than an "&";
+the bug had appeared in 0.1.18.
+Thanks to Maxim Dounin. +
+
+ + + +nginx не собирался на AIX. + + +nginx could not be built on AIX. + + + +
+ + + + + + +если на запрос с телом возвращался редирект, то ответ мог быть двойным +при использовании методов epoll или rtsig.
+Спасибо Eden Li. +
+ +a double response might be returned if the epoll or rtsig methods are used +and a redirect was returned to a request with body.
+Thanks to Eden Li. +
+
+ + + +для некоторых типов редиректов в переменной $sent_http_location +было пустое значение. + + +the $sent_http_location variable was empty for some redirects types. + + + + + +при использовании директивы resolver в SMTP прокси-сервере +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process +if "resolver" directive was used in SMTP proxy. + + + +
+ + + + + + +теперь в директиве try_files можно явно указать проверку каталога. + + +now a directory existence testing can be set explicitly +in the "try_files" directive. + + + + + +fastcgi_store не всегда сохранял файлы. + + +fastcgi_store stored files not always. + + + + + +в гео-диапазонах. + + +in geo ranges. + + + + + +ошибки выделения больших блоков в разделяемой памяти, +если nginx был собран без отладки.
+Спасибо Андрею Квасову. +
+ +in shared memory allocations if nginx was built without debugging.
+Thanks to Andrey Kvasov. +
+
+ +
+ + + + + + +теперь директива try_files проверяет только файлы, игнорируя каталоги. + + +now the "try_files" directive tests files only and ignores directories. + + + + + +директива fastcgi_split_path_info. + + +the "fastcgi_split_path_info" directive. + + + + + +Исправления в поддержке строки "Expect" в заголовке запроса. + + +Bugfixes in an "Expect" request header line support. + + + + + +Исправления в гео-диапазонах. + + +Bugfixes in geo ranges. + + + + + +при отсутствии ответа ngx_http_memcached_module возвращал +в теле ответа строку "END" вместо 404-ой страницы по умолчанию; +ошибка появилась в 0.7.18.
+Спасибо Максиму Дунину. +
+ +in a miss case ngx_http_memcached_module returned the "END" line +as response body instead of default 404 page body; +the bug had appeared in 0.7.18.
+Thanks to Maxim Dounin. +
+
+ + + +при проксировании SMTP nginx выдавал сообщение +"250 2.0.0 OK" вместо "235 2.0.0 OK"; +ошибка появилась в 0.7.22.
+Спасибо Максиму Дунину. +
+ +while SMTP proxying nginx issued message +"250 2.0.0 OK" instead of "235 2.0.0 OK"; +the bug had appeared in 0.7.22.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + + +в рабочем процессе происходил segmentation fault, +если в директивах fastcgi_pass или proxy_pass +использовались переменные и имя хоста должно было резолвиться; +ошибка появилась в 0.7.29. + + +a segmentation fault occurred in worker process, +if variables were used in the "fastcgi_pass" or "proxy_pass" directives +and host name must be resolved; +the bug had appeared in 0.7.29. + + + + + + + + + + +директивы fastcgi_pass и proxy_pass не поддерживали переменные +при использовании unix domain сокетов. + + +the "fastcgi_pass" and "proxy_pass" directives did not support +variables if unix domain sockets were used. + + + + + +Исправления в обработке подзапросов; +ошибки появились в 0.7.25. + + +Bugfixes in subrequest processing; +the bugs had appeared in 0.7.25. + + + + + +ответ "100 Continue" выдавался для запросов версии HTTP/1.0;
+Спасибо Максиму Дунину. +
+ +a "100 Continue" response was issued for HTTP/1.0 requests;
+Thanks to Maxim Dounin. +
+
+ + + +в выделении памяти в модуле ngx_http_gzip_filter_module под Cygwin. + + +in memory allocation in the ngx_http_gzip_filter_module on Cygwin. + + + +
+ + + + + + +в выделении памяти в модуле ngx_http_gzip_filter_module. + + +in memory allocation in the ngx_http_gzip_filter_module. + + + + + +значения по умолчанию для директивы gzip_buffers изменены с 4 4k/8k +на 32 4k или 16 8k. + + +the default "gzip_buffers" directive values have been changed +to 32 4k or 16 8k from 4 4k/8k. + + + + + + + + + + +директива try_files. + + +the "try_files" directive. + + + + + +директива fastcgi_pass поддерживает переменные. + + +variables support in the "fastcgi_pass" directive. + + + + + +теперь директива geo может брать адрес из переменной.
+Спасибо Андрею Нигматулину. +
+ +now the $geo variable may get an address from a variable.
+Thanks to Andrei Nigmatulin. +
+
+ + + +теперь модификатор location'а можно указывать без пробела перед названием. + + +now a location's modifier may be used without space before name. + + + + + +переменная $upstream_response_length. + + +the $upstream_response_length variable. + + + + + +теперь директива add_header не добавляет пустое значение. + + +now a "add_header" directive does not add an empty value. + + + + + +при запросе файла нулевой длины nginx закрывал соединение, ничего не передав; +ошибка появилась в 0.7.25. + + +if zero length static file was requested, then nginx just closed connection; +the bug had appeared in 0.7.25. + + + + + +метод MOVE не мог перемещать файл в несуществующий каталог. + + +a MOVE method could not move file in non-existent directory. + + + + + +если в сервере не был описан ни один именованный location, +но такой location использовался в директиве error_page, +то в рабочем процессе происходил segmentation fault.
+Спасибо Сергею Боченкову. +
+ +a segmentation fault occurred in worker process, +if no one named location was defined in server, +but some one was used in an error_page directive.
+Thanks to Sergey Bochenkov. +
+
+ +
+ + + + + + +в обработке подзапросов; +ошибка появилась в 0.7.25. + + +in subrequest processing; +the bug had appeared in 0.7.25. + + + + + + + + + + +в обработке подзапросов. + + +in subrequest processing. + + + + + +теперь разрешаются POST'ы без строки "Content-Length" в заголовке запроса. + + +now POSTs without "Content-Length" header line are allowed. + + + + + +теперь директивы limit_req и limit_conn указывают причину запрета запроса. + + +now the "limit_req" and "limit_conn" directives log a prohibition reason. + + + + + +в параметре delete директивы geo. + + +in the "delete" parameter of the "geo" directive. + + + + + + + + + + +директива if_modified_since. + + +the "if_modified_since" directive. + + + + + +nginx не обрабатывал ответ FastCGI-сервера, +если перед ответом сервер передавал много сообщений в stderr. + + +nginx did not process a FastCGI server response, +if the server send too many messages to stderr before response. + + + + + +переменные "$cookie_..." не работали в SSI and в перловом модуле. + + +the "$cookie_..." variables did not work in the SSI and the perl module. + + + + + + + + + + +параметры delete и ranges в директиве geo. + + +the "delete" and "ranges" parameters in the "geo" directive. + + + + + +ускорение загрузки geo-базы с большим числом значений. + + +speeding up loading of geo base with large number of values. + + + + + +уменьшение памяти, необходимой для загрузки geo-базы. + + +decrease of memory required for geo base load. + + + + + + + + + + +параметр none в директиве smtp_auth.
+Спасибо Максиму Дунину. +
+ +the "none" parameter in the "smtp_auth" directive.
+Thanks to Maxim Dounin. +
+
+ + + +переменные "$cookie_...". + + +the "$cookie_..." variables. + + + + + +директива directio не работала с файловой системой XFS. + + +the "directio" directive did not work in XFS filesystem. + + + + + +resolver не понимал большие DNS-ответы.
+Спасибо Zyb. +
+ +the resolver did not understand big DNS responses.
+Thanks to Zyb. +
+
+ +
+ + + + + + +Изменения в модуле ngx_http_limit_req_module. + + +Changes in the ngx_http_limit_req_module. + + + + + +поддержка EXSLT в модуле ngx_http_xslt_module.
+Спасибо Денису Латыпову. +
+ +the EXSLT support in the ngx_http_xslt_module.
+Thanks to Denis F. Latypoff. +
+
+ + + +совместимость с glibc 2.3.
+Спасибо Eric Benson и Максиму Дунину. +
+ +compatibility with glibc 2.3.
+Thanks to Eric Benson and Maxim Dounin. +
+
+ + + +nginx не запускался на MacOSX 10.4 и более ранних; +ошибка появилась в 0.7.6. + + +nginx could not run on MacOSX 10.4 and earlier; +the bug had appeared in 0.7.6. + + + +
+ + + + + + +Изменения в модуле ngx_http_gzip_filter_module. + + +Changes in the ngx_http_gzip_filter_module. + + + + + +модуль ngx_http_limit_req_module. + + +the ngx_http_limit_req_module. + + + + + +на платформах sparc и ppc рабочие процессы могли выходить по сигналу SIGBUS; +ошибка появилась в 0.7.3.
+Спасибо Максиму Дунину. +
+ +worker processes might exit on a SIGBUS signal on sparc and ppc platforms; +the bug had appeared in 0.7.3.
+Thanks to Maxim Dounin. +
+
+ + + +директивы вида "proxy_pass http://host/some:uri" не работали; +ошибка появилась в 0.7.12. + + +the "proxy_pass http://host/some:uri" directives did not work; +the bug had appeared in 0.7.12. + + + + + +при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry". + + +in HTTPS mode requests might fail with the "bad write retry" error. + + + + + +модуль ngx_http_secure_link_module не работал внутри location'ов +с именами меньше 3 символов. + + +the ngx_http_secure_link_module did not work inside locations, +whose names are less than 3 characters. + + + + + +переменная $server_addr могла не иметь значения. + + +$server_addr variable might have no value. + + + +
+ + + + + + +обновление номера версии. + + +version number update. + + + + + + + + + + +директива underscores_in_headers; +теперь nginx по умолчанию не разрешает подчёркивания в именах строк +в заголовке запроса клиента. + + +the "underscores_in_headers" directive; +now nginx does not allows underscores in a client request header line names. + + + + + +модуль ngx_http_secure_link_module. + + +the ngx_http_secure_link_module. + + + + + +директива real_ip_header поддерживает любой заголовок. + + +the "real_ip_header" directive supports any header. + + + + + +директива log_subrequest. + + +the "log_subrequest" directive. + + + + + +переменная $realpath_root. + + +the $realpath_root variable. + + + + + +параметры http_502 и http_504 в директиве proxy_next_upstream. + + +the "http_502" and "http_504" parameters of the "proxy_next_upstream" directive. + + + + + +параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream +не работал. + + +the "http_503" parameter of the "proxy_next_upstream" or +"fastcgi_next_upstream" directives did not work. + + + + + +nginx мог выдавать строку "Transfer-Encoding: chunked" для запросов HEAD. + + +nginx might send a "Transfer-Encoding: chunked" header line for HEAD requests. + + + + + +теперь accept-лимит зависит от числа worker_connections. + + +now accept threshold depends on worker_connections. + + + + + + + + + + +директива directio теперь работает на Linux. + + +now the "directio" directive works on Linux. + + + + + +переменная $pid. + + +the $pid variable. + + + + + +оптимизация directio, появившаяся в 0.7.15, не работала при использовании +open_file_cache. + + +the "directio" optimization that had appeared in 0.7.15 did not work with +open_file_cache. + + + + + +access_log с переменными не работал на Linux; +ошибка появилась в 0.7.7. + + +the "access_log" with variables did not work on Linux; +the bug had appeared in 0.7.7. + + + + + +модуль ngx_http_charset_module не понимал название кодировки в кавычках, +полученное от бэкенда. + + +the ngx_http_charset_module did not understand quoted charset name +received from backend. + + + + + + + + + + +nginx не собирался на 64-битных платформах; +ошибка появилась в 0.7.15. + + +nginx could not be built on 64-bit platforms; +the bug had appeared in 0.7.15. + + + + + + + + + + +модуль ngx_http_random_index_module. + + +the ngx_http_random_index_module. + + + + + +директива directio оптимизирована для запросов файлов, начинающихся +с произвольной позиции. + + +the "directio" directive has been optimized for file requests starting +from arbitrary position. + + + + + +директива directio при необходимости запрещает использование sendfile. + + +the "directio" directive turns off sendfile if it is necessary. + + + + + +теперь nginx разрешает подчёркивания в именах строк в заголовке запроса клиента. + + +now nginx allows underscores in a client request header line names. + + + + + + + + + + +теперь директивы ssl_certificate и ssl_certificate_key не имеют +значений по умолчанию. + + +now the ssl_certificate and ssl_certificate_key directives have no +default values. + + + + + +директива listen поддерживает параметр ssl. + + +the "listen" directive supports the "ssl" parameter. + + + + + +теперь при переконфигурации nginx учитывает изменение временной зоны +на FreeBSD и Linux. + + +now nginx takes into account a time zone change while reconfiguration +on FreeBSD and Linux. + + + + + +параметры директивы listen, такие как backlog, rcvbuf и прочие, +не устанавливались, если сервером по умолчанию был не первый сервер. + + +the "listen" directive parameters such as "backlog", "rcvbuf", etc. +were not set, if a default server was not the first one. + + + + + +при использовании в качестве аргументов части URI, выделенного с помощью +директивы rewrite, эти аргументы не экранировались. + + +if URI part captured by a "rewrite" directive was used as a query string, +then the query string was not escaped. + + + + + +улучшения тестирования правильности конфигурационного файла. + + +configuration file validity test improvements. + + + + + + + + + + + +nginx не собирался на Linux и Solaris; +ошибка появилась в 0.7.12. + + +nginx could not be built on Linux and Solaris; +the bug had appeared in 0.7.12. + + + + + + + + + + +директива server_name поддерживает пустое имя "". + + +the "server_name" directive supports empty name "". + + + + + +директива gzip_disable поддерживает специальную маску msie6. + + +the "gzip_disable" directive supports special "msie6" mask. + + + + + +при использовании параметра max_fails=0 в upstream'е с несколькими +серверами рабочий процесс выходил по сигналу SIGFPE.
+Спасибо Максиму Дунину. +
+ +if the "max_fails=0" parameter was used in upstream with several servers, +then a worker process exited on a SIGFPE signal.
+Thanks to Maxim Dounin. +
+
+ + + +при перенаправлении запроса с помощью директивы error_page +терялось тело запроса. + + +a request body was dropped while redirection via an "error_page" directive. + + + + + +при перенаправлении запроса с методом HEAD с помощью директивы error_page +возвращался полный ответ. + + +a full response was returned for request method HEAD +while redirection via an "error_page" directive. + + + + + +метод $r->header_in() не возвращал значения строк "Host", "User-Agent", +и "Connection" из заголовка запроса; +ошибка появилась в 0.7.0. + + +the $r->header_in() method did not return value of the "Host", +"User-Agent", and "Connection" request header lines; +the bug had appeared in 0.7.0. + + + +
+ + + + + + +теперь ngx_http_charset_module по умолчанию не работает MIME-типом text/css. + + +now ngx_http_charset_module does not work by default with text/css MIME type. + + + + + +теперь nginx возвращает код 405 для метода POST при запросе статического +файла, только если файл существует. + + +now nginx returns the 405 status code for POST method requesting a static file +only if the file exists. + + + + + +директива proxy_ssl_session_reuse. + + +the "proxy_ssl_session_reuse" directive. + + + + + +после перенаправления запроса с помощью "X-Accel-Redirect" +директива proxy_pass без URI могла использовать оригинальный запрос. + + +a "proxy_pass" directive without URI part might use original request +after the "X-Accel-Redirect" redirection was used. + + + + + +если у каталога были права доступа только на поиск файлов +и первый индексный файл отсутствовал, то nginx возвращал ошибку 500. + + +if a directory has search only rights and the first index file was absent, +then nginx returned the 500 status code. + + + + + +ошибок во вложенных location'ах; +ошибки появились в 0.7.1. + + +in inclusive locations; +the bugs had appeared in 0.7.1. + + + + + + + + + + +ошибок в директивах addition_types, charset_types, +gzip_types, ssi_types, sub_filter_types и xslt_types; +ошибки появились в 0.7.9. + + +in the "addition_types", "charset_types", +"gzip_types", "ssi_types", "sub_filter_types", and "xslt_types" directives; +the bugs had appeared in 0.7.9. + + + + + +рекурсивной error_page для 500 ошибки. + + +of recursive error_page for 500 status code. + + + + + +теперь модуль ngx_http_realip_module устанавливает адрес не для +всего keepalive соединения, а для каждого запроса по этому соединению. + + +now the ngx_http_realip_module sets address not for whole keepalive connection, +but for each request passed via the connection. + + + + + + + + + + +теперь ngx_http_charset_module по умолчанию работает со следующими MIME-типами: +text/html, text/css, text/xml, text/plain, text/vnd.wap.wml, +application/x-javascript и application/rss+xml. + + +now ngx_http_charset_module works by default with following MIME types: +text/html, text/css, text/xml, text/plain, text/vnd.wap.wml, +application/x-javascript, and application/rss+xml. + + + + + +директивы charset_types и addition_types. + + +the "charset_types" and "addition_types" directives. + + + + + +теперь директивы gzip_types, ssi_types и sub_filter_types используют хэш. + + +now the "gzip_types", "ssi_types", and "sub_filter_types" directives use hash. + + + + + +модуль ngx_cpp_test_module. + + +the ngx_cpp_test_module. + + + + + +директива expires поддерживает суточное время. + + +the "expires" directive supports daily time. + + + + + +улучшения и исправления в модуле ngx_http_xslt_module.
+Спасибо Денису Латыпову и Максиму Дунину. +
+ +the ngx_http_xslt_module improvements and bug fixing.
+Thanks to Denis F. Latypoff and Maxim Dounin. +
+
+ + + +директива log_not_found не работала при поиске индексных файлов. + + +the "log_not_found" directive did not work for index files tests. + + + + + +HTTPS-соединения могли зависнуть, +если использовались методы kqueue, epoll, rtsig или eventport; +ошибка появилась в 0.7.7. + + +HTTPS connections might hang, +if kqueue, epoll, rtsig, or eventport methods were used; +the bug had appeared in 0.7.7. + + + + + +если в директивах server_name, valid_referers и map +использовалась маска вида "*.domain.tld" и при этом полное имя +вида "domain.tld" не было описано, то это имя попадало под маску; +ошибка появилась в 0.3.18. + + +if the "server_name", "valid_referers", and "map" directives used +an "*.domain.tld" wildcard and exact name "domain.tld" was not set, +then the exact name was matched by the wildcard; +the bug had appeared in 0.3.18. + + + +
+ + + + + + +модуль ngx_http_xslt_module. + + +the ngx_http_xslt_module. + + + + + +переменные "$arg_...". + + +the "$arg_..." variables. + + + + + +поддержка directio в Solaris.
+Спасибо Ivan Debnar. +
+ +Solaris directio support.
+Thanks to Ivan Debnar. +
+
+ + + +теперь, если FastCGI-сервер присылает строку "Location" в заголовке ответа +без строки статуса, то nginx использует код статуса 302.
+Спасибо Максиму Дунину. +
+ +now if FastCGI server sends a "Location" header line without status line, +then nginx uses 302 status code.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +теперь ошибка EAGAIN при вызове connect() не считается временной. + + +now the EAGAIN error returned by connect() is not considered as temporary error. + + + + + +значением переменной $ssl_client_cert теперь является сертификат, +перед каждой строкой которого, кроме первой, вставляется символ табуляции; +неизменённый сертификат доступен через переменную $ssl_client_raw_cert. + + +now the $ssl_client_cert variable value is a certificate with TAB character +intended before each line except first one; +an unchanged certificate is available in the $ssl_client_raw_cert variable. + + + + + +параметр ask директивы ssl_verify_client. + + +the "ask" parameter in the "ssl_verify_client" directive. + + + + + +улучшения в обработке byte-range.
+Спасибо Максиму Дунину. +
+ +byte-range processing improvements.
+Thanks to Maxim Dounin. +
+
+ + + +директива directio.
+Спасибо Jiang Hong. +
+ +the "directio" directive.
+Thanks to Jiang Hong. +
+
+ + + +поддержка sendfile() в MacOSX 10.5. + + +MacOSX 10.5 sendfile() support. + + + + + +в MacOSX и Cygwin при проверке location'ов теперь делается сравнение +без учёта регистра символов; +однако, сравнение ограничено только однобайтными locale'ями. + + +now in MacOSX and Cygwin locations are tested in case insensitive mode; +however, the compare is provided by single-byte locales only. + + + + + +соединения почтового прокси-сервера зависали в режиме SSL, +если использовались методы select, poll или /dev/poll. + + +mail proxy SSL connections hanged, +if select, poll, or /dev/poll methods were used. + + + + + +ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module. + + +UTF-8 encoding usage in the ngx_http_autoindex_module. + + + +
+ + + + + + +теперь при использовании переменных в директиве access_log +всегда проверяется существовании root'а для запроса. + + +now if variables are used in the "access_log" directive +a request root existence is always tested. + + + + + +модуль ngx_http_flv_module не поддерживал несколько значений в +аргументах запроса. + + +the ngx_http_flv_module did not support several values in a query string. + + + + + + + + + + +Исправления в поддержке переменных в директиве access_log; +ошибки появились в 0.7.4. + + +Bugfixes in variables support in the "access_log" directive; +the bugs had appeared in 0.7.4. + + + + + +nginx не собирался с параметром --without-http_gzip_module; +ошибка появилась в 0.7.3.
+Спасибо Кириллу Коринскому. +
+ +nginx could not be built --without-http_gzip_module; +the bug had appeared in 0.7.3.
+Thanks to Kirill A. Korinskiy. +
+
+ + + +при совместном использовании sub_filter и SSI +ответы могли передаваться неверно. + + +if sub_filter and SSI were used together, then responses might +were transferred incorrectly. + + + +
+ + + + + + +директива access_log поддерживает переменные. + + +variables support in the "access_log" directive. + + + + + +директива open_log_file_cache. + + +the "open_log_file_cache" directive. + + + + + +ключ -g. + + +the -g switch. + + + + + +поддержка строки "Expect" в заголовке запроса. + + +the "Expect" request header line support. + + + + + +большие включения в SSI могли передавались не полностью. + + +large SSI inclusions might be truncated. + + + + + + + + + + +MIME-тип для расширения rss изменён на "application/rss+xml". + + +the "rss" extension MIME type has been changed to "application/rss+xml". + + + + + +теперь директива "gzip_vary on" выдаёт строку +"Vary: Accept-Encoding" +в заголовке ответа и для несжатых ответов. + + +now the "gzip_vary" directive turned on issues +a "Vary: Accept-Encoding" +header line for uncompressed responses too. + + + + + +теперь при использовании протокола "https://" в директиве rewrite +автоматически делается редирект. + + +now the "rewrite" directive does a redirect automatically +if the "https://" protocol is used. + + + + + +директива proxy_pass не работала с протоколом HTTPS; +ошибка появилась в 0.6.9. + + +the "proxy_pass" directive did not work with the HTTPS protocol; +the bug had appeared in 0.6.9. + + + + + + + + + + +теперь nginx поддерживает шифры с обменом EDH-ключами. + + +now nginx supports EDH key exchange ciphers. + + + + + +директива ssl_dhparam. + + +the "ssl_dhparam" directive. + + + + + +переменная $ssl_client_cert.
+Спасибо Manlio Perillo. +
+ +the $ssl_client_cert variable.
+Thanks to Manlio Perillo. +
+
+ + + +после изменения URI с помощью директивы rewrite nginx не искал новый location; +ошибка появилась в 0.7.1.
+Спасибо Максиму Дунину. +
+ +after changing URI via a "rewrite" directive nginx did not search +a new location; +the bug had appeared in 0.7.1.
+Thanks to Maxim Dounin. +
+
+ + + +nginx не собирался без библиотеки PCRE; +ошибка появилась в 0.7.1. + + +nginx could not be built without PCRE library; +the bug had appeared in 0.7.1. + + + + + +при редиректе запроса к каталогу с добавлением слэша nginx +не добавлял аргументы из оригинального запроса. + + +when a request to a directory was redirected with the slash added, +nginx dropped a query string from the original request. + + + +
+ + + + + + +теперь поиск location'а делается с помощью дерева. + + +now locations are searched in a tree. + + + + + +директива optimize_server_names упразднена в связи с появлением +директивы server_name_in_redirect. + + +the "optimize_server_names" directive was canceled +due to the "server_name_in_redirect" directive introduction. + + + + + +некоторые давно устаревшие директивы больше не поддерживаются. + + +some long deprecated directives are not supported anymore. + + + + + +параметр "none" в директиве ssl_session_cache; +теперь этот параметр используется по умолчанию.
+Спасибо Rob Mueller. +
+ +the "none" parameter in the "ssl_session_cache" directive; +now this is default parameter.
+Thanks to Rob Mueller. +
+
+ + + +рабочие процессы могли не реагировать на сигналы переконфигурации +и ротации логов. + + +worker processes might not catch reconfiguration and log rotation signals. + + + + + +nginx не собирался на последних Fedora 9 Linux.
+Спасибо Roxis. +
+ +nginx could not be built on latest Fedora 9 Linux.
+Thanks to Roxis. +
+
+ +
+ + + + + + +теперь символы 0x00-0x1F, '"' и '\' в access_log записываются в виде \xXX.
+Спасибо Максиму Дунину. +
+ +now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX in an +access_log.
+Thanks to Maxim Dounin. +
+
+ + + +теперь nginx разрешает несколько строк "Host" в заголовке запроса. + + +now nginx allows several "Host" request header line. + + + + + +директива expires поддерживает флаг modified. + + +the "modified" flag in the "expires" directive. + + + + + +переменные $uid_got и $uid_set можно использовать на любой стадии обработки +запроса. + + +the $uid_got and $uid_set variables may be used at any request processing stage. + + + + + +переменная $hostname.
+Спасибо Андрею Нигматулину. +
+ +the $hostname variable.
+Thanks to Andrei Nigmatulin. +
+
+ + + +поддержка DESTDIR.
+Спасибо Todd A. Fisher и Andras Voroskoi. +
+ +DESTDIR support.
+Thanks to Todd A. Fisher and Andras Voroskoi. +
+
+ + + +при использовании keepalive на Linux +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process on Linux, +if keepalive was enabled. + + + +
+ + + + + + +nginx не обрабатывал ответ FastCGI-сервера, если строка заголовка ответа была +в конце записи FastCGI; +ошибка появилась в 0.6.2.
+Спасибо Сергею Серову. +
+ +nginx did not process FastCGI response +if header was at the end of FastCGI record; +the bug had appeared in 0.6.2.
+Thanks to Sergey Serov. +
+
+ + + +при удалении файла и использовании директивы open_file_cache_errors off +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process if a file was deleted +and the "open_file_cache_errors" directive was off. + + + +
+ + + + + + +теперь, если маске, заданной в директиве include, не соответствует +ни один файл, то nginx не выдаёт ошибку. + + +now if an "include" directive pattern does not match any file, +then nginx does not issue an error. + + + + + +теперь время в директивах можно задавать без пробела, например, "1h50m". + + +now the time in directives may be specified without spaces, +for example, "1h50m". + + + + + +утечек памяти, если директива ssl_verify_client имела значение on.
+Спасибо Chavelle Vincent. +
+ +memory leaks if the "ssl_verify_client" directive was on.
+Thanks to Chavelle Vincent. +
+
+ + + +директива sub_filter могла вставлять заменяемый текст в вывод. + + +the "sub_filter" directive might set text to change into output. + + + + + +директива error_page не воспринимала параметры в перенаправляемом URI. + + +the "error_page" directive did not take into account arguments in +redirected URI. + + + + + +теперь при сборке с Cygwin nginx всегда открывает файлы в бинарном режиме. + + +now nginx always opens files in binary mode under Cygwin. + + + + + +nginx не собирался под OpenBSD; +ошибка появилась в 0.6.15. + + +nginx could not be built on OpenBSD; +the bug had appeared in 0.6.15. + + + +
+ + + + + + +модуль ngx_google_perftools_module. + + +the ngx_google_perftools_module. + + + + + +модуль ngx_http_perl_module не собирался на 64-битных платформах; +ошибка появилась в 0.6.27. + + +the ngx_http_perl_module could not be built on 64-bit platforms; +the bug had appeared in 0.6.27. + + + + + + + + + + +метод rtsig не собирался; +ошибка появилась в 0.6.27. + + +the rtsig method could not be built; +the bug had appeared in 0.6.27. + + + + + + + + + + +теперь на Linux 2.6.18+ по умолчанию не собирается метод rtsig. + + +now by default the rtsig method is not built on Linux 2.6.18+. + + + + + +теперь при перенаправлении запроса в именованный location с помощью +директивы error_page метод запроса не изменяется. + + +now a request method is not changed while redirection to a named location +via an "error_page" directive. + + + + + +директивы resolver и resolver_timeout в SMTP прокси-сервере. + + +the "resolver" and "resolver_timeout" directives in SMTP proxy. + + + + + +директива post_action поддерживает именованные location'ы. + + +the "post_action" directive supports named locations. + + + + + +при перенаправлении запроса из location'а c обработчиком proxy, FastCGI +или memcached в именованный location со статическим обработчиком +в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process, +if a request was redirected from proxy, FastCGI, or memcached location +to static named locations. + + + + + +браузеры не повторяли SSL handshake, если при первом handshake +не оказалось правильного клиентского сертификата. +
+Спасибо Александру Инюхину. +
+ +browsers did not repeat SSL handshake if there is no valid client certificate +in first handshake. +
+Thanks to Alexander V. Inyukhin. +
+
+ + + +при перенаправлении ошибок 495-497 с помощью директивы error_page +без изменения кода ошибки nginx пытался выделить очень много памяти. + + +if response code 495-497 was redirected via an "error_page" directive +without code change, then nginx tried to allocate too many memory. + + + + + +утечки памяти в долгоживущих небуфферизированных соединениях. + + +memory leak in long-lived non buffered connections. + + + + + +утечки памяти в resolver'е. + + +memory leak in resolver. + + + + + +при перенаправлении запроса из location'а c обработчиком proxy +в другой location с обработчиком proxy +в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process, +if a request was redirected from proxy, FastCGI, or memcached location +to static named locations. + + + + + +ошибки в кэшировании переменных $proxy_host и $proxy_port.
+Спасибо Сергею Боченкову. +
+ +in the $proxy_host and $proxy_port variables caching.
+Thanks to Sergey Bochenkov. +
+
+ + + +директива proxy_pass с переменными использовала порт, описанной в другой +директиве proxy_pass без переменных, но с таким же именем хоста.
+Спасибо Сергею Боченкову. +
+ +a "proxy_pass" directive with variables used incorrectly the same port +as in another "proxy_pass" directive with the same host name +and without variables.
+Thanks to Sergey Bochenkov. +
+
+ + + +во время переконфигурации на некоторых 64-битном платформах в лог +записывался alert "sendmsg() failed (9: Bad file descriptor)". + + +an alert "sendmsg() failed (9: Bad file descriptor)" on some 64-bit platforms +while reconfiguration. + + + + + +при повторном использовании в SSI пустого block'а в качестве заглушки +в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process, +if empty stub block was used second time in SSI. + + + + + +ошибки при копировании части URI, содержащего экранированные символы, +в аргументы. + + +in copying URI part contained escaped symbols into arguments. + + + +
+ + + + + + +директивы proxy_store и fastcgi_store не проверяли длину ответа. + + +the "proxy_store" and "fastcgi_store" directives did not check +a response length. + + + + + +при использовании большого значения в директиве expires +в рабочем процессе происходил segmentation fault.
+Спасибо Joaquin Cuenca Abela. +
+ +a segmentation fault occurred in worker process, +if big value was used in a "expires" directive.
+Thanks to Joaquin Cuenca Abela. +
+
+ + + +nginx неверно определял длину строки кэша на Pentium 4.
+Спасибо Геннадию Махомеду. +
+ +nginx incorrectly detected cache line size on Pentium 4.
+Thanks to Gena Makhomed. +
+
+ + + +в проксированных подзапросах и подзапросах к FastCGI-серверу +вместо метода GET использовался оригинальный метод клиента. + + +in proxied or FastCGI subrequests a client original method was used +instead of the GET method. + + + + + +утечки сокетов в режиме HTTPS при использовании отложенного accept'а.
+Спасибо Ben Maurer. +
+ +socket leak in HTTPS mode if deferred accept was used.
+Thanks to Ben Maurer. +
+
+ + + +nginx выдавал ошибочное сообщение "SSL_shutdown() failed (SSL: )"; +ошибка появилась в 0.6.23. + + +nginx issued the bogus error message "SSL_shutdown() failed (SSL: )"; +the bug had appeared in 0.6.23. + + + + + +при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry"; +ошибка появилась в 0.6.23. + + +in HTTPS mode requests might fail with the "bad write retry" error; +the bug had appeared in 0.6.23. + + + +
+ + + + + + +вместо специального параметра "*" в директиве server_name теперь +используется директива server_name_in_redirect. + + +now the "server_name_in_redirect" directive is used instead of +the "server_name" directive's special "*" parameter. + + + + + +в качестве основного имени в директиве server_name теперь +можно использовать имена с масками и регулярными выражениями. + + +now wildcard and regex names can be used as main name in +a "server_name" directive. + + + + + +директива satisfy_any заменена директивой satisfy. + + +the "satisfy_any" directive was replaced by the "satisfy" directive. + + + + + +после переконфигурации старые рабочие процесс могли сильно нагружать процессор +при запуске под Linux OpenVZ. + + +old worker processes might hog CPU after reconfiguration if they was run +under Linux OpenVZ. + + + + + +директива min_delete_depth. + + +the "min_delete_depth" directive. + + + + + +методы COPY и MOVE не работали с одиночными файлами. + + +the COPY and MOVE methods did not work with single files. + + + + + +модуль ngx_http_gzip_static_module не позволял работать модулю +ngx_http_dav_module; +ошибка появилась в 0.6.23. + + +the ngx_http_gzip_static_module did not allow the ngx_http_dav_module to work; +the bug had appeared in 0.6.23. + + + + + +утечки сокетов в режиме HTTPS при использовании отложенного accept'а.
+Спасибо Ben Maurer. +
+ +socket leak in HTTPS mode if deferred accept was used.
+Thanks to Ben Maurer. +
+
+ + + +nginx не собирался без библиотеки PCRE; +ошибка появилась в 0.6.23. + + +nginx could not be built without PCRE library; +the bug had appeared in 0.6.23. + + + +
+ + + + + +при использовании HTTPS в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.6.23. + + +a segmentation fault might occur in worker process if HTTPS was used; +the bug had appeared in 0.6.23. + + + + + + + + + + +параметр "off" в директиве ssl_session_cache; +теперь этот параметр используется по умолчанию. + + +the "off" parameter in the "ssl_session_cache" directive; +now this is default parameter. + + + + + +директива open_file_cache_retest переименована в open_file_cache_valid. + + +the "open_file_cache_retest" directive was renamed +to the "open_file_cache_valid". + + + + + +директива open_file_cache_min_uses. + + +the "open_file_cache_min_uses" directive. + + + + + +модуль ngx_http_gzip_static_module. + + +the ngx_http_gzip_static_module. + + + + + +директива gzip_disable. + + +the "gzip_disable" directive. + + + + + +директиву memcached_pass можно использовать внутри блока if. + + +the "memcached_pass" directive may be used inside the "if" block. + + + + + +если внутри одного location'а использовались директивы "memcached_pass" и "if", +то в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process, +if the "memcached_pass" and "if" directives were used in the same location. + + + + + +если при использовании директивы satisfy_any on" были заданы директивы +не всех модулей доступа, то заданные директивы не проверялись. + + +if a "satisfy_any on" directive was used and not all access and auth modules +directives were set, then other given access and auth directives +were not tested; + + + + + +параметры, заданные регулярным выражением в директиве valid_referers, +не наследовалась с предыдущего уровня. + + +regex parameters in a "valid_referers" directive were not inherited +from previous level. + + + + + +директива post_action не работала, если запрос завершался с кодом 499. + + +a "post_action" directive did run if a request was completed +with 499 status code. + + + + + +оптимизация использования 16K буфера для SSL-соединения.
+Спасибо Ben Maurer. +
+ +optimization of 16K buffer usage in a SSL connection.
+Thanks to Ben Maurer. +
+
+ + + +STARTTLS в режиме SMTP не работал.
+Спасибо Олегу Мотиенко. +
+ +the STARTTLS in SMTP mode did not work.
+Thanks to Oleg Motienko. +
+
+ + + +при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry"; +ошибка появилась в 0.5.13. + + +in HTTPS mode requests might fail with the "bad write retry" error; +the bug had appeared in 0.5.13. + + + +
+ + + + + + +теперь все методы модуля ngx_http_perl_module +возвращают значения, скопированные в память, выделенную perl'ом. + + +now all ngx_http_perl_module methods return values copied to perl's +allocated memory. + + + + + +если nginx был собран с модулем ngx_http_perl_module, +использовался perl до версии 5.8.6 и perl поддерживал потоки, +то во время переконфигурации основной процесс аварийно выходил; +ошибка появилась в 0.5.9.
+Спасибо Борису Жмурову. +
+ +if nginx was built with ngx_http_perl_module, +the perl before 5.8.6 was used, and perl supported threads, +then during reconfiguration the master process aborted; +the bug had appeared in 0.5.9.
+Thanks to Boris Zhmurov. +
+
+ + + +в методы модуля ngx_http_perl_module +могли передаваться неверные результаты выделения в регулярных выражениях. + + +the ngx_http_perl_module methods may get invalid values of the regex captures. + + + + + +если метод $r->has_request_body() вызывался для запроса, +у которого небольшое тело запроса было уже полностью получено, +то в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process, +if the $r->has_request_body() method was called for a request +whose small request body was already received. + + + + + +large_client_header_buffers не освобождались перед переходом в состояние +keep-alive.
+Спасибо Олександру Штепе. +
+ +large_client_header_buffers did not freed before going to keep-alive state.
+Thanks to Olexander Shtepa. +
+
+ + + +в переменной $upstream_addr не записывался последний адрес; +ошибка появилась в 0.6.18. + + +the last address was missed in the $upstream_addr variable; +the bug had appeared in 0.6.18. + + + + + +директива fastcgi_catch_stderr не возвращала ошибку; +теперь она возвращает ошибку 502, которую можно направить на следующий сервер +с помощью "fastcgi_next_upstream invalid_header". + + +the "fastcgi_catch_stderr" directive did return error code; +now it returns 502 code, that can be rerouted to a next server using +the "fastcgi_next_upstream invalid_header" directive. + + + + + +при использовании директивы fastcgi_catch_stderr +в основном процессе происходил segmentation fault; +ошибка появилась в 0.6.10.
+Спасибо Manlio Perillo. +
+ +a segmentation fault occurred in master process +if the "fastcgi_catch_stderr" directive was used; +the bug had appeared in 0.6.10.
+Thanks to Manlio Perillo. +
+
+ +
+ + + + + + +если в значениях переменных директивы proxy_pass используются +только IP-адреса, то указывать resolver не нужно. + + +if variable values used in a "proxy_pass" directive contain IP-addresses only, +then a "resolver" directive is not mandatory. + + + + + +при использовании директивы proxy_pass c URI-частью +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.6.19. + + +a segmentation fault might occur in worker process +if a "proxy_pass" directive with URI-part was used; +the bug had appeared in 0.6.19. + + + + + +если resolver использовался на платформах, не поддерживающих метод kqueue, +то nginx выдавал alert "name is out of response".
+Спасибо Андрею Нигматулину. +
+ +if resolver was used on platform that does not support kqueue, +then nginx issued an alert "name is out of response".
+Thanks to Andrei Nigmatulin. +
+
+ + + +При использовании переменной $server_protocol в FastCGI-параметрах +и запросе, длина которого была близка к значению директивы +client_header_buffer_size, +nginx выдавал alert "fastcgi: the request record is too big". + + +if the $server_protocol was used in FastCGI parameters +and a request line length was near to the "client_header_buffer_size" +directive value, +then nginx issued an alert "fastcgi: the request record is too big". + + + + + +при обычном запросе версии HTTP/0.9 к HTTPS серверу nginx возвращал +обычный ответ. + + +if a plain text HTTP/0.9 version request was made to HTTPS server, +then nginx returned usual response. + + + +
+ + + + + + +при использовании директивы proxy_pass c URI-частью +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.6.19. + + +a segmentation fault might occur in worker process +if a "proxy_pass" directive with URI-part was used; +the bug had appeared in 0.6.19. + + + + + + + + + + +версия 0.6.18 не собиралась. + + +the 0.6.18 version could not be built. + + + + + + + + + +теперь модуль ngx_http_userid_module в поле куки с номером процесса +добавляет микросекунды на время старта. + + +now the ngx_http_userid_module adds start time microseconds +to the cookie field contains a pid value. + + + + + +в error_log теперь записывается полная строка запроса вместо только URI. + + +now the full request line instead of URI only is written to error_log. + + + + + +директива proxy_pass поддерживает переменные. + + +variables support in the "proxy_pass" directive. + + + + + +директивы resolver и resolver_timeout. + + +the "resolver" and "resolver_timeout" directives. + + + + + +теперь директива "add_header last-modified ''" удаляет в заголовке ответа +строку "Last-Modified". + + +now the directive "add_header last-modified ''" deletes a "Last-Modified" +response header line. + + + + + +директива limit_rate не позволяла передавать на полной скорости, +даже если был указан очень большой лимит. + + +the "limit_rate" directive did not allow to use full throughput, +even if limit value was very high. + + + + + + + + + + +поддержка строки "If-Range" в заголовке запроса.
+Спасибо Александру Инюхину. +
+ +the "If-Range" request header line support.
+Thanks to Alexander V. Inyukhin. +
+
+ + + +при использовании директивы msie_refresh повторно экранировались +уже экранированные символы; +ошибка появилась в 0.6.4. + + +URL double escaping in a redirect of the "msie_refresh" directive; +the bug had appeared in 0.6.4. + + + + + +директива autoindex не работала при использовании "alias /". + + +the "autoindex" directive did not work with the "alias /" directive. + + + + + +при использовании подзапросов +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process if subrequests were used. + + + + + +при использовании SSL и gzip большие ответы могли передаваться не полностью. + + +the big responses may be transferred truncated if SSL and gzip were used. + + + + + +если ответ проксированного сервера был версии HTTP/0.9, +то переменная $status была равна 0. + + +the $status variable was equal to 0 if a proxied server returned response +in HTTP/0.9 version. + + + +
+ + + + + + +теперь на Linux используется uname(2) вместо procfs.
+Спасибо Илье Новикову. +
+ +now the uname(2) is used on Linux instead of procfs.
+Thanks to Ilya Novikov. +
+
+ + + +если в директиве error_page использовался символ "?", то он экранировался +при проксировании запроса; +ошибка появилась в 0.6.11. + + +if the "?" character was in a "error_page" directive, then it was escaped +in a proxied request; +the bug had appeared in 0.6.11. + + + + + +совместимость с mget. + + +compatibility with mget. + + + +
+ + + + + + +совместимость с Cygwin.
+Спасибо Владимиру Кутакову. +
+ +Cygwin compatibility.
+Thanks to Vladimir Kutakov. +
+
+ + + +директива merge_slashes. + + +the "merge_slashes" directive. + + + + + +директива gzip_vary. + + +the "gzip_vary" directive. + + + + + +директива server_tokens. + + +the "server_tokens" directive. + + + + + +nginx не раскодировал URI в команде SSI include. + + +nginx did not unescape URI in the "include" SSI command. + + + + + +при использовании переменной в директивах charset или source_charset +на старте или во время переконфигурации происходил segmentation fault, + + +the segmentation fault was occurred on start or while reconfiguration +if variable was used in the "charset" or "source_charset" directives. + + + + + +nginx возвращал ошибку 400 на запросы вида +"GET http://www.domain.com HTTP/1.0".
+Спасибо James Oakley. +
+ +nginx returned the 400 response on requests like +"GET http://www.domain.com HTTP/1.0".
+Thanks to James Oakley. +
+
+ + + +после перенаправления запроса с телом запроса с помощью директивы +error_page nginx пытался снова прочитать тело запроса; +ошибка появилась в 0.6.7. + + +if request with request body was redirected using the "error_page" directive, +then nginx tried to read the request body again; +the bug had appeared in 0.6.7. + + + + + +в рабочем процессе происходил segmentation fault, если у сервера, +обрабатывающему запрос, не был явно определён server_name; +ошибка появилась в 0.6.7. + + +a segmentation fault occurred in worker process +if no server_name was explicitly defined for server processing request; +the bug had appeared in 0.6.7. + + + +
+ + + + + + +теперь по умолчанию команда SSI echo использует кодирование entity. + + +now by default the "echo" SSI command uses entity encoding. + + + + + +параметр encoding в команде SSI echo. + + +the "encoding" parameter in the "echo" SSI command. + + + + + +директиву access_log можно использовать внутри блока limit_except. + + +the "access_log" directive may be used inside the "limit_except" block. + + + + + +если все сервера апстрима оказывались недоступными, +то до восстановления работоспособности +у всех серверов вес становился равным одному; +ошибка появилась в 0.6.6. + + +if all upstream servers were failed, then all servers had got weight +the was equal one until servers became alive; +the bug had appeared in 0.6.6. + + + + + +при использовании переменных $date_local и $date_gmt вне модуля +ngx_http_ssi_filter_module в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process +if $date_local and $date_gmt were used outside the ngx_http_ssi_filter_module. + + + + + +при использовании включённом отладочном логе +в рабочем процессе мог произойти segmentation fault.
+Спасибо Андрею Нигматулину. +
+ +a segmentation fault might occur in worker process +if debug log was enabled.
+Thanks to Andrei Nigmatulin. +
+
+ + + +ngx_http_memcached_module не устанавливал $upstream_response_time.
+Спасибо Максиму Дунину. +
+ +ngx_http_memcached_module did not set $upstream_response_time.
+Thanks to Maxim Dounin. +
+
+ + + +рабочий процесс мог зациклиться при использовании memcached. + + +a worker process may got caught in an endless loop, if the memcached was used. + + + + + +nginx распознавал параметры "close" и "keep-alive" в строке "Connection" +в заголовке запроса только, если они были в нижнем регистре; +ошибка появилась в 0.6.11. + + +nginx supported low case only "close" and "keep-alive" values +in the "Connection" request header line; +the bug had appeared in 0.6.11. + + + + + +sub_filter не работал с пустой строкой замены. + + +sub_filter did not work with empty substitution. + + + + + +в парсинге sub_filter. + + +in sub_filter parsing. + + + +
+ + + + + + +nginx не закрывал файл каталога для запроса HEAD, +если использовался autoindex
+Спасибо Arkadiusz Patyk. +
+ +nginx did not close directory file on HEAD request if autoindex was used.
+Thanks to Arkadiusz Patyk. +
+
+ +
+ + + + + + +почтовый прокси-сервер разделён на три модуля: pop3, imap и smtp. + + +mail proxy was split on three modules: pop3, imap and smtp. + + + + + +параметры конфигурации --without-mail_pop3_module, +--without-mail_imap_module и --without-mail_smtp_module. + + +the --without-mail_pop3_module, --without-mail_imap_module, +and --without-mail_smtp_module configuration parameters. + + + + + +директивы smtp_greeting_delay и smtp_client_buffer модуля ngx_mail_smtp_module. + + +the "smtp_greeting_delay" and "smtp_client_buffer" directives +of the ngx_mail_smtp_module. + + + + + +wildcard в конце имени сервера не работали; +ошибка появилась в 0.6.9. + + +the trailing wildcards did not work; +the bug had appeared in 0.6.9. + + + + + +при использовании разделяемой библиотеки PCRE, +расположенной в нестандартном месте, nginx не запускался на Solaris. + + +nginx could not start on Solaris if the shared PCRE library located +in non-standard place was used. + + + + + +директивы proxy_hide_header и fastcgi_hide_header не скрывали +строки заголовка ответа с именем больше 32 символов.
+Спасибо Manlio Perillo. +
+ +the "proxy_hide_header" and "fastcgi_hide_header" directives did not +hide response header lines whose name was longer than 32 characters.
+Thanks to Manlio Perillo. +
+
+ +
+ + + + + + +счётчик активных соединений всегда рос при использовании почтового +прокси-сервера. + + +active connection counter always increased if mail proxy was used. + + + + + +если бэкенд возвращал только заголовок ответа при небуферизированном +проксировании, то nginx закрывал соединение с бэкендом по таймауту. + + +if backend returned response header only using non-buffered proxy, +then nginx closed backend connection on timeout. + + + + + +nginx не поддерживал несколько строк "Connection" в заголовке запроса. + + +nginx did not support several "Connection" request header lines. + + + + + +если в сервере апстрима был задан max_fails, то после первой же неудачной +попытки вес сервера навсегда становился равным одному; +ошибка появилась в 0.6.6. + + +if the "max_fails" was set for upstream server, then after first +failure server weight was always one; +the bug had appeared in 0.6.6. + + + + + + + + + + +директивы open_file_cache, open_file_cache_retest и open_file_cache_errors. + + +the "open_file_cache", "open_file_cache_retest", and "open_file_cache_errors" +directives. + + + + + +утечки сокетов; +ошибка появилась в 0.6.7. + + +socket leak; +the bug had appeared in 0.6.7. + + + + + +В строку заголовка ответа "Content-Type", указанную в методе +$r->send_http_header(), не добавлялась кодировка, указанная в директиве charset. + + +a charset set by the "charset" directive was not appended +to the "Content-Type" header set by $r->send_http_header(). + + + + + +при использовании метода /dev/poll +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process +if /dev/poll method was used. + + + + + + + + + + +рабочий процесс мог зациклиться при использовании протокола HTTPS; +ошибка появилась в 0.6.7. + + +a worker process may got caught in an endless loop, +if the HTTPS protocol was used; +the bug had appeared in 0.6.7. + + + + + +если сервер слушал на двух адресах или портах, то nginx не запускался +при использовании wildcard в конце имени сервера. + + +if server listened on two addresses or ports and trailing wildcard was used, +then nginx did not run. + + + + + +директива ip_hash могла неверно помечать сервера как нерабочие. + + +the "ip_hash" directive might incorrectly mark servers as down. + + + + + +nginx не собирался на amd64; +ошибка появилась в 0.6.8. + + +nginx could not be built on amd64; +the bug had appeared in 0.6.8. + + + + + + + + + + +теперь nginx пытается установить директивы worker_priority, +worker_rlimit_nofile, worker_rlimit_core, worker_rlimit_sigpending +без привилегий root'а. + + +now nginx tries to set the "worker_priority", "worker_rlimit_nofile", +"worker_rlimit_core", and "worker_rlimit_sigpending" without super-user +privileges. + + + + + +теперь nginx экранирует символы пробела и "%" при передаче запроса +серверу аутентификации почтового прокси-сервера. + + +now nginx escapes space and "%" in request to a mail proxy authentication +server. + + + + + +теперь nginx экранирует символ "%" в переменной $memcached_key. + + +now nginx escapes "%" in $memcached_key variable. + + + + + +при указании относительного пути к конфигурационному файлу в качестве +параметра ключа -c nginx определял путь относительно конфигурационного префикса; +ошибка появилась в 0.6.6. + + +nginx used path relative to configuration prefix for non-absolute +configuration file path specified in the "-c" key; +the bug had appeared in 0.6.6. + + + + + +nginx не работал на FreeBSD/sparc64. + + +nginx did not work on FreeBSD/sparc64. + + + + + + + + + + +теперь пути, указанные в директивах include, auth_basic_user_file, +perl_modules, ssl_certificate, ssl_certificate_key и +ssl_client_certificate, определяются относительно каталога конфигурационного +файла nginx.conf, а не относительно префикса. + + +now the paths specified in the "include", "auth_basic_user_file", +"perl_modules", "ssl_certificate", "ssl_certificate_key", and +"ssl_client_certificate" directives are relative to directory of +nginx configuration file nginx.conf, but not to nginx prefix directory. + + + + + +параметр --sysconfdir=PATH в configure упразднён. + + +the --sysconfdir=PATH option in configure was canceled. + + + + + +для обновления на лету версий 0.1.x создан специальный сценарий +make upgrade1. + + +the special make target "upgrade1" was defined for online upgrade of +0.1.x versions. + + + + + +директивы server_name и valid_referers поддерживают регулярные выражения. + + +the "server_name" and "valid_referers" directives support regular expressions. + + + + + +директива server в блоке upstream поддерживает параметр backup. + + +the "server" directive in the "upstream" context supports +the "backup" parameter. + + + + + +модуль ngx_http_perl_module поддерживает метод $r->discard_request_body. + + +the ngx_http_perl_module supports the $r->discard_request_body. + + + + + +директива "add_header Last-Modified ..." меняет строку "Last-Modified" +в заголовке ответа. + + +the "add_header Last-Modified ..." directive changes the "Last-Modified" +response header line. + + + + + +если на запрос с телом возвращался ответ с кодом HTTP отличным от 200, +и после этого запроса соединение переходило в состояние keep-alive, +то на следующий запрос nginx возвращал 400. + + +if a response different than 200 was returned to a request with body +and connection went to the keep-alive state after the request, then +nginx returned 400 for the next request. + + + + + +если в директиве auth_http был задан неправильный адрес, то +в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process +if invalid address was set in the "auth_http" directive. + + + + + +теперь по умолчанию nginx использует значение 511 для listen backlog +на всех платформах, кроме FreeBSD.
+Спасибо Jiang Hong. +
+ +now nginx uses default listen backlog value 511 on all platforms +except FreeBSD.
+Thanks to Jiang Hong. +
+
+ + + +рабочий процесс мог зациклиться, если server в блоке upstream был помечен +как down; +ошибка появилась в 0.6.6. + + +a worker process may got caught in an endless loop, if a "server" inside +"upstream" block was marked as "down"; +the bug had appeared in 0.6.6. + + + + + +sendfilev() в Solaris теперь не используется при передаче тела запроса +FastCGI-серверу через unix domain сокет. + + +now Solaris sendfilev() is not used to transfer the client request body +to FastCGI-server via the unix domain socket. + + + +
+ + + + + + +параметр --sysconfdir=PATH в configure. + + +the --sysconfdir=PATH option in configure. + + + + + +именованные location'ы. + + +named locations. + + + + + +переменную $args можно устанавливать с помощью set. + + +the $args variable can be set with the "set" directive. + + + + + +переменная $is_args. + + +the $is_args variable. + + + + + +равномерное распределение запросов к апстримам с большими весами. + + +fair big weight upstream balancer. + + + + + +если клиент в почтовом прокси-сервере закрывал соединение, +то nginx мог не закрывать соединение с бэкендом. + + +if a client has closed connection to mail proxy + then nginx might not close connection to backend. + + + + + +при использовании одного хоста в качестве бэкендов для протоколов HTTP и HTTPS +без явного указания портов, nginx использовал только один порт—80 или 443. + + +if the same host without specified port was used as backend for HTTP and HTTPS, +then nginx used only one port—80 or 443. + + + + + +nginx не собирался на Solaris/amd64 Sun Studio 11 и более ранними версиями; +ошибка появилась в 0.6.4. + + +fix building on Solaris/amd64 by Sun Studio 11 and early versions; +the bug had appeared in 0.6.4. + + + + + + + + + + +переменная $nginx_version.
+Спасибо Николаю Гречуху. +
+ +$nginx_version variable.
+Thanks to Nick S. Grechukh. +
+
+ + + +почтовый прокси-сервер поддерживает AUTHENTICATE в режиме IMAP.
+Спасибо Максиму Дунину. +
+ +the mail proxy supports AUTHENTICATE in IMAP mode.
+Thanks to Maxim Dounin. +
+
+ + + +почтовый прокси-сервер поддерживает STARTTLS в режиме SMTP.
+Спасибо Максиму Дунину. +
+ +the mail proxy supports STARTTLS in SMTP mode.
+Thanks to Maxim Dounin. +
+
+ + + +теперь nginx экранирует пробел в переменной $memcached_key. + + +now nginx escapes space in $memcached_key variable. + + + + + +nginx неправильно собирался Sun Studio на Solaris/amd64.
+Спасибо Jiang Hong. +
+ +nginx was incorrectly built by Sun Studio on Solaris/amd64.
+Thanks to Jiang Hong. +
+
+ + + +незначительных потенциальных ошибок.
+Спасибо Coverity's Scan. +
+ +of minor potential bugs.
+Thanks to Coverity's Scan. +
+
+ +
+ + + + + + +при использовании директивы msie_refresh был возможен XSS.
+Спасибо Максиму Богуку. +
+ +the "msie_refresh" directive allowed XSS.
+Thanks to Maxim Boguk. +
+
+ + + +директивы proxy_store и fastcgi_store изменены. + + +the "proxy_store" and "fastcgi_store" directives were changed. + + + + + +директивы proxy_store_access и fastcgi_store_access. + + +the "proxy_store_access" and "fastcgi_store_access" directives. + + + + + +nginx не работал на Solaris/sparc64, если был собран Sun Studio.
+Спасибо Андрею Нигматулину. +
+ +nginx did not work on Solaris/sparc64 if it was built by Sun Studio.
+Thanks to Andrei Nigmatulin. +
+
+ + + +обход ошибки в Sun Studio 12.
+Спасибо Jiang Hong. +
+ +for Sun Studio 12.
+Thanks to Jiang Hong. +
+
+ +
+ + + + + + +директивы proxy_store и fastcgi_store. + + +the "proxy_store" and "fastcgi_store" directives. + + + + + +при использовании директивы auth_http_header +в рабочем процессе мог произойти segmentation fault.
+Спасибо Максиму Дунину. +
+ +a segmentation fault might occur in worker process +if the "auth_http_header" directive was used.
+Thanks to Maxim Dounin. +
+
+ + + +если использовался метод аутентификации CRAM-MD5, но он не был разрешён, +то в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process +if the CRAM-MD5 authentication method was used, but it was not enabled. + + + + + +при использовании протокола HTTPS в директиве proxy_pass +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process when +the HTTPS protocol was used in the "proxy_pass" directive. + + + + + +в рабочем процессе мог произойти segmentation fault, +если использовался метод eventport. + + +a segmentation fault might occur in worker process +if the eventport method was used. + + + + + +директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort не работали; +ошибка появилась в 0.5.13. + + +the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives +did not work; +the bug had appeared in 0.5.13. + + + +
+ + + + + + +если заголовок ответа был разделён в FastCGI-записях, то nginx передавал +клиенту мусор в таких заголовках. + + +if the FastCGI header was split in records, +then nginx passed garbage in the header to a client. + + + + + + + + + + +в парсинге SSI. + + +in SSI parsing. + + + + + +при использовании удалённого подзапроса в SSI последующий +подзапрос локального файла мог отдаваться клиенту в неверном порядке. + + +if remote SSI subrequest was used, then posterior local file subrequest +might transferred to client in wrong order. + + + + + +большие включения в SSI, сохранённые во временные файлы, +передавались не полностью. + + +large SSI inclusions buffered in temporary files were truncated. + + + + + +значение perl'овой переменной $$ модуля ngx_http_perl_module было равно +номеру главного процесса. + + +the perl $$ variable value in ngx_http_perl_module was equal to the master +process identification number. + + + + + + + + + + +директивы "server_name", "map", and "valid_referers" поддерживают +маски вида "www.example.*". + + +the "server_name", "map", and "valid_referers" directives support +the "www.example.*" wildcards. + + + + + + + + + + +nginx не собирался с параметром --without-http_rewrite_module; +ошибка появилась в 0.5.24. + + +nginx could not be built with the --without-http_rewrite_module parameter; +the bug had appeared in 0.5.24. + + + + + + + + + + +директива ssl_verify_client не работала, если запрос выполнялся +по протоколу HTTP/0.9. + + +the "ssl_verify_client" directive did not work if request was made +using HTTP/0.9. + + + + + +при использовании сжатия часть ответа могла передаваться несжатой; +ошибка появилась в 0.5.23. + + +a part of response body might be passed uncompressed if gzip was used; +the bug had appeared in 0.5.23. + + + + + + + + + + +модуль ngx_http_ssl_module поддерживает расширение TLS Server Name Indication. + + +the ngx_http_ssl_module supports Server Name Indication TLS extension. + + + + + +директива fastcgi_catch_stderr.
+Спасибо Николаю Гречуху, проект OWOX. +
+ +the "fastcgi_catch_stderr" directive.
+Thanks to Nick S. Grechukh, OWOX project. +
+
+ + + +на Линуксе в основном процессе происходил segmentation fault, +если два виртуальных сервера должны bind()ится к пересекающимся портам. + + +a segmentation fault occurred in master process if +two virtual servers should bind() to the overlapping ports. + + + + + +если nginx был собран с модулем ngx_http_perl_module и perl +поддерживал потоки, то во время второй переконфигурации +выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed". + + +if nginx was built with ngx_http_perl_module and perl supported threads, +then during second reconfiguration the error messages +"panic: MUTEX_LOCK" and "perl_parse() failed" were issued. + + + + + +в использовании протокола HTTPS в директиве proxy_pass. + + +in the HTTPS protocol in the "proxy_pass" directive. + + + +
+ + + + + + +большое тело запроса могло не передаваться бэкенду; +ошибка появилась в 0.5.21. + + +a big request body might not be passed to backend; +the bug had appeared in 0.5.21. + + + + + + + + + + +если внутри сервера описано больше примерно десяти location'ов, +то location'ы, заданные с помощью регулярного выражения, +могли выполняться не в том, порядке, в каком они описаны. + + +if server has more than about ten locations, then regex locations +might be chosen not in that order as they were specified. + + + + + +на 64-битной платформе рабочий процесс мог зациклиться, если 33-тий +по счёту или последующий бэкенд упал.
+Спасибо Антону Поварову. +
+ +a worker process may got caught in an endless loop on 64-bit platform, +if the 33-rd or next in succession backend has failed.
+Thanks to Anton Povarov. +
+
+ + + +при использовании библиотеки PCRE на Solaris/sparc64 +мог произойти bus error.
+Спасибо Андрею Нигматулину. +
+ +a bus error might occur on Solaris/sparc64 if the PCRE library was used.
+Thanks to Andrei Nigmatulin. +
+
+ + + +в использовании протокола HTTPS в директиве proxy_pass. + + +in the HTTPS protocol in the "proxy_pass" directive. + + + +
+ + + + + + +директива sendfile_max_chunk. + + +the "sendfile_max_chunk" directive. + + + + + +переменные "$http_...", "$sent_http_..." и "$upstream_http_..." +можно менять директивой set. + + +the "$http_...", "$sent_http_...", and "$upstream_http_..." variables +may be changed using the "set" directive. + + + + + +при использовании SSI-команды 'if expr="$var = /"' +в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process +if the SSI command 'if expr="$var = /"' was used. + + + + + +завершающая строка multipart range ответа передавалась неверно.
+Спасибо Evan Miller. +
+ +trailing boundary of multipart range response was transferred incorrectly.
+Thanks to Evan Miller. +
+
+ + + +nginx не работал на Solaris/sparc64, если был собран Sun Studio.
+Спасибо Андрею Нигматулину. +
+ +nginx did not work on Solaris/sparc64 if it was built by Sun Studio.
+Thanks to Andrei Nigmatulin. +
+
+ + + +модуль ngx_http_perl_module не собирался make в Solaris.
+Спасибо Андрею Нигматулину. +
+ +the ngx_http_perl_module could not be built by Solaris make.
+Thanks to Andrei Nigmatulin. +
+
+ +
+ + + + + + +значение переменной $request_time теперь записывается с точностью +до миллисекунд. + + +now the $request_time variable has millisecond precision. + + + + + +метод $r->rflush в модуле ngx_http_perl_module переименован в $r->flush. + + +the method $r->rflush of ngx_http_perl_module was renamed to the $r->flush. + + + + + +переменная $upstream_addr. + + +the $upstream_addr variable. + + + + + +директивы proxy_headers_hash_max_size и proxy_headers_hash_bucket_size.
+Спасибо Володымыру Костырко. +
+ +the "proxy_headers_hash_max_size" and "proxy_headers_hash_bucket_size" +directives.
+Thanks to Volodymyr Kostyrko. +
+
+ + + +при использовании sendfile и limit_rate на 64-битных платформах +нельзя было передавать файлы больше 2G. + + +the files more than 2G could not be transferred using sendfile and limit_rate +on 64-bit platforms. + + + + + +при использовании sendfile на 64-битном Linux нельзя было передавать файлы +больше 2G. + + +the files more than 2G could not be transferred using sendfile on 64-bit Linux. + + + +
+ + + + + + +модуль ngx_http_sub_filter_module. + + +the ngx_http_sub_filter_module. + + + + + +переменные "$upstream_http_...". + + +the "$upstream_http_..." variables. + + + + + +теперь переменные $upstream_status и $upstream_response_time +содержат данные о всех обращениях к апстримам, сделанным до X-Accel-Redirect. + + +now the $upstream_status and $upstream_response_time variables +keep data about all upstreams before X-Accel-Redirect. + + + + + +если nginx был собран с модулем ngx_http_perl_module и perl +не поддерживал multiplicity, то после первой переконфигурации +и после получения любого сигнала +в основном процессе происходил segmentation fault; +ошибка появилась в 0.5.9. + + +a segmentation fault occurred in master process +after first reconfiguration and receiving any signal +if nginx was built with ngx_http_perl_module and perl +did not support multiplicity; +the bug had appeared in 0.5.9. + + + + + +если perl не поддерживал multiplicity, то после переконфигурации +перловый код не работал; +ошибка появилась в 0.3.38. + + +if perl did not support multiplicity, then after reconfiguration +perl code did not work; +the bug had appeared in 0.3.38. + + + + + + + + + + +теперь nginx для метода TRACE всегда возвращает код 405. + + +now nginx always returns the 405 status for the TRACE method. + + + + + +теперь nginx поддерживает директиву include внутри блока types. + + +now nginx supports the "include" directive inside the "types" block. + + + + + +использование переменной $document_root в директиве root и alias +запрещено: оно вызывало рекурсивное переполнение стека. + + +the $document_root variable usage in the "root" and "alias" directives +is disabled: this caused recursive stack overflow. + + + + + +в использовании протокола HTTPS в директиве proxy_pass. + + +in the HTTPS protocol in the "proxy_pass" directive. + + + + + +в некоторых случаях некэшируемые переменные (такие, как $uri) +возвращали старое закэшированное значение. + + +in some cases non-cacheable variables (such as $uri variable) +returned old cached value. + + + + + + + + + + +в качестве ключа для хэша в директиве ip_hash не использовалась сеть +класса С.
+Спасибо Павлу Ярковому. +
+ +the C-class network was not used as hash key in the "ip_hash" directive.
+Thanks to Pavel Yarkovoy. +
+
+ + + +если в строке "Content-Type" в заголовке ответа бэкенда был указан charset +и строка завершалась символом ";", +то в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.3.50. + + +a segmentation fault might occur in worker process +if a charset was set in the "Content-Type" header line and the line +has trailing ";"; +the bug had appeared in 0.3.50. + + + + + +ошибки "[alert] zero size buf" при работе с FastCGI-сервером, если +тело запроса, записанное во временный файл, было кратно 32K. + + +the "[alert] zero size buf" error when FastCGI server was used and +a request body written in a temporary file was multiple of 32K. + + + + + +nginx не собирался на Solaris без параметра --with-debug; +ошибка появилась в 0.5.15. + + +nginx could not be built on Solaris without the --with-debug option; +the bug had appeared in 0.5.15. + + + +
+ + + + + + +почтовый прокси-сервер поддерживает аутентифицированное SMTP-проксирование и +директивы smtp_auth, smtp_capabilities и xclient.
+Спасибо Антону Южанинову и Максиму Дунину. +
+ +the mail proxy supports authenticated SMTP proxying and +the "smtp_auth", "smtp_capabilities", and "xclient" directives.
+Thanks to Anton Yuzhaninov and Maxim Dounin. +
+
+ + + +теперь keep-alive соединения закрываются сразу же по получении сигнала +переконфигурации. + + +now the keep-alive connections are closed just after receiving +the reconfiguration signal. + + + + + +директивы imap и auth переименованы соответственно в mail и pop3_auth. + + +the "imap" and "auth" directives were renamed +to the "mail" and "pop3_auth" directives. + + + + + +если использовался метод аутентификации CRAM-MD5 и не был разрешён метод APOP, +то в рабочем процессе происходил segmentation fault. + + +a segmentation fault occurred in worker process +if the CRAM-MD5 authentication method was used +and the APOP method was disabled. + + + + + +при использовании директивы starttls only в протоколе POP3 nginx +разрешал аутентификацию без перехода в режим SSL. + + +if the "starttls only" directive was used in POP3 protocol, +then nginx allowed authentication without switching to the SSL mode. + + + + + +рабочие процессы не выходили после переконфигурации и не переоткрывали логи, +если использовался метод eventport. + + +worker processes did not exit after reconfiguration and +did not rotate logs if the eventport method was used. + + + + + +при использовании директивы ip_hash рабочий процесс мог зациклиться. + + +a worker process may got caught in an endless loop, +if the "ip_hash" directive was used. + + + + + +теперь nginx не пишет в лог некоторые alert'ы, +если используются методы eventport или /dev/poll. + + +now nginx does not log some alerts if eventport or /dev/poll methods are used. + + + +
+ + + + + + +nginx игнорировал лишние закрывающие скобки "}" в конце +конфигурационного файла. + + +nginx ignored superfluous closing "}" in the end of configuration file. + + + + + + + + + + +методы COPY и MOVE. + + +the COPY and MOVE methods. + + + + + +модуль ngx_http_realip_module устанавливал мусор для запросов, +переданных по keep-alive соединению. + + +the ngx_http_realip_module set garbage for requests passed via +keep-alive connection. + + + + + +nginx не работал на 64-битном big-endian Linux.
+Спасибо Андрею Нигматулину. +
+ +nginx did not work on big-endian 64-bit Linux.
+Thanks to Andrei Nigmatulin. +
+
+ + + +при получении слишком длинной команды IMAP/POP3-прокси теперь сразу +закрывает соединение, а не по таймауту. + + +now when IMAP/POP3 proxy receives too long command it closes the connection +right away, but not after timeout. + + + + + +если при использовании метода epoll клиент закрывал преждевременно +соединение со своей стороны, то nginx закрывал это соединение только +по истечении таймаута на передачу. + + +if the "epoll" method was used and a client closed a connection prematurely, +then nginx closed the connection after a send timeout only. + + + + + +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.5.8. + + +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.5.8. + + + +
+ + + + + + +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.5.8. + + +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.5.8. + + + + + +при использовании временных файлов в время работы с FastCGI-сервером +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.5.8. + + +a segmentation fault might occur in worker process +if the temporary files were used while working with FastCGI server; +the bug had appeared in 0.5.8. + + + + + +если переменная $fastcgi_script_name записывалась в лог, +то в рабочем процессе мог произойти segmentation fault. + + +a segmentation fault might occur in worker process +if the $fastcgi_script_name variable was logged. + + + + + +ngx_http_perl_module не собирался на Solaris. + + +ngx_http_perl_module could not be built on Solaris. + + + + + + + + + + +теперь configure определяет библиотеку PCRE в MacPorts.
+Спасибо Chris McGrath. +
+ +now configure detects system PCRE library in MacPorts.
+Thanks to Chris McGrath. +
+
+ + + +ответ был неверным, если запрашивалось несколько диапазонов; +ошибка появилась в 0.5.6. + + +the response was incorrect if several ranges were requested; +the bug had appeared in 0.5.6. + + + + + +директива create_full_put_path не могла создавать промежуточные каталоги, +если не была установлена директива dav_access.
+Спасибо Evan Miller. +
+ +the "create_full_put_path" directive could not create the intermediate +directories if no "dav_access" directive was set.
+Thanks to Evan Miller. +
+
+ + + +вместо кодов ошибок "400" и "408" в access_log мог записываться код "0". + + +the "0" response code might be logged in the access_log instead of +the "400" and "408" error codes. + + + + + +при сборке с оптимизацией -O2 в рабочем процессе мог произойти +segmentation fault. + + +a segmentation fault might occur in worker process +if nginx was built with -O2 optimization. + + + +
+ + + + + + +во время обновления исполняемого файла новый процесс не наследовал +слушающие сокеты; +ошибка появилась в 0.5.9. + + +while online executable file upgrade the new master process did not +inherit the listening sockets; +the bug had appeared in 0.5.9. + + + + + +при сборке с оптимизацией -O2 в рабочем процессе мог произойти +segmentation fault; +ошибка появилась в 0.5.1. + + +a segmentation fault might occur in worker process +if nginx was built with -O2 optimization; +the bug had appeared in 0.5.1. + + + + + + + + + + +модуль ngx_http_memcached_module теперь в качестве ключа использует +значение переменной $memcached_key. + + +now the ngx_http_memcached_module uses the $memcached_key variable value +as a key. + + + + + +переменная $memcached_key. + + +the $memcached_key variable. + + + + + +параметр clean в директиве client_body_in_file_only. + + +the "clean" parameter in the "client_body_in_file_only" directive. + + + + + +директива env. + + +the "env" directive. + + + + + +директива sendfile работает внутри блока if. + + +the "sendfile" directive is available inside the "if" block. + + + + + +теперь при ошибке записи в access_log nginx записывает сообщение в error_log, +но не чаще одного раза в минуту. + + +now on failure of the writing to access nginx logs a message to error_log, +but not more often than once a minute. + + + + + +директива "access_log off" не всегда запрещала запись в лог. + + +the "access_log off" directive did not always turn off the logging. + + + + + + + + + + +если использовалась директива "client_body_in_file_only on" +и тело запроса было небольшое, то мог произойти segmentation fault. + + +a segmentation fault might occur if +"client_body_in_file_only on" was used +and a request body was small. + + + + + +происходил segmentation fault, если использовались директивы +"client_body_in_file_only on""proxy_pass_request_body off" +или "fastcgi_pass_request_body off", +и делался переход к следующему бэкенду. + + +a segmentation fault occurred if "client_body_in_file_only on" +and "proxy_pass_request_body off" +or "fastcgi_pass_request_body off" +directives were used, and nginx switched to a next upstream. + + + + + +если при использовании директивы "proxy_buffering off" соединение с клиентом +было неактивно, то оно закрывалось по таймауту, заданному директивой +send_timeout; +ошибка появилась в 0.4.7. + + +if the "proxy_buffering off" directive was used and a client connection +was non-active, then the connection was closed after send timeout; +the bug had appeared in 0.4.7. + + + + + +если при использовании метода epoll клиент закрывал преждевременно +соединение со своей стороны, то nginx закрывал это соединение только +по истечении таймаута на передачу. + + +if the "epoll" method was used and a client closed a connection prematurely, +then nginx closed the connection after a send timeout only. + + + + + +ошибки "[alert] zero size buf" при работе с FastCGI-сервером. + + +the "[alert] zero size buf" error when FastCGI server was used. + + + + + +Исправление ошибок в директиве limit_zone. + + +Bugfixes in the "limit_zone" directive. + + + + + + + + + + +оптимизация использования памяти в ssl_session_cache. + + +the ssl_session_cache storage optimization. + + + + + +Исправление ошибок в директивах ssl_session_cache и limit_zone. + + +Bugfixes in the "ssl_session_cache" and "limit_zone" directives. + + + + + +на старте или во время переконфигурации происходил segmentation fault, +если директивы ssl_session_cache или limit_zone использовались +на 64-битных платформах. + + +the segmentation fault was occurred on start or while reconfiguration +if the "ssl_session_cache" or "limit_zone" directives were used +on 64-bit platforms. + + + + + +при использовании директив add_before_body или add_after_body происходил +segmentation fault, если в заголовке ответа нет строки "Content-Type". + + +a segmentation fault occurred if the "add_before_body" or "add_after_body" +directives were used and there was no "Content-Type" header line in response. + + + + + +библиотека OpenSSL всегда собиралась с поддержкой потоков.
+Спасибо Дену Иванову. +
+ +the OpenSSL library was always built with the threads support.
+Thanks to Den Ivanov. +
+
+ + + +совместимость библиотеки PCRE-6.5+ и компилятора icc. + + +the PCRE-6.5+ library and the icc compiler compatibility. + + + +
+ + + + + + +теперь модуль ngx_http_index_module игнорирует все методы, +кроме GET, HEAD и POST. + + +now the ngx_http_index_module ignores all methods except the GET, HEAD, and +POST methods. + + + + + +модуль ngx_http_limit_zone_module. + + +the ngx_http_limit_zone_module. + + + + + +переменная $binary_remote_addr. + + +the $binary_remote_addr variable. + + + + + +директивы ssl_session_cache модулей ngx_http_ssl_module и ngx_imap_ssl_module. + + +the "ssl_session_cache" directives +of the ngx_http_ssl_module and ngx_imap_ssl_module. + + + + + +метод DELETE поддерживает рекурсивное удаление. + + +the DELETE method supports recursive removal. + + + + + +при использовании $r->sendfile() byte-ranges передавались неверно. + + +the byte-ranges were transferred incorrectly if the $r->sendfile() was used. + + + + + + + + + + +ключ -v больше не выводит информацию о компиляторе. + + +the -v switch does not show compiler information any more. + + + + + +ключ -V. + + +the -V switch. + + + + + +директива worker_rlimit_core поддерживает указание размера в K, M и G. + + +the "worker_rlimit_core" directive supports size in K, M, and G. + + + + + +модуль nginx.pm теперь может устанавливаться непривилегированным пользователем. + + +the nginx.pm module now could be installed by an unprivileged user. + + + + + +при использовании методов $r->request_body или $r->request_body_file мог +произойти segmentation fault. + + +a segmentation fault might occur if the $r->request_body or +$r->request_body_file methods were used. + + + + + +ошибок, специфичных для платформы ppc. + + +the ppc platform specific bugs. + + + + + + + + + + +директиву perl можно использовать внутри блока limit_except. + + +the "perl" directive may be used inside the "limit_except" block. + + + + + +модуль ngx_http_dav_module требовал строку "Date" в заголовке запроса +для метода DELETE. + + +the ngx_http_dav_module required the "Date" request header line +for the DELETE method. + + + + + +при использовании одного параметра в директиве dav_access nginx мог +сообщить об ошибке в конфигурации. + + +if one only parameter was used in the "dav_access" directive, then +nginx might report about configuration error. + + + + + +при использовании переменной $host мог произойти segmentation fault; +ошибка появилась в 0.4.14. + + +a segmentation fault might occur if the $host variable was used; +the bug had appeared in 0.4.14. + + + + + + + + + + +модуль ngx_http_perl_module поддерживает методы $r->status, $r->log_error +и $r->sleep. + + +the ngx_http_perl_module supports the $r->status, $r->log_error, +and $r->sleep methods. + + + + + +метод $r->variable поддерживает переменные, неописанные в конфигурации nginx'а. + + +the $r->variable method supports variables that do not exist in nginx +configuration. + + + + + +метод $r->has_request_body не работал. + + +the $r->has_request_body method did not work. + + + + + + + + + + +если в директивах proxy_pass использовалось имя, указанное в upstream, +то nginx пытался найти IP-адрес этого имени; +ошибка появилась в 0.5.1. + + +if the "proxy_pass" directive used the name of the "upstream" block, +then nginx tried to resolve the name; +the bug had appeared in 0.5.1. + + + + + + + + + + +директива post_action могла не работать после неудачного завершения запроса. + + +the "post_action" directive might not run after a unsuccessful completion +of a request. + + + + + +обход ошибки в Eudora для Mac; +ошибка появилась в 0.4.11.
+Спасибо Bron Gondwana. +
+ +for Eudora for Mac; +the bug had appeared in 0.4.11.
+Thanks to Bron Gondwana. +
+
+ + + +при указании в директиве fastcgi_pass имени описанного upstream'а выдавалось +сообщение "no port in upstream"; +ошибка появилась в 0.5.0. + + +if the "upstream" name was used in the "fastcgi_pass", then the message +"no port in upstream" was issued; +the bug had appeared in 0.5.0. + + + + + +если в директивах proxy_pass и fastcgi_pass использовались одинаковых имена +серверов, но с разными портами, то эти директивы использовали первый +описанный порт; +ошибка появилась в 0.5.0. + + +if the "proxy_pass" and "fastcgi_pass" directives used the same servers but +different ports, then these directives uses the first described port; +the bug had appeared in 0.5.0. + + + + + +если в директивах proxy_pass и fastcgi_pass использовались unix domain сокеты, +то эти директивы использовали первый описанный сокет; +ошибка появилась в 0.5.0. + + +if the "proxy_pass" and "fastcgi_pass" directives used the unix domain sockets, +then these directives used first described socket; +the bug had appeared in 0.5.0. + + + + + +ngx_http_auth_basic_module игнорировал пользователя, если он был указан +в последней строке файла паролей и после пароля не было перевода строки, +возврата каретки или символа ":". + + +ngx_http_auth_basic_module ignored the user if it was in the last line in +the password file and there was no the carriage return, the line feed, +or the ":" symbol after the password. + + + + + +переменная $upstream_response_time могла быть равна "0.000", хотя время +обработки было больше 1 миллисекунды. + + +the $upstream_response_time variable might be equal to "0.000", although +response time was more than 1 millisecond. + + + +
+ + + + + + +параметры в виде "%name" в директиве log_format больше не поддерживаются. + + +the parameters in the "%name" form in the "log_format" directive +are not supported anymore. + + + + + +директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout, +fastcgi_upstream_max_fails, и fastcgi_upstream_fail_timeout, +memcached_upstream_max_fails и memcached_upstream_fail_timeout +больше не поддерживаются. + + +the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout", +"fastcgi_upstream_max_fails", "fastcgi_upstream_fail_timeout", +"memcached_upstream_max_fails", and "memcached_upstream_fail_timeout" +directives are not supported anymore. + + + + + +директива server в блоке upstream поддерживает параметры +max_fails, fail_timeout и down. + + +the "server" directive in the "upstream" context supports +the "max_fails", "fail_timeout", and "down" parameters. + + + + + +директива ip_hash в блоке upstream. + + +the "ip_hash" directive inside the "upstream" block. + + + + + +статус WAIT в строке "Auth-Status" в заголовке ответа сервера аутентификации +IMAP/POP3 прокси. + + +the WAIT status in the "Auth-Status" header line of the IMAP/POP3 proxy +authentication server response. + + + + + +nginx не собирался на 64-битных платформах; +ошибка появилась в 0.4.14. + + +nginx could not be built on 64-bit platforms; +the bug had appeared in 0.4.14. + + + + + + + + + + +директива proxy_pass_error_message в IMAP/POP3 прокси. + + +the "proxy_pass_error_message" directive in IMAP/POP3 proxy. + + + + + +теперь configure определяет библиотеку PCRE на FreeBSD, Linux и NetBSD. + + +now configure detects system PCRE library on FreeBSD, Linux, and NetBSD. + + + + + +ngx_http_perl_module не работал с перлом, собранным с поддержкой потоков; +ошибка появилась в 0.3.38. + + +ngx_http_perl_module did not work with perl built with the threads support; +the bug had appeared in 0.3.38. + + + + + +ngx_http_perl_module не работал корректно, если перл вызывался рекурсивно. + + +ngx_http_perl_module did not work if perl was called recursively. + + + + + +nginx игнорировал имя сервера в строке запроса. + + +nginx ignored a host name in a request line. + + + + + +если FastCGI сервер передавал много в stderr, +то рабочий процесс мог зациклиться. + + +a worker process may got caught in an endless loop, +if a FastCGI server sent too many data to the stderr. + + + + + +при изменении системного времени переменная $upstream_response_time +могла быть отрицательной. + + +the $upstream_response_time variable may be negative if the system time +was changed backward. + + + + + +при использовании POP3 серверу аутентификации IMAP/POP3 прокси +не передавался параметр Auth-Login-Attempt. + + +the "Auth-Login-Attempt" parameter was not sent to +IMAP/POP3 proxy authentication server when POP3 was used. + + + + + +при ошибке соединения с сервером аутентификации IMAP/POP3 прокси +мог произойти segmentation fault. + + +a segmentation fault might occur if connect to IMAP/POP3 proxy +authentication server failed. + + + + + + + + + + +директиву proxy_pass можно использовать внутри блока limit_except. + + +the "proxy_pass" directive may be used inside the "limit_except" block. + + + + + +директива limit_except поддерживает все WebDAV методы. + + +the "limit_except" directive supports all WebDAV methods. + + + + + +при использовании директивы add_before_body без директивы add_after_body +ответ передавался не полностью. + + +if the "add_before_body" directive was used without +the "add_after_body" directive, then a response did not transferred complete. + + + + + +большое тело запроса не принималось, если использовались метод epoll +и deferred accept(). + + +a large request body did not receive if the epoll method +and the deferred accept() were used. + + + + + +для ответов модуля ngx_http_autoindex_module не выставлялась кодировка; +ошибка появилась в 0.3.50. + + +a charset could not be set for ngx_http_autoindex_module responses; +the bug had appeared in 0.3.50. + + + + + +ошибки "[alert] zero size buf" при работе с FastCGI-сервером; + + +the "[alert] zero size buf" error when FastCGI server was used; + + + + + +параметр конфигурации --group= игнорировался.
+Спасибо Thomas Moschny. +
+ +the --group= configuration parameter was ignored.
+Thanks to Thomas Moschny. +
+
+ + + +50-й подзапрос в SSI ответе не работал; +ошибка появилась в 0.3.50. + + +the 50th subrequest in SSI response did not work; +the bug had appeared in 0.3.50. + + + +
+ + + + + + +модуль ngx_http_perl_module поддерживает метод $r->variable. + + +the ngx_http_perl_module supports the $r->variable method. + + + + + +при включении в ответ большого статического файла с помощью SSI +ответ мог передаваться не полностью. + + +if a big static file was included using SSI in a response, +then the response may be transferred incomplete. + + + + + +nginx не убирал "#fragment" в URI. + + +nginx did not omit the "#fragment" part in URI. + + + + + + + + + + +POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5. + + +the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5. + + + + + +модуль ngx_http_perl_module поддерживает метод $r->allow_ranges. + + +the ngx_http_perl_module supports the $r->allow_ranges method. + + + + + +при включённой поддержке команды APOP в POP3 прокси могли +не работать команды USER/PASS; +ошибка появилась в 0.4.10. + + +if the APOP was enabled in the POP3 proxy, then the USER/PASS commands +might not work; +the bug had appeared in 0.4.10. + + + + + + + + + + +POP3 прокси поддерживает APOP. + + +the POP3 proxy supports the APOP command. + + + + + +при использовании методов select, poll и /dev/poll во время ожидания +ответа от сервера аутентификации IMAP/POP3 прокси нагружал процессор. + + +if the select, poll or /dev/poll methods were used, then while +waiting authentication server response the IMAP/POP3 proxy hogged CPU. + + + + + +при использовании переменной $server_addr в директиве map мог +произойти segmentation fault. + + +a segmentation fault might occur if the $server_addr variable was used +in the "map" directive. + + + + + +модуль ngx_http_flv_module не поддерживал byte ranges для полных ответов; +ошибка появилась в 0.4.7. + + +the ngx_http_flv_module did not support the byte ranges for full responses; +the bug had appeared in 0.4.7. + + + + + +nginx не собирался на Debian amd64; +ошибка появилась в 0.4.9. + + +nginx could not be built on Debian amd64; +the bug had appeared in 0.4.9. + + + + + + + + + + +параметр set в команде SSI include. + + +the "set" parameter in the "include" SSI command. + + + + + +модуль ngx_http_perl_module теперь проверяет версию модуля nginx.pm. + + +the ngx_http_perl_module now tests the nginx.pm module version. + + + + + + + + + + +если до команды SSI include с параметром wait выполнялась ещё +одна команда SSI include, то параметр wait мог не работать. + + +if an "include" SSI command were before another "include" SSI command +with a "wait" parameter, then the "wait" parameter might not work. + + + + + +модуль ngx_http_flv_module добавлял FLV-заголовок для полных ответов.
+Спасибо Алексею Ковырину. +
+ +the ngx_http_flv_module added the FLV header to the full responses.
+Thanks to Alexey Kovyrin. +
+
+ +
+ + + + + + +модуль ngx_http_flv_module. + + +the ngx_http_flv_module. + + + + + +переменная $request_body_file. + + +the $request_body_file variable. + + + + + +директивы charset и source_charset поддерживают переменные. + + +the "charset" and "source_charset" directives support the variables. + + + + + +если до команды SSI include с параметром wait выполнялась ещё +одна команда SSI include, то параметр wait мог не работать. + + +if an "include" SSI command were before another "include" SSI command +with a "wait" parameter, then the "wait" parameter might not work. + + + + + +при использовании директивы "proxy_buffering off" или при работе +с memcached соединения могли не закрываться по таймауту. + + +if the "proxy_buffering off" directive was used or while working with +memcached the connections might not be closed on timeout. + + + + + +nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64. + + +nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64. + + + + + + + + + + +nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64. + + +nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64. + + + + + +при запросе версии HTTP/1.1 nginx передавал ответ chunk'ами, +если длина ответа в методе $r->headers_out("Content-Length", ...) +была задана текстовой строкой. + + +nginx sent the chunked response for HTTP/1.1 request,
+if its length was set by text string in +the $r->headers_out("Content-Length", ...) method. +
+
+ + + +после перенаправления ошибки с помощью директивы error_page любая директива +модуля ngx_http_rewrite_module возвращала эту ошибку; +ошибка появилась в 0.4.4. + + +after redirecting error by an "error_page" directive +any ngx_http_rewrite_module directive returned this error code; +the bug had appeared in 0.4.4. + + + +
+ + + + + + +nginx не собирался на Linux и Solaris; +ошибка появилась в 0.4.4. + + +nginx could not be built on Linux and Solaris; +the bug had appeared in 0.4.4. + + + + + + + + + + +переменная $scheme. + + +the $scheme variable. + + + + + +директива expires поддерживает параметр max. + + +the "expires" directive supports the "max" parameter. + + + + + +директива include поддерживает маску "*".
+Спасибо Jonathan Dance. +
+ +the "include" directive supports the "*" mask.
+Thanks to Jonathan Dance. +
+
+ + + +директива return всегда изменяла код ответа, перенаправленного +директивой error_page. + + +the "return" directive always overrode the "error_page" response code +redirected by the "error_page" directive. + + + + + +происходил segmentation fault, если в методе PUT передавалось +тело нулевой длины. + + +a segmentation fault occurred if zero-length body was in PUT method. + + + + + +при использовании переменных в директиве proxy_redirect редирект +изменялся неверно. + + +the redirect was changed incorrectly if the variables were used +in the "proxy_redirect" directive. + + + +
+ + + + + + +ошибку 499 теперь нельзя перенаправить с помощью директивы error_page. + + +now the 499 error could not be redirected using an "error_page" directive. + + + + + +поддержка Solaris 10 event ports. + + +the Solaris 10 event ports support. + + + + + +модуль ngx_http_browser_module. + + +the ngx_http_browser_module. + + + + + +при перенаправлении ошибки 400 проксированному серверу +помощью директивы error_page мог произойти segmentation fault. + + +a segmentation fault may occur while redirecting the 400 error +to the proxied server using a "proxy_pass" directive. + + + + + +происходил segmentation fault, если в директиве proxy_pass использовался +unix domain сокет; +ошибка появилась в 0.3.47. + + +a segmentation fault occurred if an unix domain socket was used in +a "proxy_pass" directive; +the bug had appeared in 0.3.47. + + + + + +SSI не работал с ответами memcached и небуферизированными проксированными +ответами. + + +SSI did work with memcached and nonbuffered responses. + + + + + +обход ошибки PAUSE hardware capability в Sun Studio. + + +of the Sun Studio PAUSE hardware capability bug. + + + + + + + + + + +убрана поддержка флага O_NOATIME на Linux; +ошибка появилась в 0.4.1. + + +the O_NOATIME flag support on Linux was canceled; +the bug had appeared in 0.4.1. + + + + + + + + + + +совместимость с DragonFlyBSD.
+Спасибо Павлу Назарову. +
+ +the DragonFlyBSD compatibility.
+Thanks to Pavel Nazarov. +
+
+ + + +обход ошибки в sendfile() в 64-битном Linux при передаче файлов больше 2G. + + +of bug in 64-bit Linux sendfile(), when file is more than 2G. + + + + + +теперь на Linux nginx для статических запросов использует флаг O_NOATIME.
+Спасибо Yusuf Goolamabbas. +
+ +now on Linux nginx uses O_NOATIME flag for static requests.
+Thanks to Yusuf Goolamabbas. +
+
+ +
+ + + + + + +Изменение во внутреннем API: инициализация модулей HTTP перенесена из фазы +init module в фазу HTTP postconfiguration. + + +Change in internal API: the HTTP modules initialization was moved +from the init module phase to the HTTP postconfiguration phase. + + + + + +теперь тело запроса в модуле ngx_http_perl_module не считывается +заранее: нужно явно инициировать чтение с помощью метода $r->has_request_body. + + +now the request body is not read beforehand for the ngx_http_perl_module: +it's required to start the reading using the $r->has_request_body method. + + + + + +модуль ngx_http_perl_module поддерживает код возврата DECLINED. + + +the ngx_http_perl_module supports the DECLINED return code. + + + + + +модуль ngx_http_dav_module поддерживает входящую строку заголовка "Date" +для метода PUT. + + +the ngx_http_dav_module supports the incoming "Date" header line +for the PUT method. + + + + + +директива ssi работает внутри блока if. + + +the "ssi" directive is available inside the "if" block. + + + + + +происходил segmentation fault, если в директиве index использовалась +переменные и при этом первое имя индексного файла было без переменных; +ошибка появилась в 0.1.29. + + +a segmentation fault occurred if there was an "index" directive with +variables and the first index name was without variables; +the bug had appeared in 0.1.29. + + + + + + + + + + +директива tcp_nodelay теперь по умолчанию включена. + + +now the "tcp_nodelay" directive is turned on by default. + + + + + +директива msie_refresh. + + +the "msie_refresh" directive. + + + + + +директива recursive_error_pages. + + +the "recursive_error_pages" directive. + + + + + +директива rewrite возвращала неправильный редирект, если редирект +включал в себя выделенные закодированные символы из оригинального URI. + + +the "rewrite" directive returned incorrect redirect, if the redirect +had the captured escaped symbols from original URI. + + + + + + + + + + +во время перенаправления ошибки рабочий процесс мог зациклиться; +ошибка появилась в 0.3.59. + + +a worker process may got caught in an endless loop +while an error redirection; +the bug had appeared in 0.3.59. + + + + + + + + + + +теперь можно делать несколько перенаправлений через директиву error_page. + + +now is possible to do several redirection using the "error_page" directive. + + + + + +директива dav_access не поддерживала три параметра. + + +the "dav_access" directive did not support three parameters. + + + + + +директива error_page не изменяла строку "Content-Type" +после перенаправления с помощью "X-Accel-Redirect"; +ошибка появилась в 0.3.58. + + +the "error_page" directive did not changes the "Content-Type" header line +after the "X-Accel-Redirect" was used; +the bug had appeared in 0.3.58. + + + + + + + + + + +директива error_page поддерживает переменные. + + +the "error_page" directive supports the variables. + + + + + +теперь на Linux используется интерфейс procfs вместо sysctl. + + +now the procfs interface instead of sysctl is used on Linux. + + + + + +теперь при использовании "X-Accel-Redirect" строка "Content-Type" наследуется +из первоначального ответа. + + +now the "Content-Type" header line is inherited from first response +when the "X-Accel-Redirect" was used. + + + + + +директива error_page не перенаправляла ошибку 413. + + +the "error_page" directive did not redirect the 413 error. + + + + + +завершающий "?" не удалял старые аргументы, если в переписанном URI +не было новых аргументов. + + +the trailing "?" did not remove old arguments if no new arguments +were added to a rewritten URI. + + + + + +nginx не запускался на 64-битной FreeBSD 7.0-CURRENT. + + +nginx could not run on 64-bit FreeBSD 7.0-CURRENT. + + + + + + + + + + +переменная $ssl_client_serial. + + +the $ssl_client_serial variable. + + + + + +в операторе "!-e" в директиве if.
+Спасибо Андриану Буданцову. +
+ +in the "!-e" operator of the "if" directive.
+Thanks to Andrian Budanstov. +
+
+ + + +при проверке клиентского сертификата nginx не передавал клиенту +информацию о требуемых сертификатах. + + +while a client certificate verification nginx did not send to a client +the required certificates information. + + + + + +переменная $document_root не поддерживала переменные в директиве root. + + +the $document_root variable did not support the variables in the "root" +directive. + + + +
+ + + + + + +директива dav_access. + + +the "dav_access" directive. + + + + + +директива if поддерживает операторы "-d", "!-d", "-e", "!-e", "-x" и "!-x". + + +the "if" directive supports the "-d", "!-d", "-e", "!-e", "-x", and "!-x" +operators. + + + + + +при записи в access_log некоторых передаваемых клиенту строк заголовков +происходил segmentation fault, если запрос возвращал редирект. + + +a segmentation fault occurred if a request returned a redirect and +some sent to client header lines were logged in the access log. + + + + + + + + + + +параметр stub в команде SSI include. + + +the "stub" parameter in the "include" SSI command. + + + + + +команда SSI block. + + +the "block" SSI command. + + + + + +скрипт unicode2nginx добавлен в contrib. + + +the unicode2nginx script was added to contrib. + + + + + +если root был задан только переменной, то корень задавался +относительно префикса сервера. + + +if a "root" was specified by variable only, then the root was relative +to a server prefix. + + + + + +если в запросе был "//" или "/.", и после этого закодированные +символы в виде "%XX", то проксируемый запрос передавался незакодированным. + + +if the request contained "//" or "/./" and escaped symbols after them, +then the proxied request was sent unescaped. + + + + + +метод $r->header_in("Cookie") модуля ngx_http_perl_module теперь возвращает +все строки "Cookie" в заголовке запроса. + + +the $r->header_in("Cookie") of the ngx_http_perl_module now returns +all "Cookie" header lines. + + + + + +происходил segmentation fault, если использовался +"client_body_in_file_only on" +и делался переход к следующему бэкенду. + + +a segmentation fault occurred if "client_body_in_file_only on" +was used and nginx switched to a next upstream. + + + + + +при некоторых условиях во время переконфигурации коды символов +внутри директивы charset_map могли считаться неверными; +ошибка появилась в 0.3.50. + + +on some condition while reconfiguration character codes +inside the "charset_map" may be treated invalid; +the bug had appeared in 0.3.50. + + + + + + + + + + +nginx теперь записывает в лог информацию о подзапросах. + + +nginx now logs the subrequest information to the error log. + + + + + +директивы proxy_next_upstream, fastcgi_next_upstream и memcached_next_upstream +поддерживают параметр off. + + +the "proxy_next_upstream", "fastcgi_next_upstream", +and "memcached_next_upstream" directives support the "off" parameter. + + + + + +директива debug_connection поддерживает запись адресов в формате CIDR. + + +the "debug_connection" directive supports the CIDR address form. + + + + + +при перекодировании ответа проксированного сервера или сервера FastCGI +в UTF-8 или наоборот ответ мог передаваться не полностью. + + +if a response of proxied server or FastCGI server was converted from UTF-8 +or back, then it may be transferred incomplete. + + + + + +переменная $upstream_response_time содержала время только первого +обращения к бэкенду. + + +the $upstream_response_time variable had the time of the first +request to a backend only. + + + + + +nginx не собирался на платформе amd64; +ошибка появилась в 0.3.53. + + +nginx could not be built on amd64 platform; +the bug had appeared in 0.3.53. + + + + + + + + + + +директива add_header добавляет строки в ответы с кодом 204, 301 и 302. + + +the "add_header" directive adds the string to 204, 301, and 302 responses. + + + + + +директива server в блоке upstream поддерживает параметр weight. + + +the "server" directive in the "upstream" context supports +the "weight" parameter. + + + + + +директива server_name поддерживает маску "*". + + +the "server_name" directive supports the "*" wildcard. + + + + + +nginx поддерживает тело запроса больше 2G. + + +nginx supports the request body size more than 2G. + + + + + +если при использовании "satisfy_any on" клиент успешно проходил аутентификацию, +в лог всё равно записалоcь сообщение "access forbidden by rule". + + +if a client was successfully authorized using "satisfy_any on", then anyway +the message "access forbidden by rule" was written in the log. + + + + + +метод PUT мог ошибочно не создать файл и вернуть код 409. + + +the "PUT" method may erroneously not create a file and return the 409 code. + + + + + +если во время аутентификации IMAP/POP3 бэкенд возвращал ошибку, nginx +продолжал проксирование. + + +if the IMAP/POP3 backend returned an error, then nginx continued proxying +anyway. + + + + + + + + + + +восстановлено поведение модуля ngx_http_index_module для запросов "POST /": +как в версии до 0.3.40, модуль теперь не выдаёт ошибку 405. + + +the ngx_http_index_module behavior for the "POST /" requests is reverted +to the 0.3.40 version state: the module now does not return the 405 error. + + + + + +при использовании ограничения скорости рабочий процесс мог зациклиться; +ошибка появилась в 0.3.37. + + +the worker process may got caught in an endless loop if the limit rate was used; +the bug had appeared in 0.3.37. + + + + + +модуль ngx_http_charset_module записывал в лог ошибку "unknown charset", +даже если перекодировка не требовалась; +ошибка появилась в 0.3.50. + + +ngx_http_charset_module logged "unknown charset" alert, even if the recoding +was not needed; +the bug had appeared in 0.3.50. + + + + + +если в результате запроса PUT возвращался код 409, то временный файл +не удалялся. + + +if a code response of the PUT request was 409, then a temporary file +was not removed. + + + + + + + + + + +при некоторых условиях в SSI мог пропадать символы "<"; +ошибка появилась в 0.3.50. + + +the "<" symbols might disappeared some conditions in the SSI; +the bug had appeared in 0.3.50. + + + + + + + + + + +директивы proxy_redirect_errors и fastcgi_redirect_errors +переименованы соответственно в proxy_intercept_errors и +fastcgi_intercept_errors. + + +the "proxy_redirect_errors" and "fastcgi_redirect_errors" directives +was renamed to the "proxy_intercept_errors" and +"fastcgi_intercept_errors" directives. + + + + + +модуль ngx_http_charset_module поддерживает перекодирование из +однобайтных кодировок в UTF-8 и обратно. + + +the ngx_http_charset_module supports the recoding from the single byte +encodings to the UTF-8 encoding and back. + + + + + +в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Charset" +в ответе бэкенда. + + +the "X-Accel-Charset" response header line is supported in proxy +and FastCGI mode. + + + + + +символ "\" в парах "\"" и "\'" в SSI командах убирался, только если +также использовался символ "$". + + +the "\" escape symbol in the "\"" and "\'" pairs in the SSI command +was removed only if the command also has the "$" symbol. + + + + + +при некоторых условиях в SSI после вставки могла быть добавлена +строка "<!--". + + +the "<!--" string might be added on some conditions +in the SSI after inclusion. + + + + + +если в заголовке ответа была строка "Content-Length: 0", +то при использовании небуферизированного проксировании не закрывалось соединение +с клиентом. + + +if the "Content-Length: 0" header line was in response, then +in nonbuffered proxying mode the client connection was not closed. + + + + + + + + + + +в директиве set. + + +in the "set" directive. + + + + + +при включении в ssi двух и более подзапросов, обрабатываемых через FastCGI, +вместо вывода второго и остальных подзапросов в ответ включался вывод +первого подзапроса. + + +if two or more FastCGI subrequests was in SSI, then first subrequest output +was included instead of second and following subrequests. + + + + + + + + + + +теперь модуль ngx_http_charset_module работает для подзапросов, +в ответах которых нет строки заголовка "Content-Type". + + +now the ngx_http_charset_module works for subrequests, +if the response has no "Content-Type" header line. + + + + + +если в директиве proxy_pass не было URI, +то директива "proxy_redirect default" добавляла в переписанный +редирект в начало лишний слэш. + + +if the "proxy_pass" directive has no URI part, +then the "proxy_redirect default" directive add the unnecessary slash +in start of the rewritten redirect. + + + + + +внутренний редирект всегда превращал любой HTTP-метод в GET, +теперь это делается только для редиректов, выполняемых с помощью +X-Accel-Redirect, и у которых метод не равен HEAD; +ошибка появилась в 0.3.42. + + +the internal redirect always transform client's HTTP method to GET, +now the transformation is made for the "X-Accel-Redirect" redirects only +and if the method is not HEAD; +the bug had appeared in 0.3.42. + + + + + +модуль ngx_http_perl_module не собирался, если перл был с поддержкой потоков; +ошибка появилась в 0.3.46. + + +the ngx_http_perl_module could not be built, if the perl was built +with the threads support; +the bug had appeared in 0.3.46. + + + + + + + + + + +директива upstream. + + +the "upstream" directive. + + + + + +символ "\" в парах "\"" и "\'" в SSI командах теперь всегда убирается. + + +now the "\" escape symbol in the "\"" and "\'" pairs in the SSI command +is always removed. + + + + + + + + + + +директивы proxy_hide_header, proxy_pass_header, fastcgi_hide_header +и fastcgi_pass_header. + + +the "proxy_hide_header", "proxy_pass_header", "fastcgi_hide_header", +and "fastcgi_pass_header" directives. + + + + + +директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и proxy_pass_server +упразднены. + + +the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and "proxy_pass_server" +directives were canceled. + + + + + +в режиме прокси поддерживается строка заголовка "X-Accel-Buffering" +в ответе бэкенда. + + +the "X-Accel-Buffering" response header line is supported in proxy mode. + + + + + +ошибок и утечек памяти при переконфигурации в модуле ngx_http_perl_module. + + +the reconfiguration bug and memory leaks in the ngx_http_perl_module. + + + + + + + + + + +директивы ssl_verify_client, ssl_verify_depth и ssl_client_certificate. + + +the "ssl_verify_client", "ssl_verify_depth", and "ssl_client_certificate" +directives. + + + + + +теперь переменная $request_method возвращает метод только основного запроса. + + +the $request_method variable now returns the main request method. + + + + + +в таблице перекодировки koi-win изменены коды символа &deg;. + + +the &deg; symbol codes were changed in koi-win conversion table. + + + + + +в таблицу перекодировки koi-win добавлены символы евро и номера. + + +the euro and N symbols were added to koi-win conversion table. + + + + + +если nginx распределял запросы на несколько машин, то при падении +одной из них запросы, предназначенные для этой машины, перенаправлялись только +на одну машину вместо того, чтобы равномерно распределяться между остальными. + + +if nginx distributed the requests among several backends and some backend +failed, then requests intended for this backend was directed to one live +backend only instead of being distributed among the rest. + + + + + + + + + + +параметр wait в команде SSI include. + + +the "wait" parameter in the "include" SSI command. + + + + + +в таблицу перекодировки koi-win добавлены украинские и белорусские символы. + + +the Ukrainian and Byelorussian characters were added to koi-win conversion +table. + + + + + +в SSI. + + +in the SSI. + + + + + + + + + + +в SSI. + + +in the SSI. + + + + + + + + + + +параметр bind в директиве listen в IMAP/POP3 прокси. + + +the "bind" option of the "listen" directive in IMAP/POP3 proxy. + + + + + +ошибки при использовании в директиве rewrite одного и того же +выделения более одного раза. + + +if the same capture in the "rewrite" directive was used more then once. + + + + + +в лог не записывались переменные +$sent_http_content_type, $sent_http_content_length, $sent_http_last_modified, +$sent_http_connection, $sent_http_keep_alive и $sent_http_transfer_encoding. + + +the $sent_http_content_type, $sent_http_content_length, +$sent_http_last_modified, $sent_http_connection, $sent_http_keep_alive, +and $sent_http_transfer_encoding variables were not written to access log. + + + + + +переменная $sent_http_cache_control возвращала содержимое только одной +строки "Cache-Control" в заголовке ответа. + + +the $sent_http_cache_control returned value of the single "Cache-Control" +response header line. + + + + + + + + + + +ключ -v. + + +the -v switch. + + + + + +при включении в SSI удалённых подзапросов +мог произойти segmentation fault. + + +the segmentation fault may occurred if the SSI page has remote subrequests. + + + + + +в обработке FastCGI. + + +in FastCGI handling. + + + + + +если путь к перловым модулям не был указан с помощью +--with-perl_modules_path=PATH или директивы perl_modules, +то на старте происходил segmentation fault. + + +if the perl modules path was not set using +--with-perl_modules_path=PATH or the "perl_modules", then +the segmentation fault was occurred. + + + + + + + + + + +модуль ngx_http_dav_module поддерживает метод MKCOL. + + +the ngx_http_dav_module supports the MKCOL method. + + + + + +директива create_full_put_path. + + +the "create_full_put_path" directive. + + + + + +переменная $limit_rate. + + +the "$limit_rate" variable. + + + + + + + + + + +директива uninitialized_variable_warn; уровень логгирования сообщения +о неинициализированной переменной понижен с уровня alert на warn. + + +the "uninitialized_variable_warn" directive; the logging level of the +"uninitialized variable" message was lowered from "alert" to "warn". + + + + + +директива override_charset. + + +the "override_charset" directive. + + + + + +при использовании неизвестной переменной в SSI-командах echo и if expr='$name' +теперь не записывается в лог сообщение о неизвестной переменной. + + +now if the unknown variable is used in the "echo" and "if expr='$name'" +SSI-commands, then the "unknown variable" message is not logged. + + + + + +счётчик активных соединений рос при превышении лимита соединений, +заданного директивой worker_connections; +ошибка появилась в 0.2.0. + + +the active connection counter increased on the exceeding of the connection +limit specified by the "worker_connections" directive; +the bug had appeared in 0.2.0. + + + + + +при некоторых условия ограничение скорости соединения могло не работать; +ошибка появилась в 0.3.38. + + +the limit rate might not work on some condition; +the bug had appeared in 0.3.38. + + + + + + + + + + +модуль ngx_http_dav_module. + + +the ngx_http_dav_module. + + + + + +оптимизация модуля ngx_http_perl_module.
+Спасибо Сергею Скворцову. +
+ +the ngx_http_perl_module optimizations.
+Thanks to Sergey Skvortsov. +
+
+ + + +модуль ngx_http_perl_module поддерживает метод $r->request_body_file. + + +the ngx_http_perl_module supports the $r->request_body_file method. + + + + + +директива client_body_in_file_only. + + +the "client_body_in_file_only" directive. + + + + + +теперь при переполнении диска nginx пытается писать access_log'и только +раз в секунду.
+Спасибо Антону Южанинову и Максиму Дунину. +
+ +now on disk overflow nginx tries to write access logs once a second only.
+Thanks to Anton Yuzhaninov and Maxim Dounin. +
+
+ + + +теперь директива limit_rate точнее ограничивает скорость при значениях +больше 100 Kbyte/s.
+Спасибо ForJest. +
+ +now the "limit_rate" directive more precisely limits rate if rate is more +than 100 Kbyte/s.
+Thanks to ForJest. +
+
+ + + +IMAP/POP3 прокси теперь передаёт серверу авторизации символы "\r" и "\n" +в логине и пароле в закодированном виде.
+Спасибо Максиму Дунину. +
+ +now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in login and +password to pass authorization server.
+Thanks to Maxim Dounin. +
+
+ +
+ + + + + + +директива limit_except. + + +the "limit_except" directive. + + + + + +директива if поддерживает операторы "!~", "!~*", "-f" и "!-f". + + +the "if" directive supports the "!~", "!~*", "-f", and "!-f" operators. + + + + + +модуль ngx_http_perl_module поддерживает метод $r->request_body. + + +the ngx_http_perl_module supports the $r->request_body method. + + + + + +в модуле ngx_http_addition_filter_module. + + +in the ngx_http_addition_filter_module. + + + + + + + + + + +модуль ngx_http_addition_filter_module. + + +the ngx_http_addition_filter_module. + + + + + +директивы proxy_pass и fastcgi_pass можно использовать внутри блока if. + + +the "proxy_pass" and "fastcgi_pass" directives may be used inside +the "if" block. + + + + + +директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort. + + +the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives. + + + + + +переменная $request_completion. + + +the "$request_completion" variable. + + + + + +модуль ngx_http_perl_module поддерживает методы $r->request_method и +$r->remote_addr. + + +the ngx_http_perl_module supports the $r->request_method and $r->remote_addr. + + + + + +модуль ngx_http_ssi_module поддерживает команду elif. + + +the ngx_http_ssi_module supports the "elif" command. + + + + + +строка "\/" в начале выражения команды if модуля ngx_http_ssi_module +воспринималась неверно. + + +the "\/" string in the expression of the "if" command of the +ngx_http_ssi_module was treated incorrectly. + + + + + +в использовании регулярных выражениях в команде if модуля ngx_http_ssi_module. + + +in the regular expressions in the "if" command of the ngx_http_ssi_module. + + + + + +при задании относительного пути в директивах +client_body_temp_path, proxy_temp_path, fastcgi_temp_path и perl_modules +использовался каталог относительно текущего каталога, а не относительно +префикса сервера. + + +if the relative path was specified in the "client_body_temp_path", +"proxy_temp_path", "fastcgi_temp_path", and "perl_modules" directives, +then the directory was used relatively to a current path but not +to a server prefix. + + + + + + + + + + +accept-фильтр и TCP_DEFER_ACCEPT устанавливались только для первой +директивы listen; +ошибка появилась в 0.3.31. + + +the accept-filter and the TCP_DEFER_ACCEPT option were set for first "listen" +directive only; +the bug had appeared in 0.3.31. + + + + + +в директиве proxy_pass без URI при использовании в подзапросе. + + +in the "proxy_pass" directive without the URI part in a subrequest. + + + + + + + + + + +директива add_header поддерживает переменные. + + +the "add_header" directive supports the variables. + + + + + + + + + + +параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream. + + +the "http_503" parameter of the "proxy_next_upstream" or +"fastcgi_next_upstream" directives. + + + + + +ngx_http_perl_module не работал со встроенным в конфигурационный файл кодом, +если он не начинался сразу же с "sub". + + +ngx_http_perl_module did not work with inlined in the configuration code, +if it was not started with the "sub" word. + + + + + +в директиве post_action. + + +in the "post_action" directive. + + + + + + + + + + +удаление отладочного логгирования на старте и при переконфигурации; +ошибка появилась в 0.3.31. + + +the debug logging on startup and reconfiguration time was removed; +the bug had appeared in 0.3.31. + + + + + + + + + + +теперь nginx передаёт неверные ответы проксированного бэкенда. + + +now nginx passes the malformed proxied backend responses. + + + + + +директивы listen поддерживают адрес в виде "*:порт". + + +the "listen" directives support the address in the "*:port" form. + + + + + +поддержка EVFILER_TIMER в MacOSX 10.4. + + +the EVFILER_TIMER support in MacOSX 10.4. + + + + + +обход ошибки обработки миллисекундных таймаутов kqueue в 64-битном ядре +MacOSX.
+Спасибо Андрею Нигматулину. +
+ +for MacOSX 64-bit kernel kqueue millisecond timeout bug.
+Thanks to Andrei Nigmatulin. +
+
+ + + +если внутри одного сервера описаны несколько директив listen, слушающих на +разных адресах, то имена серверов вида "*.domain.tld" работали только +для первого адреса; +ошибка появилась в 0.3.18. + + +if there were several "listen" directives listening one various addresses +inside one server, then server names like "*.domain.tld" worked for first +address only; +the bug had appeared in 0.3.18. + + + + + +при использовании протокола HTTPS в директиве proxy_pass не передавались +запросы с телом, записанным во временный файл. + + +if the HTTPS protocol was used in the "proxy_pass" directive and +the request body was in temporary file then the request was not transferred. + + + + + +совместимость с perl 5.8.8. + + +perl 5.8.8 compatibility. + + + +
+ + + + + + +уровень записи в лог ошибки ECONNABORTED изменён на error с уровня crit. + + +the ECONNABORTED error log level was changed to "error" from "crit". + + + + + +модуль ngx_http_perl_module не собирался без модуля ngx_http_ssi_filter_module. + + +the ngx_http_perl_module could not be build without +the ngx_http_ssi_filter_module. + + + + + +nginx не собирался на i386 платформе, если использовался PIC; +ошибка появилась в 0.3.27. + + +nginx could not be built on i386 platform, if the PIC was used; +the bug had appeared in 0.3.27. + + + + + + + + + + +теперь nginx использует меньше памяти, если PHP в режиме FastCGI передаёт +большое количество предупреждений перед ответом. + + +now nginx uses less memory, if PHP in FastCGI mode sends many warnings +before the response. + + + + + +в ответах 204 для запросов версии HTTP/1.1 выдавалась строка заголовка +"Transfer-Encoding: chunked". + + +the "Transfer-Encoding: chunked" header line was issued in the 204 responses +for the HTTP/1.1 requests. + + + + + +nginx возвращал 502 код ответа, если FastCGI сервер передавал полные строки +заголовка ответа в отдельных FastCGI записях. + + +nginx returned the 502 response, if the complete response header lines +were transferred in a separate FastCGI records. + + + + + +если в директиве post_action был указан проксируемый URI, то он выполнялся +только после успешного завершения запроса. + + +if the proxied URI was specified in the "post_action" directive, then it ran +only after a successful completion of a request. + + + + + + + + + + +директива restrict_host_names упразднена. + + +the "restrict_host_names" directive was canceled. + + + + + +параметр конфигурации --with-cpu-opt=ppc64. + + +the --with-cpu-opt=ppc64 configuration parameter. + + + + + +при некоторых условиях проксированное соединение с клиентом завершалось +преждевременно.
+Спасибо Владимиру Шутову. +
+ +on some condition the proxied connection with a client was terminated +prematurely.
+Thanks to Vladimir Shutoff. +
+
+ + + +строка заголовка "X-Accel-Limit-Rate" не учитывалась для запросов, +перенаправленных с помощью строки "X-Accel-Redirect". + + +the "X-Accel-Limit-Rate" header line was not taken into account +if the request was redirected using the "X-Accel-Redirect" header line. + + + + + +директива post_action работала только после успешного завершения запроса. + + +the "post_action" directive ran only after a successful completion of a request. + + + + + +тело проксированного ответа, создаваемого директивой post_action, +передавалось клиенту. + + +the proxied response body generated by the "post_action" directive +was transferred to a client. + + + +
+ + + + + + +директивы variables_hash_max_size и variables_hash_bucket_size. + + +the "variables_hash_max_size" and "variables_hash_bucket_size" directives. + + + + + +переменная $body_bytes_sent доступна не только в директиве log_format. + + +the $body_bytes_sent variable can be used not only in the "log_format" +directive. + + + + + +переменные $ssl_protocol и $ssl_cipher. + + +the $ssl_protocol and $ssl_cipher variables. + + + + + +определение размера строки кэша распространённых процессоров при старте. + + +the cache line size detection for widespread CPUs at start time. + + + + + +директива accept_mutex теперь поддерживается посредством fcntl(2) +на платформах, отличных от i386, amd64, sparc64 и ppc. + + +now the "accept_mutex" directive is supported using fcntl(2) +on platforms different from i386, amd64, sparc64, and ppc. + + + + + +директива lock_file и параметр автоконфигурации --with-lock-path=PATH. + + +the "lock_file" directive and the --with-lock-path=PATH autoconfiguration +directive. + + + + + +при использовании протокола HTTPS в директиве proxy_pass не передавались +запросы с телом. + + +if the HTTPS protocol was used in the "proxy_pass" directive then +the requests with the body was not transferred. + + + + + + + + + + +директива optimize_host_names переименована в optimize_server_names. + + +the "optimize_host_names" directive was renamed to the "optimize_server_names". + + + + + +при проксировании подзапроса в SSI бэкенду передавался URI основного запроса, +если в директиве proxy_pass отсутствовал URI. + + +if in the "proxy_pass" directive was no the URI part, then the main request +URI was transferred to a backend while proxying the SSI subrequest. + + + + + + + + + + +при неверной конфигурации на старте или во время переконфигурации происходил +segmentation fault; +ошибка появилась в 0.3.24. + + +the segmentation fault was occurred on start or while reconfiguration +if there was invalid configuration; +the bug had appeared in 0.3.24. + + + + + + + + + + +обход ошибки в kqueue во FreeBSD. + + +for bug in FreeBSD kqueue. + + + + + +ответ, создаваемый директивой post_action, теперь не передаётся клиенту. + + +now a response generated by the "post_action" directive is not transferred +to a client. + + + + + +при использовании большого количества лог-файлов происходила утечка памяти. + + +the memory leaks were occurring if many log files were used. + + + + + +внутри одного location работала только первая директива proxy_redirect. + + +the first "proxy_redirect" directive was working inside one location. + + + + + +на 64-битных платформах при старте мог произойти segmentation fault, +если использовалось большое количество имён в директивах server_name; +ошибка появилась в 0.3.18. + + +on 64-bit platforms segmentation fault may occurred on start +if the many names were used in the "server_name" directives; +the bug had appeared in 0.3.18. + + + + + + + + + + +директива optimize_host_names. + + +the "optimize_host_names" directive. + + + + + +ошибки при использовании переменных в директивах path и alias. + + +in using of the variables in the "path" and "alias" directives. + + + + + +модуль ngx_http_perl_module неправильно собирался на Linux и Solaris. + + +the ngx_http_perl_module was incorrectly built on Linux and Solaris. + + + + + + + + + + +модуль ngx_http_perl_module поддерживает методы $r->args и $r->unescape. + + +the ngx_http_perl_module supports the $r->args and $r->unescape methods. + + + + + +метод $r->query_string в модуле ngx_http_perl_module упразднён. + + +the method $r->query_string of ngx_http_perl_module was canceled. + + + + + +если в директиве valid_referers указаны только none или blocked, то +происходил segmentation fault; +ошибка появилась в 0.3.18. + + +segmentation fault was occurred if the "none" or "blocked" values was +specified in the "valid_referers" directive; +the bug had appeared in 0.3.18. + + + + + + + + + + +модуль ngx_http_perl_module. + + +the ngx_http_perl_module. + + + + + +директива valid_referers разрешает использовать рефереры совсем без URI. + + +the "valid_referers" directive allows the referrers without URI part. + + + + + + + + + + +ошибки в обработке SSI. + + +in SSI handling. + + + + + +модуль ngx_http_memcached_module не поддерживал ключи в виде /uri?args. + + +the ngx_http_memcached_module did not support the keys in the "/usr?args" form. + + + + + + + + + +директивы path и alias поддерживают переменные. + + +the "path" and "alias" directives support the variables. + + + + + +теперь директива valid_referers опять учитывает URI. + + +now the "valid_referers" directive again checks the URI part. + + + + + +ошибки в обработке SSI. + + +in SSI handling. + + + + + + + + + + +директива server_names поддерживает имена вида ".domain.tld". + + +the "server_names" directive supports the ".domain.tld" names. + + + + + +директива server_names использует хэш для имён вида "*.domain.tld" +и более эффективный хэш для обычных имён. + + +the "server_names" directive uses the hash for the "*.domain.tld" names +and more effective hash for usual names. + + + + + +директивы server_names_hash_max_size и server_names_hash_bucket_size. + + +the "server_names_hash_max_size" and "server_names_hash_bucket_size" directives. + + + + + +директивы server_names_hash и server_names_hash_threshold упразднены. + + +the "server_names_hash" and "server_names_hash_threshold" directives +were canceled. + + + + + +директива valid_referers использует хэш для имён сайтов. + + +the "valid_referers" directive uses the hash site names. + + + + + +теперь директива valid_referers проверяет только имена сайтов без учёта URI. + + +now the "valid_referers" directive checks the site names only without +the URI part. + + + + + +некоторые имена вида ".domain.tld" неверно обрабатывались модулем +ngx_http_map_module. + + +some ".domain.tld" names incorrectly processed by the ngx_http_map_module. + + + + + +если конфигурационного файла не было, то происходил segmentation fault; +ошибка появилась в 0.3.12. + + +segmentation fault was occurred if configuration file did not exist; +the bug had appeared in 0.3.12. + + + + + +на 64-битных платформах при старте мог произойти segmentation fault; +ошибка появилась в 0.3.16. + + +on 64-bit platforms segmentation fault may occurred on start; +the bug had appeared in 0.3.16. + + + + + + + + + + +на Linux configure теперь проверяет наличие epoll и sendfile64() в ядре. + + +now on Linux configure checks the presence of epoll and sendfile64() in kernel. + + + + + +директива map поддерживает доменные имена в формате ".domain.tld". + + +the "map" directive supports domain names in the ".domain.tld" form. + + + + + +во время SSL handshake не иcпользовались таймауты; +ошибка появилась в 0.2.4. + + +the timeouts were not used in SSL handshake; +the bug had appeared in 0.2.4. + + + + + +в использовании протокола HTTPS в директиве proxy_pass. + + +in the HTTPS protocol in the "proxy_pass" directive. + + + + + +при использовании протокола HTTPS в директиве proxy_pass по умолчанию +использовался порт 80. + + +when the HTTPS protocol was used in the "proxy_pass" directive the port 80 +was used by default. + + + + + + + + + + +модуль ngx_http_map_module. + + +the ngx_http_map_module. + + + + + +директивы types_hash_max_size и types_hash_bucket_size. + + +the "types_hash_max_size" and "types_hash_bucket_size" directives. + + + + + +директива ssi_value_length. + + +the "ssi_value_length" directive. + + + + + +директива worker_rlimit_core. + + +the "worker_rlimit_core" directive. + + + + + +при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для +Pentium 4 номер соединения в логах всегда был равен 1. + + +the connection number in logs was always 1 if nginx was built by the +icc 8.1 or 9.0 compilers with optimization for Pentium 4. + + + + + +команда config timefmt в SSI задавала неверный формат времени. + + +the "config timefmt" SSI command set incorrect time format. + + + + + +nginx не закрывал соединения с IMAP/POP3 бэкендом при использовании SSL +соединений; +ошибка появилась в 0.3.13.
+Спасибо Rob Mueller. +
+ +nginx did not close connection to IMAP/POP3 backend for the SSL +connections; +the bug had appeared in 0.3.13.
+Thanks to Rob Mueller. +
+
+ + + +segmentation fault мог произойти во время SSL shutdown; +ошибка появилась в 0.3.13. + + +segmentation fault may occurred in at SSL shutdown; +the bug had appeared in 0.3.13. + + + +
+ + + + + + +новой код 444 в директиве return для закрытия соединения. + + +the new 444 code of the "return" directive to close connection. + + + + + +директива so_keepalive в IMAP/POP3 прокси. + + +the "so_keepalive" directive in IMAP/POP3 proxy. + + + + + +nginx теперь вызывает abort() при обнаружении незакрытых соединений +только при плавном выходе и включённой директиве debug_points. + + +if there are unclosed connection nginx now calls abort() only on graceful +quit and active "debug_points" directive. + + + + + + + + + + +в ответе 304 передавалось тело ответа; +ошибка появилась в 0.3.13. + + +in the 304 response the body was transferred; +the bug had appeared in 0.3.13. + + + + + + + + + + +IMAP/POP3 прокси поддерживает STARTTLS и STLS. + + +the IMAP/POP3 proxy supports STARTTLS and STLS. + + + + + +IMAP/POP3 прокси не работала с методами select, poll и /dev/poll. + + +the IMAP/POP3 proxy did not work with the select, poll, and /dev/poll methods. + + + + + +ошибки в обработке SSI. + + +in SSI handling. + + + + + +sendfilev() в Solaris теперь не используется при передаче тела запроса +FastCGI-серверу через unix domain сокет. + + +now Solaris sendfilev() is not used to transfer the client request body +to FastCGI-server via the unix domain socket. + + + + + +директива auth_basic не запрещала аутентификацию; +ошибка появилась в 0.3.11. + + +the "auth_basic" directive did not disable the authorization; +the bug had appeared in 0.3.11. + + + + + + + + + + +если nginx был собран с модулем ngx_http_realip_module, то при использовании +директивы "satisfy_any on" директивы доступа и аутентификации не работали. +Модуль ngx_http_realip_module не собирался и не собирается по умолчанию. + + +if nginx was built with the ngx_http_realip_module and the "satisfy_any on" +directive was used, then access and authorization directives did not work. +The ngx_http_realip_module was not built and is not built by default. + + + + + +имя переменной "$time_gmt" изменено на "$time_local". + + +the "$time_gmt" variable name was changed to "$time_local". + + + + + +директивы proxy_header_buffer_size и fastcgi_header_buffer_size +переименованы соответственно в proxy_buffer_size и fastcgi_buffer_size. + + +the "proxy_header_buffer_size" and "fastcgi_header_buffer_size" directives +was renamed to the "proxy_buffer_size" and "fastcgi_buffer_size" directives. + + + + + +модуль ngx_http_memcached_module. + + +the ngx_http_memcached_module. + + + + + +директива proxy_buffering. + + +the "proxy_buffering" directive. + + + + + +изменение в работе с accept mutex при использовании метода rtsig; +ошибка появилась в 0.3.0. + + +the changes in accept mutex handling when the "rtsig" method was used; +the bug had appeared in 0.3.0. + + + + + +если клиент передал строку "Transfer-Encoding: chunked" в заголовке +запроса, то nginx теперь выдаёт ошибку 411. + + +if the client sent the "Transfer-Encoding: chunked" header line, then +nginx returns the 411 error. + + + + + +при наследовании директивы auth_basic с уровня http в строке +"WWW-Authenticate" заголовка ответа выводился realm без текста "Basic realm". + + +if the "auth_basic" directive was inherited from the http level, +then the realm in the "WWW-Authenticate" header line was without +the "Basic realm" text. + + + + + +если в директиве access_log был явно указан формат combined, то в лог +записывались пустые строки; +ошибка появилась в 0.3.8. + + +if the "combined" format was explicitly specified in the "access_log" directive, +then the empty lines was written to the log; +the bug had appeared in 0.3.8. + + + + + +nginx не работал на платформе sparc под любыми OS, кроме Solaris. + + +nginx did not run on the sparc platform under any OS except Solaris. + + + + + +в директиве if теперь не нужно разделять пробелом строку в кавычках и +закрывающую скобку. + + +now it is not necessary to place space between the quoted string and closing +bracket in the "if" directive. + + + + + + + + + + +nginx не передавал при проксировании тело запроса и строки заголовка клиента; +ошибка появилась в 0.3.10. + + +nginx did not pass the client request headers and body while proxying; +the bug had appeared in 0.3.10. + + + + + + + + + + +директива valid_referers и переменная $invalid_referer перенесены +из модуля ngx_http_rewrite_module в новый модуль ngx_http_referer_module. + + +the "valid_referers" directive and the "$invalid_referer" variable +were moved to the new ngx_http_referer_module from the ngx_http_rewrite_module. + + + + + +имя переменной "$apache_bytes_sent" изменено на "$body_bytes_sent". + + +the "$apache_bytes_sent" variable name was changed to "$body_bytes_sent". + + + + + +переменные "$sent_http_...". + + +the "$sent_http_..." variables. + + + + + +директива if поддерживает операции "=" и "!=". + + +the "if" directive supports the "=" and "!=" operations. + + + + + +директива proxy_pass поддерживает протокол HTTPS. + + +the "proxy_pass" directive supports the HTTPS protocol. + + + + + +директива proxy_set_body. + + +the "proxy_set_body" directive. + + + + + +директива post_action. + + +the "post_action" directive. + + + + + +модуль ngx_http_empty_gif_module. + + +the ngx_http_empty_gif_module. + + + + + +директива worker_cpu_affinity для Linux. + + +the "worker_cpu_affinity" directive for Linux. + + + + + +директива rewrite не раскодировала символы в редиректах в URI, +теперь символы раскодируются, кроме символов %00-%25 и %7F-%FF. + + +the "rewrite" directive did not unescape URI part in redirect, +now it is unescaped except the %00-%25 and %7F-%FF characters. + + + + + +nginx не собирался компилятором icc 9.0. + + +nginx could not be built by the icc 9.0 compiler. + + + + + +если для статического файла нулевого размера был разрешён SSI, +то ответ передавался неверно при кодировании chunk'ами. + + +if the SSI was enabled for zero size static file, then the chunked +response was encoded incorrectly. + + + + + + + + + + +nginx считал небезопасными URI, в которых между двумя слэшами +находилось два любых символа; +ошибка появилась в 0.3.8. + + +nginx considered URI as unsafe if two any symbols was between two slashes; +the bug had appeared in 0.3.8. + + + + + + + + + + +nginx теперь проверят URI, полученные от бэкенда в строке "X-Accel-Redirect" +в заголовке ответа, или в SSI файле на наличие путей "/../" и нулей. + + +nginx now checks URI got from a backend in "X-Accel-Redirect" header line +or in SSI file for the "/../" paths and zeroes. + + + + + +nginx теперь не воспринимает пустое имя как правильное +в строке "Authorization" в заголовке запроса. + + +nginx now does not treat the empty user name in the "Authorization" header +line as valid one. + + + + + +директива ssl_session_timeout модулей +ngx_http_ssl_module и ngx_imap_ssl_module. + + +the "ssl_session_timeout" directives +of the ngx_http_ssl_module and ngx_imap_ssl_module. + + + + + +директива auth_http_header модуля ngx_imap_auth_http_module. + + +the "auth_http_header" directive of the ngx_imap_auth_http_module. + + + + + +директива add_header. + + +the "add_header" directive. + + + + + +модуль ngx_http_realip_module. + + +the ngx_http_realip_module. + + + + + +новые переменные для использования в директиве log_format: +$bytes_sent, $apache_bytes_sent, $status, $time_gmt, +$uri, $request_time, $request_length, +$upstream_status, $upstream_response_time, +$gzip_ratio, +$uid_got, $uid_set, +$connection, $pipe и $msec. +Параметры в виде "%name" скоро будут упразднены. + + +the new variables to use in the "log_format" directive: +$bytes_sent, $apache_bytes_sent, $status, $time_gmt, +$uri, $request_time, $request_length, +$upstream_status, $upstream_response_time, +$gzip_ratio, +$uid_got, $uid_set, +$connection, $pipe, and $msec. +The parameters in the "%name" form will be canceled soon. + + + + + +в директиве "if" ложными значениями переменных теперь являются +пустая строка "" и строки, начинающиеся на "0". + + +now the false variable values in the "if" directive are the empty string "" +and string starting with "0". + + + + + +при работает с проксированными или FastCGI-серверами nginx мог оставлять +открытыми соединения и временные файлы с запросами клиентов. + + +while using proxied or FastCGI-server nginx may leave connections +and temporary files with client requests in open state. + + + + + +рабочие процессы не сбрасывали буферизированные логи при плавном выходе. + + +the worker processes did not flush the buffered logs on graceful exit. + + + + + +если URI запроса изменялось с помощью rewrite, а затем запрос проксировался +в location, заданном регулярным выражением, то бэкенду передавался +неверный запрос; +ошибка появилась в 0.2.6. + + +if the request URI was changes by the "rewrite" directive and the request +was proxied in location given by regular expression, then the incorrect +request was transferred to backend; +the bug had appeared in 0.2.6. + + + + + +директива expires не удаляла уже установленную строку заголовка "Expires". + + +the "expires" directive did not remove the previous "Expires" header. + + + + + +при использовании метода rtsig и нескольких рабочих процессах nginx +мог перестать принимать запросы. + + +nginx may stop to accept requests if the "rtsig" method and several worker +processes were used. + + + + + +в SSI командах неверно обрабатывались строки "\"" и "\'". + + +the "\"" and "\'" escape symbols were incorrectly handled in SSI commands. + + + + + +если ответ заканчивался сразу же после SSI команды, то при использовании +сжатия ответ передавался не до конца или не передавался вообще. + + +if the response was ended just after the SSI command and gzipping was used, +then the response did not transferred complete or did not transferred at all. + + + + + + + + + + +директива access_log поддерживает параметр buffer=. + + +the "access_log" supports the "buffer=" parameter. + + + + + +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.3.2. + + +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.3.2. + + + + + + + + + + +IMAP/POP3 прокси теперь не передаёт серверу авторизации пустой логин. + + +now the IMAP/POP3 proxy do not send the empty login to authorization server. + + + + + +директива log_format поддерживает переменные в виде $name. + + +the "log_format" supports the variables in the $name form. + + + + + +если хотя бы в одном сервере не было описано ни одной директивы listen, то +nginx не слушал на 80 порту; +ошибка появилась в 0.3.3. + + +if at least in one server was no the "listen" directive, then nginx did not +listen on the 80 port; +the bug had appeared in 0.3.3. + + + + + +если в директиве proxy_pass отсутствовал URI, то всегда использовался порт 80. + + +if the URI part is omitted in "proxy_pass" directive, the 80 port was +always used. + + + + + + + + + + +если логин IMAP/POP3 менялся сервером авторизации, то мог произойти +segmentation fault; +ошибка появилась в 0.2.2. + + +the segmentation fault may occurred if the IMAP/POP3 login was changed +by authorization server; +the bug had appeared in 0.2.2. + + + + + +accept mutex не работал, все соединения обрабатывались одним рабочим процессом; +ошибка появилась в 0.3.3. + + +the accept mutex did not work and all connections were handled by one process; +the bug had appeared in 0.3.3. + + + + + +при использовании метода rtsig и директивы timer_resolution +не работали таймауты. + + +the timeout did not work if the "rtsig" method and the "timer_resolution" +directive were used. + + + + + + + + + + +nginx не собирался на Linux 2.4+ и MacOS X; +ошибка появилась в 0.3.3. + + +nginx could not be built on Linux 2.4+ and MacOS X; +the bug had appeared in 0.3.3. + + + + + + + + + + +параметры "bl" и "af" директивы listen переименованы в "backlog" +и "accept_filter". + + +the "bl" and "af" parameters of the "listen" directive was renamed to +the "backlog" and "accept_filter". + + + + + +параметры "rcvbuf" и "sndbuf" в директиве listen. + + +the "rcvbuf" and "sndbuf" parameters of the "listen" directive. + + + + + +параметр лога $msec теперь не требует дополнительного системного +вызова gettimeofday(). + + +the "$msec" log parameter does not require now the additional +the gettimeofday() system call. + + + + + +ключ -t теперь проверяет директивы listen. + + +the -t switch now tests the "listen" directives. + + + + + +если в директиве listen был указан неверный адрес, то nginx после +сигнала -HUP оставлял открытый сокет в состоянии CLOSED. + + +if the invalid address was specified in the "listen" directive, then +after the -HUP signal nginx left an open socket in the CLOSED state. + + + + + +для индексных файлов, содержащих в имени переменную, мог неверно выставляться +тип mime по умолчанию; +ошибка появилась в 0.3.0. + + +the mime type may be incorrectly set to default value for index file with +variable in the name; +the bug had appeared in 0.3.0. + + + + + +директива timer_resolution. + + +the "timer_resolution" directive. + + + + + +параметр лога $upstream_response_time в миллисекундах. + + +the millisecond "$upstream_response_time" log parameter. + + + + + +временный файл с телом запроса клиента теперь удаляется сразу после того, +как клиенту передан заголовок ответа. + + +a temporary file with client request body now is removed just after +the response header was transferred to a client. + + + + + +совместимость с OpenSSL 0.9.6. + + +OpenSSL 0.9.6 compatibility. + + + + + +пути к файлам с SSL сертификатом и ключом не могли быть относительными. + + +the SSL certificate and key file paths could not be relative. + + + + + +директива ssl_prefer_server_ciphers не работала для модуля ngx_imap_ssl_module. + + +the "ssl_prefer_server_ciphers" directive did not work in +the ngx_imap_ssl_module. + + + + + +директива ssl_protocols позволяла задать только один протокол. + + +the "ssl_protocols" directive allowed to specify the single protocol only. + + + + + + + + + + +поддержка Sun Studio 10 C compiler. + + +the Sun Studio 10 C compiler support. + + + + + +директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout, +fastcgi_upstream_max_fails и fastcgi_upstream_fail_timeout. + + +the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout", +"fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout" +directives. + + + + + + + + + + +во время переполнения очереди сигналов при использовании метода rtsig +происходил segmentation fault; +ошибка появилась в 0.2.0. + + +the segmentation fault occurred when the signal queue overflowed +if the "rtsig" method was used; +the bug had appeared in 0.2.0. + + + + + +корректная обработка пар "\\", "\"", "\'" и "\$" в SSI. + + +correct handling of the "\\", "\"", "\'", and "\$" pairs in SSI. + + + + + + + + + + +убрано десятидневное ограничение времени работы рабочего процесса. +Ограничение было введено из-за переполнения миллисекундных таймеров. + + +the 10-days live time limit of worker process was eliminated. +The limit was introduced because of millisecond timers overflow. + + + + + + + + + + +с 60 до 10 секунд уменьшено время повторного обращения к бэкенду +при использовании распределения нагрузки. + + +while using load-balancing the time before the failed backend retry +was decreased from 60 to 10 seconds. + + + + + +директива proxy_pass_unparsed_uri упразднена, оригинальный запрос теперь +передаётся, если в директиве proxy_pass отсутствует URI. + + +the "proxy_pass_unparsed_uri" was canceled, the original URI now passed, +if the URI part is omitted in "proxy_pass" directive. + + + + + +директива error_page поддерживает редиректы и позволяет более гибко +менять код ошибки. + + +the "error_page" directive supports redirects and allows more flexible +to change an error code. + + + + + +в проксированных подзапросах теперь игнорируется переданный charset. + + +the charset in the "Content-Type" header line now is ignored +in proxied subrequests. + + + + + +если после изменения URI в блоке if для запроса не находилась +новая конфигурация, то правила модуля ngx_http_rewrite_module выполнялись +снова. + + +if the URI was changed in the "if" block and request did not found +new configuration, then the ngx_http_rewrite_module rules ran again. + + + + + +если директива set устанавливала переменную модуля ngx_http_geo_module +в какой-либо части конфигурации, то эта переменная не была доступна в +других частях конфигурации и выдавалась ошибка "using uninitialized variable"; +ошибка появилась в 0.2.2. + + +if the "set" directive set the ngx_http_geo_module variable in some +configuration part, the this variable was not available in other +configuration parts and the "using uninitialized variable" error was occurred; +the bug had appeared in 0.2.2. + + + + + + + + + + +дублирующее значение переменной модуля ngx_http_geo_module теперь +выдаёт предупреждение и изменяет старое значение. + + +the duplicate value of the ngx_http_geo_module variable now causes +the warning and changes old value. + + + + + +модуль ngx_http_ssi_module поддерживает команду set. + + +the ngx_http_ssi_module supports the "set" command. + + + + + +модуль ngx_http_ssi_module поддерживает параметр file в команде include. + + +the ngx_http_ssi_module supports the "file" parameter in the "include" command. + + + + + +модуль ngx_http_ssi_module поддерживает подстановку значений переменных +в выражениях команды if. + + +the ngx_http_ssi_module supports the variable value substitutions in +expressions of the "if" command. + + + + + + + + + + +модуль ngx_http_ssi_module поддерживает выражения +"$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" +в команде if. + + +the ngx_http_ssi_module supports +"$var=text", "$var!=text", "$var=/text/", and "$var!=/text/" expressions +in the "if" command. + + + + + +ошибки при проксировании location без слэша в конце; +ошибка появилась в 0.1.44. + + +in proxying location without trailing slash; +the bug had appeared in 0.1.44. + + + + + +при использовании метода rtsig мог произойти segmentation fault; +ошибка появилась в 0.2.0. + + +the segmentation fault may occurred if the "rtsig" method was used; +the bug had appeared in 0.2.0. + + + + + + + + + + +nginx не собирался без параметра --with-debug; +ошибка появилась в 0.2.2. + + +nginx could not be built without the --with-debug option; +the bug had appeared in 0.2.2. + + + + + + + + + + +команда config errmsg в модуле ngx_http_ssi_module. + + +the "config errmsg" command of the ngx_http_ssi_module. + + + + + +переменные модуля ngx_http_geo_module можно переопределять директивой set. + + +the ngx_http_geo_module variables can be overridden by the "set" directive. + + + + + +директивы ssl_protocols и ssl_prefer_server_ciphers модулей +ngx_http_ssl_module и ngx_imap_ssl_module. + + +the "ssl_protocols" and "ssl_prefer_server_ciphers" directives +of the ngx_http_ssl_module and ngx_imap_ssl_module. + + + + + +ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов; + + +the ngx_http_autoindex_module did not show correctly the long file names; + + + + + +модуль ngx_http_autoindex_module теперь не показывает файлы, +начинающиеся на точку. + + +the ngx_http_autoindex_module now do not show the files starting by dot. + + + + + +если SSL handshake завершался с ошибкой, то это могло привести также +к закрытию другого соединения.
+Спасибо Rob Mueller. +
+ +if the SSL handshake failed then another connection may be closed too.
+Thanks to Rob Mueller. +
+
+ + + +экспортные версии MSIE 5.x не могли соединиться по HTTPS. + + +the export versions of MSIE 5.x could not connect via HTTPS. + + + +
+ + + + + + +если все бэкенды, используемые для балансировки нагрузки, оказывались +в нерабочем состоянии после одной ошибки, то nginx мог зациклится; +ошибка появилась в 0.2.0. + + +if all backend using in load-balancing failed after one error, then +nginx may got caught in an endless loop; +the bug had appeared in 0.2.0. + + + + + + + + + + +Изменились имена pid-файлов, используемые во время обновления исполняемого +файла. Ручное переименование теперь не нужно. +Старый основной процесс добавляет к своему pid-файл суффикс ".oldbin" +и запускает новый исполняемый файл. +Новый основной процесс создаёт обычный pid-файл без суффикса ".newbin". +Если новый основной процесс выходит, то старый процесс переименовывает свой +pid-файл c суффиксом ".oldbin" в pid-файл без суффикса. +При обновлении с версии 0.1.х до 0.2.0 нужно учитывать, что оба +процесса—старый 0.1.x и новый 0.2.0—используют pid-файл +без суффиксов. + + +The pid-file names used during online upgrade was changed and now is not +required a manual rename operation. +The old master process adds the ".oldbin" suffix to its pid-file and +executes a new binary file. +The new master process creates usual pid-file without the ".newbin" suffix. +If the master process exits, then old master process renames back +its pid-file with the ".oldbin" suffix to the pid-file without suffix. + + + + + +директива worker_connections, новое название директивы connections; +директива теперь задаёт максимальное число соединений, +а не максимально возможный номер дескриптора для сокета. + + +the "worker_connections" directive, new name of the "connections" directive; +now the directive specifies maximum number of connections, +but not maximum socket descriptor number. + + + + + +SSL поддерживает кэширование сессий в пределах одного рабочего процесса. + + +SSL supports the session cache inside one worker process. + + + + + +директива satisfy_any. + + +the "satisfy_any" directive. + + + + + +модули ngx_http_access_module и ngx_http_auth_basic_module не работают +для подзапросов. + + +the ngx_http_access_module and ngx_http_auth_basic_module do not run +for subrequests. + + + + + +директивы worker_rlimit_nofile и worker_rlimit_sigpending. + + +the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives. + + + + + +если все бэкенды, используемые для балансировки нагрузки, оказывались +в нерабочем состоянии после одной ошибки, то nginx не обращался к ним +в течение 60 секунд. + + +if all backend using in load-balancing failed after one error, then +nginx did not try do connect to them during 60 seconds. + + + + + +в парсинге аргументов IMAP/POP3 команд.
+Спасибо Rob Mueller. +
+ +in IMAP/POP3 command argument parsing.
+Thanks to Rob Mueller. +
+
+ + + +ошибки при использовании SSL в IMAP/POP3 прокси. + + +errors while using SSL in IMAP/POP3 proxy. + + + + + +ошибки при использовании SSI и сжатия. + + +errors while using SSI and gzipping. + + + + + +в ответах 304 не добавлялись строки заголовка ответа "Expires" и +"Cache-Control".
+Спасибо Александру Кукушкину. +
+ +the "Expires" and "Cache-Control" header lines were omitted +from the 304 responses.
+Thanks to Alexandr Kukushkin. +
+
+ +
+ + + + + + +директива ssl_engine упразднена в модуле ngx_http_ssl_module и +перенесена на глобальный уровень. + + +the "ssl_engine" directive was canceled in the ngx_http_ssl_module +and now is introduced at global level. + + + + + +ответы с подзапросами, включённые с помощью SSI, не передавались +через SSL соединение. + + +the responses with SSI subrequests did not transferred via SSL connection. + + + + + +Разные исправления в IMAP/POP3 прокси. + + +Various bug fixes in the IMAP/POP3 proxy. + + + + + + + + + + +IMAP/POP3 прокси поддерживает SSL. + + +the IMAP/POP3 proxy supports SSL. + + + + + +директива proxy_timeout модуля ngx_imap_proxy_module. + + +the "proxy_timeout" directive of the ngx_imap_proxy_module. + + + + + +директива userid_mark. + + +the "userid_mark" directive. + + + + + +значение переменной $remote_user определяется независимо от того, +используется ли авторизация или нет. + + +the $remote_user variable value is determined independently of +authorization use. + + + + + + + + + + +listen(2) backlog в директиве listen можно менять по сигналу -HUP. + + +the listen(2) backlog in the "listen" directive +can be changed using the -HUP signal. + + + + + +скрипт geo2nginx.pl добавлен в contrib. + + +the geo2nginx.pl script was added to contrib. + + + + + +параметры FastCGI с пустым значениями теперь передаются серверу. + + +the FastCGI parameters with the empty values now are passed to a server. + + + + + + + +если в ответе проксированного сервера или FastCGI сервера была строка +"Cache-Control", то при использовании директивы expires происходил +segmentation fault или рабочий процесс мог зациклится; +в режиме прокси ошибка появилась в 0.1.29. + + +the segmentation fault occurred or the worker process may got caught +in an endless loop if the proxied or FastCGI server sent the "Cache-Control" +header line and the "expires" directive was used; +in the proxied mode the bug had appeared in 0.1.29. + + + + + + + + + + +если URI запроса получался нулевой длины после обработки модулем +ngx_http_rewrite_module, то в модуле ngx_http_proxy_module происходил +segmentation fault или bus error. + + +if the request URI had a zero length after the processing in +the ngx_http_proxy_module, then the segmentation fault or bus error occurred +in the ngx_http_proxy_module. + + + + + +директива limit_rate не работала внутри блока if; +ошибка появилась в 0.1.38. + + +the "limit_rate" directive did not work inside the "if" block; +the bug had appeared in 0.1.38. + + + + + + + + + + +если переменная использовалась в файле конфигурации, +то она не могла использоваться в SSI. + + +if the variable was used in the configuration file, +then it can not be used in SSI. + + + + + + + + + + +если клиент слал очень длинную строку заголовка, то в логе не помещалась +информация, связанная с этим запросом. + + +if a client sent too long header line, then the request information +did not logged in the error log. + + + + + +при использовании "X-Accel-Redirect" не передавалась строка "Set-Cookie"; +ошибка появилась в 0.1.39. + + +the "Set-Cookie" header line was not transferred when the "X-Accel-Redirect" +was used; +the bug had appeared in 0.1.39. + + + + + +при использовании "X-Accel-Redirect" не передавалась строка +"Content-Disposition". + + +the "Content-Disposition" header line was not transferred when +the "X-Accel-Redirect" was used. + + + + + +по сигналу SIGQUIT основной процесс не закрывал сокеты, на которых он слушал. + + +the master process did not close the listen socket on the SIGQUIT signal. + + + + + +после обновления исполняемого файла на лету на Linux и Solaris +название процесса в команде ps становилось короче. + + +after on-line upgrade on Linux and Solaris the process name +became shorter in the "ps" command. + + + + + + + + + + +Изменения в модуле ngx_http_charset_module: +директива default_charset упразднена; +директива charset задаёт кодировку ответа; +директива source_charset задаёт только исходную кодировку. + + +The changes in the ngx_http_charset_module: +the "default_charset" directive was canceled; +the "charset" directive sets the response charset; +the "source_charset" directive sets the source charset only. + + + + + +при перенаправлении ошибки 401, полученной от бэкенда, не передавалась +строка заголовка "WWW-Authenticate". + + +the backend "WWW-Authenticate" header line did not transferred while +the 401 response code redirecting. + + + + + +модули ngx_http_proxy_module и ngx_http_fastcgi_module могли закрыть +соединение до того, как что-нибудь было передано клиенту; +ошибка появилась в 0.1.38. + + +the ngx_http_proxy_module and ngx_http_fastcgi_module may close +a connection before anything was transferred to a client; +the bug had appeared in 0.1.38. + + + + + +обработка ошибки инициализации в crypt_r() в Linux glibc. + + +the Linux glibc crypt_r() initialization bug. + + + + + +модуль ngx_http_ssi_module не поддерживал относительные URI в +команде include virtual. + + +the ngx_http_ssi_module did not support the relative URI in +the "include virtual" command. + + + + + +если в строке заголовка ответа бэкенда была строка "Location", +которую nginx не должен был изменять, то в ответе передавалось тело 500 ошибки; +ошибка появилась в 0.1.29. + + +if the backend response had the "Location" header line and nginx +should not rewrite this line, then the 500 code response body was transferred; +the bug had appeared in 0.1.29. + + + + + +некоторые директивы модулей ngx_http_proxy_module и ngx_http_fastcgi_module +не наследовались с уровня server на уровень location; +ошибка появилась в 0.1.29. + + +some directives of the ngx_http_proxy_module and ngx_http_fastcgi_module +were not inherited from the server to the location level; +the bug had appeared in 0.1.29. + + + + + +модуль ngx_http_ssl_module не поддерживал цепочки сертификатов. + + +the ngx_http_ssl_module did not support the certificate chain. + + + + + +ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов; +ошибка появилась в 0.1.38. + + +the ngx_http_autoindex_module did not show correctly the long file names; +the bug had appeared in 0.1.38. + + + + + +Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на стадии login. + + +Bugfixes in IMAP/POP3 proxy in interaction with a backend at the login state. + + + + + + + + + + +директива limit_rate поддерживается в режиме прокси и FastCGI. + + +the "limit_rate" directive is supported in proxy and FastCGI mode. + + + + + +в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Limit-Rate" +в ответе бэкенда. + + +the "X-Accel-Limit-Rate" response header line is supported in proxy +and FastCGI mode. + + + + + +директива break. + + +the "break" directive. + + + + + +директива log_not_found. + + +the "log_not_found" directive. + + + + + +при перенаправлении запроса с помощью строки заголовка "X-Accel-Redirect" +не изменялся код ответа. + + +the response status code was not changed when request was redirected +by the ""X-Accel-Redirect" header line. + + + + + +переменные, установленные директивой set не могли использоваться в SSI. + + +the variables set by the "set" directive could not be used in SSI. + + + + + +при включении в SSI более одного удалённого подзапроса +мог произойти segmentation fault. + + +the segmentation fault may occurred if the SSI page has more than one +remote subrequest. + + + + + +если статусная строка в ответе бэкенда передавалась в двух пакетах, то +nginx считал ответ неверным; +ошибка появилась в 0.1.29. + + +nginx treated the backend response as invalid if the status line in the +header was transferred in two packets; +the bug had appeared in 0.1.29. + + + + + +директива ssi_types. + + +the "ssi_types" directive. + + + + + +директива autoindex_exact_size. + + +the "autoindex_exact_size" directive. + + + + + +модуль ngx_http_autoindex_module не поддерживал длинные имена файлов в UTF-8. + + +the ngx_http_autoindex_module did not support the long file names in UTF-8. + + + + + +IMAP/POP3 прокси. + + +the IMAP/POP3 proxy. + + + + + + + + + + +в конце файла nginx.pid теперь добавляется "\n". + + +now the "\n" is added to the end of the "nginx.pid" file. + + + + + +при включении большого количества вставок или нескольких больших вставок +с помощью SSI ответ мог передаваться не полностью. + + +the responses may be transferred not completely, +if many parts or the big parts were included by SSI. + + + + + +если все бэкенды возвращали ответ 404, то при использовании параметра http_404 +в директивах proxy_next_upstream или fastcgi_next_upstream, nginx +начинал запрашивать все бэкенды снова. + + +if all backends had returned the 404 response and the "http_404" parameter of +the "proxy_next_upstream" or "fastcgi_next_upstream" directives was used, +then nginx started to request all backends again. + + + + + + + + + + +если в заголовке запроса есть дублирующиеся строки "Host", "Connection", +"Content-Length" и "Authorization", то nginx теперь выдаёт ошибку 400. + + +if the request header has duplicate the "Host", "Connection", "Content-Length", +or "Authorization" lines, then nginx now returns the 400 error. + + + + + +директива post_accept_timeout упразднена. + + +the "post_accept_timeout" directive was canceled. + + + + + +параметры default, af=, bl=, deferred и bind в директиве listen. + + +the "default", "af=", "bl=", "deferred", and "bind" parameters +of the "listen" directive. + + + + + +поддержка accept фильтров во FreeBSD. + + +the FreeBSD accept filters support. + + + + + +поддержка TCP_DEFER_ACCEPT в Linux. + + +the Linux TCP_DEFER_ACCEPT support. + + + + + +модуль ngx_http_autoindex_module не поддерживал имена файлов в UTF-8. + + +the ngx_http_autoindex_module did not support the file names in UTF-8. + + + + + +после добавления новый лог-файл ротация этого лога по сигналу -USR1 +выполнялась, только если переконфигурировать nginx два раза по сигналу -HUP. + + +the new log file can be rotated by the -USR1 signal only if +the reconfiguration by the -HUP signal was made twice. + + + + + + + + + + +директива working_directory. + + +the "working_directory" directive. + + + + + +директива port_in_redirect. + + +the "port_in_redirect" directive. + + + + + +если заголовок ответа бэкенда не помещался в один пакет, то +происходил segmentation fault; +ошибка появилась в 0.1.29. + + +the segmentation fault was occurred if the backend response header was in +several packets; +the bug had appeared in 0.1.29. + + + + + +если было сконфигурировано более 10 серверов или в сервере не описана +директива "listen", +то при запуске мог произойти segmentation fault. + + +if more than 10 servers were configured or some server did not use the +"listen" directive, then the segmentation fault was occurred on the start. + + + + + +если ответ не помещался во временный файл, +то мог произойти segmentation fault. + + +the segmentation fault might occur if the response was bigger than +the temporary file. + + + + + +nginx возвращал ошибку 400 на запросы вида +"GET http://www.domain.com/uri HTTP/1.0"; +ошибка появилась в 0.1.28. + + +nginx returned the 400 response on requests like +"GET http://www.domain.com/uri HTTP/1.0"; +the bug had appeared in 0.1.28. + + + + + + + + + + +при включении больших ответов с помощью SSI рабочий процесс мог зациклиться. + + +the worker process may got caught in an endless loop if the big response +part were include by SSI. + + + + + +переменные, устанавливаемые директивой "set", не были доступны в SSI. + + +the variables set by the "set" directive were not available in SSI. + + + + + +директива autoindex_localtime. + + +the "autoindex_localtime" directive. + + + + + +пустое значение в директиве proxy_set_header запрещает передачу заголовка. + + +the empty value of the "proxy_set_header" directive forbids the client +request header line passing. + + + + + + + + + + +nginx не собирался с параметром --without-pcre; +ошибка появилась в 0.1.29. + + +nginx could not be built with the --without-pcre parameter; +the bug had appeared in 0.1.29. + + + + + +3, 5, 7 и 8 директив proxy_set_header на одном уровне вызывали +bus fault при запуске. + + +3, 4, 7, and 8 the "proxy_set_header" directives in one level cause +the bus fault on start up. + + + + + +в редиректах внутри HTTPS сервера был указан протокол HTTP. + + +the HTTP protocol was specified in the HTTPS redirects. + + + + + +если директива rewrite использовала выделения внутри директивы if, то +возвращалась ошибка 500. + + +if the "rewrite" directive used the captures inside the "if" directive, then +the 500 error code was returned. + + + + + + + + + + +в редиректах, выдаваемых с помощью директивы rewrite, не передавались аргументы; +ошибка появилась в 0.1.29. + + +the arguments were omitted in the redirects, issued by the "rewrite" directive; +the bug had appeared in 0.1.29. + + + + + +директива if поддерживает выделения в регулярных выражениях. + + +the "if" directive supports the captures in regular expressions. + + + + + +директива set поддерживает переменные и выделения из регулярных выражений. + + +the "set" directive supports the variables and the captures of regular +expressions. + + + + + +в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Redirect" +в ответе бэкенда. + + +the "X-Accel-Redirect" response header line is supported in proxy and FastCGI +mode. + + + + + + + + + + +при использовании SSL ответ мог передаваться не до конца. + + +the response encrypted by SSL may not transferred complete. + + + + + +ошибки при обработке SSI в ответе, полученного от FastCGI-сервера. + + +errors while processing FastCGI response by SSI. + + + + + +ошибки при использовании SSI и сжатия. + + +errors while using SSI and gzipping. + + + + + +редирект с кодом 301 передавался без тела ответа; +ошибка появилась в 0.1.30. + + +the redirect with the 301 code was transferred without response body; +the bug had appeared in 0.1.30. + + + + + + + + + + +при использовании SSI рабочий процесс мог зациклиться. + + +the worker process may got caught in an endless loop if the SSI was used. + + + + + +при использовании SSL ответ мог передаваться не до конца. + + +the response encrypted by SSL may not transferred complete. + + + + + +если длина части ответа, полученного за один раз от проксируемого или +FastCGI сервера была равна 500 байт, то nginx возвращал код ответа 500; +в режиме прокси ошибка появилась только в 0.1.29. + + +if the length of the response part received at once from proxied +or FastCGI server was equal to 500, then nginx returns the 500 response code; +in proxy mode the bug had appeared in 0.1.29 only. + + + + + +nginx не считал неверными директивы с 8-ю или 9-ю параметрами. + + +nginx did not consider the directives with 8 or 9 parameters as invalid. + + + + + +директива return может возвращать код ответа 204. + + +the "return" directive can return the 204 response code. + + + + + +директива ignore_invalid_headers. + + +the "ignore_invalid_headers" directive. + + + + + + + + + + +модуль ngx_http_ssi_module поддерживает команду include virtual. + + +the ngx_http_ssi_module supports "include virtual" command. + + + + + +модуль ngx_http_ssi_module поддерживает условную команду вида +'if expr="$NAME"' и команды else и endif. +Допускается только один уровень вложенности. + + +the ngx_http_ssi_module supports the condition command like +'if expr="$NAME"' and "else" and "endif" commands. +Only one nested level is supported. + + + + + +модуль ngx_http_ssi_module поддерживает две переменные DATE_LOCAL и DATE_GMT +и команду config timefmt. + + +the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables +and "config timefmt" command. + + + + + +директива ssi_ignore_recycled_buffers. + + +the "ssi_ignore_recycled_buffers" directive. + + + + + +если переменная QUERY_STRING не была определена, то в команде echo +не ставилось значение по умолчанию. + + +the "echo" command did not show the default value for the empty QUERY_STRING +variable. + + + + + +модуль ngx_http_proxy_module полностью переписан. + + +the ngx_http_proxy_module was rewritten. + + + + + +директивы proxy_redirect, proxy_pass_request_headers, +proxy_pass_request_body и proxy_method. + + +the "proxy_redirect", "proxy_pass_request_headers", +"proxy_pass_request_body", and "proxy_method" directives. + + + + + +директива proxy_set_header. +Директива proxy_x_var упразднена и должна быть заменена директивой +proxy_set_header. + + +the "proxy_set_header" directive. +The "proxy_x_var" was canceled and must be replaced with the proxy_set_header +directive. + + + + + +директива proxy_preserve_host упразднена и должна быть заменена директивами +"proxy_set_header Host $host" и "proxy_redirect off" +или директивой "proxy_set_header Host $host:$proxy_port" +и соответствующими ей директивами proxy_redirect. + + +the "proxy_preserve_host" is canceled and must be replaced with +the "proxy_set_header Host $host" and the "proxy_redirect off" directives, +the "proxy_set_header Host $host:$proxy_port" directive +and the appropriate proxy_redirect directives. + + + + + +директива proxy_set_x_real_ip упразднена и должна быть заменена директивой +"proxy_set_header X-Real-IP $remote_addr". + + +the "proxy_set_x_real_ip" is canceled and must be replaced with +the "proxy_set_header X-Real-IP $remote_addr" directive. + + + + + +директива proxy_add_x_forwarded_for упразднена и должна быть заменена +директивой +"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for". + + +the "proxy_add_x_forwarded_for" is canceled and must be replaced with +the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for" +directive. + + + + + +директива proxy_set_x_url упразднена и должна быть заменена директивой +"proxy_set_header X-URL http://$host:$server_port$request_uri". + + +the "proxy_set_x_url" is canceled and must be replaced with +the "proxy_set_header X-URL http://$host:$server_port$request_uri" +directive. + + + + + +директива fastcgi_param. + + +the "fastcgi_param" directive. + + + + + +директивы fastcgi_root, fastcgi_set_var и fastcgi_params упразднены +и должны быть замены директивами fastcgi_param. + + +the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive +are canceled and must be replaced with the fastcgi_param directives. + + + + + +директива index может использовать переменные. + + +the "index" directive can use the variables. + + + + + +директива index может быть указана на уровне http и server. + + +the "index" directive can be used at http and server levels. + + + + + +только последний параметр в директиве index может быть абсолютным. + + +the last index only in the "index" directive can be absolute. + + + + + +в директиве rewrite могут использоваться переменные. + + +the "rewrite" directive can use the variables. + + + + + +директива internal. + + +the "internal" directive. + + + + + +переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, +SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, +REQUEST_METHOD, REQUEST_URI и REMOTE_USER. + + +the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, +SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, +REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables. + + + + + +nginx теперь передаёт неверные строки в заголовках запроса клиента и +ответа бэкенда. + + +nginx now passes the invalid lines in a client request headers +or a backend response header. + + + + + +если бэкенд долго не передавал ответ и send_timeout был меньше, чем +proxy_read_timeout, то клиенту возвращался ответ 408. + + +if the backend did not transfer response for a long time and +the "send_timeout" was less than "proxy_read_timeout", then nginx +returned the 408 response. + + + + + +если бэкенд передавал неверную строку в заголовке ответа, то происходил +segmentation fault; +ошибка появилась в 0.1.26. + + +the segmentation fault was occurred if the backend sent an invalid line +in response header; +the bug had appeared in 0.1.26. + + + + + +при использовании отказоустойчивой конфигурации в FastCGI мог +происходить segmentation fault. + + +the segmentation fault may occurred in FastCGI fault tolerance configuration. + + + + + +директива expires не удаляла уже установленные строки заголовка +"Expires" и "Cache-Control". + + +the "expires" directive did not remove the previous "Expires" and +"Cache-Control" headers. + + + + + +nginx не учитывал завершающую точку в строке заголовка запроса "Host". + + +nginx did not take into account trailing dot in "Host" header line. + + + + + +модуль ngx_http_auth_module не работал на Linux. + + +the ngx_http_auth_module did not work under Linux. + + + + + +директива rewrite неверно работала, если в запросе присутствовали аргументы. + + +the rewrite directive worked incorrectly, if the arguments were in a request. + + + + + +nginx не собирался на MacOS X. + + +nginx could not be built on MacOS X. + + + + + + + + + + +при проксировании больших файлов nginx сильно нагружал процессор. + + +nginx hogs CPU while proxying the huge files. + + + + + +nginx не собирался gcc 4.0 на Linux. + + +nginx could not be built by gcc 4.0 on Linux. + + + + + + + + + + +параметр blocked в директиве valid_referers. + + +the "blocked" parameter of the "valid_referers" directive. + + + + + +ошибки обработки заголовка запроса теперь записываются на уровне +info, в лог также записывается имя сервера и строки заголовка +запроса "Host" и "Referer". + + +the errors while handling the request header now logged at "info" level. +The server name and the "Host" and "Referer" header lines also logged. + + + + + +при записи ошибок в лог записывается также строка заголовка запроса "Host". + + +the "Host" header line is also logged in error log. + + + + + +директива proxy_pass_unparsed_uri. +Специальная обработка символов "://" в URI, введённая в версии 0.1.11, +теперь упразднена. + + +the proxy_pass_unparsed_uri directive. +The special handling of the "://" symbols in URI, appeared in 0.1.11 version, +now is canceled. + + + + + +nginx не собирался на FreeBSD и Linux, если был указан параметр конфигурации +--without-ngx_http_auth_basic_module. + + +nginx could not be built on FreeBSD and Linux, if the +--without-ngx_http_auth_basic_module configuration parameter was used. + + + + + + + + + + +неверные строки заголовка, переданные клиентом, теперь игнорируется и +записываются в error_log на уровне info. + + +the invalid client header lines are now ignored and logged at the info level. + + + + + +при записи ошибок в лог записывается также имя сервера, при обращении +к которому произошла ошибка. + + +the server name is also logged in error log. + + + + + +модуль ngx_http_auth_basic_module и директивы auth_basic и +auth_basic_user_file. + + +the ngx_http_auth_basic_module module and the auth_basic and +auth_basic_user_file directives. + + + + + + + + + + +nginx не работал на Linux parisc. + + +nginx did run on Linux parisc. + + + + + +nginx теперь не запускается под FreeBSD, если значение +sysctl kern.ipc.somaxconn слишком большое. + + +nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn +value is too big. + + + + + +если модуль ngx_http_index_module делал внутреннее перенаправление запроса +в модули ngx_http_proxy_module или ngx_http_fastcgi_module, то файл индекса +не закрывался после обслуживания запроса. + + +if a request was internally redirected by the ngx_http_index_module +module to the ngx_http_proxy_module or ngx_http_fastcgi_module modules, +then the index file was not closed after request completion. + + + + + +директива proxy_pass может использоваться в location, заданных регулярным +выражением. + + +the "proxy_pass" can be used in location with regular expression. + + + + + +модуль ngx_http_rewrite_filter_module поддерживает условия вида +"if ($HTTP_USER_AGENT ~ MSIE)". + + +the ngx_http_rewrite_filter_module module supports the condition like +"if ($HTTP_USER_AGENT ~ MSIE)". + + + + + +nginx очень медленно запускался при большом количестве адресов и +использовании текстовых значений в директиве geo. + + +nginx started too slow if the large number of addresses and text values +were used in the "geo" directive. + + + + + +имя переменной в директиве geo нужно указывать, как $name. +Прежний вариант без "$" пока работает, но вскоре будет убран. + + +a variable name must be declared as "$name" in the "geo" directive. +The previous variant without "$" is still supported, but will be removed soon. + + + + + +параметр лога "%{VARIABLE}v". + + +the "%{VARIABLE}v" logging parameter. + + + + + +директива "set $name value". + + +the "set $name value" directive. + + + + + +совместимость с gcc 4.0. + + +gcc 4.0 compatibility. + + + + + +параметр автоконфигурации --with-openssl-opt=OPTIONS. + + +the --with-openssl-opt=OPTIONS autoconfiguration directive. + + + + + + + + + + +модуль ngx_http_ssi_filter_module поддерживает переменные +QUERY_STRING и DOCUMENT_URI. + + +the ngx_http_ssi_filter_module supports the QUERY_STRING and DOCUMENT_URI +variables. + + + + + +модуль ngx_http_autoindex_module мог выдавать ответ 404 +на существующий каталог, если этот каталог был указан как alias. + + +the ngx_http_autoindex_module may some times return the 404 response +for existent directory, if this directory was used in "alias" directive. + + + + + +модуль ngx_http_ssi_filter_module неправильно работал при больших +ответах. + + +the ngx_http_ssi_filter_module ran incorrectly for large responses. + + + + + +отсутствие строки заголовка "Referer" всегда считалось правильным referrer'ом. + + +the lack of the "Referer" header line was always accounted as valid referrer. + + + + + + + + + + +модуль ngx_http_ssi_filter_module и +директивы ssi, ssi_silent_errors и ssi_min_file_chunk. +Поддерживаются команды 'echo var="HTTP_..." default=""' и +'echo var="REMOTE_ADDR"'. + + +the ngx_http_ssi_filter_module and +the ssi, ssi_silent_errors, and ssi_min_file_chunk directives. +The 'echo var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands +are supported. + + + + + +параметр лога %request_time. + + +the %request_time log parameter. + + + + + +если запрос пришёл без строки заголовка "Host", то директива +proxy_preserve_host устанавливает в качестве этого заголовка первое имя +сервера из директивы server_name. + + +if the request has no the "Host" header line, then the "proxy_preserve_host" +directive set this header line to the first server name of the "server_name" +directive. + + + + + +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.1.22. + + +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.1.22. + + + + + +модуль ngx_http_autoindex_module теперь показывает информацию не о +символическом линке, а о файле или каталоге, на который он указывает. + + +the ngx_http_autoindex_module now shows the information not about the symlink, +but about file or directory it points to. + + + + + +если клиенту ничего не передавалось, то параметр %apache_length +записывал в лог отрицательную длину заголовка ответа. + + +the %apache_length parameter logged the negative length +of the response header if the no response was transferred to a client. + + + + + + + + + + +модуль ngx_http_stub_status_module показывал неверную статистику +для обработанных соединений, если использовалось проксирование +или FastCGI-сервер. + + +the ngx_http_stub_status_module showed incorrect handled connections +statistics if the proxying or FastCGI server were used. + + + + + +на Linux и Solaris установочные пути были неверно заключены в кавычки; +ошибка появилась в 0.1.21. + + +the installation paths were incorrectly quoted on Linux and Solaris; +the bug had appeared in 0.1.21. + + + + + + + + + + +модуль ngx_http_stub_status_module показывал неверную статистику +при использовании метода rtsig или при использовании нескольких +рабочих процессов на SMP машине. + + +the ngx_http_stub_status_module showed incorrect statistics +if "rtsig" method was used or if several worker process ran on SMP. + + + + + +nginx не собирался компилятором icc под Линуксом или +если библиотека zlib-1.2.x собиралась из исходных текстов. + + +nginx could not be built by the icc compiler on Linux or +if the zlib-1.2.x library was building from sources. + + + + + +nginx не собирался под NetBSD 2.0. + + +nginx could not be built on NetBSD 2.0. + + + + + + + + + + +новые параметры script_filename и remote_port в директиве fastcgi_params. + + +the new "script_filename" and "remote_port" parameters +of the fastcgi_params directive. + + + + + +неправильно обрабатывался поток stderr от FastCGI-сервера. + + +the FastCGI stderr stream was handled incorrectly. + + + + + + + + + + +если в запросе есть нуль, то для локальных запросов теперь возвращается +ошибка 404. + + +now, if request contains the zero, then the 404 error is returned +for the local requests. + + + + + +nginx не собирался под NetBSD 2.0. + + +nginx could not be built on NetBSD 2.0. + + + + + +во время чтения тела запроса клиента в SSL соединении мог произойти таймаут. + + +the timeout may occur while reading of the client request body +via SSL connections. + + + + + + + + + + +для совместимости с Solaris 10 в директивах devpoll_events и devpoll_changes +значения по умолчанию уменьшены с 512 до 32. + + +the default values of the devpoll_events and the devpoll_changes directives +changed from 512 to 32 to be compatible with Solaris 10. + + + + + +директивы proxy_set_x_var и fastcgi_set_var не наследовались. + + +the proxy_set_x_var and fastcgi_set_var directives were not inherited. + + + + + +в директиве rewrite, возвращающей редирект, аргументы присоединялись +к URI через символ "&" вместо "?". + + +in a redirect rewrite directive arguments were concatenated with URI +by an "&" rather than a "?". + + + + + +строки для модуля ngx_http_geo_module без символа ";" во включённом файле +игнорировались. + + +the lines without trailing ";" in the file being included +by the ngx_http_geo_module were silently ignored. + + + + + +модуль ngx_http_stub_status_module. + + +the ngx_http_stub_status_module. + + + + + +неизвестный формат лог-файла в директиве access_log вызывал segmentation fault. + + +the unknown log format in the access_log directive caused +the segmentation fault. + + + + + +новый параметр document_root в директиве fastcgi_params. + + +the new "document_root" parameter of the fastcgi_params directive. + + + + + +директива fastcgi_redirect_errors. + + +the fastcgi_redirect_errors directive. + + + + + +новый модификатор break в директиве rewrite позволяет прекратить +цикл rewrite/location и устанавливает текущую конфигурацию для запроса. + + +the new "break" modifier of the "rewrite" directive allows to stop +the rewrite/location cycle and sets the current configuration to the request. + + + + + + + + + + +модуль ngx_http_rewrite_module полностью переписан. +Теперь можно делать редиректы, возвращать коды ошибок +и проверять переменные и рефереры. +Эти директивы можно использовать внутри location. +Директива redirect упразднена. + + +the ngx_http_rewrite_module was rewritten from the scratch. +Now it is possible to redirect, to return the error codes, +to check the variables and referrers. The directives can be used +inside locations. +The redirect directive was canceled. + + + + + +модуль ngx_http_geo_module. + + +the ngx_http_geo_module. + + + + + +директивы proxy_set_x_var и fastcgi_set_var. + + +the proxy_set_x_var and fastcgi_set_var directives. + + + + + +конфигурация location с модификатором "=" могла использоваться +в другом location. + + +the location configuration with "=" modifier may be used in another +location. + + + + + +правильный тип ответа выставлялся только для запросов, у которых в расширении +были только маленькие буквы. + + +the correct content type was set only for requests that use small caps letters +in extension. + + + + + +если для location установлен proxy_pass или fastcgi_pass, и доступ +к нему запрещался, а ошибка перенаправлялась на статическую страницу, +то происходил segmentation fault. + + +if the proxy_pass or fastcgi_pass directives were set in the location, +and access was denied, and the error was redirected to a static page, +then the segmentation fault occurred. + + + + + +если в проксированном ответе в заголовке "Location" передавался +относительный URL, то к нему добавлялось имя хоста и слэш; +ошибка появилась в 0.1.14. + + +if in a proxied "Location" header was a relative URL, +then a host name and a slash were added to them; +the bug had appeared in 0.1.14. + + + + + +на Linux в лог не записывался текст системной ошибки. + + +the system error message was not logged on Linux. + + + + + + + + + + +если ответ передавался chunk'ами, то при запросе HEAD выдавался +завершающий chunk. + + +if the response were transferred by chunks, then on the HEAD request +the final chunk was issued. + + + + + +заголовок "Connection: keep-alive" выдавался, даже если директива +keepalive_timeout запрещала использование keep-alive. + + +the "Connection: keep-alive" header were issued, even if the +keepalive_timeout directive forbade the keep-alive use. + + + + + +ошибки в модуле ngx_http_fastcgi_module вызывали segmentation fault. + + +the errors in the ngx_http_fastcgi_module caused the segmentation faults. + + + + + +при использовании SSL сжатый ответ мог передаваться не до конца. + + +the compressed response encrypted by SSL may not transferred complete. + + + + + +опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные для TCP сокетов, +не используются для unix domain сокетов. + + +the TCP-specific TCP_NODELAY, TCP_NOPUSH, and TCP_CORK options, +are not used for the unix domain sockets. + + + + + +директива rewrite поддерживает перезаписывание аргументов. + + +the rewrite directive supports the arguments rewriting. + + + + + +на запрос POST с заголовком "Content-Length: 0" возвращался ответ 400; +ошибка появилась в 0.1.14. + + +the response code 400 was returned for the POST request with the +"Content-Length: 0" header; +the bug had appeared in 0.1.14. + + + + + + + + + + +ошибка соединения с FastCGI-сервером вызывала segmentation fault. + + +the error while the connecting to the FastCGI server caused +segmentation fault. + + + + + +корректная обработка регулярного выражения, в котором число +выделенных частей не совпадает с числом подстановок. + + +the correct handling of the regular expression, that +has different number of the captures and substitutions. + + + + + +location, который передаётся FastCGI-серверу, может быть задан +с помощью регулярного выражения. + + +the location, that is passed to the FastCGI server, can be +regular expression. + + + + + +параметр FastCGI REQUEST_URI теперь передаётся вместе с аргументами +и в том виде, в котором был получен от клиента. + + +the FastCGI's parameter REQUEST_URI is now passed with the arguments +and in the original state. + + + + + +для использования регулярных выражений в location нужно было +собирать nginx вместе с ngx_http_rewrite_module. + + +the ngx_http_rewrite_module module was required to be built to use +the regular expressions in locations. + + + + + +если бэкенд слушал на 80-ом порту, то при использовании директивы +"proxy_preserve_host on" в заголовке "Host" указывался +также порт 80; +ошибка появилась в 0.1.14. + + +the directive "proxy_preserve_host on" adds port 80 +to the "Host" headers, if upstream listen on port 80; +the bug had appeared in 0.1.14. + + + + + +если задать одинаковые пути в параметрах автоконфигурации +--http-client-body-temp-path=PATH и --http-proxy-temp-path=PATH +или --http-client-body-temp-path=PATH и --http-fastcgi-temp-path=PATH, +то происходил segmentation fault. + + +the same paths in autoconfiguration parameters +--http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH, +or --http-client-body-temp-path=PATH and --http-fastcgi-temp-path=PATH +caused segmentation fault. + + + + + + + + + + +параметры автоконфигурации +--http-client-body-temp-path=PATH, +--http-proxy-temp-path=PATH +и --http-fastcgi-temp-path=PATH + + +the autoconfiguration directives: +--http-client-body-temp-path=PATH, +--http-proxy-temp-path=PATH, +and --http-fastcgi-temp-path=PATH + + + + + +имя каталога с временными файлами, содержащие тело запроса клиента, +задаётся директивой client_body_temp_path, +по умолчанию <prefix>/client_body_temp. + + +the directory name for the temporary files with the client request body +is specified by directive client_body_temp_path, +by default it is <prefix>/client_body_temp. + + + + + +модуль ngx_http_fastcgi_module и директивы +fastcgi_pass, +fastcgi_root, +fastcgi_index, +fastcgi_params, +fastcgi_connect_timeout, +fastcgi_send_timeout, +fastcgi_read_timeout, +fastcgi_send_lowat, +fastcgi_header_buffer_size, +fastcgi_buffers, +fastcgi_busy_buffers_size, +fastcgi_temp_path, +fastcgi_max_temp_file_size, +fastcgi_temp_file_write_size, +fastcgi_next_upstream +и fastcgi_x_powered_by. + + + +the ngx_http_fastcgi_module and the directives: +fastcgi_pass, +fastcgi_root, +fastcgi_index, +fastcgi_params, +fastcgi_connect_timeout, +fastcgi_send_timeout, +fastcgi_read_timeout, +fastcgi_send_lowat, +fastcgi_header_buffer_size, +fastcgi_buffers, +fastcgi_busy_buffers_size, +fastcgi_temp_path, +fastcgi_max_temp_file_size, +fastcgi_temp_file_write_size, +fastcgi_next_upstream, +and fastcgi_x_powered_by. + + + + + +ошибка "[alert] zero size buf"; +ошибка появилась в 0.1.3. + + +the "[alert] zero size buf" error; +the bug had appeared in 0.1.3. + + + + + +в директиве proxy_pass нужно обязательно указывать URI после имени хоста. + + +the URI must be specified after the host name in the proxy_pass directive. + + + + + +если в URI встречался символ %3F, то он считался началом строки аргументов. + + +the %3F symbol in the URI was considered as the argument string start. + + + + + +поддержка unix domain сокетов в модуле ngx_http_proxy_module. + + +the unix domain sockets support in the ngx_http_proxy_module. + + + + + +директивы ssl_engine и ssl_ciphers.
+Спасибо Сергею Скворцову за SSL-акселератор. +
+ +the ssl_engine and ssl_ciphers directives.
+Thanks to Sergey Skvortsov for SSL-accelerator. +
+
+ +
+ + + + + + +директивы server_names_hash и server_names_hash_threshold. + + +the server_names_hash and server_names_hash_threshold directives. + + + + + +имена *.domain.tld в директиве server_name не работали. + + +the *.domain.tld names in the "server_name" directive did not work. + + + + + +параметр лога %request_length записывал неверную длину. + + +the %request_length log parameter logged the incorrect length. + + + + + + + + + + +параметр лога %request_length. + + +the %request_length log parameter. + + + + + +при использовании /dev/poll, select и poll на платформах, где возможны +ложные срабатывания указанных методов, могли быть длительные задержки +при обработке запроса по keep-alive соединению. +Наблюдалось по крайней мере на Solaris с использованием /dev/poll. + + +when using the /dev/poll, select and poll on the platforms, where +these methods may do the false reports, there may be the long delay when +the request was passed via the keep-alive connection. +It may be at least on Solaris when using the /dev/poll. + + + + + +директива send_lowat игнорируется на Linux, так как Linux не поддерживает +опцию SO_SNDLOWAT. + + +the send_lowat directive is ignored on Linux because Linux does not support +the SO_SNDLOWAT option. + + + + + + + + + + +директива worker_priority. + + +the worker_priority directive. + + + + + +под FreeBSD директивы tcp_nopush и tcp_nodelay вместе влияют на передачу +ответа. + + +both tcp_nopush and tcp_nodelay directives affect the transferred response. + + + + + +nginx не вызывал initgroups().
+Спасибо Андрею Ситникову и Андрею Нигматулину. +
+ +nginx did not call initgroups().
+Thanks to Andrew Sitnikov and Andrei Nigmatulin. +
+
+ + + +ngx_http_auto_index_module теперь выдаёт размер файлов в байтах. + + +now the ngx_http_autoindex_module shows the file size in the bytes. + + + + + +ngx_http_auto_index_module возвращал ошибку 500, если в каталоге есть +битый symlink. + + +the ngx_http_autoindex_module returned the 500 error if the broken symlink +was in a directory. + + + + + +файлы больше 4G не передавались с использованием sendfile. + + +the files bigger than 4G could not be transferred using sendfile. + + + + + +если бэкенд резолвился в несколько адресов и при ожидании от него ответа +происходила ошибка, то процесс зацикливался. + + +if the backend was resolved to several backends and there was an error while +the response waiting then process may got caught in an endless loop. + + + + + +при использовании метода /dev/poll рабочий процесс мог завершиться +с сообщением "unknown cycle". + + +the worker process may exit with the "unknown cycle" message when the /dev/poll +method was used. + + + + + +ошибки "close() channel failed". + + +"close() channel failed" errors. + + + + + +автоматическое определение групп nobody и nogroup. + + +the autodetection of the "nobody" and "nogroup" groups. + + + + + +директива send_lowat не работала на Linux. + + +the send_lowat directive did not work on Linux. + + + + + +если в конфигурации не было раздела events, то происходил segmentation fault. + + +the segmentation fault occurred if there was no events section +in configuration. + + + + + +nginx не собирался под OpenBSD. + + +nginx could not be built on OpenBSD. + + + + + +двойные слэшы в "://" в URI превращались в ":/". + + +the double slashes in "://" in the URI were converted to ":/". + + + +
+ + + + + + +если в запросе без аргументов есть "//", "/./", "/../" или "%XX", +то терялся последний символ в строке запроса; +ошибка появилась в 0.1.9. + + +if the request without arguments contains "//", "/./", "/../" or "%XX" +then the last character in the request line was lost; +the bug had appeared in 0.1.9. + + + + + +исправление в версии 0.1.9 для файлов больше 2G на Linux не работало. + + +the fix in 0.1.9 for the files bigger than 2G on Linux did not work. + + + + + + + + + + +если в запросе есть "//", "/./", "/../" или "%XX", то проксируемый +запрос передавался без аргументов. + + +the proxied request was sent without arguments if the request contains +"//", "/./", "/../" or "%XX". + + + + + +при сжатии больших ответов иногда они передавались не полностью. + + +the large compressed responses may be transferred not completely. + + + + + +не передавались файлы больше 2G на Linux, неподдерживающем sendfile64(). + + +the files bigger than 2G was not transferred on Linux that does not support +sendfile64(). + + + + + +на Linux при конфигурации сборки нужно было обязательно использовать +параметр --with-poll_module; +ошибка появилась в 0.1.8. + + +while the build configuration on Linux the --with-poll_module parameter +was required; +the bug had appeared in 0.1.8. + + + + + + + + + + +ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов. + + +in the ngx_http_autoindex_module if the long file names were in the listing. + + + + + +модификатор "^~" в директиве location. + + +the "^~" modifier in the location directive. + + + + + +директива proxy_max_temp_file_size. + + +the proxy_max_temp_file_size directive. + + + + + + + + + + +при использовании sendfile, если передаваемый файл менялся, то мог +произойти segmentation fault на FreeBSD; +ошибка появилась в 0.1.5. + + +on FreeBSD the segmentation fault may occur if the size of the transferred +file was changed; +the bug had appeared in 0.1.5. + + + + + + + + + + +при некоторых комбинациях директив location c регулярными выражениями +использовалась конфигурация не из того location. + + +some location directive combinations with the regular expressions caused +the wrong configuration choose. + + + + + + + + + + +на Solaris и Linux могло быть очень много сообщений "recvmsg() returned +not enough data". + + +on Solaris and Linux there may be too many "recvmsg() returned not enough data" +alerts. + + + + + +в режиме прокси без использования sendfile на Solaris возникала +ошибка "writev() failed (22: Invalid argument)". +На других платформах, не поддерживающих sendfile, процесс зацикливался. + + +there were the "writev() failed (22: Invalid argument)" errors on +Solaris in proxy mode without sendfile. On other platforms that do not +support sendfile at all the process got caught in an endless loop. + + + + + +при использовании sendfile в режиме прокси на Solaris возникал +segmentation fault. + + +segmentation fault on Solaris in proxy mode and using sendfile. + + + + + +segmentation fault на Solaris. + + +segmentation fault on Solaris. + + + + + +обновление исполняемого файла на лету не работало на Linux. + + +on-line upgrade did not work on Linux. + + + + + +в списке файлов, выдаваемом модулем ngx_http_autoindex_module, +не перекодировались пробелы, кавычки и знаки процента. + + +the ngx_http_autoindex_module module did not escape the spaces, +the quotes, and the percent signs in the directory listing. + + + + + +уменьшение операций копирования. + + +the decrease of the copy operations. + + + + + +директива userid_p3p. + + +the userid_p3p directive. + + + + + + + + + + +ошибка в модуле ngx_http_autoindex_module. + + +in the ngx_http_autoindex_module. + + + + + + + + + + +модуль ngx_http_autoindex_module и директива autoindex. + + +the ngx_http_autoindex_module and the autoindex directive. + + + + + +директива proxy_set_x_url. + + +the proxy_set_x_url directive. + + + + + +модуль проксировании мог привести к зацикливанию, если не использовался +sendfile. + + +proxy module may get caught in an endless loop when sendfile is not used. + + + + + + + + + + +параметры --user=USER, --group=GROUP и --with-ld-opt=OPTIONS в configure. + + +the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure. + + + + + +директива server_name поддерживает *.domain.tld. + + +the server_name directive supports *.domain.tld. + + + + + +улучшена переносимость на неизвестные платформы. + + +the portability improvements. + + + + + +нельзя переконфигурировать nginx, если конфигурационный файл указан +в командной строке; +ошибка появилась в 0.1.1. + + +if configuration file was set in command line, the reconfiguration +was impossible; +the bug had appeared in 0.1.1. + + + + + +модуль проксировании мог привести к зацикливанию, если не использовался +sendfile. + + +proxy module may get caught in an endless loop when sendfile is not used. + + + + + +при использовании sendfile текст ответа не перекодировался +согласно директивам модуля charset; +ошибка появилась в 0.1.1. + + +with sendfile the response was not recoded according to the charset +module directives; +the bug had appeared in 0.1.1. + + + + + +очень редкая ошибка при обработке kqueue. + + +very seldom bug in the kqueue processing. + + + + + +модуль сжатия сжимал уже сжатые ответы, полученные при проксировании. + + +the gzip module compressed the proxied responses that was already compressed. + + + + + + + + + + +директива gzip_types. + + +the gzip_types directive. + + + + + +директива tcp_nodelay. + + +the tcp_nodelay directive. + + + + + +директива send_lowat работает не только на платформах, поддерживающих +kqueue NOTE_LOWAT, но и на всех, поддерживающих SO_SNDLOWAT. + + +the send_lowat directive is working not only on OSes that support +kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT. + + + + + +эмуляция setproctitle() для Linux и Solaris. + + +the setproctitle() emulation for Linux and Solaris. + + + + + +ошибка при переписывании заголовка "Location" при проксировании. + + +the "Location" header rewrite bug fixed while the proxying. + + + + + +ошибка в модуле ngx_http_chunked_module, приводившая к зацикливанию. + + +the ngx_http_chunked_module module may get caught in an endless loop. + + + + + +ошибки в модуле /dev/poll. + + +the /dev/poll module bugs fixed. + + + + + +при проксировании и использовании временных файлов ответы портились. + + +the responses were corrupted when the temporary files were used +while the proxying. + + + + + +бэкенду передавались запросы с неперекодированными символами. + + +the unescaped requests were passed to the backend. + + + + + +на Linux 2.4 при конфигурации сборки нужно было обязательно использовать +параметр --with-poll_module. + + +while the build configuration on Linux 2.4 the --with-poll_module parameter +was required. + + + + + + + + + + +Первая публично доступная версия. + + +The first public version. + + + + + + +
diff --git a/app/nginx/docs/xsls/changes.xsls b/app/nginx/docs/xsls/changes.xsls new file mode 100644 index 0000000..4b34254 --- /dev/null +++ b/app/nginx/docs/xsls/changes.xsls @@ -0,0 +1,134 @@ +X:stylesheet { + +X:output method="text"; + +X:param lang="'en'"; +X:param configuration="'../xml/change_log_conf.xml'"; + +X:var conf = "document($configuration)/configuration"; +X:var start = "$conf/start"; +X:var indent = "$conf/indent"; +X:var max = "$conf/length"; +X:var br = {<br>} + + +X:template = "/" { !! "change_log"; } +X:template = "change_log" { !! "changes"; } + + +X:template = "changes" { + X:text { } + + !{substring(concat($conf/changes[@lang=$lang]/title, + //change_log/@title, + ' ', @ver, + ' '), + 1, $conf/changes[@lang=$lang]/length)} + + X:if "$lang='ru'" { + !{substring(@date, 9, 2)} + X:text {.} + !{substring(@date, 6, 2)} + X:text {.} + !{substring(@date, 1, 4)} + } + + X:if "$lang='en'" { + !{substring(@date, 9, 2)} + !{$conf/changes[@lang=$lang]/month[number(substring(current()/@date, + 6, 2))]} + !{substring(@date, 1, 4)} + } + + X:text { } + + !! "change"; + + X:text { } +} + + +X:template = "change" { + X:var prefix = "$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]" + + X:var postfix = { X:if "$prefix" { X:text {: } } } + + !! "para[@lang=$lang]" (prefix = "concat($start, $prefix, $postfix)"); +} + + +X:template para(prefix) = "para" { + X:var text = { !!; } + + X:text { } + + !wrap(text = "normalize-space($text)", + prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } }) +} + + +X:template wrap(text, prefix) { + X:if "$text" { + X:var offset = { + X:choose { + X:when "starts-with($text, concat($br, ' '))" { + !{string-length($br) + 2} + } + X:when "starts-with($text, $br)" { + !{string-length($br) + 1} + } + X:otherwise { + 1 + } + } + } + + X:var length = { + !length(text = "substring($text, $offset)", + prefix = "string-length($prefix)", + length = "$max") + } + + !{$prefix} + + !{normalize-space(translate(substring($text, $offset, $length), + ' ', ' '))} + + X:text { } + + !wrap(text = "substring($text, $length + $offset)", prefix = "$indent") + } +} + + +X:template length(text, prefix, length) { + X:var break = "substring-before(substring($text, 1, + $length - $prefix + string-length($br)), + $br)" + + X:choose { + X:when "$break" { !{string-length($break)} } + + X:when "$length = 0" { !{$max - $prefix} } + + X:when "string-length($text) + $prefix <= $length" { + !{$length - $prefix} + } + + X:when "substring($text, $length - $prefix + 1, 1) = ' '" { + !{$length - $prefix + 1} + } + + X:otherwise { + !length(text = "$text", prefix = "$prefix", length = "$length - 1") + } + } +} + + +X:template = "at" {@} +X:template = "br" { !{$br} } +X:template = "nobr" { !{translate(., ' ', ' ')} } + + +} diff --git a/app/nginx/docs/xslt/changes.xslt b/app/nginx/docs/xslt/changes.xslt new file mode 100644 index 0000000..55ee515 --- /dev/null +++ b/app/nginx/docs/xslt/changes.xslt @@ -0,0 +1,128 @@ + + + + + + + + + + + + +<br> + + + + + + + + + + + + + + . + + . + + + + + + + + + + + + + + + + + + + + + : + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@ + + + + + -- cgit