blob: 554445540f2a54f9e300ac22a68b036ff79148cb [file] [log] [blame]
<?xml version="1.0" encoding="koi8-r" ?>
<!DOCTYPE change_log SYSTEM "../../dtd/changes.dtd" >
<change_log link="/nginx/changes.html" path="/nginx/" root=".."
title="nginx">
<title lang="ru">éÚÍÅÎÅÎÉÑ × nginx</title>
<title lang="en">nginx changelog</title>
<changes ver="0.6.39" date="14.09.2009">
<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">
ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ 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>
</changes>
<changes ver="0.6.38" date="22.06.2009">
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Á keepalive_requests.
</para>
<para lang="en">
the "keepalive_requests" directive.
</para>
</change>
</changes>
<changes ver="0.6.37" date="18.05.2009">
<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">
nginx ÎÅ ÓÏÂÉÒÁÌÓÑ ÎÁ ÐÌÁÔÆÏÒÍÁÈ, ÏÔÌÉÞÎÙÈ ÏÔ i386, amd64, sparc É ppc;
ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.6.36.
</para>
<para lang="en">
nginx could not be built on platforms different from i386, amd64, sparc,
and ppc;
the bug had appeared in 0.6.36.
</para>
</change>
</changes>
<changes ver="0.6.36" date="02.04.2009">
<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">
ÔÅÐÅÒØ ÒÁÚÒÅÛÁÀÔÓÑ POST'Ù ÂÅÚ ÓÔÒÏËÉ "Content-Length" × ÚÁÇÏÌÏ×ËÅ ÚÁÐÒÏÓÁ.
</para>
<para lang="en">
now POSTs without "Content-Length" header line are allowed.
</para>
</change>
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Á try_files.
</para>
<para lang="en">
the "try_files" directive.
</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">
ÄÉÒÅËÔÉ×Á if_modified_since.
</para>
<para lang="en">
the "if_modified_since" directive.
</para>
</change>
<change type="feature">
<para lang="ru">
ÐÅÒÅÍÅÎÎÙÅ "$cookie_...".
</para>
<para lang="en">
the "$cookie_..." variables.
</para>
</change>
<change type="feature">
<para lang="ru">
ÐÅÒÅÍÅÎÎÙÅ "$arg_...".
</para>
<para lang="en">
the "$arg_..." variables.
</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">
ÄÉÒÅËÔÉ×Á 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">
× ÄÉÒÅËÔÉ×Å rewrite, ×ÏÚ×ÒÁÝÁÀÝÅÊ ÒÅÄÉÒÅËÔ, ÓÔÁÒÙÅ ÁÒÇÕÍÅÎÔÙ ÐÒÉÓÏÅÄÉÎÑÌÉÓØ
Ë ÎÏ×ÙÍ ÞÅÒÅÚ ÓÉÍ×ÏÌ "?" ×ÍÅÓÔÏ "&amp;";<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 "&amp;";<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>
<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">
ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÄÉÒÅËÔÉ×Ù 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>
<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">
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>
</changes>
<changes ver="0.6.35" date="26.01.2009">
<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>
<change>
<para lang="ru">
éÓÐÒÁ×ÌÅÎÉÑ × ÐÏÄÄÅÒÖËÅ ÓÔÒÏËÉ "Expect" × ÚÁÇÏÌÏ×ËÅ ÚÁÐÒÏÓÁ.
</para>
<para lang="en">
Bugfixes in an "Expect" request header line support.
</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.6.34" date="27.11.2008">
<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">
ÔÅÐÅÒØ ÄÉÒÅËÔÉ×Á "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">
ÄÉÒÅËÔÉ×Á expires ÐÏÄÄÅÒÖÉ×ÁÅÔ ÓÕÔÏÞÎÏÅ ×ÒÅÍÑ.
</para>
<para lang="en">
the "expires" directive supports daily time.
</para>
</change>
<change type="feature">
<para lang="ru">
ÐÏÄÄÅÒÖËÁ ÓÔÒÏËÉ "Expect" × ÚÁÇÏÌÏ×ËÅ ÚÁÐÒÏÓÁ.
</para>
<para lang="en">
the "Expect" request header line support.
</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">
ÐÁÒÁÍÅÔÒÙ ÄÉÒÅËÔÉ×Ù 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">
ÄÉÒÅËÔÉ×Á 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">
ÔÅÐÅÒØ, ÅÓÌÉ 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>
<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>
<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.6.33" date="20.11.2008">
<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="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">
resolver ÎÅ ÐÏÎÉÍÁÌ ÂÏÌØÛÉÅ DNS-ÏÔ×ÅÔÙ.<br/>
óÐÁÓÉÂÏ Zyb.
</para>
<para lang="en">
the resolver did not understand big DNS responses.<br/>
Thanks to Zyb.
</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_charset_module ÎÅ ÐÏÎÉÍÁÌ ÎÁÚ×ÁÎÉÅ ËÏÄÉÒÏ×ËÉ × ËÁ×ÙÞËÁÈ,
ÐÏÌÕÞÅÎÎÏÅ ÏÔ ÂÜËÅÎÄÁ.
</para>
<para lang="en">
the ngx_http_charset_module did not understand quoted charset name
received from backend.
</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">
ÍÅÔÏÄ $r->header_in() ÎÅ ×ÏÚ×ÒÁÝÁÌ ÚÎÁÞÅÎÉÑ ÓÔÒÏË "Host", "User-Agent",
É "Connection" ÉÚ ÚÁÇÏÌÏ×ËÁ ÚÁÐÒÏÓÁ;
ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.6.32.
</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.6.32.
</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">
ÅÓÌÉ Õ ËÁÔÁÌÏÇÁ ÂÙÌÉ ÐÒÁ×Á ÄÏÓÔÕÐÁ ÔÏÌØËÏ ÎÁ ÐÏÉÓË ÆÁÊÌÏ×
É ÐÅÒ×ÙÊ ÉÎÄÅËÓÎÙÊ ÆÁÊÌ ÏÔÓÕÔÓÔ×Ï×ÁÌ, ÔÏ 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">
ÒÅËÕÒÓÉ×ÎÏÊ error_page ÄÌÑ 500 ÏÛÉÂËÉ.
</para>
<para lang="en">
of recursive error_page for 500 status code.
</para>
</change>
</changes>
<changes ver="0.6.32" date="07.07.2008">
<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="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">
ÐÒÉ ÓÏ×ÍÅÓÔÎÏÍ ÉÓÐÏÌØÚÏ×ÁÎÉÉ sub_filter É SSI
ÏÔ×ÅÔÙ ÍÏÇÌÉ ÐÅÒÅÄÁ×ÁÔØÓÑ ÎÅ×ÅÒÎÏ.
</para>
<para lang="en">
if sub_filter and SSI were used together, then responses might
were transferred incorrectly.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÂÏÌØÛÉÅ ×ËÌÀÞÅÎÉÑ × SSI ÍÏÇÌÉ ÐÅÒÅÄÁ×ÁÌÉÓØ ÎÅ ÐÏÌÎÏÓÔØÀ.
</para>
<para lang="en">
large SSI inclusions might be truncated.
</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>
<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>
<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>
<!-- 0.7.x branch -->
<changes ver="0.6.31" date="12.05.2008">
<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="29.04.2008">
<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="18.03.2008">
<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="13.03.2008">
<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="12.03.2008">
<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="11.02.2008">
<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/>
óÐÁÓÉÂÏ Gena Makhomed.
</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="08.01.2008">
<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="27.12.2007">
<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="27.12.2007">
<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="19.12.2007">
<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="03.12.2007">
<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="28.11.2007">
<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="27.11.2007">
<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="27.11.2007">
<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="15.11.2007">
<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="29.10.2007">
<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="22.10.2007">
<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="15.10.2007">
<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="24.09.2007">
<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="21.09.2007">
<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="11.09.2007">
<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="03.09.2007">
<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="28.08.2007">
<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="20.08.2007">
<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="15.08.2007">
<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="30.07.2007">
<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 ÉÓÐÏÌØÚÏ×ÁÌ ÔÏÌØËÏ ÏÄÉÎ ÐÏÒÔ&mdash;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&mdash;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="23.07.2007">
<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="17.07.2007">
<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="12.07.2007">
<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="09.07.2007">
<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="17.06.2007">
<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="14.06.2007">
<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="11.06.2007">
<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="06.06.2007">
<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="04.06.2007">
<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="29.05.2007">
<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="28.05.2007">
<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 choosen 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="07.05.2007">
<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="24.04.2007">
<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="19.04.2007">
<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="02.04.2007">
<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-cachable variables (such as $uri variable)
returned old cached value.
</para>
</change>
</changes>
<changes ver="0.5.16" date="26.03.2007">
<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="19.03.2007">
<change type="feature">
<para lang="ru">
ÐÏÞÔÏ×ÙÊ ÐÒÏËÓÉ-ÓÅÒ×ÅÒ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÁÕÔÅÎÔÉÆÉÃÉÒÏ×ÁÎÎÏÅ SMTP-ÐÒÏËÓÉÒÏ×ÁÎÉÅ É
ÄÉÒÅËÔÉ×Ù smtp_auth, smtp_capablities É xclient.<br/>
óÐÁÓÉÂÏ áÎÔÏÎÕ àÖÁÎÉÎÏ×Õ É íÁËÓÉÍÕ äÕÎÉÎÕ.
</para>
<para lang="en">
the mail proxy supports authenticated SMTP proxying and
the "smtp_auth", "smtp_capablities", 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="23.02.2007">
<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="19.02.2007">
<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="12.02.2007">
<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="05.02.2007">
<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="26.01.2007">
<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="25.01.2007">
<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="19.01.2007">
<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="15.01.2007">
<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="09.01.2007">
<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.