diff options
Diffstat (limited to 'app/nginx/docs')
-rw-r--r-- | app/nginx/docs/GNUmakefile | 41 | ||||
-rw-r--r-- | app/nginx/docs/dtd/change_log_conf.dtd | 22 | ||||
-rw-r--r-- | app/nginx/docs/dtd/changes.dtd | 22 | ||||
-rw-r--r-- | app/nginx/docs/html/50x.html | 21 | ||||
-rw-r--r-- | app/nginx/docs/html/index.html | 25 | ||||
-rw-r--r-- | app/nginx/docs/man/nginx.8 | 206 | ||||
-rw-r--r-- | app/nginx/docs/text/LICENSE | 26 | ||||
-rw-r--r-- | app/nginx/docs/text/README | 3 | ||||
-rw-r--r-- | app/nginx/docs/xml/change_log_conf.xml | 47 | ||||
-rw-r--r-- | app/nginx/docs/xml/nginx/changes.xml | 25676 | ||||
-rw-r--r-- | app/nginx/docs/xsls/changes.xsls | 134 | ||||
-rw-r--r-- | app/nginx/docs/xslt/changes.xslt | 128 |
12 files changed, 26351 insertions, 0 deletions
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 @@ + +<!ELEMENT configuration (length, start, indent, changes+) > + +<!ELEMENT length (#PCDATA) > +<!ELEMENT start (#PCDATA) > +<!ELEMENT indent (#PCDATA) > + +<!ELEMENT changes (title, length, + bugfix, feature, change, workaround, + (month, month, month, month, month, month, + month, month, month, month, month, month)?) > + +<!ATTLIST changes lang ( ru | en) #REQUIRED> + +<!ELEMENT title (#PCDATA) > + +<!ELEMENT bugfix (#PCDATA) > +<!ELEMENT feature (#PCDATA) > +<!ELEMENT change (#PCDATA) > +<!ELEMENT workaround (#PCDATA) > + +<!ELEMENT month (#PCDATA) > 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 @@ + +<!ENTITY nbsp " " > +<!ENTITY mdash " - " > + + +<!ELEMENT change_log (changes)* > +<!ATTLIST change_log title CDATA #REQUIRED > + +<!ELEMENT changes (change)* > +<!ATTLIST changes ver CDATA #REQUIRED + date CDATA #REQUIRED +> + +<!ELEMENT change (para)* > +<!ATTLIST change type (bugfix | feature | change | security | workaround) #IMPLIED > + +<!ELEMENT para (#PCDATA | at | br | nobr)* > +<!ATTLIST para lang (ru | en) #REQUIRED > + +<!ELEMENT at EMPTY > +<!ELEMENT br EMPTY > +<!ELEMENT nobr (#PCDATA) > 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 @@ +<!DOCTYPE html> +<html> +<head> +<title>Error</title> +<style> + body { + width: 35em; + margin: 0 auto; + font-family: Tahoma, Verdana, Arial, sans-serif; + } +</style> +</head> +<body> +<h1>An error occurred.</h1> +<p>Sorry, the page you are looking for is currently unavailable.<br/> +Please try again later.</p> +<p>If you are the system administrator of this resource then you should check +the <a href="http://nginx.org/r/error_log">error log</a> for details.</p> +<p><em>Faithfully yours, nginx.</em></p> +</body> +</html> 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 @@ +<!DOCTYPE html> +<html> +<head> +<title>Welcome to nginx!</title> +<style> + body { + width: 35em; + margin: 0 auto; + font-family: Tahoma, Verdana, Arial, sans-serif; + } +</style> +</head> +<body> +<h1>Welcome to nginx!</h1> +<p>If you see this page, the nginx web server is successfully installed and +working. Further configuration is required.</p> + +<p>For online documentation and support please refer to +<a href="http://nginx.org/">nginx.org</a>.<br/> +Commercial support is available at +<a href="http://nginx.com/">nginx.com</a>.</p> + +<p><em>Thank you for using nginx.</em></p> +</body> +</html> 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 @@ +<?xml version="1.0" ?> +<!DOCTYPE configuration SYSTEM "../dtd/change_log_conf.dtd" > + +<configuration> + +<length>76</length> + +<start> *) </start> +<indent> </indent> + +<changes lang="ru"> + <title>Изменения в </title> + <length>66</length> + + <bugfix>Исправление</bugfix> + <feature>Добавление</feature> + <change>Изменение</change> + <security>Безопасность</security> + <workaround>Изменение</workaround> +</changes> + +<changes lang="en"> + <title>Changes with </title> + <length>65</length> + + <bugfix>Bugfix</bugfix> + <feature>Feature</feature> + <change>Change</change> + <security>Security</security> + <workaround>Workaround</workaround> + + <month> Jan </month> + <month> Feb </month> + <month> Mar </month> + <month> Apr </month> + <month> May </month> + <month> Jun </month> + <month> Jul </month> + <month> Aug </month> + <month> Sep </month> + <month> Oct </month> + <month> Nov </month> + <month> Dec </month> + +</changes> + +</configuration> 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 @@ +<?xml version="1.0" ?> +<!DOCTYPE change_log SYSTEM "../../dtd/changes.dtd" > + + +<change_log title="nginx"> + + +<changes ver="1.11.13" date="2017-04-04"> + +<change type="feature"> +<para lang="ru"> +параметр http_429 в директивах proxy_next_upstream, fastcgi_next_upstream, +scgi_next_upstream и uwsgi_next_upstream.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +the "http_429" parameter of the "proxy_next_upstream", "fastcgi_next_upstream", +"scgi_next_upstream", and "uwsgi_next_upstream" directives.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок выделения памяти. +</para> +<para lang="en"> +in memory allocation error handling. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директив sendfile и timer_resolution на Linux +запросы могли зависать. +</para> +<para lang="en"> +requests might hang +when using the "sendfile" and "timer_resolution" directives on Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании с подзапросами директив sendfile и aio_write +запросы могли зависать. +</para> +<para lang="en"> +requests might hang +when using the "sendfile" and "aio_write" directives with subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_v2_module.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in the ngx_http_v2_module.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +запросы могли зависать +при использовании с подзапросами директив limit_rate, sendfile_max_chunk, +limit_req или метода $r->sleep() встроенного перла. +</para> +<para lang="en"> +requests might hang +when using the "limit_rate", "sendfile_max_chunk", "limit_req" directives, +or the $r->sleep() embedded perl method with subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_slice_module. +</para> +<para lang="en"> +in the ngx_http_slice_module. +</para> +</change> + +</changes> + + +<changes ver="1.11.12" date="2017-03-24"> + +<change type="bugfix"> +<para lang="ru"> +nginx мог нагружать процессор; +ошибка появилась в 1.11.11. +</para> +<para lang="en"> +nginx might hog CPU; +the bug had appeared in 1.11.11. +</para> +</change> + +</changes> + + +<changes ver="1.11.11" date="2017-03-21"> + +<change type="feature"> +<para lang="ru"> +директива worker_shutdown_timeout. +</para> +<para lang="en"> +the "worker_shutdown_timeout" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +улучшения в скриптах подсветки синтаксиса для vim.<br/> +Спасибо Wei-Ko Kao. +</para> +<para lang="en"> +vim syntax highlighting scripts improvements.<br/> +Thanks to Wei-Ko Kao. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при попытке установить переменную $limit_rate в пустую строку +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the $limit_rate variable was set to an empty string. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_cache_background_update, fastcgi_cache_background_update, +scgi_cache_background_update и uwsgi_cache_background_update +могли работать некорректно, если использовалась директива if. +</para> +<para lang="en"> +the "proxy_cache_background_update", "fastcgi_cache_background_update", +"scgi_cache_background_update", and "uwsgi_cache_background_update" directives +might work incorrectly if the "if" directive was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если количество large_client_header_buffers в виртуальном сервере +отличалось от такового в сервере по умолчанию. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if number of large_client_header_buffers in a virtual server +was different from the one in the default server. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в почтовом прокси-сервере. +</para> +<para lang="en"> +in the mail proxy server. +</para> +</change> + +</changes> + + +<changes ver="1.11.10" date="2017-02-14"> + +<change type="change"> +<para lang="ru"> +формат заголовка кэша был изменен, +ранее закэшированные ответы будут загружены заново. +</para> +<para lang="en"> +cache header format has been changed, +previously cached responses will be invalidated. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка расширений stale-while-revalidate и stale-if-error +в строке "Cache-Control" в заголовке ответа бэкенда. +</para> +<para lang="en"> +support of "stale-while-revalidate" and "stale-if-error" extensions +in the "Cache-Control" backend response header line. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_cache_background_update, fastcgi_cache_background_update, +scgi_cache_background_update и uwsgi_cache_background_update. +</para> +<para lang="en"> +the "proxy_cache_background_update", "fastcgi_cache_background_update", +"scgi_cache_background_update", and "uwsgi_cache_background_update" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь nginx может кэшировать ответы +со строкой Vary заголовка длиной до 128 символов +(вместо 42 символов в предыдущих версиях). +</para> +<para lang="en"> +nginx is now able to cache responses +with the "Vary" header line up to 128 characters long +(instead of 42 characters in previous versions). +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр build директивы server_tokens.<br/> +Спасибо Tom Thorogood. +</para> +<para lang="en"> +the "build" parameter of the "server_tokens" directive.<br/> +Thanks to Tom Thorogood. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса +в логах могли появляться сообщения "[crit] SSL_write() failed". +</para> +<para lang="en"> +"[crit] SSL_write() failed" messages might appear in logs +when handling requests with the "Expect: 100-continue" request header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_slice_module не работал в именованных location'ах. +</para> +<para lang="en"> +the ngx_http_slice_module did not work in named locations. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании AIO после перенаправления запроса с помощью X-Accel-Redirect +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +when using AIO after an "X-Accel-Redirect" redirection. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +уменьшено потребление памяти для долгоживущих запросов, использующих сжатие. +</para> +<para lang="en"> +reduced memory consumption for long-lived requests using gzipping. +</para> +</change> + +</changes> + + +<changes ver="1.11.9" date="2017-01-24"> + +<change type="bugfix"> +<para lang="ru"> +при использовании модуля stream nginx мог нагружать процессор; +ошибка появилась в 1.11.5. +</para> +<para lang="en"> +nginx might hog CPU when using the stream module; +the bug had appeared in 1.11.5. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +метод аутентификации EXTERNAL в почтовом прокси-сервере +можно было использовать, даже если он не был разрешён в конфигурации. +</para> +<para lang="en"> +EXTERNAL authentication mechanism in mail proxy +was accepted even if it was not enabled in the configuration. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы ssl_verify_client модуля stream +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "ssl_verify_client" directive of the stream module was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива ssl_verify_client модуля stream могла не работать. +</para> +<para lang="en"> +the "ssl_verify_client" directive of the stream module might not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при исчерпании рабочим процессом свободных соединений +keepalive-соединения могли закрываться излишне агрессивно.<br/> +Спасибо Joel Cunningham. +</para> +<para lang="en"> +closing keepalive connections due to no free worker connections +might be too aggressive.<br/> +Thanks to Joel Cunningham. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы sendfile на FreeBSD и macOS +мог возвращаться некорректный ответ; +ошибка появилась в 1.7.8. +</para> +<para lang="en"> +an incorrect response might be returned +when using the "sendfile" directive on FreeBSD and macOS; +the bug had appeared in 1.7.8. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы aio_write +ответ мог сохраняться в кэш не полностью. +</para> +<para lang="en"> +a truncated response might be stored in cache +when using the "aio_write" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы aio_write +могла происходить утечка сокетов. +</para> +<para lang="en"> +a socket leak might occur +when using the "aio_write" directive. +</para> +</change> + +</changes> + + +<changes ver="1.11.8" date="2016-12-27"> + +<change type="feature"> +<para lang="ru"> +директива absolute_redirect. +</para> +<para lang="en"> +the "absolute_redirect" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр escape директивы log_format. +</para> +<para lang="en"> +the "escape" parameter of the "log_format" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +проверка клиентских SSL-сертификатов в модуле stream. +</para> +<para lang="en"> +client SSL certificates verification in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_session_ticket_key поддерживает +шифрование TLS session tickets с помощью AES256 +при использовании с 80-байтными ключами. +</para> +<para lang="en"> +the "ssl_session_ticket_key" directive supports +AES256 encryption of TLS session tickets +when used with 80-byte keys. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка vim-commentary в скриптах для vim.<br/> +Спасибо Armin Grodon. +</para> +<para lang="en"> +vim-commentary support in vim scripts.<br/> +Thanks to Armin Grodon. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +рекурсия при получении значений переменных не ограничивалась. +</para> +<para lang="en"> +recursion when evaluating variables was not limited. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_stream_ssl_preread_module. +</para> +<para lang="en"> +in the ngx_stream_ssl_preread_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если сервер, описанный в блоке upstream в модуле stream, +был признан неработающим, то после истечения fail_timeout он +признавался работающим только после завершения тестового соединения; +теперь достаточно, чтобы соединение было успешно установлено. +</para> +<para lang="en"> +if a server in an upstream in the stream module failed, +it was considered alive only when a test connection sent +to it after fail_timeout was closed; +now a successfully established connection is enough. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows не собирался с 64-битным Visual Studio. +</para> +<para lang="en"> +nginx/Windows could not be built with 64-bit Visual Studio. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows не собирался с OpenSSL 1.1.0. +</para> +<para lang="en"> +nginx/Windows could not be built with OpenSSL 1.1.0. +</para> +</change> + +</changes> + + +<changes ver="1.11.7" date="2016-12-13"> + +<change type="change"> +<para lang="ru"> +переменная $ssl_client_verify теперь +в случае ошибки проверки клиентского сертификата +содержит строку с описанием ошибки, +например, "FAILED:certificate has expired". +</para> +<para lang="en"> +now in case of a client certificate verification error +the $ssl_client_verify variable contains a string with the failure reason, +for example, "FAILED:certificate has expired". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $ssl_ciphers, $ssl_curves, +$ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain. +</para> +<para lang="en"> +the $ssl_ciphers, $ssl_curves, +$ssl_client_v_start, $ssl_client_v_end, and $ssl_client_v_remain variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр volatile директивы map. +</para> +<para lang="en"> +the "volatile" parameter of the "map" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при сборке динамических модулей +не учитывались заданные для модуля зависимости. +</para> +<para lang="en"> +dependencies specified for a module +were ignored while building dynamic modules. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 и директив limit_req или auth_request +тело запроса могло быть повреждено; +ошибка появилась в 1.11.0. +</para> +<para lang="en"> +when using HTTP/2 and the "limit_req" or "auth_request" directives +client request body might be corrupted; +the bug had appeared in 1.11.0. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.11.3. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process when using HTTP/2; +the bug had appeared in 1.11.3. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module.<br/> +Спасибо Congcong Hu. +</para> +<para lang="en"> +in the ngx_http_mp4_module.<br/> +Thanks to Congcong Hu. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_perl_module. +</para> +<para lang="en"> +in the ngx_http_perl_module. +</para> +</change> + +</changes> + + +<changes ver="1.11.6" date="2016-11-15"> + +<change type="change"> +<para lang="ru"> +формат переменных $ssl_client_s_dn и $ssl_client_i_dn +изменён на соответствующий RFC 2253 (RFC 4514); +значения в старом формате доступны через переменные +$ssl_client_s_dn_legacy и $ssl_client_i_dn_legacy. +</para> +<para lang="en"> +format of the $ssl_client_s_dn and $ssl_client_i_dn variables +has been changed to follow RFC 2253 (RFC 4514); +values in the old format are available in +the $ssl_client_s_dn_legacy and $ssl_client_i_dn_legacy variables. +</para> +</change> + +<change type="change"> +<para lang="ru"> +при сохранении временных файлов в каталоге кэша +они теперь располагаются не в отдельном подкаталоге для временных файлов, +а в том же подкаталоге, что и соответствующие файлы в кэше. +</para> +<para lang="en"> +when storing temporary files in a cache directory +they will be stored in the same subdirectories as corresponding cache files +instead of a separate subdirectory for temporary files. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка метода аутентификации EXTERNAL +в почтовом прокси-сервере.<br/> +Спасибо Robert Norris. +</para> +<para lang="en"> +EXTERNAL authentication mechanism support +in mail proxy.<br/> +Thanks to Robert Norris. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка WebP в модуле ngx_http_image_filter_module. +</para> +<para lang="en"> +WebP support in the ngx_http_image_filter_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_method поддерживает переменные.<br/> +Спасибо Дмитрию Лазуркину. +</para> +<para lang="en"> +variables support in the "proxy_method" directive.<br/> +Thanks to Dmitry Lazurkin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива http2_max_requests в модуле ngx_http_v2_module. +</para> +<para lang="en"> +the "http2_max_requests" directive in the ngx_http_v2_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_cache_max_range_offset, fastcgi_cache_max_range_offset, +scgi_cache_max_range_offset и uwsgi_cache_max_range_offset. +</para> +<para lang="en"> +the "proxy_cache_max_range_offset", "fastcgi_cache_max_range_offset", +"scgi_cache_max_range_offset", and "uwsgi_cache_max_range_offset" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +плавное завершение старых рабочих процессов могло занимать бесконечное время +при использовании HTTP/2. +</para> +<para lang="en"> +graceful shutdown of old worker processes might require infinite time +when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module. +</para> +<para lang="en"> +in the ngx_http_mp4_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проксировании WebSocket-соединений и включённом кэшировании +в логах могли появляться сообщения "ignore long locked inactive cache entry". +</para> +<para lang="en"> +"ignore long locked inactive cache entry" alerts might appear in logs +when proxying WebSocket connections with caching enabled. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если во время SSL handshake с бэкендом происходил таймаут, +nginx ничего не писал в лог +и возвращал ответ с кодом 502 вместо 504. +</para> +<para lang="en"> +nginx did not write anything to log +and returned a response with code 502 instead of 504 +when a timeout occurred during an SSL handshake to a backend. +</para> +</change> + +</changes> + + +<changes ver="1.11.5" date="2016-10-11"> + +<change type="change"> +<para lang="ru"> +параметр configure --with-ipv6 упразднён, +поддержка IPv6 теперь собирается автоматически. +</para> +<para lang="en"> +the --with-ipv6 configure option was removed, +now IPv6 support is configured automatically. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь, если в блоке upstream не оказалось доступных серверов, +nginx не сбрасывает статистику ошибок всех серверов, как делал ранее, +а ожидает истечения fail_timeout. +</para> +<para lang="en"> +now if there are no available servers in an upstream, +nginx will not reset number of failures of all servers as it previously did, +but will wait for fail_timeout to expire. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_stream_ssl_preread_module. +</para> +<para lang="en"> +the ngx_stream_ssl_preread_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server в блоке upstream поддерживает параметр max_conns. +</para> +<para lang="en"> +the "server" directive in the "upstream" context supports +the "max_conns" parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр configure --with-compat. +</para> +<para lang="en"> +the --with-compat configure option. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметры manager_files, manager_threshold и manager_sleep +директив proxy_cache_path, fastcgi_cache_path, scgi_cache_path и +uwsgi_cache_path. +</para> +<para lang="en"> +"manager_files", "manager_threshold", and "manager_sleep" parameters +of the "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path", and +"uwsgi_cache_path" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при сборке perl-модуля не использовались флаги, +заданные с помощью параметра configure --with-ld-opt. +</para> +<para lang="en"> +flags passed by the --with-ld-opt configure option +were not used while building perl module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве add_after_body при использовании совместно с директивой sub_filter. +</para> +<para lang="en"> +in the "add_after_body" directive when used with the "sub_filter" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в переменной $realip_remote_addr. +</para> +<para lang="en"> +in the $realip_remote_addr variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы dav_access, proxy_store_access, fastcgi_store_access, +scgi_store_access и uwsgi_store_access +игнорировали права, заданные для пользователя. +</para> +<para lang="en"> +the "dav_access", "proxy_store_access", "fastcgi_store_access", +"scgi_store_access", and "uwsgi_store_access" directives +ignored permissions specified for user. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +unix domain listen-сокеты могли не наследоваться +при обновлении исполняемого файла на Linux. +</para> +<para lang="en"> +unix domain listen sockets might not be inherited +during binary upgrade on Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx возвращал ошибку 400 на запросы +с символом "-" в HTTP-методе. +</para> +<para lang="en"> +nginx returned the 400 response on requests +with the "-" character in the HTTP method. +</para> +</change> + +</changes> + + +<changes ver="1.11.4" date="2016-09-13"> + +<change type="feature"> +<para lang="ru"> +переменная $upstream_bytes_received. +</para> +<para lang="en"> +the $upstream_bytes_received variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $bytes_received, $session_time, $protocol, $status, +$upstream_addr, $upstream_bytes_sent, $upstream_bytes_received, +$upstream_connect_time, $upstream_first_byte_time +и $upstream_session_time в модуле stream. +</para> +<para lang="en"> +the $bytes_received, $session_time, $protocol, $status, +$upstream_addr, $upstream_bytes_sent, $upstream_bytes_received, +$upstream_connect_time, $upstream_first_byte_time, +and $upstream_session_time variables in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_stream_log_module. +</para> +<para lang="en"> +the ngx_stream_log_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр proxy_protocol в директиве listen, +переменные $proxy_protocol_addr и $proxy_protocol_port +в модуле stream. +</para> +<para lang="en"> +the "proxy_protocol" parameter of the "listen" directive, +the $proxy_protocol_addr and $proxy_protocol_port variables +in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_stream_realip_module. +</para> +<para lang="en"> +the ngx_stream_realip_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с модулем stream и модулем ngx_http_ssl_module, +но без модуля ngx_stream_ssl_module; +ошибка появилась в 1.11.3. +</para> +<para lang="en"> +nginx could not be built with the stream module and the ngx_http_ssl_module, +but without ngx_stream_ssl_module; +the bug had appeared in 1.11.3. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась; +ошибка появилась в 1.11.2. +</para> +<para lang="en"> +the IP_BIND_ADDRESS_NO_PORT socket option was not used; +the bug had appeared in 1.11.2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в параметре ranges директивы geo. +</para> +<para lang="en"> +in the "ranges" parameter of the "geo" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директив "aio threads" и sendfile +мог возвращаться некорректный ответ; ошибка появилась в 1.9.13. +</para> +<para lang="en"> +an incorrect response might be returned +when using the "aio threads" and "sendfile" directives; +the bug had appeared in 1.9.13. +</para> +</change> + +</changes> + + +<changes ver="1.11.3" date="2016-07-26"> + +<change type="change"> +<para lang="ru"> +теперь accept_mutex по умолчанию выключен. +</para> +<para lang="en"> +now the "accept_mutex" directive is turned off by default. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь nginx использует EPOLLEXCLUSIVE на Linux. +</para> +<para lang="en"> +now nginx uses EPOLLEXCLUSIVE on Linux. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_stream_geo_module. +</para> +<para lang="en"> +the ngx_stream_geo_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_stream_geoip_module. +</para> +<para lang="en"> +the ngx_stream_geoip_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_stream_split_clients_module. +</para> +<para lang="en"> +the ngx_stream_split_clients_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_pass и proxy_ssl_name в модуле stream +поддерживают переменные. +</para> +<para lang="en"> +variables support +in the "proxy_pass" and "proxy_ssl_name" directives in the stream module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов при использовании HTTP/2. +</para> +<para lang="en"> +socket leak when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в configure.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in configure tests.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +</changes> + + +<changes ver="1.11.2" date="2016-07-05"> + +<change type="change"> +<para lang="ru"> +теперь nginx всегда использует внутренние реализации MD5 и SHA1; +параметры configure --with-md5 и --with-sha1 упразднены. +</para> +<para lang="en"> +now nginx always uses internal MD5 and SHA1 implementations; +the --with-md5 and --with-sha1 configure options were canceled. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка переменных в модуле stream. +</para> +<para lang="en"> +variables support in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_stream_map_module. +</para> +<para lang="en"> +the ngx_stream_map_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_stream_return_module. +</para> +<para lang="en"> +the ngx_stream_return_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в директивах proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind +теперь можно указывать порт. +</para> +<para lang="en"> +a port can be specified in the "proxy_bind", "fastcgi_bind", +"memcached_bind", "scgi_bind", and "uwsgi_bind" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь nginx использует опцию сокета IP_BIND_ADDRESS_NO_PORT, если она доступна. +</para> +<para lang="en"> +now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option when available. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 и директивы proxy_request_buffering +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +when using HTTP/2 and the "proxy_request_buffering" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 +к запросам, передаваемым на бэкенд, +всегда добавлялась строка заголовка "Content-Length", +даже если у запроса не было тела. +</para> +<para lang="en"> +the "Content-Length" request header line +was always added to requests passed to backends, +including requests without body, +when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 +в логах могли появляться сообщения "http request count is zero". +</para> +<para lang="en"> +"http request count is zero" alerts might appear in logs +when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы sub_filter +могло буферизироваться больше данных, чем это необходимо; +проблема появилась в 1.9.4. +</para> +<para lang="en"> +unnecessary buffering might occur +when using the "sub_filter" directive; +the issue had appeared in 1.9.4. +</para> +</change> + +</changes> + + +<changes ver="1.11.1" date="2016-05-31"> + +<change type="security"> +<para lang="ru"> +при записи тела специально созданного запроса во временный файл +в рабочем процессе мог происходить segmentation fault +(CVE-2016-4450); +ошибка появилась в 1.3.9. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +while writing a specially crafted request body to a temporary file +(CVE-2016-4450); +the bug had appeared in 1.3.9. +</para> +</change> + +</changes> + + +<changes ver="1.11.0" date="2016-05-24"> + +<change type="feature"> +<para lang="ru"> +параметр transparent директив proxy_bind, fastcgi_bind, +memcached_bind, scgi_bind и uwsgi_bind. +</para> +<para lang="en"> +the "transparent" parameter of the "proxy_bind", "fastcgi_bind", +"memcached_bind", "scgi_bind", and "uwsgi_bind" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $request_id. +</para> +<para lang="en"> +the $request_id variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива map поддерживает комбинации нескольких переменных +в качестве результирующих значений. +</para> +<para lang="en"> +the "map" directive supports combinations of multiple variables +as resulting values. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь при использовании метода epoll +nginx проверяет, поддерживает ли ядро события EPOLLRDHUP, +и соответственно оптимизирует обработку соединений. +</para> +<para lang="en"> +now nginx checks if EPOLLRDHUP events are supported by kernel, +and optimizes connection handling accordingly +if the "epoll" method is used. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы ssl_certificate и ssl_certificate_key +теперь можно указывать несколько раз +для загрузки сертификатов разных типов (например, RSA и ECDSA). +</para> +<para lang="en"> +the "ssl_certificate" and "ssl_certificate_key" directives +can be specified multiple times +to load certificates of different types (for example, RSA and ECDSA). +</para> +</change> + +<change type="feature"> +<para lang="ru"> +при использовании OpenSSL 1.0.2 и новее +с помощью директивы ssl_ecdh_curve теперь можно задать список кривых; +по умолчанию используется встроенный в OpenSSL список кривых. +</para> +<para lang="en"> +the "ssl_ecdh_curve" directive now allows specifying a list of curves +when using OpenSSL 1.0.2 or newer; +by default a list built into OpenSSL is used. +</para> +</change> + +<change type="change"> +<para lang="ru"> +для использования DHE-шифров теперь надо явно задавать файл параметров +с помощью директивы ssl_dhparam. +</para> +<para lang="en"> +to use DHE ciphers it is now required to specify parameters +using the "ssl_dhparam" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $proxy_protocol_port. +</para> +<para lang="en"> +the $proxy_protocol_port variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $realip_remote_port в модуле ngx_http_realip_module. +</para> +<para lang="en"> +the $realip_remote_port variable in the ngx_http_realip_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_realip_module теперь позволяет устанавливать +не только адрес, но и порт клиента. +</para> +<para lang="en"> +the ngx_http_realip_module is now able to set the client port +in addition to the address. +</para> +</change> + +<change type="change"> +<para lang="ru"> +при попытке запросить виртуальный сервер, +отличающийся от согласованного в процессе SSL handshake, +теперь возвращается ответ "421 Misdirected Request"; +это улучшает совместимость с некоторыми HTTP/2-клиентами +в случае использования клиентских сертификатов. +</para> +<para lang="en"> +the "421 Misdirected Request" response now used +when rejecting requests to a virtual server +different from one negotiated during an SSL handshake; +this improves interoperability with some HTTP/2 clients +when using client certificates. +</para> +</change> + +<change type="change"> +<para lang="ru"> +HTTP/2-клиенты теперь могут сразу присылать тело запроса; +директива http2_body_preread_size позволяет указать размер буфера, который +будет использоваться до того, как nginx начнёт читать тело. +</para> +<para lang="en"> +HTTP/2 clients can now start sending request body immediately; +the "http2_body_preread_size" directive controls size of the buffer used +before nginx will start reading client request body. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы proxy_cache_bypass +не обновлялись закэшированные ошибочные ответы. +</para> +<para lang="en"> +cached error responses were not updated +when using the "proxy_cache_bypass" directive. +</para> +</change> + +</changes> + + +<changes ver="1.9.15" date="2016-04-19"> + +<change type="bugfix"> +<para lang="ru"> +при использовании HHVM в качестве FastCGI-сервера +могли возникать ошибки "recv() failed". +</para> +<para lang="en"> +"recv() failed" errors might occur +when using HHVM as a FastCGI server. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 и директив limit_req или auth_request +при чтении тела запроса мог произойти таймаут +или ошибка "client violated flow control"; +ошибка появилась в 1.9.14. +</para> +<para lang="en"> +when using HTTP/2 and the "limit_req" or "auth_request" directives +a timeout or a "client violated flow control" error +might occur while reading client request body; +the bug had appeared in 1.9.14. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +при использовании HTTP/2 ответ мог не показываться некоторыми браузерами, +если тело запроса было прочитано не целиком; +ошибка появилась в 1.9.14. +</para> +<para lang="en"> +a response might not be shown by some browsers +if HTTP/2 was used and client request body was not fully read; +the bug had appeared in 1.9.14. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы "aio threads" соединения могли зависать.<br/> +Спасибо Mindaugas Rasiukevicius. +</para> +<para lang="en"> +connections might hang when using the "aio threads" directive.<br/> +Thanks to Mindaugas Rasiukevicius. +</para> +</change> + +</changes> + + +<changes ver="1.9.14" date="2016-04-05"> + +<change type="feature"> +<para lang="ru"> +совместимость с OpenSSL 1.1.0. +</para> +<para lang="en"> +OpenSSL 1.1.0 compatibility. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_request_buffering, fastcgi_request_buffering, +scgi_request_buffering и uwsgi_request_buffering +теперь работают при использовании HTTP/2. +</para> +<para lang="en"> +the "proxy_request_buffering", "fastcgi_request_buffering", +"scgi_request_buffering", and "uwsgi_request_buffering" directives +now work with HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 +в логах могли появляться сообщения "zero size buf in output". +</para> +<para lang="en"> +"zero size buf in output" alerts might appear in logs +when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 +директива client_max_body_size могла работать неверно. +</para> +<para lang="en"> +the "client_max_body_size" directive might work incorrectly +when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +незначительных ошибок логгирования. +</para> +<para lang="en"> +of minor bugs in logging. +</para> +</change> + +</changes> + + +<changes ver="1.9.13" date="2016-03-29"> + +<change type="change"> +<para lang="ru"> +неидемпотентные запросы (POST, LOCK, PATCH) +теперь по умолчанию не передаются на другой сервер, +если запрос уже был отправлен на бэкенд; +параметр non_idempotent директивы proxy_next_upstream +явно разрешает повторять такие запросы. +</para> +<para lang="en"> +non-idempotent requests (POST, LOCK, PATCH) +are no longer passed to the next server by default +if a request has been sent to a backend; +the "non_idempotent" parameter of the "proxy_next_upstream" directive +explicitly allows retrying such requests. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module теперь можно собрать динамически. +</para> +<para lang="en"> +the ngx_http_perl_module can be built dynamically. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка UDP в модуле stream. +</para> +<para lang="en"> +UDP support in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива aio_write. +</para> +<para lang="en"> +the "aio_write" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь cache manager следит за количеством элементов в кэше +и старается не допускать переполнений зоны разделяемой памяти. +</para> +<para lang="en"> +now cache manager monitors number of elements in caches +and tries to avoid cache keys zone overflows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директив sendfile и aio с подзапросами +в логах могли появляться сообщения "task already active" и "second aio post". +</para> +<para lang="en"> +"task already active" and "second aio post" alerts might appear in logs +when using the "sendfile" and "aio" directives with subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании кэширования +в логах могли появляться сообщения "zero size buf in output", +если клиент закрывал соединение преждевременно. +</para> +<para lang="en"> +"zero size buf in output" alerts might appear in logs +if caching was used +and a client closed a connection prematurely. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании кэширования +соединения с клиентами могли закрываться без необходимости.<br/> +Спасибо Justin Li. +</para> +<para lang="en"> +connections with clients might be closed needlessly +if caching was used.<br/> +Thanks to Justin Li. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог нагружать процессор +при использовании директивы sendfile на Linux и Solaris, +если отправляемый файл был изменён в процессе отправки. +</para> +<para lang="en"> +nginx might hog CPU +if the "sendfile" directive was used on Linux or Solaris +and a file being sent was changed during sending. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директив sendfile и "aio threads" +соединения могли зависать. +</para> +<para lang="en"> +connections might hang +when using the "sendfile" and "aio threads" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директивах proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass +при использовании переменных.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives +when using variables.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_sub_filter_module. +</para> +<para lang="en"> +in the ngx_http_sub_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в закэшированном соединении к бэкенду происходила ошибка, +запрос передавался на другой сервер +без учёта директивы proxy_next_upstream. +</para> +<para lang="en"> +if an error occurred in a cached backend connection, +the request was passed to the next server +regardless of the proxy_next_upstream directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки "CreateFile() failed" при создании временных файлов на Windows. +</para> +<para lang="en"> +"CreateFile() failed" errors when creating temporary files on Windows. +</para> +</change> + +</changes> + + +<changes ver="1.9.12" date="2016-02-24"> + +<change type="feature"> +<para lang="ru"> +кодирование Хаффмана заголовков ответов в HTTP/2.<br/> +Спасибо Владу Краснову. +</para> +<para lang="en"> +Huffman encoding of response headers in HTTP/2.<br/> +Thanks to Vlad Krasnov. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива worker_cpu_affinity теперь поддерживает более 64 процессоров. +</para> +<para lang="en"> +the "worker_cpu_affinity" directive now supports more than 64 CPUs. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость со сторонними модулями на C++; +ошибка появилась в 1.9.11.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +compatibility with 3rd party C++ modules; +the bug had appeared in 1.9.11.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался статически с OpenSSL на Linux; +ошибка появилась в 1.9.11. +</para> +<para lang="en"> +nginx could not be built statically with OpenSSL on Linux; +the bug had appeared in 1.9.11. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "add_header ... always" с пустым значением +не удаляла из заголовков ошибочных ответов +строки Last-Modified и ETag. +</para> +<para lang="en"> +the "add_header ... always" directive with an empty value +did not delete "Last-Modified" and "ETag" header lines +from error responses. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +при использовании OpenSSL 1.0.2f в логах могли появляться +сообщения "called a function you should not call" и +"shutdown while in init". +</para> +<para lang="en"> +"called a function you should not call" +and "shutdown while in init" messages might appear in logs +when using OpenSSL 1.0.2f. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибочные заголовки могли логгироваться некорректно. +</para> +<para lang="en"> +invalid headers might be logged incorrectly. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов при использовании HTTP/2. +</para> +<para lang="en"> +socket leak when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_v2_module. +</para> +<para lang="en"> +in the ngx_http_v2_module. +</para> +</change> + +</changes> + + +<changes ver="1.9.11" date="2016-02-09"> + +<change type="feature"> +<para lang="ru"> +теперь resolver поддерживает TCP. +</para> +<para lang="en"> +TCP support in resolver. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +динамические модули. +</para> +<para lang="en"> +dynamic modules. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 +переменная $request_length не учитывала размер заголовков запроса. +</para> +<para lang="en"> +the $request_length variable did not include size of request headers +when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_v2_module. +</para> +<para lang="en"> +in the ngx_http_v2_module. +</para> +</change> + +</changes> + + +<changes ver="1.9.10" date="2016-01-26"> + +<change type="security"> +<para lang="ru"> +при использовании директивы resolver +во время обработки ответов DNS-сервера +могло происходить разыменование некорректного адреса, +что позволяло атакующему, +имеющему возможность подделывать UDP-пакеты от DNS-сервера, +вызвать segmentation fault в рабочем процессе (CVE-2016-0742). +</para> +<para lang="en"> +invalid pointer dereference might occur +during DNS server response processing +if the "resolver" directive was used, +allowing an attacker who is able to forge UDP packets from the DNS server +to cause segmentation fault in a worker process (CVE-2016-0742). +</para> +</change> + +<change type="security"> +<para lang="ru"> +при использовании директивы resolver +во время обработки CNAME-записей +могло произойти обращение к ранее освобождённой памяти, +что позволяло атакующему, +имеющему возможность инициировать преобразование произвольных имён в адреса, +вызвать segmentation fault в рабочем процессе, +а также потенциально могло иметь другие последствия (CVE-2016-0746). +</para> +<para lang="en"> +use-after-free condition might occur +during CNAME response processing +if the "resolver" directive was used, +allowing an attacker who is able to trigger name resolution +to cause segmentation fault in a worker process, +or might have potential other impact (CVE-2016-0746). +</para> +</change> + +<change type="security"> +<para lang="ru"> +при использовании директивы resolver +во время обработки CNAME-записей +не во всех случаях проверялось ограничение +на максимальное количество записей в цепочке, +что позволяло атакующему, +имеющему возможность инициировать преобразование произвольных имён в адреса, +вызвать чрезмерное потребление ресурсов рабочими процессами (CVE-2016-0747). +</para> +<para lang="en"> +CNAME resolution was insufficiently limited +if the "resolver" directive was used, +allowing an attacker who is able to trigger arbitrary name resolution +to cause excessive resource consumption in worker processes (CVE-2016-0747). +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр auto директивы worker_cpu_affinity. +</para> +<para lang="en"> +the "auto" parameter of the "worker_cpu_affinity" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр proxy_protocol директивы listen не работал +с IPv6 listen-сокетами. +</para> +<para lang="en"> +the "proxy_protocol" parameter of the "listen" directive did not work +with IPv6 listen sockets. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы keepalive +соединения к бэкендам могли кэшироваться некорректно. +</para> +<para lang="en"> +connections to upstream servers might be cached incorrectly +when using the "keepalive" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после перенаправления запроса с помощью X-Accel-Redirect +при проксировании использовался HTTP-метод оригинального запроса. +</para> +<para lang="en"> +proxying used the HTTP method of the original request +after an "X-Accel-Redirect" redirection. +</para> +</change> + +</changes> + + +<changes ver="1.9.9" date="2015-12-09"> + +<change type="bugfix"> +<para lang="ru"> +проксирование в unix domain сокеты не работало при использовании переменных; +ошибка появилась в 1.9.8. +</para> +<para lang="en"> +proxying to unix domain sockets did not work when using variables; +the bug had appeared in 1.9.8. +</para> +</change> + +</changes> + + +<changes ver="1.9.8" date="2015-12-08"> + +<change type="feature"> +<para lang="ru"> +поддержка pwritev(). +</para> +<para lang="en"> +pwritev() support. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива include в блоке upstream. +</para> +<para lang="en"> +the "include" directive inside the "upstream" block. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_slice_module. +</para> +<para lang="en"> +the ngx_http_slice_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании LibreSSL +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.9.6. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +when using LibreSSL; +the bug had appeared in 1.9.6. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог не собираться на OS X. +</para> +<para lang="en"> +nginx could not be built on OS X in some cases. +</para> +</change> + +</changes> + + +<changes ver="1.9.7" date="2015-11-17"> + +<change type="feature"> +<para lang="ru"> +параметр nohostname логгирования в syslog. +</para> +<para lang="en"> +the "nohostname" parameter of logging to syslog. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_cache_convert_head. +</para> +<para lang="en"> +the "proxy_cache_convert_head" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $realip_remote_addr в модуле ngx_http_realip_module. +</para> +<para lang="en"> +the $realip_remote_addr variable in the ngx_http_realip_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива expires могла не срабатывать при использовании переменных. +</para> +<para lang="en"> +the "expires" directive might not work when using variables. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.9.6. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +when using HTTP/2; +the bug had appeared in 1.9.6. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если nginx был собран с модулем ngx_http_v2_module, +протокол HTTP/2 мог быть использован клиентом, +даже если не был указан параметр http2 директивы listen. +</para> +<para lang="en"> +if nginx was built with the ngx_http_v2_module +it was possible to use the HTTP/2 protocol +even if the "http2" parameter of the "listen" directive was not specified. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_v2_module. +</para> +<para lang="en"> +in the ngx_http_v2_module. +</para> +</change> + +</changes> + + +<changes ver="1.9.6" date="2015-10-27"> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 +в рабочем процессе мог произойти segmentation fault.<br/> +Спасибо Piotr Sikora и Denis Andzakovic. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +when using HTTP/2.<br/> +Thanks to Piotr Sikora and Denis Andzakovic. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP/2 переменная $server_protocol была пустой. +</para> +<para lang="en"> +the $server_protocol variable was empty when using HTTP/2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +SSL-соединения к бэкендам в модуле stream +могли неожиданно завершаться по таймауту. +</para> +<para lang="en"> +backend SSL connections in the stream module +might be timed out unexpectedly. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании различных настроек ssl_session_cache +в разных виртуальных серверах +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if different ssl_session_cache settings were used +in different virtual servers. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows не собирался с MinGW gcc; +ошибка появилась в 1.9.4.<br/> +Спасибо Kouhei Sutou. +</para> +<para lang="en"> +nginx/Windows could not be built with MinGW gcc; +the bug had appeared in 1.9.4.<br/> +Thanks to Kouhei Sutou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы timer_resolution на Windows время не обновлялось. +</para> +<para lang="en"> +time was not updated when the timer_resolution directive was used on Windows. +</para> +</change> + +<change> +<para lang="ru"> +Незначительные исправления и улучшения.<br/> +Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora. +</para> +<para lang="en"> +Miscellaneous minor fixes and improvements.<br/> +Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora. +</para> +</change> + +</changes> + + +<changes ver="1.9.5" date="2015-09-22"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_v2_module (заменяет модуль ngx_http_spdy_module).<br/> +Спасибо Dropbox и Automattic за спонсирование разработки. +</para> +<para lang="en"> +the ngx_http_v2_module (replaces ngx_http_spdy_module).<br/> +Thanks to Dropbox and Automattic for sponsoring this work. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию директива output_buffers использует два буфера. +</para> +<para lang="en"> +now the "output_buffers" directive uses two buffers by default. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь nginx ограничивает максимальную вложенность подзапросов, +а не количество одновременных подзапросов. +</para> +<para lang="en"> +now nginx limits subrequests recursion, +not simultaneous subrequests. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь при возврате ответов из кэша nginx проверяет ключ полностью.<br/> +Спасибо Геннадию Махомеду и Сергею Брестеру. +</para> +<para lang="en"> +now nginx checks the whole cache key when returning a response from cache.<br/> +Thanks to Gena Makhomed and Sergey Brester. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании кэша +в логах могли появляться сообщения "header already sent"; +ошибка появилась в 1.7.5. +</para> +<para lang="en"> +"header already sent" alerts might appear in logs +when using cache; +the bug had appeared in 1.7.5. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании CephFS и директивы timer_resolution на Linux +в логах могли появляться сообщения +"writev() failed (4: Interrupted system call)". +</para> +<para lang="en"> +"writev() failed (4: Interrupted system call)" +errors might appear in logs +when using CephFS and the "timer_resolution" directive on Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок конфигурации.<br/> +Спасибо Markus Linnala. +</para> +<para lang="en"> +in invalid configurations handling.<br/> +Thanks to Markus Linnala. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы sub_filter на уровне http +в рабочем процессе происходил segmentation fault; +ошибка появилась в 1.9.4. +</para> +<para lang="en"> +a segmentation fault occurred in a worker process +if the "sub_filter" directive was used at http level; +the bug had appeared in 1.9.4. +</para> +</change> + +</changes> + + +<changes ver="1.9.4" date="2015-08-18"> + +<change type="change"> +<para lang="ru"> +директивы proxy_downstream_buffer и proxy_upstream_buffer в модуле stream +заменены директивой proxy_buffer_size. +</para> +<para lang="en"> +the "proxy_downstream_buffer" and "proxy_upstream_buffer" directives +of the stream module are replaced with the "proxy_buffer_size" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива tcp_nodelay в модуле stream. +</para> +<para lang="en"> +the "tcp_nodelay" directive in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь можно указать несколько директив sub_filter одновременно. +</para> +<para lang="en"> +multiple "sub_filter" directives can be used simultaneously. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива sub_filter поддерживает переменные в строке поиска. +</para> +<para lang="en"> +variables support in the search string of the "sub_filter" directive. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +тестирование конфигурации могло не работать под Linux OpenVZ.<br/> +Спасибо Геннадию Махомеду. +</para> +<para lang="en"> +configuration testing might fail under Linux OpenVZ.<br/> +Thanks to Gena Makhomed. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после переконфигурации старые рабочие процессы могли сильно нагружать процессор +при больших значениях worker_connections. +</para> +<para lang="en"> +old worker processes might hog CPU after reconfiguration +with a large number of worker_connections. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при совместном использовании директив try_files и alias +внутри location'а, заданного регулярным выражением, +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.7.1. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "try_files" and "alias" directives were used +inside a location given by a regular expression; +the bug had appeared in 1.7.1. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива try_files внутри вложенного location'а, заданного регулярным +выражением, работала неправильно, если во внешнем location'е использовалась +директива alias. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок при построении хэш-таблиц. +</para> +<para lang="en"> +in hash table initialization error handling. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с Visual Studio 2015. +</para> +<para lang="en"> +nginx could not be built with Visual Studio 2015. +</para> +</change> + +</changes> + + +<changes ver="1.9.3" date="2015-07-14"> + +<change type="change"> +<para lang="ru"> +дублирующиеся блоки http, mail и stream теперь запрещены. +</para> +<para lang="en"> +duplicate "http", "mail", and "stream" blocks are now disallowed. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ограничение количества соединений в модуле stream. +</para> +<para lang="en"> +connection limiting in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ограничение скорости в модуле stream. +</para> +<para lang="en"> +data rate limiting in the stream module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива zone в блоке upstream не работала на Windows. +</para> +<para lang="en"> +the "zone" directive inside the "upstream" block did not work on Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с LibreSSL в модуле stream.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +compatibility with LibreSSL in the stream module.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в параметре --builddir в configure.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in the "--builddir" configure parameter.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива ssl_stapling_file не работала; +ошибка появилась в 1.9.2.<br/> +Спасибо Faidon Liambotis и Brandon Black. +</para> +<para lang="en"> +the "ssl_stapling_file" directive did not work; +the bug had appeared in 1.9.2.<br/> +Thanks to Faidon Liambotis and Brandon Black. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы ssl_stapling +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 1.9.2.<br/> +Спасибо Matthew Baldwin. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "ssl_stapling" directive was used; +the bug had appeared in 1.9.2.<br/> +Thanks to Matthew Baldwin. +</para> +</change> + +</changes> + + +<changes ver="1.9.2" date="2015-06-16"> + +<change type="feature"> +<para lang="ru"> +параметр backlog директивы listen +в почтовом прокси-сервере и модуле stream. +</para> +<para lang="en"> +the "backlog" parameter of the "listen" directives +of the mail proxy and stream modules. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы allow и deny в модуле stream. +</para> +<para lang="en"> +the "allow" and "deny" directives in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_bind в модуле stream. +</para> +<para lang="en"> +the "proxy_bind" directive in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_protocol в модуле stream. +</para> +<para lang="en"> +the "proxy_protocol" directive in the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ключ -T. +</para> +<para lang="en"> +the -T switch. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр REQUEST_SCHEME добавлен в стандартные конфигурационные файлы +fastcgi.conf, fastcgi_params, scgi_params и uwsgi_params. +</para> +<para lang="en"> +the REQUEST_SCHEME parameter added to the fastcgi.conf, fastcgi_params, +scgi_params, and uwsgi_params standard configuration files. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр reuseport директивы listen в модуле stream +не работал. +</para> +<para lang="en"> +the "reuseport" parameter of the "listen" directive of the stream module +did not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +OCSP stapling в некоторых случаях мог вернуть устаревший OCSP-ответ. +</para> +<para lang="en"> +OCSP stapling might return an expired OCSP response in some cases. +</para> +</change> + +</changes> + + +<changes ver="1.9.1" date="2015-05-26"> + +<change type="change"> +<para lang="ru"> +теперь протокол SSLv3 по умолчанию запрещён. +</para> +<para lang="en"> +now SSLv3 protocol is disabled by default. +</para> +</change> + +<change type="change"> +<para lang="ru"> +некоторые давно устаревшие директивы больше не поддерживаются. +</para> +<para lang="en"> +some long deprecated directives are not supported anymore. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр reuseport директивы listen.<br/> +Спасибо Yingqi Lu из Intel и Sepherosa Ziehau. +</para> +<para lang="en"> +the "reuseport" parameter of the "listen" directive.<br/> +Thanks to Yingqi Lu at Intel and Sepherosa Ziehau. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $upstream_connect_time. +</para> +<para lang="en"> +the $upstream_connect_time variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве hash на big-endian платформах. +</para> +<para lang="en"> +in the "hash" directive on big-endian platforms. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог не запускаться на некоторых старых версиях Linux; +ошибка появилась в 1.7.11. +</para> +<para lang="en"> +nginx might fail to start on some old Linux variants; +the bug had appeared in 1.7.11. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в парсинге IP-адресов.<br/> +Спасибо Сергею Половко. +</para> +<para lang="en"> +in IP address parsing.<br/> +Thanks to Sergey Polovko. +</para> +</change> + +</changes> + + +<changes ver="1.9.0" date="2015-04-28"> + +<change type="change"> +<para lang="ru"> +устаревшие методы обработки соединений aio и rtsig больше не поддерживаются. +</para> +<para lang="en"> +obsolete aio and rtsig event methods have been removed. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива zone в блоке upstream. +</para> +<para lang="en"> +the "zone" directive inside the "upstream" block. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль stream. +</para> +<para lang="en"> +the stream module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка byte ranges для ответов модуля ngx_http_memcached_module.<br/> +Спасибо Martin Mlynář. +</para> +<para lang="en"> +byte ranges support in the ngx_http_memcached_module.<br/> +Thanks to Martin Mlynář. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +разделяемую память теперь можно использовать на версиях Windows +с рандомизацией адресного пространства.<br/> +Спасибо Сергею Брестеру. +</para> +<para lang="en"> +shared memory can now be used on Windows versions +with address space layout randomization.<br/> +Thanks to Sergey Brester. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директиву error_log теперь можно использовать +на уровнях mail и server в почтовом прокси-сервере. +</para> +<para lang="en"> +the "error_log" directive can now be used +on mail and server levels in mail proxy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр proxy_protocol директивы listen не работал, +если не был указан в первой директиве listen для данного listen-сокета. +</para> +<para lang="en"> +the "proxy_protocol" parameter of the "listen" directive did not work +if not specified in the first "listen" directive for a listen socket. +</para> +</change> + +</changes> + + +<changes ver="1.7.12" date="2015-04-07"> + +<change type="feature"> +<para lang="ru"> +теперь директива tcp_nodelay работает для SSL-соединений с бэкендами. +</para> +<para lang="en"> +now the "tcp_nodelay" directive works with backend SSL connections. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь потоки могут использоваться для чтения заголовков файлов в кэше. +</para> +<para lang="en"> +now thread pools can be used to read cache file headers. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве proxy_request_buffering. +</para> +<para lang="en"> +in the "proxy_request_buffering" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании потоков на Linux +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +when using thread pools on Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок при использовании директивы ssl_stapling.<br/> +Спасибо Filipe da Silva. +</para> +<para lang="en"> +in error handling when using the "ssl_stapling" directive.<br/> +Thanks to Filipe da Silva. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module. +</para> +<para lang="en"> +in the ngx_http_spdy_module. +</para> +</change> + +</changes> + + +<changes ver="1.7.11" date="2015-03-24"> + +<change type="change"> +<para lang="ru"> +параметр sendfile директивы aio более не нужен; +теперь nginx автоматически использует AIO для подгрузки данных для sendfile, +если одновременно используются директивы aio и sendfile. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +экспериментальная поддержка потоков. +</para> +<para lang="en"> +experimental thread pools support. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_request_buffering, fastcgi_request_buffering, +scgi_request_buffering и uwsgi_request_buffering. +</para> +<para lang="en"> +the "proxy_request_buffering", "fastcgi_request_buffering", +"scgi_request_buffering", and "uwsgi_request_buffering" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +экспериментальное API для обработки тела запроса. +</para> +<para lang="en"> +request body filters experimental API. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +проверка клиентских SSL-сертификатов в почтовом прокси-сервере.<br/> +Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva. +</para> +<para lang="en"> +client SSL certificates support in mail proxy.<br/> +Thanks to Sven Peter, Franck Levionnois, and Filipe Da Silva. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +уменьшение времени запуска +при использовании директивы "hash ... consistent" в блоке upstream.<br/> +Спасибо Wai Keen Woon. +</para> +<para lang="en"> +startup speedup +when using the "hash ... consistent" directive in the upstream block.<br/> +Thanks to Wai Keen Woon. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +отладочное логгирование в кольцевой буфер в памяти. +</para> +<para lang="en"> +debug logging into a cyclic memory buffer. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке хэш-таблиц.<br/> +Спасибо Chris West. +</para> +<para lang="en"> +in hash table handling.<br/> +Thanks to Chris West. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве proxy_cache_revalidate. +</para> +<para lang="en"> +in the "proxy_cache_revalidate" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +SSL-соединения могли зависать, если использовался отложенный accept +или параметр proxy_protocol директивы listen.<br/> +Спасибо James Hamlin. +</para> +<para lang="en"> +SSL connections might hang if deferred accept +or the "proxy_protocol" parameter of the "listen" directive were used.<br/> +Thanks to James Hamlin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $upstream_response_time могла содержать неверное значение +при использовании директивы image_filter. +</para> +<para lang="en"> +the $upstream_response_time variable might contain a wrong value +if the "image_filter" directive was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке целочисленных переполнений.<br/> +Спасибо Régis Leroy. +</para> +<para lang="en"> +in integer overflow handling.<br/> +Thanks to Régis Leroy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании LibreSSL было невозможно включить поддержку SSLv3. +</para> +<para lang="en"> +it was not possible to enable SSLv3 with LibreSSL. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании LibreSSL в логах появлялись сообщения +"ignoring stale global SSL error ... called a function you should not call". +</para> +<para lang="en"> +the "ignoring stale global SSL error ... called a function you should not call" +alerts appeared in logs when using LibreSSL. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +сертификаты, указанные в директивах ssl_client_certificate и +ssl_trusted_certificate, использовались +для автоматического построения цепочек сертификатов. +</para> +<para lang="en"> +certificates specified by the "ssl_client_certificate" and +"ssl_trusted_certificate" directives were inadvertently used +to automatically construct certificate chains. +</para> +</change> + +</changes> + + +<changes ver="1.7.10" date="2015-02-10"> + +<change type="feature"> +<para lang="ru"> +параметр use_temp_path директив proxy_cache_path, fastcgi_cache_path, +scgi_cache_path и uwsgi_cache_path. +</para> +<para lang="en"> +the "use_temp_path" parameter of the "proxy_cache_path", "fastcgi_cache_path", +"scgi_cache_path", and "uwsgi_cache_path" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $upstream_header_time. +</para> +<para lang="en"> +the $upstream_header_time variable. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +теперь при переполнении диска nginx пытается писать error_log'и только +раз в секунду. +</para> +<para lang="en"> +now on disk overflow nginx tries to write error logs once a second only. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива try_files при тестировании каталогов +не игнорировала обычные файлы.<br/> +Спасибо Damien Tournoud. +</para> +<para lang="en"> +the "try_files" directive did not ignore normal files +while testing directories.<br/> +Thanks to Damien Tournoud. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы sendfile на OS X +возникали ошибки "sendfile() failed"; +ошибка появилась в nginx 1.7.8. +</para> +<para lang="en"> +alerts "sendfile() failed" +if the "sendfile" directive was used on OS X; +the bug had appeared in 1.7.8. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в лог могли писаться сообщения "sem_post() failed". +</para> +<para lang="en"> +alerts "sem_post() failed" might appear in logs. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с musl libc.<br/> +Спасибо James Taylor. +</para> +<para lang="en"> +nginx could not be built with musl libc.<br/> +Thanks to James Taylor. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Tru64 UNIX.<br/> +Спасибо Goetz T. Fischer. +</para> +<para lang="en"> +nginx could not be built on Tru64 UNIX.<br/> +Thanks to Goetz T. Fischer. +</para> +</change> + +</changes> + + +<changes ver="1.7.9" date="2014-12-23"> + +<change type="feature"> +<para lang="ru"> +директивы proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache +поддерживают переменные. +</para> +<para lang="en"> +variables support in the "proxy_cache", "fastcgi_cache", "scgi_cache", +and "uwsgi_cache" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива expires поддерживает переменные. +</para> +<para lang="en"> +variables support in the "expires" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +возможность загрузки секретных ключей с аппаратных устройств +с помощью OpenSSL engines.<br/> +Спасибо Дмитрию Пичулину. +</para> +<para lang="en"> +loading of secret keys from hardware tokens +with OpenSSL engines.<br/> +Thanks to Dmitrii Pichulin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива autoindex_format. +</para> +<para lang="en"> +the "autoindex_format" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ревалидация элементов кэша теперь используется только для ответов +с кодами 200 и 206.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +cache revalidation is now only used for responses +with 200 and 206 status codes.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строка "TE" заголовка запроса клиента передавалась на бэкенд при проксировании. +</para> +<para lang="en"> +the "TE" client request header line was passed to backends while proxying. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass +могли неправильно работать внутри блоков if и limit_except. +</para> +<para lang="en"> +the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives +might not work correctly inside the "if" and "limit_except" blocks. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_store с параметром "on" игнорировалась, +если на предыдущем уровне использовалась директива proxy_store +с явно заданным путём к файлам. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с BoringSSL.<br/> +Спасибо Lukas Tribus. +</para> +<para lang="en"> +nginx could not be built with BoringSSL.<br/> +Thanks to Lukas Tribus. +</para> +</change> + +</changes> + + +<changes ver="1.7.8" date="2014-12-02"> + +<change type="change"> +<para lang="ru"> +теперь строки "If-Modified-Since", "If-Range" и им подобные +в заголовке запроса клиента передаются бэкенду при включённом кэшировании, +если nginx заранее знает, что не будет кэшировать ответ +(например, при использовании proxy_cache_min_uses). +</para> +<para lang="en"> +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). +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь после истечения proxy_cache_lock_timeout +nginx отправляет запрос на бэкенд без кэширования; +новые директивы proxy_cache_lock_age, fastcgi_cache_lock_age, +scgi_cache_lock_age и uwsgi_cache_lock_age позволяют указать, +через какое время блокировка будет принудительно снята +и будет сделана ещё одна попытка закэшировать ответ. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива log_format теперь может использоваться только на уровне http. +</para> +<para lang="en"> +the "log_format" directive can now be used only at http level. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_ssl_certificate, proxy_ssl_certificate_key, +proxy_ssl_password_file, uwsgi_ssl_certificate, +uwsgi_ssl_certificate_key и uwsgi_ssl_password_file.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +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.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь с помощью X-Accel-Redirect +можно перейти в именованный location.<br/> +Спасибо Toshikuni Fukaya. +</para> +<para lang="en"> +it is now possible to switch to a named location +using "X-Accel-Redirect".<br/> +Thanks to Toshikuni Fukaya. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь директива tcp_nodelay работает для SPDY-соединений. +</para> +<para lang="en"> +now the "tcp_nodelay" directive works with SPDY connections. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +новые директивы в скриптах подсветки синтаксиса для vim.<br/> +Спасибо Peter Wu. +</para> +<para lang="en"> +new directives in vim syntax highliting scripts.<br/> +Thanks to Peter Wu. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx игнорировал значение "s-maxage" +в строке "Cache-Control" в заголовке ответа бэкенда.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +nginx ignored the "s-maxage" value +in the "Cache-Control" backend response header line.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in the ngx_http_spdy_module.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве ssl_password_file +при использовании OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j. +</para> +<para lang="en"> +in the "ssl_password_file" directive +when using OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы post_action +в лог писались сообщения "header already sent"; +ошибка появилась в nginx 1.5.4. +</para> +<para lang="en"> +alerts "header already sent" appeared in logs +if the "post_action" directive was used; +the bug had appeared in 1.5.4. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы "postpone_output 0" с SSI-подзапросами +в лог могли писаться сообщения "the http output chain is empty". +</para> +<para lang="en"> +alerts "the http output chain is empty" might appear in logs +if the "postpone_output 0" directive was used with SSI includes. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве proxy_cache_lock при использовании SSI-подзапросов.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +in the "proxy_cache_lock" directive with SSI subrequests.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +</changes> + + +<changes ver="1.7.7" date="2014-10-28"> + +<change type="change"> +<para lang="ru"> +теперь nginx учитывает при кэшировании строку "Vary" +в заголовке ответа бэкенда. +</para> +<para lang="en"> +now nginx takes into account the "Vary" +header line in a backend response while caching. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_force_ranges, fastcgi_force_ranges, +scgi_force_ranges и uwsgi_force_ranges. +</para> +<para lang="en"> +the "proxy_force_ranges", "fastcgi_force_ranges", +"scgi_force_ranges", and "uwsgi_force_ranges" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_limit_rate, fastcgi_limit_rate, +scgi_limit_rate и uwsgi_limit_rate. +</para> +<para lang="en"> +the "proxy_limit_rate", "fastcgi_limit_rate", +"scgi_limit_rate", and "uwsgi_limit_rate" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр Vary директив proxy_ignore_headers, fastcgi_ignore_headers, +scgi_ignore_headers и uwsgi_ignore_headers. +</para> +<para lang="en"> +the "Vary" parameter of the "proxy_ignore_headers", "fastcgi_ignore_headers", +"scgi_ignore_headers", and "uwsgi_ignore_headers" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +последняя часть ответа, полученного от бэкенда +при небуферизированном проксировании, +могла не отправляться клиенту, +если использовались директивы gzip или gunzip. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве proxy_cache_revalidate.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in the "proxy_cache_revalidate" directive.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок.<br/> +Спасибо Yichun Zhang и Даниилу Бондареву. +</para> +<para lang="en"> +in error handling.<br/> +Thanks to Yichun Zhang and Daniil Bondarev. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директивах +proxy_next_upstream_tries и proxy_next_upstream_timeout.<br/> +Спасибо Feng Gu. +</para> +<para lang="en"> +in the "proxy_next_upstream_tries" and "proxy_next_upstream_timeout" +directives.<br/> +Thanks to Feng Gu. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows не собирался с MinGW-w64 gcc.<br/> +Спасибо Kouhei Sutou. +</para> +<para lang="en"> +nginx/Windows could not be built with MinGW-w64 gcc.<br/> +Thanks to Kouhei Sutou. +</para> +</change> + +</changes> + + +<changes ver="1.7.6" date="2014-09-30"> + +<change type="change"> +<para lang="ru"> +устаревшая директива limit_zone больше не поддерживается. +</para> +<para lang="en"> +the deprecated "limit_zone" directive is not supported anymore. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в директивах limit_conn_zone и limit_req_zone теперь можно использовать +комбинации нескольких переменных. +</para> +<para lang="en"> +the "limit_conn_zone" and "limit_req_zone" directives now can be used +with combinations of multiple variables. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при повторной отправке FastCGI-запроса на бэкенд +тело запроса могло передаваться неправильно. +</para> +<para lang="en"> +request body might be transmitted incorrectly +when retrying a FastCGI request to the next upstream server. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в логгировании в syslog. +</para> +<para lang="en"> +in logging to syslog. +</para> +</change> + +</changes> + + +<changes ver="1.7.5" date="2014-09-16"> + +<change type="security"> +<para lang="ru"> +при использовании общего для нескольких блоков server +разделяемого кэша SSL-сессий или общего ключа для шифрования +TLS session tickets было возможно повторно использовать +SSL-сессию в контексте другого блока server (CVE-2014-3616).<br/> +Спасибо Antoine Delignat-Lavaud. +</para> +<para lang="en"> +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).<br/> +Thanks to Antoine Delignat-Lavaud. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директиву stub_status теперь можно указывать без параметров. +</para> +<para lang="en"> +now the "stub_status" directive does not require a parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр always директивы add_header. +</para> +<para lang="en"> +the "always" parameter of the "add_header" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы +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. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в параметре if директивы access_log. +</para> +<para lang="en"> +in the "if" parameter of the "access_log" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_perl_module.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in the ngx_http_perl_module.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива listen почтового прокси-сервера +не позволяла указать более двух параметров. +</para> +<para lang="en"> +the "listen" directive of the mail proxy module +did not allow to specify more than two parameters. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива sub_filter не работала +с заменяемой строкой из одного символа. +</para> +<para lang="en"> +the "sub_filter" directive did not work +with a string to replace consisting of a single character. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +запросы могли зависать, если использовался resolver +и в процессе обращения к DNS-серверу происходил таймаут. +</para> +<para lang="en"> +requests might hang if resolver was used +and a timeout occurred during a DNS request. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module при использовании совместно с AIO. +</para> +<para lang="en"> +in the ngx_http_spdy_module when using with AIO. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если с помощью директивы set изменялись переменные +"$http_...", "$sent_http_..." или "$upstream_http_...". +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок выделения памяти.<br/> +Спасибо Markus Linnala и Feng Gu. +</para> +<para lang="en"> +in memory allocation error handling.<br/> +Thanks to Markus Linnala and Feng Gu. +</para> +</change> + +</changes> + + +<changes ver="1.7.4" date="2014-08-05"> + +<change type="security"> +<para lang="ru"> +pipelined-команды не отбрасывались +после команды STARTTLS в SMTP прокси-сервере (CVE-2014-3556); +ошибка появилась в 1.5.6.<br/> +Спасибо Chris Boulton. +</para> +<para lang="en"> +pipelined commands were not discarded +after STARTTLS command in SMTP proxy (CVE-2014-3556); +the bug had appeared in 1.5.6.<br/> +Thanks to Chris Boulton. +</para> +</change> + +<change type="change"> +<para lang="ru"> +экранирование символов в URI теперь использует +шестнадцатеричные цифры в верхнем регистре.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +URI escaping now uses +uppercase hexadecimal digits.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь nginx можно собрать с BoringSSL и LibreSSL.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +now nginx can be build with BoringSSL and LibreSSL.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +запросы могли зависать, если использовался resolver +и DNS-сервер возвращал некорректный ответ; +ошибка появилась в 1.5.8. +</para> +<para lang="en"> +requests might hang if resolver was used +and a DNS server returned a malformed response; +the bug had appeared in 1.5.8. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in the ngx_http_spdy_module.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $uri могла содержать мусор +при возврате ошибок с кодом 400.<br/> +Спасибо Сергею Боброву. +</para> +<para lang="en"> +the $uri variable might contain garbage +when returning errors with code 400.<br/> +Thanks to Sergey Bobrov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок в директиве proxy_store +и в модуле ngx_http_dav_module.<br/> +Спасибо Feng Gu. +</para> +<para lang="en"> +in error handling in the "proxy_store" directive +and the ngx_http_dav_module.<br/> +Thanks to Feng Gu. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при логгировании ошибок в syslog мог происходить segmentation fault; +ошибка появилась в 1.7.1. +</para> +<para lang="en"> +a segmentation fault might occur if logging of errors to syslog was used; +the bug had appeared in 1.7.1. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменные $geoip_latitude, $geoip_longitude, $geoip_dma_code +и $geoip_area_code могли не работать.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +the $geoip_latitude, $geoip_longitude, $geoip_dma_code, +and $geoip_area_code variables might not work.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок выделения памяти.<br/> +Спасибо Tatsuhiko Kubo и Piotr Sikora. +</para> +<para lang="en"> +in memory allocation error handling.<br/> +Thanks to Tatsuhiko Kubo and Piotr Sikora. +</para> +</change> + +</changes> + + +<changes ver="1.7.3" date="2014-07-08"> + +<change type="feature"> +<para lang="ru"> +weak entity tags теперь не удаляются при изменениях ответа, +а strong entity tags преобразуются в weak. +</para> +<para lang="en"> +weak entity tags are now preserved on response modifications, +and strong ones are changed to weak. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ревалидация элементов кэша теперь, если это возможно, +использует заголовок If-None-Match. +</para> +<para lang="en"> +cache revalidation now uses If-None-Match header +if possible. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_password_file. +</para> +<para lang="en"> +the "ssl_password_file" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при возврате ответа из кэша +заголовок запроса If-None-Match игнорировался, +если в ответе не было заголовка Last-Modified. +</para> +<para lang="en"> +the If-None-Match request header line was ignored +if there was no Last-Modified header +in a response returned from cache. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +сообщения "peer closed connection in SSL handshake" +при соединении с бэкендами логгировались на уровне info вместо error. +</para> +<para lang="en"> +"peer closed connection in SSL handshake" messages +were logged at "info" level instead of "error" while connecting to backends. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_dav_module в nginx/Windows. +</para> +<para lang="en"> +in the ngx_http_dav_module module in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +SPDY-соединения могли неожиданно закрываться, +если использовалось кэширование. +</para> +<para lang="en"> +SPDY connections might be closed prematurely +if caching was used. +</para> +</change> + +</changes> + + +<changes ver="1.7.2" date="2014-06-17"> + +<change type="feature"> +<para lang="ru"> +директива hash в блоке upstream. +</para> +<para lang="en"> +the "hash" directive inside the "upstream" block. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +дефрагментация свободных блоков разделяемой памяти.<br/> +Спасибо Wandenberg Peixoto и Yichun Zhang. +</para> +<para lang="en"> +defragmentation of free shared memory blocks.<br/> +Thanks to Wandenberg Peixoto and Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалось значение access_log по умолчанию; +ошибка появилась в 1.7.0.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +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.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +завершающий слэш ошибочно удалялся +из последнего параметра директивы try_files. +</para> +<para lang="en"> +trailing slash was mistakenly removed +from the last parameter of the "try_files" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог не собираться на OS X. +</para> +<para lang="en"> +nginx could not be built on OS X in some cases. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module. +</para> +<para lang="en"> +in the ngx_http_spdy_module. +</para> +</change> + +</changes> + + +<changes ver="1.7.1" date="2014-05-27"> + +<change type="feature"> +<para lang="ru"> +переменные "$upstream_cookie_...". +</para> +<para lang="en"> +the "$upstream_cookie_..." variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $ssl_client_fingerprint. +</para> +<para lang="en"> +the $ssl_client_fingerprint variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы error_log и access_log теперь поддерживают логгирование в syslog. +</para> +<para lang="en"> +the "error_log" and "access_log" directives now support logging to syslog. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +почтовый прокси-сервер теперь логгирует порт клиента при соединении. +</para> +<para lang="en"> +the mail proxy now logs client port on connect. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти при использовании директивы "ssl_stapling".<br/> +Спасибо Filipe da Silva. +</para> +<para lang="en"> +memory leak if the "ssl_stapling" directive was used.<br/> +Thanks to Filipe da Silva. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива alias внутри location'а, заданного регулярным выражением, +работала неправильно, если использовались директивы if или limit_except. +</para> +<para lang="en"> +the "alias" directive used inside a location given by a regular expression +worked incorrectly if the "if" or "limit_except" directives were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива charset не ставила кодировку для сжатых ответов бэкендов. +</para> +<para lang="en"> +the "charset" directive did not set a charset to encoded backend responses. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_pass без URI могла использовать оригинальный запрос +после установки переменной $args.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +a "proxy_pass" directive without URI part might use original request +after the $args variable was set.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в работе параметра none директивы smtp_auth; +ошибка появилась в 1.5.6.<br/> +Спасибо Святославу Никольскому. +</para> +<para lang="en"> +in the "none" parameter in the "smtp_auth" directive; +the bug had appeared in 1.5.6.<br/> +Thanks to Svyatoslav Nikolsky. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при совместном использовании sub_filter и SSI +ответы могли передаваться неверно. +</para> +<para lang="en"> +if sub_filter and SSI were used together, +then responses might be transferred incorrectly. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --with-file-aio на Linux/aarch64. +</para> +<para lang="en"> +nginx could not be built with the --with-file-aio option on Linux/aarch64. +</para> +</change> + +</changes> + + +<changes ver="1.7.0" date="2014-04-24"> + +<change type="feature"> +<para lang="ru"> +проверка SSL-сертификатов бэкендов. +</para> +<para lang="en"> +backend SSL certificate verification. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка SNI при работе с бэкендами по SSL. +</para> +<para lang="en"> +support for SNI while working with SSL backends. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $ssl_server_name. +</para> +<para lang="en"> +the $ssl_server_name variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр if директивы access_log. +</para> +<para lang="en"> +the "if" parameter of the "access_log" directive. +</para> +</change> + +</changes> + + +<changes ver="1.5.13" date="2014-04-08"> + +<change type="change"> +<para lang="ru"> +улучшена обработка хэш-таблиц; +в директивах variables_hash_max_size и types_hash_bucket_size +значения по умолчанию изменены на 1024 и 64 соответственно. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_mp4_module теперь понимает аргумент end. +</para> +<para lang="en"> +the ngx_http_mp4_module now supports the "end" argument. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка byte ranges модулем ngx_http_mp4_module и при сохранении +ответов в кэш. +</para> +<para lang="en"> +byte ranges support in the ngx_http_mp4_module and while saving responses +to cache. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx не пишет в лог сообщения "ngx_slab_alloc() failed: no memory" +при использовании разделяемой памяти в ssl_session_cache +и в модуле ngx_http_limit_req_module. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива underscores_in_headers +не разрешала подчёркивание в первом символе заголовка.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +the "underscores_in_headers" directive +did not allow underscore as a first character of a header.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +cache manager мог нагружать процессор при выходе в nginx/Windows. +</para> +<para lang="en"> +cache manager might hog CPU on exit in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании ssl_session_cache с параметром shared +рабочий процесс nginx/Windows завершался аварийно. +</para> +<para lang="en"> +nginx/Windows terminated abnormally +if the "ssl_session_cache" directive was used with the "shared" parameter. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module. +</para> +<para lang="en"> +in the ngx_http_spdy_module. +</para> +</change> + +</changes> + + +<changes ver="1.5.12" date="2014-03-18"> + +<change type="security"> +<para lang="ru"> +при обработке специально созданного запроса модулем ngx_http_spdy_module +могло происходить переполнение буфера в рабочем процессе, +что потенциально могло приводить к выполнению произвольного кода +(CVE-2014-0133).<br/> +Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel +Sadosky, Buenos Aires, Argentina. +</para> +<para lang="en"> +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).<br/> +Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel +Sadosky, Buenos Aires, Argentina. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр proxy_protocol в директивах listen и real_ip_header, +переменная $proxy_protocol_addr. +</para> +<para lang="en"> +the "proxy_protocol" parameters of the "listen" and "real_ip_header" directives, +the $proxy_protocol_addr variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве fastcgi_next_upstream.<br/> +Спасибо Lucas Molas. +</para> +<para lang="en"> +in the "fastcgi_next_upstream" directive.<br/> +Thanks to Lucas Molas. +</para> +</change> + +</changes> + + +<changes ver="1.5.11" date="2014-03-04"> + +<change type="security"> +<para lang="ru"> +при обработке специально созданного запроса модулем ngx_http_spdy_module +на 32-битных платформах могла повреждаться память рабочего процесса, +что потенциально могло приводить к выполнению произвольного кода +(CVE-2014-0088); +ошибка появилась в 1.5.10.<br/> +Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel +Sadosky, Buenos Aires, Argentina. +</para> +<para lang="en"> +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.<br/> +Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel +Sadosky, Buenos Aires, Argentina. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $ssl_session_reused. +</para> +<para lang="en"> +the $ssl_session_reused variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива client_max_body_size могла не работать +при чтении тела запроса с использованием chunked transfer encoding; +ошибка появилась в 1.3.9.<br/> +Спасибо Lucas Molas. +</para> +<para lang="en"> +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.<br/> +Thanks to Lucas Molas. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проксировании WebSocket-соединений +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +when proxying WebSocket connections. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_spdy_module на 32-битных платформах; +ошибка появилась в 1.5.10. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +значение переменной $upstream_status могло быть неверным, +если использовались директивы proxy_cache_use_stale +или proxy_cache_revalidate.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +the $upstream_status variable might contain wrong data +if the "proxy_cache_use_stale" or "proxy_cache_revalidate" directives +were used.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если ошибки с кодом 400 с помощью директивы error_page +перенаправлялись в именованный location. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows не собирался с Visual Studio 2013. +</para> +<para lang="en"> +nginx/Windows could not be built with Visual Studio 2013. +</para> +</change> + +</changes> + + +<changes ver="1.5.10" date="2014-02-04"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_spdy_module теперь использует протокол SPDY 3.1.<br/> +Спасибо Automattic и MaxCDN за спонсирование разработки. +</para> +<para lang="en"> +the ngx_http_spdy_module now uses SPDY 3.1 protocol.<br/> +Thanks to Automattic and MaxCDN for sponsoring this work. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_mp4_module теперь пропускает дорожки, +имеющие меньшую длину, чем запрошенная перемотка. +</para> +<para lang="en"> +the ngx_http_mp4_module now skips tracks +too short for a seek requested. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если переменная $ssl_session_id использовалась при логгировании; +ошибка появилась в 1.5.9. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменные $date_local и $date_gmt использовали неверный формат +вне модуля ngx_http_ssi_filter_module. +</para> +<para lang="en"> +the $date_local and $date_gmt variables used wrong format +outside of the ngx_http_ssi_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +клиентские соединения могли сразу закрываться, +если использовался отложенный accept; +ошибка появилась в 1.3.15. +</para> +<para lang="en"> +client connections might be immediately closed +if deferred accept was used; +the bug had appeared in 1.3.15. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +сообщения "getsockopt(TCP_FASTOPEN) ... failed" записывались в лог +в процессе обновления исполняемого файла на Linux; +ошибка появилась в 1.5.8.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +alerts "getsockopt(TCP_FASTOPEN) ... failed" appeared in logs +during binary upgrade on Linux; +the bug had appeared in 1.5.8.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +</changes> + + +<changes ver="1.5.9" date="2014-01-22"> + +<change type="change"> +<para lang="ru"> +теперь в заголовке X-Accel-Redirect nginx ожидает закодированный URI. +</para> +<para lang="en"> +now nginx expects escaped URIs in "X-Accel-Redirect" headers. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_buffer_size. +</para> +<para lang="en"> +the "ssl_buffer_size" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директиву limit_rate теперь можно использовать для +ограничения скорости передачи ответов клиенту в SPDY-соединениях. +</para> +<para lang="en"> +the "limit_rate" directive can now be used to +rate limit responses sent in SPDY connections. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива spdy_chunk_size. +</para> +<para lang="en"> +the "spdy_chunk_size" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_session_tickets.<br/> +Спасибо Dirkjan Bussink. +</para> +<para lang="en"> +the "ssl_session_tickets" directive.<br/> +Thanks to Dirkjan Bussink. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $ssl_session_id содержала всю сессию в сериализованном виде +вместо её идентификатора.<br/> +Спасибо Ivan Ristić. +</para> +<para lang="en"> +the $ssl_session_id variable contained full session serialized +instead of just a session id.<br/> +Thanks to Ivan Ristić. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx неправильно обрабатывал закодированный символ "?" в команде SSI include. +</para> +<para lang="en"> +nginx incorrectly handled escaped "?" character in the "include" SSI command. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_dav_module не раскодировал целевой URI при +обработке методов COPY и MOVE. +</para> +<para lang="en"> +the ngx_http_dav_module did not unescape destination URI +of the COPY and MOVE methods. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +resolver не понимал доменные имена с точкой в конце. +Спасибо Yichun Zhang. +</para> +<para lang="en"> +resolver did not understand domain names with a trailing dot. +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проксировании в логах могли появляться сообщения "zero size buf in output"; +ошибка появилась в 1.3.9. +</para> +<para lang="en"> +alerts "zero size buf in output" might appear in logs while proxying; +the bug had appeared in 1.3.9. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_spdy_module. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the ngx_http_spdy_module was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании методов обработки соединений select, poll и /dev/poll +проксируемые WebSocket-соединения могли зависать сразу после открытия. +</para> +<para lang="en"> +proxied WebSocket connections might hang right after handshake +if the select, poll, or /dev/poll methods were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива xclient почтового прокси-сервера +некорректно передавала IPv6-адреса. +</para> +<para lang="en"> +the "xclient" directive of the mail proxy module +incorrectly handled IPv6 client addresses. +</para> +</change> + +</changes> + + +<changes ver="1.5.8" date="2013-12-17"> + +<change type="feature"> +<para lang="ru"> +теперь resolver поддерживает IPv6. +</para> +<para lang="en"> +IPv6 support in resolver. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива listen поддерживает параметр fastopen.<br/> +Спасибо Mathew Rodley. +</para> +<para lang="en"> +the "listen" directive supports the "fastopen" parameter.<br/> +Thanks to Mathew Rodley. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка SSL в модуле ngx_http_uwsgi_module.<br/> +Спасибо Roberto De Ioris. +</para> +<para lang="en"> +SSL support in the ngx_http_uwsgi_module.<br/> +Thanks to Roberto De Ioris. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +скрипты подсветки синтаксиса для vim добавлены в contrib.<br/> +Спасибо Evan Miller. +</para> +<para lang="en"> +vim syntax highlighting scripts were added to contrib.<br/> +Thanks to Evan Miller. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при чтении тела запроса с использованием chunked transfer encoding +по SSL-соединению мог произойти таймаут. +</para> +<para lang="en"> +a timeout might occur while reading client request body +in an SSL connection using chunked transfer encoding. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива master_process работала неправильно в nginx/Windows. +</para> +<para lang="en"> +the "master_process" directive did not work correctly in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр setfib директивы listen мог не работать. +</para> +<para lang="en"> +the "setfib" parameter of the "listen" directive might not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module. +</para> +<para lang="en"> +in the ngx_http_spdy_module. +</para> +</change> + +</changes> + + +<changes ver="1.5.7" date="2013-11-19"> + +<change type="security"> +<para lang="ru"> +символ, следующий за незакодированным пробелом в строке запроса, +обрабатывался неправильно (CVE-2013-4547); +ошибка появилась в 0.8.41.<br/> +Спасибо Ivan Fratric из Google Security Team. +</para> +<para lang="en"> +a character following an unescaped space in a request line +was handled incorrectly (CVE-2013-4547); +the bug had appeared in 0.8.41.<br/> +Thanks to Ivan Fratric of the Google Security Team. +</para> +</change> + +<change type="change"> +<para lang="ru"> +уровень логгирования ошибок auth_basic об отсутствии пароля +понижен с уровня error до info. +</para> +<para lang="en"> +a logging level of auth_basic errors about no user/password provided +has been lowered from "error" to "info". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_cache_revalidate, fastcgi_cache_revalidate, +scgi_cache_revalidate и uwsgi_cache_revalidate. +</para> +<para lang="en"> +the "proxy_cache_revalidate", "fastcgi_cache_revalidate", +"scgi_cache_revalidate", and "uwsgi_cache_revalidate" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_session_ticket_key.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +the "ssl_session_ticket_key" directive.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "add_header Cache-Control ''" +добавляла строку заголовка ответа "Cache-Control" с пустым значением. +</para> +<para lang="en"> +the directive "add_header Cache-Control ''" +added a "Cache-Control" response header line with an empty value. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "satisfy any" могла вернуть ошибку 403 вместо 401 +при использовании директив auth_request и auth_basic.<br/> +Спасибо Jan Marc Hoffmann. +</para> +<para lang="en"> +the "satisfy any" directive might return 403 error instead of 401 +if auth_request and auth_basic directives were used.<br/> +Thanks to Jan Marc Hoffmann. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметры accept_filter и deferred директивы listen игнорировались +для listen-сокетов, создаваемых в процессе обновления исполняемого файла.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +the "accept_filter" and "deferred" parameters of the "listen" directive +were ignored for listen sockets created during binary upgrade.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +часть данных, полученных от бэкенда при небуферизированном проксировании, +могла не отправляться клиенту сразу, +если использовались директивы gzip или gunzip.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +some data received from a backend with unbufferred proxy +might not be sent to a client immediately +if "gzip" or "gunzip" directives were used.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок в модуле ngx_http_gunzip_filter_module. +</para> +<para lang="en"> +in error handling in ngx_http_gunzip_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответы могли зависать, +если использовался модуль ngx_http_spdy_module +и директива auth_request. +</para> +<para lang="en"> +responses might hang +if the ngx_http_spdy_module was used +with the "auth_request" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти в nginx/Windows. +</para> +<para lang="en"> +memory leak in nginx/Windows. +</para> +</change> + +</changes> + + +<changes ver="1.5.6" date="2013-10-01"> + +<change type="feature"> +<para lang="ru"> +директива fastcgi_buffering. +</para> +<para lang="en"> +the "fastcgi_buffering" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_ssl_protocols и proxy_ssl_ciphers.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +the "proxy_ssl_protocols" and "proxy_ssl_ciphers" directives.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +оптимизация SSL handshake при использовании длинных цепочек сертификатов. +</para> +<para lang="en"> +optimization of SSL handshakes when using long certificate chains. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +почтовый прокси-сервер поддерживает SMTP pipelining. +</para> +<para lang="en"> +the mail proxy supports SMTP pipelining. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_auth_basic_module +при использовании метода шифрования паролей "$apr1$".<br/> +Спасибо Markus Linnala. +</para> +<para lang="en"> +in the ngx_http_auth_basic_module +when using "$apr1$" password encryption method.<br/> +Thanks to Markus Linnala. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на MacOSX, Cygwin и nginx/Windows +для обработки запроса мог использоваться неверный location, +если для задания location'ов использовались символы разных регистров. +</para> +<para lang="en"> +in MacOSX, Cygwin, and nginx/Windows +incorrect location might be used to process a request +if locations were given using characters in different cases. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +автоматическое перенаправление с добавлением завершающего слэша +для проксированных location'ов могло не работать. +</para> +<para lang="en"> +automatic redirect with appended trailing slash +for proxied locations might not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в почтовом прокси-сервере. +</para> +<para lang="en"> +in the mail proxy server. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module. +</para> +<para lang="en"> +in the ngx_http_spdy_module. +</para> +</change> + +</changes> + + +<changes ver="1.5.5" date="2013-09-17"> + +<change type="change"> +<para lang="ru"> +теперь nginx по умолчанию использует HTTP/1.0, +если точно определить протокол не удалось. +</para> +<para lang="en"> +now nginx assumes HTTP/1.0 by default +if it is not able to detect protocol reliably. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива disable_symlinks теперь использует O_PATH на Linux. +</para> +<para lang="en"> +the "disable_symlinks" directive now uses O_PATH on Linux. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +для определения того, что клиент закрыл соединение, +при использовании метода epoll +теперь используются события EPOLLRDHUP. +</para> +<para lang="en"> +now nginx uses EPOLLRDHUP events +to detect premature connection close by clients +if the "epoll" method is used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве valid_referers при использовании параметра server_names. +</para> +<para lang="en"> +in the "valid_referers" directive if the "server_names" parameter was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $request_time не работала в nginx/Windows. +</para> +<para lang="en"> +the $request_time variable did not work in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве image_filter.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +in the "image_filter" directive.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с OpenSSL 1.0.1f.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +OpenSSL 1.0.1f compatibility.<br/> +Thanks to Piotr Sikora. +</para> +</change> + + +</changes> + + +<changes ver="1.5.4" date="2013-08-27"> + +<change type="change"> +<para lang="ru"> +MIME-тип для расширения js изменён на "application/javascript"; +значение по умолчанию директивы charset_types изменено соответственно. +</para> +<para lang="en"> +the "js" extension MIME type has been changed to "application/javascript"; +default value of the "charset_types" directive was changed accordingly. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь директива image_filter с параметром size +возвращает ответ с MIME-типом "application/json". +</para> +<para lang="en"> +now the "image_filter" directive with the "size" parameter +returns responses with the "application/json" MIME type. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_auth_request_module. +</para> +<para lang="en"> +the ngx_http_auth_request_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на старте или во время переконфигурации мог произойти segmentation fault, +если использовалась директива try_files с пустым параметром. +</para> +<para lang="en"> +a segmentation fault might occur on start or during reconfiguration +if the "try_files" directive was used with an empty parameter. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти при использовании в директивах root и auth_basic_user_file +относительных путей, заданных с помощью переменных. +</para> +<para lang="en"> +memory leak if relative paths were specified using variables +in the "root" or "auth_basic_user_file" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива valid_referers неправильно выполняла регулярные выражения, +если заголовок Referer начинался с "https://".<br/> +Спасибо Liangbin Li. +</para> +<para lang="en"> +the "valid_referers" directive incorrectly executed regular expressions +if a "Referer" header started with "https://".<br/> +Thanks to Liangbin Li. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответы могли зависать, если использовались подзапросы и при обработке подзапроса +происходила ошибка во время SSL handshake с бэкендом.<br/> +Спасибо Aviram Cohen. +</para> +<para lang="en"> +responses might hang if subrequests were used +and an SSL handshake error happened during subrequest processing.<br/> +Thanks to Aviram Cohen. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_autoindex_module. +</para> +<para lang="en"> +in the ngx_http_autoindex_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module. +</para> +<para lang="en"> +in the ngx_http_spdy_module. +</para> +</change> + +</changes> + + +<changes ver="1.5.3" date="2013-07-30"> + +<change> +<para lang="ru"> +Изменение во внутреннем API: +теперь при небуферизированной работе с бэкендами +u->length по умолчанию устанавливается в -1. +</para> +<para lang="en"> +Change in internal API: +now u->length defaults to -1 +if working with backends in unbuffered mode. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь при получении неполного ответа от бэкенда +nginx отправляет полученную часть ответа, +после чего закрывает соединение с клиентом. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_spdy_module +и директива client_body_in_file_only. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр so_keepalive директивы listen +мог работать некорректно на DragonFlyBSD.<br/> +Спасибо Sepherosa Ziehau. +</para> +<para lang="en"> +the "so_keepalive" parameter of the "listen" directive +might be handled incorrectly on DragonFlyBSD.<br/> +Thanks to Sepherosa Ziehau. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_xslt_filter_module. +</para> +<para lang="en"> +in the ngx_http_xslt_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_sub_filter_module. +</para> +<para lang="en"> +in the ngx_http_sub_filter_module. +</para> +</change> + +</changes> + + +<changes ver="1.5.2" date="2013-07-02"> + +<change type="feature"> +<para lang="ru"> +теперь можно использовать несколько директив error_log. +</para> +<para lang="en"> +now several "error_log" directives can be used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +метод $r->header_in() встроенного перла не возвращал значения строк +"Cookie" и "X-Forwarded-For" из заголовка запроса; +ошибка появилась в 1.3.14. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_spdy_module.<br/> +Спасибо Jim Radford. +</para> +<para lang="en"> +in the ngx_http_spdy_module.<br/> +Thanks to Jim Radford. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Linux при использовании x32 ABI.<br/> +Спасибо Сергею Иванцову. +</para> +<para lang="en"> +nginx could not be built on Linux with x32 ABI.<br/> +Thanks to Serguei Ivantsov. +</para> +</change> + +</changes> + + +<changes ver="1.5.1" date="2013-06-04"> + +<change type="feature"> +<para lang="ru"> +директивы ssi_last_modified, sub_filter_last_modified и +xslt_last_modified.<br/> +Спасибо Алексею Колпакову. +</para> +<para lang="en"> +the "ssi_last_modified", "sub_filter_last_modified", and +"xslt_last_modified" directives.<br/> +Thanks to Alexey Kolpakov. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр http_403 в директивах proxy_next_upstream, fastcgi_next_upstream, +scgi_next_upstream и uwsgi_next_upstream. +</para> +<para lang="en"> +the "http_403" parameter of the "proxy_next_upstream", "fastcgi_next_upstream", +"scgi_next_upstream", and "uwsgi_next_upstream" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы allow и deny теперь поддерживают unix domain сокеты. +</para> +<para lang="en"> +the "allow" and "deny" directives now support unix domain sockets. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с модулем ngx_mail_ssl_module, +но без модуля ngx_http_ssl_module; +ошибка появилась в 1.3.14. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве proxy_set_body.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +in the "proxy_set_body" directive.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве lingering_time.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +in the "lingering_time" directive.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр fail_timeout директивы server +в блоке upstream мог не работать, +если использовался параметр max_fails; +ошибка появилась в 1.3.0. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалась директива ssl_stapling.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "ssl_stapling" directive was used.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в почтовом прокси-сервере.<br/> +Спасибо Filipe Da Silva. +</para> +<para lang="en"> +in the mail proxy server.<br/> +Thanks to Filipe Da Silva. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows мог перестать принимать соединения, +если использовалось несколько рабочих процессов. +</para> +<para lang="en"> +nginx/Windows might stop accepting connections +if several worker processes were used. +</para> +</change> + +</changes> + + +<changes ver="1.5.0" date="2013-05-07"> + +<change type="security"> +<para lang="ru"> +при обработке специально созданного запроса +мог перезаписываться стек рабочего процесса, +что могло приводить к выполнению произвольного кода (CVE-2013-2028); +ошибка появилась в 1.3.9.<br/> +Спасибо Greg MacManus, iSIGHT Partners Labs. +</para> +<para lang="en"> +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.<br/> +Thanks to Greg MacManus, iSIGHT Partners Labs. +</para> +</change> + +</changes> + + +<changes ver="1.4.0" date="2013-04-24"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с модулем ngx_http_perl_module, +если использовался параметр --with-openssl; +ошибка появилась в 1.3.16. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в работе с телом запроса из модуля ngx_http_perl_module; +ошибка появилась в 1.3.9. +</para> +<para lang="en"> +in a request body handling in the ngx_http_perl_module; +the bug had appeared in 1.3.9. +</para> +</change> + +</changes> + + +<changes ver="1.3.16" date="2013-04-16"> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовались подзапросы; +ошибка появилась в 1.3.9. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if subrequests were used; +the bug had appeared in 1.3.9. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива tcp_nodelay вызывала ошибку +при проксировании WebSocket-соединений в unix domain сокет. +</para> +<para lang="en"> +the "tcp_nodelay" directive caused an error +if a WebSocket connection was proxied into a unix domain socket. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $upstream_response_length возвращала значение "0", +если не использовалась буферизация.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +the $upstream_response_length variable has an incorrect value "0" +if buffering was not used.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в методах обработки соединений eventport и /dev/poll. +</para> +<para lang="en"> +in the eventport and /dev/poll methods. +</para> +</change> + +</changes> + + +<changes ver="1.3.15" date="2013-03-26"> + +<change type="change"> +<para lang="ru"> +открытие и закрытие соединения без отправки в нём каких-либо данных +больше не записывается в access_log с кодом ошибки 400. +</para> +<para lang="en"> +opening and closing a connection without sending any data in it +is no longer logged to access_log with error code 400. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_spdy_module.<br/> +Спасибо Automattic за спонсирование разработки. +</para> +<para lang="en"> +the ngx_http_spdy_module.<br/> +Thanks to Automattic for sponsoring this work. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы limit_req_status и limit_conn_status.<br/> +Спасибо Nick Marden. +</para> +<para lang="en"> +the "limit_req_status" and "limit_conn_status" directives.<br/> +Thanks to Nick Marden. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива image_filter_interlace.<br/> +Спасибо Ивану Боброву. +</para> +<para lang="en"> +the "image_filter_interlace" directive.<br/> +Thanks to Ian Babrou. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $connections_waiting в модуле ngx_http_stub_status_module. +</para> +<para lang="en"> +$connections_waiting variable in the ngx_http_stub_status_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь почтовый прокси-сервер поддерживает IPv6-бэкенды. +</para> +<para lang="en"> +the mail proxy module now supports IPv6 backends. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при повторной отправке запроса на бэкенд +тело запроса могло передаваться неправильно; +ошибка появилась в 1.3.9.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +request body might be transmitted incorrectly +when retrying a request to the next upstream server; +the bug had appeared in 1.3.9.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве client_body_in_file_only; +ошибка появилась в 1.3.9. +</para> +<para lang="en"> +in the "client_body_in_file_only" directive; +the bug had appeared in 1.3.9. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответы могли зависать, +если использовались подзапросы +и при обработке подзапроса происходила DNS-ошибка.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +responses might hang +if subrequests were used +and a DNS error happened during subrequest processing.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в процедуре учёта использования бэкендов. +</para> +<para lang="en"> +in backend usage accounting. +</para> +</change> + +</changes> + + +<changes ver="1.3.14" date="2013-03-05"> + +<change type="feature"> +<para lang="ru"> +переменные $connections_active, $connections_reading и $connections_writing +в модуле ngx_http_stub_status_module. +</para> +<para lang="en"> +$connections_active, $connections_reading, and $connections_writing variables +in the ngx_http_stub_status_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка WebSocket-соединений +в модулях ngx_http_uwsgi_module и ngx_http_scgi_module. +</para> +<para lang="en"> +support of WebSocket connections +in the ngx_http_uwsgi_module and ngx_http_scgi_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке виртуальных серверов при использовании SNI. +</para> +<para lang="en"> +in virtual servers handling with SNI. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы "ssl_session_cache shared" +новые сессии могли не сохраняться, +если заканчивалось место в разделяемой памяти.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +new sessions were not always stored +if the "ssl_session_cache shared" directive was used +and there was no free space in shared memory.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +несколько заголовков X-Forwarded-For обрабатывались неправильно.<br/> +Спасибо Neal Poole за спонсирование разработки. +</para> +<para lang="en"> +multiple X-Forwarded-For headers were handled incorrectly.<br/> +Thanks to Neal Poole for sponsoring this work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module.<br/> +Спасибо Gernot Vormayr. +</para> +<para lang="en"> +in the ngx_http_mp4_module.<br/> +Thanks to Gernot Vormayr. +</para> +</change> + +</changes> + + +<changes ver="1.3.13" date="2013-02-19"> + +<change type="change"> +<para lang="ru"> +теперь для сборки по умолчанию используется компилятор с именем "cc". +</para> +<para lang="en"> +a compiler with name "cc" is now used by default. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка проксирования WebSocket-соединений.<br/> +Спасибо Apcera и CloudBees за спонсирование разработки. +</para> +<para lang="en"> +support for proxying of WebSocket connections.<br/> +Thanks to Apcera and CloudBees for sponsoring this work. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива auth_basic_user_file поддерживает шифрование паролей +методом "{SHA}".<br/> +Спасибо Louis Opter. +</para> +<para lang="en"> +the "auth_basic_user_file" directive supports "{SHA}" +password encryption method.<br/> +Thanks to Louis Opter. +</para> +</change> + +</changes> + + +<changes ver="1.3.12" date="2013-02-05"> + +<change type="feature"> +<para lang="ru"> +директивы proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind +поддерживают переменные. +</para> +<para lang="en"> +variables support in the "proxy_bind", "fastcgi_bind", "memcached_bind", +"scgi_bind", and "uwsgi_bind" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $pipe, $request_length, $time_iso8601 и $time_local +теперь можно использовать не только в директиве log_format.<br/> +Спасибо Kiril Kalchev. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка IPv6 в модуле ngx_http_geoip_module.<br/> +Спасибо Gregor Kališnik. +</para> +<para lang="en"> +IPv6 support in the ngx_http_geoip_module.<br/> +Thanks to Gregor Kališnik. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_method работала неверно, если была указана на уровне http. +</para> +<para lang="en"> +in the "proxy_method" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовался resolver и метод poll. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if resolver was used with the poll method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог нагружать процессор во время SSL handshake с бэкендом +при использовании методов обработки соединений select, poll и /dev/poll. +</para> +<para lang="en"> +nginx might hog CPU during SSL handshake with a backend +if the select, poll, or /dev/poll methods were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибка "[crit] SSL_write() failed (SSL:)". +</para> +<para lang="en"> +the "[crit] SSL_write() failed (SSL:)" error. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве client_body_in_file_only; +ошибка появилась в 1.3.9. +</para> +<para lang="en"> +in the "client_body_in_file_only" directive; +the bug had appeared in 1.3.9. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве fastcgi_keep_conn. +</para> +<para lang="en"> +in the "fastcgi_keep_conn" directive. +</para> +</change> + +</changes> + + +<changes ver="1.3.11" date="2013-01-10"> + +<change type="bugfix"> +<para lang="ru"> +при записи в лог мог происходить segmentation fault; +ошибка появилась в 1.3.10. +</para> +<para lang="en"> +a segmentation fault might occur if logging was used; +the bug had appeared in 1.3.10. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_pass не работала с IP-адресами +без явного указания порта; +ошибка появилась в 1.3.10. +</para> +<para lang="en"> +the "proxy_pass" directive did not work with IP addresses +without port specified; +the bug had appeared in 1.3.10. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на старте или во время переконфигурации происходил segmentation fault, +если директива keepalive была указана несколько раз +в одном блоке upstream. +</para> +<para lang="en"> +a segmentation fault occurred on start or during reconfiguration +if the "keepalive" directive was specified more than once +in a single upstream block. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр default директивы geo не определял значение по умолчанию +для IPv6-адресов. +</para> +<para lang="en"> +parameter "default" of the "geo" directive did not set default value +for IPv6 addresses. +</para> +</change> + +</changes> + + +<changes ver="1.3.10" date="2012-12-25"> + +<change type="change"> +<para lang="ru"> +для указанных в конфигурационном файле доменных имён теперь +используются не только IPv4, но и IPv6 адреса. +</para> +<para lang="en"> +domain names specified in configuration file +are now resolved to IPv6 addresses as well as IPv4 ones. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь при использовании директивы include с маской на Unix-системах +включаемые файлы сортируются в алфавитном порядке. +</para> +<para lang="en"> +now if the "include" directive with mask is used on Unix systems, +included files are sorted in alphabetical order. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива add_header добавляет строки в ответы с кодом 201. +</para> +<para lang="en"> +the "add_header" directive adds headers to 201 responses. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива geo теперь поддерживает IPv6 адреса в формате CIDR. +</para> +<para lang="en"> +the "geo" directive now supports IPv6 addresses in CIDR notation. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметры flush и gzip в директиве access_log. +</para> +<para lang="en"> +the "flush" and "gzip" parameters of the "access_log" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива auth_basic поддерживает переменные. +</para> +<para lang="en"> +variables support in the "auth_basic" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx в некоторых случаях не собирался с модулем ngx_http_perl_module. +</para> +<para lang="en"> +nginx could not be built with the ngx_http_perl_module in some cases. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_xslt_module. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the ngx_http_xslt_module was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог не собираться на MacOSX.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +nginx could not be built on MacOSX in some cases.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы limit_rate с большими значениями скорости +на 32-битных системах ответ мог возвращаться не целиком.<br/> +Спасибо Алексею Антропову. +</para> +<para lang="en"> +the "limit_rate" directive with high rates +might result in truncated responses on 32-bit platforms.<br/> +Thanks to Alexey Antropov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалась директива if.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "if" directive was used.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответ "100 Continue" выдавался +вместе с ответом "413 Request Entity Too Large". +</para> +<para lang="en"> +a "100 Continue" response was issued +with "413 Request Entity Too Large" responses. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы image_filter, image_filter_jpeg_quality и image_filter_sharpen +могли наследоваться некорректно.<br/> +Спасибо Ивану Боброву. +</para> +<para lang="en"> +the "image_filter", "image_filter_jpeg_quality" +and "image_filter_sharpen" directives +might be inherited incorrectly.<br/> +Thanks to Ian Babrou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы auth_basic под Linux +могли возникать ошибки "crypt_r() failed". +</para> +<para lang="en"> +"crypt_r() failed" errors might appear +if the "auth_basic" directive was used on Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке backup-серверов.<br/> +Спасибо Thomas Chen. +</para> +<para lang="en"> +in backup servers handling.<br/> +Thanks to Thomas Chen. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проксировании HEAD-запросов мог возвращаться некорректный ответ, +если использовалась директива gzip. +</para> +<para lang="en"> +proxied HEAD requests might return incorrect response +if the "gzip" directive was used. +</para> +</change> + +</changes> + + +<changes ver="1.3.9" date="2012-11-27"> + +<change type="feature"> +<para lang="ru"> +поддержка chunked transfer encoding при получении тела запроса. +</para> +<para lang="en"> +support for chunked transfer encoding while reading client request body. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $request_time и $msec +теперь можно использовать не только в директиве log_format. +</para> +<para lang="en"> +the $request_time and $msec variables +can now be used not only in the "log_format" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +cache manager и cache loader могли не запускаться, +если использовалось более 512 listen-сокетов. +</para> +<para lang="en"> +cache manager and cache loader processes might not be able to start +if more than 512 listen sockets were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_dav_module. +</para> +<para lang="en"> +in the ngx_http_dav_module. +</para> +</change> + +</changes> + + +<changes ver="1.3.8" date="2012-10-30"> + +<change type="feature"> +<para lang="ru"> +параметр optional_no_ca директивы ssl_verify_client.<br/> +Спасибо Михаилу Казанцеву и Eric O'Connor. +</para> +<para lang="en"> +the "optional_no_ca" parameter of the "ssl_verify_client" directive.<br/> +Thanks to Mike Kazantsev and Eric O'Connor. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $bytes_sent, $connection и $connection_requests +теперь можно использовать не только в директиве log_format.<br/> +Спасибо Benjamin Grössing. +</para> +<para lang="en"> +the $bytes_sent, $connection, and $connection_requests variables +can now be used not only in the "log_format" directive.<br/> +Thanks to Benjamin Grössing. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр auto директивы worker_processes. +</para> +<para lang="en"> +the "auto" parameter of the "worker_processes" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +сообщения "cache file ... has md5 collision". +</para> +<para lang="en"> +"cache file ... has md5 collision" alert. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_gunzip_filter_module. +</para> +<para lang="en"> +in the ngx_http_gunzip_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве ssl_stapling. +</para> +<para lang="en"> +in the "ssl_stapling" directive. +</para> +</change> + +</changes> + + +<changes ver="1.3.7" date="2012-10-02"> + +<change type="feature"> +<para lang="ru"> +поддержка OCSP stapling.<br/> +Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки. +</para> +<para lang="en"> +OCSP stapling support.<br/> +Thanks to Comodo, DigiCert and GlobalSign for sponsoring this work. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_trusted_certificate. +</para> +<para lang="en"> +the "ssl_trusted_certificate" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь resolver случайным образом меняет порядок +возвращаемых закэшированных адресов.<br/> +Спасибо Антону Жулину. +</para> +<para lang="en"> +resolver now randomly rotates addresses +returned from cache.<br/> +Thanks to Anton Jouline. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с OpenSSL 0.9.7. +</para> +<para lang="en"> +OpenSSL 0.9.7 compatibility. +</para> +</change> + +</changes> + + +<changes ver="1.3.6" date="2012-09-12"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_gunzip_filter_module. +</para> +<para lang="en"> +the ngx_http_gunzip_filter_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива memcached_gzip_flag. +</para> +<para lang="en"> +the "memcached_gzip_flag" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр always директивы gzip_static. +</para> +<para lang="en"> +the "always" parameter of the "gzip_static" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве "limit_req"; +ошибка появилась в 1.1.14.<br/> +Спасибо Charles Chen. +</para> +<para lang="en"> +in the "limit_req" directive; +the bug had appeared in 1.1.14.<br/> +Thanks to Charles Chen. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался gcc 4.7 с оптимизацией -O2 +если использовался параметр --with-ipv6. +</para> +<para lang="en"> +nginx could not be built by gcc 4.7 with -O2 optimization +if the --with-ipv6 option was used. +</para> +</change> + +</changes> + + +<changes ver="1.3.5" date="2012-08-21"> + +<change type="change"> +<para lang="ru"> +модуль ngx_http_mp4_module больше не отфильтровывает дорожки +в форматах, отличных от H.264 и AAC. +</para> +<para lang="en"> +the ngx_http_mp4_module module no longer skips +tracks in formats other than H.264 and AAC. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если в директиве map в качестве значений использовались переменные. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "map" directive was used with variables as values. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault +при использовании директивы geo с параметром ranges, +но без параметра default; ошибка появилась в 0.8.43.<br/> +Спасибо Zhen Chen и Weibin Yao. +</para> +<para lang="en"> +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.<br/> +Thanks to Zhen Chen and Weibin Yao. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке параметра командной строки -p. +</para> +<para lang="en"> +in the -p command-line parameter handling. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в почтовом прокси-сервере. +</para> +<para lang="en"> +in the mail proxy server. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +незначительных потенциальных ошибок.<br/> +Спасибо Coverity. +</para> +<para lang="en"> +of minor potential bugs.<br/> +Thanks to Coverity. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows не собирался с Visual Studio 2005 Express.<br/> +Спасибо HAYASHI Kentaro. +</para> +<para lang="en"> +nginx/Windows could not be built with Visual Studio 2005 Express.<br/> +Thanks to HAYASHI Kentaro. +</para> +</change> + +</changes> + + +<changes ver="1.3.4" date="2012-07-31"> + +<change type="change"> +<para lang="ru"> +теперь на слушающих IPv6-сокетах параметр ipv6only +включён по умолчанию. +</para> +<para lang="en"> +the "ipv6only" parameter is now turned on by default for +listening IPv6 sockets. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка компилятора Clang. +</para> +<para lang="en"> +the Clang compiler support. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +могли создаваться лишние слушающие сокеты.<br/> +Спасибо Роману Одайскому. +</para> +<para lang="en"> +extra listening sockets might be created.<br/> +Thanks to Roman Odaisky. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows мог нагружать процессор, если при запуске рабочего процесса +происходила ошибка.<br/> +Спасибо Ricardo Villalobos Guevara. +</para> +<para lang="en"> +nginx/Windows might hog CPU if a worker process failed to start.<br/> +Thanks to Ricardo Villalobos Guevara. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_pass_header, fastcgi_pass_header, scgi_pass_header, +uwsgi_pass_header, proxy_hide_header, fastcgi_hide_header, +scgi_hide_header и uwsgi_hide_header +могли наследоваться некорректно. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="1.3.3" date="2012-07-10"> + +<change type="feature"> +<para lang="ru"> +поддержка entity tags и директива etag. +</para> +<para lang="en"> +entity tags support and the "etag" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы map с параметром hostnames +не игнорировалась конечная точка в исходном значении. +</para> +<para lang="en"> +trailing dot in a source value was not ignored +if the "map" directive was used with the "hostnames" parameter. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +для обработки запроса мог использоваться неверный location, +если переход в именованный location происходил +после изменения URI с помощью директивы rewrite. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="1.3.2" date="2012-06-26"> + +<change type="change"> +<para lang="ru"> +параметр single директивы keepalive теперь игнорируется. +</para> +<para lang="en"> +the "single" parameter of the "keepalive" directive is now ignored. +</para> +</change> + +<change type="change"> +<para lang="ru"> +сжатие SSL теперь отключено +в том числе при использовании OpenSSL старее 1.0.0. +</para> +<para lang="en"> +SSL compression is now disabled when using all versions of OpenSSL, +including ones prior to 1.0.0. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директиву "ip_hash" теперь можно использовать для балансировки IPv6 клиентов. +</para> +<para lang="en"> +it is now possible to use the "ip_hash" directive to balance IPv6 clients. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменную $status теперь можно использовать не только в директиве log_format. +</para> +<para lang="en"> +the $status variable can now be used not only in the "log_format" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при завершении рабочего процесса мог произойти segmentation fault, +если использовалась директива resolver. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process on shutdown +if the "resolver" directive was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовался модуль ngx_http_mp4_module. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the ngx_http_mp4_module was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module. +</para> +<para lang="en"> +in the ngx_http_mp4_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовались конфликтующие имена серверов с масками. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if conflicting wildcard server names were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на платформе ARM nginx мог аварийно завершаться по сигналу SIGBUS. +</para> +<para lang="en"> +nginx might be terminated abnormally on a SIGBUS signal on ARM platform. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +во время переконфигурации на HP-UX в лог +записывался alert "sendmsg() failed (9: Bad file number)". +</para> +<para lang="en"> +an alert "sendmsg() failed (9: Bad file number)" on HP-UX +while reconfiguration. +</para> +</change> + +</changes> + + +<changes ver="1.3.1" date="2012-06-05"> + +<change type="security"> +<para lang="ru"> +теперь nginx/Windows игнорирует точку в конце компонента URI +и не разрешает URI, содержащие последовательность ":$".<br/> +Спасибо Владимиру Кочеткову, Positive Research Center. +</para> +<para lang="en"> +now nginx/Windows ignores trailing dot in URI path component, and +does not allow URIs with ":$" in it.<br/> +Thanks to Vladimir Kochetkov, Positive Research Center. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass и +директива server в блоке upstream +теперь поддерживают IPv6-адреса. +</para> +<para lang="en"> +the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass" directives, and +the "server" directive inside the "upstream" block, +now support IPv6 addresses. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в директиве resolver теперь можно указывать порт и +задавать IPv6-адреса DNS-серверов. +</para> +<para lang="en"> +the "resolver" directive now supports IPv6 addresses and +an optional port specification. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива least_conn в блоке upstream. +</para> +<para lang="en"> +the "least_conn" directive inside the "upstream" block. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +при использовании директивы ip_hash +теперь можно задавать веса серверов. +</para> +<para lang="en"> +it is now possible to specify a weight for servers +while using the "ip_hash" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалась директива image_filter; +ошибка появилась в 1.3.0. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "image_filter" directive was used; +the bug had appeared in 1.3.0. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с модулем ngx_cpp_test_module; +ошибка появилась в 1.1.12. +</para> +<para lang="en"> +nginx could not be built with ngx_cpp_test_module; +the bug had appeared in 1.1.12. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +доступ к переменным из SSI и встроенного перла мог не работать после +переконфигурации.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +access to variables from SSI and embedded perl module might not work after +reconfiguration.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_xslt_filter_module.<br/> +Спасибо Kuramoto Eiji. +</para> +<para lang="en"> +in the ngx_http_xslt_filter_module.<br/> +Thanks to Kuramoto Eiji. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти при использовании переменной $geoip_org.<br/> +Спасибо Денису Латыпову. +</para> +<para lang="en"> +memory leak if $geoip_org variable was used.<br/> +Thanks to Denis F. Latypoff. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директивах proxy_cookie_domain и proxy_cookie_path. +</para> +<para lang="en"> +in the "proxy_cookie_domain" and "proxy_cookie_path" directives. +</para> +</change> + +</changes> + + +<changes ver="1.3.0" date="2012-05-15"> + +<change type="feature"> +<para lang="ru"> +директива debug_connection теперь поддерживает IPv6-адреса +и параметр "unix:". +</para> +<para lang="en"> +the "debug_connection" directive now supports IPv6 addresses +and the "unix:" parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива set_real_ip_from и параметр proxy +директивы geo теперь поддерживают IPv6-адреса. +</para> +<para lang="en"> +the "set_real_ip_from" directive and the "proxy" parameter +of the "geo" directive now support IPv6 addresses. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы real_ip_recursive, geoip_proxy и geoip_proxy_recursive. +</para> +<para lang="en"> +the "real_ip_recursive", "geoip_proxy", and "geoip_proxy_recursive" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр proxy_recursive директивы geo. +</para> +<para lang="en"> +the "proxy_recursive" parameter of the "geo" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалась директива resolver. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "resolver" directive was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass +и бэкенд возвращал некорректный ответ. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалась директива rewrite и в новых аргументах запроса в строке +замены использовались переменные. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "rewrite" directive was used and new request arguments +in a replacement used variables. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог нагружать процессор, +если было достигнуто ограничение на количество открытых файлов. +</para> +<para lang="en"> +nginx might hog CPU +if the open file resource limit was reached. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы proxy_next_upstream с параметром http_404 +nginx мог бесконечно перебирать бэкенды, если в блоке upstream был +хотя бы один сервер с флагом backup. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы ip_hash +установка параметра down директивы server +могла приводить к ненужному перераспределению клиентов между бэкендами. +</para> +<para lang="en"> +adding the "down" parameter of the "server" directive +might cause unneeded client redistribution among backend servers +if the "ip_hash" directive was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +socket leak.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_fastcgi_module. +</para> +<para lang="en"> +in the ngx_http_fastcgi_module. +</para> +</change> + +</changes> + + +<changes ver="1.2.0" date="2012-04-23"> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалась директива try_files; +ошибка появилась в 1.1.19. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "try_files" directive was used; +the bug had appeared in 1.1.19. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответ мог быть передан не полностью, +если использовалось больше IOV_MAX буферов. +</para> +<para lang="en"> +response might be truncated +if there were more than IOV_MAX buffers used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в работе параметра crop директивы image_filter.<br/> +Спасибо Maxim Bublis. +</para> +<para lang="en"> +in the "crop" parameter of the "image_filter" directive.<br/> +Thanks to Maxim Bublis. +</para> +</change> + +</changes> + + +<changes ver="1.1.19" date="2012-04-12"> + +<change type="security"> +<para lang="ru"> +при обработке специально созданного mp4 файла модулем ngx_http_mp4_module +могли перезаписываться области памяти рабочего процесса, что могло +приводить к выполнению произвольного кода (CVE-2012-2089).<br/> +Спасибо Matthew Daley. +</para> +<para lang="en"> +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).<br/> +Thanks to Matthew Daley. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows мог завершаться аварийно.<br/> +Спасибо Vincent Lee. +</para> +<para lang="en"> +nginx/Windows might be terminated abnormally.<br/> +Thanks to Vincent Lee. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx нагружал процессор, если все серверы в upstream'е были помечены +флагом backup. +</para> +<para lang="en"> +nginx hogged CPU if all servers in an upstream were marked as "backup". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы allow и deny могли наследоваться некорректно, +если в них использовались IPv6 адреса. +</para> +<para lang="en"> +the "allow" and "deny" directives might be inherited incorrectly +if they were used with IPv6 addresses. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы modern_browser и ancient_browser +могли наследоваться некорректно. +</para> +<para lang="en"> +the "modern_browser" and "ancient_browser" directives +might be inherited incorrectly. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +таймауты могли работать некорректно на Solaris/SPARC. +</para> +<para lang="en"> +timeouts might be handled incorrectly on Solaris/SPARC. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module. +</para> +<para lang="en"> +in the ngx_http_mp4_module. +</para> +</change> + +</changes> + + +<changes ver="1.1.18" date="2012-03-28"> + +<change type="change"> +<para lang="ru"> +теперь keepalive соединения не запрещены для Safari по умолчанию. +</para> +<para lang="en"> +keepalive connections are no longer disabled for Safari by default. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $connection_requests. +</para> +<para lang="en"> +the $connection_requests variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd и +$tcpinfo_rcv_space. +</para> +<para lang="en"> +$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and +$tcpinfo_rcv_space variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива worker_cpu_affinity теперь работает на FreeBSD. +</para> +<para lang="en"> +the "worker_cpu_affinity" directive now works on FreeBSD. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы xslt_param и xslt_string_param.<br/> +Спасибо Samuel Behan. +</para> +<para lang="en"> +the "xslt_param" and "xslt_string_param" directives.<br/> +Thanks to Samuel Behan. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в configure.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in configure tests.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_xslt_filter_module. +</para> +<para lang="en"> +in the ngx_http_xslt_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Debian GNU/Hurd. +</para> +<para lang="en"> +nginx could not be built on Debian GNU/Hurd. +</para> +</change> + +</changes> + + +<changes ver="1.1.17" date="2012-03-15"> + +<change type="security"> +<para lang="ru"> +содержимое ранее освобождённой памяти могло быть отправлено клиенту, +если бэкенд возвращал специально созданный ответ.<br/> +Спасибо Matthew Daley. +</para> +<para lang="en"> +content of previously freed memory might be sent to a client +if backend returned specially crafted response.<br/> +Thanks to Matthew Daley. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании встроенного перла из SSI.<br/> +Спасибо Matthew Daley. +</para> +<para lang="en"> +in the embedded perl module if used from SSI.<br/> +Thanks to Matthew Daley. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_uwsgi_module. +</para> +<para lang="en"> +in the ngx_http_uwsgi_module. +</para> +</change> + +</changes> + + +<changes ver="1.1.16" date="2012-02-29"> + +<change type="change"> +<para lang="ru"> +ограничение на количество одновременных подзапросов поднято до 200. +</para> +<para lang="en"> +the simultaneous subrequest limit has been raised to 200. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр from в директиве disable_symlinks. +</para> +<para lang="en"> +the "from" parameter of the "disable_symlinks" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы return и error_page теперь могут использоваться для возврата +перенаправлений с кодом 307. +</para> +<para lang="en"> +the "return" and "error_page" directives can now be used to return 307 +redirections. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалась директива resolver +и на глобальном уровне не была задана директива error_log.<br/> +Спасибо Роману Арутюняну. +</para> +<para lang="en"> +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.<br/> +Thanks to Roman Arutyunyan. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовались директивы "proxy_http_version 1.1" или +"fastcgi_keep_conn on". +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if the "proxy_http_version 1.1" or "fastcgi_keep_conn on" directives +were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечек памяти.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +memory leaks.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве disable_symlinks. +</para> +<para lang="en"> +in the "disable_symlinks" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании ZFS размер кэша на диске мог считаться некорректно; +ошибка появилась в 1.0.1. +</para> +<para lang="en"> +on ZFS filesystem disk cache size might be calculated incorrectly; +the bug had appeared in 1.0.1. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался компилятором icc 12.1. +</para> +<para lang="en"> +nginx could not be built by the icc 12.1 compiler. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался gcc на Solaris; +ошибка появилась в 1.1.15. +</para> +<para lang="en"> +nginx could not be built by gcc on Solaris; +the bug had appeared in 1.1.15. +</para> +</change> + +</changes> + + +<changes ver="1.1.15" date="2012-02-15"> + +<change type="feature"> +<para lang="ru"> +директива disable_symlinks. +</para> +<para lang="en"> +the "disable_symlinks" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_cookie_domain и proxy_cookie_path. +</para> +<para lang="en"> +the "proxy_cookie_domain" and "proxy_cookie_path" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог некорректно сообщать об ошибке "upstream prematurely closed +connection" вместо "upstream sent too big header".<br/> +Спасибо Feibo Li. +</para> +<para lang="en"> +nginx might log incorrect error "upstream prematurely closed connection" +instead of correct "upstream sent too big header" one.<br/> +Thanks to Feibo Li. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с модулем ngx_http_perl_module, +если использовался параметр --with-openssl. +</para> +<para lang="en"> +nginx could not be built with the ngx_http_perl_module +if the --with-openssl option was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +количество внутренних перенаправлений в именованные location'ы +не ограничивалось. +</para> +<para lang="en"> +the number of internal redirects to named locations was not limited. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +вызов $r->flush() несколько раз подряд мог приводить к ошибкам +в модуле ngx_http_gzip_filter_module. +</para> +<para lang="en"> +calling $r->flush() multiple times might cause errors +in the ngx_http_gzip_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы proxy_store с SSI-подзапросами +временные файлы могли не удаляться. +</para> +<para lang="en"> +temporary files might be not removed +if the "proxy_store" directive was used with SSI includes. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в некоторых случаях некэшируемые переменные (такие, как $args) +возвращали старое пустое закэшированное значение. +</para> +<para lang="en"> +in some cases non-cacheable variables (such as the $args variable) +returned old empty cached value. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если одновременно создавалось слишком много SSI-подзапросов; +ошибка появилась в 0.7.25. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="1.1.14" date="2012-01-30"> + +<change type="feature"> +<para lang="ru"> +теперь можно указать несколько ограничений limit_req одновременно. +</para> +<para lang="en"> +multiple "limit_req" limits may be used simultaneously. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок при соединении с бэкендом.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in error handling while connecting to a backend.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок при использовании AIO на FreeBSD. +</para> +<para lang="en"> +in AIO error handling on FreeBSD. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в инициализации библиотеки OpenSSL. +</para> +<para lang="en"> +in the OpenSSL library initialization. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_redirect могли наследоваться некорректно. +</para> +<para lang="en"> +the "proxy_redirect" directives might be inherited incorrectly. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти при переконфигурации, если использовалась директива pcre_jit. +</para> +<para lang="en"> +memory leak during reconfiguration if the "pcre_jit" directive was used. +</para> +</change> + +</changes> + + +<changes ver="1.1.13" date="2012-01-16"> + +<change type="feature"> +<para lang="ru"> +параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols. +</para> +<para lang="en"> +the "TLSv1.1" and "TLSv1.2" parameters of the "ssl_protocols" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметры директивы limit_req наследовались некорректно; +ошибка появилась в 1.1.12. +</para> +<para lang="en"> +the "limit_req" directive parameters were not inherited correctly; +the bug had appeared in 1.1.12. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_redirect некорректно обрабатывала заголовок Refresh +при использовании регулярных выражений. +</para> +<para lang="en"> +the "proxy_redirect" directive incorrectly processed "Refresh" header +if regular expression were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_cache_use_stale с параметром error не возвращала ответ из +кэша, если все бэкенды были признаны неработающими. +</para> +<para lang="en"> +the "proxy_cache_use_stale" directive with "error" parameter did not return +answer from cache if there were no live upstreams. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива worker_cpu_affinity могла не работать. +</para> +<para lang="en"> +the "worker_cpu_affinity" directive might not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Solaris; +ошибка появилась в 1.1.12. +</para> +<para lang="en"> +nginx could not be built on Solaris; +the bug had appeared in 1.1.12. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module. +</para> +<para lang="en"> +in the ngx_http_mp4_module. +</para> +</change> + +</changes> + + +<changes ver="1.1.12" date="2011-12-26"> + +<change type="change"> +<para lang="ru"> +после перенаправления запроса с помощью директивы error_page +директива proxy_pass без URI теперь использует изменённый URI.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +a "proxy_pass" directive without URI part now uses changed URI +after redirection with the "error_page" directive.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy/fastcgi/scgi/uwsgi_cache_lock, +proxy/fastcgi/scgi/uwsgi_cache_lock_timeout. +</para> +<para lang="en"> +the "proxy/fastcgi/scgi/uwsgi_cache_lock", +"proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива pcre_jit. +</para> +<para lang="en"> +the "pcre_jit" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +SSI команда if поддерживает выделения в регулярных выражениях. +</para> +<para lang="en"> +the "if" SSI command supports captures in regular expressions. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +SSI команда if не работала внутри команды block. +</para> +<para lang="en"> +the "if" SSI command did not work inside the "block" command. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы limit_conn_log_level и limit_req_log_level могли не работать. +</para> +<para lang="en"> +the "limit_conn_log_level" and "limit_req_log_level" directives might not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива limit_rate не позволяла передавать на полной скорости, +даже если был указан очень большой лимит. +</para> +<para lang="en"> +the "limit_rate" directive did not allow to use full throughput, +even if limit value was very high. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива sendfile_max_chunk не работала, +если использовалась директива limit_rate. +</para> +<para lang="en"> +the "sendfile_max_chunk" directive did not work, +if the "limit_rate" directive was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве proxy_pass использовались переменные и не был указан URI, +всегда использовался URI исходного запроса. +</para> +<para lang="en"> +a "proxy_pass" directive without URI part always used original request URI +if variables were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после перенаправления запроса с помощью директивы try_files +директива proxy_pass без URI могла использовать URI исходного запроса.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +a "proxy_pass" directive without URI part might use original request +after redirection with the "try_files" directive.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_scgi_module. +</para> +<para lang="en"> +in the ngx_http_scgi_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module. +</para> +<para lang="en"> +in the ngx_http_mp4_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Solaris; +ошибка появилась в 1.1.9. +</para> +<para lang="en"> +nginx could not be built on Solaris; +the bug had appeared in 1.1.9. +</para> +</change> + +</changes> + + +<changes ver="1.1.11" date="2011-12-12"> + +<change type="feature"> +<para lang="ru"> +параметр so_keepalive в директиве listen.<br/> +Спасибо Всеволоду Стахову. +</para> +<para lang="en"> +the "so_keepalive" parameter of the "listen" directive.<br/> +Thanks to Vsevolod Stakhov. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр if_not_empty в директивах fastcgi/scgi/uwsgi_param. +</para> +<para lang="en"> +the "if_not_empty" parameter of the "fastcgi/scgi/uwsgi_param" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $https. +</para> +<para lang="en"> +the $https variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_redirect поддерживает переменные в первом параметре. +</para> +<para lang="en"> +the "proxy_redirect" directive supports variables in the first parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_redirect поддерживает регулярные выражения. +</para> +<para lang="en"> +the "proxy_redirect" directive supports regular expressions. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $sent_http_cache_control могла содержать неверное значение при +использовании директивы expires.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +the $sent_http_cache_control variable might contain a wrong value if the +"expires" directive was used.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива read_ahead могла не работать при использовании совместно с +try_files и open_file_cache. +</para> +<para lang="en"> +the "read_ahead" directive might not work combined with "try_files" +and "open_file_cache". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в параметре inactive директивы proxy_cache_path +было указано малое время, +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if small time was used in the "inactive" parameter of +the "proxy_cache_path" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответы из кэша могли зависать. +</para> +<para lang="en"> +responses from cache might hang. +</para> +</change> + +</changes> + + +<changes ver="1.1.10" date="2011-11-30"> + +<change type="bugfix"> +<para lang="ru"> +при использовании AIO на Linux в рабочем процессе происходил segmentation fault; +ошибка появилась в 1.1.9. +</para> +<para lang="en"> +a segmentation fault occurred in a worker process if AIO was used on Linux; +the bug had appeared in 1.1.9. +</para> +</change> + +</changes> + + +<changes ver="1.1.9" date="2011-11-28"> + +<change type="change"> +<para lang="ru"> +теперь двойные кавычки экранируется при выводе SSI-командой echo.<br/> +Спасибо Зауру Абасмирзоеву. +</para> +<para lang="en"> +now double quotes are encoded in an "echo" SSI-command output.<br/> +Thanks to Zaur Abasmirzoev. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр valid в директиве resolver. По умолчанию теперь +используется TTL, возвращённый DNS-сервером.<br/> +Спасибо Кириллу Коринскому. +</para> +<para lang="en"> +the "valid" parameter of the "resolver" directive. By default TTL +returned by a DNS server is used.<br/> +Thanks to Kirill A. Korinskiy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог перестать отвечать, если рабочий процесс завершался аварийно. +</para> +<para lang="en"> +nginx might hang after a worker process abnormal termination. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалось SNI; +ошибка появилась в 1.1.2. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if SNI was used; +the bug had appeared in 1.1.2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве keepalive_disable; +ошибка появилась в 1.1.8.<br/> +Спасибо Александру Усову. +</para> +<para lang="en"> +in the "keepalive_disable" directive; +the bug had appeared in 1.1.8.<br/> +Thanks to Alexander Usov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +сигнал SIGWINCH переставал работать после первого обновления исполняемого +файла; +ошибка появилась в 1.1.1. +</para> +<para lang="en"> +SIGWINCH signal did not work after first binary upgrade; +the bug had appeared in 1.1.1. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь ответы бэкендов, длина которых не соответствует заголовку +Content-Length, не кэширутся. +</para> +<para lang="en"> +backend responses with length not matching "Content-Length" header line +are no longer cached. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве scgi_param при использовании составных параметров. +</para> +<para lang="en"> +in the "scgi_param" directive, if complex parameters were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в методе epoll.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +in the "epoll" event method.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_flv_module.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +in the ngx_http_flv_module.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_mp4_module. +</para> +<para lang="en"> +in the ngx_http_mp4_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx понимает IPv6-адреса в строке запроса и в заголовке Host. +</para> +<para lang="en"> +IPv6 addresses are now handled properly in a request line and in a "Host" +request header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы add_header и expires не работали для ответов с кодом 206, +если запрос проксировался. +</para> +<para lang="en"> +"add_header" and "expires" directives did not work if a request was proxied +and response status code was 206. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на FreeBSD 10. +</para> +<para lang="en"> +nginx could not be built on FreeBSD 10. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на AIX. +</para> +<para lang="en"> +nginx could not be built on AIX. +</para> +</change> + +</changes> + + +<changes ver="1.1.8" date="2011-11-14"> + +<change type="change"> +<para lang="ru"> +модуль ngx_http_limit_zone_module переименован в ngx_http_limit_conn_module. +</para> +<para lang="en"> +the ngx_http_limit_zone_module was renamed to the ngx_http_limit_conn_module. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива limit_zone заменена директивой limit_conn_zone с новым синтаксисом. +</para> +<para lang="en"> +the "limit_zone" directive was superseded by the "limit_conn_zone" directive +with a new syntax. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка ограничения по нескольким limit_conn на одном уровне. +</para> +<para lang="en"> +support for multiple "limit_conn" limits on the same level. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива image_filter_sharpen. +</para> +<para lang="en"> +the "image_filter_sharpen" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если resolver получил большой DNS-ответ.<br/> +Спасибо Ben Hawkes. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if resolver got a big DNS response.<br/> +Thanks to Ben Hawkes. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в вычислении ключа для кэширования, +если использовалась внутренняя реализация MD5; +ошибка появилась в 1.0.4. +</para> +<para lang="en"> +in cache key calculation +if internal MD5 implementation was used; +the bug had appeared in 1.0.4. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса +клиента могли передаваться бэкенду при кэшировании; или не передаваться при +выключенном кэшировании, если кэширование было включено в другой части +конфигурации. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_mp4_module выдавал неверную строку "Content-Length" +в заголовке ответа, использовался аргумент start.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +the module ngx_http_mp4_module sent incorrect "Content-Length" response +header line if the "start" argument was used.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +</changes> + + +<changes ver="1.1.7" date="2011-10-31"> + +<change type="feature"> +<para lang="ru"> +поддержка нескольких DNS серверов в директиве "resolver".<br/> +Спасибо Кириллу Коринскому. +</para> +<para lang="en"> +support of several DNS servers in the "resolver" directive.<br/> +Thanks to Kirill A. Korinskiy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на старте или во время переконфигурации происходил segmentation fault, +если директива ssl использовалась на уровне http и не был указан +ssl_certificate. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +уменьшено потребление памяти при проксировании больших файлов, +если они буферизировались на диск. +</para> +<para lang="en"> +reduced memory consumption while proxying big files +if they were buffered to disk. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовалась директива "proxy_http_version 1.1". +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if "proxy_http_version 1.1" directive was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве "expires @time". +</para> +<para lang="en"> +in the "expires @time" directive. +</para> +</change> + +</changes> + + +<changes ver="1.1.6" date="2011-10-17"> + +<change> +<para lang="ru"> +Изменение во внутреннем API: теперь при внутреннем редиректе +в именованный location контексты модулей очищаются.<br/> +По запросу Yichun Zhang. +</para> +<para lang="en"> +Change in internal API: now module context data are cleared +while internal redirect to named location.<br/> +Requested by Yichun Zhang. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь если сервер, описанный в блоке upstream, был признан неработающим, +то после истечения fail_timeout на него будет отправлен только один запрос; +сервер будет считаться работающим, если успешно ответит на этот запрос. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь символы 0x7F-0xFF в access_log записываются в виде \xXX. +</para> +<para lang="en"> +now the 0x7F-0xFF characters are escaped as \xXX in an access_log. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" теперь поддерживают +значения X-Accel-Limit-Rate, X-Accel-Buffering и X-Accel-Charset. +</para> +<para lang="en"> +"proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support the following +additional values: X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +уменьшение потребления памяти при использовании SSL. +</para> +<para lang="en"> +decrease of memory consumption if SSL is used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +некоторые UTF-8 символы обрабатывались неправильно.<br/> +Спасибо Алексею Куцу. +</para> +<para lang="en"> +some UTF-8 characters were processed incorrectly.<br/> +Thanks to Alexey Kuts. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы модуля ngx_http_rewrite_module, заданные на уровне server, +применялись повторно, если для запроса не находилось ни одного location'а. +</para> +<para lang="en"> +the ngx_http_rewrite_module directives specified at "server" level were +executed twice if no matching locations were defined. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании "aio sendfile" могла происходить утечка сокетов. +</para> +<para lang="en"> +a socket leak might occurred if "aio sendfile" was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании файлового AIO соединения с быстрыми клиентами +могли быть закрыты по истечению send_timeout. +</para> +<para lang="en"> +connections with fast clients might be closed after send_timeout +if file AIO was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_autoindex_module. +</para> +<para lang="en"> +in the ngx_http_autoindex_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_mp4_module не поддерживал перемотку на 32-битных платформах. +</para> +<para lang="en"> +the module ngx_http_mp4_module did not support seeking on 32-bit platforms. +</para> +</change> + +</changes> + + +<changes ver="1.1.5" date="2011-10-05"> + +<change type="feature"> +<para lang="ru"> +директивы uwsgi_buffering и scgi_buffering.<br/> +Спасибо Peter Smit. +</para> +<para lang="en"> +the "uwsgi_buffering" and "scgi_buffering" directives.<br/> +Thanks to Peter Smit. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании proxy_cache_bypass могли быть закэшированы +некэшируемые ответы.<br/> +Спасибо John Ferlito. +</para> +<para lang="en"> +non-cacheable responses might be cached if "proxy_cache_bypass" directive +was used.<br/> +Thanks to John Ferlito. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_proxy_module при работе с бэкендами по HTTP/1.1. +</para> +<para lang="en"> +in HTTP/1.1 support in the ngx_http_proxy_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +закэшированные ответы с пустым телом возвращались некорректно; +ошибка появилась в 0.8.31. +</para> +<para lang="en"> +cached responses with an empty body were returned incorrectly; +the bug had appeared in 0.8.31. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответы с кодом 201 модуля ngx_http_dav_module были некорректны; +ошибка появилась в 0.8.32. +</para> +<para lang="en"> +201 responses of the ngx_http_dav_module were incorrect; +the bug had appeared in 0.8.32. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве return. +</para> +<para lang="en"> +in the "return" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы "ssl_session_cache builtin" происходил +segmentation fault; +ошибка появилась в 1.1.1. +</para> +<para lang="en"> +the "ssl_session_cache builtin" directive caused segmentation fault; +the bug had appeared in 1.1.1. +</para> +</change> + +</changes> + + +<changes ver="1.1.4" date="2011-09-20"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_upstream_keepalive. +</para> +<para lang="en"> +the ngx_http_upstream_keepalive module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_http_version. +</para> +<para lang="en"> +the "proxy_http_version" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива fastcgi_keep_conn. +</para> +<para lang="en"> +the "fastcgi_keep_conn" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива worker_aio_requests. +</para> +<para lang="en"> +the "worker_aio_requests" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если nginx был собран с файловым AIO, +он не мог запускаться на Linux без поддержки AIO. +</para> +<para lang="en"> +if nginx was built --with-file-aio it could not be run on Linux +kernel which did not support AIO. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок при работе с Linux AIO. +<br/> +Спасибо Hagai Avrahami. +</para> +<para lang="en"> +in Linux AIO error processing. +<br/> +Thanks to Hagai Avrahami. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +уменьшено потребление памяти для долгоживущих запросов. +</para> +<para lang="en"> +reduced memory consumption for long-lived requests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_mp4_module не поддерживал 64-битный MP4-атом co64. +</para> +<para lang="en"> +the module ngx_http_mp4_module did not support 64-bit MP4 "co64" atom. +</para> +</change> + +</changes> + + +<changes ver="1.1.3" date="2011-09-14"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_mp4_module. +</para> +<para lang="en"> +the module ngx_http_mp4_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в Linux AIO, используемым совместно с open_file_cache. +</para> +<para lang="en"> +in Linux AIO combined with open_file_cache. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +open_file_cache не обновлял информацию о файле, +если файл был изменён не атомарно. +</para> +<para lang="en"> +open_file_cache did not update file info on retest +if file was not atomically changed. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на MacOSX 10.7. +</para> +<para lang="en"> +nginx could not be built on MacOSX 10.7. +</para> +</change> + +</changes> + + +<changes ver="1.1.2" date="2011-09-05"> + +<change type="change"> +<para lang="ru"> +теперь, если суммарный размер всех диапазонов больше размера исходного ответа, +то nginx возвращает только исходный ответ, не обрабатывая диапазоны. +</para> +<para lang="en"> +now if total size of all ranges is greater than source response size, +then nginx disables ranges and returns just the source response. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива max_ranges. +</para> +<para lang="en"> +the "max_ranges" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы ssl_verify_client, ssl_verify_depth и ssl_prefer_server_cipher +могли работать некорректно, если использовался SNI. +</para> +<para lang="en"> +the "ssl_verify_client", "ssl_verify_depth", and "ssl_prefer_server_ciphers" +directives might work incorrectly if SNI was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директивах proxy/fastcgi/scgi/ uwsgi_ignore_client_abort. +</para> +<para lang="en"> +in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" directives. +</para> +</change> + +</changes> + + +<changes ver="1.1.1" date="2011-08-22"> + +<change type="change"> +<para lang="ru"> +теперь загрузчик кэша за каждую итерацию либо обрабатывает число файлов, +указанное в параметре load_files, либо работает не дольше времени, +указанного в параметре loader_threshold. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="change"> +<para lang="ru"> +SIGWINCH сигнал теперь работает только в режиме демона. +</para> +<para lang="en"> +now SIGWINCH signal works only in daemon mode. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь разделяемые зоны и кэши используют семафоры POSIX на Solaris.<br/> +Спасибо Денису Иванову. +</para> +<para lang="en"> +now shared zones and caches use POSIX semaphores on Solaris.<br/> +Thanks to Den Ivanov. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь на NetBSD поддерживаются accept фильтры. +</para> +<para lang="en"> +accept filters are now supported on NetBSD. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Linux 3.0. +</para> +<para lang="en"> +nginx could not be built on Linux 3.0. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в некоторых случаях nginx не использовал сжатие; +ошибка появилась в 1.1.0. +</para> +<para lang="en"> +nginx did not use gzipping in some cases; +the bug had appeared in 1.1.0. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +обработка тела запроса могла быть неверной, если клиент использовал pipelining. +</para> +<para lang="en"> +request body might be processed incorrectly if client used pipelining. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве request_body_in_single_buf. +</para> +<para lang="en"> +in the "request_body_in_single_buf" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директивах proxy_set_body и proxy_pass_request_body +при использовании SSL-соединения с бэкендом. +</para> +<para lang="en"> +in "proxy_set_body" and "proxy_pass_request_body" directives +if SSL connection to backend was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx нагружал процессор, если все серверы в upstream'е были помечены +флагом down. +</para> +<para lang="en"> +nginx hogged CPU if all servers in an upstream were marked as "down". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при переконфигурации мог произойти segmentation fault, +если в предыдущей конфигурации был определён, но не использовался +ssl_session_cache. +</para> +<para lang="en"> +a segmentation fault might occur during reconfiguration +if ssl_session_cache was defined but not used in previous configuration. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании большого количества backup-серверов +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +if many backup servers were used in an upstream. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директив fastcgi/scgi/uwsgi_param +со значениями, начинающимися со строки "HTTP_", +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.8.40. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="1.1.0" date="2011-08-01"> + +<change type="feature"> +<para lang="ru"> +уменьшение времени работы загрузчика кэша. +</para> +<para lang="en"> +cache loader run time decrease. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметры loader_files, loader_sleep и loader_threshold +директив proxy/fastcgi/scgi/uwsgi_cache_path. +</para> +<para lang="en"> +"loader_files", "loader_sleep", and "loader_threshold" options +of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +уменьшение времени загрузки конфигураций с большим количеством HTTPS серверов. +</para> +<para lang="en"> +loading time decrease of configuration with large number of HTTPS sites. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь nginx поддерживает шифры с обменом ECDHE-ключами.<br/> +Спасибо Adrian Kotelba. +</para> +<para lang="en"> +now nginx supports ECDHE key exchange ciphers.<br/> +Thanks to Adrian Kotelba. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива lingering_close.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the "lingering_close" directive.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +закрытия соединения для pipelined-запросов.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +in closing connection for pipelined requests.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не запрещал сжатие при получении значения "gzip;q=0" +в строке "Accept-Encoding" в заголовке запроса клиента. +</para> +<para lang="en"> +nginx did not disable gzipping if client sent "gzip;q=0" in +"Accept-Encoding" request header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +таймаута при небуферизированном проксировании.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +in timeout in unbuffered proxied mode.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти при использовании переменных в директиве proxy_pass +при работе с бэкендом по HTTPS.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +memory leaks when a "proxy_pass" directive contains variables and proxies +to an HTTPS backend.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в проверке параметра директивы proxy_pass, заданного переменными.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +in parameter validation of a "proxy_pass" directive with variables.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +SSL не работал на QNX.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +SSL did not work on QNX.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +SSL модули не собирались gcc 4.6 без параметра --with-debug. +</para> +<para lang="en"> +SSL modules could not be built by gcc 4.6 without --with-debug option. +</para> +</change> + +</changes> + + +<changes ver="1.0.5" date="2011-07-19"> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию используются следующие шифры SSL: "HIGH:!aNULL:!MD5".<br/> +Спасибо Rob Stradling. +</para> +<para lang="en"> +now default SSL ciphers are "HIGH:!aNULL:!MD5".<br/> +Thanks to Rob Stradling. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы referer_hash_max_size и referer_hash_bucket_size.<br/> +Спасибо Witold Filipczyk. +</para> +<para lang="en"> +the "referer_hash_max_size" and "referer_hash_bucket_size" +directives.<br/> +Thanks to Witold Filipczyk. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $uid_reset. +</para> +<para lang="en"> +$uid_reset variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании кэширования +в рабочем процессе мог произойти segmentation fault.<br/> +Спасибо Lanshun Zhou. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process, +if a caching was used.<br/> +Thanks to Lanshun Zhou. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании кэширования рабочие процессы +могли зациклиться во время переконфигурации; +ошибка появилась в 0.8.48.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +worker processes may got caught in an endless loop during reconfiguration, +if a caching was used; +the bug had appeared in 0.8.48.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +сообщения "stalled cache updating".<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +"stalled cache updating" alert.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="1.0.4" date="2011-06-01"> + +<change type="change"> +<para lang="ru"> +теперь в регулярных выражениях в директиве map можно задать +чувствительность к регистру с помощью префиксов "~" и "~*". +</para> +<para lang="en"> +now regular expressions case sensitivity in the "map" directive +is given by prefixes "~" or "~*". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь разделяемые зоны и кэши используют семафоры POSIX на Linux.<br/> +Спасибо Денису Латыпову. +</para> +<para lang="en"> +now shared zones and caches use POSIX semaphores on Linux.<br/> +Thanks to Denis F. Latypoff. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +сообщения "stalled cache updating". +</para> +<para lang="en"> +"stalled cache updating" alert. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-http_auth_basic_module; +ошибка появилась в 1.0.3. +</para> +<para lang="en"> +nginx could not be built --without-http_auth_basic_module; +the bug had appeared in 1.0.3. +</para> +</change> + +</changes> + + +<changes ver="1.0.3" date="2011-05-25"> + +<change type="feature"> +<para lang="ru"> +директива auth_basic_user_file поддерживает шифрование пароля +методами "$apr1", "{PLAIN}" и "{SSHA}".<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the "auth_basic_user_file" directive supports "$apr1", "{PLAIN}", +and "{SSHA}" password encryption methods.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива geoip_org и переменная $geoip_org.<br/> +Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову. +</para> +<para lang="en"> +the "geoip_org" directive and $geoip_org variable.<br/> +Thanks to Alexander Uskov, Arnaud Granal, and Denis F. Latypoff. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модули ngx_http_geo_module и ngx_http_geoip_module поддерживают +адреса IPv4, отображённые на IPv6 адреса. +</para> +<para lang="en"> +ngx_http_geo_module and ngx_http_geoip_module support IPv4 addresses +mapped to IPv6 addresses. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проверке адреса IPv4, отображённого на адрес IPv6, +в рабочем процессе происходил segmentation fault, +если директивы access или deny были определены только для адресов IPv6; +ошибка появилась в 0.8.22. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +закэшированный ответ мог быть испорчен, если значения директив +proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/ uwsgi_no_cache +были разными; +ошибка появилась в 0.8.46. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="1.0.2" date="2011-05-10"> + +<change type="feature"> +<para lang="ru"> +теперь разделяемые зоны и кэши используют семафоры POSIX. +</para> +<para lang="en"> +now shared zones and caches use POSIX semaphores. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в работе параметра rotate директивы image_filter.<br/> +Спасибо Adam Bocim. +</para> +<para lang="en"> +in the "rotate" parameter of the "image_filter" directive.<br/> +Thanks to Adam Bocim. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Solaris; +ошибка появилась в 1.0.1. +</para> +<para lang="en"> +nginx could not be built on Solaris; +the bug had appeared in 1.0.1. +</para> +</change> + +</changes> + + +<changes ver="1.0.1" date="2011-05-03"> + +<change type="change"> +<para lang="ru"> +теперь директива split_clients использует алгоритм MurmurHash2 из-за +лучшего распределения.<br/> +Спасибо Олегу Мамонтову. +</para> +<para lang="en"> +now the "split_clients" directive uses MurmurHash2 algorithm because +of better distribution.<br/> +Thanks to Oleg Mamontov. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь длинные строки, начинающиеся с нуля, не считаются ложными +значениями.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now long strings starting with zero are not considered as false values.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию nginx использует значение 511 для listen backlog на Linux. +</para> +<para lang="en"> +now nginx uses a default listen backlog value 511 on Linux. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $upstream_... можно использовать в SSI и перловом модулях. +</para> +<para lang="en"> +the $upstream_... variables may be used in the SSI and perl modules. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx лучше ограничивает размер кэша на диске.<br/> +Спасибо Олегу Мамонтову. +</para> +<para lang="en"> +now nginx limits better disk cache size.<br/> +Thanks to Oleg Mamontov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при парсинге неправильного IPv4 адреса мог произойти segmentation fault; +ошибка появилась в 0.8.22.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +a segmentation fault might occur while parsing incorrect IPv4 address; +the bug had appeared in 0.9.3.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался gcc 4.6 без параметра --with-debug. +</para> +<para lang="en"> +nginx could not be built by gcc 4.6 without --with-debug option. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Solaris 9 и более ранних; +ошибка появилась в 0.9.3.<br/> +Спасибо Dagobert Michelsen. +</para> +<para lang="en"> +nginx could not be built on Solaris 9 and earlier; +the bug had appeared in 0.9.3.<br/> +Thanks to Dagobert Michelsen. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $request_time имела неверные значения, если использовались +подзапросы; +ошибка появилась в 0.8.47.<br/> +Спасибо Игорю А. Валькову. +</para> +<para lang="en"> +$request_time variable had invalid values if subrequests were used; +the bug had appeared in 0.8.47.<br/> +Thanks to Igor A. Valcov. +</para> +</change> + +</changes> + + +<changes ver="1.0.0" date="2011-04-12"> + +<change type="bugfix"> +<para lang="ru"> +cache manager мог нагружать процессор после переконфигурации.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +a cache manager might hog CPU after reload.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "image_filter crop" неправильно работала в сочетании с +"image_filter rotate 180". +</para> +<para lang="en"> +an "image_filter crop" directive worked incorrectly coupled with +an "image_filter rotate 180" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "satisfy any" запрещала выдачу пользовательской страницы +для 401 кода. +</para> +<para lang="en"> +a "satisfy any" directive disabled custom 401 error page. +</para> +</change> + +</changes> + + +<changes ver="0.9.7" date="2011-04-04"> + +<change type="feature"> +<para lang="ru"> +теперь соединения в состоянии keepalive могут быть закрыты преждевременно, +если у воркера нет свободных соединений.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now keepalive connections may be closed premature, +if there are no free worker connections.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр rotate директивы image_filter.<br/> +Спасибо Adam Bocim. +</para> +<para lang="en"> +the "rotate" parameter of the "image_filter" directive.<br/> +Thanks to Adam Bocim. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ситуации, когда бэкенд в директивах fastcgi_pass, scgi_pass или uwsgi_pass +задан выражением и ссылается на описанный upstream. +</para> +<para lang="en"> +a case when a backend in "fastcgi_pass", "scgi_pass", or "uwsgi_pass" +directives is given by expression and refers to a defined upstream. +</para> +</change> + +</changes> + + +<changes ver="0.9.6" date="2011-03-21"> + +<change type="feature"> +<para lang="ru"> +директива map поддерживает регулярные выражения в качестве значения +первого параметра. +</para> +<para lang="en"> +the "map" directive supports regular expressions as value of the first +parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $time_iso8601 для access_log.<br/> +Спасибо Michael Lustfield. +</para> +<para lang="en"> +$time_iso8601 access_log variable.<br/> +Thanks to Michael Lustfield. +</para> +</change> + +</changes> + + +<changes ver="0.9.5" date="2011-02-21"> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию nginx использует значение -1 для listen backlog +на Linux.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +now nginx uses a default listen backlog value -1 on Linux.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр utf8 в директивах geoip_country и geoip_city.<br/> +Спасибо Денису Латыпову. +</para> +<para lang="en"> +the "utf8" parameter of "geoip_country" and "geoip_city" directives.<br/> +Thanks to Denis F. Latypoff. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +исправление в умолчательной директиве proxy_redirect, если в директиве +proxy_pass не был описан URI.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +in a default "proxy_redirect" directive if "proxy_pass" directive has no +URI part.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива error_page не работала с нестандартными кодами ошибок; +ошибка появилась в 0.8.53.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +an "error_page" directive did not work with nonstandard error codes; +the bug had appeared in 0.8.53.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.9.4" date="2011-01-21"> + +<change type="feature"> +<para lang="ru"> +директива server_name поддерживает переменную $hostname. +</para> +<para lang="en"> +the "server_name" directive supports the $hostname variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +494 код для ошибки "Request Header Too Large". +</para> +<para lang="en"> +494 code for "Request Header Too Large" error. +</para> +</change> + +</changes> + + +<changes ver="0.9.3" date="2010-12-13"> + +<change type="bugfix"> +<para lang="ru"> +если для пары IPv6-адрес:порт описан только один сервер, то выделения +в регулярных выражениях в директиве server_name не работали. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался под Solaris; +ошибка появилась в 0.9.0. +</para> +<para lang="en"> +nginx could not be built on Solaris; +the bug had appeared in 0.9.0. +</para> +</change> + +</changes> + + +<changes ver="0.9.2" date="2010-12-06"> + +<change type="feature"> +<para lang="ru"> +поддержка строки "If-Unmodified-Since" в заголовке запроса клиента. +</para> +<para lang="en"> +the "If-Unmodified-Since" client request header line support. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +использование accept(), если accept4() не реализован; +ошибка появилась в 0.9.0. +</para> +<para lang="en"> +fallback to accept() syscall if accept4() was not implemented; +the issue had appeared in 0.9.0. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался под Cygwin; +ошибка появилась в 0.9.0. +</para> +<para lang="en"> +nginx could not be built on Cygwin; +the bug had appeared in 0.9.0. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +уязвимости в OpenSSL CVE-2010-4180.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +for OpenSSL vulnerability CVE-2010-4180.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.9.1" date="2010-11-30"> + +<change type="bugfix"> +<para lang="ru"> +директивы вида "return CODE message" не работали; +ошибка появилась в 0.9.0. +</para> +<para lang="en"> +"return CODE message" directives did not work; +the bug had appeared in 0.9.0. +</para> +</change> + +</changes> + + +<changes ver="0.9.0" date="2010-11-29"> + +<change type="feature"> +<para lang="ru"> +директива keepalive_disable. +</para> +<para lang="en"> +the "keepalive_disable" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива map поддерживает переменные в качестве значения определяемой +переменной. +</para> +<para lang="en"> +the "map" directive supports variables as value of a defined variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива map поддерживает пустые строки в качестве значения первого параметра. +</para> +<para lang="en"> +the "map" directive supports empty strings as value of the first parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива map поддерживает выражения в первом параметре. +</para> +<para lang="en"> +the "map" directive supports expressions as the first parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +страница руководства nginx(8).<br/> +Спасибо Сергею Осокину. +</para> +<para lang="en"> +nginx(8) manual page.<br/> +Thanks to Sergey Osokin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка accept4() в Linux.<br/> +Спасибо Simon Liu. +</para> +<para lang="en"> +Linux accept4() support.<br/> +Thanks to Simon Liu. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +устранение предупреждения линкера о "sys_errlist" и "sys_nerr" под Linux; +предупреждение появилось в 0.8.35. +</para> +<para lang="en"> +elimination of Linux linker warning about "sys_errlist" and "sys_nerr"; +the warning had appeared in 0.8.35. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы auth_basic +в рабочем процессе мог произойти segmentation fault.<br/> +Спасибо Михаилу Лалетину. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process, +if the "auth_basic" directive was used.<br/> +Thanks to Michail Laletin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с модулем ngx_http_eval_module; +ошибка появилась в 0.8.42. +</para> +<para lang="en"> +compatibility with ngx_http_eval_module; +the bug had appeared in 0.8.42. +</para> +</change> + +</changes> + + +<changes ver="0.8.53" date="2010-10-18"> + +<change type="feature"> +<para lang="ru"> +теперь директива error_page позволяет менять код статуса у редиректа. +</para> +<para lang="en"> +now the "error_page" directive allows to change a status code in a redirect. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива gzip_disable поддерживает специальную маску degradation. +</para> +<para lang="en"> +the "gzip_disable" directive supports special "degradation" mask. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании файлового AIO могла происходить утечка сокетов.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +a socket leak might occurred if file AIO was used.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в первом сервере не была описана директива listen и нигде явно +не описан сервер по умолчанию, то сервером по умолчанию становился +следующий сервер с директивой listen; +ошибка появилась в 0.8.21. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.8.52" date="2010-09-28"> + +<change type="bugfix"> +<para lang="ru"> +nginx использовал режим SSL для listen сокета, если для него был +установлен любой listen-параметр; +ошибка появилась в 0.8.51. +</para> +<para lang="en"> +nginx used SSL mode for a listen socket if any listen option was set; +the bug had appeared in 0.8.51. +</para> +</change> + +</changes> + + +<changes ver="0.8.51" date="2010-09-27"> + +<change type="change"> +<para lang="ru"> +директива secure_link_expires упразднена. +</para> +<para lang="en"> +the "secure_link_expires" directive has been canceled. +</para> +</change> + +<change type="change"> +<para lang="ru"> +уровень логгирования ошибок resolver'а понижен с уровня alert на error. +</para> +<para lang="en"> +a logging level of resolver errors has been lowered from "alert" to "error". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь параметр "ssl" listen-сокета можно устанавливать несколько раз. +</para> +<para lang="en"> +now a listen socket "ssl" parameter may be set several times. +</para> +</change> + +</changes> + + +<changes ver="0.8.50" date="2010-09-02"> + +<change type="feature"> +<para lang="ru"> +директивы secure_link, secure_link_md5 и secure_link_expires +модуля ngx_http_secure_link_module. +</para> +<para lang="en"> +the "secure_link", "secure_link_md5", and "secure_link_expires" directives of +the ngx_http_secure_link_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ключ -q.<br/> +Спасибо Геннадию Махомеду. +</para> +<para lang="en"> +the -q switch.<br/> +Thanks to Gena Makhomed. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании кэширования рабочие процессы и могли зациклиться +во время переконфигурации; +ошибка появилась в 0.8.48. +</para> +<para lang="en"> +worker processes may got caught in an endless loop during reconfiguration, +if a caching was used; +the bug had appeared in 0.8.48. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве gzip_disable.<br/> +Спасибо Derrick Petzold. +</para> +<para lang="en"> +in the "gzip_disable" directive.<br/> +Thanks to Derrick Petzold. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows не мог посылать сигналы stop, quit, reopen, reload процессу, +запущенному в другой сессии. +</para> +<para lang="en"> +nginx/Windows could not send stop, quit, reopen, and reload signals +to a process run in other session. +</para> +</change> + +</changes> + + +<changes ver="0.8.49" date="2010-08-09"> + +<change type="feature"> +<para lang="ru"> +директива image_filter_jpeg_quality поддерживает переменные. +</para> +<para lang="en"> +the "image_filter_jpeg_quality" directive supports variables. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменной $geoip_region_name +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.8.48. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки, перехваченные error_page, кэшировались только до следующего запроса; +ошибка появилась в 0.8.48. +</para> +<para lang="en"> +errors intercepted by error_page were cached only for next request; +the bug had appeared in 0.8.48. +</para> +</change> + +</changes> + + +<changes ver="0.8.48" date="2010-08-03"> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию директива server_name имеет значение пустое имя "".<br/> +Спасибо Геннадию Махомеду. +</para> +<para lang="en"> +now the "server_name" directive default value is an empty name "".<br/> +Thanks to Gena Makhomed. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию директива server_name_in_redirect имеет значение off. +</para> +<para lang="en"> +now the "server_name_in_redirect" directive default value is "off". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $geoip_dma_code, $geoip_area_code и $geoip_region_name.<br/> +Спасибо Christine McGonagle. +</para> +<para lang="en"> +the $geoip_dma_code, $geoip_area_code, and $geoip_region_name variables.<br/> +Thanks to Christine McGonagle. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_pass, fastcgi_pass, uwsgi_pass и scgi_pass не наследовались +в блоки limit_except. +</para> +<para lang="en"> +the "proxy_pass", "fastcgi_pass", "uwsgi_pass", and "scgi_pass" directives +were not inherited inside "limit_except" blocks. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_cache_min_uses, fastcgi_cache_min_uses +uwsgi_cache_min_uses и scgi_cache_min_uses не работали; +ошибка появилась в 0.8.46. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива fastcgi_split_path_info неверно использовала выделения, +если в выделения попадала только часть URI.<br/> +Спасибо Юрию Тарадаю и Frank Enderle. +</para> +<para lang="en"> +the "fastcgi_split_path_info" directive used incorrectly captures, +if only parts of an URI were captured.<br/> +Thanks to Yuriy Taraday and Frank Enderle. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива rewrite не экранировала символ ";" при копировании из URI +в аргументы.<br/> +Спасибо Daisuke Murase. +</para> +<para lang="en"> +the "rewrite" directive did not escape a ";" character during copying +from URI to query string.<br/> +Thanks to Daisuke Murase. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_image_filter_module закрывал соединение, +если изображение было больше размера image_filter_buffer. +</para> +<para lang="en"> +the ngx_http_image_filter_module closed a connection, +if an image was larger than "image_filter_buffer" size. +</para> +</change> + +</changes> + + +<changes ver="0.8.47" date="2010-07-28"> + +<change type="bugfix"> +<para lang="ru"> +переменная $request_time имела неверные значения для подзапросов. +</para> +<para lang="en"> +$request_time variable had invalid values for subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки, перехваченные error_page, не кэшировались. +</para> +<para lang="en"> +errors intercepted by error_page could not be cached. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если использовался параметр max_size, то cache manager мог зациклиться; +ошибка появилась в 0.8.46. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.8.46" date="2010-07-19"> + +<change type="change"> +<para lang="ru"> +директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache +и scgi_no_cache теперь влияют только на сохранение закэшированного ответа. +</para> +<para lang="en"> +now the "proxy_no_cache", "fastcgi_no_cache", "uwsgi_no_cache", and +"scgi_no_cache" directives affect on a cached response saving only. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_cache_bypass, fastcgi_cache_bypass, uwsgi_cache_bypass +и scgi_cache_bypass. +</para> +<para lang="en"> +the "proxy_cache_bypass", "fastcgi_cache_bypass", "uwsgi_cache_bypass", +and "scgi_cache_bypass" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не освобождал память в keys_zone кэшей в случае ошибки работы с +бэкендом: память освобождалась только по истечении времени неактивности +или при недостатке памяти. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.8.45" date="2010-07-13"> + +<change type="feature"> +<para lang="ru"> +улучшения в модуле ngx_http_xslt_filter.<br/> +Спасибо Laurence Rowe. +</para> +<para lang="en"> +ngx_http_xslt_filter improvements.<br/> +Thanks to Laurence Rowe. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответ SSI модуля мог передаваться не полностью после команды include +с параметром wait="yes"; +ошибка появилась в 0.7.25.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +SSI response might be truncated after include with wait="yes"; +the bug had appeared in 0.7.25.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива listen не поддерживала параметр setfib=0. +</para> +<para lang="en"> +the "listen" directive did not support the "setfib=0" parameter. +</para> +</change> + +</changes> + + +<changes ver="0.8.44" date="2010-07-05"> + +<change type="change"> +<para lang="ru"> +теперь nginx по умолчанию не кэширует ответы бэкендов, +в заголовке которых есть строка "Set-Cookie". +</para> +<para lang="en"> +now nginx does not cache by default backend responses, +if they have a "Set-Cookie" header line. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива listen поддерживает параметр setfib.<br/> +Спасибо Андрею Филонову. +</para> +<para lang="en"> +the "listen" directive supports the "setfib" parameter.<br/> +Thanks to Andrew Filonov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива sub_filter могла изменять регистр букв при частичном совпадении. +</para> +<para lang="en"> +the "sub_filter" directive might change character case on partial match. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с HP/UX. +</para> +<para lang="en"> +compatibility with HP/UX. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с компилятором AIX xlC_r. +</para> +<para lang="en"> +compatibility with AIX xlC_r compiler. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx считал большие пакеты SSLv2 как обычные текстовые запросы.<br/> +Спасибо Miroslaw Jaworski. +</para> +<para lang="en"> +nginx treated large SSLv2 packets as plain requests.<br/> +Thanks to Miroslaw Jaworski. +</para> +</change> + +</changes> + + +<changes ver="0.8.43" date="2010-06-30"> + +<change type="feature"> +<para lang="ru"> +ускорение загрузки больших баз geo-диапазонов. +</para> +<para lang="en"> +large geo ranges base loading speed-up. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +перенаправление ошибки в "location /zero {return 204;}" без изменения +кода ответа оставляло тело ошибки; +ошибка появилась в 0.8.42. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог закрывать IPv6 listen сокет во время переконфигурации.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +nginx might close IPv6 listen socket during reconfiguration.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменную $uid_set можно использовать на любой стадии обработки запроса. +</para> +<para lang="en"> +the $uid_set variable may be used at any request processing stage. +</para> +</change> + +</changes> + + +<changes ver="0.8.42" date="2010-06-21"> + +<change type="change"> +<para lang="ru"> +теперь nginx проверяет location'ы, заданные регулярными выражениями, +если запрос полностью совпал с location'ом, заданным строкой префикса. +Предыдущее поведение появилось в 0.7.1. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_scgi_module.<br/> +Спасибо Manlio Perillo. +</para> +<para lang="en"> +the ngx_http_scgi_module.<br/> +Thanks to Manlio Perillo. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в директиве return можно добавлять текст ответа. +</para> +<para lang="en"> +a text answer may be added to a "return" directive. +</para> +</change> + +</changes> + + +<changes ver="0.8.41" date="2010-06-15"> + +<change type="security"> +<para lang="ru"> +рабочий процесс nginx/Windows мог завершаться аварийно при запросе файла +с неверной кодировкой UTF-8. +</para> +<para lang="en"> +nginx/Windows worker might be terminated abnormally if a requested file name +has invalid UTF-8 encoding. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь nginx разрешает использовать пробелы в строке запроса. +</para> +<para lang="en"> +now nginx allows to use spaces in a request line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_redirect неправильно изменяла строку "Refresh" в заголовке +ответа бэкенда.<br/> +Спасибо Андрею Андрееву и Максиму Согину. +</para> +<para lang="en"> +the "proxy_redirect" directive changed incorrectly a backend "Refresh" +response header line.<br/> +Thanks to Andrey Andreew and Max Sogin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не поддерживал путь без имени хоста в +строке "Destination" в заголовке запроса. +</para> +<para lang="en"> +nginx did not support path without host name +in "Destination" request header line. +</para> +</change> + +</changes> + + +<changes ver="0.8.40" date="2010-06-07"> + +<change type="security"> +<para lang="ru"> +теперь nginx/Windows игнорирует имя потока файла по умолчанию.<br/> +Спасибо Jose Antonio Vazquez Gonzalez. +</para> +<para lang="en"> +now nginx/Windows ignores default file stream name.<br/> +Thanks to Jose Antonio Vazquez Gonzalez. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_uwsgi_module.<br/> +Спасибо Roberto De Ioris. +</para> +<para lang="en"> +the ngx_http_uwsgi_module.<br/> +Thanks to Roberto De Ioris. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива fastcgi_param со значением, начинающимся со строки "HTTP_", +изменяет строку заголовка в запросе клиента. +</para> +<para lang="en"> +a "fastcgi_param" directive with value starting with "HTTP_" overrides +a client request header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса +клиента передавались FastCGI-серверу при кэшировании. +</para> +<para lang="en"> +the "If-Modified-Since", "If-Range", etc. client request header lines +were passed to FastCGI-server while caching. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +listen unix domain сокет нельзя было изменить во время переконфигурации.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +listen unix domain socket could not be changed during reconfiguration.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.8.39" date="2010-05-31"> + +<change type="bugfix"> +<para lang="ru"> +наследуемая директива alias неправильно работала во вложенном location'е. +</para> +<para lang="en"> +an inherited "alias" directive worked incorrectly in inclusive location. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в комбинации директив alias с переменными и try_files; +</para> +<para lang="en"> +in "alias" with variables and "try_files" directives combination. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +listen unix domain и IPv6 сокеты не наследовались во время обновления +без перерыва.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +listen unix domain and IPv6 sockets did not inherit while online upgrade.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.8.38" date="2010-05-24"> + +<change type="feature"> +<para lang="ru"> +директивы proxy_no_cache и fastcgi_no_cache. +</para> +<para lang="en"> +the "proxy_no_cache" and "fastcgi_no_cache" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь при использовании переменной $scheme в директиве rewrite +автоматически делается редирект.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +now the "rewrite" directive does a redirect automatically +if the $scheme variable is used.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь задержки в директиве limit_req соответствует описанному алгоритму.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now "limit_req" delay directive conforms to the described algorithm.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменную $uid_got нельзя было использовать в SSI и перловом модулях. +</para> +<para lang="en"> +the $uid_got variable might not be used in the SSI and perl modules. +</para> +</change> + +</changes> + + +<changes ver="0.8.37" date="2010-05-17"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_split_clients_module. +</para> +<para lang="en"> +the ngx_http_split_clients_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива map поддерживает ключи больше 255 символов. +</para> +<para lang="en"> +the "map" directive supports keys more than 255 characters. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx игнорировал значения "private" и "no-store" в строке "Cache-Control" +в заголовке ответа бэкенда. +</para> +<para lang="en"> +nginx ignored the "private" and "no-store" values +in the "Cache-Control" backend response header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр stub в SSI-директиве include не использовался, +если пустой ответ имел код 200. +</para> +<para lang="en"> +a "stub" parameter of an "include" SSI directive was not used, +if empty response has 200 status code. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если проксированный или FastCGI запрос внутренне перенаправлялся +в другой проксированный или FastCGI location, +то в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.8.33.<br/> +Спасибо Yichun Zhang. +</para> +<para lang="en"> +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.<br/> +Thanks to Yichun Zhang. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +соединения IMAP к серверу Zimbra могло зависнуть до таймаута.<br/> +Спасибо Alan Batie. +</para> +<para lang="en"> +IMAP connections may hang until they timed out +while talking to Zimbra server.<br/> +Thanks to Alan Batie. +</para> +</change> + +</changes> + + +<changes ver="0.8.36" date="2010-04-22"> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_dav_module неправильно обрабатывал методы DELETE, COPY и MOVE +для симлинков. +</para> +<para lang="en"> +the ngx_http_dav_module handled incorrectly the DELETE, COPY, and MOVE methods +for symlinks. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль SSI в подзапросах использовал закэшированные в основном запросе +значения переменных $query_string, $arg_... и им подобных. +</para> +<para lang="en"> +values of the $query_string, $arg_..., etc. variables cached in main +request were used by the SSI module in subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +значение переменной повторно экранировалось после каждого вывода +SSI-команды echo; +ошибка появилась в 0.6.14. +</para> +<para lang="en"> +a variable value was repeatedly encoded after each +an "echo" SSI-command output; +the bug had appeared in 0.6.14. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +рабочий процесс зависал при запросе файла FIFO.<br/> +Спасибо Vicente Aguilar и Максиму Дунину. +</para> +<para lang="en"> +a worker process hung if a FIFO file was requested.<br/> +Thanks to Vicente Aguilar and Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с OpenSSL-1.0.0 на 64-битном Linux.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +OpenSSL-1.0.0 compatibility on 64-bit Linux.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-http-cache; +ошибка появилась в 0.8.35. +</para> +<para lang="en"> +nginx could not be built --without-http-cache; +the bug had appeared in 0.8.35. +</para> +</change> + +</changes> + + +<changes ver="0.8.35" date="2010-04-01"> + +<change type="change"> +<para lang="ru"> +теперь charset-фильтр работает до SSI-фильтра. +</para> +<para lang="en"> +now the charset filter runs before the SSI filter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива chunked_transfer_encoding. +</para> +<para lang="en"> +the "chunked_transfer_encoding" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +символ "&" при копировании в аргументы в правилах rewrite не экранировался. +</para> +<para lang="en"> +an "&" character was not escaped when it was copied in arguments part +in a rewrite rule. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог завершаться аварийно во время обработки сигнала или +при использовании директивы timer_resolution на платформах, +не поддерживающих методы kqueue или eventport.<br/> +Спасибо George Xie и Максиму Дунину. +</para> +<para lang="en"> +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.<br/> +Thanks to George Xie and Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если временные файлы и постоянное место хранения располагались на разных +файловых системах, то у постоянных файлов время изменения было неверным.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +if temporary files and permanent storage area resided at different +file systems, then permanent file modification times were incorrect.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_memcached_module мог выдавать ошибку "memcached sent invalid +trailer".<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +ngx_http_memcached_module might issue the error message "memcached sent invalid +trailer".<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не мог собрать библиотеку zlib-1.2.4 из исходных текстов.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +nginx could not built zlib-1.2.4 library using the library sources.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе происходил segmentation fault, +если перед ответом FastCGI-сервера было много вывода в stderr; +ошибка появилась в 0.8.34.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +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.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.8.34" date="2010-03-03"> + +<change type="bugfix"> +<para lang="ru"> +nginx не поддерживал все шифры, используемые в клиентских сертификатах.<br/> +Спасибо Иннокентию Еникееву. +</para> +<para lang="en"> +nginx did not support all ciphers and digests used in client certificates.<br/> +Thanks to Innocenty Enikeew. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx неправильно кэшировал FastCGI-ответы, если перед ответом было +много вывода в stderr. +</para> +<para lang="en"> +nginx cached incorrectly FastCGI responses if there was large stderr output +before response. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не поддерживал HTTPS-рефереры. +</para> +<para lang="en"> +nginx did not support HTTPS referrers. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows мог не находить файлы, если путь в конфигурации был задан +в другом регистре; +ошибка появилась в 0.8.33. +</para> +<para lang="en"> +nginx/Windows might not find file if path in configuration was given +in other character case; +the bug had appeared in 0.8.33. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $date_local выдавала неверное время, +если использовался формат "%s".<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the $date_local variable has an incorrect value, +if the "%s" format was used.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если ssl_session_cache не был установлен или установлен в none, +то при проверке клиентского сертификаты могла происходить +ошибка "session id context uninitialized"; +ошибка появилась в 0.7.1. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +geo-диапазон возвращал значение по умолчанию, если диапазон включал +в себя одну и более сетей размером /16 и не начинался на границе сети +размером /16. +</para> +<para lang="en"> +a geo range returned default value if the range included two or more +/16 networks and did not begin at /16 network boundary. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +блок, используемый в параметре stub в SSI-директиве include, +выводился с MIME-типом "text/plain". +</para> +<para lang="en"> +a block used in a "stub" parameter of an "include" SSI directive +was output with "text/plain" MIME type. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +$r->sleep() не работал; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +$r->sleep() did not work; +the bug had appeared in 0.8.11. +</para> +</change> + +</changes> + + +<changes ver="0.8.33" date="2010-02-01"> + +<change type="security"> +<para lang="ru"> +теперь nginx/Windows игнорирует пробелы в конце URI.<br/> +Спасибо Dan Crowley, Core Security Technologies. +</para> +<para lang="en"> +now nginx/Windows ignores trailing spaces in URI.<br/> +Thanks to Dan Crowley, Core Security Technologies. +</para> +</change> + +<change type="security"> +<para lang="ru"> +теперь nginx/Windows игнорирует короткие имена файлов.<br/> +Спасибо Dan Crowley, Core Security Technologies. +</para> +<para lang="en"> +now nginx/Windows ignores short files names.<br/> +Thanks to Dan Crowley, Core Security Technologies. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь keepalive соединения после запросов POST не запрещаются для +MSIE 7.0+.<br/> +Спасибо Adam Lounds. +</para> +<para lang="en"> +now keepalive connections after POST requests are not disabled for +MSIE 7.0+.<br/> +Thanks to Adam Lounds. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +теперь keepalive соединения запрещены для Safari.<br/> +Спасибо Joshua Sierles. +</para> +<para lang="en"> +now keepalive connections are disabled for Safari.<br/> +Thanks to Joshua Sierles. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если проксированный или FastCGI запрос внутренне перенаправлялся +в другой проксированный или FastCGI location, то переменная +$upstream_response_time могла иметь ненормально большое значение; +ошибка появилась в 0.8.7. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault +при отбрасывания тела запроса; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process, +while discarding a request body; +the bug had appeared in 0.8.11. +</para> +</change> + +</changes> + + +<changes ver="0.8.32" date="2010-01-11"> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +UTF-8 encoding usage in the ngx_http_autoindex_module.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +именованные выделения в регулярных выражениях работали только для +двух переменных.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +regular expression named captures worked for two names only.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь в строке заголовка запроса "Host" используется имя "localhost", +если в директиве auth_http указан unix domain сокет.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now the "localhost" name is used in the "Host" request header line, +if an unix domain socket is defined in the "auth_http" directive.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не поддерживал передачу chunk'ами для 201-ых ответов.<br/> +Спасибо Julian Reich. +</para> +<para lang="en"> +nginx did not support chunked transfer encoding for 201 responses.<br/> +Thanks to Julian Reich. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если директива "expires modified" выставляла дату в прошлом, то в строке +заголовка ответа "Cache-Control" выдавалось отрицательное число.<br/> +Спасибо Алексею Капранову. +</para> +<para lang="en"> +if the "expires modified" set date in the past, then a negative number +was set in the "Cache-Control" response header line.<br/> +Thanks to Alex Kapranoff. +</para> +</change> + +</changes> + + +<changes ver="0.8.31" date="2009-12-23"> + +<change type="feature"> +<para lang="ru"> +теперь директива error_page может перенаправлять ответы со статусом 301 и 302. +</para> +<para lang="en"> +now the "error_page" directive may redirect the 301 and 302 responses. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $geoip_city_continent_code, $geoip_latitude и $geoip_longitude.<br/> +Спасибо Arvind Sundararajan. +</para> +<para lang="en"> +the $geoip_city_continent_code, $geoip_latitude, and $geoip_longitude +variables.<br/> +Thanks to Arvind Sundararajan. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_image_filter_module теперь всегда удаляет +EXIF и другие данные, если они занимают больше 5% в JPEG-файле. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx закрывал соединение при запросе закэшированного +ответа с пустым телом.<br/> +Спасибо Piotr Sikora. +</para> +<para lang="en"> +nginx closed a connection if a cached response had an empty body.<br/> +Thanks to Piotr Sikora. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог не собираться gcc 4.x при использовании оптимизации -O2 и выше.<br/> +Спасибо Максиму Дунину и Денису Латыпову. +</para> +<para lang="en"> +nginx might not be built by gcc 4.x if the -O2 or higher optimization option +was used.<br/> +Thanks to Maxim Dounin and Denis F. Latypoff. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +регулярные выражения в location всегда тестировались с учётом регистра; +ошибка появилась в 0.8.25. +</para> +<para lang="en"> +regular expressions in location were always tested in case-sensitive mode; +the bug had appeared in 0.8.25. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx кэшировал 304 ответ, если в заголовке проксируемого запроса +была строка "If-None-Match".<br/> +Спасибо Tim Dettrick и David Kostal. +</para> +<para lang="en"> +nginx cached a 304 response if there was the "If-None-Match" header line +in a proxied request.<br/> +Thanks to Tim Dettrick and David Kostal. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows пытался дважды удалить временный файл +при перезаписи уже существующего файла. +</para> +<para lang="en"> +nginx/Windows tried to delete a temporary file twice +if the file should replace an already existent file. +</para> +</change> + +</changes> + + +<changes ver="0.8.30" date="2009-12-15"> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию размер буфера директивы large_client_header_buffers +равен 8K.<br/> +Спасибо Andrew Cholakian. +</para> +<para lang="en"> +now the default buffer size of the "large_client_header_buffers" +directive is 8K.<br/> +Thanks to Andrew Cholakian. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +файл conf/fastcgi.conf для простых конфигураций FastCGI. +</para> +<para lang="en"> +the conf/fastcgi.conf for simple FastCGI configurations. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows пытался дважды переименовать временный файл +при перезаписи уже существующего файла. +</para> +<para lang="en"> +nginx/Windows tried to rename a temporary file twice if the file +should replace an already existent file. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки double free or corruption, возникающей, если имя хоста не было найдено; +ошибка появилась в 0.8.22.<br/> +Спасибо Константину Свисту. +</para> +<para lang="en"> +of "double free or corruption" error issued if host could not be resolved; +the bug had appeared in 0.8.22.<br/> +Thanks to Konstantin Svist. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в использовании libatomic на некоторых платформах.<br/> +Спасибо W-Mark Kubacki. +</para> +<para lang="en"> +in libatomic usage on some platforms.<br/> +Thanks to W-Mark Kubacki. +</para> +</change> + +</changes> + + +<changes ver="0.8.29" date="2009-11-30"> + +<change type="change"> +<para lang="ru"> +теперь для проксируемых ответов HTTP/0.9 в лог пишется код ответа "009". +</para> +<para lang="en"> +now the "009" status code is written to an access log for proxied HTTP/0.9 +responses. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы addition_types, charset_types, gzip_types, ssi_types, +sub_filter_types и xslt_types поддерживают параметр "*". +</para> +<para lang="en"> +the "addition_types", "charset_types", "gzip_types", "ssi_types", +"sub_filter_types", and "xslt_types" directives support an "*" parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +использование встроенных атомарных операций GCC 4.1+.<br/> +Спасибо W-Mark Kubacki. +</para> +<para lang="en"> +GCC 4.1+ built-in atomic operations usage.<br/> +Thanks to W-Mark Kubacki. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр --with-libatomic[=DIR] в configure.<br/> +Спасибо W-Mark Kubacki. +</para> +<para lang="en"> +the --with-libatomic[=DIR] option in the configure.<br/> +Thanks to W-Mark Kubacki. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +listen unix domain сокет имели ограниченные права доступа. +</para> +<para lang="en"> +listen unix domain socket had limited access rights. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +закэшированные ответы ответов HTTP/0.9 неправильно обрабатывались. +</para> +<para lang="en"> +cached HTTP/0.9 responses were handled incorrectly. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +именованные выделения в регулярных выражениях, заданные как "?P<...>", +не работали в директиве server_name.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +regular expression named captures given by "?P<...>" did not work +in a "server_name" directive.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.8.28" date="2009-11-23"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-pcre; +ошибка появилась в 0.8.25. +</para> +<para lang="en"> +nginx could not be built with the --without-pcre parameter; +the bug had appeared in 0.8.25. +</para> +</change> + +</changes> + + +<changes ver="0.8.27" date="2009-11-17"> + +<change type="bugfix"> +<para lang="ru"> +регулярные выражения не работали в nginx/Windows; +ошибка появилась в 0.8.25. +</para> +<para lang="en"> +regular expressions did not work in nginx/Windows; +the bug had appeared in 0.8.25. +</para> +</change> + +</changes> + + +<changes ver="0.8.26" date="2009-11-16"> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании выделений в директиве rewrite; +ошибка появилась в 0.8.25. +</para> +<para lang="en"> +in captures usage in "rewrite" directive; +the bug had appeared in 0.8.25. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался без параметра --with-debug; +ошибка появилась в 0.8.25. +</para> +<para lang="en"> +nginx could not be built without the --with-debug option; +the bug had appeared in 0.8.25. +</para> +</change> + +</changes> + + +<changes ver="0.8.25" date="2009-11-16"> + +<change type="change"> +<para lang="ru"> +теперь в лог ошибок не пишется сообщение, если переменная не найдена +с помощью метода $r->variable(). +</para> +<para lang="en"> +now no message is written in an error log if a variable is not found by +$r->variable() method. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_degradation_module. +</para> +<para lang="en"> +the ngx_http_degradation_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +именованные выделения в регулярных выражениях. +</para> +<para lang="en"> +regular expression named captures. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь при использовании переменных в директиве proxy_pass не требуется +задавать URI. +</para> +<para lang="en"> +now URI part is not required a "proxy_pass" directive if variables are used. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь директива msie_padding работает и для Chrome. +</para> +<para lang="en"> +now the "msie_padding" directive works for Chrome too. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе происходил segmentation fault при недостатке памяти; +ошибка появилась в 0.8.18. +</para> +<para lang="en"> +a segmentation fault occurred in a worker process on low memory condition; +the bug had appeared in 0.8.18. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx передавал сжатые ответы клиентам, не поддерживающим сжатие, +при настройках gzip_static on и gzip_vary off; +ошибка появилась в 0.8.16. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.8.24" date="2009-11-11"> + +<change type="bugfix"> +<para lang="ru"> +nginx всегда добавлял строку "Content-Encoding: gzip" в заголовок +304-ых ответов модуля ngx_http_gzip_static_module. +</para> +<para lang="en"> +nginx always added "Content-Encoding: gzip" response header line +in 304 responses sent by ngx_http_gzip_static_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался без параметра --with-debug; +ошибка появилась в 0.8.23. +</para> +<para lang="en"> +nginx could not be built without the --with-debug option; +the bug had appeared in 0.8.23. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр "unix:" в директиве set_real_ip_from неправильно наследовался +с предыдущего уровня. +</para> +<para lang="en"> +the "unix:" parameter of the "set_real_ip_from" directive inherited +incorrectly from previous level. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в resolver'е при определении пустого имени. +</para> +<para lang="en"> +in resolving empty name. +</para> +</change> + +</changes> + + +<changes ver="0.8.23" date="2009-11-11"> + +<change type="security"> +<para lang="ru"> +теперь SSL/TLS renegotiation запрещён.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now SSL/TLS renegotiation is disabled.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +listen unix domain сокет не наследовался во время обновления без перерыва. +</para> +<para lang="en"> +listen unix domain socket did not inherit while online upgrade. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр "unix:" в директиве set_real_ip_from не работал без ещё +одной директивы с любым IP-адресом. +</para> +<para lang="en"> +the "unix:" parameter of the "set_real_ip_from" directive did not without +yet another directive with any IP address. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +segmentation fault и зацикливания в resolver'е. +</para> +<para lang="en"> +segmentation fault and infinite looping in resolver. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в resolver'е.<br/> +Спасибо Артёму Бохану. +</para> +<para lang="en"> +in resolver.<br/> +Thanks to Artem Bokhan. +</para> +</change> + +</changes> + + +<changes ver="0.8.22" date="2009-11-03"> + +<change type="feature"> +<para lang="ru"> +директивы proxy_bind, fastcgi_bind и memcached_bind. +</para> +<para lang="en"> +the "proxy_bind", "fastcgi_bind", and "memcached_bind" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы access и deny поддерживают IPv6. +</para> +<para lang="en"> +the "access" and the "deny" directives support IPv6. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива set_real_ip_from поддерживает IPv6 адреса в заголовках запроса. +</para> +<para lang="en"> +the "set_real_ip_from" directive supports IPv6 addresses in request headers. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр "unix:" в директиве set_real_ip_from. +</para> +<para lang="en"> +the "unix:" parameter of the "set_real_ip_from" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не удалял unix domain сокет после тестирования конфигурации. +</para> +<para lang="en"> +nginx did not delete unix domain socket after configuration testing. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx удалял unix domain сокет во время обновления без перерыва. +</para> +<para lang="en"> +nginx deleted unix domain socket while online upgrade. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +оператор "!-x" не работал.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the "!-x" operator did not work.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault +при использовании limit_rate в HTTPS сервере.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process, +if limit_rate was used in HTTPS server.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при записи в лог переменной $limit_rate +в рабочем процессе происходил segmentation fault.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +a segmentation fault might occur in a worker process +while $limit_rate logging.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если внутри блока server не было директивы listen; +ошибка появилась в 0.8.21. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.8.21" date="2009-10-26"> + +<change type="feature"> +<para lang="ru"> +теперь ключ -V показывает статус поддержки TLS SNI. +</para> +<para lang="en"> +now the "-V" switch shows TLS SNI support. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива listen модуля HTTP поддерживает unix domain сокеты.<br/> +Спасибо Hongli Lai. +</para> +<para lang="en"> +the "listen" directive of the HTTP module supports unix domain sockets.<br/> +Thanks to Hongli Lai. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр "default_server" в директиве listen. +</para> +<para lang="en"> +the "default_server" parameter of the "listen" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь параметр "default" не обязателен для установки параметров listen-сокета. +</para> +<para lang="en"> +now a "default" parameter is not required to set listen socket options. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не поддерживал даты в 2038 году на 32-битных платформах; +</para> +<para lang="en"> +nginx did not support dates in 2038 year on 32-bit platforms; +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +socket leak; +the bug had appeared in 0.8.11. +</para> +</change> + +</changes> + + +<changes ver="0.8.20" date="2009-10-14"> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию используются следующие шифры SSL: "HIGH:!ADH:!MD5". +</para> +<para lang="en"> +now default SSL ciphers are "HIGH:!ADH:!MD5". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_autoindex_module не показывал последний слэш для линков +на каталоги; +ошибка появилась в 0.7.15. +</para> +<para lang="en"> +the ngx_http_autoindex_module did not show the trailing slash in links to +a directory; +the bug had appeared in 0.7.15. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не закрывал лог, заданный параметром конфигурации --error-log-path; +ошибка появилась в 0.7.53. +</para> +<para lang="en"> +nginx did not close a log file set by the --error-log-path configuration option; +the bug had appeared in 0.7.53. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не считал запятую разделителем в строке "Cache-Control" в +заголовке ответа бэкенда. +</para> +<para lang="en"> +nginx did not treat a comma as separator in the "Cache-Control" backend response +header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows мог не создать временный файл, файл в кэше или файл +с помощью директив proxy/fastcgi_store, если рабочий процесс не имел +достаточно прав для работы с каталогами верхнего уровня. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строки "Set-Cookie" и "P3P" в заголовке ответа FastCGI-сервера не скрывались +при кэшировании, если не использовались директивы fastcgi_hide_header +с любыми параметрами. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx неверно считал размер кэша на диске. +</para> +<para lang="en"> +nginx counted incorrectly disk cache size. +</para> +</change> + +</changes> + + +<changes ver="0.8.19" date="2009-10-06"> + +<change type="change"> +<para lang="ru"> +теперь протокол SSLv2 по умолчанию запрещён. +</para> +<para lang="en"> +now SSLv2 protocol is disabled by default. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию используются следующие шифры SSL: +"ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM". +</para> +<para lang="en"> +now default SSL ciphers are "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива limit_req не работала; +ошибка появилась в 0.8.18. +</para> +<para lang="en"> +a "limit_req" directive did not work; +the bug had appeared in 0.8.18. +</para> +</change> + +</changes> + + +<changes ver="0.8.18" date="2009-10-06"> + +<change type="feature"> +<para lang="ru"> +директива read_ahead. +</para> +<para lang="en"> +the "read_ahead" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь можно использовать несколько директив perl_modules. +</para> +<para lang="en"> +now several "perl_modules" directives may be used. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы limit_req_log_level и limit_conn_log_level. +</para> +<para lang="en"> +the "limit_req_log_level" and "limit_conn_log_level" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь директива limit_req соответствует алгоритму leaky bucket.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now "limit_req" directive conforms to the leaky bucket algorithm.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не работал на Linux/sparc.<br/> +Спасибо Marcus Ramberg. +</para> +<para lang="en"> +nginx did not work on Linux/sparc.<br/> +Thanks to Marcus Ramberg. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx слал символ '\0' в строке "Location" в заголовке в ответе на запрос +MKCOL.<br/> +Спасибо Xie Zhenye. +</para> +<para lang="en"> +nginx sent '\0' in a "Location" response header line on MKCOL request.<br/> +Thanks to Xie Zhenye. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +вместо кода ответа 499 в лог записывался код 0; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +zero status code was logged instead of 499 status code; +the bug had appeared in 0.8.11. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +socket leak; +the bug had appeared in 0.8.11. +</para> +</change> + +</changes> + + +<changes ver="0.8.17" date="2009-09-28"> + +<change type="security"> +<para lang="ru"> +теперь символы "/../" запрещены в строке "Destination" в заголовке запроса. +</para> +<para lang="en"> +now "/../" are disabled in "Destination" request header line. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь значение переменной $host всегда в нижнем регистре. +</para> +<para lang="en"> +now $host variable value is always low case. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $ssl_session_id. +</para> +<para lang="en"> +the $ssl_session_id variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +socket leak; +the bug had appeared in 0.8.11. +</para> +</change> + +</changes> + + +<changes ver="0.8.16" date="2009-09-22"> + +<change type="feature"> +<para lang="ru"> +директива image_filter_transparency. +</para> +<para lang="en"> +the "image_filter_transparency" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "addition_types" была неверно названа "addtion_types". +</para> +<para lang="en"> +"addition_types" directive was incorrectly named "addtion_types". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +порчи кэша resolver'а.<br/> +Спасибо Matthew Dempsky. +</para> +<para lang="en"> +resolver cache poisoning.<br/> +Thanks to Matthew Dempsky. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти в resolver'е.<br/> +Спасибо Matthew Dempsky. +</para> +<para lang="en"> +memory leak in resolver.<br/> +Thanks to Matthew Dempsky. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +неверная строка запроса в переменной $request записывалась в access_log +только при использовании error_log на уровне info или debug. +</para> +<para lang="en"> +invalid request line in $request variable was written in access_log +only if error_log was set to "info" or "debug" level. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в поддержке альфа-канала PNG в модуле ngx_http_image_filter_module. +</para> +<para lang="en"> +in PNG alpha-channel support in the ngx_http_image_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx всегда добавлял строку "Vary: Accept-Encoding" в заголовок ответа, +если обе директивы gzip_static и gzip_vary были включены. +</para> +<para lang="en"> +nginx always added "Vary: Accept-Encoding" response header line, +if both "gzip_static" and "gzip_vary" were on. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в поддержке кодировки UTF-8 директивой try_files в nginx/Windows. +</para> +<para lang="en"> +in UTF-8 encoding support by "try_files" directive in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании post_action; +ошибка появилась в 0.8.11.<br/> +Спасибо Игорю Артемьеву. +</para> +<para lang="en"> +in "post_action" directive usage; +the bug had appeared in 0.8.11.<br/> +Thanks to Igor Artemiev. +</para> +</change> + +</changes> + + +<changes ver="0.8.15" date="2009-09-14"> + +<change type="security"> +<para lang="ru"> +при обработке специально созданного запроса +в рабочем процессе мог произойти segmentation fault.<br/> +Спасибо Chris Ries. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +while specially crafted request handling.<br/> +Thanks to Chris Ries. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если были описаны имена .domain.tld, .sub.domain.tld и .domain-some.tld, +то имя .sub.domain.tld попадало под маску .domain.tld. +</para> +<para lang="en"> +if names .domain.tld, .sub.domain.tld, and .domain-some.tld were defined, +then the name .sub.domain.tld was matched by .domain.tld. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в поддержке прозрачности в модуле ngx_http_image_filter_module. +</para> +<para lang="en"> +in transparency support in the ngx_http_image_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в файловом AIO. +</para> +<para lang="en"> +in file AIO. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании X-Accel-Redirect; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +in X-Accel-Redirect usage; +the bug had appeared in 0.8.11. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании встроенного перла; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +in embedded perl module; +the bug had appeared in 0.8.11. +</para> +</change> + +</changes> + + +<changes ver="0.8.14" date="2009-09-07"> + +<change type="bugfix"> +<para lang="ru"> +устаревший закэшированный запрос мог залипнуть в состоянии "UPDATING". +</para> +<para lang="en"> +an expired cached response might stick in the "UPDATING" state. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании error_log на уровне info или debug +в рабочем процессе мог произойти segmentation fault.<br/> +Спасибо Сергею Боченкову. +</para> +<para lang="en"> +a segmentation fault might occur in worker process, +if error_log was set to info or debug level.<br/> +Thanks to Sergey Bochenkov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании встроенного перла; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +in embedded perl module; +the bug had appeared in 0.8.11. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива error_page не перенаправляла ошибку 413; +ошибка появилась в 0.6.10. +</para> +<para lang="en"> +an "error_page" directive did not redirect a 413 error; +the bug had appeared in 0.6.10. +</para> +</change> + +</changes> + + +<changes ver="0.8.13" date="2009-08-31"> + +<change type="bugfix"> +<para lang="ru"> +в директиве "aio sendfile"; +ошибка появилась в 0.8.12. +</para> +<para lang="en"> +in the "aio sendfile" directive; +the bug had appeared in 0.8.12. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался без параметра --with-file-aio на FreeBSD; +ошибка появилась в 0.8.12. +</para> +<para lang="en"> +nginx could not be built without the --with-file-aio option on FreeBSD; +the bug had appeared in 0.8.12. +</para> +</change> + +</changes> + + +<changes ver="0.8.12" date="2009-08-31"> + +<change type="feature"> +<para lang="ru"> +параметр sendfile в директиве aio во FreeBSD. +</para> +<para lang="en"> +the "sendfile" parameter in the "aio" directive on FreeBSD. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании try_files; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +in try_files; +the bug had appeared in 0.8.11. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании memcached; +ошибка появилась в 0.8.11. +</para> +<para lang="en"> +in memcached; +the bug had appeared in 0.8.11. +</para> +</change> + +</changes> + +<changes ver="0.8.11" date="2009-08-28"> + +<change type="change"> +<para lang="ru"> +теперь директива "gzip_disable msie6" не запрещает сжатие для +<nobr>MSIE 6.0 SV1.</nobr> +</para> +<para lang="en"> +now directive "gzip_disable msie6" does not disable gzipping for +<nobr>MSIE 6.0 SV1.</nobr> +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка файлового AIO во FreeBSD и Linux. +</para> +<para lang="en"> +file AIO support on FreeBSD and Linux. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива directio_alignment. +</para> +<para lang="en"> +the "directio_alignment" directive. +</para> +</change> + +</changes> + + +<changes ver="0.8.10" date="2009-08-24"> + +<change type="bugfix"> +<para lang="ru"> +утечек памяти при использовании базы GeoIP City. +</para> +<para lang="en"> +memory leaks if GeoIP City database was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при копировании временных файлов в постоянное место хранения; +ошибка появилась в 0.8.9. +</para> +<para lang="en"> +in copying temporary files to permanent storage area; +the bug had appeared in 0.8.9. +</para> +</change> + +</changes> + + +<changes ver="0.8.9" date="2009-08-17"> + +<change type="feature"> +<para lang="ru"> +теперь стартовый загрузчик кэша работает в отдельном процесс; +это должно улучшить обработку больших кэшей. +</para> +<para lang="en"> +now the start cache loader runs in a separate process; +this should improve large caches handling. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь временные файлы и постоянное место хранения могут располагаться +на разных файловых системах. +</para> +<para lang="en"> +now temporary files and permanent storage area may reside at +different file systems. +</para> +</change> + +</changes> + + +<changes ver="0.8.8" date="2009-08-10"> + +<change type="bugfix"> +<para lang="ru"> +в обработке заголовков ответа, разделённых в FastCGI-записях. +</para> +<para lang="en"> +in handling FastCGI headers split in records. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если запрос обрабатывался в двух проксированных или FastCGI location'ах +и в первом из них использовалось кэширование, +то в рабочем процессе происходил segmentation fault; +ошибка появилась в 0.8.7. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.8.7" date="2009-07-27"> + +<change type="change"> +<para lang="ru"> +минимальная поддерживаемая версия OpenSSL—0.9.7. +</para> +<para lang="en"> +minimum supported OpenSSL version is 0.9.7. +</para> +</change> + +<change type="change"> +<para lang="ru"> +параметр ask директивы ssl_verify_client изменён на параметр optional +и теперь он проверяет клиентский сертификат, если он был предложен.<br/> +Спасибо Brice Figureau. +</para> +<para lang="en"> +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.<br/> +Thanks to Brice Figureau. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $ssl_client_verify.<br/> +Спасибо Brice Figureau. +</para> +<para lang="en"> +the $ssl_client_verify variable.<br/> +Thanks to Brice Figureau. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_crl.<br/> +Спасибо Brice Figureau. +</para> +<para lang="en"> +the "ssl_crl" directive.<br/> +Thanks to Brice Figureau. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр proxy директивы geo. +</para> +<para lang="en"> +the "proxy" parameter of the "geo" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива image_filter поддерживает переменные для задания размеров. +</para> +<para lang="en"> +the "image_filter" directive supports variables for setting size. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +использование переменной $ssl_client_cert портило память; +ошибка появилась в 0.7.7.<br/> +Спасибо Сергею Журавлёву. +</para> +<para lang="en"> +the $ssl_client_cert variable usage corrupted memory; +the bug had appeared in 0.7.7.<br/> +Thanks to Sergey Zhuravlev. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_pass_header и fastcgi_pass_header" не передавали клиенту +строки "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering" и +"X-Accel-Charset" из заголовка ответа бэкенда.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +"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.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке строк "Last-Modified" и "Accept-Ranges" в заголовке ответа бэкенда; +ошибка появилась в 0.7.44.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +in handling "Last-Modified" and "Accept-Ranges" backend response header lines; +the bug had appeared in 0.7.44.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки "[alert] zero size buf" при получении пустых ответы в подзапросах; +ошибка появилась в 0.8.5. +</para> +<para lang="en"> +the "[alert] zero size buf" error if subrequest returns an empty response; +the bug had appeared in 0.8.5. +</para> +</change> + +</changes> + + +<changes ver="0.8.6" date="2009-07-20"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_geoip_module. +</para> +<para lang="en"> +the ngx_http_geoip_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +XSLT-фильтр мог выдавать ошибку "not well formed XML document" для +правильного документа.<br/> +Спасибо Kuramoto Eiji. +</para> +<para lang="en"> +XSLT filter may fail with message "not well formed XML document" +for valid XML document.<br/> +Thanks to Kuramoto Eiji. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в MacOSX, Cygwin и nginx/Windows при проверке location'ов, заданных +регулярным выражением, теперь всегда делается сравнение без учёта +регистра символов. +</para> +<para lang="en"> +now in MacOSX, Cygwin, and nginx/Windows locations given by a regular +expression are always tested in case insensitive mode. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx/Windows игнорирует точки в конце URI.<br/> +Спасибо Hugo Leisink. +</para> +<para lang="en"> +now nginx/Windows ignores trailing dots in URI.<br/> +Thanks to Hugo Leisink. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +имя файла указанного в --conf-path игнорировалось при установке; +ошибка появилась в 0.6.6.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +name of file specified in --conf-path was not honored during installation; +the bug had appeared in 0.6.6.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.8.5" date="2009-07-13"> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx разрешает подчёркивания в методе запроса. +</para> +<para lang="en"> +now nginx allows underscores in a request method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTP Basic-аутентификации на Windows +для неверных имени/пароля возвращалась 500-ая ошибка. +</para> +<para lang="en"> +a 500 error code was returned for invalid login/password while HTTP +Basic authentication on Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответы модуля ngx_http_perl_module не работали в подзапросах. +</para> +<para lang="en"> +ngx_http_perl_module responses did not work in subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_limit_req_module.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +in ngx_http_limit_req_module.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.8.4" date="2009-06-22"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-http-cache; +ошибка появилась в 0.8.3. +</para> +<para lang="en"> +nginx could not be built --without-http-cache; +the bug had appeared in 0.8.3. +</para> +</change> + +</changes> + + +<changes ver="0.8.3" date="2009-06-19"> + +<change type="feature"> +<para lang="ru"> +переменная $upstream_cache_status. +</para> +<para lang="en"> +the $upstream_cache_status variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на MacOSX 10.6. +</para> +<para lang="en"> +nginx could not be built on MacOSX 10.6. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-http-cache; +ошибка появилась в 0.8.2. +</para> +<para lang="en"> +nginx could not be built --without-http-cache; +the bug had appeared in 0.8.2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если использовался перехват 401 ошибки от бэкенда и бэкенд +не возвращал строку "WWW-Authenticate" в заголовке ответа, +то в рабочем процессе происходил segmentation fault.<br/> +Спасибо Евгению Мычло. +</para> +<para lang="en"> +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.<br/> +Thanks to Eugene Mychlo. +</para> +</change> + +</changes> + + +<changes ver="0.8.2" date="2009-06-15"> + +<change type="bugfix"> +<para lang="ru"> +во взаимодействии open_file_cache и proxy/fastcgi кэша на старте. +</para> +<para lang="en"> +in open_file_cache and proxy/fastcgi cache interaction on start up. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +open_file_cache мог кэшировать открытые файлы очень долго; +ошибка появилась в 0.7.4. +</para> +<para lang="en"> +open_file_cache might cache open file descriptors too long; +the bug had appeared in 0.7.4. +</para> +</change> + +</changes> + + +<changes ver="0.8.1" date="2009-06-08"> + +<change type="feature"> +<para lang="ru"> +параметр updating в директивах proxy_cache_use_stale и fastcgi_cache_use_stale. +</para> +<para lang="en"> +the "updating" parameter in "proxy_cache_use_stale" and +"fastcgi_cache_use_stale" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса +клиента передавались бэкенду при кэшировании, если не использовалась +директива proxy_set_header с любыми параметрами. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда не скрывались +при кэшировании, если не использовались директивы +proxy_hide_header/fastcgi_hide_header с любыми параметрами. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_image_filter_module не понимал формат GIF87a.<br/> +Спасибо Денису Ильиных. +</para> +<para lang="en"> +the ngx_http_image_filter_module did not support GIF87a format.<br/> +Thanks to Denis Ilyinyh. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Solaris 10 и более ранних; +ошибка появилась в 0.7.56. +</para> +<para lang="en"> +nginx could not be built modules on Solaris 10 and early; +the bug had appeared in 0.7.56. +</para> +</change> + +</changes> + + +<changes ver="0.8.0" date="2009-06-02"> + +<change type="feature"> +<para lang="ru"> +директива keepalive_requests. +</para> +<para lang="en"> +the "keepalive_requests" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива limit_rate_after.<br/> +Спасибо Ivan Debnar. +</para> +<para lang="en"> +the "limit_rate_after" directive.<br/> +Thanks to Ivan Debnar. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +XSLT-фильтр не работал в подзапросах. +</para> +<para lang="en"> +XLST filter did not work in subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +обработке относительных путей в nginx/Windows. +</para> +<para lang="en"> +in relative paths handling in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в proxy_store, fastcgi_store, proxy_cache и fastcgi_cache в nginx/Windows. +</para> +<para lang="en"> +in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке ошибок выделения памяти.<br/> +Спасибо Максиму Дунину и Кириллу Коринскому. +</para> +<para lang="en"> +in memory allocation error handling.<br/> +Thanks to Maxim Dounin and Kirill A. Korinskiy. +</para> +</change> + +</changes> + + +<changes ver="0.7.59" date="2009-05-25"> + +<change type="feature"> +<para lang="ru"> +директивы proxy_cache_methods и fastcgi_cache_methods. +</para> +<para lang="en"> +the "proxy_cache_methods" and "fastcgi_cache_methods" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов; +ошибка появилась в 0.7.25.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +socket leak; +the bug had appeared in 0.7.25.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменной $request_body +в рабочем процессе происходил segmentation fault, +если в запросе не было тела; +ошибка появилась в 0.7.58. +</para> +<para lang="en"> +a segmentation fault occurred in worker process, +<nobr>if a request</nobr> had no body and the $request_body +variable was used;<br/> +the bug had appeared in 0.7.58. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +SSL-модули могли не собираться на Solaris и Linux; +ошибка появилась в 0.7.56. +</para> +<para lang="en"> +the SSL modules might not built on Solaris and Linux;<br/> +the bug had appeared in 0.7.56. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответы модуля ngx_http_xslt_filter_module не обрабатывались +SSI-, charset- и gzip-фильтрами. +</para> +<para lang="en"> +ngx_http_xslt_filter_module responses were not handled by SSI, charset, +and gzip filters. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива charset не ставила кодировку для ответов модуля +ngx_http_gzip_static_module. +</para> +<para lang="en"> +a "charset" directive did not set a charset to ngx_http_gzip_static_module +responses. +</para> +</change> + +</changes> + + +<changes ver="0.7.58" date="2009-05-18"> + +<change type="feature"> +<para lang="ru"> +директива listen почтового прокси-сервера поддерживает IPv6. +</para> +<para lang="en"> +a "listen" directive of the mail proxy module supports IPv6. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива image_filter_jpeg_quality. +</para> +<para lang="en"> +the "image_filter_jpeg_quality" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива client_body_in_single_buffer. +</para> +<para lang="en"> +the "client_body_in_single_buffer" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $request_body. +</para> +<para lang="en"> +the $request_body variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_autoindex_module в ссылках на имена файлов, +содержащих символ ":". +</para> +<para lang="en"> +in ngx_http_autoindex_module in file name links +having a ":" symbol in the name. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +процедура "make upgrade" не работала; +ошибка появилась в 0.7.53.<br/> +Спасибо Денису Латыпову. +</para> +<para lang="en"> +"make upgrade" procedure did not work; +the bug had appeared in 0.7.53.<br/> +Thanks to Denis F. Latypoff. +</para> +</change> + +</changes> + + +<changes ver="0.7.57" date="2009-05-12"> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении ошибок модуля ngx_http_image_filter_module +в именованный location в рабочем процессе происходил floating-point fault; +ошибка появилась в 0.7.56. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.7.56" date="2009-05-11"> + +<change type="feature"> +<para lang="ru"> +nginx/Windows поддерживает IPv6 в директиве listen модуля HTTP. +</para> +<para lang="en"> +nginx/Windows supports IPv6 in a "listen" directive of the HTTP module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_image_filter_module. +</para> +<para lang="en"> +in ngx_http_image_filter_module. +</para> +</change> + +</changes> + + +<changes ver="0.7.55" date="2009-05-06"> + +<change type="bugfix"> +<para lang="ru"> +параметры http_XXX в директивах proxy_cache_use_stale +и fastcgi_cache_use_stale не работали. +</para> +<para lang="en"> +the http_XXX parameters in "proxy_cache_use_stale" and +"fastcgi_cache_use_stale" directives did not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +fastcgi кэш не кэшировал ответы, состоящие только из заголовка. +</para> +<para lang="en"> +fastcgi cache did not cache header only responses. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки "select() failed (9: Bad file descriptor)" в nginx/Unix +и "select() failed (10038: ...)" в nginx/Windows. +</para> +<para lang="en"> +of "select() failed (9: Bad file descriptor)" error in nginx/Unix +and "select() failed (10038: ...)" error in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы debug_connection +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.7.54. +</para> +<para lang="en"> +a segmentation fault might occur in worker process, +if an "debug_connection" directive was used; +the bug had appeared in 0.7.54. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в сборке модуля ngx_http_image_filter_module. +</para> +<para lang="en"> +fix ngx_http_image_filter_module building errors. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +файлы больше 2G не передавались с использованием $r->sendfile.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the files bigger than 2G could not be transferred using $r->sendfile.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.7.54" date="2009-05-01"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_image_filter_module. +</para> +<para lang="en"> +the ngx_http_image_filter_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_ignore_headers и fastcgi_ignore_headers. +</para> +<para lang="en"> +the "proxy_ignore_headers" and "fastcgi_ignore_headers" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменных "open_file_cache_errors on" +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.7.53. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "port_in_redirect off" не работала; +ошибка появилась в 0.7.39. +</para> +<para lang="en"> +the "port_in_redirect off" directive did not work; +the bug had appeared in 0.7.39. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +улучшение обработки ошибок метода select. +</para> +<para lang="en"> +improve handling of "select" method errors. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки "select() failed (10022: ...)" в nginx/Windows. +</para> +<para lang="en"> +of "select() failed (10022: ...)" error in nginx/Windows. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в текстовых сообщениях об ошибках в nginx/Windows; +ошибка появилась в 0.7.53. +</para> +<para lang="en"> +in error text descriptions in nginx/Windows; +the bug had appeared in 0.7.53. +</para> +</change> + +</changes> + + +<changes ver="0.7.53" date="2009-04-27"> + +<change type="change"> +<para lang="ru"> +теперь лог, указанный в --error-log-path, создаётся с самого начала работы. +</para> +<para lang="en"> +now a log set by --error-log-path is created from the very start-up. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь ошибки и предупреждения при старте записываются в error_log +и выводятся на stderr. +</para> +<para lang="en"> +now the start up errors and warnings are outputted to an error_log and stderr. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +при сборке с пустым параметром --prefix= nginx использует как префикс каталог, +в котором он был запущен. +</para> +<para lang="en"> +the empty --prefix= configure parameter forces nginx to use a directory +where it was run as prefix. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ключ -p. +</para> +<para lang="en"> +the -p switch. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ключ -s на Unix-платформах. +</para> +<para lang="en"> +the -s switch on Unix platforms. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ключи -? и -h.<br/> +Спасибо Jerome Loyet. +</para> +<para lang="en"> +the -? and -h switches.<br/> +Thanks to Jerome Loyet. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь ключи можно задавать в сжатой форме. +</para> +<para lang="en"> +now switches may be set in condensed form. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx/Windows не работал, если файл конфигурации был задан ключом -c. +</para> +<para lang="en"> +nginx/Windows did not work if configuration file was given by the -c switch. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директив proxy_store, fastcgi_store, +proxy_cache или fastcgi_cache временные файлы могли не удаляться.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +temporary files might be not removed if the "proxy_store", "fastcgi_store", +"proxy_cache", or "fastcgi_cache" were used.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в заголовке Auth-Method запроса серверу аутентификации почтового +прокси-сервера передавалось неверное значение; +ошибка появилась в 0.7.34.<br/> +Спасибо Simon Lecaille. +</para> +<para lang="en"> +an incorrect value was passed to mail proxy authentication server +in "Auth-Method" header line; +the bug had appeared<br/> +in 0.7.34.<br/> +Thanks to Simon Lecaille. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при логгировании на Linux не писались текстовые описания системных ошибок; +ошибка появилась в 0.7.45. +</para> +<para lang="en"> +system error text descriptions were not logged on Linux;<br/> +the bug had appeared in 0.7.45. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива fastcgi_cache_min_uses не работала.<br/> +Спасибо Андрею Воробьёву. +</para> +<para lang="en"> +the "fastcgi_cache_min_uses" directive did not work.<br/> +Thanks to Andrew Vorobyoff. +</para> +</change> + +</changes> + + +<changes ver="0.7.52" date="2009-04-20"> + +<change type="feature"> +<para lang="ru"> +первая бинарная версия под Windows. +</para> +<para lang="en"> +the first native Windows binary release. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +корректная обработка метода HEAD при кэшировании. +</para> +<para lang="en"> +in processing HEAD method while caching. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +корректная обработка строк "If-Modified-Since", "If-Range" и им подобных +в заголовке запроса клиента при кэшировании. +</para> +<para lang="en"> +in processing the "If-Modified-Since", "If-Range", etc. client request +header lines while caching. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь строки "Set-Cookie" и "P3P" скрываются в заголовке ответа +для закэшированных ответов. +</para> +<para lang="en"> +now the "Set-Cookie" and "P3P" header lines are hidden in cacheable responses. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если nginx был собран с модулем ngx_http_perl_module и perl +поддерживал потоки, то при выходе основного процесса +могла выдаваться ошибка "panic: MUTEX_LOCK". +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-http-cache; +ошибка появилась в 0.7.48. +</para> +<para lang="en"> +nginx could not be built --without-http-cache; +the bug had appeared in 0.7.48. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.7.42. +</para> +<para lang="en"> +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.7.42. +</para> +</change> + +</changes> + + +<changes ver="0.7.51" date="2009-04-12"> + +<change type="feature"> +<para lang="ru"> +директива try_files поддерживает код ответа в последнем параметре. +</para> +<para lang="en"> +the "try_files" directive supports a response code in the fallback parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь в директиве return можно использовать любой код ответа. +</para> +<para lang="en"> +now any response code can be used in the "return" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива error_page делала внешний редирект без строки запроса; +ошибка появилась в 0.7.44. +</para> +<para lang="en"> +the "error_page" directive made an external redirect without query string; +the bug had appeared in 0.7.44. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если сервера слушали на нескольких явно описанных адресах, +то виртуальные сервера могли не работать; +ошибка появилась в 0.7.39. +</para> +<para lang="en"> +if servers listened on several defined explicitly addresses, +then virtual servers might not work; +the bug had appeared in 0.7.39. +</para> +</change> + +</changes> + + +<changes ver="0.7.50" date="2009-04-06"> + +<change type="bugfix"> +<para lang="ru"> +переменные $arg_... не работали; +ошибка появилась в 0.7.49. +</para> +<para lang="en"> +the $arg_... variables did not work; +the bug had appeared in 0.7.49. +</para> +</change> + +</changes> + + +<changes ver="0.7.49" date="2009-04-06"> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменных $arg_... +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.7.48. +</para> +<para lang="en"> +a segmentation fault might occur in worker process, +if the $arg_... variables were used; +the bug had appeared in 0.7.48. +</para> +</change> + +</changes> + + +<changes ver="0.7.48" date="2009-04-06"> + +<change type="feature"> +<para lang="ru"> +директива proxy_cache_key. +</para> +<para lang="en"> +the "proxy_cache_key" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx учитывает при кэшировании строки "X-Accel-Expires", +"Expires" и "Cache-Control" в заголовке ответа бэкенда. +</para> +<para lang="en"> +now nginx takes into account the "X-Accel-Expires", "Expires", and +"Cache-Control" header lines in a backend response. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx кэширует только ответы на запросы GET. +</para> +<para lang="en"> +now nginx caches responses for the GET requests only. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива fastcgi_cache_key не наследовалась. +</para> +<para lang="en"> +the "fastcgi_cache_key" directive was not inherited. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменные $arg_... не работали с SSI-подзапросами.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the $arg_... variables did not work with SSI subrequests.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с библиотекой uclibc.<br/> +Спасибо Timothy Redaelli. +</para> +<para lang="en"> +nginx could not be built with uclibc library.<br/> +Thanks to Timothy Redaelli. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на OpenBSD; +ошибка появилась <nobr>в 0.7.46.</nobr> +</para> +<para lang="en"> +nginx could not be built on OpenBSD; +the bug had <nobr>appeared in 0.7.46.</nobr> +</para> +</change> + +</changes> + + +<changes ver="0.7.47" date="2009-04-01"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на FreeBSD 6 и более ранних версиях; +ошибка появилась в 0.7.46. +</para> +<para lang="en"> +nginx could not be built on FreeBSD 6 and early versions; +the bug had appeared in 0.7.46. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на MacOSX; +ошибка появилась в 0.7.46. +</para> +<para lang="en"> +nginx could not be built on MacOSX; +the bug had <nobr>appeared in 0.7.46.</nobr> +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если использовался параметр max_size, то cache manager мог удалить весь кэш; +ошибка появилась в 0.7.46. +</para> +<para lang="en"> +if the "max_size" parameter was set, then the cache manager might purge +a whole cache; +the bug had appeared in 0.7.46. +</para> +</change> + +<change type="change"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если директивы proxy_cache/fastcgi_cache +и proxy_cache_valid/ fastcgi_cache_valid не были заданы на одном уровне; +ошибка появилась в 0.7.46. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault +при перенаправлении запроса проксированному или FastCGI-серверу +с помощью error_page или try_files; +ошибка появилась в 0.7.44. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.7.46" date="2009-03-30"> + +<change type="bugfix"> +<para lang="ru"> +архив предыдущего релиза был неверным. +</para> +<para lang="en"> +the previous release tarball was incorrect. +</para> +</change> + +</changes> + + +<changes ver="0.7.45" date="2009-03-30"> + +<change type="change"> +<para lang="ru"> +теперь директивы proxy_cache и proxy_cache_valid можно задавать +на разных уровнях. +</para> +<para lang="en"> +now the "proxy_cache" and the "proxy_cache_valid" directives can be set on +different levels. +</para> +</change> + +<change type="change"> +<para lang="ru"> +параметр clean_time в директиве proxy_cache_path удалён. +</para> +<para lang="en"> +the "clean_time" parameter of the "proxy_cache_path" directive is canceled. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр max_size в директиве proxy_cache_path. +</para> +<para lang="en"> +the "max_size" parameter of the "proxy_cache_path" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +предварительная поддержка кэширования в модуле ngx_http_fastcgi_module. +</para> +<para lang="en"> +the ngx_http_fastcgi_module preliminary cache support. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь при ошибках выделения в разделяемой памяти в логе указываются +названия директивы и зоны. +</para> +<para lang="en"> +now on shared memory allocation errors directive and zone names are logged. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "add_header last-modified ''" не удаляла в заголовке ответа +строку "Last-Modified"; +ошибка появилась в 0.7.44. +</para> +<para lang="en"> +the directive "add_header last-modified ''" did not delete a "Last-Modified" +response header line; +the bug had appeared in 0.7.44. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве auth_basic_user_file не работал относительный путь, +заданный строкой без переменных; +ошибка появилась в 0.7.44.<br/> +Спасибо Jerome Loyet. +</para> +<para lang="en"> +a relative path in the "auth_basic_user_file" directive given without variables +did not work; +the bug had appeared in 0.7.44.<br/> +Thanks to Jerome Loyet. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве alias, заданной переменными +без ссылок на выделения в регулярных выражениях; +ошибка появилась в 0.7.42. +</para> +<para lang="en"> +in an "alias" directive given using variables +without references to captures of regular expressions; +the bug had appeared in 0.7.42. +</para> +</change> + +</changes> + + +<changes ver="0.7.44" date="2009-03-23"> + +<change type="feature"> +<para lang="ru"> +предварительная поддержка кэширования в модуле ngx_http_proxy_module. +</para> +<para lang="en"> +the ngx_http_proxy_module preliminary cache support. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр --with-pcre в configure. +</para> +<para lang="en"> +the --with-pcre option in the configure. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь директива try_files может быть использована на уровне server. +</para> +<para lang="en"> +the "try_files" directive is now allowed on the server block level. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива try_files неправильно обрабатывала строку запроса в последнем +параметре. +</para> +<para lang="en"> +the "try_files" directive handled incorrectly a query string +in a fallback parameter. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива try_files могла неверно тестировать каталоги. +</para> +<para lang="en"> +the "try_files" directive might test incorrectly directories. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если для пары адрес:порт описан только один сервер, то выделения +в регулярных выражениях в директиве server_name не работали. +</para> +<para lang="en"> +if there was a single server for given address:port pair, +then captures in regular expressions in a "server_name" directive did not work. +</para> +</change> + +</changes> + + +<changes ver="0.7.43" date="2009-03-18"> + +<change type="bugfix"> +<para lang="ru"> +запрос обрабатывался неверно, если директива root использовала переменные; +ошибка появилась в 0.7.42. +</para> +<para lang="en"> +a request was handled incorrectly, if a "root" directive used variables; +the bug had appeared in 0.7.42. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если сервер слушал на адресах типа "*", то значение переменной $server_addr +было "0.0.0.0"; +ошибка появилась в 0.7.36. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.7.42" date="2009-03-16"> + +<change type="change"> +<para lang="ru"> +ошибка "Invalid argument", возвращаемая setsockopt(TCP_NODELAY) на Solaris, +теперь игнорируется. +</para> +<para lang="en"> +now the "Invalid argument" error returned by setsockopt(TCP_NODELAY) on Solaris, +is ignored. +</para> +</change> + +<change type="change"> +<para lang="ru"> +при отсутствии файла, указанного в директиве auth_basic_user_file, +теперь возвращается ошибка 403 вместо 500. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива auth_basic_user_file поддерживает переменные. +<br/> +Спасибо Кириллу Коринскому. +</para> +<para lang="en"> +the "auth_basic_user_file" directive supports variables.<br/> +Thanks to Kirill A. Korinskiy. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива listen поддерживает параметр ipv6only.<br/> +Спасибо Zhang Hua. +</para> +<para lang="en"> +the "listen" directive supports the "ipv6only" parameter. +<br/> +Thanks to Zhang Hua. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве alias со ссылками на выделения в регулярных выражениях; +ошибка появилась в 0.7.40. +</para> +<para lang="en"> +in an "alias" directive with references to captures of regular expressions; +the bug had appeared in 0.7.40. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с Tru64 UNIX.<br/> +Спасибо Dustin Marquess. +</para> +<para lang="en"> +compatibility with Tru64 UNIX.<br/> +Thanks to Dustin Marquess. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался без библиотеки PCRE; +ошибка появилась в 0.7.41. +</para> +<para lang="en"> +nginx could not be built without PCRE library; +the bug had appeared in 0.7.41. +</para> +</change> + +</changes> + + +<changes ver="0.7.41" date="2009-03-11"> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если в server_name или location были выделения в регулярных выражениях; +ошибка появилась в 0.7.40.<br/> +Спасибо Владимиру Сопоту. +</para> +<para lang="en"> +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.<br/> +Thanks to Vladimir Sopot. +</para> +</change> + +</changes> + + +<changes ver="0.7.40" date="2009-03-09"> + +<change type="feature"> +<para lang="ru"> +директива location поддерживает выделения в регулярных выражениях. +</para> +<para lang="en"> +the "location" directive supports captures in regular expressions. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директиву alias с ссылками на выделения в регулярных выражениях +можно использовать внутри location'а, заданного регулярным выражением +с выделениями. +</para> +<para lang="en"> +an "alias" directive with capture references may be used inside +a location given by a regular expression with captures. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server_name поддерживает выделения в регулярных выражениях. +</para> +<para lang="en"> +the "server_name" directive supports captures in regular expressions. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +модуль ngx_http_autoindex_module не показывал последний слэш для каталогов +на файловой системе XFS; +ошибка появилась в 0.7.15.<br/> +Спасибо Дмитрию Кузьменко. +</para> +<para lang="en"> +the ngx_http_autoindex_module did not show the trailing slash in directories +on XFS filesystem; +the issue had appeared in 0.7.15.<br/> +Thanks to Dmitry Kuzmenko. +</para> +</change> + +</changes> + + +<changes ver="0.7.39" date="2009-03-02"> + +<change type="bugfix"> +<para lang="ru"> +при включённом сжатии большие ответы с использованием SSI могли зависать; +ошибка появилась в 0.7.28.<br/> +Спасибо Артёму Бохану. +</para> +<para lang="en"> +large response with SSI might hang, if gzipping was enabled; +the bug had appeared in 0.7.28.<br/> +Thanks to Artem Bokhan. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании коротких статических вариантов в директиве try_files +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process, +if short static variants are used in a "try_files" directive. +</para> +</change> + +</changes> + + +<changes ver="0.7.38" date="2009-02-23"> + +<change type="feature"> +<para lang="ru"> +логгирование ошибок аутентификации. +</para> +<para lang="en"> +authentication failures logging. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +имя/пароль, заданные в auth_basic_user_file, игнорировались после нечётного +числа пустых строк.<br/> +Спасибо Александру Загребину. +</para> +<para lang="en"> +name/password in auth_basic_user_file were ignored after odd number +of empty lines.<br/> +Thanks to Alexander Zagrebin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании длинного пути в unix domain сокете +в главном процессе происходил segmentation fault; +ошибка появилась в 0.7.36. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.7.37" date="2009-02-21"> + +<change type="bugfix"> +<para lang="ru"> +директивы, использующие upstream'ы, не работали; +ошибка появилась в 0.7.36. +</para> +<para lang="en"> +directives using upstreams did not work; +the bug had appeared in 0.7.36. +</para> +</change> + +</changes> + + +<changes ver="0.7.36" date="2009-02-21"> + +<change type="feature"> +<para lang="ru"> +предварительная поддержка IPv6; +директива listen модуля HTTP поддерживает IPv6. +</para> +<para lang="en"> +a preliminary IPv6 support; +the "listen" directive of the HTTP module supports IPv6. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $ancient_browser не работала для браузеров, заданных +директивами modern_browser. +</para> +<para lang="en"> +the $ancient_browser variable did not work for browsers +preset by a "modern_browser" directives. +</para> +</change> + +</changes> + + +<changes ver="0.7.35" date="2009-02-16"> + +<change type="bugfix"> +<para lang="ru"> +директива ssl_engine не использовала SSL-акселератор +для асимметричных шифров.<br/> +Спасибо Marcin Gozdalik. +</para> +<para lang="en"> +a "ssl_engine" directive did not use a SSL-accelerator +for asymmetric ciphers.<br/> +Thanks to Marcin Gozdalik. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива try_files выставляла MIME-type, исходя из расширения +первоначального запроса. +</para> +<para lang="en"> +a "try_files" directive set MIME type depending on an +original request extension. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директивах server_name, valid_referers и map +неправильно обрабатывались имена вида "*domain.tld", +если использовались маски вида ".domain.tld" и ".subdomain.domain.tld"; +ошибка появилась в 0.7.9. +</para> +<para lang="en"> +"*domain.tld" names were handled incorrectly in +"server_name", "valid_referers", and "map" directives, +if ".domain.tld" and ".subdomain.domain.tld" wildcards were used; +<nobr>the bug had</nobr> appeared in 0.7.9. +</para> +</change> + +</changes> + + +<changes ver="0.7.34" date="2009-02-10"> + +<change type="feature"> +<para lang="ru"> +параметр off в директиве if_modified_since. +</para> +<para lang="en"> +the "off" parameter of the "if_modified_since" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь после команды XCLIENT nginx посылает команду HELO/EHLO.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now nginx sends an HELO/EHLO command after a XCLIENT command.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка Microsoft-специфичного режима +<nobr>"AUTH LOGIN with User Name"</nobr> +в почтовом прокси-сервере.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +Microsoft specific "AUTH LOGIN with User Name" mode support +in mail proxy server.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве rewrite, возвращающей редирект, старые аргументы присоединялись +к новым через символ "?" вместо "&";<br/> +ошибка появилась в 0.1.18.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +in a redirect rewrite directive original arguments were concatenated with +new arguments by a "?" rather than an "&";<br/> +the bug had appeared in 0.1.18.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на AIX. +</para> +<para lang="en"> +nginx could not be built on AIX. +</para> +</change> + +</changes> + + +<changes ver="0.7.33" date="2009-02-02"> + +<change type="bugfix"> +<para lang="ru"> +если на запрос с телом возвращался редирект, то ответ мог быть двойным +при использовании методов epoll или rtsig.<br/> +Спасибо Eden Li. +</para> +<para lang="en"> +a double response might be returned if the epoll or rtsig methods are used +and a redirect was returned to a request with body.<br/> +Thanks to Eden Li. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +для некоторых типов редиректов в переменной $sent_http_location +было пустое значение. +</para> +<para lang="en"> +the $sent_http_location variable was empty for some redirects types. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы resolver в SMTP прокси-сервере +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if "resolver" directive was used in SMTP proxy. +</para> +</change> + +</changes> + + +<changes ver="0.7.32" date="2009-01-26"> + +<change type="feature"> +<para lang="ru"> +теперь в директиве try_files можно явно указать проверку каталога. +</para> +<para lang="en"> +now a directory existence testing can be set explicitly +in the "try_files" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +fastcgi_store не всегда сохранял файлы. +</para> +<para lang="en"> +fastcgi_store stored files not always. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в гео-диапазонах. +</para> +<para lang="en"> +in geo ranges. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки выделения больших блоков в разделяемой памяти, +если nginx был собран без отладки.<br/> +Спасибо Андрею Квасову. +</para> +<para lang="en"> +in shared memory allocations if nginx was built without debugging.<br/> +Thanks to Andrey Kvasov. +</para> +</change> + +</changes> + + +<changes ver="0.7.31" date="2009-01-19"> + +<change type="change"> +<para lang="ru"> +теперь директива try_files проверяет только файлы, игнорируя каталоги. +</para> +<para lang="en"> +now the "try_files" directive tests files only and ignores directories. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива fastcgi_split_path_info. +</para> +<para lang="en"> +the "fastcgi_split_path_info" directive. +</para> +</change> + +<change> +<para lang="ru"> +Исправления в поддержке строки "Expect" в заголовке запроса. +</para> +<para lang="en"> +Bugfixes in an "Expect" request header line support. +</para> +</change> + +<change> +<para lang="ru"> +Исправления в гео-диапазонах. +</para> +<para lang="en"> +Bugfixes in geo ranges. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при отсутствии ответа ngx_http_memcached_module возвращал +в теле ответа строку "END" вместо 404-ой страницы по умолчанию; +ошибка появилась в 0.7.18.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +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.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проксировании SMTP nginx выдавал сообщение +<nobr>"250 2.0.0 OK"</nobr> вместо "235 2.0.0 OK"; +ошибка появилась в 0.7.22.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +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.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + + +<changes ver="0.7.30" date="2008-12-24"> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе происходил segmentation fault, +если в директивах fastcgi_pass или proxy_pass +использовались переменные и имя хоста должно было резолвиться; +ошибка появилась в 0.7.29. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.7.29" date="2008-12-24"> + +<change type="bugfix"> +<para lang="ru"> +директивы fastcgi_pass и proxy_pass не поддерживали переменные +при использовании unix domain сокетов. +</para> +<para lang="en"> +the "fastcgi_pass" and "proxy_pass" directives did not support +variables if unix domain sockets were used. +</para> +</change> + +<change> +<para lang="ru"> +Исправления в обработке подзапросов; +ошибки появились в 0.7.25. +</para> +<para lang="en"> +Bugfixes in subrequest processing; +the bugs had appeared in 0.7.25. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответ "100 Continue" выдавался для запросов версии HTTP/1.0;<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +a "100 Continue" response was issued for HTTP/1.0 requests;<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в выделении памяти в модуле ngx_http_gzip_filter_module под Cygwin. +</para> +<para lang="en"> +in memory allocation in the ngx_http_gzip_filter_module on Cygwin. +</para> +</change> + +</changes> + + +<changes ver="0.7.28" date="2008-12-22"> + +<change type="change"> +<para lang="ru"> +в выделении памяти в модуле ngx_http_gzip_filter_module. +</para> +<para lang="en"> +in memory allocation in the ngx_http_gzip_filter_module. +</para> +</change> + +<change type="change"> +<para lang="ru"> +значения по умолчанию для директивы gzip_buffers изменены с 4 4k/8k +на 32 4k или 16 8k. +</para> +<para lang="en"> +the default "gzip_buffers" directive values have been changed +to 32 4k or 16 8k from 4 4k/8k. +</para> +</change> + +</changes> + + +<changes ver="0.7.27" date="2008-12-15"> + +<change type="feature"> +<para lang="ru"> +директива try_files. +</para> +<para lang="en"> +the "try_files" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива fastcgi_pass поддерживает переменные. +</para> +<para lang="en"> +variables support in the "fastcgi_pass" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь директива geo может брать адрес из переменной.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +now the $geo variable may get an address from a variable.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь модификатор location'а можно указывать без пробела перед названием. +</para> +<para lang="en"> +now a location's modifier may be used without space before name. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $upstream_response_length. +</para> +<para lang="en"> +the $upstream_response_length variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь директива add_header не добавляет пустое значение. +</para> +<para lang="en"> +now a "add_header" directive does not add an empty value. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при запросе файла нулевой длины nginx закрывал соединение, ничего не передав; +ошибка появилась в 0.7.25. +</para> +<para lang="en"> +if zero length static file was requested, then nginx just closed connection; +the bug had appeared in 0.7.25. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +метод MOVE не мог перемещать файл в несуществующий каталог. +</para> +<para lang="en"> +a MOVE method could not move file in non-existent directory. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в сервере не был описан ни один именованный location, +но такой location использовался в директиве error_page, +то в рабочем процессе происходил segmentation fault.<br/> +Спасибо Сергею Боченкову. +</para> +<para lang="en"> +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.<br/> +Thanks to Sergey Bochenkov. +</para> +</change> + +</changes> + + +<changes ver="0.7.26" date="2008-12-08"> + +<change type="bugfix"> +<para lang="ru"> +в обработке подзапросов; +ошибка появилась в 0.7.25. +</para> +<para lang="en"> +in subrequest processing; +the bug had appeared in 0.7.25. +</para> +</change> + +</changes> + + +<changes ver="0.7.25" date="2008-12-08"> + +<change type="change"> +<para lang="ru"> +в обработке подзапросов. +</para> +<para lang="en"> +in subrequest processing. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь разрешаются POST'ы без строки "Content-Length" в заголовке запроса. +</para> +<para lang="en"> +now POSTs without "Content-Length" header line are allowed. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь директивы limit_req и limit_conn указывают причину запрета запроса. +</para> +<para lang="en"> +now the "limit_req" and "limit_conn" directives log a prohibition reason. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в параметре delete директивы geo. +</para> +<para lang="en"> +in the "delete" parameter of the "geo" directive. +</para> +</change> + +</changes> + + +<changes ver="0.7.24" date="2008-12-01"> + +<change type="feature"> +<para lang="ru"> +директива if_modified_since. +</para> +<para lang="en"> +the "if_modified_since" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не обрабатывал ответ FastCGI-сервера, +если перед ответом сервер передавал много сообщений в stderr. +</para> +<para lang="en"> +nginx did not process a FastCGI server response, +if the server send too many messages to stderr before response. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменные "$cookie_..." не работали в SSI and в перловом модуле. +</para> +<para lang="en"> +the "$cookie_..." variables did not work in the SSI and the perl module. +</para> +</change> + +</changes> + + +<changes ver="0.7.23" date="2008-11-27"> + +<change type="feature"> +<para lang="ru"> +параметры delete и ranges в директиве geo. +</para> +<para lang="en"> +the "delete" and "ranges" parameters in the "geo" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ускорение загрузки geo-базы с большим числом значений. +</para> +<para lang="en"> +speeding up loading of geo base with large number of values. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +уменьшение памяти, необходимой для загрузки geo-базы. +</para> +<para lang="en"> +decrease of memory required for geo base load. +</para> +</change> + +</changes> + + +<changes ver="0.7.22" date="2008-11-20"> + +<change type="feature"> +<para lang="ru"> +параметр none в директиве smtp_auth.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the "none" parameter in the "smtp_auth" directive.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные "$cookie_...". +</para> +<para lang="en"> +the "$cookie_..." variables. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива directio не работала с файловой системой XFS. +</para> +<para lang="en"> +the "directio" directive did not work in XFS filesystem. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +resolver не понимал большие DNS-ответы.<br/> +Спасибо Zyb. +</para> +<para lang="en"> +the resolver did not understand big DNS responses.<br/> +Thanks to Zyb. +</para> +</change> + +</changes> + + +<changes ver="0.7.21" date="2008-11-11"> + +<change> +<para lang="ru"> +Изменения в модуле ngx_http_limit_req_module. +</para> +<para lang="en"> +Changes in the ngx_http_limit_req_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка EXSLT в модуле ngx_http_xslt_module.<br/> +Спасибо Денису Латыпову. +</para> +<para lang="en"> +the EXSLT support in the ngx_http_xslt_module.<br/> +Thanks to Denis F. Latypoff. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +совместимость с glibc 2.3.<br/> +Спасибо Eric Benson и Максиму Дунину. +</para> +<para lang="en"> +compatibility with glibc 2.3.<br/> +Thanks to Eric Benson and Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не запускался на MacOSX 10.4 и более ранних; +ошибка появилась в 0.7.6. +</para> +<para lang="en"> +nginx could not run on MacOSX 10.4 and earlier; +the bug had appeared in 0.7.6. +</para> +</change> + +</changes> + + +<changes ver="0.7.20" date="2008-11-10"> + +<change> +<para lang="ru"> +Изменения в модуле ngx_http_gzip_filter_module. +</para> +<para lang="en"> +Changes in the ngx_http_gzip_filter_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_limit_req_module. +</para> +<para lang="en"> +the ngx_http_limit_req_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на платформах sparc и ppc рабочие процессы могли выходить по сигналу SIGBUS; +ошибка появилась в 0.7.3.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +worker processes might exit on a SIGBUS signal on sparc and ppc platforms; +the bug had appeared in 0.7.3.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы вида "proxy_pass http://host/some:uri" не работали; +ошибка появилась в 0.7.12. +</para> +<para lang="en"> +the "proxy_pass http://host/some:uri" directives did not work; +the bug had appeared in 0.7.12. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry". +</para> +<para lang="en"> +in HTTPS mode requests might fail with the "bad write retry" error. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_secure_link_module не работал внутри location'ов +с именами меньше 3 символов. +</para> +<para lang="en"> +the ngx_http_secure_link_module did not work inside locations, +whose names are less than 3 characters. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $server_addr могла не иметь значения. +</para> +<para lang="en"> +$server_addr variable might have no value. +</para> +</change> + +</changes> + + +<changes ver="0.7.19" date="2008-10-13"> + +<change type="bugfix"> +<para lang="ru"> +обновление номера версии. +</para> +<para lang="en"> +version number update. +</para> +</change> + +</changes> + + +<changes ver="0.7.18" date="2008-10-13"> + +<change type="change"> +<para lang="ru"> +директива underscores_in_headers; +теперь nginx по умолчанию не разрешает подчёркивания в именах строк +в заголовке запроса клиента. +</para> +<para lang="en"> +the "underscores_in_headers" directive; +now nginx does not allows underscores in a client request header line names. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_secure_link_module. +</para> +<para lang="en"> +the ngx_http_secure_link_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива real_ip_header поддерживает любой заголовок. +</para> +<para lang="en"> +the "real_ip_header" directive supports any header. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива log_subrequest. +</para> +<para lang="en"> +the "log_subrequest" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $realpath_root. +</para> +<para lang="en"> +the $realpath_root variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметры http_502 и http_504 в директиве proxy_next_upstream. +</para> +<para lang="en"> +the "http_502" and "http_504" parameters of the "proxy_next_upstream" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream +не работал. +</para> +<para lang="en"> +the "http_503" parameter of the "proxy_next_upstream" or +"fastcgi_next_upstream" directives did not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx мог выдавать строку "Transfer-Encoding: chunked" для запросов HEAD. +</para> +<para lang="en"> +nginx might send a "Transfer-Encoding: chunked" header line for HEAD requests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь accept-лимит зависит от числа worker_connections. +</para> +<para lang="en"> +now accept threshold depends on worker_connections. +</para> +</change> + +</changes> + + +<changes ver="0.7.17" date="2008-09-15"> + +<change type="feature"> +<para lang="ru"> +директива directio теперь работает на Linux. +</para> +<para lang="en"> +now the "directio" directive works on Linux. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $pid. +</para> +<para lang="en"> +the $pid variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +оптимизация directio, появившаяся в 0.7.15, не работала при использовании +open_file_cache. +</para> +<para lang="en"> +the "directio" optimization that had appeared in 0.7.15 did not work with +open_file_cache. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +access_log с переменными не работал на Linux; +ошибка появилась в 0.7.7. +</para> +<para lang="en"> +the "access_log" with variables did not work on Linux; +the bug had appeared in 0.7.7. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_charset_module не понимал название кодировки в кавычках, +полученное от бэкенда. +</para> +<para lang="en"> +the ngx_http_charset_module did not understand quoted charset name +received from backend. +</para> +</change> + +</changes> + + +<changes ver="0.7.16" date="2008-09-08"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на 64-битных платформах; +ошибка появилась в 0.7.15. +</para> +<para lang="en"> +nginx could not be built on 64-bit platforms; +the bug had appeared in 0.7.15. +</para> +</change> + +</changes> + + +<changes ver="0.7.15" date="2008-09-08"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_random_index_module. +</para> +<para lang="en"> +the ngx_http_random_index_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива directio оптимизирована для запросов файлов, начинающихся +с произвольной позиции. +</para> +<para lang="en"> +the "directio" directive has been optimized for file requests starting +from arbitrary position. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива directio при необходимости запрещает использование sendfile. +</para> +<para lang="en"> +the "directio" directive turns off sendfile if it is necessary. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь nginx разрешает подчёркивания в именах строк в заголовке запроса клиента. +</para> +<para lang="en"> +now nginx allows underscores in a client request header line names. +</para> +</change> + +</changes> + + +<changes ver="0.7.14" date="2008-09-01"> + +<change type="change"> +<para lang="ru"> +теперь директивы ssl_certificate и ssl_certificate_key не имеют +значений по умолчанию. +</para> +<para lang="en"> +now the ssl_certificate and ssl_certificate_key directives have no +default values. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива listen поддерживает параметр ssl. +</para> +<para lang="en"> +the "listen" directive supports the "ssl" parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь при переконфигурации nginx учитывает изменение временной зоны +на FreeBSD и Linux. +</para> +<para lang="en"> +now nginx takes into account a time zone change while reconfiguration +on FreeBSD and Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметры директивы listen, такие как backlog, rcvbuf и прочие, +не устанавливались, если сервером по умолчанию был не первый сервер. +</para> +<para lang="en"> +the "listen" directive parameters such as "backlog", "rcvbuf", etc. +were not set, if a default server was not the first one. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании в качестве аргументов части URI, выделенного с помощью +директивы rewrite, эти аргументы не экранировались. +</para> +<para lang="en"> +if URI part captured by a "rewrite" directive was used as a query string, +then the query string was not escaped. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +улучшения тестирования правильности конфигурационного файла. +</para> +<para lang="en"> +configuration file validity test improvements. +</para> +</change> + + +</changes> + + +<changes ver="0.7.13" date="2008-08-26"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Linux и Solaris; +ошибка появилась в 0.7.12. +</para> +<para lang="en"> +nginx could not be built on Linux and Solaris; +the bug had appeared in 0.7.12. +</para> +</change> + +</changes> + + +<changes ver="0.7.12" date="2008-08-26"> + +<change type="feature"> +<para lang="ru"> +директива server_name поддерживает пустое имя "". +</para> +<para lang="en"> +the "server_name" directive supports empty name "". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива gzip_disable поддерживает специальную маску msie6. +</para> +<para lang="en"> +the "gzip_disable" directive supports special "msie6" mask. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании параметра max_fails=0 в upstream'е с несколькими +серверами рабочий процесс выходил по сигналу SIGFPE.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +if the "max_fails=0" parameter was used in upstream with several servers, +then a worker process exited on a SIGFPE signal.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении запроса с помощью директивы error_page +терялось тело запроса. +</para> +<para lang="en"> +a request body was dropped while redirection via an "error_page" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении запроса с методом HEAD с помощью директивы error_page +возвращался полный ответ. +</para> +<para lang="en"> +a full response was returned for request method HEAD +while redirection via an "error_page" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +метод $r->header_in() не возвращал значения строк "Host", "User-Agent", +и "Connection" из заголовка запроса; +ошибка появилась в 0.7.0. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.7.11" date="2008-08-18"> + +<change type="change"> +<para lang="ru"> +теперь ngx_http_charset_module по умолчанию не работает MIME-типом text/css. +</para> +<para lang="en"> +now ngx_http_charset_module does not work by default with text/css MIME type. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь nginx возвращает код 405 для метода POST при запросе статического +файла, только если файл существует. +</para> +<para lang="en"> +now nginx returns the 405 status code for POST method requesting a static file +only if the file exists. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_ssl_session_reuse. +</para> +<para lang="en"> +the "proxy_ssl_session_reuse" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после перенаправления запроса с помощью "X-Accel-Redirect" +директива proxy_pass без URI могла использовать оригинальный запрос. +</para> +<para lang="en"> +a "proxy_pass" directive without URI part might use original request +after the "X-Accel-Redirect" redirection was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если у каталога были права доступа только на поиск файлов +и первый индексный файл отсутствовал, то nginx возвращал ошибку 500. +</para> +<para lang="en"> +if a directory has search only rights and the first index file was absent, +then nginx returned the 500 status code. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибок во вложенных location'ах; +ошибки появились в 0.7.1. +</para> +<para lang="en"> +in inclusive locations; +the bugs had appeared in 0.7.1. +</para> +</change> + +</changes> + + +<changes ver="0.7.10" date="2008-08-13"> + +<change type="bugfix"> +<para lang="ru"> +ошибок в директивах addition_types, charset_types, +gzip_types, ssi_types, sub_filter_types и xslt_types; +ошибки появились в 0.7.9. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +рекурсивной error_page для 500 ошибки. +</para> +<para lang="en"> +of recursive error_page for 500 status code. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь модуль ngx_http_realip_module устанавливает адрес не для +всего keepalive соединения, а для каждого запроса по этому соединению. +</para> +<para lang="en"> +now the ngx_http_realip_module sets address not for whole keepalive connection, +but for each request passed via the connection. +</para> +</change> + +</changes> + + +<changes ver="0.7.9" date="2008-08-12"> + +<change type="change"> +<para lang="ru"> +теперь ngx_http_charset_module по умолчанию работает со следующими MIME-типами: +text/html, text/css, text/xml, text/plain, text/vnd.wap.wml, +application/x-javascript и application/rss+xml. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы charset_types и addition_types. +</para> +<para lang="en"> +the "charset_types" and "addition_types" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь директивы gzip_types, ssi_types и sub_filter_types используют хэш. +</para> +<para lang="en"> +now the "gzip_types", "ssi_types", and "sub_filter_types" directives use hash. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_cpp_test_module. +</para> +<para lang="en"> +the ngx_cpp_test_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива expires поддерживает суточное время. +</para> +<para lang="en"> +the "expires" directive supports daily time. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +улучшения и исправления в модуле ngx_http_xslt_module.<br/> +Спасибо Денису Латыпову и Максиму Дунину. +</para> +<para lang="en"> +the ngx_http_xslt_module improvements and bug fixing.<br/> +Thanks to Denis F. Latypoff and Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива log_not_found не работала при поиске индексных файлов. +</para> +<para lang="en"> +the "log_not_found" directive did not work for index files tests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +HTTPS-соединения могли зависнуть, +если использовались методы kqueue, epoll, rtsig или eventport; +ошибка появилась в 0.7.7. +</para> +<para lang="en"> +HTTPS connections might hang, +if kqueue, epoll, rtsig, or eventport methods were used; +the bug had appeared in 0.7.7. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директивах server_name, valid_referers и map +использовалась маска вида "*.domain.tld" и при этом полное имя +вида "domain.tld" не было описано, то это имя попадало под маску; +ошибка появилась в 0.3.18. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.7.8" date="2008-08-04"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_xslt_module. +</para> +<para lang="en"> +the ngx_http_xslt_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные "$arg_...". +</para> +<para lang="en"> +the "$arg_..." variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка directio в Solaris.<br/> +Спасибо Ivan Debnar. +</para> +<para lang="en"> +Solaris directio support.<br/> +Thanks to Ivan Debnar. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь, если FastCGI-сервер присылает строку "Location" в заголовке ответа +без строки статуса, то nginx использует код статуса 302.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now if FastCGI server sends a "Location" header line without status line, +then nginx uses 302 status code.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.7.7" date="2008-07-30"> + +<change type="change"> +<para lang="ru"> +теперь ошибка EAGAIN при вызове connect() не считается временной. +</para> +<para lang="en"> +now the EAGAIN error returned by connect() is not considered as temporary error. +</para> +</change> + +<change type="change"> +<para lang="ru"> +значением переменной $ssl_client_cert теперь является сертификат, +перед каждой строкой которого, кроме первой, вставляется символ табуляции; +неизменённый сертификат доступен через переменную $ssl_client_raw_cert. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр ask директивы ssl_verify_client. +</para> +<para lang="en"> +the "ask" parameter in the "ssl_verify_client" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +улучшения в обработке byte-range.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +byte-range processing improvements.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива directio.<br/> +Спасибо Jiang Hong. +</para> +<para lang="en"> +the "directio" directive.<br/> +Thanks to Jiang Hong. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка sendfile() в MacOSX 10.5. +</para> +<para lang="en"> +MacOSX 10.5 sendfile() support. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в MacOSX и Cygwin при проверке location'ов теперь делается сравнение +без учёта регистра символов; +однако, сравнение ограничено только однобайтными locale'ями. +</para> +<para lang="en"> +now in MacOSX and Cygwin locations are tested in case insensitive mode; +however, the compare is provided by single-byte locales only. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +соединения почтового прокси-сервера зависали в режиме SSL, +если использовались методы select, poll или /dev/poll. +</para> +<para lang="en"> +mail proxy SSL connections hanged, +if select, poll, or /dev/poll methods were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module. +</para> +<para lang="en"> +UTF-8 encoding usage in the ngx_http_autoindex_module. +</para> +</change> + +</changes> + + +<changes ver="0.7.6" date="2008-07-07"> + +<change type="bugfix"> +<para lang="ru"> +теперь при использовании переменных в директиве access_log +всегда проверяется существовании root'а для запроса. +</para> +<para lang="en"> +now if variables are used in the "access_log" directive +a request root existence is always tested. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_flv_module не поддерживал несколько значений в +аргументах запроса. +</para> +<para lang="en"> +the ngx_http_flv_module did not support several values in a query string. +</para> +</change> + +</changes> + + +<changes ver="0.7.5" date="2008-07-01"> + +<change> +<para lang="ru"> +Исправления в поддержке переменных в директиве access_log; +ошибки появились в 0.7.4. +</para> +<para lang="en"> +Bugfixes in variables support in the "access_log" directive; +the bugs had appeared in 0.7.4. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-http_gzip_module; +ошибка появилась в 0.7.3.<br/> +Спасибо Кириллу Коринскому. +</para> +<para lang="en"> +nginx could not be built --without-http_gzip_module; +the bug had appeared in 0.7.3.<br/> +Thanks to Kirill A. Korinskiy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при совместном использовании sub_filter и SSI +ответы могли передаваться неверно. +</para> +<para lang="en"> +if sub_filter and SSI were used together, then responses might +were transferred incorrectly. +</para> +</change> + +</changes> + + +<changes ver="0.7.4" date="2008-06-30"> + +<change type="feature"> +<para lang="ru"> +директива access_log поддерживает переменные. +</para> +<para lang="en"> +variables support in the "access_log" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива open_log_file_cache. +</para> +<para lang="en"> +the "open_log_file_cache" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ключ -g. +</para> +<para lang="en"> +the -g switch. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка строки "Expect" в заголовке запроса. +</para> +<para lang="en"> +the "Expect" request header line support. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +большие включения в SSI могли передавались не полностью. +</para> +<para lang="en"> +large SSI inclusions might be truncated. +</para> +</change> + +</changes> + + +<changes ver="0.7.3" date="2008-06-23"> + +<change type="change"> +<para lang="ru"> +MIME-тип для расширения rss изменён на "application/rss+xml". +</para> +<para lang="en"> +the "rss" extension MIME type has been changed to "application/rss+xml". +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь директива "gzip_vary on" выдаёт строку +<nobr>"Vary: Accept-Encoding"</nobr> +в заголовке ответа и для несжатых ответов. +</para> +<para lang="en"> +now the "gzip_vary" directive turned on issues +a <nobr>"Vary: Accept-Encoding"</nobr> +header line for uncompressed responses too. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь при использовании протокола "https://" в директиве rewrite +автоматически делается редирект. +</para> +<para lang="en"> +now the "rewrite" directive does a redirect automatically +if the "https://" protocol is used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_pass не работала с протоколом HTTPS; +ошибка появилась в 0.6.9. +</para> +<para lang="en"> +the "proxy_pass" directive did not work with the HTTPS protocol; +the bug had appeared in 0.6.9. +</para> +</change> + +</changes> + + +<changes ver="0.7.2" date="2008-06-16"> + +<change type="feature"> +<para lang="ru"> +теперь nginx поддерживает шифры с обменом EDH-ключами. +</para> +<para lang="en"> +now nginx supports EDH key exchange ciphers. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_dhparam. +</para> +<para lang="en"> +the "ssl_dhparam" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $ssl_client_cert.<br/> +Спасибо Manlio Perillo. +</para> +<para lang="en"> +the $ssl_client_cert variable.<br/> +Thanks to Manlio Perillo. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после изменения URI с помощью директивы rewrite nginx не искал новый location; +ошибка появилась в 0.7.1.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +after changing URI via a "rewrite" directive nginx did not search +a new location; +the bug had appeared in 0.7.1.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался без библиотеки PCRE; +ошибка появилась в 0.7.1. +</para> +<para lang="en"> +nginx could not be built without PCRE library; +the bug had appeared in 0.7.1. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при редиректе запроса к каталогу с добавлением слэша nginx +не добавлял аргументы из оригинального запроса. +</para> +<para lang="en"> +when a request to a directory was redirected with the slash added, +nginx dropped a query string from the original request. +</para> +</change> + +</changes> + + +<changes ver="0.7.1" date="2008-05-26"> + +<change type="change"> +<para lang="ru"> +теперь поиск location'а делается с помощью дерева. +</para> +<para lang="en"> +now locations are searched in a tree. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива optimize_server_names упразднена в связи с появлением +директивы server_name_in_redirect. +</para> +<para lang="en"> +the "optimize_server_names" directive was canceled +due to the "server_name_in_redirect" directive introduction. +</para> +</change> + +<change type="change"> +<para lang="ru"> +некоторые давно устаревшие директивы больше не поддерживаются. +</para> +<para lang="en"> +some long deprecated directives are not supported anymore. +</para> +</change> + +<change type="change"> +<para lang="ru"> +параметр "none" в директиве ssl_session_cache; +теперь этот параметр используется по умолчанию.<br/> +Спасибо Rob Mueller. +</para> +<para lang="en"> +the "none" parameter in the "ssl_session_cache" directive; +now this is default parameter.<br/> +Thanks to Rob Mueller. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +рабочие процессы могли не реагировать на сигналы переконфигурации +и ротации логов. +</para> +<para lang="en"> +worker processes might not catch reconfiguration and log rotation signals. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на последних Fedora 9 Linux.<br/> +Спасибо Roxis. +</para> +<para lang="en"> +nginx could not be built on latest Fedora 9 Linux.<br/> +Thanks to Roxis. +</para> +</change> + +</changes> + + +<changes ver="0.7.0" date="2008-05-19"> + +<change type="change"> +<para lang="ru"> +теперь символы 0x00-0x1F, '"' и '\' в access_log записываются в виде \xXX.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX in an +access_log.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь nginx разрешает несколько строк "Host" в заголовке запроса. +</para> +<para lang="en"> +now nginx allows several "Host" request header line. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива expires поддерживает флаг modified. +</para> +<para lang="en"> +the "modified" flag in the "expires" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $uid_got и $uid_set можно использовать на любой стадии обработки +запроса. +</para> +<para lang="en"> +the $uid_got and $uid_set variables may be used at any request processing stage. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $hostname.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +the $hostname variable.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка DESTDIR.<br/> +Спасибо Todd A. Fisher и Andras Voroskoi. +</para> +<para lang="en"> +DESTDIR support.<br/> +Thanks to Todd A. Fisher and Andras Voroskoi. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании keepalive на Linux +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process on Linux, +if keepalive was enabled. +</para> +</change> + +</changes> + + +<changes ver="0.6.31" date="2008-05-12"> + +<change type="bugfix"> +<para lang="ru"> +nginx не обрабатывал ответ FastCGI-сервера, если строка заголовка ответа была +в конце записи FastCGI; +ошибка появилась в 0.6.2.<br/> +Спасибо Сергею Серову. +</para> +<para lang="en"> +nginx did not process FastCGI response +if header was at the end of FastCGI record; +the bug had appeared in 0.6.2.<br/> +Thanks to Sergey Serov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при удалении файла и использовании директивы open_file_cache_errors off +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process if a file was deleted +and the "open_file_cache_errors" directive was off. +</para> +</change> + +</changes> + + +<changes ver="0.6.30" date="2008-04-29"> + +<change type="change"> +<para lang="ru"> +теперь, если маске, заданной в директиве include, не соответствует +ни один файл, то nginx не выдаёт ошибку. +</para> +<para lang="en"> +now if an "include" directive pattern does not match any file, +then nginx does not issue an error. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь время в директивах можно задавать без пробела, например, "1h50m". +</para> +<para lang="en"> +now the time in directives may be specified without spaces, +for example, "1h50m". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечек памяти, если директива ssl_verify_client имела значение on.<br/> +Спасибо Chavelle Vincent. +</para> +<para lang="en"> +memory leaks if the "ssl_verify_client" directive was on.<br/> +Thanks to Chavelle Vincent. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива sub_filter могла вставлять заменяемый текст в вывод. +</para> +<para lang="en"> +the "sub_filter" directive might set text to change into output. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива error_page не воспринимала параметры в перенаправляемом URI. +</para> +<para lang="en"> +the "error_page" directive did not take into account arguments in +redirected URI. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь при сборке с Cygwin nginx всегда открывает файлы в бинарном режиме. +</para> +<para lang="en"> +now nginx always opens files in binary mode under Cygwin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался под OpenBSD; +ошибка появилась в 0.6.15. +</para> +<para lang="en"> +nginx could not be built on OpenBSD; +the bug had appeared in 0.6.15. +</para> +</change> + +</changes> + + +<changes ver="0.6.29" date="2008-03-18"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_google_perftools_module. +</para> +<para lang="en"> +the ngx_google_perftools_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_perl_module не собирался на 64-битных платформах; +ошибка появилась в 0.6.27. +</para> +<para lang="en"> +the ngx_http_perl_module could not be built on 64-bit platforms; +the bug had appeared in 0.6.27. +</para> +</change> + +</changes> + + +<changes ver="0.6.28" date="2008-03-13"> + +<change type="bugfix"> +<para lang="ru"> +метод rtsig не собирался; +ошибка появилась в 0.6.27. +</para> +<para lang="en"> +the rtsig method could not be built; +the bug had appeared in 0.6.27. +</para> +</change> + +</changes> + + +<changes ver="0.6.27" date="2008-03-12"> + +<change type="change"> +<para lang="ru"> +теперь на Linux 2.6.18+ по умолчанию не собирается метод rtsig. +</para> +<para lang="en"> +now by default the rtsig method is not built on <nobr>Linux 2.6.18+.</nobr> +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь при перенаправлении запроса в именованный location с помощью +директивы error_page метод запроса не изменяется. +</para> +<para lang="en"> +now a request method is not changed while redirection to a named location +via an "error_page" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы resolver и resolver_timeout в SMTP прокси-сервере. +</para> +<para lang="en"> +the "resolver" and "resolver_timeout" directives in SMTP proxy. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива post_action поддерживает именованные location'ы. +</para> +<para lang="en"> +the "post_action" directive supports named locations. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении запроса из location'а c обработчиком proxy, FastCGI +или memcached в именованный location со статическим обработчиком +в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +a segmentation fault occurred in worker process, +if a request was redirected from proxy, FastCGI, or memcached location +to static named locations. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +браузеры не повторяли SSL handshake, если при первом handshake +не оказалось правильного клиентского сертификата. +<br/> +Спасибо Александру Инюхину. +</para> +<para lang="en"> +browsers did not repeat SSL handshake if there is no valid client certificate +in first handshake. +<br/> +Thanks to Alexander V. Inyukhin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении ошибок 495-497 с помощью директивы error_page +без изменения кода ошибки nginx пытался выделить очень много памяти. +</para> +<para lang="en"> +if response code 495-497 was redirected via an "error_page" directive +without code change, then nginx tried to allocate too many memory. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти в долгоживущих небуфферизированных соединениях. +</para> +<para lang="en"> +memory leak in long-lived non buffered connections. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки памяти в resolver'е. +</para> +<para lang="en"> +memory leak in resolver. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении запроса из location'а c обработчиком proxy +в другой location с обработчиком proxy +в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +a segmentation fault occurred in worker process, +if a request was redirected from proxy, FastCGI, or memcached location +to static named locations. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки в кэшировании переменных $proxy_host и $proxy_port.<br/> +Спасибо Сергею Боченкову. +</para> +<para lang="en"> +in the $proxy_host and $proxy_port variables caching.<br/> +Thanks to Sergey Bochenkov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива proxy_pass с переменными использовала порт, описанной в другой +директиве proxy_pass без переменных, но с таким же именем хоста.<br/> +Спасибо Сергею Боченкову. +</para> +<para lang="en"> +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.<br/> +Thanks to Sergey Bochenkov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +во время переконфигурации на некоторых 64-битном платформах в лог +записывался alert "sendmsg() failed (9: Bad file descriptor)". +</para> +<para lang="en"> +an alert "sendmsg() failed (9: Bad file descriptor)" on some 64-bit platforms +while reconfiguration. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при повторном использовании в SSI пустого block'а в качестве заглушки +в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +a segmentation fault occurred in worker process, +if empty stub block was used second time in SSI. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при копировании части URI, содержащего экранированные символы, +в аргументы. +</para> +<para lang="en"> +in copying URI part contained escaped symbols into arguments. +</para> +</change> + +</changes> + + +<changes ver="0.6.26" date="2008-02-11"> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_store и fastcgi_store не проверяли длину ответа. +</para> +<para lang="en"> +the "proxy_store" and "fastcgi_store" directives did not check +a response length. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании большого значения в директиве expires +в рабочем процессе происходил segmentation fault.<br/> +Спасибо Joaquin Cuenca Abela. +</para> +<para lang="en"> +a segmentation fault occurred in worker process, +if big value was used in a "expires" directive.<br/> +Thanks to Joaquin Cuenca Abela. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx неверно определял длину строки кэша на <nobr>Pentium 4.</nobr><br/> +Спасибо Геннадию Махомеду. +</para> +<para lang="en"> +nginx incorrectly detected cache line size on Pentium 4.<br/> +Thanks to Gena Makhomed. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в проксированных подзапросах и подзапросах к FastCGI-серверу +вместо метода GET использовался оригинальный метод клиента. +</para> +<para lang="en"> +in proxied or FastCGI subrequests a client original method was used +instead of the GET method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов в режиме HTTPS при использовании отложенного accept'а.<br/> +Спасибо Ben Maurer. +</para> +<para lang="en"> +socket leak in HTTPS mode if deferred accept was used.<br/> +Thanks to Ben Maurer. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx выдавал ошибочное сообщение "SSL_shutdown() failed (SSL: )"; +ошибка появилась в 0.6.23. +</para> +<para lang="en"> +nginx issued the bogus error message "SSL_shutdown() failed (SSL: )"; +the bug had appeared in 0.6.23. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry"; +ошибка появилась в 0.6.23. +</para> +<para lang="en"> +in HTTPS mode requests might fail with the "bad write retry" error; +the bug had appeared in 0.6.23. +</para> +</change> + +</changes> + + +<changes ver="0.6.25" date="2008-01-08"> + +<change type="change"> +<para lang="ru"> +вместо специального параметра "*" в директиве server_name теперь +используется директива server_name_in_redirect. +</para> +<para lang="en"> +now the "server_name_in_redirect" directive is used instead of +the "server_name" directive's special "*" parameter. +</para> +</change> + +<change type="change"> +<para lang="ru"> +в качестве основного имени в директиве server_name теперь +можно использовать имена с масками и регулярными выражениями. +</para> +<para lang="en"> +now wildcard and regex names can be used as main name in +a "server_name" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива satisfy_any заменена директивой satisfy. +</para> +<para lang="en"> +the "satisfy_any" directive was replaced by the "satisfy" directive. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +после переконфигурации старые рабочие процесс могли сильно нагружать процессор +при запуске под Linux OpenVZ. +</para> +<para lang="en"> +old worker processes might hog CPU after reconfiguration if they was run +under Linux OpenVZ. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива min_delete_depth. +</para> +<para lang="en"> +the "min_delete_depth" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +методы COPY и MOVE не работали с одиночными файлами. +</para> +<para lang="en"> +the COPY and MOVE methods did not work with single files. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_gzip_static_module не позволял работать модулю +ngx_http_dav_module; +ошибка появилась в 0.6.23. +</para> +<para lang="en"> +the ngx_http_gzip_static_module did not allow the ngx_http_dav_module to work; +the bug had appeared in 0.6.23. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов в режиме HTTPS при использовании отложенного accept'а.<br/> +Спасибо Ben Maurer. +</para> +<para lang="en"> +socket leak in HTTPS mode if deferred accept was used.<br/> +Thanks to Ben Maurer. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался без библиотеки PCRE; +ошибка появилась в 0.6.23. +</para> +<para lang="en"> +nginx could not be built without PCRE library; +the bug had appeared in 0.6.23. +</para> +</change> + +</changes> + +<changes ver="0.6.24" date="2007-12-27"> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTPS в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.6.23. +</para> +<para lang="en"> +a segmentation fault might occur in worker process if HTTPS was used; +the bug had appeared in 0.6.23. +</para> +</change> + +</changes> + + +<changes ver="0.6.23" date="2007-12-27"> + +<change type="change"> +<para lang="ru"> +параметр "off" в директиве ssl_session_cache; +теперь этот параметр используется по умолчанию. +</para> +<para lang="en"> +the "off" parameter in the "ssl_session_cache" directive; +now this is default parameter. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива open_file_cache_retest переименована в open_file_cache_valid. +</para> +<para lang="en"> +the "open_file_cache_retest" directive was renamed +to the "open_file_cache_valid". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива open_file_cache_min_uses. +</para> +<para lang="en"> +the "open_file_cache_min_uses" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_gzip_static_module. +</para> +<para lang="en"> +the ngx_http_gzip_static_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива gzip_disable. +</para> +<para lang="en"> +the "gzip_disable" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директиву memcached_pass можно использовать внутри блока if. +</para> +<para lang="en"> +the "memcached_pass" directive may be used inside the "if" block. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если внутри одного location'а использовались директивы "memcached_pass" и "if", +то в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +a segmentation fault occurred in worker process, +if the "memcached_pass" and "if" directives were used in the same location. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если при использовании директивы satisfy_any on" были заданы директивы +не всех модулей доступа, то заданные директивы не проверялись. +</para> +<para lang="en"> +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; +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметры, заданные регулярным выражением в директиве valid_referers, +не наследовалась с предыдущего уровня. +</para> +<para lang="en"> +regex parameters in a "valid_referers" directive were not inherited +from previous level. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива post_action не работала, если запрос завершался с кодом 499. +</para> +<para lang="en"> +a "post_action" directive did run if a request was completed +with 499 status code. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +оптимизация использования 16K буфера для SSL-соединения.<br/> +Спасибо Ben Maurer. +</para> +<para lang="en"> +optimization of 16K buffer usage in a SSL connection.<br/> +Thanks to Ben Maurer. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +STARTTLS в режиме SMTP не работал.<br/> +Спасибо Олегу Мотиенко. +</para> +<para lang="en"> +the STARTTLS in SMTP mode did not work.<br/> +Thanks to Oleg Motienko. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry"; +ошибка появилась в 0.5.13. +</para> +<para lang="en"> +in HTTPS mode requests might fail with the "bad write retry" error; +the bug had appeared in 0.5.13. +</para> +</change> + +</changes> + + +<changes ver="0.6.22" date="2007-12-19"> + +<change type="change"> +<para lang="ru"> +теперь все методы модуля ngx_http_perl_module +возвращают значения, скопированные в память, выделенную perl'ом. +</para> +<para lang="en"> +now all ngx_http_perl_module methods return values copied to perl's +allocated memory. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если nginx был собран с модулем ngx_http_perl_module, +использовался perl до версии 5.8.6 и perl поддерживал потоки, +то во время переконфигурации основной процесс аварийно выходил; +ошибка появилась в 0.5.9.<br/> +Спасибо Борису Жмурову. +</para> +<para lang="en"> +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.<br/> +Thanks to Boris Zhmurov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в методы модуля ngx_http_perl_module +могли передаваться неверные результаты выделения в регулярных выражениях. +</para> +<para lang="en"> +the ngx_http_perl_module methods may get invalid values of the regex captures. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если метод $r->has_request_body() вызывался для запроса, +у которого небольшое тело запроса было уже полностью получено, +то в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +large_client_header_buffers не освобождались перед переходом в состояние +keep-alive.<br/> +Спасибо Олександру Штепе. +</para> +<para lang="en"> +large_client_header_buffers did not freed before going to keep-alive state.<br/> +Thanks to Olexander Shtepa. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в переменной $upstream_addr не записывался последний адрес; +ошибка появилась в 0.6.18. +</para> +<para lang="en"> +the last address was missed in the $upstream_addr variable; +the bug had appeared in 0.6.18. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива fastcgi_catch_stderr не возвращала ошибку; +теперь она возвращает ошибку 502, которую можно направить на следующий сервер +с помощью "fastcgi_next_upstream invalid_header". +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы fastcgi_catch_stderr +в основном процессе происходил segmentation fault; +ошибка появилась в 0.6.10.<br/> +Спасибо Manlio Perillo. +</para> +<para lang="en"> +a segmentation fault occurred in master process +if the "fastcgi_catch_stderr" directive was used; +the bug had appeared in 0.6.10.<br/> +Thanks to Manlio Perillo. +</para> +</change> + +</changes> + + +<changes ver="0.6.21" date="2007-12-03"> + +<change type="change"> +<para lang="ru"> +если в значениях переменных директивы proxy_pass используются +только IP-адреса, то указывать resolver не нужно. +</para> +<para lang="en"> +if variable values used in a "proxy_pass" directive contain IP-addresses only, +then a "resolver" directive is not mandatory. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы proxy_pass c URI-частью +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.6.19. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если resolver использовался на платформах, не поддерживающих метод kqueue, +то nginx выдавал alert "name is out of response".<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +if resolver was used on platform that does not support kqueue, +then nginx issued an alert "name is out of response".<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +При использовании переменной $server_protocol в FastCGI-параметрах +и запросе, длина которого была близка к значению директивы +client_header_buffer_size, +nginx выдавал alert "fastcgi: the request record is too big". +</para> +<para lang="en"> +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". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при обычном запросе версии HTTP/0.9 к HTTPS серверу nginx возвращал +обычный ответ. +</para> +<para lang="en"> +if a plain text HTTP/0.9 version request was made to HTTPS server, +then nginx returned usual response. +</para> +</change> + +</changes> + + +<changes ver="0.6.20" date="2007-11-28"> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы proxy_pass c URI-частью +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.6.19. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.6.19" date="2007-11-27"> + +<change type="bugfix"> +<para lang="ru"> +версия 0.6.18 не собиралась. +</para> +<para lang="en"> +the 0.6.18 version could not be built. +</para> +</change> + +</changes> + +<changes ver="0.6.18" date="2007-11-27"> + +<change type="change"> +<para lang="ru"> +теперь модуль ngx_http_userid_module в поле куки с номером процесса +добавляет микросекунды на время старта. +</para> +<para lang="en"> +now the ngx_http_userid_module adds start time microseconds +to the cookie field contains a pid value. +</para> +</change> + +<change type="change"> +<para lang="ru"> +в error_log теперь записывается полная строка запроса вместо только URI. +</para> +<para lang="en"> +now the full request line instead of URI only is written to error_log. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_pass поддерживает переменные. +</para> +<para lang="en"> +variables support in the "proxy_pass" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы resolver и resolver_timeout. +</para> +<para lang="en"> +the "resolver" and "resolver_timeout" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь директива "add_header last-modified ''" удаляет в заголовке ответа +строку "Last-Modified". +</para> +<para lang="en"> +now the directive "add_header last-modified ''" deletes a "Last-Modified" +response header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива limit_rate не позволяла передавать на полной скорости, +даже если был указан очень большой лимит. +</para> +<para lang="en"> +the "limit_rate" directive did not allow to use full throughput, +even if limit value was very high. +</para> +</change> + +</changes> + + +<changes ver="0.6.17" date="2007-11-15"> + +<change type="feature"> +<para lang="ru"> +поддержка строки "If-Range" в заголовке запроса.<br/> +Спасибо Александру Инюхину. +</para> +<para lang="en"> +the "If-Range" request header line support.<br/> +Thanks to Alexander V. Inyukhin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы msie_refresh повторно экранировались +уже экранированные символы; +ошибка появилась в 0.6.4. +</para> +<para lang="en"> +URL double escaping in a redirect of the "msie_refresh" directive; +the bug had appeared in 0.6.4. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива autoindex не работала при использовании "alias /". +</para> +<para lang="en"> +the "autoindex" directive did not work with the "alias /" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании подзапросов +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process if subrequests were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании SSL и gzip большие ответы могли передаваться не полностью. +</para> +<para lang="en"> +the big responses may be transferred truncated if SSL and gzip were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если ответ проксированного сервера был версии HTTP/0.9, +то переменная $status была равна 0. +</para> +<para lang="en"> +the $status variable was equal to 0 if a proxied server returned response +in HTTP/0.9 version. +</para> +</change> + +</changes> + + +<changes ver="0.6.16" date="2007-10-29"> + +<change type="change"> +<para lang="ru"> +теперь на Linux используется uname(2) вместо procfs.<br/> +Спасибо Илье Новикову. +</para> +<para lang="en"> +now the uname(2) is used on Linux instead of procfs.<br/> +Thanks to Ilya Novikov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве error_page использовался символ "?", то он экранировался +при проксировании запроса; +ошибка появилась в 0.6.11. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с mget. +</para> +<para lang="en"> +compatibility with mget. +</para> +</change> + +</changes> + + +<changes ver="0.6.15" date="2007-10-22"> + +<change type="feature"> +<para lang="ru"> +совместимость с Cygwin.<br/> +Спасибо Владимиру Кутакову. +</para> +<para lang="en"> +Cygwin compatibility.<br/> +Thanks to Vladimir Kutakov. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива merge_slashes. +</para> +<para lang="en"> +the "merge_slashes" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива gzip_vary. +</para> +<para lang="en"> +the "gzip_vary" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server_tokens. +</para> +<para lang="en"> +the "server_tokens" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не раскодировал URI в команде SSI include. +</para> +<para lang="en"> +nginx did not unescape URI in the "include" SSI command. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменной в директивах charset или source_charset +на старте или во время переконфигурации происходил segmentation fault, +</para> +<para lang="en"> +the segmentation fault was occurred on start or while reconfiguration +if variable was used in the "charset" or "source_charset" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx возвращал ошибку 400 на запросы вида +<nobr>"GET http://www.domain.com HTTP/1.0"</nobr>.<br/> +Спасибо James Oakley. +</para> +<para lang="en"> +nginx returned the 400 response on requests like +<nobr>"GET http://www.domain.com HTTP/1.0"</nobr>.<br/> +Thanks to James Oakley. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после перенаправления запроса с телом запроса с помощью директивы +error_page nginx пытался снова прочитать тело запроса; +ошибка появилась в 0.6.7. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе происходил segmentation fault, если у сервера, +обрабатывающему запрос, не был явно определён server_name; +ошибка появилась в 0.6.7. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.6.14" date="2007-10-15"> + +<change type="change"> +<para lang="ru"> +теперь по умолчанию команда SSI echo использует кодирование entity. +</para> +<para lang="en"> +now by default the "echo" SSI command uses entity encoding. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр encoding в команде SSI echo. +</para> +<para lang="en"> +the "encoding" parameter in the "echo" SSI command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директиву access_log можно использовать внутри блока limit_except. +</para> +<para lang="en"> +the "access_log" directive may be used inside the "limit_except" block. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если все сервера апстрима оказывались недоступными, +то до восстановления работоспособности +у всех серверов вес становился равным одному; +ошибка появилась в 0.6.6. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменных $date_local и $date_gmt вне модуля +ngx_http_ssi_filter_module в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +a segmentation fault occurred in worker process +if $date_local and $date_gmt were used outside the ngx_http_ssi_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании включённом отладочном логе +в рабочем процессе мог произойти segmentation fault.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if debug log was enabled.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ngx_http_memcached_module не устанавливал $upstream_response_time.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +ngx_http_memcached_module did not set $upstream_response_time.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +рабочий процесс мог зациклиться при использовании memcached. +</para> +<para lang="en"> +a worker process may got caught in an endless loop, if the memcached was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx распознавал параметры "close" и "keep-alive" в строке "Connection" +в заголовке запроса только, если они были в нижнем регистре; +ошибка появилась в 0.6.11. +</para> +<para lang="en"> +nginx supported low case only "close" and "keep-alive" values +in the "Connection" request header line; +the bug had appeared in 0.6.11. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +sub_filter не работал с пустой строкой замены. +</para> +<para lang="en"> +sub_filter did not work with empty substitution. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в парсинге sub_filter. +</para> +<para lang="en"> +in sub_filter parsing. +</para> +</change> + +</changes> + + +<changes ver="0.6.13" date="2007-09-24"> + +<change type="bugfix"> +<para lang="ru"> +nginx не закрывал файл каталога для запроса HEAD, +если использовался autoindex<br/> +Спасибо Arkadiusz Patyk. +</para> +<para lang="en"> +nginx did not close directory file on HEAD request if autoindex was used.<br/> +Thanks to Arkadiusz Patyk. +</para> +</change> + +</changes> + + +<changes ver="0.6.12" date="2007-09-21"> + +<change type="change"> +<para lang="ru"> +почтовый прокси-сервер разделён на три модуля: pop3, imap и smtp. +</para> +<para lang="en"> +mail proxy was split on three modules: pop3, imap and smtp. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметры конфигурации --without-mail_pop3_module, +--without-mail_imap_module и --without-mail_smtp_module. +</para> +<para lang="en"> +the --without-mail_pop3_module, --without-mail_imap_module, +and --without-mail_smtp_module configuration parameters. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы smtp_greeting_delay и smtp_client_buffer модуля ngx_mail_smtp_module. +</para> +<para lang="en"> +the "smtp_greeting_delay" and "smtp_client_buffer" directives +of the ngx_mail_smtp_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +wildcard в конце имени сервера не работали; +ошибка появилась в 0.6.9. +</para> +<para lang="en"> +the trailing wildcards did not work; +the bug had appeared in 0.6.9. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании разделяемой библиотеки PCRE, +расположенной в нестандартном месте, nginx не запускался на Solaris. +</para> +<para lang="en"> +nginx could not start on Solaris if the shared PCRE library located +in non-standard place was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_hide_header и fastcgi_hide_header не скрывали +строки заголовка ответа с именем больше 32 символов.<br/> +Спасибо Manlio Perillo. +</para> +<para lang="en"> +the "proxy_hide_header" and "fastcgi_hide_header" directives did not +hide response header lines whose name was longer than 32 characters.<br/> +Thanks to Manlio Perillo. +</para> +</change> + +</changes> + + +<changes ver="0.6.11" date="2007-09-11"> + +<change type="bugfix"> +<para lang="ru"> +счётчик активных соединений всегда рос при использовании почтового +прокси-сервера. +</para> +<para lang="en"> +active connection counter always increased if mail proxy was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если бэкенд возвращал только заголовок ответа при небуферизированном +проксировании, то nginx закрывал соединение с бэкендом по таймауту. +</para> +<para lang="en"> +if backend returned response header only using non-buffered proxy, +then nginx closed backend connection on timeout. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не поддерживал несколько строк "Connection" в заголовке запроса. +</para> +<para lang="en"> +nginx did not support several "Connection" request header lines. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в сервере апстрима был задан max_fails, то после первой же неудачной +попытки вес сервера навсегда становился равным одному; +ошибка появилась в 0.6.6. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.6.10" date="2007-09-03"> + +<change type="feature"> +<para lang="ru"> +директивы open_file_cache, open_file_cache_retest и open_file_cache_errors. +</para> +<para lang="en"> +the "open_file_cache", "open_file_cache_retest", and "open_file_cache_errors" +directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +утечки сокетов; +ошибка появилась в 0.6.7. +</para> +<para lang="en"> +socket leak; +the bug had appeared in 0.6.7. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +В строку заголовка ответа "Content-Type", указанную в методе +$r->send_http_header(), не добавлялась кодировка, указанная в директиве charset. +</para> +<para lang="en"> +a charset set by the "charset" directive was not appended +to the "Content-Type" header set by $r->send_http_header(). +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании метода /dev/poll +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if /dev/poll method was used. +</para> +</change> + +</changes> + + +<changes ver="0.6.9" date="2007-08-28"> + +<change type="bugfix"> +<para lang="ru"> +рабочий процесс мог зациклиться при использовании протокола HTTPS; +ошибка появилась в 0.6.7. +</para> +<para lang="en"> +a worker process may got caught in an endless loop, +if the HTTPS protocol was used; +the bug had appeared in 0.6.7. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если сервер слушал на двух адресах или портах, то nginx не запускался +при использовании wildcard в конце имени сервера. +</para> +<para lang="en"> +if server listened on two addresses or ports and trailing wildcard was used, +then nginx did not run. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива ip_hash могла неверно помечать сервера как нерабочие. +</para> +<para lang="en"> +the "ip_hash" directive might incorrectly mark servers as down. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на amd64; +ошибка появилась в 0.6.8. +</para> +<para lang="en"> +nginx could not be built on amd64; +the bug had appeared in 0.6.8. +</para> +</change> + +</changes> + + +<changes ver="0.6.8" date="2007-08-20"> + +<change type="change"> +<para lang="ru"> +теперь nginx пытается установить директивы worker_priority, +worker_rlimit_nofile, worker_rlimit_core, worker_rlimit_sigpending +без привилегий root'а. +</para> +<para lang="en"> +now nginx tries to set the "worker_priority", "worker_rlimit_nofile", +"worker_rlimit_core", and "worker_rlimit_sigpending" without super-user +privileges. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь nginx экранирует символы пробела и "%" при передаче запроса +серверу аутентификации почтового прокси-сервера. +</para> +<para lang="en"> +now nginx escapes space and "%" in request to a mail proxy authentication +server. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь nginx экранирует символ "%" в переменной $memcached_key. +</para> +<para lang="en"> +now nginx escapes "%" in $memcached_key variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при указании относительного пути к конфигурационному файлу в качестве +параметра ключа -c nginx определял путь относительно конфигурационного префикса; +ошибка появилась в 0.6.6. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не работал на FreeBSD/sparc64. +</para> +<para lang="en"> +nginx did not work on FreeBSD/sparc64. +</para> +</change> + +</changes> + + +<changes ver="0.6.7" date="2007-08-15"> + +<change type="change"> +<para lang="ru"> +теперь пути, указанные в директивах include, auth_basic_user_file, +perl_modules, ssl_certificate, ssl_certificate_key и +ssl_client_certificate, определяются относительно каталога конфигурационного +файла nginx.conf, а не относительно префикса. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="change"> +<para lang="ru"> +параметр --sysconfdir=PATH в configure упразднён. +</para> +<para lang="en"> +the --sysconfdir=PATH option in configure was canceled. +</para> +</change> + +<change type="change"> +<para lang="ru"> +для обновления на лету версий 0.1.x создан специальный сценарий +<nobr>make upgrade1.</nobr> +</para> +<para lang="en"> +the special make target "upgrade1" was defined for online upgrade of +0.1.x versions. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы server_name и valid_referers поддерживают регулярные выражения. +</para> +<para lang="en"> +the "server_name" and "valid_referers" directives support regular expressions. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server в блоке upstream поддерживает параметр backup. +</para> +<para lang="en"> +the "server" directive in the "upstream" context supports +the "backup" parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает метод $r->discard_request_body. +</para> +<para lang="en"> +the ngx_http_perl_module supports the $r->discard_request_body. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива "add_header Last-Modified ..." меняет строку "Last-Modified" +в заголовке ответа. +</para> +<para lang="en"> +the "add_header Last-Modified ..." directive changes the "Last-Modified" +response header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если на запрос с телом возвращался ответ с кодом HTTP отличным от 200, +и после этого запроса соединение переходило в состояние keep-alive, +то на следующий запрос nginx возвращал 400. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве auth_http был задан неправильный адрес, то +в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +a segmentation fault occurred in worker process +if invalid address was set in the "auth_http" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь по умолчанию nginx использует значение 511 для listen backlog +на всех платформах, кроме FreeBSD.<br/> +Спасибо Jiang Hong. +</para> +<para lang="en"> +now nginx uses default listen backlog value 511 on all platforms +except FreeBSD.<br/> +Thanks to Jiang Hong. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +рабочий процесс мог зациклиться, если server в блоке upstream был помечен +как down; +ошибка появилась в 0.6.6. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +sendfilev() в Solaris теперь не используется при передаче тела запроса +FastCGI-серверу через unix domain сокет. +</para> +<para lang="en"> +now Solaris sendfilev() is not used to transfer the client request body +to FastCGI-server via the unix domain socket. +</para> +</change> + +</changes> + + +<changes ver="0.6.6" date="2007-07-30"> + +<change type="feature"> +<para lang="ru"> +параметр --sysconfdir=PATH в configure. +</para> +<para lang="en"> +the --sysconfdir=PATH option in configure. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +именованные location'ы. +</para> +<para lang="en"> +named locations. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменную $args можно устанавливать с помощью set. +</para> +<para lang="en"> +the $args variable can be set with the "set" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $is_args. +</para> +<para lang="en"> +the $is_args variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +равномерное распределение запросов к апстримам с большими весами. +</para> +<para lang="en"> +fair big weight upstream balancer. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если клиент в почтовом прокси-сервере закрывал соединение, +то nginx мог не закрывать соединение с бэкендом. +</para> +<para lang="en"> +if a client has closed connection to mail proxy + then nginx might not close connection to backend. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании одного хоста в качестве бэкендов для протоколов HTTP и HTTPS +без явного указания портов, nginx использовал только один порт—80 или 443. +</para> +<para lang="en"> +if the same host without specified port was used as backend for HTTP and HTTPS, +then nginx used only one port—80 or 443. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Solaris/amd64 Sun Studio 11 и более ранними версиями; +ошибка появилась в 0.6.4. +</para> +<para lang="en"> +fix building on Solaris/amd64 by Sun Studio 11 and early versions; +the bug had appeared in 0.6.4. +</para> +</change> + +</changes> + + +<changes ver="0.6.5" date="2007-07-23"> + +<change type="feature"> +<para lang="ru"> +переменная $nginx_version.<br/> +Спасибо Николаю Гречуху. +</para> +<para lang="en"> +$nginx_version variable.<br/> +Thanks to Nick S. Grechukh. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +почтовый прокси-сервер поддерживает AUTHENTICATE в режиме IMAP.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the mail proxy supports AUTHENTICATE in IMAP mode.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +почтовый прокси-сервер поддерживает STARTTLS в режиме SMTP.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +the mail proxy supports STARTTLS in SMTP mode.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx экранирует пробел в переменной $memcached_key. +</para> +<para lang="en"> +now nginx escapes space in $memcached_key variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx неправильно собирался Sun Studio на Solaris/amd64.<br/> +Спасибо Jiang Hong. +</para> +<para lang="en"> +nginx was incorrectly built by Sun Studio on Solaris/amd64.<br/> +Thanks to Jiang Hong. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +незначительных потенциальных ошибок.<br/> +Спасибо Coverity's Scan. +</para> +<para lang="en"> +of minor potential bugs.<br/> +Thanks to Coverity's Scan. +</para> +</change> + +</changes> + + +<changes ver="0.6.4" date="2007-07-17"> + +<change type="security"> +<para lang="ru"> +при использовании директивы msie_refresh был возможен XSS.<br/> +Спасибо Максиму Богуку. +</para> +<para lang="en"> +the "msie_refresh" directive allowed XSS.<br/> +Thanks to Maxim Boguk. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директивы proxy_store и fastcgi_store изменены. +</para> +<para lang="en"> +the "proxy_store" and "fastcgi_store" directives were changed. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_store_access и fastcgi_store_access. +</para> +<para lang="en"> +the "proxy_store_access" and "fastcgi_store_access" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не работал на Solaris/sparc64, если был собран Sun Studio.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +nginx did not work on Solaris/sparc64 if it was built by Sun Studio.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +обход ошибки в Sun Studio 12.<br/> +Спасибо Jiang Hong. +</para> +<para lang="en"> +for Sun Studio 12.<br/> +Thanks to Jiang Hong. +</para> +</change> + +</changes> + + +<changes ver="0.6.3" date="2007-07-12"> + +<change type="feature"> +<para lang="ru"> +директивы proxy_store и fastcgi_store. +</para> +<para lang="en"> +the "proxy_store" and "fastcgi_store" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы auth_http_header +в рабочем процессе мог произойти segmentation fault.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if the "auth_http_header" directive was used.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если использовался метод аутентификации CRAM-MD5, но он не был разрешён, +то в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +a segmentation fault occurred in worker process +if the CRAM-MD5 authentication method was used, but it was not enabled. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании протокола HTTPS в директиве proxy_pass +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process when +the HTTPS protocol was used in the "proxy_pass" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в рабочем процессе мог произойти segmentation fault, +если использовался метод eventport. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if the eventport method was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort не работали; +ошибка появилась в 0.5.13. +</para> +<para lang="en"> +the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives +did not work; +the bug had appeared in 0.5.13. +</para> +</change> + +</changes> + + +<changes ver="0.6.2" date="2007-07-09"> + +<change type="bugfix"> +<para lang="ru"> +если заголовок ответа был разделён в FastCGI-записях, то nginx передавал +клиенту мусор в таких заголовках. +</para> +<para lang="en"> +if the FastCGI header was split in records, +then nginx passed garbage in the header to a client. +</para> +</change> + +</changes> + + +<changes ver="0.6.1" date="2007-06-17"> + +<change type="bugfix"> +<para lang="ru"> +в парсинге SSI. +</para> +<para lang="en"> +in SSI parsing. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании удалённого подзапроса в SSI последующий +подзапрос локального файла мог отдаваться клиенту в неверном порядке. +</para> +<para lang="en"> +if remote SSI subrequest was used, then posterior local file subrequest +might transferred to client in wrong order. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +большие включения в SSI, сохранённые во временные файлы, +передавались не полностью. +</para> +<para lang="en"> +large SSI inclusions buffered in temporary files were truncated. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +значение perl'овой переменной $$ модуля ngx_http_perl_module было равно +номеру главного процесса. +</para> +<para lang="en"> +the perl $$ variable value in ngx_http_perl_module was equal to the master +process identification number. +</para> +</change> + +</changes> + + +<changes ver="0.6.0" date="2007-06-14"> + +<change type="feature"> +<para lang="ru"> +директивы "server_name", "map", and "valid_referers" поддерживают +маски вида "www.example.*". +</para> +<para lang="en"> +the "server_name", "map", and "valid_referers" directives support +the "www.example.*" wildcards. +</para> +</change> + +</changes> + + +<changes ver="0.5.25" date="2007-06-11"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-http_rewrite_module; +ошибка появилась в 0.5.24. +</para> +<para lang="en"> +nginx could not be built with the --without-http_rewrite_module parameter; +the bug had appeared in 0.5.24. +</para> +</change> + +</changes> + + +<changes ver="0.5.24" date="2007-06-06"> + +<change type="security"> +<para lang="ru"> +директива ssl_verify_client не работала, если запрос выполнялся +по протоколу HTTP/0.9. +</para> +<para lang="en"> +the "ssl_verify_client" directive did not work if request was made +using HTTP/0.9. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании сжатия часть ответа могла передаваться несжатой; +ошибка появилась в 0.5.23. +</para> +<para lang="en"> +a part of response body might be passed uncompressed if gzip was used; +the bug had appeared in 0.5.23. +</para> +</change> + +</changes> + + +<changes ver="0.5.23" date="2007-06-04"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssl_module поддерживает расширение TLS Server Name Indication. +</para> +<para lang="en"> +the ngx_http_ssl_module supports Server Name Indication TLS extension. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива fastcgi_catch_stderr.<br/> +Спасибо Николаю Гречуху, проект OWOX. +</para> +<para lang="en"> +the "fastcgi_catch_stderr" directive.<br/> +Thanks to Nick S. Grechukh, OWOX project. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на Линуксе в основном процессе происходил segmentation fault, +если два виртуальных сервера должны bind()ится к пересекающимся портам. +</para> +<para lang="en"> +a segmentation fault occurred in master process if +two virtual servers should bind() to the overlapping ports. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если nginx был собран с модулем ngx_http_perl_module и perl +поддерживал потоки, то во время второй переконфигурации +выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed". +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в использовании протокола HTTPS в директиве proxy_pass. +</para> +<para lang="en"> +in the HTTPS protocol in the "proxy_pass" directive. +</para> +</change> + +</changes> + + +<changes ver="0.5.22" date="2007-05-29"> + +<change type="bugfix"> +<para lang="ru"> +большое тело запроса могло не передаваться бэкенду; +ошибка появилась в 0.5.21. +</para> +<para lang="en"> +a big request body might not be passed to backend; +the bug had appeared in 0.5.21. +</para> +</change> + +</changes> + + +<changes ver="0.5.21" date="2007-05-28"> + +<change type="bugfix"> +<para lang="ru"> +если внутри сервера описано больше примерно десяти location'ов, +то location'ы, заданные с помощью регулярного выражения, +могли выполняться не в том, порядке, в каком они описаны. +</para> +<para lang="en"> +if server has more than about ten locations, then regex locations +might be chosen not in that order as they were specified. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на 64-битной платформе рабочий процесс мог зациклиться, если 33-тий +по счёту или последующий бэкенд упал.<br/> +Спасибо Антону Поварову. +</para> +<para lang="en"> +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.<br/> +Thanks to Anton Povarov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании библиотеки PCRE на Solaris/sparc64 +мог произойти bus error.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +a bus error might occur on Solaris/sparc64 if the PCRE library was used.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в использовании протокола HTTPS в директиве proxy_pass. +</para> +<para lang="en"> +in the HTTPS protocol in the "proxy_pass" directive. +</para> +</change> + +</changes> + + +<changes ver="0.5.20" date="2007-05-07"> + +<change type="feature"> +<para lang="ru"> +директива sendfile_max_chunk. +</para> +<para lang="en"> +the "sendfile_max_chunk" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные "$http_...", "$sent_http_..." и "$upstream_http_..." +можно менять директивой set. +</para> +<para lang="en"> +the "$http_...", "$sent_http_...", and "$upstream_http_..." variables +may be changed using the "set" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании SSI-команды 'if expr="$var = /"' +в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if the SSI command 'if expr="$var = /"' was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +завершающая строка multipart range ответа передавалась неверно.<br/> +Спасибо Evan Miller. +</para> +<para lang="en"> +trailing boundary of multipart range response was transferred incorrectly.<br/> +Thanks to Evan Miller. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не работал на Solaris/sparc64, если был собран Sun Studio.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +nginx did not work on Solaris/sparc64 if it was built by Sun Studio.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_perl_module не собирался make в Solaris.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +the ngx_http_perl_module could not be built by Solaris make.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +</changes> + + +<changes ver="0.5.19" date="2007-04-24"> + +<change type="change"> +<para lang="ru"> +значение переменной $request_time теперь записывается с точностью +до миллисекунд. +</para> +<para lang="en"> +now the $request_time variable has millisecond precision. +</para> +</change> + +<change type="change"> +<para lang="ru"> +метод $r->rflush в модуле ngx_http_perl_module переименован в $r->flush. +</para> +<para lang="en"> +the method $r->rflush of ngx_http_perl_module was renamed to the $r->flush. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $upstream_addr. +</para> +<para lang="en"> +the $upstream_addr variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_headers_hash_max_size и proxy_headers_hash_bucket_size.<br/> +Спасибо Володымыру Костырко. +</para> +<para lang="en"> +the "proxy_headers_hash_max_size" and "proxy_headers_hash_bucket_size" +directives.<br/> +Thanks to Volodymyr Kostyrko. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании sendfile и limit_rate на 64-битных платформах +нельзя было передавать файлы больше 2G. +</para> +<para lang="en"> +the files more than 2G could not be transferred using sendfile and limit_rate +on 64-bit platforms. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании sendfile на 64-битном Linux нельзя было передавать файлы +больше 2G. +</para> +<para lang="en"> +the files more than 2G could not be transferred using sendfile on 64-bit Linux. +</para> +</change> + +</changes> + + +<changes ver="0.5.18" date="2007-04-19"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_sub_filter_module. +</para> +<para lang="en"> +the ngx_http_sub_filter_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные "$upstream_http_...". +</para> +<para lang="en"> +the "$upstream_http_..." variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь переменные $upstream_status и $upstream_response_time +содержат данные о всех обращениях к апстримам, сделанным до X-Accel-Redirect. +</para> +<para lang="en"> +now the $upstream_status and $upstream_response_time variables +keep data about all upstreams before X-Accel-Redirect. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если nginx был собран с модулем ngx_http_perl_module и perl +не поддерживал multiplicity, то после первой переконфигурации +и после получения любого сигнала +в основном процессе происходил segmentation fault; +ошибка появилась в 0.5.9. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если perl не поддерживал multiplicity, то после переконфигурации +перловый код не работал; +ошибка появилась в 0.3.38. +</para> +<para lang="en"> +if perl did not support multiplicity, then after reconfiguration +perl code did not work; +the bug had appeared in 0.3.38. +</para> +</change> + +</changes> + + +<changes ver="0.5.17" date="2007-04-02"> + +<change type="change"> +<para lang="ru"> +теперь nginx для метода TRACE всегда возвращает код 405. +</para> +<para lang="en"> +now nginx always returns the 405 status for the TRACE method. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь nginx поддерживает директиву include внутри блока types. +</para> +<para lang="en"> +now nginx supports the "include" directive inside the "types" block. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +использование переменной $document_root в директиве root и alias +запрещено: оно вызывало рекурсивное переполнение стека. +</para> +<para lang="en"> +the $document_root variable usage in the "root" and "alias" directives +is disabled: this caused recursive stack overflow. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в использовании протокола HTTPS в директиве proxy_pass. +</para> +<para lang="en"> +in the HTTPS protocol in the "proxy_pass" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в некоторых случаях некэшируемые переменные (такие, как $uri) +возвращали старое закэшированное значение. +</para> +<para lang="en"> +in some cases non-cacheable variables (such as $uri variable) +returned old cached value. +</para> +</change> + +</changes> + + +<changes ver="0.5.16" date="2007-03-26"> + +<change type="bugfix"> +<para lang="ru"> +в качестве ключа для хэша в директиве ip_hash не использовалась сеть +класса С.<br/> +Спасибо Павлу Ярковому. +</para> +<para lang="en"> +the C-class network was not used as hash key in the "ip_hash" directive.<br/> +Thanks to Pavel Yarkovoy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в строке "Content-Type" в заголовке ответа бэкенда был указан charset +и строка завершалась символом ";", +то в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.3.50. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки "[alert] zero size buf" при работе с FastCGI-сервером, если +тело запроса, записанное во временный файл, было кратно 32K. +</para> +<para lang="en"> +the "[alert] zero size buf" error when FastCGI server was used and +a request body written in a temporary file was multiple of 32K. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Solaris без параметра --with-debug; +ошибка появилась в 0.5.15. +</para> +<para lang="en"> +nginx could not be built on Solaris without the --with-debug option; +the bug had appeared in 0.5.15. +</para> +</change> + +</changes> + + +<changes ver="0.5.15" date="2007-03-19"> + +<change type="feature"> +<para lang="ru"> +почтовый прокси-сервер поддерживает аутентифицированное SMTP-проксирование и +директивы smtp_auth, smtp_capabilities и xclient.<br/> +Спасибо Антону Южанинову и Максиму Дунину. +</para> +<para lang="en"> +the mail proxy supports authenticated SMTP proxying and +the "smtp_auth", "smtp_capabilities", and "xclient" directives.<br/> +Thanks to Anton Yuzhaninov and Maxim Dounin. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь keep-alive соединения закрываются сразу же по получении сигнала +переконфигурации. +</para> +<para lang="en"> +now the keep-alive connections are closed just after receiving +the reconfiguration signal. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директивы imap и auth переименованы соответственно в mail и pop3_auth. +</para> +<para lang="en"> +the "imap" and "auth" directives were renamed +to the "mail" and "pop3_auth" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если использовался метод аутентификации CRAM-MD5 и не был разрешён метод APOP, +то в рабочем процессе происходил segmentation fault. +</para> +<para lang="en"> +a segmentation fault occurred in worker process +if the CRAM-MD5 authentication method was used +and the APOP method was disabled. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы starttls only в протоколе POP3 nginx +разрешал аутентификацию без перехода в режим SSL. +</para> +<para lang="en"> +if the "starttls only" directive was used in POP3 protocol, +then nginx allowed authentication without switching to the SSL mode. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +рабочие процессы не выходили после переконфигурации и не переоткрывали логи, +если использовался метод eventport. +</para> +<para lang="en"> +worker processes did not exit after reconfiguration and +did not rotate logs if the eventport method was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы ip_hash рабочий процесс мог зациклиться. +</para> +<para lang="en"> +a worker process may got caught in an endless loop, +if the "ip_hash" directive was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь nginx не пишет в лог некоторые alert'ы, +если используются методы eventport или /dev/poll. +</para> +<para lang="en"> +now nginx does not log some alerts if eventport or /dev/poll methods are used. +</para> +</change> + +</changes> + + +<changes ver="0.5.14" date="2007-02-23"> + +<change type="bugfix"> +<para lang="ru"> +nginx игнорировал лишние закрывающие скобки "}" в конце +конфигурационного файла. +</para> +<para lang="en"> +nginx ignored superfluous closing "}" in the end of configuration file. +</para> +</change> + +</changes> + + +<changes ver="0.5.13" date="2007-02-19"> + +<change type="feature"> +<para lang="ru"> +методы COPY и MOVE. +</para> +<para lang="en"> +the COPY and MOVE methods. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_realip_module устанавливал мусор для запросов, +переданных по keep-alive соединению. +</para> +<para lang="en"> +the ngx_http_realip_module set garbage for requests passed via +keep-alive connection. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не работал на 64-битном big-endian Linux.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +nginx did not work on big-endian 64-bit Linux.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при получении слишком длинной команды IMAP/POP3-прокси теперь сразу +закрывает соединение, а не по таймауту. +</para> +<para lang="en"> +now when IMAP/POP3 proxy receives too long command it closes the connection +right away, but not after timeout. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если при использовании метода epoll клиент закрывал преждевременно +соединение со своей стороны, то nginx закрывал это соединение только +по истечении таймаута на передачу. +</para> +<para lang="en"> +if the "epoll" method was used and a client closed a connection prematurely, +then nginx closed the connection after a send timeout only. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.5.8. +</para> +<para lang="en"> +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.5.8. +</para> +</change> + +</changes> + + +<changes ver="0.5.12" date="2007-02-12"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.5.8. +</para> +<para lang="en"> +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.5.8. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании временных файлов в время работы с FastCGI-сервером +в рабочем процессе мог произойти segmentation fault; +ошибка появилась в 0.5.8. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если переменная $fastcgi_script_name записывалась в лог, +то в рабочем процессе мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if the $fastcgi_script_name variable was logged. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ngx_http_perl_module не собирался на Solaris. +</para> +<para lang="en"> +ngx_http_perl_module could not be built on Solaris. +</para> +</change> + +</changes> + + +<changes ver="0.5.11" date="2007-02-05"> + +<change type="feature"> +<para lang="ru"> +теперь configure определяет библиотеку PCRE в MacPorts.<br/> +Спасибо Chris McGrath. +</para> +<para lang="en"> +now configure detects system PCRE library in MacPorts.<br/> +Thanks to Chris McGrath. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответ был неверным, если запрашивалось несколько диапазонов; +ошибка появилась в 0.5.6. +</para> +<para lang="en"> +the response was incorrect if several ranges were requested; +the bug had appeared in 0.5.6. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива create_full_put_path не могла создавать промежуточные каталоги, +если не была установлена директива dav_access.<br/> +Спасибо Evan Miller. +</para> +<para lang="en"> +the "create_full_put_path" directive could not create the intermediate +directories if no "dav_access" directive was set.<br/> +Thanks to Evan Miller. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +вместо кодов ошибок "400" и "408" в access_log мог записываться код "0". +</para> +<para lang="en"> +the "0" response code might be logged in the access_log instead of +the "400" and "408" error codes. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при сборке с оптимизацией -O2 в рабочем процессе мог произойти +segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if nginx was built with -O2 optimization. +</para> +</change> + +</changes> + + +<changes ver="0.5.10" date="2007-01-26"> + +<change type="bugfix"> +<para lang="ru"> +во время обновления исполняемого файла новый процесс не наследовал +слушающие сокеты; +ошибка появилась в 0.5.9. +</para> +<para lang="en"> +while online executable file upgrade the new master process did not +inherit the listening sockets; +the bug had appeared in 0.5.9. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при сборке с оптимизацией -O2 в рабочем процессе мог произойти +segmentation fault; +ошибка появилась в 0.5.1. +</para> +<para lang="en"> +a segmentation fault might occur in worker process +if nginx was built with -O2 optimization; +the bug had appeared in 0.5.1. +</para> +</change> + +</changes> + + +<changes ver="0.5.9" date="2007-01-25"> + +<change type="change"> +<para lang="ru"> +модуль ngx_http_memcached_module теперь в качестве ключа использует +значение переменной $memcached_key. +</para> +<para lang="en"> +now the ngx_http_memcached_module uses the $memcached_key variable value +as a key. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $memcached_key. +</para> +<para lang="en"> +the $memcached_key variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр clean в директиве client_body_in_file_only. +</para> +<para lang="en"> +the "clean" parameter in the "client_body_in_file_only" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива env. +</para> +<para lang="en"> +the "env" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива sendfile работает внутри блока if. +</para> +<para lang="en"> +the "sendfile" directive is available inside the "if" block. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь при ошибке записи в access_log nginx записывает сообщение в error_log, +но не чаще одного раза в минуту. +</para> +<para lang="en"> +now on failure of the writing to access nginx logs a message to error_log, +but not more often than once a minute. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива "access_log off" не всегда запрещала запись в лог. +</para> +<para lang="en"> +the "access_log off" directive did not always turn off the logging. +</para> +</change> + +</changes> + + +<changes ver="0.5.8" date="2007-01-19"> + +<change type="bugfix"> +<para lang="ru"> +если использовалась директива <nobr>"client_body_in_file_only on"</nobr> +и тело запроса было небольшое, то мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur if +<nobr>"client_body_in_file_only on"</nobr> was used +and a request body was small. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +происходил segmentation fault, если использовались директивы +<nobr>"client_body_in_file_only on"</nobr> +и <nobr>"proxy_pass_request_body off"</nobr> +или <nobr>"fastcgi_pass_request_body off"</nobr>, +и делался переход к следующему бэкенду. +</para> +<para lang="en"> +a segmentation fault occurred if <nobr>"client_body_in_file_only on"</nobr> +and <nobr>"proxy_pass_request_body off"</nobr> +or <nobr>"fastcgi_pass_request_body off"</nobr> +directives were used, and nginx switched to a next upstream. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если при использовании директивы "proxy_buffering off" соединение с клиентом +было неактивно, то оно закрывалось по таймауту, заданному директивой +send_timeout; +ошибка появилась в 0.4.7. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если при использовании метода epoll клиент закрывал преждевременно +соединение со своей стороны, то nginx закрывал это соединение только +по истечении таймаута на передачу. +</para> +<para lang="en"> +if the "epoll" method was used and a client closed a connection prematurely, +then nginx closed the connection after a send timeout only. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки "[alert] zero size buf" при работе с FastCGI-сервером. +</para> +<para lang="en"> +the "[alert] zero size buf" error when FastCGI server was used. +</para> +</change> + +<change> +<para lang="ru"> +Исправление ошибок в директиве limit_zone. +</para> +<para lang="en"> +Bugfixes in the "limit_zone" directive. +</para> +</change> + +</changes> + + +<changes ver="0.5.7" date="2007-01-15"> + +<change type="feature"> +<para lang="ru"> +оптимизация использования памяти в ssl_session_cache. +</para> +<para lang="en"> +the ssl_session_cache storage optimization. +</para> +</change> + +<change> +<para lang="ru"> +Исправление ошибок в директивах ssl_session_cache и limit_zone. +</para> +<para lang="en"> +Bugfixes in the "ssl_session_cache" and "limit_zone" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на старте или во время переконфигурации происходил segmentation fault, +если директивы ssl_session_cache или limit_zone использовались +на 64-битных платформах. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директив add_before_body или add_after_body происходил +segmentation fault, если в заголовке ответа нет строки "Content-Type". +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +библиотека OpenSSL всегда собиралась с поддержкой потоков.<br/> +Спасибо Дену Иванову. +</para> +<para lang="en"> +the OpenSSL library was always built with the threads support.<br/> +Thanks to Den Ivanov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость библиотеки PCRE-6.5+ и компилятора icc. +</para> +<para lang="en"> +the PCRE-6.5+ library and the icc compiler compatibility. +</para> +</change> + +</changes> + + +<changes ver="0.5.6" date="2007-01-09"> + +<change type="change"> +<para lang="ru"> +теперь модуль ngx_http_index_module игнорирует все методы, +кроме GET, HEAD и POST. +</para> +<para lang="en"> +now the ngx_http_index_module ignores all methods except the GET, HEAD, and +POST methods. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_limit_zone_module. +</para> +<para lang="en"> +the ngx_http_limit_zone_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $binary_remote_addr. +</para> +<para lang="en"> +the $binary_remote_addr variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы ssl_session_cache модулей ngx_http_ssl_module и ngx_imap_ssl_module. +</para> +<para lang="en"> +the "ssl_session_cache" directives +of the ngx_http_ssl_module and ngx_imap_ssl_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +метод DELETE поддерживает рекурсивное удаление. +</para> +<para lang="en"> +the DELETE method supports recursive removal. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании $r->sendfile() byte-ranges передавались неверно. +</para> +<para lang="en"> +the byte-ranges were transferred incorrectly if the $r->sendfile() was used. +</para> +</change> + +</changes> + + +<changes ver="0.5.5" date="2006-12-24"> + +<change type="change"> +<para lang="ru"> +ключ -v больше не выводит информацию о компиляторе. +</para> +<para lang="en"> +the -v switch does not show compiler information any more. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ключ -V. +</para> +<para lang="en"> +the -V switch. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива worker_rlimit_core поддерживает указание размера в K, M и G. +</para> +<para lang="en"> +the "worker_rlimit_core" directive supports size in K, M, and G. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль nginx.pm теперь может устанавливаться непривилегированным пользователем. +</para> +<para lang="en"> +the nginx.pm module now could be installed by an unprivileged user. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании методов $r->request_body или $r->request_body_file мог +произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur if the $r->request_body or +$r->request_body_file methods were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибок, специфичных для платформы ppc. +</para> +<para lang="en"> +the ppc platform specific bugs. +</para> +</change> + +</changes> + + +<changes ver="0.5.4" date="2006-12-15"> + +<change type="feature"> +<para lang="ru"> +директиву perl можно использовать внутри блока limit_except. +</para> +<para lang="en"> +the "perl" directive may be used inside the "limit_except" block. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_dav_module требовал строку "Date" в заголовке запроса +для метода DELETE. +</para> +<para lang="en"> +the ngx_http_dav_module required the "Date" request header line +for the DELETE method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании одного параметра в директиве dav_access nginx мог +сообщить об ошибке в конфигурации. +</para> +<para lang="en"> +if one only parameter was used in the "dav_access" directive, then +nginx might report about configuration error. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменной $host мог произойти segmentation fault; +ошибка появилась в 0.4.14. +</para> +<para lang="en"> +a segmentation fault might occur if the $host variable was used; +the bug had appeared in 0.4.14. +</para> +</change> + +</changes> + + +<changes ver="0.5.3" date="2006-12-13"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает методы $r->status, $r->log_error +и $r->sleep. +</para> +<para lang="en"> +the ngx_http_perl_module supports the $r->status, $r->log_error, +and $r->sleep methods. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +метод $r->variable поддерживает переменные, неописанные в конфигурации nginx'а. +</para> +<para lang="en"> +the $r->variable method supports variables that do not exist in nginx +configuration. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +метод $r->has_request_body не работал. +</para> +<para lang="en"> +the $r->has_request_body method did not work. +</para> +</change> + +</changes> + + +<changes ver="0.5.2" date="2006-12-11"> + +<change type="bugfix"> +<para lang="ru"> +если в директивах proxy_pass использовалось имя, указанное в upstream, +то nginx пытался найти IP-адрес этого имени; +ошибка появилась в 0.5.1. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.5.1" date="2006-12-11"> + +<change type="bugfix"> +<para lang="ru"> +директива post_action могла не работать после неудачного завершения запроса. +</para> +<para lang="en"> +the "post_action" directive might not run after a unsuccessful completion +of a request. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +обход ошибки в Eudora для Mac; +ошибка появилась в 0.4.11.<br/> +Спасибо Bron Gondwana. +</para> +<para lang="en"> +for Eudora for Mac; +the bug had appeared in 0.4.11.<br/> +Thanks to Bron Gondwana. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при указании в директиве fastcgi_pass имени описанного upstream'а выдавалось +сообщение "no port in upstream"; +ошибка появилась в 0.5.0. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директивах proxy_pass и fastcgi_pass использовались одинаковых имена +серверов, но с разными портами, то эти директивы использовали первый +описанный порт; +ошибка появилась в 0.5.0. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директивах proxy_pass и fastcgi_pass использовались unix domain сокеты, +то эти директивы использовали первый описанный сокет; +ошибка появилась в 0.5.0. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ngx_http_auth_basic_module игнорировал пользователя, если он был указан +в последней строке файла паролей и после пароля не было перевода строки, +возврата каретки или символа ":". +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $upstream_response_time могла быть равна "0.000", хотя время +обработки было больше 1 миллисекунды. +</para> +<para lang="en"> +the $upstream_response_time variable might be equal to "0.000", although +response time was more than 1 millisecond. +</para> +</change> + +</changes> + + +<changes ver="0.5.0" date="2006-12-04"> + +<change type="change"> +<para lang="ru"> +параметры в виде "%name" в директиве log_format больше не поддерживаются. +</para> +<para lang="en"> +the parameters in the "%name" form in the "log_format" directive +are not supported anymore. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout, +fastcgi_upstream_max_fails, и fastcgi_upstream_fail_timeout, +memcached_upstream_max_fails и memcached_upstream_fail_timeout +больше не поддерживаются. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server в блоке upstream поддерживает параметры +max_fails, fail_timeout и down. +</para> +<para lang="en"> +the "server" directive in the "upstream" context supports +the "max_fails", "fail_timeout", and "down" parameters. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ip_hash в блоке upstream. +</para> +<para lang="en"> +the "ip_hash" directive inside the "upstream" block. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +статус WAIT в строке "Auth-Status" в заголовке ответа сервера аутентификации +IMAP/POP3 прокси. +</para> +<para lang="en"> +the WAIT status in the "Auth-Status" header line of the IMAP/POP3 proxy +authentication server response. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на 64-битных платформах; +ошибка появилась в 0.4.14. +</para> +<para lang="en"> +nginx could not be built on 64-bit platforms; +the bug had appeared in 0.4.14. +</para> +</change> + +</changes> + + +<changes ver="0.4.14" date="2006-11-27"> + +<change type="feature"> +<para lang="ru"> +директива proxy_pass_error_message в IMAP/POP3 прокси. +</para> +<para lang="en"> +the "proxy_pass_error_message" directive in IMAP/POP3 proxy. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь configure определяет библиотеку PCRE на FreeBSD, Linux и NetBSD. +</para> +<para lang="en"> +now configure detects system PCRE library on FreeBSD, Linux, and NetBSD. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ngx_http_perl_module не работал с перлом, собранным с поддержкой потоков; +ошибка появилась в 0.3.38. +</para> +<para lang="en"> +ngx_http_perl_module did not work with perl built with the threads support; +the bug had appeared in 0.3.38. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ngx_http_perl_module не работал корректно, если перл вызывался рекурсивно. +</para> +<para lang="en"> +ngx_http_perl_module did not work if perl was called recursively. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx игнорировал имя сервера в строке запроса. +</para> +<para lang="en"> +nginx ignored a host name in a request line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если FastCGI сервер передавал много в stderr, +то рабочий процесс мог зациклиться. +</para> +<para lang="en"> +a worker process may got caught in an endless loop, +if a FastCGI server sent too many data to the stderr. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при изменении системного времени переменная $upstream_response_time +могла быть отрицательной. +</para> +<para lang="en"> +the $upstream_response_time variable may be negative if the system time +was changed backward. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании POP3 серверу аутентификации IMAP/POP3 прокси +не передавался параметр Auth-Login-Attempt. +</para> +<para lang="en"> +the "Auth-Login-Attempt" parameter was not sent to +IMAP/POP3 proxy authentication server when POP3 was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при ошибке соединения с сервером аутентификации IMAP/POP3 прокси +мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur if connect to IMAP/POP3 proxy +authentication server failed. +</para> +</change> + +</changes> + + +<changes ver="0.4.13" date="2006-11-15"> + +<change type="feature"> +<para lang="ru"> +директиву proxy_pass можно использовать внутри блока limit_except. +</para> +<para lang="en"> +the "proxy_pass" directive may be used inside the "limit_except" block. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива limit_except поддерживает все WebDAV методы. +</para> +<para lang="en"> +the "limit_except" directive supports all WebDAV methods. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы add_before_body без директивы add_after_body +ответ передавался не полностью. +</para> +<para lang="en"> +if the "add_before_body" directive was used without +the "add_after_body" directive, then a response did not transferred complete. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +большое тело запроса не принималось, если использовались метод epoll +и deferred accept(). +</para> +<para lang="en"> +a large request body did not receive if the epoll method +and the deferred accept() were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +для ответов модуля ngx_http_autoindex_module не выставлялась кодировка; +ошибка появилась в 0.3.50. +</para> +<para lang="en"> +a charset could not be set for ngx_http_autoindex_module responses; +the bug had appeared in 0.3.50. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки "[alert] zero size buf" при работе с FastCGI-сервером; +</para> +<para lang="en"> +the "[alert] zero size buf" error when FastCGI server was used; +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр конфигурации --group= игнорировался.<br/> +Спасибо Thomas Moschny. +</para> +<para lang="en"> +the --group= configuration parameter was ignored.<br/> +Thanks to Thomas Moschny. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +50-й подзапрос в SSI ответе не работал; +ошибка появилась в 0.3.50. +</para> +<para lang="en"> +the 50th subrequest in SSI response did not work; +the bug had appeared in 0.3.50. +</para> +</change> + +</changes> + + +<changes ver="0.4.12" date="2006-10-31"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает метод $r->variable. +</para> +<para lang="en"> +the ngx_http_perl_module supports the $r->variable method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при включении в ответ большого статического файла с помощью SSI +ответ мог передаваться не полностью. +</para> +<para lang="en"> +if a big static file was included using SSI in a response, +then the response may be transferred incomplete. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не убирал "#fragment" в URI. +</para> +<para lang="en"> +nginx did not omit the "#fragment" part in URI. +</para> +</change> + +</changes> + + +<changes ver="0.4.11" date="2006-10-25"> + +<change type="feature"> +<para lang="ru"> +POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5. +</para> +<para lang="en"> +the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает метод $r->allow_ranges. +</para> +<para lang="en"> +the ngx_http_perl_module supports the $r->allow_ranges method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при включённой поддержке команды APOP в POP3 прокси могли +не работать команды USER/PASS; +ошибка появилась в 0.4.10. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.4.10" date="2006-10-23"> + +<change type="feature"> +<para lang="ru"> +POP3 прокси поддерживает APOP. +</para> +<para lang="en"> +the POP3 proxy supports the APOP command. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании методов select, poll и /dev/poll во время ожидания +ответа от сервера аутентификации IMAP/POP3 прокси нагружал процессор. +</para> +<para lang="en"> +if the select, poll or /dev/poll methods were used, then while +waiting authentication server response the IMAP/POP3 proxy hogged CPU. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменной $server_addr в директиве map мог +произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault might occur if the $server_addr variable was used +in the "map" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_flv_module не поддерживал byte ranges для полных ответов; +ошибка появилась в 0.4.7. +</para> +<para lang="en"> +the ngx_http_flv_module did not support the byte ranges for full responses; +the bug had appeared in 0.4.7. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Debian amd64; +ошибка появилась в 0.4.9. +</para> +<para lang="en"> +nginx could not be built on Debian amd64; +the bug had appeared in 0.4.9. +</para> +</change> + +</changes> + + +<changes ver="0.4.9" date="2006-10-13"> + +<change type="feature"> +<para lang="ru"> +параметр set в команде SSI include. +</para> +<para lang="en"> +the "set" parameter in the "include" SSI command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module теперь проверяет версию модуля nginx.pm. +</para> +<para lang="en"> +the ngx_http_perl_module now tests the nginx.pm module version. +</para> +</change> + +</changes> + + +<changes ver="0.4.8" date="2006-10-11"> + +<change type="bugfix"> +<para lang="ru"> +если до команды SSI include с параметром wait выполнялась ещё +одна команда SSI include, то параметр wait мог не работать. +</para> +<para lang="en"> +if an "include" SSI command were before another "include" SSI command +with a "wait" parameter, then the "wait" parameter might not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_flv_module добавлял FLV-заголовок для полных ответов.<br/> +Спасибо Алексею Ковырину. +</para> +<para lang="en"> +the ngx_http_flv_module added the FLV header to the full responses.<br/> +Thanks to Alexey Kovyrin. +</para> +</change> + +</changes> + + +<changes ver="0.4.7" date="2006-10-10"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_flv_module. +</para> +<para lang="en"> +the ngx_http_flv_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $request_body_file. +</para> +<para lang="en"> +the $request_body_file variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы charset и source_charset поддерживают переменные. +</para> +<para lang="en"> +the "charset" and "source_charset" directives support the variables. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если до команды SSI include с параметром wait выполнялась ещё +одна команда SSI include, то параметр wait мог не работать. +</para> +<para lang="en"> +if an "include" SSI command were before another "include" SSI command +with a "wait" parameter, then the "wait" parameter might not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании директивы "proxy_buffering off" или при работе +с memcached соединения могли не закрываться по таймауту. +</para> +<para lang="en"> +if the "proxy_buffering off" directive was used or while working with +memcached the connections might not be closed on timeout. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64. +</para> +<para lang="en"> +nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64. +</para> +</change> + +</changes> + + +<changes ver="0.4.6" date="2006-10-06"> + +<change type="bugfix"> +<para lang="ru"> +nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64. +</para> +<para lang="en"> +nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при запросе версии HTTP/1.1 nginx передавал ответ chunk'ами, +если длина ответа в методе $r->headers_out("Content-Length", ...) +была задана текстовой строкой. +</para> +<para lang="en"> +nginx sent the chunked response for HTTP/1.1 request,<br/> +if its length was set by text string in +the $r->headers_out("Content-Length", ...) method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после перенаправления ошибки с помощью директивы error_page любая директива +модуля ngx_http_rewrite_module возвращала эту ошибку; +ошибка появилась в 0.4.4. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.4.5" date="2006-10-02"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Linux и Solaris; +ошибка появилась в 0.4.4. +</para> +<para lang="en"> +nginx could not be built on Linux and Solaris; +the bug had appeared in 0.4.4. +</para> +</change> + +</changes> + + +<changes ver="0.4.4" date="2006-10-02"> + +<change type="feature"> +<para lang="ru"> +переменная $scheme. +</para> +<para lang="en"> +the $scheme variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива expires поддерживает параметр max. +</para> +<para lang="en"> +the "expires" directive supports the "max" parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива include поддерживает маску "*".<br/> +Спасибо Jonathan Dance. +</para> +<para lang="en"> +the "include" directive supports the "*" mask.<br/> +Thanks to Jonathan Dance. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива return всегда изменяла код ответа, перенаправленного +директивой error_page. +</para> +<para lang="en"> +the "return" directive always overrode the "error_page" response code +redirected by the "error_page" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +происходил segmentation fault, если в методе PUT передавалось +тело нулевой длины. +</para> +<para lang="en"> +a segmentation fault occurred if zero-length body was in PUT method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании переменных в директиве proxy_redirect редирект +изменялся неверно. +</para> +<para lang="en"> +the redirect was changed incorrectly if the variables were used +in the "proxy_redirect" directive. +</para> +</change> + +</changes> + + +<changes ver="0.4.3" date="2006-09-26"> + +<change type="change"> +<para lang="ru"> +ошибку 499 теперь нельзя перенаправить с помощью директивы error_page. +</para> +<para lang="en"> +now the 499 error could not be redirected using an "error_page" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка Solaris 10 event ports. +</para> +<para lang="en"> +the Solaris 10 event ports support. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_browser_module. +</para> +<para lang="en"> +the ngx_http_browser_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении ошибки 400 проксированному серверу +помощью директивы error_page мог произойти segmentation fault. +</para> +<para lang="en"> +a segmentation fault may occur while redirecting the 400 error +to the proxied server using a "proxy_pass" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +происходил segmentation fault, если в директиве proxy_pass использовался +unix domain сокет; +ошибка появилась в 0.3.47. +</para> +<para lang="en"> +a segmentation fault occurred if an unix domain socket was used in +a "proxy_pass" directive; +the bug had appeared in 0.3.47. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +SSI не работал с ответами memcached и небуферизированными проксированными +ответами. +</para> +<para lang="en"> +SSI did work with memcached and nonbuffered responses. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +обход ошибки PAUSE hardware capability в Sun Studio. +</para> +<para lang="en"> +of the Sun Studio PAUSE hardware capability bug. +</para> +</change> + +</changes> + + +<changes ver="0.4.2" date="2006-09-14"> + +<change type="bugfix"> +<para lang="ru"> +убрана поддержка флага O_NOATIME на Linux; +ошибка появилась в 0.4.1. +</para> +<para lang="en"> +the O_NOATIME flag support on Linux was canceled; +the bug had appeared in 0.4.1. +</para> +</change> + +</changes> + + +<changes ver="0.4.1" date="2006-09-14"> + +<change type="bugfix"> +<para lang="ru"> +совместимость с DragonFlyBSD.<br/> +Спасибо Павлу Назарову. +</para> +<para lang="en"> +the DragonFlyBSD compatibility.<br/> +Thanks to Pavel Nazarov. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +обход ошибки в sendfile() в 64-битном Linux при передаче файлов больше 2G. +</para> +<para lang="en"> +of bug in 64-bit Linux sendfile(), when file is more than 2G. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +теперь на Linux nginx для статических запросов использует флаг O_NOATIME.<br/> +Спасибо Yusuf Goolamabbas. +</para> +<para lang="en"> +now on Linux nginx uses O_NOATIME flag for static requests.<br/> +Thanks to Yusuf Goolamabbas. +</para> +</change> + +</changes> + + +<changes ver="0.4.0" date="2006-08-30"> + +<change> +<para lang="ru"> +Изменение во внутреннем API: инициализация модулей HTTP перенесена из фазы +init module в фазу HTTP postconfiguration. +</para> +<para lang="en"> +Change in internal API: the HTTP modules initialization was moved +from the init module phase to the HTTP postconfiguration phase. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь тело запроса в модуле ngx_http_perl_module не считывается +заранее: нужно явно инициировать чтение с помощью метода $r->has_request_body. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает код возврата DECLINED. +</para> +<para lang="en"> +the ngx_http_perl_module supports the DECLINED return code. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_dav_module поддерживает входящую строку заголовка "Date" +для метода PUT. +</para> +<para lang="en"> +the ngx_http_dav_module supports the incoming "Date" header line +for the PUT method. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssi работает внутри блока if. +</para> +<para lang="en"> +the "ssi" directive is available inside the "if" block. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +происходил segmentation fault, если в директиве index использовалась +переменные и при этом первое имя индексного файла было без переменных; +ошибка появилась в 0.1.29. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.61" date="2006-08-28"> + +<change type="change"> +<para lang="ru"> +директива tcp_nodelay теперь по умолчанию включена. +</para> +<para lang="en"> +now the "tcp_nodelay" directive is turned on by default. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива msie_refresh. +</para> +<para lang="en"> +the "msie_refresh" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива recursive_error_pages. +</para> +<para lang="en"> +the "recursive_error_pages" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива rewrite возвращала неправильный редирект, если редирект +включал в себя выделенные закодированные символы из оригинального URI. +</para> +<para lang="en"> +the "rewrite" directive returned incorrect redirect, if the redirect +had the captured escaped symbols from original URI. +</para> +</change> + +</changes> + + +<changes ver="0.3.60" date="2006-08-18"> + +<change type="bugfix"> +<para lang="ru"> +во время перенаправления ошибки рабочий процесс мог зациклиться; +ошибка появилась в 0.3.59. +</para> +<para lang="en"> +a worker process may got caught in an endless loop +while an error redirection; +the bug had appeared in 0.3.59. +</para> +</change> + +</changes> + + +<changes ver="0.3.59" date="2006-08-16"> + +<change type="feature"> +<para lang="ru"> +теперь можно делать несколько перенаправлений через директиву error_page. +</para> +<para lang="en"> +now is possible to do several redirection using the "error_page" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива dav_access не поддерживала три параметра. +</para> +<para lang="en"> +the "dav_access" directive did not support three parameters. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива error_page не изменяла строку "Content-Type" +после перенаправления с помощью "X-Accel-Redirect"; +ошибка появилась в 0.3.58. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.58" date="2006-08-14"> + +<change type="feature"> +<para lang="ru"> +директива error_page поддерживает переменные. +</para> +<para lang="en"> +the "error_page" directive supports the variables. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь на Linux используется интерфейс procfs вместо sysctl. +</para> +<para lang="en"> +now the procfs interface instead of sysctl is used on Linux. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь при использовании "X-Accel-Redirect" строка "Content-Type" наследуется +из первоначального ответа. +</para> +<para lang="en"> +now the "Content-Type" header line is inherited from first response +when the "X-Accel-Redirect" was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива error_page не перенаправляла ошибку 413. +</para> +<para lang="en"> +the "error_page" directive did not redirect the 413 error. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +завершающий "?" не удалял старые аргументы, если в переписанном URI +не было новых аргументов. +</para> +<para lang="en"> +the trailing "?" did not remove old arguments if no new arguments +were added to a rewritten URI. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не запускался на 64-битной FreeBSD 7.0-CURRENT. +</para> +<para lang="en"> +nginx could not run on 64-bit FreeBSD 7.0-CURRENT. +</para> +</change> + +</changes> + + +<changes ver="0.3.57" date="2006-08-09"> + +<change type="feature"> +<para lang="ru"> +переменная $ssl_client_serial. +</para> +<para lang="en"> +the $ssl_client_serial variable. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в операторе "!-e" в директиве if.<br/> +Спасибо Андриану Буданцову. +</para> +<para lang="en"> +in the "!-e" operator of the "if" directive.<br/> +Thanks to Andrian Budanstov. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проверке клиентского сертификата nginx не передавал клиенту +информацию о требуемых сертификатах. +</para> +<para lang="en"> +while a client certificate verification nginx did not send to a client +the required certificates information. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $document_root не поддерживала переменные в директиве root. +</para> +<para lang="en"> +the $document_root variable did not support the variables in the "root" +directive. +</para> +</change> + +</changes> + + +<changes ver="0.3.56" date="2006-08-04"> + +<change type="feature"> +<para lang="ru"> +директива dav_access. +</para> +<para lang="en"> +the "dav_access" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива if поддерживает операторы "-d", "!-d", "-e", "!-e", "-x" и "!-x". +</para> +<para lang="en"> +the "if" directive supports the "-d", "!-d", "-e", "!-e", "-x", and "!-x" +operators. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при записи в access_log некоторых передаваемых клиенту строк заголовков +происходил segmentation fault, если запрос возвращал редирект. +</para> +<para lang="en"> +a segmentation fault occurred if a request returned a redirect and +some sent to client header lines were logged in the access log. +</para> +</change> + +</changes> + + +<changes ver="0.3.55" date="2006-07-28"> + +<change type="feature"> +<para lang="ru"> +параметр stub в команде SSI include. +</para> +<para lang="en"> +the "stub" parameter in the "include" SSI command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +команда SSI block. +</para> +<para lang="en"> +the "block" SSI command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +скрипт unicode2nginx добавлен в contrib. +</para> +<para lang="en"> +the unicode2nginx script was added to contrib. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если root был задан только переменной, то корень задавался +относительно префикса сервера. +</para> +<para lang="en"> +if a "root" was specified by variable only, then the root was relative +to a server prefix. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в запросе был "//" или "/.", и после этого закодированные +символы в виде "%XX", то проксируемый запрос передавался незакодированным. +</para> +<para lang="en"> +if the request contained "//" or "/./" and escaped symbols after them, +then the proxied request was sent unescaped. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +метод $r->header_in("Cookie") модуля ngx_http_perl_module теперь возвращает +все строки "Cookie" в заголовке запроса. +</para> +<para lang="en"> +the $r->header_in("Cookie") of the ngx_http_perl_module now returns +all "Cookie" header lines. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +происходил segmentation fault, если использовался +<nobr>"client_body_in_file_only on"</nobr> +и делался переход к следующему бэкенду. +</para> +<para lang="en"> +a segmentation fault occurred if <nobr>"client_body_in_file_only on"</nobr> +was used and nginx switched to a next upstream. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при некоторых условиях во время переконфигурации коды символов +внутри директивы charset_map могли считаться неверными; +ошибка появилась в 0.3.50. +</para> +<para lang="en"> +on some condition while reconfiguration character codes +inside the "charset_map" may be treated invalid; +the bug had appeared in 0.3.50. +</para> +</change> + +</changes> + + +<changes ver="0.3.54" date="2006-07-11"> + +<change type="feature"> +<para lang="ru"> +nginx теперь записывает в лог информацию о подзапросах. +</para> +<para lang="en"> +nginx now logs the subrequest information to the error log. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_next_upstream, fastcgi_next_upstream и memcached_next_upstream +поддерживают параметр off. +</para> +<para lang="en"> +the "proxy_next_upstream", "fastcgi_next_upstream", +and "memcached_next_upstream" directives support the "off" parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива debug_connection поддерживает запись адресов в формате CIDR. +</para> +<para lang="en"> +the "debug_connection" directive supports the CIDR address form. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перекодировании ответа проксированного сервера или сервера FastCGI +в UTF-8 или наоборот ответ мог передаваться не полностью. +</para> +<para lang="en"> +if a response of proxied server or FastCGI server was converted from UTF-8 +or back, then it may be transferred incomplete. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $upstream_response_time содержала время только первого +обращения к бэкенду. +</para> +<para lang="en"> +the $upstream_response_time variable had the time of the first +request to a backend only. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на платформе amd64; +ошибка появилась в 0.3.53. +</para> +<para lang="en"> +nginx could not be built on amd64 platform; +the bug had appeared in 0.3.53. +</para> +</change> + +</changes> + + +<changes ver="0.3.53" date="2006-07-07"> + +<change type="change"> +<para lang="ru"> +директива add_header добавляет строки в ответы с кодом 204, 301 и 302. +</para> +<para lang="en"> +the "add_header" directive adds the string to 204, 301, and 302 responses. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server в блоке upstream поддерживает параметр weight. +</para> +<para lang="en"> +the "server" directive in the "upstream" context supports +the "weight" parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server_name поддерживает маску "*". +</para> +<para lang="en"> +the "server_name" directive supports the "*" wildcard. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +nginx поддерживает тело запроса больше 2G. +</para> +<para lang="en"> +nginx supports the request body size more than 2G. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если при использовании "satisfy_any on" клиент успешно проходил аутентификацию, +в лог всё равно записалоcь сообщение "access forbidden by rule". +</para> +<para lang="en"> +if a client was successfully authorized using "satisfy_any on", then anyway +the message "access forbidden by rule" was written in the log. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +метод PUT мог ошибочно не создать файл и вернуть код 409. +</para> +<para lang="en"> +the "PUT" method may erroneously not create a file and return the 409 code. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если во время аутентификации IMAP/POP3 бэкенд возвращал ошибку, nginx +продолжал проксирование. +</para> +<para lang="en"> +if the IMAP/POP3 backend returned an error, then nginx continued proxying +anyway. +</para> +</change> + +</changes> + + +<changes ver="0.3.52" date="2006-07-03"> + +<change type="change"> +<para lang="ru"> +восстановлено поведение модуля ngx_http_index_module для запросов "POST /": +как в версии до 0.3.40, модуль теперь не выдаёт ошибку 405. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании ограничения скорости рабочий процесс мог зациклиться; +ошибка появилась в 0.3.37. +</para> +<para lang="en"> +the worker process may got caught in an endless loop if the limit rate was used; +the bug had appeared in 0.3.37. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_charset_module записывал в лог ошибку "unknown charset", +даже если перекодировка не требовалась; +ошибка появилась в 0.3.50. +</para> +<para lang="en"> +ngx_http_charset_module logged "unknown charset" alert, even if the recoding +was not needed; +the bug had appeared in 0.3.50. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в результате запроса PUT возвращался код 409, то временный файл +не удалялся. +</para> +<para lang="en"> +if a code response of the PUT request was 409, then a temporary file +was not removed. +</para> +</change> + +</changes> + + +<changes ver="0.3.51" date="2006-06-30"> + +<change type="bugfix"> +<para lang="ru"> +при некоторых условиях в SSI мог пропадать символы "<"; +ошибка появилась в 0.3.50. +</para> +<para lang="en"> +the "<" symbols might disappeared some conditions in the SSI; +the bug had appeared in 0.3.50. +</para> +</change> + +</changes> + + +<changes ver="0.3.50" date="2006-06-28"> + +<change type="change"> +<para lang="ru"> +директивы proxy_redirect_errors и fastcgi_redirect_errors +переименованы соответственно в proxy_intercept_errors и +fastcgi_intercept_errors. +</para> +<para lang="en"> +the "proxy_redirect_errors" and "fastcgi_redirect_errors" directives +was renamed to the "proxy_intercept_errors" and +"fastcgi_intercept_errors" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_charset_module поддерживает перекодирование из +однобайтных кодировок в UTF-8 и обратно. +</para> +<para lang="en"> +the ngx_http_charset_module supports the recoding from the single byte +encodings to the UTF-8 encoding and back. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Charset" +в ответе бэкенда. +</para> +<para lang="en"> +the "X-Accel-Charset" response header line is supported in proxy +and FastCGI mode. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +символ "\" в парах "\"" и "\'" в SSI командах убирался, только если +также использовался символ "$". +</para> +<para lang="en"> +the "\" escape symbol in the "\"" and "\'" pairs in the SSI command +was removed only if the command also has the "$" symbol. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при некоторых условиях в SSI после вставки могла быть добавлена +строка "<!--". +</para> +<para lang="en"> +the "<!--" string might be added on some conditions +in the SSI after inclusion. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в заголовке ответа была строка <nobr>"Content-Length: 0",</nobr> +то при использовании небуферизированного проксировании не закрывалось соединение +с клиентом. +</para> +<para lang="en"> +if the "Content-Length: 0" header line was in response, then +in nonbuffered proxying mode the client connection was not closed. +</para> +</change> + +</changes> + + +<changes ver="0.3.49" date="2006-05-31"> + +<change type="bugfix"> +<para lang="ru"> +в директиве set. +</para> +<para lang="en"> +in the "set" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при включении в ssi двух и более подзапросов, обрабатываемых через FastCGI, +вместо вывода второго и остальных подзапросов в ответ включался вывод +первого подзапроса. +</para> +<para lang="en"> +if two or more FastCGI subrequests was in SSI, then first subrequest output +was included instead of second and following subrequests. +</para> +</change> + +</changes> + + +<changes ver="0.3.48" date="2006-05-29"> + +<change type="change"> +<para lang="ru"> +теперь модуль ngx_http_charset_module работает для подзапросов, +в ответах которых нет строки заголовка "Content-Type". +</para> +<para lang="en"> +now the ngx_http_charset_module works for subrequests, +if the response has no "Content-Type" header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве proxy_pass не было URI, +то директива "proxy_redirect default" добавляла в переписанный +редирект в начало лишний слэш. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +внутренний редирект всегда превращал любой HTTP-метод в GET, +теперь это делается только для редиректов, выполняемых с помощью +X-Accel-Redirect, и у которых метод не равен HEAD; +ошибка появилась в 0.3.42. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_perl_module не собирался, если перл был с поддержкой потоков; +ошибка появилась в 0.3.46. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.47" date="2006-05-23"> + +<change type="feature"> +<para lang="ru"> +директива upstream. +</para> +<para lang="en"> +the "upstream" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +символ "\" в парах "\"" и "\'" в SSI командах теперь всегда убирается. +</para> +<para lang="en"> +now the "\" escape symbol in the "\"" and "\'" pairs in the SSI command +is always removed. +</para> +</change> + +</changes> + + +<changes ver="0.3.46" date="2006-05-11"> + +<change type="feature"> +<para lang="ru"> +директивы proxy_hide_header, proxy_pass_header, fastcgi_hide_header +и fastcgi_pass_header. +</para> +<para lang="en"> +the "proxy_hide_header", "proxy_pass_header", "fastcgi_hide_header", +and "fastcgi_pass_header" directives. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и proxy_pass_server +упразднены. +</para> +<para lang="en"> +the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and "proxy_pass_server" +directives were canceled. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в режиме прокси поддерживается строка заголовка "X-Accel-Buffering" +в ответе бэкенда. +</para> +<para lang="en"> +the "X-Accel-Buffering" response header line is supported in proxy mode. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибок и утечек памяти при переконфигурации в модуле ngx_http_perl_module. +</para> +<para lang="en"> +the reconfiguration bug and memory leaks in the ngx_http_perl_module. +</para> +</change> + +</changes> + + +<changes ver="0.3.45" date="2006-05-06"> + +<change type="feature"> +<para lang="ru"> +директивы ssl_verify_client, ssl_verify_depth и ssl_client_certificate. +</para> +<para lang="en"> +the "ssl_verify_client", "ssl_verify_depth", and "ssl_client_certificate" +directives. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь переменная $request_method возвращает метод только основного запроса. +</para> +<para lang="en"> +the $request_method variable now returns the main request method. +</para> +</change> + +<change type="change"> +<para lang="ru"> +в таблице перекодировки koi-win изменены коды символа &deg;. +</para> +<para lang="en"> +the &deg; symbol codes were changed in koi-win conversion table. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в таблицу перекодировки koi-win добавлены символы евро и номера. +</para> +<para lang="en"> +the euro and N symbols were added to koi-win conversion table. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если nginx распределял запросы на несколько машин, то при падении +одной из них запросы, предназначенные для этой машины, перенаправлялись только +на одну машину вместо того, чтобы равномерно распределяться между остальными. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.44" date="2006-05-04"> + +<change type="feature"> +<para lang="ru"> +параметр wait в команде SSI include. +</para> +<para lang="en"> +the "wait" parameter in the "include" SSI command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в таблицу перекодировки koi-win добавлены украинские и белорусские символы. +</para> +<para lang="en"> +the Ukrainian and Byelorussian characters were added to koi-win conversion +table. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в SSI. +</para> +<para lang="en"> +in the SSI. +</para> +</change> + +</changes> + + +<changes ver="0.3.43" date="2006-04-26"> + +<change type="bugfix"> +<para lang="ru"> +в SSI. +</para> +<para lang="en"> +in the SSI. +</para> +</change> + +</changes> + + +<changes ver="0.3.42" date="2006-04-26"> + +<change type="feature"> +<para lang="ru"> +параметр bind в директиве listen в IMAP/POP3 прокси. +</para> +<para lang="en"> +the "bind" option of the "listen" directive in IMAP/POP3 proxy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании в директиве rewrite одного и того же +выделения более одного раза. +</para> +<para lang="en"> +if the same capture in the "rewrite" directive was used more then once. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в лог не записывались переменные +$sent_http_content_type, $sent_http_content_length, $sent_http_last_modified, +$sent_http_connection, $sent_http_keep_alive и $sent_http_transfer_encoding. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменная $sent_http_cache_control возвращала содержимое только одной +строки "Cache-Control" в заголовке ответа. +</para> +<para lang="en"> +the $sent_http_cache_control returned value of the single "Cache-Control" +response header line. +</para> +</change> + +</changes> + + +<changes ver="0.3.41" date="2006-04-21"> + +<change type="feature"> +<para lang="ru"> +ключ -v. +</para> +<para lang="en"> +the -v switch. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при включении в SSI удалённых подзапросов +мог произойти segmentation fault. +</para> +<para lang="en"> +the segmentation fault may occurred if the SSI page has remote subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в обработке FastCGI. +</para> +<para lang="en"> +in FastCGI handling. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если путь к перловым модулям не был указан с помощью +--with-perl_modules_path=PATH или директивы perl_modules, +то на старте происходил segmentation fault. +</para> +<para lang="en"> +if the perl modules path was not set using +--with-perl_modules_path=PATH or the "perl_modules", then +the segmentation fault was occurred. +</para> +</change> + +</changes> + + +<changes ver="0.3.40" date="2006-04-19"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_dav_module поддерживает метод MKCOL. +</para> +<para lang="en"> +the ngx_http_dav_module supports the MKCOL method. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива create_full_put_path. +</para> +<para lang="en"> +the "create_full_put_path" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $limit_rate. +</para> +<para lang="en"> +the "$limit_rate" variable. +</para> +</change> + +</changes> + + +<changes ver="0.3.39" date="2006-04-17"> + +<change type="feature"> +<para lang="ru"> +директива uninitialized_variable_warn; уровень логгирования сообщения +о неинициализированной переменной понижен с уровня alert на warn. +</para> +<para lang="en"> +the "uninitialized_variable_warn" directive; the logging level of the +"uninitialized variable" message was lowered from "alert" to "warn". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива override_charset. +</para> +<para lang="en"> +the "override_charset" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +при использовании неизвестной переменной в SSI-командах echo и if expr='$name' +теперь не записывается в лог сообщение о неизвестной переменной. +</para> +<para lang="en"> +now if the unknown variable is used in the "echo" and "if expr='$name'" +SSI-commands, then the "unknown variable" message is not logged. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +счётчик активных соединений рос при превышении лимита соединений, +заданного директивой worker_connections; +ошибка появилась в 0.2.0. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при некоторых условия ограничение скорости соединения могло не работать; +ошибка появилась в 0.3.38. +</para> +<para lang="en"> +the limit rate might not work on some condition; +the bug had appeared in 0.3.38. +</para> +</change> + +</changes> + + +<changes ver="0.3.38" date="2006-04-14"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_dav_module. +</para> +<para lang="en"> +the ngx_http_dav_module. +</para> +</change> + +<change type="change"> +<para lang="ru"> +оптимизация модуля ngx_http_perl_module.<br/> +Спасибо Сергею Скворцову. +</para> +<para lang="en"> +the ngx_http_perl_module optimizations.<br/> +Thanks to Sergey Skvortsov. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает метод $r->request_body_file. +</para> +<para lang="en"> +the ngx_http_perl_module supports the $r->request_body_file method. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива client_body_in_file_only. +</para> +<para lang="en"> +the "client_body_in_file_only" directive. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +теперь при переполнении диска nginx пытается писать access_log'и только +раз в секунду.<br/> +Спасибо Антону Южанинову и Максиму Дунину. +</para> +<para lang="en"> +now on disk overflow nginx tries to write access logs once a second only.<br/> +Thanks to Anton Yuzhaninov and Maxim Dounin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +теперь директива limit_rate точнее ограничивает скорость при значениях +больше <nobr>100 Kbyte/s.</nobr><br/> +Спасибо ForJest. +</para> +<para lang="en"> +now the "limit_rate" directive more precisely limits rate if rate is more +than <nobr>100 Kbyte/s.</nobr><br/> +Thanks to ForJest. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +IMAP/POP3 прокси теперь передаёт серверу авторизации символы "\r" и "\n" +в логине и пароле в закодированном виде.<br/> +Спасибо Максиму Дунину. +</para> +<para lang="en"> +now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in login and +password to pass authorization server.<br/> +Thanks to Maxim Dounin. +</para> +</change> + +</changes> + + +<changes ver="0.3.37" date="2006-04-07"> + +<change type="feature"> +<para lang="ru"> +директива limit_except. +</para> +<para lang="en"> +the "limit_except" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива if поддерживает операторы "!~", "!~*", "-f" и "!-f". +</para> +<para lang="en"> +the "if" directive supports the "!~", "!~*", "-f", and "!-f" operators. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает метод $r->request_body. +</para> +<para lang="en"> +the ngx_http_perl_module supports the $r->request_body method. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в модуле ngx_http_addition_filter_module. +</para> +<para lang="en"> +in the ngx_http_addition_filter_module. +</para> +</change> + +</changes> + + +<changes ver="0.3.36" date="2006-04-05"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_addition_filter_module. +</para> +<para lang="en"> +the ngx_http_addition_filter_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_pass и fastcgi_pass можно использовать внутри блока if. +</para> +<para lang="en"> +the "proxy_pass" and "fastcgi_pass" directives may be used inside +the "if" block. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort. +</para> +<para lang="en"> +the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $request_completion. +</para> +<para lang="en"> +the "$request_completion" variable. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает методы $r->request_method и +$r->remote_addr. +</para> +<para lang="en"> +the ngx_http_perl_module supports the $r->request_method and $r->remote_addr. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_module поддерживает команду elif. +</para> +<para lang="en"> +the ngx_http_ssi_module supports the "elif" command. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строка "\/" в начале выражения команды if модуля ngx_http_ssi_module +воспринималась неверно. +</para> +<para lang="en"> +the "\/" string in the expression of the "if" command of the +ngx_http_ssi_module was treated incorrectly. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в использовании регулярных выражениях в команде if модуля ngx_http_ssi_module. +</para> +<para lang="en"> +in the regular expressions in the "if" command of the ngx_http_ssi_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при задании относительного пути в директивах +client_body_temp_path, proxy_temp_path, fastcgi_temp_path и perl_modules +использовался каталог относительно текущего каталога, а не относительно +префикса сервера. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.35" date="2006-03-22"> + +<change type="bugfix"> +<para lang="ru"> +accept-фильтр и TCP_DEFER_ACCEPT устанавливались только для первой +директивы listen; +ошибка появилась в 0.3.31. +</para> +<para lang="en"> +the accept-filter and the TCP_DEFER_ACCEPT option were set for first "listen" +directive only; +the bug had appeared in 0.3.31. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве proxy_pass без URI при использовании в подзапросе. +</para> +<para lang="en"> +in the "proxy_pass" directive without the URI part in a subrequest. +</para> +</change> + +</changes> + + +<changes ver="0.3.34" date="2006-03-21"> + +<change type="feature"> +<para lang="ru"> +директива add_header поддерживает переменные. +</para> +<para lang="en"> +the "add_header" directive supports the variables. +</para> +</change> + +</changes> + + +<changes ver="0.3.33" date="2006-03-15"> + +<change type="feature"> +<para lang="ru"> +параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream. +</para> +<para lang="en"> +the "http_503" parameter of the "proxy_next_upstream" or +"fastcgi_next_upstream" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ngx_http_perl_module не работал со встроенным в конфигурационный файл кодом, +если он не начинался сразу же с "sub". +</para> +<para lang="en"> +ngx_http_perl_module did not work with inlined in the configuration code, +if it was not started with the "sub" word. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве post_action. +</para> +<para lang="en"> +in the "post_action" directive. +</para> +</change> + +</changes> + + +<changes ver="0.3.32" date="2006-03-11"> + +<change type="bugfix"> +<para lang="ru"> +удаление отладочного логгирования на старте и при переконфигурации; +ошибка появилась в 0.3.31. +</para> +<para lang="en"> +the debug logging on startup and reconfiguration time was removed; +the bug had appeared in 0.3.31. +</para> +</change> + +</changes> + + +<changes ver="0.3.31" date="2006-03-10"> + +<change type="change"> +<para lang="ru"> +теперь nginx передаёт неверные ответы проксированного бэкенда. +</para> +<para lang="en"> +now nginx passes the malformed proxied backend responses. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы listen поддерживают адрес в виде "*:порт". +</para> +<para lang="en"> +the "listen" directives support the address in the "*:port" form. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка EVFILER_TIMER в MacOSX 10.4. +</para> +<para lang="en"> +the EVFILER_TIMER support in MacOSX 10.4. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +обход ошибки обработки миллисекундных таймаутов kqueue в 64-битном ядре +MacOSX.<br/> +Спасибо Андрею Нигматулину. +</para> +<para lang="en"> +for MacOSX 64-bit kernel kqueue millisecond timeout bug.<br/> +Thanks to Andrei Nigmatulin. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если внутри одного сервера описаны несколько директив listen, слушающих на +разных адресах, то имена серверов вида "*.domain.tld" работали только +для первого адреса; +ошибка появилась в 0.3.18. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании протокола HTTPS в директиве proxy_pass не передавались +запросы с телом, записанным во временный файл. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с perl 5.8.8. +</para> +<para lang="en"> +perl 5.8.8 compatibility. +</para> +</change> + +</changes> + + +<changes ver="0.3.30" date="2006-02-22"> + +<change type="change"> +<para lang="ru"> +уровень записи в лог ошибки ECONNABORTED изменён на error с уровня crit. +</para> +<para lang="en"> +the ECONNABORTED error log level was changed to "error" from "crit". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_perl_module не собирался без модуля ngx_http_ssi_filter_module. +</para> +<para lang="en"> +the ngx_http_perl_module could not be build without +the ngx_http_ssi_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на i386 платформе, если использовался PIC; +ошибка появилась в 0.3.27. +</para> +<para lang="en"> +nginx could not be built on i386 platform, if the PIC was used; +the bug had appeared in 0.3.27. +</para> +</change> + +</changes> + + +<changes ver="0.3.29" date="2006-02-20"> + +<change type="feature"> +<para lang="ru"> +теперь nginx использует меньше памяти, если PHP в режиме FastCGI передаёт +большое количество предупреждений перед ответом. +</para> +<para lang="en"> +now nginx uses less memory, if PHP in FastCGI mode sends many warnings +before the response. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в ответах 204 для запросов версии HTTP/1.1 выдавалась строка заголовка +"Transfer-Encoding: chunked". +</para> +<para lang="en"> +the "Transfer-Encoding: chunked" header line was issued in the 204 responses +for the HTTP/1.1 requests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx возвращал 502 код ответа, если FastCGI сервер передавал полные строки +заголовка ответа в отдельных FastCGI записях. +</para> +<para lang="en"> +nginx returned the 502 response, if the complete response header lines +were transferred in a separate FastCGI records. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве post_action был указан проксируемый URI, то он выполнялся +только после успешного завершения запроса. +</para> +<para lang="en"> +if the proxied URI was specified in the "post_action" directive, then it ran +only after a successful completion of a request. +</para> +</change> + +</changes> + + +<changes ver="0.3.28" date="2006-02-16"> + +<change type="feature"> +<para lang="ru"> +директива restrict_host_names упразднена. +</para> +<para lang="en"> +the "restrict_host_names" directive was canceled. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр конфигурации --with-cpu-opt=ppc64. +</para> +<para lang="en"> +the --with-cpu-opt=ppc64 configuration parameter. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при некоторых условиях проксированное соединение с клиентом завершалось +преждевременно.<br/> +Спасибо Владимиру Шутову. +</para> +<para lang="en"> +on some condition the proxied connection with a client was terminated +prematurely.<br/> +Thanks to Vladimir Shutoff. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строка заголовка "X-Accel-Limit-Rate" не учитывалась для запросов, +перенаправленных с помощью строки "X-Accel-Redirect". +</para> +<para lang="en"> +the "X-Accel-Limit-Rate" header line was not taken into account +if the request was redirected using the "X-Accel-Redirect" header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива post_action работала только после успешного завершения запроса. +</para> +<para lang="en"> +the "post_action" directive ran only after a successful completion of a request. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +тело проксированного ответа, создаваемого директивой post_action, +передавалось клиенту. +</para> +<para lang="en"> +the proxied response body generated by the "post_action" directive +was transferred to a client. +</para> +</change> + +</changes> + + +<changes ver="0.3.27" date="2006-02-08"> + +<change type="change"> +<para lang="ru"> +директивы variables_hash_max_size и variables_hash_bucket_size. +</para> +<para lang="en"> +the "variables_hash_max_size" and "variables_hash_bucket_size" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменная $body_bytes_sent доступна не только в директиве log_format. +</para> +<para lang="en"> +the $body_bytes_sent variable can be used not only in the "log_format" +directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные $ssl_protocol и $ssl_cipher. +</para> +<para lang="en"> +the $ssl_protocol and $ssl_cipher variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +определение размера строки кэша распространённых процессоров при старте. +</para> +<para lang="en"> +the cache line size detection for widespread CPUs at start time. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива accept_mutex теперь поддерживается посредством fcntl(2) +на платформах, отличных от i386, amd64, sparc64 и ppc. +</para> +<para lang="en"> +now the "accept_mutex" directive is supported using fcntl(2) +on platforms different from i386, amd64, sparc64, and ppc. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива lock_file и параметр автоконфигурации --with-lock-path=PATH. +</para> +<para lang="en"> +the "lock_file" directive and the --with-lock-path=PATH autoconfiguration +directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании протокола HTTPS в директиве proxy_pass не передавались +запросы с телом. +</para> +<para lang="en"> +if the HTTPS protocol was used in the "proxy_pass" directive then +the requests with the body was not transferred. +</para> +</change> + +</changes> + + +<changes ver="0.3.26" date="2006-02-03"> + +<change type="change"> +<para lang="ru"> +директива optimize_host_names переименована в optimize_server_names. +</para> +<para lang="en"> +the "optimize_host_names" directive was renamed to the "optimize_server_names". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проксировании подзапроса в SSI бэкенду передавался URI основного запроса, +если в директиве proxy_pass отсутствовал URI. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.25" date="2006-02-01"> + +<change type="bugfix"> +<para lang="ru"> +при неверной конфигурации на старте или во время переконфигурации происходил +segmentation fault; +ошибка появилась в 0.3.24. +</para> +<para lang="en"> +the segmentation fault was occurred on start or while reconfiguration +if there was invalid configuration; +the bug had appeared in 0.3.24. +</para> +</change> + +</changes> + + +<changes ver="0.3.24" date="2006-02-01"> + +<change type="workaround"> +<para lang="ru"> +обход ошибки в kqueue во FreeBSD. +</para> +<para lang="en"> +for bug in FreeBSD kqueue. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответ, создаваемый директивой post_action, теперь не передаётся клиенту. +</para> +<para lang="en"> +now a response generated by the "post_action" directive is not transferred +to a client. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании большого количества лог-файлов происходила утечка памяти. +</para> +<para lang="en"> +the memory leaks were occurring if many log files were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +внутри одного location работала только первая директива proxy_redirect. +</para> +<para lang="en"> +the first "proxy_redirect" directive was working inside one location. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на 64-битных платформах при старте мог произойти segmentation fault, +если использовалось большое количество имён в директивах server_name; +ошибка появилась в 0.3.18. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.23" date="2006-01-24"> + +<change type="feature"> +<para lang="ru"> +директива optimize_host_names. +</para> +<para lang="en"> +the "optimize_host_names" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании переменных в директивах path и alias. +</para> +<para lang="en"> +in using of the variables in the "path" and "alias" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_perl_module неправильно собирался на Linux и Solaris. +</para> +<para lang="en"> +the ngx_http_perl_module was incorrectly built on Linux and Solaris. +</para> +</change> + +</changes> + + +<changes ver="0.3.22" date="2006-01-17"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module поддерживает методы $r->args и $r->unescape. +</para> +<para lang="en"> +the ngx_http_perl_module supports the $r->args and $r->unescape methods. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +метод $r->query_string в модуле ngx_http_perl_module упразднён. +</para> +<para lang="en"> +the method $r->query_string of ngx_http_perl_module was canceled. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве valid_referers указаны только none или blocked, то +происходил segmentation fault; +ошибка появилась в 0.3.18. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.21" date="2006-01-16"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_perl_module. +</para> +<para lang="en"> +the ngx_http_perl_module. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива valid_referers разрешает использовать рефереры совсем без URI. +</para> +<para lang="en"> +the "valid_referers" directive allows the referrers without URI part. +</para> +</change> + +</changes> + + +<changes ver="0.3.20" date="2006-01-11"> + +<change type="bugfix"> +<para lang="ru"> +ошибки в обработке SSI. +</para> +<para lang="en"> +in SSI handling. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_memcached_module не поддерживал ключи в виде /uri?args. +</para> +<para lang="en"> +the ngx_http_memcached_module did not support the keys in the "/usr?args" form. +</para> +</change> + +</changes> + +<changes ver="0.3.19" date="2005-12-28"> + +<change type="feature"> +<para lang="ru"> +директивы path и alias поддерживают переменные. +</para> +<para lang="en"> +the "path" and "alias" directives support the variables. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь директива valid_referers опять учитывает URI. +</para> +<para lang="en"> +now the "valid_referers" directive again checks the URI part. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки в обработке SSI. +</para> +<para lang="en"> +in SSI handling. +</para> +</change> + +</changes> + + +<changes ver="0.3.18" date="2005-12-26"> + +<change type="feature"> +<para lang="ru"> +директива server_names поддерживает имена вида ".domain.tld". +</para> +<para lang="en"> +the "server_names" directive supports the ".domain.tld" names. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server_names использует хэш для имён вида "*.domain.tld" +и более эффективный хэш для обычных имён. +</para> +<para lang="en"> +the "server_names" directive uses the hash for the "*.domain.tld" names +and more effective hash for usual names. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директивы server_names_hash_max_size и server_names_hash_bucket_size. +</para> +<para lang="en"> +the "server_names_hash_max_size" and "server_names_hash_bucket_size" directives. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директивы server_names_hash и server_names_hash_threshold упразднены. +</para> +<para lang="en"> +the "server_names_hash" and "server_names_hash_threshold" directives +were canceled. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива valid_referers использует хэш для имён сайтов. +</para> +<para lang="en"> +the "valid_referers" directive uses the hash site names. +</para> +</change> + +<change type="change"> +<para lang="ru"> +теперь директива valid_referers проверяет только имена сайтов без учёта URI. +</para> +<para lang="en"> +now the "valid_referers" directive checks the site names only without +the URI part. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +некоторые имена вида ".domain.tld" неверно обрабатывались модулем +ngx_http_map_module. +</para> +<para lang="en"> +some ".domain.tld" names incorrectly processed by the ngx_http_map_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если конфигурационного файла не было, то происходил segmentation fault; +ошибка появилась в 0.3.12. +</para> +<para lang="en"> +segmentation fault was occurred if configuration file did not exist; +the bug had appeared in 0.3.12. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на 64-битных платформах при старте мог произойти segmentation fault; +ошибка появилась в 0.3.16. +</para> +<para lang="en"> +on 64-bit platforms segmentation fault may occurred on start; +the bug had appeared in 0.3.16. +</para> +</change> + +</changes> + + +<changes ver="0.3.17" date="2005-12-18"> + +<change type="change"> +<para lang="ru"> +на Linux configure теперь проверяет наличие epoll и sendfile64() в ядре. +</para> +<para lang="en"> +now on Linux configure checks the presence of epoll and sendfile64() in kernel. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива map поддерживает доменные имена в формате ".domain.tld". +</para> +<para lang="en"> +the "map" directive supports domain names in the ".domain.tld" form. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +во время SSL handshake не иcпользовались таймауты; +ошибка появилась в 0.2.4. +</para> +<para lang="en"> +the timeouts were not used in SSL handshake; +the bug had appeared in 0.2.4. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в использовании протокола HTTPS в директиве proxy_pass. +</para> +<para lang="en"> +in the HTTPS protocol in the "proxy_pass" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании протокола HTTPS в директиве proxy_pass по умолчанию +использовался порт 80. +</para> +<para lang="en"> +when the HTTPS protocol was used in the "proxy_pass" directive the port 80 +was used by default. +</para> +</change> + +</changes> + + +<changes ver="0.3.16" date="2005-12-16"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_map_module. +</para> +<para lang="en"> +the ngx_http_map_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы types_hash_max_size и types_hash_bucket_size. +</para> +<para lang="en"> +the "types_hash_max_size" and "types_hash_bucket_size" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssi_value_length. +</para> +<para lang="en"> +the "ssi_value_length" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива worker_rlimit_core. +</para> +<para lang="en"> +the "worker_rlimit_core" directive. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для +<nobr>Pentium 4</nobr> номер соединения в логах всегда был равен 1. +</para> +<para lang="en"> +the connection number in logs was always 1 if nginx was built by the +icc 8.1 or 9.0 compilers with optimization for <nobr>Pentium 4.</nobr> +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +команда config timefmt в SSI задавала неверный формат времени. +</para> +<para lang="en"> +the "config timefmt" SSI command set incorrect time format. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не закрывал соединения с IMAP/POP3 бэкендом при использовании SSL +соединений; +ошибка появилась в 0.3.13.<br/> +Спасибо Rob Mueller. +</para> +<para lang="en"> +nginx did not close connection to IMAP/POP3 backend for the SSL +connections; +the bug had appeared in 0.3.13.<br/> +Thanks to Rob Mueller. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +segmentation fault мог произойти во время SSL shutdown; +ошибка появилась в 0.3.13. +</para> +<para lang="en"> +segmentation fault may occurred in at SSL shutdown; +the bug had appeared in 0.3.13. +</para> +</change> + +</changes> + + +<changes ver="0.3.15" date="2005-12-07"> + +<change type="feature"> +<para lang="ru"> +новой код 444 в директиве return для закрытия соединения. +</para> +<para lang="en"> +the new 444 code of the "return" directive to close connection. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива so_keepalive в IMAP/POP3 прокси. +</para> +<para lang="en"> +the "so_keepalive" directive in IMAP/POP3 proxy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx теперь вызывает abort() при обнаружении незакрытых соединений +только при плавном выходе и включённой директиве debug_points. +</para> +<para lang="en"> +if there are unclosed connection nginx now calls abort() only on graceful +quit and active "debug_points" directive. +</para> +</change> + +</changes> + + +<changes ver="0.3.14" date="2005-12-05"> + +<change type="bugfix"> +<para lang="ru"> +в ответе 304 передавалось тело ответа; +ошибка появилась в 0.3.13. +</para> +<para lang="en"> +in the 304 response the body was transferred; +the bug had appeared in 0.3.13. +</para> +</change> + +</changes> + + +<changes ver="0.3.13" date="2005-12-05"> + +<change type="feature"> +<para lang="ru"> +IMAP/POP3 прокси поддерживает STARTTLS и STLS. +</para> +<para lang="en"> +the IMAP/POP3 proxy supports STARTTLS and STLS. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +IMAP/POP3 прокси не работала с методами select, poll и /dev/poll. +</para> +<para lang="en"> +the IMAP/POP3 proxy did not work with the select, poll, and /dev/poll methods. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки в обработке SSI. +</para> +<para lang="en"> +in SSI handling. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +sendfilev() в Solaris теперь не используется при передаче тела запроса +FastCGI-серверу через unix domain сокет. +</para> +<para lang="en"> +now Solaris sendfilev() is not used to transfer the client request body +to FastCGI-server via the unix domain socket. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива auth_basic не запрещала аутентификацию; +ошибка появилась в 0.3.11. +</para> +<para lang="en"> +the "auth_basic" directive did not disable the authorization; +the bug had appeared in 0.3.11. +</para> +</change> + +</changes> + + +<changes ver="0.3.12" date="2005-11-26"> + +<change type="security"> +<para lang="ru"> +если nginx был собран с модулем ngx_http_realip_module, то при использовании +директивы "satisfy_any on" директивы доступа и аутентификации не работали. +Модуль ngx_http_realip_module не собирался и не собирается по умолчанию. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="change"> +<para lang="ru"> +имя переменной "$time_gmt" изменено на "$time_local". +</para> +<para lang="en"> +the "$time_gmt" variable name was changed to "$time_local". +</para> +</change> + +<change type="change"> +<para lang="ru"> +директивы proxy_header_buffer_size и fastcgi_header_buffer_size +переименованы соответственно в proxy_buffer_size и fastcgi_buffer_size. +</para> +<para lang="en"> +the "proxy_header_buffer_size" and "fastcgi_header_buffer_size" directives +was renamed to the "proxy_buffer_size" and "fastcgi_buffer_size" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_memcached_module. +</para> +<para lang="en"> +the ngx_http_memcached_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_buffering. +</para> +<para lang="en"> +the "proxy_buffering" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +изменение в работе с accept mutex при использовании метода rtsig; +ошибка появилась в 0.3.0. +</para> +<para lang="en"> +the changes in accept mutex handling when the "rtsig" method was used; +the bug had appeared in 0.3.0. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если клиент передал строку "Transfer-Encoding: chunked" в заголовке +запроса, то nginx теперь выдаёт ошибку 411. +</para> +<para lang="en"> +if the client sent the "Transfer-Encoding: chunked" header line, then +nginx returns the 411 error. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при наследовании директивы auth_basic с уровня http в строке +"WWW-Authenticate" заголовка ответа выводился realm без текста "Basic realm". +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве access_log был явно указан формат combined, то в лог +записывались пустые строки; +ошибка появилась в 0.3.8. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не работал на платформе sparc под любыми OS, кроме Solaris. +</para> +<para lang="en"> +nginx did not run on the sparc platform under any OS except Solaris. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве if теперь не нужно разделять пробелом строку в кавычках и +закрывающую скобку. +</para> +<para lang="en"> +now it is not necessary to place space between the quoted string and closing +bracket in the "if" directive. +</para> +</change> + +</changes> + + +<changes ver="0.3.11" date="2005-11-15"> + +<change type="bugfix"> +<para lang="ru"> +nginx не передавал при проксировании тело запроса и строки заголовка клиента; +ошибка появилась в 0.3.10. +</para> +<para lang="en"> +nginx did not pass the client request headers and body while proxying; +the bug had appeared in 0.3.10. +</para> +</change> + +</changes> + + +<changes ver="0.3.10" date="2005-11-15"> + +<change type="change"> +<para lang="ru"> +директива valid_referers и переменная $invalid_referer перенесены +из модуля ngx_http_rewrite_module в новый модуль ngx_http_referer_module. +</para> +<para lang="en"> +the "valid_referers" directive and the "$invalid_referer" variable +were moved to the new ngx_http_referer_module from the ngx_http_rewrite_module. +</para> +</change> + +<change type="change"> +<para lang="ru"> +имя переменной "$apache_bytes_sent" изменено на "$body_bytes_sent". +</para> +<para lang="en"> +the "$apache_bytes_sent" variable name was changed to "$body_bytes_sent". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные "$sent_http_...". +</para> +<para lang="en"> +the "$sent_http_..." variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива if поддерживает операции "=" и "!=". +</para> +<para lang="en"> +the "if" directive supports the "=" and "!=" operations. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_pass поддерживает протокол HTTPS. +</para> +<para lang="en"> +the "proxy_pass" directive supports the HTTPS protocol. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_set_body. +</para> +<para lang="en"> +the "proxy_set_body" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива post_action. +</para> +<para lang="en"> +the "post_action" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_empty_gif_module. +</para> +<para lang="en"> +the ngx_http_empty_gif_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива worker_cpu_affinity для Linux. +</para> +<para lang="en"> +the "worker_cpu_affinity" directive for Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива rewrite не раскодировала символы в редиректах в URI, +теперь символы раскодируются, кроме символов %00-%25 и %7F-%FF. +</para> +<para lang="en"> +the "rewrite" directive did not unescape URI part in redirect, +now it is unescaped except the %00-%25 and %7F-%FF characters. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался компилятором icc 9.0. +</para> +<para lang="en"> +nginx could not be built by the icc 9.0 compiler. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если для статического файла нулевого размера был разрешён SSI, +то ответ передавался неверно при кодировании chunk'ами. +</para> +<para lang="en"> +if the SSI was enabled for zero size static file, then the chunked +response was encoded incorrectly. +</para> +</change> + +</changes> + + +<changes ver="0.3.9" date="2005-11-10"> + +<change type="bugfix"> +<para lang="ru"> +nginx считал небезопасными URI, в которых между двумя слэшами +находилось два любых символа; +ошибка появилась в 0.3.8. +</para> +<para lang="en"> +nginx considered URI as unsafe if two any symbols was between two slashes; +the bug had appeared in 0.3.8. +</para> +</change> + +</changes> + + +<changes ver="0.3.8" date="2005-11-09"> + +<change type="security"> +<para lang="ru"> +nginx теперь проверят URI, полученные от бэкенда в строке "X-Accel-Redirect" +в заголовке ответа, или в SSI файле на наличие путей "/../" и нулей. +</para> +<para lang="en"> +nginx now checks URI got from a backend in "X-Accel-Redirect" header line +or in SSI file for the "/../" paths and zeroes. +</para> +</change> + +<change type="change"> +<para lang="ru"> +nginx теперь не воспринимает пустое имя как правильное +в строке "Authorization" в заголовке запроса. +</para> +<para lang="en"> +nginx now does not treat the empty user name in the "Authorization" header +line as valid one. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssl_session_timeout модулей +ngx_http_ssl_module и ngx_imap_ssl_module. +</para> +<para lang="en"> +the "ssl_session_timeout" directives +of the ngx_http_ssl_module and ngx_imap_ssl_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива auth_http_header модуля ngx_imap_auth_http_module. +</para> +<para lang="en"> +the "auth_http_header" directive of the ngx_imap_auth_http_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива add_header. +</para> +<para lang="en"> +the "add_header" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_realip_module. +</para> +<para lang="en"> +the ngx_http_realip_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +новые переменные для использования в директиве 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" скоро будут упразднены. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="change"> +<para lang="ru"> +в директиве "if" ложными значениями переменных теперь являются +пустая строка "" и строки, начинающиеся на "0". +</para> +<para lang="en"> +now the false variable values in the "if" directive are the empty string "" +and string starting with "0". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при работает с проксированными или FastCGI-серверами nginx мог оставлять +открытыми соединения и временные файлы с запросами клиентов. +</para> +<para lang="en"> +while using proxied or FastCGI-server nginx may leave connections +and temporary files with client requests in open state. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +рабочие процессы не сбрасывали буферизированные логи при плавном выходе. +</para> +<para lang="en"> +the worker processes did not flush the buffered logs on graceful exit. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если URI запроса изменялось с помощью rewrite, а затем запрос проксировался +в location, заданном регулярным выражением, то бэкенду передавался +неверный запрос; +ошибка появилась в 0.2.6. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива expires не удаляла уже установленную строку заголовка "Expires". +</para> +<para lang="en"> +the "expires" directive did not remove the previous "Expires" header. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании метода rtsig и нескольких рабочих процессах nginx +мог перестать принимать запросы. +</para> +<para lang="en"> +nginx may stop to accept requests if the "rtsig" method and several worker +processes were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в SSI командах неверно обрабатывались строки "\"" и "\'". +</para> +<para lang="en"> +the "\"" and "\'" escape symbols were incorrectly handled in SSI commands. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если ответ заканчивался сразу же после SSI команды, то при использовании +сжатия ответ передавался не до конца или не передавался вообще. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.3.7" date="2005-10-27"> + +<change type="feature"> +<para lang="ru"> +директива access_log поддерживает параметр buffer=. +</para> +<para lang="en"> +the "access_log" supports the "buffer=" parameter. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.3.2. +</para> +<para lang="en"> +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.3.2. +</para> +</change> + +</changes> + + +<changes ver="0.3.6" date="2005-10-24"> + +<change type="change"> +<para lang="ru"> +IMAP/POP3 прокси теперь не передаёт серверу авторизации пустой логин. +</para> +<para lang="en"> +now the IMAP/POP3 proxy do not send the empty login to authorization server. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива log_format поддерживает переменные в виде $name. +</para> +<para lang="en"> +the "log_format" supports the variables in the $name form. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если хотя бы в одном сервере не было описано ни одной директивы listen, то +nginx не слушал на 80 порту; +ошибка появилась в 0.3.3. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве proxy_pass отсутствовал URI, то всегда использовался порт 80. +</para> +<para lang="en"> +if the URI part is omitted in "proxy_pass" directive, the 80 port was +always used. +</para> +</change> + +</changes> + + +<changes ver="0.3.5" date="2005-10-21"> + +<change type="bugfix"> +<para lang="ru"> +если логин IMAP/POP3 менялся сервером авторизации, то мог произойти +segmentation fault; +ошибка появилась в 0.2.2. +</para> +<para lang="en"> +the segmentation fault may occurred if the IMAP/POP3 login was changed +by authorization server; +the bug had appeared in 0.2.2. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +accept mutex не работал, все соединения обрабатывались одним рабочим процессом; +ошибка появилась в 0.3.3. +</para> +<para lang="en"> +the accept mutex did not work and all connections were handled by one process; +the bug had appeared in 0.3.3. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании метода rtsig и директивы timer_resolution +не работали таймауты. +</para> +<para lang="en"> +the timeout did not work if the "rtsig" method and the "timer_resolution" +directive were used. +</para> +</change> + +</changes> + + +<changes ver="0.3.4" date="2005-10-19"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на Linux 2.4+ и MacOS X; +ошибка появилась в 0.3.3. +</para> +<para lang="en"> +nginx could not be built on Linux 2.4+ and MacOS X; +the bug had appeared in 0.3.3. +</para> +</change> + +</changes> + + +<changes ver="0.3.3" date="2005-10-19"> + +<change type="change"> +<para lang="ru"> +параметры "bl" и "af" директивы listen переименованы в "backlog" +и "accept_filter". +</para> +<para lang="en"> +the "bl" and "af" parameters of the "listen" directive was renamed to +the "backlog" and "accept_filter". +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметры "rcvbuf" и "sndbuf" в директиве listen. +</para> +<para lang="en"> +the "rcvbuf" and "sndbuf" parameters of the "listen" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +параметр лога $msec теперь не требует дополнительного системного +вызова gettimeofday(). +</para> +<para lang="en"> +the "$msec" log parameter does not require now the additional +the gettimeofday() system call. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +ключ -t теперь проверяет директивы listen. +</para> +<para lang="en"> +the -t switch now tests the "listen" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в директиве listen был указан неверный адрес, то nginx после +сигнала -HUP оставлял открытый сокет в состоянии CLOSED. +</para> +<para lang="en"> +if the invalid address was specified in the "listen" directive, then +after the -HUP signal nginx left an open socket in the CLOSED state. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +для индексных файлов, содержащих в имени переменную, мог неверно выставляться +тип mime по умолчанию; +ошибка появилась в 0.3.0. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива timer_resolution. +</para> +<para lang="en"> +the "timer_resolution" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр лога $upstream_response_time в миллисекундах. +</para> +<para lang="en"> +the millisecond "$upstream_response_time" log parameter. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +временный файл с телом запроса клиента теперь удаляется сразу после того, +как клиенту передан заголовок ответа. +</para> +<para lang="en"> +a temporary file with client request body now is removed just after +the response header was transferred to a client. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с OpenSSL 0.9.6. +</para> +<para lang="en"> +OpenSSL 0.9.6 compatibility. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +пути к файлам с SSL сертификатом и ключом не могли быть относительными. +</para> +<para lang="en"> +the SSL certificate and key file paths could not be relative. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива ssl_prefer_server_ciphers не работала для модуля ngx_imap_ssl_module. +</para> +<para lang="en"> +the "ssl_prefer_server_ciphers" directive did not work in +the ngx_imap_ssl_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива ssl_protocols позволяла задать только один протокол. +</para> +<para lang="en"> +the "ssl_protocols" directive allowed to specify the single protocol only. +</para> +</change> + +</changes> + + +<changes ver="0.3.2" date="2005-10-12"> + +<change type="feature"> +<para lang="ru"> +поддержка Sun Studio 10 C compiler. +</para> +<para lang="en"> +the Sun Studio 10 C compiler support. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout, +fastcgi_upstream_max_fails и fastcgi_upstream_fail_timeout. +</para> +<para lang="en"> +the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout", +"fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout" +directives. +</para> +</change> + +</changes> + + +<changes ver="0.3.1" date="2005-10-10"> + +<change type="bugfix"> +<para lang="ru"> +во время переполнения очереди сигналов при использовании метода rtsig +происходил segmentation fault; +ошибка появилась в 0.2.0. +</para> +<para lang="en"> +the segmentation fault occurred when the signal queue overflowed +if the "rtsig" method was used; +the bug had appeared in 0.2.0. +</para> +</change> + +<change type="change"> +<para lang="ru"> +корректная обработка пар "\\", "\"", "\'" и "\$" в SSI. +</para> +<para lang="en"> +correct handling of the "\\", "\"", "\'", and "\$" pairs in SSI. +</para> +</change> + +</changes> + + +<changes ver="0.3.0" date="2005-10-07"> + +<change type="change"> +<para lang="ru"> +убрано десятидневное ограничение времени работы рабочего процесса. +Ограничение было введено из-за переполнения миллисекундных таймеров. +</para> +<para lang="en"> +the 10-days live time limit of worker process was eliminated. +The limit was introduced because of millisecond timers overflow. +</para> +</change> + +</changes> + + +<changes ver="0.2.6" date="2005-10-05"> + +<change type="change"> +<para lang="ru"> +с 60 до 10 секунд уменьшено время повторного обращения к бэкенду +при использовании распределения нагрузки. +</para> +<para lang="en"> +while using load-balancing the time before the failed backend retry +was decreased from 60 to 10 seconds. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива proxy_pass_unparsed_uri упразднена, оригинальный запрос теперь +передаётся, если в директиве proxy_pass отсутствует URI. +</para> +<para lang="en"> +the "proxy_pass_unparsed_uri" was canceled, the original URI now passed, +if the URI part is omitted in "proxy_pass" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива error_page поддерживает редиректы и позволяет более гибко +менять код ошибки. +</para> +<para lang="en"> +the "error_page" directive supports redirects and allows more flexible +to change an error code. +</para> +</change> + +<change type="change"> +<para lang="ru"> +в проксированных подзапросах теперь игнорируется переданный charset. +</para> +<para lang="en"> +the charset in the "Content-Type" header line now is ignored +in proxied subrequests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если после изменения URI в блоке if для запроса не находилась +новая конфигурация, то правила модуля ngx_http_rewrite_module выполнялись +снова. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если директива set устанавливала переменную модуля ngx_http_geo_module +в какой-либо части конфигурации, то эта переменная не была доступна в +других частях конфигурации и выдавалась ошибка "using uninitialized variable"; +ошибка появилась в 0.2.2. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.2.5" date="2005-10-04"> + +<change type="change"> +<para lang="ru"> +дублирующее значение переменной модуля ngx_http_geo_module теперь +выдаёт предупреждение и изменяет старое значение. +</para> +<para lang="en"> +the duplicate value of the ngx_http_geo_module variable now causes +the warning and changes old value. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_module поддерживает команду set. +</para> +<para lang="en"> +the ngx_http_ssi_module supports the "set" command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_module поддерживает параметр file в команде include. +</para> +<para lang="en"> +the ngx_http_ssi_module supports the "file" parameter in the "include" command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_module поддерживает подстановку значений переменных +в выражениях команды if. +</para> +<para lang="en"> +the ngx_http_ssi_module supports the variable value substitutions in +expressions of the "if" command. +</para> +</change> + +</changes> + + +<changes ver="0.2.4" date="2005-10-03"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_module поддерживает выражения +"$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" +в команде if. +</para> +<para lang="en"> +the ngx_http_ssi_module supports +"$var=text", "$var!=text", "$var=/text/", and "$var!=/text/" expressions +in the "if" command. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при проксировании location без слэша в конце; +ошибка появилась в 0.1.44. +</para> +<para lang="en"> +in proxying location without trailing slash; +the bug had appeared in 0.1.44. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании метода rtsig мог произойти segmentation fault; +ошибка появилась в 0.2.0. +</para> +<para lang="en"> +the segmentation fault may occurred if the "rtsig" method was used; +the bug had appeared in 0.2.0. +</para> +</change> + +</changes> + + +<changes ver="0.2.3" date="2005-09-30"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался без параметра --with-debug; +ошибка появилась в 0.2.2. +</para> +<para lang="en"> +nginx could not be built without the --with-debug option; +the bug had appeared in 0.2.2. +</para> +</change> + +</changes> + + +<changes ver="0.2.2" date="2005-09-30"> + +<change type="feature"> +<para lang="ru"> +команда config errmsg в модуле ngx_http_ssi_module. +</para> +<para lang="en"> +the "config errmsg" command of the ngx_http_ssi_module. +</para> +</change> + +<change type="change"> +<para lang="ru"> +переменные модуля ngx_http_geo_module можно переопределять директивой set. +</para> +<para lang="en"> +the ngx_http_geo_module variables can be overridden by the "set" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы ssl_protocols и ssl_prefer_server_ciphers модулей +ngx_http_ssl_module и ngx_imap_ssl_module. +</para> +<para lang="en"> +the "ssl_protocols" and "ssl_prefer_server_ciphers" directives +of the ngx_http_ssl_module and ngx_imap_ssl_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов; +</para> +<para lang="en"> +the ngx_http_autoindex_module did not show correctly the long file names; +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_autoindex_module теперь не показывает файлы, +начинающиеся на точку. +</para> +<para lang="en"> +the ngx_http_autoindex_module now do not show the files starting by dot. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если SSL handshake завершался с ошибкой, то это могло привести также +к закрытию другого соединения.<br/> +Спасибо Rob Mueller. +</para> +<para lang="en"> +if the SSL handshake failed then another connection may be closed too.<br/> +Thanks to Rob Mueller. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +экспортные версии MSIE 5.x не могли соединиться по HTTPS. +</para> +<para lang="en"> +the export versions of MSIE 5.x could not connect via HTTPS. +</para> +</change> + +</changes> + + +<changes ver="0.2.1" date="2005-09-23"> + +<change type="bugfix"> +<para lang="ru"> +если все бэкенды, используемые для балансировки нагрузки, оказывались +в нерабочем состоянии после одной ошибки, то nginx мог зациклится; +ошибка появилась в 0.2.0. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.2.0" date="2005-09-23"> + +<change> +<para lang="ru"> +Изменились имена pid-файлов, используемые во время обновления исполняемого +файла. Ручное переименование теперь не нужно. +Старый основной процесс добавляет к своему pid-файл суффикс ".oldbin" +и запускает новый исполняемый файл. +Новый основной процесс создаёт обычный pid-файл без суффикса ".newbin". +Если новый основной процесс выходит, то старый процесс переименовывает свой +pid-файл c суффиксом ".oldbin" в pid-файл без суффикса. +При обновлении с версии 0.1.х до 0.2.0 нужно учитывать, что оба +процесса—старый 0.1.x и новый 0.2.0—используют pid-файл +без суффиксов. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива worker_connections, новое название директивы connections; +директива теперь задаёт максимальное число соединений, +а не максимально возможный номер дескриптора для сокета. +</para> +<para lang="en"> +the "worker_connections" directive, new name of the "connections" directive; +now the directive specifies maximum number of connections, +but not maximum socket descriptor number. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +SSL поддерживает кэширование сессий в пределах одного рабочего процесса. +</para> +<para lang="en"> +SSL supports the session cache inside one worker process. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива satisfy_any. +</para> +<para lang="en"> +the "satisfy_any" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +модули ngx_http_access_module и ngx_http_auth_basic_module не работают +для подзапросов. +</para> +<para lang="en"> +the ngx_http_access_module and ngx_http_auth_basic_module do not run +for subrequests. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы worker_rlimit_nofile и worker_rlimit_sigpending. +</para> +<para lang="en"> +the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если все бэкенды, используемые для балансировки нагрузки, оказывались +в нерабочем состоянии после одной ошибки, то nginx не обращался к ним +в течение 60 секунд. +</para> +<para lang="en"> +if all backend using in load-balancing failed after one error, then +nginx did not try do connect to them during 60 seconds. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в парсинге аргументов IMAP/POP3 команд.<br/> +Спасибо Rob Mueller. +</para> +<para lang="en"> +in IMAP/POP3 command argument parsing.<br/> +Thanks to Rob Mueller. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании SSL в IMAP/POP3 прокси. +</para> +<para lang="en"> +errors while using SSL in IMAP/POP3 proxy. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании SSI и сжатия. +</para> +<para lang="en"> +errors while using SSI and gzipping. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в ответах 304 не добавлялись строки заголовка ответа "Expires" и +"Cache-Control".<br/> +Спасибо Александру Кукушкину. +</para> +<para lang="en"> +the "Expires" and "Cache-Control" header lines were omitted +from the 304 responses.<br/> +Thanks to Alexandr Kukushkin. +</para> +</change> + +</changes> + + +<changes ver="0.1.45" date="2005-09-08"> + +<change type="change"> +<para lang="ru"> +директива ssl_engine упразднена в модуле ngx_http_ssl_module и +перенесена на глобальный уровень. +</para> +<para lang="en"> +the "ssl_engine" directive was canceled in the ngx_http_ssl_module +and now is introduced at global level. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ответы с подзапросами, включённые с помощью SSI, не передавались +через SSL соединение. +</para> +<para lang="en"> +the responses with SSI subrequests did not transferred via SSL connection. +</para> +</change> + +<change> +<para lang="ru"> +Разные исправления в IMAP/POP3 прокси. +</para> +<para lang="en"> +Various bug fixes in the IMAP/POP3 proxy. +</para> +</change> + +</changes> + + +<changes ver="0.1.44" date="2005-09-06"> + +<change type="feature"> +<para lang="ru"> +IMAP/POP3 прокси поддерживает SSL. +</para> +<para lang="en"> +the IMAP/POP3 proxy supports SSL. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_timeout модуля ngx_imap_proxy_module. +</para> +<para lang="en"> +the "proxy_timeout" directive of the ngx_imap_proxy_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива userid_mark. +</para> +<para lang="en"> +the "userid_mark" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +значение переменной $remote_user определяется независимо от того, +используется ли авторизация или нет. +</para> +<para lang="en"> +the $remote_user variable value is determined independently of +authorization use. +</para> +</change> + +</changes> + + +<changes ver="0.1.43" date="2005-08-30"> + +<change type="feature"> +<para lang="ru"> +listen(2) backlog в директиве listen можно менять по сигналу -HUP. +</para> +<para lang="en"> +the listen(2) backlog in the "listen" directive +can be changed using the -HUP signal. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +скрипт geo2nginx.pl добавлен в contrib. +</para> +<para lang="en"> +the geo2nginx.pl script was added to contrib. +</para> +</change> + +<change type="change"> +<para lang="ru"> +параметры FastCGI с пустым значениями теперь передаются серверу. +</para> +<para lang="en"> +the FastCGI parameters with the empty values now are passed to a server. +</para> +</change> + +<!-- + +<change type="bugfix"> +<para lang="ru"> +при ошибках в работе с проксированным сервером или FastCGI сервером +мог произойти segmentation fault; +в режиме прокси ошибка появилась в 0.1.29. +</para> +<para lang="en"> +the segmentation fault may occurred if there were errors while +working with proxied or FastCGI server; +in the proxied mode the bug had appeared in 0.1.29. +</para> +</change> + +--> + +<change type="bugfix"> +<para lang="ru"> +если в ответе проксированного сервера или FastCGI сервера была строка +"Cache-Control", то при использовании директивы expires происходил +segmentation fault или рабочий процесс мог зациклится; +в режиме прокси ошибка появилась в 0.1.29. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.1.42" date="2005-08-23"> + +<change type="bugfix"> +<para lang="ru"> +если URI запроса получался нулевой длины после обработки модулем +ngx_http_rewrite_module, то в модуле ngx_http_proxy_module происходил +segmentation fault или bus error. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива limit_rate не работала внутри блока if; +ошибка появилась в 0.1.38. +</para> +<para lang="en"> +the "limit_rate" directive did not work inside the "if" block; +the bug had appeared in 0.1.38. +</para> +</change> + +</changes> + + +<changes ver="0.1.41" date="2005-07-25"> + +<change type="bugfix"> +<para lang="ru"> +если переменная использовалась в файле конфигурации, +то она не могла использоваться в SSI. +</para> +<para lang="en"> +if the variable was used in the configuration file, +then it can not be used in SSI. +</para> +</change> + +</changes> + + +<changes ver="0.1.40" date="2005-07-22"> + +<change type="bugfix"> +<para lang="ru"> +если клиент слал очень длинную строку заголовка, то в логе не помещалась +информация, связанная с этим запросом. +</para> +<para lang="en"> +if a client sent too long header line, then the request information +did not logged in the error log. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании "X-Accel-Redirect" не передавалась строка "Set-Cookie"; +ошибка появилась в 0.1.39. +</para> +<para lang="en"> +the "Set-Cookie" header line was not transferred when the "X-Accel-Redirect" +was used; +the bug had appeared in 0.1.39. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании "X-Accel-Redirect" не передавалась строка +"Content-Disposition". +</para> +<para lang="en"> +the "Content-Disposition" header line was not transferred when +the "X-Accel-Redirect" was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +по сигналу SIGQUIT основной процесс не закрывал сокеты, на которых он слушал. +</para> +<para lang="en"> +the master process did not close the listen socket on the SIGQUIT signal. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после обновления исполняемого файла на лету на Linux и Solaris +название процесса в команде ps становилось короче. +</para> +<para lang="en"> +after on-line upgrade on Linux and Solaris the process name +became shorter in the "ps" command. +</para> +</change> + +</changes> + + +<changes ver="0.1.39" date="2005-07-14"> + +<change> +<para lang="ru"> +Изменения в модуле ngx_http_charset_module: +директива default_charset упразднена; +директива charset задаёт кодировку ответа; +директива source_charset задаёт только исходную кодировку. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении ошибки 401, полученной от бэкенда, не передавалась +строка заголовка "WWW-Authenticate". +</para> +<para lang="en"> +the backend "WWW-Authenticate" header line did not transferred while +the 401 response code redirecting. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модули ngx_http_proxy_module и ngx_http_fastcgi_module могли закрыть +соединение до того, как что-нибудь было передано клиенту; +ошибка появилась в 0.1.38. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="workaround"> +<para lang="ru"> +обработка ошибки инициализации в crypt_r() в Linux glibc. +</para> +<para lang="en"> +the Linux glibc crypt_r() initialization bug. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_ssi_module не поддерживал относительные URI в +команде include virtual. +</para> +<para lang="en"> +the ngx_http_ssi_module did not support the relative URI in +the "include virtual" command. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в строке заголовка ответа бэкенда была строка "Location", +которую nginx не должен был изменять, то в ответе передавалось тело 500 ошибки; +ошибка появилась в 0.1.29. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +некоторые директивы модулей ngx_http_proxy_module и ngx_http_fastcgi_module +не наследовались с уровня server на уровень location; +ошибка появилась в 0.1.29. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_ssl_module не поддерживал цепочки сертификатов. +</para> +<para lang="en"> +the ngx_http_ssl_module did not support the certificate chain. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов; +ошибка появилась в 0.1.38. +</para> +<para lang="en"> +the ngx_http_autoindex_module did not show correctly the long file names; +the bug had appeared in 0.1.38. +</para> +</change> + +<change> +<para lang="ru"> +Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на стадии login. +</para> +<para lang="en"> +Bugfixes in IMAP/POP3 proxy in interaction with a backend at the login state. +</para> +</change> + +</changes> + + +<changes ver="0.1.38" date="2005-07-08"> + +<change type="feature"> +<para lang="ru"> +директива limit_rate поддерживается в режиме прокси и FastCGI. +</para> +<para lang="en"> +the "limit_rate" directive is supported in proxy and FastCGI mode. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Limit-Rate" +в ответе бэкенда. +</para> +<para lang="en"> +the "X-Accel-Limit-Rate" response header line is supported in proxy +and FastCGI mode. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива break. +</para> +<para lang="en"> +the "break" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива log_not_found. +</para> +<para lang="en"> +the "log_not_found" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при перенаправлении запроса с помощью строки заголовка "X-Accel-Redirect" +не изменялся код ответа. +</para> +<para lang="en"> +the response status code was not changed when request was redirected +by the ""X-Accel-Redirect" header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменные, установленные директивой set не могли использоваться в SSI. +</para> +<para lang="en"> +the variables set by the "set" directive could not be used in SSI. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при включении в SSI более одного удалённого подзапроса +мог произойти segmentation fault. +</para> +<para lang="en"> +the segmentation fault may occurred if the SSI page has more than one +remote subrequest. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если статусная строка в ответе бэкенда передавалась в двух пакетах, то +nginx считал ответ неверным; +ошибка появилась в 0.1.29. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssi_types. +</para> +<para lang="en"> +the "ssi_types" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива autoindex_exact_size. +</para> +<para lang="en"> +the "autoindex_exact_size" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_autoindex_module не поддерживал длинные имена файлов в UTF-8. +</para> +<para lang="en"> +the ngx_http_autoindex_module did not support the long file names in UTF-8. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +IMAP/POP3 прокси. +</para> +<para lang="en"> +the IMAP/POP3 proxy. +</para> +</change> + +</changes> + + +<changes ver="0.1.37" date="2005-06-23"> + +<change type="change"> +<para lang="ru"> +в конце файла nginx.pid теперь добавляется "\n". +</para> +<para lang="en"> +now the "\n" is added to the end of the "nginx.pid" file. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при включении большого количества вставок или нескольких больших вставок +с помощью SSI ответ мог передаваться не полностью. +</para> +<para lang="en"> +the responses may be transferred not completely, +if many parts or the big parts were included by SSI. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если все бэкенды возвращали ответ 404, то при использовании параметра http_404 +в директивах proxy_next_upstream или fastcgi_next_upstream, nginx +начинал запрашивать все бэкенды снова. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.1.36" date="2005-06-15"> + +<change type="change"> +<para lang="ru"> +если в заголовке запроса есть дублирующиеся строки "Host", "Connection", +"Content-Length" и "Authorization", то nginx теперь выдаёт ошибку 400. +</para> +<para lang="en"> +if the request header has duplicate the "Host", "Connection", "Content-Length", +or "Authorization" lines, then nginx now returns the 400 error. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива post_accept_timeout упразднена. +</para> +<para lang="en"> +the "post_accept_timeout" directive was canceled. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметры default, af=, bl=, deferred и bind в директиве listen. +</para> +<para lang="en"> +the "default", "af=", "bl=", "deferred", and "bind" parameters +of the "listen" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка accept фильтров во FreeBSD. +</para> +<para lang="en"> +the FreeBSD accept filters support. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка TCP_DEFER_ACCEPT в Linux. +</para> +<para lang="en"> +the Linux TCP_DEFER_ACCEPT support. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_autoindex_module не поддерживал имена файлов в UTF-8. +</para> +<para lang="en"> +the ngx_http_autoindex_module did not support the file names in UTF-8. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +после добавления новый лог-файл ротация этого лога по сигналу -USR1 +выполнялась, только если переконфигурировать nginx два раза по сигналу -HUP. +</para> +<para lang="en"> +the new log file can be rotated by the -USR1 signal only if +the reconfiguration by the -HUP signal was made twice. +</para> +</change> + +</changes> + + +<changes ver="0.1.35" date="2005-06-07"> + +<change type="feature"> +<para lang="ru"> +директива working_directory. +</para> +<para lang="en"> +the "working_directory" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива port_in_redirect. +</para> +<para lang="en"> +the "port_in_redirect" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если заголовок ответа бэкенда не помещался в один пакет, то +происходил segmentation fault; +ошибка появилась в 0.1.29. +</para> +<para lang="en"> +the segmentation fault was occurred if the backend response header was in +several packets; +the bug had appeared in 0.1.29. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если было сконфигурировано более 10 серверов или в сервере не описана +директива "listen", +то при запуске мог произойти segmentation fault. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если ответ не помещался во временный файл, +то мог произойти segmentation fault. +</para> +<para lang="en"> +the segmentation fault might occur if the response was bigger than +the temporary file. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx возвращал ошибку 400 на запросы вида +<nobr>"GET http://www.domain.com/uri HTTP/1.0"</nobr>; +ошибка появилась в 0.1.28. +</para> +<para lang="en"> +nginx returned the 400 response on requests like +<nobr>"GET http://www.domain.com/uri HTTP/1.0"</nobr>; +the bug had appeared in 0.1.28. +</para> +</change> + +</changes> + + +<changes ver="0.1.34" date="2005-05-26"> + +<change type="bugfix"> +<para lang="ru"> +при включении больших ответов с помощью SSI рабочий процесс мог зациклиться. +</para> +<para lang="en"> +the worker process may got caught in an endless loop if the big response +part were include by SSI. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +переменные, устанавливаемые директивой "set", не были доступны в SSI. +</para> +<para lang="en"> +the variables set by the "set" directive were not available in SSI. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива autoindex_localtime. +</para> +<para lang="en"> +the "autoindex_localtime" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +пустое значение в директиве proxy_set_header запрещает передачу заголовка. +</para> +<para lang="en"> +the empty value of the "proxy_set_header" directive forbids the client +request header line passing. +</para> +</change> + +</changes> + + +<changes ver="0.1.33" date="2005-05-23"> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался с параметром --without-pcre; +ошибка появилась в 0.1.29. +</para> +<para lang="en"> +nginx could not be built with the --without-pcre parameter; +the bug had appeared in 0.1.29. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +3, 5, 7 и 8 директив proxy_set_header на одном уровне вызывали +bus fault при запуске. +</para> +<para lang="en"> +3, 4, 7, and 8 the "proxy_set_header" directives in one level cause +the bus fault on start up. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в редиректах внутри HTTPS сервера был указан протокол HTTP. +</para> +<para lang="en"> +the HTTP protocol was specified in the HTTPS redirects. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если директива rewrite использовала выделения внутри директивы if, то +возвращалась ошибка 500. +</para> +<para lang="en"> +if the "rewrite" directive used the captures inside the "if" directive, then +the 500 error code was returned. +</para> +</change> + +</changes> + + +<changes ver="0.1.32" date="2005-05-19"> + +<change type="bugfix"> +<para lang="ru"> +в редиректах, выдаваемых с помощью директивы rewrite, не передавались аргументы; +ошибка появилась в 0.1.29. +</para> +<para lang="en"> +the arguments were omitted in the redirects, issued by the "rewrite" directive; +the bug had appeared in 0.1.29. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива if поддерживает выделения в регулярных выражениях. +</para> +<para lang="en"> +the "if" directive supports the captures in regular expressions. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива set поддерживает переменные и выделения из регулярных выражений. +</para> +<para lang="en"> +the "set" directive supports the variables and the captures of regular +expressions. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Redirect" +в ответе бэкенда. +</para> +<para lang="en"> +the "X-Accel-Redirect" response header line is supported in proxy and FastCGI +mode. +</para> +</change> + +</changes> + + +<changes ver="0.1.31" date="2005-05-16"> + +<change type="bugfix"> +<para lang="ru"> +при использовании SSL ответ мог передаваться не до конца. +</para> +<para lang="en"> +the response encrypted by SSL may not transferred complete. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при обработке SSI в ответе, полученного от FastCGI-сервера. +</para> +<para lang="en"> +errors while processing FastCGI response by SSI. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки при использовании SSI и сжатия. +</para> +<para lang="en"> +errors while using SSI and gzipping. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +редирект с кодом 301 передавался без тела ответа; +ошибка появилась в 0.1.30. +</para> +<para lang="en"> +the redirect with the 301 code was transferred without response body; +the bug had appeared in 0.1.30. +</para> +</change> + +</changes> + + +<changes ver="0.1.30" date="2005-05-14"> + +<change type="bugfix"> +<para lang="ru"> +при использовании SSI рабочий процесс мог зациклиться. +</para> +<para lang="en"> +the worker process may got caught in an endless loop if the SSI was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании SSL ответ мог передаваться не до конца. +</para> +<para lang="en"> +the response encrypted by SSL may not transferred complete. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если длина части ответа, полученного за один раз от проксируемого или +FastCGI сервера была равна 500 байт, то nginx возвращал код ответа 500; +в режиме прокси ошибка появилась только в 0.1.29. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не считал неверными директивы с 8-ю или 9-ю параметрами. +</para> +<para lang="en"> +nginx did not consider the directives with 8 or 9 parameters as invalid. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива return может возвращать код ответа 204. +</para> +<para lang="en"> +the "return" directive can return the 204 response code. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ignore_invalid_headers. +</para> +<para lang="en"> +the "ignore_invalid_headers" directive. +</para> +</change> + +</changes> + + +<changes ver="0.1.29" date="2005-05-12"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_module поддерживает команду include virtual. +</para> +<para lang="en"> +the ngx_http_ssi_module supports "include virtual" command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_module поддерживает условную команду вида +'if expr="$NAME"' и команды else и endif. +Допускается только один уровень вложенности. +</para> +<para lang="en"> +the ngx_http_ssi_module supports the condition command like +'if expr="$NAME"' and "else" and "endif" commands. +Only one nested level is supported. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_module поддерживает две переменные DATE_LOCAL и DATE_GMT +и команду config timefmt. +</para> +<para lang="en"> +the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables +and "config timefmt" command. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива ssi_ignore_recycled_buffers. +</para> +<para lang="en"> +the "ssi_ignore_recycled_buffers" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если переменная QUERY_STRING не была определена, то в команде echo +не ставилось значение по умолчанию. +</para> +<para lang="en"> +the "echo" command did not show the default value for the empty QUERY_STRING +variable. +</para> +</change> + +<change type="change"> +<para lang="ru"> +модуль ngx_http_proxy_module полностью переписан. +</para> +<para lang="en"> +the ngx_http_proxy_module was rewritten. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_redirect, proxy_pass_request_headers, +proxy_pass_request_body и proxy_method. +</para> +<para lang="en"> +the "proxy_redirect", "proxy_pass_request_headers", +"proxy_pass_request_body", and "proxy_method" directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_set_header. +Директива proxy_x_var упразднена и должна быть заменена директивой +proxy_set_header. +</para> +<para lang="en"> +the "proxy_set_header" directive. +The "proxy_x_var" was canceled and must be replaced with the proxy_set_header +directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива proxy_preserve_host упразднена и должна быть заменена директивами +"proxy_set_header Host $host" и "proxy_redirect off" +или директивой <nobr>"proxy_set_header Host $host:$proxy_port"</nobr> +и соответствующими ей директивами proxy_redirect. +</para> +<para lang="en"> +the "proxy_preserve_host" is canceled and must be replaced with +the "proxy_set_header Host $host" and the "proxy_redirect off" directives, +the <nobr>"proxy_set_header Host $host:$proxy_port" directive</nobr> +and the appropriate proxy_redirect directives. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива proxy_set_x_real_ip упразднена и должна быть заменена директивой +"proxy_set_header X-Real-IP $remote_addr". +</para> +<para lang="en"> +the "proxy_set_x_real_ip" is canceled and must be replaced with +the "proxy_set_header X-Real-IP $remote_addr" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива proxy_add_x_forwarded_for упразднена и должна быть заменена +директивой +<nobr>"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".</nobr> +</para> +<para lang="en"> +the "proxy_add_x_forwarded_for" is canceled and must be replaced with +<nobr>the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for"</nobr> +directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директива proxy_set_x_url упразднена и должна быть заменена директивой +<nobr>"proxy_set_header X-URL http://$host:$server_port$request_uri".</nobr> +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива fastcgi_param. +</para> +<para lang="en"> +the "fastcgi_param" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +директивы fastcgi_root, fastcgi_set_var и fastcgi_params упразднены +и должны быть замены директивами fastcgi_param. +</para> +<para lang="en"> +the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive +are canceled and must be replaced with the fastcgi_param directives. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива index может использовать переменные. +</para> +<para lang="en"> +the "index" directive can use the variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива index может быть указана на уровне http и server. +</para> +<para lang="en"> +the "index" directive can be used at http and server levels. +</para> +</change> + +<change type="change"> +<para lang="ru"> +только последний параметр в директиве index может быть абсолютным. +</para> +<para lang="en"> +the last index only in the "index" directive can be absolute. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +в директиве rewrite могут использоваться переменные. +</para> +<para lang="en"> +the "rewrite" directive can use the variables. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива internal. +</para> +<para lang="en"> +the "internal" directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, +SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, +REQUEST_METHOD, REQUEST_URI и REMOTE_USER. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="change"> +<para lang="ru"> +nginx теперь передаёт неверные строки в заголовках запроса клиента и +ответа бэкенда. +</para> +<para lang="en"> +nginx now passes the invalid lines in a client request headers +or a backend response header. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если бэкенд долго не передавал ответ и send_timeout был меньше, чем +proxy_read_timeout, то клиенту возвращался ответ 408. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если бэкенд передавал неверную строку в заголовке ответа, то происходил +segmentation fault; +ошибка появилась в 0.1.26. +</para> +<para lang="en"> +the segmentation fault was occurred if the backend sent an invalid line +in response header; +the bug had appeared in 0.1.26. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании отказоустойчивой конфигурации в FastCGI мог +происходить segmentation fault. +</para> +<para lang="en"> +the segmentation fault may occurred in FastCGI fault tolerance configuration. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива expires не удаляла уже установленные строки заголовка +"Expires" и "Cache-Control". +</para> +<para lang="en"> +the "expires" directive did not remove the previous "Expires" and +"Cache-Control" headers. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не учитывал завершающую точку в строке заголовка запроса "Host". +</para> +<para lang="en"> +nginx did not take into account trailing dot in "Host" header line. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_auth_module не работал на Linux. +</para> +<para lang="en"> +the ngx_http_auth_module did not work under Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива rewrite неверно работала, если в запросе присутствовали аргументы. +</para> +<para lang="en"> +the rewrite directive worked incorrectly, if the arguments were in a request. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на MacOS X. +</para> +<para lang="en"> +nginx could not be built on MacOS X. +</para> +</change> + +</changes> + + +<changes ver="0.1.28" date="2005-04-08"> + +<change type="bugfix"> +<para lang="ru"> +при проксировании больших файлов nginx сильно нагружал процессор. +</para> +<para lang="en"> +nginx hogs CPU while proxying the huge files. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался gcc 4.0 на Linux. +</para> +<para lang="en"> +nginx could not be built by gcc 4.0 on Linux. +</para> +</change> + +</changes> + + +<changes ver="0.1.27" date="2005-03-28"> + +<change type="feature"> +<para lang="ru"> +параметр blocked в директиве valid_referers. +</para> +<para lang="en"> +the "blocked" parameter of the "valid_referers" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +ошибки обработки заголовка запроса теперь записываются на уровне +info, в лог также записывается имя сервера и строки заголовка +запроса "Host" и "Referer". +</para> +<para lang="en"> +the errors while handling the request header now logged at "info" level. +The server name and the "Host" and "Referer" header lines also logged. +</para> +</change> + +<change type="change"> +<para lang="ru"> +при записи ошибок в лог записывается также строка заголовка запроса "Host". +</para> +<para lang="en"> +the "Host" header line is also logged in error log. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_pass_unparsed_uri. +Специальная обработка символов "://" в URI, введённая в версии 0.1.11, +теперь упразднена. +</para> +<para lang="en"> +the proxy_pass_unparsed_uri directive. +The special handling of the "://" symbols in URI, appeared in 0.1.11 version, +now is canceled. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на FreeBSD и Linux, если был указан параметр конфигурации +--without-ngx_http_auth_basic_module. +</para> +<para lang="en"> +nginx could not be built on FreeBSD and Linux, if the +--without-ngx_http_auth_basic_module configuration parameter was used. +</para> +</change> + +</changes> + + +<changes ver="0.1.26" date="2005-03-22"> + +<change type="change"> +<para lang="ru"> +неверные строки заголовка, переданные клиентом, теперь игнорируется и +записываются в error_log на уровне info. +</para> +<para lang="en"> +the invalid client header lines are now ignored and logged at the info level. +</para> +</change> + +<change type="change"> +<para lang="ru"> +при записи ошибок в лог записывается также имя сервера, при обращении +к которому произошла ошибка. +</para> +<para lang="en"> +the server name is also logged in error log. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_auth_basic_module и директивы auth_basic и +auth_basic_user_file. +</para> +<para lang="en"> +the ngx_http_auth_basic_module module and the auth_basic and +auth_basic_user_file directives. +</para> +</change> + +</changes> + + +<changes ver="0.1.25" date="2005-03-19"> + +<change type="bugfix"> +<para lang="ru"> +nginx не работал на Linux parisc. +</para> +<para lang="en"> +nginx did run on Linux parisc. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +nginx теперь не запускается под FreeBSD, если значение +sysctl kern.ipc.somaxconn слишком большое. +</para> +<para lang="en"> +nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn +value is too big. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если модуль ngx_http_index_module делал внутреннее перенаправление запроса +в модули ngx_http_proxy_module или ngx_http_fastcgi_module, то файл индекса +не закрывался после обслуживания запроса. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_pass может использоваться в location, заданных регулярным +выражением. +</para> +<para lang="en"> +the "proxy_pass" can be used in location with regular expression. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_rewrite_filter_module поддерживает условия вида +"if ($HTTP_USER_AGENT ~ MSIE)". +</para> +<para lang="en"> +the ngx_http_rewrite_filter_module module supports the condition like +"if ($HTTP_USER_AGENT ~ MSIE)". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx очень медленно запускался при большом количестве адресов и +использовании текстовых значений в директиве geo. +</para> +<para lang="en"> +nginx started too slow if the large number of addresses and text values +were used in the "geo" directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +имя переменной в директиве geo нужно указывать, как $name. +Прежний вариант без "$" пока работает, но вскоре будет убран. +</para> +<para lang="en"> +a variable name must be declared as "$name" in the "geo" directive. +The previous variant without "$" is still supported, but will be removed soon. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр лога "%{VARIABLE}v". +</para> +<para lang="en"> +the "%{VARIABLE}v" logging parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива "set $name value". +</para> +<para lang="en"> +the "set $name value" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +совместимость с gcc 4.0. +</para> +<para lang="en"> +gcc 4.0 compatibility. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр автоконфигурации --with-openssl-opt=OPTIONS. +</para> +<para lang="en"> +the --with-openssl-opt=OPTIONS autoconfiguration directive. +</para> +</change> + +</changes> + + +<changes ver="0.1.24" date="2005-03-04"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_filter_module поддерживает переменные +QUERY_STRING и DOCUMENT_URI. +</para> +<para lang="en"> +the ngx_http_ssi_filter_module supports the QUERY_STRING and DOCUMENT_URI +variables. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_autoindex_module мог выдавать ответ 404 +на существующий каталог, если этот каталог был указан как alias. +</para> +<para lang="en"> +the ngx_http_autoindex_module may some times return the 404 response +for existent directory, if this directory was used in "alias" directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_ssi_filter_module неправильно работал при больших +ответах. +</para> +<para lang="en"> +the ngx_http_ssi_filter_module ran incorrectly for large responses. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +отсутствие строки заголовка "Referer" всегда считалось правильным referrer'ом. +</para> +<para lang="en"> +the lack of the "Referer" header line was always accounted as valid referrer. +</para> +</change> + +</changes> + + +<changes ver="0.1.23" date="2005-03-01"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_ssi_filter_module и +директивы ssi, ssi_silent_errors и ssi_min_file_chunk. +Поддерживаются команды 'echo var="HTTP_..." default=""' и +'echo var="REMOTE_ADDR"'. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +параметр лога %request_time. +</para> +<para lang="en"> +the %request_time log parameter. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +если запрос пришёл без строки заголовка "Host", то директива +proxy_preserve_host устанавливает в качестве этого заголовка первое имя +сервера из директивы server_name. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; +ошибка появилась в 0.1.22. +</para> +<para lang="en"> +nginx could not be built on platforms different from i386, amd64, sparc, +and ppc; +the bug had appeared in 0.1.22. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_autoindex_module теперь показывает информацию не о +символическом линке, а о файле или каталоге, на который он указывает. +</para> +<para lang="en"> +the ngx_http_autoindex_module now shows the information not about the symlink, +but about file or directory it points to. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если клиенту ничего не передавалось, то параметр %apache_length +записывал в лог отрицательную длину заголовка ответа. +</para> +<para lang="en"> +the %apache_length parameter logged the negative length +of the response header if the no response was transferred to a client. +</para> +</change> + +</changes> + + +<changes ver="0.1.22" date="2005-02-22"> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_stub_status_module показывал неверную статистику +для обработанных соединений, если использовалось проксирование +или FastCGI-сервер. +</para> +<para lang="en"> +the ngx_http_stub_status_module showed incorrect handled connections +statistics if the proxying or FastCGI server were used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на Linux и Solaris установочные пути были неверно заключены в кавычки; +ошибка появилась в 0.1.21. +</para> +<para lang="en"> +the installation paths were incorrectly quoted on Linux and Solaris; +the bug had appeared in 0.1.21. +</para> +</change> + +</changes> + + +<changes ver="0.1.21" date="2005-02-22"> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_stub_status_module показывал неверную статистику +при использовании метода rtsig или при использовании нескольких +рабочих процессов на SMP машине. +</para> +<para lang="en"> +the ngx_http_stub_status_module showed incorrect statistics +if "rtsig" method was used or if several worker process ran on SMP. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался компилятором icc под Линуксом или +если библиотека zlib-1.2.x собиралась из исходных текстов. +</para> +<para lang="en"> +nginx could not be built by the icc compiler on Linux or +if the zlib-1.2.x library was building from sources. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался под NetBSD 2.0. +</para> +<para lang="en"> +nginx could not be built on NetBSD 2.0. +</para> +</change> + +</changes> + + +<changes ver="0.1.20" date="2005-02-17"> + +<change type="feature"> +<para lang="ru"> +новые параметры script_filename и remote_port в директиве fastcgi_params. +</para> +<para lang="en"> +the new "script_filename" and "remote_port" parameters +of the fastcgi_params directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +неправильно обрабатывался поток stderr от FastCGI-сервера. +</para> +<para lang="en"> +the FastCGI stderr stream was handled incorrectly. +</para> +</change> + +</changes> + + +<changes ver="0.1.19" date="2005-02-16"> + +<change type="bugfix"> +<para lang="ru"> +если в запросе есть нуль, то для локальных запросов теперь возвращается +ошибка 404. +</para> +<para lang="en"> +now, if request contains the zero, then the 404 error is returned +for the local requests. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался под NetBSD 2.0. +</para> +<para lang="en"> +nginx could not be built on NetBSD 2.0. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +во время чтения тела запроса клиента в SSL соединении мог произойти таймаут. +</para> +<para lang="en"> +the timeout may occur while reading of the client request body +via SSL connections. +</para> +</change> + +</changes> + + +<changes ver="0.1.18" date="2005-02-09"> + +<change type="workaround"> +<para lang="ru"> +для совместимости с Solaris 10 в директивах devpoll_events и devpoll_changes +значения по умолчанию уменьшены с 512 до 32. +</para> +<para lang="en"> +the default values of the devpoll_events and the devpoll_changes directives +changed from 512 to 32 to be compatible with Solaris 10. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директивы proxy_set_x_var и fastcgi_set_var не наследовались. +</para> +<para lang="en"> +the proxy_set_x_var and fastcgi_set_var directives were not inherited. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в директиве rewrite, возвращающей редирект, аргументы присоединялись +к URI через символ "&" вместо "?". +</para> +<para lang="en"> +in a redirect rewrite directive arguments were concatenated with URI +by an "&" rather than a "?". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +строки для модуля ngx_http_geo_module без символа ";" во включённом файле +игнорировались. +</para> +<para lang="en"> +the lines without trailing ";" in the file being included +by the ngx_http_geo_module were silently ignored. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_stub_status_module. +</para> +<para lang="en"> +the ngx_http_stub_status_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +неизвестный формат лог-файла в директиве access_log вызывал segmentation fault. +</para> +<para lang="en"> +the unknown log format in the access_log directive caused +the segmentation fault. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +новый параметр document_root в директиве fastcgi_params. +</para> +<para lang="en"> +the new "document_root" parameter of the fastcgi_params directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива fastcgi_redirect_errors. +</para> +<para lang="en"> +the fastcgi_redirect_errors directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +новый модификатор break в директиве rewrite позволяет прекратить +цикл rewrite/location и устанавливает текущую конфигурацию для запроса. +</para> +<para lang="en"> +the new "break" modifier of the "rewrite" directive allows to stop +the rewrite/location cycle and sets the current configuration to the request. +</para> +</change> + +</changes> + + +<changes ver="0.1.17" date="2005-02-03"> + +<change type="change"> +<para lang="ru"> +модуль ngx_http_rewrite_module полностью переписан. +Теперь можно делать редиректы, возвращать коды ошибок +и проверять переменные и рефереры. +Эти директивы можно использовать внутри location. +Директива redirect упразднена. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_geo_module. +</para> +<para lang="en"> +the ngx_http_geo_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы proxy_set_x_var и fastcgi_set_var. +</para> +<para lang="en"> +the proxy_set_x_var and fastcgi_set_var directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +конфигурация location с модификатором "=" могла использоваться +в другом location. +</para> +<para lang="en"> +the location configuration with "=" modifier may be used in another +location. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +правильный тип ответа выставлялся только для запросов, у которых в расширении +были только маленькие буквы. +</para> +<para lang="en"> +the correct content type was set only for requests that use small caps letters +in extension. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если для location установлен proxy_pass или fastcgi_pass, и доступ +к нему запрещался, а ошибка перенаправлялась на статическую страницу, +то происходил segmentation fault. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в проксированном ответе в заголовке "Location" передавался +относительный URL, то к нему добавлялось имя хоста и слэш; +ошибка появилась в 0.1.14. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на Linux в лог не записывался текст системной ошибки. +</para> +<para lang="en"> +the system error message was not logged on Linux. +</para> +</change> + +</changes> + + +<changes ver="0.1.16" date="2005-01-25"> + +<change type="bugfix"> +<para lang="ru"> +если ответ передавался chunk'ами, то при запросе HEAD выдавался +завершающий chunk. +</para> +<para lang="en"> +if the response were transferred by chunks, then on the HEAD request +the final chunk was issued. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +заголовок "Connection: keep-alive" выдавался, даже если директива +keepalive_timeout запрещала использование keep-alive. +</para> +<para lang="en"> +the "Connection: keep-alive" header were issued, even if the +keepalive_timeout directive forbade the keep-alive use. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки в модуле ngx_http_fastcgi_module вызывали segmentation fault. +</para> +<para lang="en"> +the errors in the ngx_http_fastcgi_module caused the segmentation faults. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании SSL сжатый ответ мог передаваться не до конца. +</para> +<para lang="en"> +the compressed response encrypted by SSL may not transferred complete. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные для TCP сокетов, +не используются для unix domain сокетов. +</para> +<para lang="en"> +the TCP-specific TCP_NODELAY, TCP_NOPUSH, and TCP_CORK options, +are not used for the unix domain sockets. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива rewrite поддерживает перезаписывание аргументов. +</para> +<para lang="en"> +the rewrite directive supports the arguments rewriting. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на запрос POST с заголовком "Content-Length: 0" возвращался ответ 400; +ошибка появилась в 0.1.14. +</para> +<para lang="en"> +the response code 400 was returned for the POST request with the +"Content-Length: 0" header; +the bug had appeared in 0.1.14. +</para> +</change> + +</changes> + + +<changes ver="0.1.15" date="2005-01-19"> + +<change type="bugfix"> +<para lang="ru"> +ошибка соединения с FastCGI-сервером вызывала segmentation fault. +</para> +<para lang="en"> +the error while the connecting to the FastCGI server caused +segmentation fault. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +корректная обработка регулярного выражения, в котором число +выделенных частей не совпадает с числом подстановок. +</para> +<para lang="en"> +the correct handling of the regular expression, that +has different number of the captures and substitutions. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +location, который передаётся FastCGI-серверу, может быть задан +с помощью регулярного выражения. +</para> +<para lang="en"> +the location, that is passed to the FastCGI server, can be +regular expression. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр FastCGI REQUEST_URI теперь передаётся вместе с аргументами +и в том виде, в котором был получен от клиента. +</para> +<para lang="en"> +the FastCGI's parameter REQUEST_URI is now passed with the arguments +and in the original state. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +для использования регулярных выражений в location нужно было +собирать nginx вместе с ngx_http_rewrite_module. +</para> +<para lang="en"> +the ngx_http_rewrite_module module was required to be built to use +the regular expressions in locations. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если бэкенд слушал на 80-ом порту, то при использовании директивы +<nobr>"proxy_preserve_host on"</nobr> в заголовке "Host" указывался +также порт 80; +ошибка появилась в 0.1.14. +</para> +<para lang="en"> +the directive <nobr>"proxy_preserve_host on"</nobr> adds port 80 +to the "Host" headers, if upstream listen on port 80; +the bug had appeared in 0.1.14. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если задать одинаковые пути в параметрах автоконфигурации +--http-client-body-temp-path=PATH и --http-proxy-temp-path=PATH +или --http-client-body-temp-path=PATH и --http-fastcgi-temp-path=PATH, +то происходил segmentation fault. +</para> +<para lang="en"> +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. +</para> +</change> + +</changes> + + +<changes ver="0.1.14" date="2005-01-18"> + +<change type="feature"> +<para lang="ru"> +параметры автоконфигурации +--http-client-body-temp-path=PATH, +--http-proxy-temp-path=PATH +и --http-fastcgi-temp-path=PATH +</para> +<para lang="en"> +the autoconfiguration directives: +--http-client-body-temp-path=PATH, +--http-proxy-temp-path=PATH, +and --http-fastcgi-temp-path=PATH +</para> +</change> + +<change type="change"> +<para lang="ru"> +имя каталога с временными файлами, содержащие тело запроса клиента, +задаётся директивой client_body_temp_path, +по умолчанию <prefix>/client_body_temp. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модуль 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. + +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибка "[alert] zero size buf"; +ошибка появилась в 0.1.3. +</para> +<para lang="en"> +the "[alert] zero size buf" error; +the bug had appeared in 0.1.3. +</para> +</change> + +<change type="change"> +<para lang="ru"> +в директиве proxy_pass нужно обязательно указывать URI после имени хоста. +</para> +<para lang="en"> +the URI must be specified after the host name in the proxy_pass directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +если в URI встречался символ %3F, то он считался началом строки аргументов. +</para> +<para lang="en"> +the %3F symbol in the URI was considered as the argument string start. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +поддержка unix domain сокетов в модуле ngx_http_proxy_module. +</para> +<para lang="en"> +the unix domain sockets support in the ngx_http_proxy_module. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директивы ssl_engine и ssl_ciphers.<br/> +Спасибо Сергею Скворцову за SSL-акселератор. +</para> +<para lang="en"> +the ssl_engine and ssl_ciphers directives.<br/> +Thanks to Sergey Skvortsov for SSL-accelerator. +</para> +</change> + +</changes> + + +<changes ver="0.1.13" date="2004-12-21"> + +<change type="feature"> +<para lang="ru"> +директивы server_names_hash и server_names_hash_threshold. +</para> +<para lang="en"> +the server_names_hash and server_names_hash_threshold directives. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +имена *.domain.tld в директиве server_name не работали. +</para> +<para lang="en"> +the *.domain.tld names in the "server_name" directive did not work. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +параметр лога %request_length записывал неверную длину. +</para> +<para lang="en"> +the %request_length log parameter logged the incorrect length. +</para> +</change> + +</changes> + + +<changes ver="0.1.12" date="2004-12-06"> + +<change type="feature"> +<para lang="ru"> +параметр лога %request_length. +</para> +<para lang="en"> +the %request_length log parameter. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании /dev/poll, select и poll на платформах, где возможны +ложные срабатывания указанных методов, могли быть длительные задержки +при обработке запроса по keep-alive соединению. +Наблюдалось по крайней мере на Solaris с использованием /dev/poll. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива send_lowat игнорируется на Linux, так как Linux не поддерживает +опцию SO_SNDLOWAT. +</para> +<para lang="en"> +the send_lowat directive is ignored on Linux because Linux does not support +the SO_SNDLOWAT option. +</para> +</change> + +</changes> + + +<changes ver="0.1.11" date="2004-12-02"> + +<change type="feature"> +<para lang="ru"> +директива worker_priority. +</para> +<para lang="en"> +the worker_priority directive. +</para> +</change> + +<change type="change"> +<para lang="ru"> +под FreeBSD директивы tcp_nopush и tcp_nodelay вместе влияют на передачу +ответа. +</para> +<para lang="en"> +both tcp_nopush and tcp_nodelay directives affect the transferred response. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не вызывал initgroups().<br/> +Спасибо Андрею Ситникову и Андрею Нигматулину. +</para> +<para lang="en"> +nginx did not call initgroups().<br/> +Thanks to Andrew Sitnikov and Andrei Nigmatulin. +</para> +</change> + +<change type="change"> +<para lang="ru"> +ngx_http_auto_index_module теперь выдаёт размер файлов в байтах. +</para> +<para lang="en"> +now the ngx_http_autoindex_module shows the file size in the bytes. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ngx_http_auto_index_module возвращал ошибку 500, если в каталоге есть +битый symlink. +</para> +<para lang="en"> +the ngx_http_autoindex_module returned the 500 error if the broken symlink +was in a directory. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +файлы больше 4G не передавались с использованием sendfile. +</para> +<para lang="en"> +the files bigger than 4G could not be transferred using sendfile. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если бэкенд резолвился в несколько адресов и при ожидании от него ответа +происходила ошибка, то процесс зацикливался. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании метода /dev/poll рабочий процесс мог завершиться +с сообщением "unknown cycle". +</para> +<para lang="en"> +the worker process may exit with the "unknown cycle" message when the /dev/poll +method was used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки "close() channel failed". +</para> +<para lang="en"> +"close() channel failed" errors. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +автоматическое определение групп nobody и nogroup. +</para> +<para lang="en"> +the autodetection of the "nobody" and "nogroup" groups. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +директива send_lowat не работала на Linux. +</para> +<para lang="en"> +the send_lowat directive did not work on Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +если в конфигурации не было раздела events, то происходил segmentation fault. +</para> +<para lang="en"> +the segmentation fault occurred if there was no events section +in configuration. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался под OpenBSD. +</para> +<para lang="en"> +nginx could not be built on OpenBSD. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +двойные слэшы в "://" в URI превращались в ":/". +</para> +<para lang="en"> +the double slashes in "://" in the URI were converted to ":/". +</para> +</change> + +</changes> + + +<changes ver="0.1.10" date="2004-11-26"> + +<change type="bugfix"> +<para lang="ru"> +если в запросе без аргументов есть "//", "/./", "/../" или "%XX", +то терялся последний символ в строке запроса; +ошибка появилась в 0.1.9. +</para> +<para lang="en"> +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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +исправление в версии 0.1.9 для файлов больше 2G на Linux не работало. +</para> +<para lang="en"> +the fix in 0.1.9 for the files bigger than 2G on Linux did not work. +</para> +</change> + +</changes> + + +<changes ver="0.1.9" date="2004-11-25"> + +<change type="bugfix"> +<para lang="ru"> +если в запросе есть "//", "/./", "/../" или "%XX", то проксируемый +запрос передавался без аргументов. +</para> +<para lang="en"> +the proxied request was sent without arguments if the request contains +"//", "/./", "/../" or "%XX". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при сжатии больших ответов иногда они передавались не полностью. +</para> +<para lang="en"> +the large compressed responses may be transferred not completely. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +не передавались файлы больше 2G на Linux, неподдерживающем sendfile64(). +</para> +<para lang="en"> +the files bigger than 2G was not transferred on Linux that does not support +sendfile64(). +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на Linux при конфигурации сборки нужно было обязательно использовать +параметр --with-poll_module; +ошибка появилась в 0.1.8. +</para> +<para lang="en"> +while the build configuration on Linux the --with-poll_module parameter +was required; +the bug had appeared in 0.1.8. +</para> +</change> + +</changes> + + +<changes ver="0.1.8" date="2004-11-20"> + +<change type="bugfix"> +<para lang="ru"> +ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов. +</para> +<para lang="en"> +in the ngx_http_autoindex_module if the long file names were in the listing. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +модификатор "^~" в директиве location. +</para> +<para lang="en"> +the "^~" modifier in the location directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_max_temp_file_size. +</para> +<para lang="en"> +the proxy_max_temp_file_size directive. +</para> +</change> + +</changes> + + +<changes ver="0.1.7" date="2004-11-12"> + +<change type="bugfix"> +<para lang="ru"> +при использовании sendfile, если передаваемый файл менялся, то мог +произойти segmentation fault на FreeBSD; +ошибка появилась в 0.1.5. +</para> +<para lang="en"> +on FreeBSD the segmentation fault may occur if the size of the transferred +file was changed; +the bug had appeared in 0.1.5. +</para> +</change> + +</changes> + + +<changes ver="0.1.6" date="2004-11-11"> + +<change type="bugfix"> +<para lang="ru"> +при некоторых комбинациях директив location c регулярными выражениями +использовалась конфигурация не из того location. +</para> +<para lang="en"> +some location directive combinations with the regular expressions caused +the wrong configuration choose. +</para> +</change> + +</changes> + + +<changes ver="0.1.5" date="2004-11-11"> + +<change type="bugfix"> +<para lang="ru"> +на Solaris и Linux могло быть очень много сообщений "recvmsg() returned +not enough data". +</para> +<para lang="en"> +on Solaris and Linux there may be too many "recvmsg() returned not enough data" +alerts. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в режиме прокси без использования sendfile на Solaris возникала +ошибка "writev() failed <nobr>(22: Invalid argument)".</nobr> +На других платформах, не поддерживающих sendfile, процесс зацикливался. +</para> +<para lang="en"> +there were the "writev() failed <nobr>(22: Invalid argument)"</nobr> 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. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании sendfile в режиме прокси на Solaris возникал +segmentation fault. +</para> +<para lang="en"> +segmentation fault on Solaris in proxy mode and using sendfile. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +segmentation fault на Solaris. +</para> +<para lang="en"> +segmentation fault on Solaris. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +обновление исполняемого файла на лету не работало на Linux. +</para> +<para lang="en"> +on-line upgrade did not work on Linux. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +в списке файлов, выдаваемом модулем ngx_http_autoindex_module, +не перекодировались пробелы, кавычки и знаки процента. +</para> +<para lang="en"> +the ngx_http_autoindex_module module did not escape the spaces, +the quotes, and the percent signs in the directory listing. +</para> +</change> + +<change type="change"> +<para lang="ru"> +уменьшение операций копирования. +</para> +<para lang="en"> +the decrease of the copy operations. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива userid_p3p. +</para> +<para lang="en"> +the userid_p3p directive. +</para> +</change> + +</changes> + + +<changes ver="0.1.4" date="2004-10-26"> + +<change type="bugfix"> +<para lang="ru"> +ошибка в модуле ngx_http_autoindex_module. +</para> +<para lang="en"> +in the ngx_http_autoindex_module. +</para> +</change> + +</changes> + + +<changes ver="0.1.3" date="2004-10-25"> + +<change type="feature"> +<para lang="ru"> +модуль ngx_http_autoindex_module и директива autoindex. +</para> +<para lang="en"> +the ngx_http_autoindex_module and the autoindex directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива proxy_set_x_url. +</para> +<para lang="en"> +the proxy_set_x_url directive. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль проксировании мог привести к зацикливанию, если не использовался +sendfile. +</para> +<para lang="en"> +proxy module may get caught in an endless loop when sendfile is not used. +</para> +</change> + +</changes> + + +<changes ver="0.1.2" date="2004-10-21"> + +<change type="feature"> +<para lang="ru"> +параметры --user=USER, --group=GROUP и --with-ld-opt=OPTIONS в configure. +</para> +<para lang="en"> +the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива server_name поддерживает *.domain.tld. +</para> +<para lang="en"> +the server_name directive supports *.domain.tld. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +улучшена переносимость на неизвестные платформы. +</para> +<para lang="en"> +the portability improvements. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +нельзя переконфигурировать nginx, если конфигурационный файл указан +в командной строке; +ошибка появилась в 0.1.1. +</para> +<para lang="en"> +if configuration file was set in command line, the reconfiguration +was impossible; +the bug had appeared in 0.1.1. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль проксировании мог привести к зацикливанию, если не использовался +sendfile. +</para> +<para lang="en"> +proxy module may get caught in an endless loop when sendfile is not used. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при использовании sendfile текст ответа не перекодировался +согласно директивам модуля charset; +ошибка появилась в 0.1.1. +</para> +<para lang="en"> +with sendfile the response was not recoded according to the charset +module directives; +the bug had appeared in 0.1.1. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +очень редкая ошибка при обработке kqueue. +</para> +<para lang="en"> +very seldom bug in the kqueue processing. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль сжатия сжимал уже сжатые ответы, полученные при проксировании. +</para> +<para lang="en"> +the gzip module compressed the proxied responses that was already compressed. +</para> +</change> + +</changes> + + +<changes ver="0.1.1" date="2004-10-11"> + +<change type="feature"> +<para lang="ru"> +директива gzip_types. +</para> +<para lang="en"> +the gzip_types directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива tcp_nodelay. +</para> +<para lang="en"> +the tcp_nodelay directive. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +директива send_lowat работает не только на платформах, поддерживающих +kqueue NOTE_LOWAT, но и на всех, поддерживающих SO_SNDLOWAT. +</para> +<para lang="en"> +the send_lowat directive is working not only on OSes that support +kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT. +</para> +</change> + +<change type="feature"> +<para lang="ru"> +эмуляция setproctitle() для Linux и Solaris. +</para> +<para lang="en"> +the setproctitle() emulation for Linux and Solaris. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибка при переписывании заголовка "Location" при проксировании. +</para> +<para lang="en"> +the "Location" header rewrite bug fixed while the proxying. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибка в модуле ngx_http_chunked_module, приводившая к зацикливанию. +</para> +<para lang="en"> +the ngx_http_chunked_module module may get caught in an endless loop. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +ошибки в модуле /dev/poll. +</para> +<para lang="en"> +the /dev/poll module bugs fixed. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +при проксировании и использовании временных файлов ответы портились. +</para> +<para lang="en"> +the responses were corrupted when the temporary files were used +while the proxying. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +бэкенду передавались запросы с неперекодированными символами. +</para> +<para lang="en"> +the unescaped requests were passed to the backend. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +на Linux 2.4 при конфигурации сборки нужно было обязательно использовать +параметр --with-poll_module. +</para> +<para lang="en"> +while the build configuration on Linux 2.4 the --with-poll_module parameter +was required. +</para> +</change> + +</changes> + + +<changes ver="0.1.0" date="2004-10-04"> + +<change> +<para lang="ru"> +Первая публично доступная версия. +</para> +<para lang="en"> +The first public version. +</para> +</change> + +</changes> + + +</change_log> 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<xsl:output method="text"/> + +<xsl:param select="'en'" name="lang"/> +<xsl:param select="'../xml/change_log_conf.xml'" name="configuration"/> + +<xsl:variable select="document($configuration)/configuration" name="conf"/> +<xsl:variable select="$conf/start" name="start"/> +<xsl:variable select="$conf/indent" name="indent"/> +<xsl:variable select="$conf/length" name="max"/> +<xsl:variable name="br"><br></xsl:variable> + + +<xsl:template match="/"> <xsl:apply-templates select="change_log"/> </xsl:template> +<xsl:template match="change_log"> <xsl:apply-templates select="changes"/> </xsl:template> + + +<xsl:template match="changes"> + <xsl:text> </xsl:text> + + <xsl:value-of select="substring(concat($conf/changes[@lang=$lang]/title, + //change_log/@title, + ' ', @ver, + ' '), + 1, $conf/changes[@lang=$lang]/length)"/> + + <xsl:if test="$lang='ru'"> + <xsl:value-of select="substring(@date, 9, 2)"/> + <xsl:text>.</xsl:text> + <xsl:value-of select="substring(@date, 6, 2)"/> + <xsl:text>.</xsl:text> + <xsl:value-of select="substring(@date, 1, 4)"/> + </xsl:if> + + <xsl:if test="$lang='en'"> + <xsl:value-of select="substring(@date, 9, 2)"/> + <xsl:value-of select="$conf/changes[@lang=$lang]/month[number(substring(current()/@date, + 6, 2))]"/> + <xsl:value-of select="substring(@date, 1, 4)"/> + </xsl:if> + + <xsl:text> </xsl:text> + + <xsl:apply-templates select="change"/> + + <xsl:text> </xsl:text> +</xsl:template> + + +<xsl:template match="change"> + <xsl:variable select="$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]" name="prefix"/> + + <xsl:variable name="postfix"> <xsl:if test="$prefix"> <xsl:text>: </xsl:text> </xsl:if> </xsl:variable> + + <xsl:apply-templates select="para[@lang=$lang]"><xsl:with-param select="concat($start, $prefix, $postfix)" name="prefix"/></xsl:apply-templates> +</xsl:template> + + +<xsl:template name="para" match="para"><xsl:param name="prefix"/> + <xsl:variable name="text"> <xsl:apply-templates/> </xsl:variable> + + <xsl:text> </xsl:text> + + <xsl:call-template name="wrap"><xsl:with-param select="normalize-space($text)" name="text"/><xsl:with-param name="prefix"> <xsl:choose><xsl:when test="position() = 1"> <xsl:value-of select="$prefix"/> </xsl:when><xsl:otherwise> <xsl:value-of select="$indent"/> </xsl:otherwise></xsl:choose> </xsl:with-param></xsl:call-template></xsl:template> + + +<xsl:template name="wrap"><xsl:param name="text"/><xsl:param name="prefix"/> + <xsl:if test="$text"> + <xsl:variable name="offset"> + <xsl:choose> + <xsl:when test="starts-with($text, concat($br, ' '))"> + <xsl:value-of select="string-length($br) + 2"/> + </xsl:when> + <xsl:when test="starts-with($text, $br)"> + <xsl:value-of select="string-length($br) + 1"/> + </xsl:when> + <xsl:otherwise> + 1 + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="length"> + <xsl:call-template name="length"><xsl:with-param select="substring($text, $offset)" name="text"/><xsl:with-param select="string-length($prefix)" name="prefix"/><xsl:with-param select="$max" name="length"/></xsl:call-template></xsl:variable> + + <xsl:value-of select="$prefix"/> + + <xsl:value-of select="normalize-space(translate(substring($text, $offset, $length), + ' ', ' '))"/> + + <xsl:text> </xsl:text> + + <xsl:call-template name="wrap"><xsl:with-param select="substring($text, $length + $offset)" name="text"/><xsl:with-param select="$indent" name="prefix"/></xsl:call-template></xsl:if> +</xsl:template> + + +<xsl:template name="length"><xsl:param name="text"/><xsl:param name="prefix"/><xsl:param name="length"/> + <xsl:variable select="substring-before(substring($text, 1, + $length - $prefix + string-length($br)), + $br)" name="break"/> + + <xsl:choose> + <xsl:when test="$break"> <xsl:value-of select="string-length($break)"/> </xsl:when> + + <xsl:when test="$length = 0"> <xsl:value-of select="$max - $prefix"/> </xsl:when> + + <xsl:when test="string-length($text) + $prefix <= $length"> + <xsl:value-of select="$length - $prefix"/> + </xsl:when> + + <xsl:when test="substring($text, $length - $prefix + 1, 1) = ' '"> + <xsl:value-of select="$length - $prefix + 1"/> + </xsl:when> + + <xsl:otherwise> + <xsl:call-template name="length"><xsl:with-param select="$text" name="text"/><xsl:with-param select="$prefix" name="prefix"/><xsl:with-param select="$length - 1" name="length"/></xsl:call-template></xsl:otherwise> + </xsl:choose> +</xsl:template> + + +<xsl:template match="at">@</xsl:template> +<xsl:template match="br"> <xsl:value-of select="$br"/> </xsl:template> +<xsl:template match="nobr"> <xsl:value-of select="translate(., ' ', ' ')"/> </xsl:template> + + +</xsl:stylesheet> |