Изменения в nginx
nginx changelog
nginx не собирался с параметром --without-http_rewrite_module;
ошибка появилась в 0.5.24.
nginx could not be built with the --without-http_rewrite_module parameter;
bug appeared in 0.5.24.
директива ssl_verify_client не работала, если запрос выполнялся
по протоколу HTTP/0.9.
the "ssl_verify_client" directive did not work if request was made
using HTTP/0.9.
при использовании сжатия часть ответа могла передаваться несжатой;
ошибка появилась в 0.5.23.
a part of response body might be passed uncompressed if gzip was used;
bug appeared in 0.5.23.
модуль ngx_http_ssl_module поддерживает расширение TLS Server Name Indication.
the ngx_http_ssl_module supports Server Name Indication TLS extension.
директива fastcgi_catch_stderr.
Спасибо Николаю Гречуху, проект OWOX.
the "fastcgi_catch_stderr" directive.
Thanks to Nick S. Grechukh, OWOX project.
на Линуксе в основном процессе происходил segmentation fault,
если два виртуальных сервера должны bind()ится к пересекающимся портам.
a segmentation fault occurred in master process if
two virtual servers should bind() to the overlapping ports.
если nginx был собран с модулем ngx_http_perl_module и perl
поддерживал потоки, то во время второй переконфигурации
выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
if nginx was built with ngx_http_perl_module and perl supported threads,
then during second reconfiguration the error messages
"panic: MUTEX_LOCK" and "perl_parse() failed" were issued.
в использовании протокола HTTPS в директиве proxy_pass.
in the HTTPS protocol in the "proxy_pass" directive.
большое тело запроса могло не передаваться бэкенду;
ошибка появилась в 0.5.21.
a big request body might not be passed to backend;
bug appeared in 0.5.21.
если внутри сервера описано больше примерно десяти location'ов,
то location'ы, заданные с помощью регулярного выражения,
могли выполняться не в том, порядке, в каком они описаны.
if server has more than about ten locations, then regex locations
might be choosen not in that order as they were specified.
на 64-битной платформе рабочий процесс мог зациклиться, если 33-тий
по счёту или последующий бэкенд упал.
Спасибо Антону Поварову.
a worker process may got caught in an endless loop on 64-bit platform,
if the 33-rd or next in succession backend has failed.
Thanks to Anton Povarov.
при использовании библиотеки PCRE на Solaris/sparc64
мог произойти bus error.
Спасибо Андрею Нигматулину.
a bus error might occur on Solaris/sparc64 if the PCRE library was used.
Thanks to Andrei Nigmatulin.
в использовании протокола HTTPS в директиве proxy_pass.
in the HTTPS protocol in the "proxy_pass" directive.
директива sendfile_max_chunk.
the "sendfile_max_chunk" directive.
переменные "$http_...", "$sent_http_..." и "$upstream_http_..."
можно менять директивой set.
the "$http_...", "$sent_http_...", and "$upstream_http_..." variables
may be changed using the "set" directive.
при использовании SSI-команды 'if expr="$var = /"'
в рабочем процессе мог произойти segmentation fault.
a segmentation fault might occur in worker process
if the SSI command 'if expr="$var = /"' was used.
завершающая строка multipart range ответа передавалась неверно.
Спасибо Evan Miller.
trailing boundary of multipart range response was transferred incorrectly.
Thanks to Evan Miller.
nginx не работал на Solaris/sparc64, если был собран Sun Studio.
Спасибо Андрею Нигматулину.
nginx did not work on Solaris/sparc64 if it was built by Sun Studio.
Thanks to Andrei Nigmatulin.
модуль ngx_http_perl_module не собирался make в Solaris.
Спасибо Андрею Нигматулину.
the ngx_http_perl_module could not built by Solaris make.
Thanks to Andrei Nigmatulin.
значение переменной $request_time теперь записывается с точностью
до миллисекунд.
now the $request_time variable has millisecond precision.
метод $r->rflush в модуле ngx_http_perl_module переименован в $r->flush.
the method $r->rflush of ngx_http_perl_module was renamed to the $r->flush.
переменная $upstream_addr.
the $upstream_addr variable.
директивы proxy_headers_hash_max_size и proxy_headers_hash_bucket_size.
Спасибо Володымыру Костырко.
the "proxy_headers_hash_max_size" and "proxy_headers_hash_bucket_size"
directives.
Thanks to Volodymyr Kostyrko.
при использовании sendfile и limit_rate на 64-битных платформах
нельзя было передавать файлы больше 2G.
the files more than 2G could not be transferred using sendfile and limit_rate
on 64-bit platforms.
при использовании sendfile на 64-битном Linux нельзя было передавать файлы
больше 2G.
the files more than 2G could not be transferred using sendfile on 64-bit Linux.
модуль ngx_http_sub_filter_module.
the ngx_http_sub_filter_module.
переменные "$upstream_http_...".
the "$upstream_http_..." variables.
теперь переменные $upstream_status и $upstream_response_time
содержат данные о всех обращениях к апстримам, сделанным до X-Accel-Redirect.
now the $upstream_status and $upstream_response_time variables
keep data about all upstreams before X-Accel-Redirect.
если nginx был собран с модулем ngx_http_perl_module и perl
не поддерживал multiplicity, то после первой переконфигурации
и после получения любого сигнала
в основном процессе происходил segmentation fault;
ошибка появилась в 0.5.9.
a segmentation fault occurred in master process
after first reconfiguration and receiving any signal
if nginx was built with ngx_http_perl_module and perl
did not support multiplicity;
bug appeared in 0.5.9.
если perl не поддерживал multiplicity, то после переконфигурации
перловый код не работал;
ошибка появилась в 0.3.38.
if perl did not support multiplicity, then after reconfiguration
perl code did not work;
bug appeared in 0.3.38.
теперь nginx для метода TRACE всегда возвращает код 405.
now nginx always returns the 405 status for the TRACE method.
теперь nginx поддерживает директиву include внутри блока types.
now nginx supports the "include" directive inside the "types" block.
использование переменной $document_root в директиве root и alias
запрещено: оно вызывало рекурсивное переполнение стека.
the $document_root variable usage in the "root" and "alias" directives
is disabled: this caused recursive stack overflow.
в использовании протокола HTTPS в директиве proxy_pass.
in the HTTPS protocol in the "proxy_pass" directive.
в некоторых случаях некэшируемые переменные (такие, как $uri)
возвращали старое закэшированное значение.
in some cases non-cachable variables (such as $uri variable)
returned old cached value.
в качестве ключа для хэша в директиве ip_hash не использовалась сеть
класса С.
Спасибо Павлу Ярковому.
the C-class network was not used as hash key in the "ip_hash" directive.
Thanks to Pavel Yarkovoy.
если в строке "Content-Type" в заголовке ответа бэкенда был указан charset
и строка завершалась символом ";",
то в рабочем процессе мог произойти segmentation fault;
ошибка появилась в 0.3.50.
a segmentation fault might occur in worker process
if a charset was set in the "Content-Type" header line and the line
has trailing ";";
bug appeared in 0.3.50.
ошибки "[alert] zero size buf" при работе с FastCGI-сервером, если
тело запроса, записанное во временный файл, было кратно 32K.
the "[alert] zero size buf" error when FastCGI server was used and
an request body written in a temporary file was multiple of 32K.
nginx не собирался на Solaris без параметра --with-debug;
ошибка появилась в 0.5.15.
nginx could not be built on Solaris without the --with-debug option;
bug appeared in 0.5.15.
почтовый прокси-сервер поддерживает аутентифицированное SMTP-проксирование и
директивы smtp_auth, smtp_capablities и xclient.
Спасибо Антону Южанинову и Максиму Дунину.
the mail proxy supports authenticated SMTP proxying and
the "smtp_auth", "smtp_capablities", and "xclient" directives.
Thanks to Anton Yuzhaninov and Maxim Dounin.
теперь keep-alive соединения закрываются сразу же по получении сигнала
переконфигурации.
now the keep-alive connections are closed just after receiving
the reconfiguration signal.
директивы imap и auth переименованы соответственно в mail и pop3_auth.
the "imap" and "auth" directives were renamed
to the "mail" and "pop3_auth" directives.
если использовался метод аутентификации CRAM-MD5 и не был разрешён метод APOP,
то в рабочем процессе происходил segmentation fault.
a segmentation fault occurred in worker process
if the CRAM-MD5 authentication method was used
and the APOP method was disabled.
при использовании директивы starttls only в протоколе POP3 nginx
разрешал аутентификацию без перехода в режим SSL.
if the "starttls only" directive was used in POP3 protocol,
then nginx allowed authentication without switching to the SSL mode.
рабочие процессы не выходили после переконфигурации и не переоткрывали логи,
если использовался метод eventport.
worker processes did not exit after reconfiguration and
did not rotate logs if the eventport method was used.
при использовании директивы ip_hash рабочий процесс мог зациклиться.
a worker process may got caught in an endless loop,
if the "ip_hash" directive was used.
теперь nginx не пишет в лог некоторые alert'ы,
если используются методы eventport или /dev/poll.
now nginx does not log some alerts if eventport or /dev/poll methods are used.
nginx игнорировал лишние закрывающие скобки "}" в конце
конфигурационного файла.
nginx ignored superfluous closing "}" in the end of configuration file.
методы COPY и MOVE.
the COPY and MOVE methods.
модуль ngx_http_realip_module устанавливал мусор для запросов,
переданных по keep-alive соединению.
the ngx_http_realip_module set garbage for requests passed via
keep-alive connection.
nginx не работал на 64-битном big-endian Linux.
Спасибо Андрею Нигматулину.
nginx did not work on big-endian 64-bit Linux.
Thanks to Andrei Nigmatulin.
при получении слишком длинной команды IMAP/POP3-прокси теперь сразу
закрывает соединение, а не по таймауту.
now when IMAP/POP3 proxy receives too long command it closes the connection
right away, but not after timeout.
если при использовании метода epoll клиент закрывал преждевременно
соединение со своей стороны, то nginx закрывал это соединение только
по истечении таймаута на передачу.
if the "epoll" method was used and a client closed a connection prematurely,
then nginx closed the connection after a send timeout only.
nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
ошибка появилась в 0.5.8.
nginx could not be built on platforms different from i386, amd64, sparc и ppc;
bug appeared in 0.5.8.
nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
ошибка появилась в 0.5.8.
nginx could not be built on platforms different from i386, amd64, sparc и ppc;
bug appeared in 0.5.8.
при использовании временных файлов в время работы с FastCGI-сервером
в рабочем процессе мог произойти segmentation fault;
ошибка появилась в 0.5.8.
a segmentation fault might occur in worker process
if the temporarily files were used while working with FastCGI server;
bug appeared in 0.5.8.
если переменная $fastcgi_script_name записывалась в лог,
то в рабочем процессе мог произойти segmentation fault.
a segmentation fault might occur in worker process
if the $fastcgi_script_name variable was logged.
ngx_http_perl_module не собирался на Solaris.
ngx_http_perl_module could not be built on Solaris.
теперь configure определяет библиотеку PCRE в MacPorts.
Спасибо Chris McGrath.
now configure detects system PCRE library in MacPorts.
Thanks to Chris McGrath.
ответ был неверным, если запрашивалось несколько диапазонов;
ошибка появилась в 0.5.6.
the response was incorrect if several ranges were requested;
bug appeared in 0.5.6.
директива create_full_put_path не могла создавать промежуточные каталоги,
если не была установлена директива dav_access.
Спасибо Evan Miller.
the "create_full_put_path" directive could not create the intermediate
directories if no "dav_access" directive was set.
Thanks to Evan Miller.
вместо кодов ошибок "400" и "408" в access_log мог записываться код "0".
the "0" response code might be logged in the access_log instead of
the "400" and "408" error codes.
при сборке с оптимизацией -O2 в рабочем процессе мог произойти
segmentation fault.
a segmentation fault might occur in worker process
if nginx was built with -O2 optimization.
во время обновления исполняемого файла новый процесс не наследовал
слушающие сокеты;
ошибка появилась в 0.5.9.
while online executable file upgrade the new master process did not
inherit the listening sockets;
bug appeared in 0.5.9.
при сборке с оптимизацией -O2 в рабочем процессе мог произойти
segmentation fault;
ошибка появилась в 0.5.1.
a segmentation fault might occur in worker process
if nginx was built with -O2 optimization;
bug appeared in 0.5.1.
модуль ngx_http_memcached_module теперь в качестве ключа использует
значение переменной $memcached_key.
now the ngx_http_memcached_module uses the $memcached_key variable value
as a key.
переменная $memcached_key.
the $memcached_key variable.
параметр clean в директиве client_body_in_file_only.
the "clean" parameter in the "client_body_in_file_only" directive.
директива env.
the "env" directive.
директива sendfile работает внутри блока if.
the "sendfile" directive is available inside the "if" block.
теперь при ошибке записи в access_log nginx записывает сообщение в error_log,
но не чаще одного раза в минуту.
now on failure of the writing to access nginx logs a message to error_log,
but not more often than once a minute.
директива "access_log off" не всегда запрещала запись в лог.
the "access_log off" directive did not always turn off the logging.
если использовалась директива "client_body_in_file_only on"
и тело запроса было небольшое, то мог произойти segmentation fault.
a segmentation fault might occur if
"client_body_in_file_only on" was used
and a request body was small.
происходил segmentation fault, если использовались директивы
"client_body_in_file_only on"
и "proxy_pass_request_body off"
или "fastcgi_pass_request_body off",
и делался переход к следующему бэкенду.
a segmentation fault occurred if "client_body_in_file_only on"
and "proxy_pass_request_body off"
or "fastcgi_pass_request_body off"
directives were used, and nginx switched to a next upstream.
если при использовании директивы "proxy_buffering off" соединение с клиентом
было неактивно, то оно закрывалось по таймауту, заданному директивой
send_timeout;
ошибка появилась в 0.4.7.
if the "proxy_buffering off" directive was used and a client connection
was non-active, then the connection was closed after send timeout;
bug appeared in 0.4.7.
если при использовании метода epoll клиент закрывал преждевременно
соединение со своей стороны, то nginx закрывал это соединение только
по истечении таймаута на передачу.
if the "epoll" method was used and a client closed a connection prematurely,
then nginx closed the connection after a send timeout only.
ошибки "[alert] zero size buf" при работе с FastCGI-сервером.
the "[alert] zero size buf" error when FastCGI server was used.
Исправление ошибок в директиве limit_zone.
Bugfixes in the "limit_zone" directive.
оптимизация использования памяти в ssl_session_cache.
the ssl_session_cache storage optimization.
Исправление ошибок в директивах ssl_session_cache и limit_zone.
Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
на старте или во время переконфигурации происходил segmentation fault,
если директивы ssl_session_cache или limit_zone использовались
на 64-битных платформах.
the segmentation fault was occurred on start or while reconfiguration
if the "ssl_session_cache" or "limit_zone" directives were used
on 64-bit platforms.
при использовании директив add_before_body или add_after_body происходил
segmentation fault, если в заголовке ответа нет строки "Content-Type".
a segmentation fault occurred if the "add_before_body" or "add_after_body"
directives were used and there was no "Content-Type" header line in response.
библиотека OpenSSL всегда собиралась с поддержкой потоков.
Спасибо Дену Иванову.
the OpenSSL library was always built with the threads support.
Thanks to Den Ivanov.
совместимость библиотеки PCRE-6.5+ и компилятора icc.
the PCRE-6.5+ library and the icc compiler compatibility.
теперь модуль ngx_http_index_module игнорирует все методы,
кроме GET, HEAD и POST.
now the ngx_http_index_module ignores all methods except the GET, HEAD, and
POST methods.
модуль ngx_http_limit_zone_module.
the ngx_http_limit_zone_module.
переменная $binary_remote_addr.
the $binary_remote_addr variable.
директивы ssl_session_cache модулей ngx_http_ssl_module и ngx_imap_ssl_module.
the "ssl_session_cache" directives
of the ngx_http_ssl_module and ngx_imap_ssl_module.
метод DELETE поддерживает рекурсивное удаление.
the DELETE method supports recursive removal.
при использовании $r->sendfile() byte-ranges передавались неверно.
the byte-ranges were transferred incorrectly if the $r->sendfile() was used.
ключ -v больше не выводит информацию о компиляторе.
the -v switch does not show compiler information any more.
ключ -V.
the -V switch.
директива worker_rlimit_core поддерживает указание размера в K, M и G.
the "worker_rlimit_core" directive supports size in K, M, and G.
модуль nginx.pm теперь может устанавливаться непривилегированным пользователем.
the nginx.pm module now could be installed by an unprivileged user.
при использовании методов $r->request_body или $r->request_body_file мог
произойти segmentation fault.
a segmentation fault might occur if the $r->request_body or
$r->request_body_file methods were used.
ошибок, специфичных для платформы ppc.
the ppc platform specific bugs.
директиву perl можно использовать внутри блока limit_except.
the "perl" directive may be used inside the "limit_except" block.
модуль ngx_http_dav_module требовал строку "Date" в заголовке запроса
для метода DELETE.
the ngx_http_dav_module required the "Date" request header line
for the DELETE method.
при использовании одного параметра в директиве dav_access nginx мог
сообщить об ошибке в конфигурации.
if one only parameter was used in the "dav_access" directive, then
nginx might report about configuration error.
при использовании переменной $host мог произойти segmentation fault;
ошибка появилась в 0.4.14.
a segmentation fault might occur if the $host variable was used;
bug appeared in 0.4.14.
модуль ngx_http_perl_module поддерживает методы $r->status, $r->log_error
и $r->sleep.
the ngx_http_perl_module supports the $r->status, $r->log_error,
and $r->sleep methods.
метод $r->variable поддерживает переменные, неописанные в конфигурации nginx'а.
the $r->variable method supports variables that do not exist in nginx
configuration.
метод $r->has_request_body не работал.
the $r->has_request_body method did not work.
если в директивах proxy_pass использовалось имя, указанное в upstream,
то nginx пытался найти IP-адрес этого имени;
ошибка появилась в 0.5.1.
if the "proxy_pass" directive used the name of the "upstream" block,
then nginx tried to resolve the name;
bug appeared in 0.5.1.
директива post_action могла не работать после неудачного завершения запроса.
the "post_action" directive might not run after a unsuccessful completion
of a request.
обход ошибки в Eudora для Mac;
ошибка появилась в 0.4.11.
Спасибо Bron Gondwana.
for Eudora for Mac;
bug appeared in 0.4.11.
Thanks to Bron Gondwana.
при указании в директиве fastcgi_pass имени описанного upstream'а выдавалось
сообщение "no port in upstream";
ошибка появилась в 0.5.0.
if the "upstream" name was used in the "fastcgi_pass", then the message
"no port in upstream" was issued;
bug appeared in 0.5.0.
если в директивах proxy_pass и fastcgi_pass использовались одинаковых имена
серверов, но с разными портами, то эти директивы использовали первый
описанный порт;
ошибка появилась в 0.5.0.
if the "proxy_pass" and "fastcgi_pass" directives used the same servers but
different ports, then these directives uses the first described port;
bug appeared in 0.5.0.
если в директивах proxy_pass и fastcgi_pass использовались unix domain сокеты,
то эти директивы использовали первый описанный сокет;
ошибка появилась в 0.5.0.
if the "proxy_pass" and "fastcgi_pass" directives used the unix domain sockets,
then these directives used first described socket;
bug appeared in 0.5.0.
ngx_http_auth_basic_module игнорировал пользователя, если он был указан
в последней строке файла паролей и после пароля не было перевода строки,
возврата каретки или символа ":".
ngx_http_auth_basic_module ignored the user if it was in the last line in
the password file and there was no the carriage return, the line feed,
or the ":" symbol after the password.
переменная $upstream_response_time могла быть равна "0.000", хотя время
обработки было больше 1 миллисекунды.
the $upstream_response_time variable might be equal to "0.000", although
response time was more than 1 millisecond.
параметры в виде "%name" в директиве log_format больше не поддерживаются.
the parameters in the "%name" form in the "log_format" directive
are not supported anymore.
директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout,
fastcgi_upstream_max_fails, и fastcgi_upstream_fail_timeout,
memcached_upstream_max_fails и memcached_upstream_fail_timeout
больше не поддерживаются.
the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout",
"fastcgi_upstream_max_fails", "fastcgi_upstream_fail_timeout",
"memcached_upstream_max_fails", and "memcached_upstream_fail_timeout"
directives are not supported anymore.
директива server в блоке upstream поддерживает параметры
max_fails, fail_timeout и down.
the "server" directive in the "upstream" context supports
the "max_fails", "fail_timeout", and "down" parameters.
директива ip_hash в блоке upstream.
the "ip_hash" directive inside the "upstream" block.
статус WAIT в строке "Auth-Status" в заголовка ответа сервера аутентификации
IMAP/POP3 прокси.
the WAIT status in the "Auth-Status" header line of the IMAP/POP3 proxy
authentication server response.
nginx не собирался на 64-битных платформах;
ошибка появилась в 0.4.14.
nginx could not be built on 64-bit platforms;
bug appeared in 0.4.14.
директива proxy_pass_error_message в IMAP/POP3 прокси.
the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
теперь configure определяет библиотеку PCRE на FreeBSD, Linux и NetBSD.
now configure detects system PCRE library on FreeBSD, Linux, and NetBSD.
ngx_http_perl_module не работал с перлом, собранным с поддержкой потоков;
ошибка появилась в 0.3.38.
ngx_http_perl_module did not work with perl built with the threads support;
bug appeared in 0.3.38.
ngx_http_perl_module не работал корректно, если перл вызывался рекурсивно.
ngx_http_perl_module did not work if perl was called recursively.
nginx игнорировал имя сервера в строке запроса.
nginx ignored a host name in an request line.
если FastCGI сервер передавал много в stderr,
то рабочий процесс мог зациклиться.
a worker process may got caught in an endless loop,
if a FastCGI server sent too many data to the stderr.
при изменении системного времени переменная $upstream_response_time
могла быть отрицательной.
the $upstream_response_time variable may be negative if the system time
was changed backward.
при использовании POP3 серверу аутентификации IMAP/POP3 прокси
не передавался параметр Auth-Login-Attempt.
the "Auth-Login-Attempt" parameter was not sent to
IMAP/POP3 proxy authentication server when POP3 was used.
при ошибке соединения с сервером аутентификации IMAP/POP3 прокси
мог произойти segmentation fault.
a segmentation fault might occur if connect to IMAP/POP3 proxy
authentication server failed.
директиву proxy_pass можно использовать внутри блока limit_except.
the "proxy_pass" directive may be used inside the "limit_except" block.
директива limit_except поддерживает все WebDAV методы.
the "limit_except" directive supports all WebDAV methods.
при использовании директивы add_before_body без директивы add_after_body
ответ передавался не полностью.
if the "add_before_body" directive was used without
the "add_after_body" directive, then an response did not transferred complete.
большое тело запроса не принималось, если использовались метод epoll
и deferred accept().
a large request body did not receive if the epoll method
and the deferred accept() were used.
для ответов модуля ngx_http_autoindex_module не выставлялась кодировка;
ошибка появилась в 0.3.50.
a charset could not be set for ngx_http_autoindex_module responses;
bug appeared in 0.3.50.
ошибки "[alert] zero size buf" при работе с FastCGI-сервером;
the "[alert] zero size buf" error when FastCGI server was used;
параметр конфигурации --group= игнорировался.
Спасибо Thomas Moschny.
the --group= configuration parameter was ignored.
Thanks to Thomas Moschny.
50-й подзапрос в SSI ответе не работал;
ошибка появилась в 0.3.50.
the 50th subrequest in SSI response did not work;
bug appeared in 0.3.50.
модуль ngx_http_perl_module поддерживает метод $r->variable.
the ngx_http_perl_module supports the $r->variable method.
при включении в ответ большого статического файла с помощью SSI
ответ мог передаваться не полностью.
if a big static file was included using SSI in a response,
then the response may be transferred incomplete.
nginx не убирал "#fragment" в URI.
nginx did not omit the "#fragment" part in URI.
POP3 прокси поддерживает AUTH LOIGN PLAIN и CRAM-MD5.
the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5.
модуль ngx_http_perl_module поддерживает метод $r->allow_ranges.
the ngx_http_perl_module supports the $r->allow_ranges method.
при включённой поддержке команды APOP в POP3 прокси могли
не работать команды USER/PASS;
ошибка появилась в 0.4.10.
if the APOP was enabled in the POP3 proxy, then the USER/PASS commands
might not work;
bug appeared in 0.4.10.
POP3 прокси поддерживает APOP.
the POP3 proxy supports the APOP command.
при использовании методов select, poll и /dev/poll во время ожидания
ответа от сервера аутентификации IMAP/POP3 прокси нагружал процессор.
if the select, poll or /dev/poll methods were used, then while
waiting authentication server response the IMAP/POP3 proxy hogged CPU.
при использовании переменной $server_addr в директиве map мог
произойти segmentation fault.
a segmentation fault might occur if the $server_addr variable was used
in the "map" directive.
модуль ngx_http_flv_module не поддерживал byte ranges для полных ответов;
ошибка появилась в 0.4.7.
the ngx_http_flv_module did not support the byte ranges for full responses;
bug appeared in 0.4.7.
nginx не собирался на Debian amd64;
ошибка появилась в 0.4.9.
nginx could not be built on Debian amd64;
bug appeared in 0.4.9.
параметр set в команде SSI include.
the "set" parameter in the "include" SSI command.
модуль ngx_http_perl_module теперь проверяет версию модуля nginx.pm.
the ngx_http_perl_module now tests the nginx.pm module version.
если до команды SSI include с параметром wait выполнялась ещё
одна команда SSI include, то параметр wait мог не работать.
if an "include" SSI command were before another "include" SSI command
with an "wait" parameter, then the "wait" parameter might not work.
модуль ngx_http_flv_module добавлял FLV-заголовок для полных ответов.
Спасибо Алексею Ковырину.
the ngx_http_flv_module added the FLV header to the full responses.
Thanks to Alexey Kovyrin.
модуль ngx_http_flv_module.
the ngx_http_flv_module.
переменная $request_body_file.
the $request_body_file variable.
директивы charset и source_charset поддерживают переменные.
the "charset" and "source_charset" directives support the variables.
если до команды SSI include с параметром wait выполнялась ещё
одна команда SSI include, то параметр wait мог не работать.
if an "include" SSI command were before another "include" SSI command
with an "wait" parameter, then the "wait" parameter might not work.
при использовании директивы "proxy_buffering off" или при работе
с memcached соединения могли не закрываться по таймауту.
if the "proxy_buffering off" directive was used or while working with
memcached the connections might not be closed on timeout.
nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64.
nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64.
nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64.
nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64.
при запросе версии HTTP/1.1 nginx передавал ответ chunk'ами,
если длина ответа в методе $r->headers_out("Content-Length", ...)
была задана текстовой строкой.
nginx sent the chunked response for HTTP/1.1 request,
if its length was set by text string in
the $r->headers_out("Content-Length", ...) method.
после перенаправления ошибки с помощью директивы error_page любая директива
модуля ngx_http_rewrite_module возвращала эту ошибку;
ошибка появилась в 0.4.4.
after redirecting error by an "error_page" directive
any ngx_http_rewrite_module directive returned this error code;
bug appeared in 0.4.4.
nginx не собирался на Linux и Solaris;
ошибка появилась в 0.4.4.
nginx could not be built on Linux and Solaris;
bug appeared in 0.4.4.
переменная $scheme.
the $scheme variable.
директива expires поддерживает параметр max.
the "expires" directive supports the "max" parameter.
директива include поддерживает маску "*".
Спасибо Jonathan Dance.
the "include" directive supports the "*" mask.
Thanks to Jonathan Dance.
директива return всегда изменяла код ответа, перенаправленного
директивой error_page.
the "return" directive always overrode the "error_page" response code
redirected by the "error_page" directive.
происходил segmentation fault, если в методе PUT передавалось
тело нулевой длины.
a segmentation fault occurred if zero-length body was in PUT method.
при использовании переменных в директиве proxy_redirect редирект
изменялся неверно.
the redirect was changed incorrectly if the variables were used
in the "proxy_redirect" directive.
ошибку 499 теперь нельзя перенаправить с помощью директивы error_page.
now the 499 error could not be redirected using an "error_page" directive.
поддержка Solaris 10 event ports.
the Solaris 10 event ports support.
модуль ngx_http_browser_module.
the ngx_http_browser_module.
при перенаправлении ошибки 400 проксированному серверу
помощью директивы error_page мог произойти segmentation fault.
a segmentation fault may occur while redirecting the 400 error
to the proxied server using an "proxy_pass" directive.
происходил segmentation fault, если в директиве proxy_pass использовался
unix domain сокет;
ошибка появилась в 0.3.47.
a segmentation fault occurred if an unix domain socket was used in
an "proxy_pass" directive;
bug appeared in 0.3.47.
SSI не работал с ответами memcached и небуферизированными проксированными
ответами.
SSI did work with memcached and nonbuffered responses.
обход ошибки PAUSE hardware capability в Sun Studio.
of the Sun Studio PAUSE hardware capability bug.
убрана поддержка флага O_NOATIME на Linux;
ошибка появилась в 0.4.1.
the O_NOATIME flag support on Linux was canceled;
bug appeared in 0.4.1.
совместимость с DragonFlyBSD.
Спасибо Павлу Назарову.
the DragonFlyBSD compatibility.
Thanks to Pavel Nazarov.
обход ошибки в sendfile() в 64-битном Linux при передаче файлов больше 2G.
of bug in 64-bit Linux sendfile(), when file is more than 2G.
теперь на Linux nginx для статических запросов использует флаг O_NOATIME.
Спасибо Yusuf Goolamabbas.
now on Linux nginx uses O_NOATIME flag for static requests.
Thanks to Yusuf Goolamabbas.
Изменение во внутреннем API: инициализация модулей HTTP перенесена из фазы
init module в фазу HTTP postconfiguration.
Change in internal API: the HTTP modules initialization was moved
from the init module phase to the HTTP postconfiguration phase.
теперь тело запроса в модуле ngx_http_perl_module не считывается
заранее: нужно явно инициировать чтение с помощью метода $r->has_request_body.
now the request body is not read beforehand for the ngx_http_perl_module:
it's required to start the reading using the $r->has_request_body method.
модуль ngx_http_perl_module поддерживает код возврата DECLINED.
the ngx_http_perl_module supports the DECLINED return code.
модуль ngx_http_dav_module поддерживает входящую строку заголовка "Date"
для метода PUT.
the ngx_http_dav_module supports the incoming "Date" header line
for the PUT method.
директива ssi работает внутри блока if.
the "ssi" directive is available inside the "if" block.
происходил segmentation fault, если в директиве index использовалась
переменные и при этом первое имя индексного файла было без переменных;
ошибка появилась в 0.1.29.
a segmentation fault occurred if there was an "index" directive with
variables and the first index name was without variables;
bug appeared in 0.1.29.
директива tcp_nodelay теперь по умолчанию включена.
now the "tcp_nodelay" directive is turned on by default.
директива msie_refresh.
the "msie_refresh" directive.
директива recursive_error_pages.
the "recursive_error_pages" directive.
директива rewrite возвращала неправильный редирект, если редирект
включал в себя выделенные закодированные символы из оригинального URI.
the "rewrite" directive returned incorrect redirect, if the redirect
had the captured escaped symbols from original URI.
во время перенаправления ошибки рабочий процесс мог зациклиться;
ошибка появилась в 0.3.59.
a worker process may got caught in an endless loop
while an error redirection;
bug appeared in 0.3.59.
теперь можно делать несколько перенаправлений через директиву error_page.
now is possible to do several redirection using the "error_page" directive.
директива dav_access не поддерживала три параметра.
the "dav_access" directive did not support three parameters.
директива error_page не изменяла строку "Content-Type"
после перенаправления с помощью "X-Accel-Redirect";
ошибка появилась в 0.3.58.
the "error_page" directive did not changes the "Content-Type" header line
after the "X-Accel-Redirect" was used;
bug appeared in 0.3.58.
директива error_page поддерживает переменные.
the "error_page" directive supports the variables.
теперь на Linux используется интерфейс procfs вместо sysctl.
now the procfs interface instead of sysctl is used on Linux.
теперь при использовании "X-Accel-Redirect" строка "Content-Type" наследуется
из первоначального ответа.
now the "Content-Type" header line is inherited from first response
when the "X-Accel-Redirect" was used.
директива error_page не перенаправляла ошибку 413.
the "error_page" directive did not redirect the 413 error.
завершающий "?" не удалял старые аргументы, если в переписанном URI
не было новых аргументов.
the trailing "?" did not remove old arguments if no new arguments
were added to a rewritten URI.
nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
переменная $ssl_client_serial.
the $ssl_client_serial variable.
в операторе "!-e" в директиве if.
Спасибо Андриану Буданцову.
in the "!-e" operator of the "if" directive.
Thanks to Andrian Budanstov.
при проверке клиентского сертификата nginx не передавал клиенту
информацию о требуемых сертификатах.
while a client certificate verification nginx did not send to a client
the required certificates information.
переменная $document_root не поддерживала переменные в директиве root.
the $document_root variable did not support the variables in the "root"
directive.
директива dav_access.
the "dav_access" directive.
директива if поддерживает операторы "-d", "!-d", "-e", "!-e", "-x" и "!-x".
the "if" directive supports the "-d", "!-d", "-e", "!-e", "-x", and "!-x"
operators.
при записи в access_log некоторых передаваемых клиенту строк заголовков
происходил segmentation fault, если запрос возвращал редирект.
a segmentation fault occurred if an request returned an redirect and
some sent to client header lines were logged in the access log.
параметр stub в команде SSI include.
the "stub" parameter in the "include" SSI command.
команда SSI block.
the "block" SSI command.
скрипт unicode2nginx добавлен в contrib.
the unicode2nginx script was added to contrib.
если root был задан только переменной, то корень задавался
относительно префикса сервера.
if a "root" was specified by variable only, then the root was relative
to a server prefix.
если в запросе был "//" или "/.", и после этого закодированные
символы в виде "%XX", то проксируемый запрос передавался незакодированным.
if the request contained "//" or "/./" and escaped symbols after them,
then the proxied request was sent unescaped.
метод $r->headers_in("Cookie") модуля ngx_http_perl_module теперь возвращает
все строки "Cookie" в заголовке запроса.
the $r->headers_in("Cookie") of the ngx_http_perl_module now returns
all "Cookie" header lines.
происходил segmentation fault, если использовался
"client_body_in_file_only on"
и делался переход к следующему бэкенду.
a segmentation fault occurred if "client_body_in_file_only on"
was used and nginx switched to a next upstream.
при некоторых условиях во время переконфигурации коды символов
внутри директивы charset_map могли считаться неверными;
ошибка появилась в 0.3.50.
on some condition while reconfiguration character codes
inside the "charset_map" may be treated invalid;
bug appeared in 0.3.50.
nginx теперь записывает в лог информацию о подзапросах.
nginx now logs the subrequest information to the error log.
директивы proxy_next_upstream, fastcgi_next_upstream и memcached_next_upstream
поддерживают параметр off.
the "proxy_next_upstream", "fastcgi_next_upstream",
and "memcached_next_upstream" directives support the "off" parameter.
директива debug_connection поддерживает запись адресов в формате CIDR.
the "debug_connection" directive supports the CIDR address form.
при перекодировании ответа проксированного сервера или сервера FastCGI
в UTF-8 или наоборот ответ мог передаваться не полностью.
if a response of proxied server or FastCGI server was converted from UTF-8
or back, then it may be transferred incomplete.
переменная $upstream_response_time содержала время только первого
обращения к бэкенду.
the $upstream_response_time variable had the time of the first
request to a backend only.
nginx не собирался на платформе amd64;
ошибка появилась в 0.3.53.
nginx could not be built on amd64 platform;
bug appeared in 0.3.53.
директива add_header добавляет строки в ответы с кодом 204, 301 и 302.
the "add_header" directive adds the string to 204, 301, and 302 responses.
директива server в блоке upstream поддерживает параметр weight.
the "server" directive in the "upstream" context supports
the "weight" parameter.
директива server_name поддерживает маску "*".
the "server_name" directive supports the "*" wildcard.
nginx поддерживает тело запроса больше 2G.
nginx supports the request body size more than 2G.
если при использовании "satisfy_any on" клиент успешно проходил аутентификацию,
в лог всё равно записалоcь сообщение "access forbidden by rule".
if a client was successfully authorized using "satisfy_any on", then anyway
the message "access forbidden by rule" was written in the log.
метод PUT мог ошибочно не создать файл и вернуть код 409.
the "PUT" method may erroneously not create a file and return the 409 code.
если во время аутентификации IMAP/POP3 бэкенд возвращал ошибку, nginx
продолжал проксирование.
if the IMAP/POP3 backend returned an error, then nginx continued proxying
anyway.
восстановлено поведение модуля ngx_http_index_module для запросов "POST /":
как в версии до 0.3.40, модуль теперь не выдаёт ошибку 405.
the ngx_http_index_module behavior for the "POST /" requests is reverted
to the 0.3.40 version state: the module now does not return the 405 error.
при использовании ограничения скорости рабочий процесс мог зациклиться;
ошибка появилась в 0.3.37.
the worker process may got caught in an endless loop if the limit rate was used;
bug appeared in 0.3.37.
модуль ngx_http_charset_module записывал в лог ошибку "unknown charset",
даже если перекодировка не требовалась;
ошибка появилась в 0.3.50.
ngx_http_charset_module logged "unknown charset" alert, even if the recoding
was not needed;
bug appeared in 0.3.50.
если в результате запроса PUT возвращался код 409, то временный файл
не удалялся.
if a code response of the PUT request was 409, then a temporary file
was not removed.
при некоторых условиях в SSI мог пропадать символы "<";
ошибка появилась в 0.3.50.
the "<" symbols might disappeared some conditions in the SSI;
bug appeared in 0.3.50.
директивы proxy_redirect_errors и fastcgi_redirect_errors
переименованы соответственно в proxy_intercept_errors и
fastcgi_intercept_errors.
the "proxy_redirect_errors" and "fastcgi_redirect_errors" directives
was renamed to the "proxy_intercept_errors" and
"fastcgi_intercept_errors" directives.
модуль ngx_http_charset_module поддерживает перекодирование из
однобайтных кодировок в UTF-8 и обратно.
the ngx_http_charset_module supports the recoding from the single byte
encodings to the UTF-8 encoding and back.
в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Charset"
в ответе бэкенда.
the "X-Accel-Charset" response header line is supported in proxy
and FastCGI mode.
символ "\" в парах "\"" и "\'" в SSI командах убирался, только если
также использовался символ "$".
the "\" escape symbol in the "\"" and "\'" pairs in the SSI command
was removed only if the command also has the "$" symbol.
при некоторых условиях в SSI после вставки могла быть добавлена
строка "<!--".
the "<!--" string might be added on some conditions
in the SSI after inclusion.
если в заголовке ответа была строка "Content-Length: 0",
то при использовании небуферизированного проксировании не закрывалось соединение
с клиентом.
if the "Content-Length: 0" header line was in response, then
in nonbuffered proxying mode the client connection was not closed.
в директиве set.
in the "set" directive.
при включении в ssi двух и более подзапросов, обрабатываемых через FastCGI,
вместо вывода второго и остальных подзапросов в ответ включался вывод
первого подзапроса.
if two or more FastCGI subrequests was in SSI, then first subrequest output
was included instead of second and following subrequests.
теперь модуль ngx_http_charset_module работает для подзапросов,
в ответах которых нет строки заголовка "Content-Type".
now the ngx_http_charset_module works for subrequests,
if the response has no "Content-Type" header line.
если в директиве proxy_pass не было URI,
то директива "proxy_redirect default" добавляла в переписанный
редирект в начало лишний слэш.
if the "proxy_pass" directive has no URI part,
then the "proxy_redirect default" directive add the unnecessary slash
in start of the rewritten redirect.
внутренний редирект всегда превращал любой HTTP-метод в GET,
теперь это делается только для редиректов, выполняемых с помощью
X-Accel-Redirect, и у которых метод не равен HEAD;
ошибка появилась в 0.3.42.
the internal redirect always transform client's HTTP method to GET,
now the transformation is made for the "X-Accel-Redirect" redirects only
and if the method is not HEAD;
bug appeared in 0.3.42.
модуль ngx_http_perl_module не собирался, если перл был с поддержкой потоков;
ошибка появилась в 0.3.46.
the ngx_http_perl_module could not be built, if the perl was built
with the threads support;
bug appeared in 0.3.46.
директива upstream.
the "upstream" directive.
символ "\" в парах "\"" и "\'" в SSI командах теперь всегда убирается.
now the "\" escape symbol in the "\"" and "\'" pairs in the SSI command
is always removed.
директивы proxy_hide_header, proxy_pass_header, fastcgi_hide_header
и fastcgi_pass_header.
the "proxy_hide_header", "proxy_pass_header", "fastcgi_hide_header",
and "fastcgi_pass_header" directives.
директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и proxy_pass_server
упразднены.
the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and "proxy_pass_server"
directives were canceled.
в режиме прокси поддерживается строка заголовка "X-Accel-Buffering"
в ответе бэкенда.
the "X-Accel-Buffering" response header line is supported in proxy mode.
ошибок и утечек памяти при переконфигурации в модуле ngx_http_perl_module.
the reconfiguration bug and memory leaks in the ngx_http_perl_module.
директивы ssl_verify_client, ssl_verify_depth и ssl_client_certificate.
the "ssl_verify_client", "ssl_verify_depth", and "ssl_client_certificate"
directives.
теперь переменная $request_method возвращает метод только основного запроса.
the $request_method variable now returns the main request method.
в таблице перекодировки koi-win изменены коды символа °.
the ° symbol codes were changed in koi-win conversion table.
в таблицу перекодировки koi-win добавлены символы евро и номера.
the euro и N symbols were added to koi-win conversion table.
если nginx распределял запросы на несколько машин, то при падении
одной из них запросы, предназначенные для этой машины, перенаправлялись только
на одну машину вместо того, чтобы равномерно распределяться между остальными.
if nginx distributed the requests among several backends and some backend
failed, then requests intended for this backend was directed to one live
backend only instead of being distributed among the rest.
параметр wait в команде SSI include.
the "wait" parameter in the "include" SSI command.
в таблицу перекодировки koi-win добавлены украинские и белорусские символы.
the Ukrainian and Byelorussian characters were added to koi-win conversion
table.
в SSI.
in the SSI.
в SSI.
in the SSI.
параметр bind в директиве listen в IMAP/POP3 прокси.
the "bind" option of the "listen" directive in IMAP/POP3 proxy.
ошибки при использовании в директиве rewrite одного и того же
выделения более одного раза.
if the same capture in the "rewrite" directive was used more then once.
в лог не записывались переменные
$sent_http_content_type, $sent_http_content_length, $sent_http_last_modified,
$sent_http_connection, $sent_http_keep_alive и $sent_http_transfer_encoding.
the $sent_http_content_type, $sent_http_content_length,
$sent_http_last_modified, $sent_http_connection, $sent_http_keep_alive,
and $sent_http_transfer_encoding variables were not written to access log.
переменная $sent_http_cache_control возвращала содержимое только одной
строки "Cache-Control" в заголовке ответа.
the $sent_http_cache_control returned value of the single "Cache-Control"
response header line.
ключ -v.
the -v switch.
при включении в SSI удалённых подзапросов
мог произойти segmentation fault.
the segmentation fault may occurred if the SSI page has remote subrequests.
в обработке FastCGI.
in FastCGI handling.
если путь к перловым модулям не был указан с помощью
--with-perl_modules_path=PATH или директивы perl_modules,
то на старте происходил segmentation fault.
if the perl modules path was not set using
--with-perl_modules_path=PATH or the "perl_modules", then
the segmentation fault was occurred.
модуль ngx_http_dav_module поддерживает метод MKCOL.
the ngx_http_dav_module supports the MKCOL method.
директива create_full_put_path.
the "create_full_put_path" directive.
переменная $limit_rate.
the "$limit_rate" variable.
директива uninitialized_variable_warn; уровень логгирования сообщения
о неинициализированной переменной понижен с уровня alert на warn.
the "uninitialized_variable_warn" directive; the logging level of the
"uninitialized variable" message was lowered from "alert" to "warn".
директива override_charset.
the "override_charset" directive.
при использовании неизвестной переменной в SSI-командах echo и if expr='$name'
теперь не записывается в лог сообщение о неизвестной переменной.
now if the unknown variable is used in the "echo" and "if expr='$name'"
SSI-commands, then the "unknown variable" message is not logged.
счётчик активных соединений рос при превышении лимита соединений,
заданного директивой worker_connections;
ошибка появилась в 0.2.0.
the active connection counter increased on the exceeding of the connection
limit specified by the "worker_connections" directive;
bug appeared in 0.2.0.
при некоторых условия ограничение скорости соединения могло не работать;
ошибка появилась в 0.3.38.
the limit rate might not work on some condition;
bug appeared in 0.3.38.
модуль ngx_http_dav_module.
the ngx_http_dav_module.
оптимизация модуля ngx_http_perl_module.
Спасибо Сергею Скворцову.
the ngx_http_perl_module optimizations.
Thanks to Sergey Skvortsov.
модуль ngx_http_perl_module поддерживает метод $r->request_body_file.
the ngx_http_perl_module supports the $r->request_body_file method.
директива client_body_in_file_only.
the "client_body_in_file_only" directive.
теперь при переполнении диска nginx пытается писать access_log'и только
раз в секунду.
Спасибо Антону Южанинову и Максиму Дунину.
now on disk overflow nginx tries to write access logs once a second only.
Thanks to Anton Yuzhaninov and Maxim Dounin.
теперь директива limit_rate точнее ограничивает скорость при значениях
больше 100 Kbyte/s.
Спасибо ForJest.
now the "limit_rate" directive more precisely limits rate if rate is more
than 100 Kbyte/s.
Thanks to ForJest.
IMAP/POP3 прокси теперь передаёт серверу авторизации символы "\r" и "\n"
в логине и пароле в закодированном виде.
Спасибо Максиму Дунину.
now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in login and
password to pass authorization server.
Thanks to Maxim Dounin.
директива limit_except.
the "limit_except" directive.
директива if поддерживает операторы "!~", "!~*", "-f" и "!-f".
the "if" directive supports the "!~", "!~*", "-f", and "!-f" operators.
модуль ngx_http_perl_module поддерживает метод $r->request_body.
the ngx_http_perl_module supports the $r->request_body method.
в модуле ngx_http_addition_filter_module.
in the ngx_http_addition_filter_module.
модуль ngx_http_addition_filter_module.
the ngx_http_addition_filter_module.
директивы proxy_pass и fastcgi_pass можно использовать внутри блока if.
the "proxy_pass" and "fastcgi_pass" directives may be used inside
the "if" block.
директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort.
the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives.
переменная $request_completion.
the "$request_completion" variable.
модуль ngx_http_perl_module поддерживает методы $r->request_method и
$r->remote_addr.
the ngx_http_perl_module supports the $r->request_method and $r->remote_addr.
модуль ngx_http_ssi_module поддерживает команду elif.
the ngx_http_ssi_module supports the "elif" command.
строка "\/" в начале выражения команды if модуля ngx_http_ssi_module
воспринималась неверно.
the "\/" string in the expression of the "if" command of the
ngx_http_ssi_module was treated incorrectly.
в использовании регулярных выражениях в команде if модуля ngx_http_ssi_module.
in the regular expressions in the "if" command of the ngx_http_ssi_module.
при задании относительного пути в директивах
client_body_temp_path, proxy_temp_path, fastcgi_temp_path и perl_modules
использовался каталог относительно текущего каталога, а не относительно
префикса сервера.
if the relative path was specified in the "client_body_temp_path",
"proxy_temp_path", "fastcgi_temp_path", and "perl_modules" directives,
then the directory was used relatively to a current path but not
to a server prefix.
accept-фильтр и TCP_DEFER_ACCEPT устанавливались только для первой
директивы listen;
ошибка появилась в 0.3.31.
the accept-filter and the TCP_DEFER_ACCEPT option were set for first "listen"
directive only;
bug appeared in 0.3.31.
в директиве proxy_pass без URI при использовании в подзапросе.
in the "proxy_pass" directive without the URI part in a subrequest.
директива add_header поддерживает переменные.
the "add_header" directive supports the variables.
параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream.
the "http_503" parameter of the "proxy_next_upstream" or
"fastcgi_next_upstream" directives.
ngx_http_perl_module не работал со встроенным в конфигурационный файл кодом,
если он не начинался сразу же с "sub".
ngx_http_perl_module did not work with inlined in the configuration code,
if it was not started with the "sub" word.
в директиве post_action.
in the "post_action" directive.
удаление отладочного логгирования на старте и при переконфигурации;
ошибка появилась в 0.3.31.
the debug logging on startup and reconfiguration time was removed;
bug appeared in 0.3.31.
теперь nginx передаёт неверные ответы проксированного бэкенда.
now nginx passes the malformed proxied backend responses.
директивы listen поддерживают адрес в виде "*:порт".
the "listen" directives support the address in the "*:port" form.
поддержка EVFILER_TIMER в MacOSX 10.4.
the EVFILER_TIMER support in MacOSX 10.4.
обход ошибки обработки миллисекундных таймаутов kqueue в 64-битном ядре
MacOSX.
Спасибо Андрею Нигматулину.
for MacOSX 64-bit kernel kqueue millisecond timeout bug.
Thanks to Andrei Nigmatulin.
если внутри одного сервера описаны несколько директив listen, слушающих на
разных адресах, то имена серверов вида "*.domain.tld" работали только
для первого адреса;
ошибка появилась в 0.3.18.
if there were several "listen" directives listening one various addresses
inside one server, then server names like "*.domain.tld" worked for first
address only;
bug appeared in 0.3.18.
при использовании протокола HTTPS в директиве proxy_pass не передавались
запросы с телом, записанным во временный файл.
if the HTTPS protocol was used in the "proxy_pass" directive and
the request body was in temporarily file then the request was not transferred.
совместимость с perl 5.8.8.
perl 5.8.8 compatibility.
уровень записи в лог ошибки ECONNABORTED изменён на error с уровня crit.
the ECONNABORTED error log level was changed to "error" from "crit".
модуль ngx_http_perl_module не собирался без модуля ngx_http_ssi_filter_module.
the ngx_http_perl_module could not be build without
the ngx_http_ssi_filter_module.
nginx не собирался на i386 платформе, если использовался PIC;
ошибка появилась в 0.3.27.
nginx could not be built on i386 platform, if the PIC was used;
bug appeared in 0.3.27.
теперь nginx использует меньше памяти, если PHP в режиме FastCGI передаёт
большое количество предупреждений перед ответом.
now nginx uses less memory, if PHP in FastCGI mode sends many warnings
before the response.
в ответах 204 для запросов версии HTTP/1.1 выдавалась строка заголовка
"Transfer-Encoding: chunked".
the "Transfer-Encoding: chunked" header line was issued in the 204 responses
for the HTTP/1.1 requests.
nginx возвращал 502 код ответа, если FastCGI сервер передавал полные строки
заголовка ответа в отдельных FastCGI записях.
nginx returned the 502 response, if the complete response header lines
were transferred in a separate FastCGI records.
если в директиве post_action был указан проксируемый URI, то он выполнялся
только после успешного завершения запроса.
if the proxied URI was specified in the "post_action" directive, then it ran
only after a successful completion of a request.
директива restrict_host_names упразднена.
the "restrict_host_names" directive was canceled.
параметр конфигурации --with-cpu-opt=ppc64.
the --with-cpu-opt=ppc64 configuration parameter.
при некоторых условиях проксированное соединение с клиентом завершалось
преждевременно.
Спасибо Владимиру Шутову.
on some condition the proxied connection with a client was terminated
prematurely.
Thanks to Vladimir Shutoff.
строка заголовка "X-Accel-Limit-Rate" не учитывалась для запросов,
перенаправленных с помощью строки "X-Accel-Redirect".
the "X-Accel-Limit-Rate" header line was not taken into account
if the request was redirected using the "X-Accel-Redirect" header line.
директива post_action работала только после успешного завершения запроса.
the "post_action" directive ran only after a successful completion of a request.
тело проксированного ответа, создаваемого директивой post_action,
передавалось клиенту.
the proxied response body generated by the "post_action" directive
was transferred to a client.
директивы variables_hash_max_size и variables_hash_bucket_size.
the "variables_hash_max_size" and "variables_hash_bucket_size" directives.
переменная $body_bytes_sent доступна не только в директиве log_format.
the $body_bytes_sent variable can be used not only in the "log_format"
directive.
переменные $ssl_protocol и $ssl_cipher.
the $ssl_protocol and $ssl_cipher variables.
определение размера строки кэша распространённых процессоров при старте.
the cache line size detection for widespread CPUs at start time.
директива accept_mutex теперь поддерживается посредством fcntl(2)
на платформах, отличных от i386, amd64, sparc64 и ppc.
now the "accept_mutex" directive is supported using fcntl(2)
on platforms different from i386, amd64, sparc64, and ppc.
директива lock_file и параметр автоконфигурации --with-lock-path=PATH.
the "lock_file" directive and the --with-lock-path=PATH autoconfiguration
directive.
при использовании протокола HTTPS в директиве proxy_pass не передавались
запросы с телом.
if the HTTPS protocol was used in the "proxy_pass" directive then
the requests with the body was not transferred.
директива optimize_host_names переименована в optimize_server_names.
the "optimize_host_names" directive was renamed to the "optimize_server_names".
при проксировании подзапроса в SSI бэкенду передавался URI основного запроса,
если в директиве proxy_pass отсутствовал URI.
if in the "proxy_pass" directive was no the URI part, then the main request
URI was transferred to a backend while proxying the SSI subrequest.
при неверной конфигурации на старте или во время переконфигурации происходил
segmentation fault;
ошибка появилась в 0.3.24.
the segmentation fault was occurred on start or while reconfiguration
if there was invalid configuration;
bug appeared in 0.3.24.
обход ошибки в kqueue во FreeBSD.
for bug in FreeBSD kqueue.
ответ, создаваемый директивой post_action, теперь не передаётся клиенту.
now a response generated by the "post_action" directive is not transferred
to a client.
при использовании большого количества лог-файлов происходила утечка памяти.
the memory leaks were occurring if many log files were used.
внутри одного location работала только первая директива proxy_redirect.
the first "proxy_redirect" directive was working inside one location.
на 64-битных платформах при старте мог произойти segmentation fault,
если использовалось большое количество имён в директивах server_name;
ошибка появилась в 0.3.18.
on 64-bit platforms segmentation fault may occurred on start
if the many names were used in the "server_name" directives;
bug appeared in 0.3.18.
директива optimize_host_names.
the "optimize_host_names" directive.
ошибки при использовании переменных в директивах path и alias.
in using of the variables in the "path" and "alias" directives.
модуль ngx_http_perl_module неправильно собирался на Linux и Solaris.
the ngx_http_perl_module was incorrectly built on Linux and Solaris.
модуль ngx_http_perl_module поддерживает методы $r->args и $r->unescape.
the ngx_http_perl_module supports the $r->args and $r->unescape methods.
метод $r->query_string в модуле ngx_http_perl_module упразднён.
the method $r->query_string of ngx_http_perl_module was canceled.
если в директиве valid_referers указаны только none или blocked, то
происходил segmentation fault;
ошибка появилась в 0.3.18.
segmentation fault was occurred if the "none" or "blocked" values was
specified in the "valid_referers" directive;
bug appeared in 0.3.18.
модуль ngx_http_perl_module.
the ngx_http_perl_module.
директива valid_referers разрешает использовать рефереры совсем без URI.
the "valid_referers" directive allows the referreres without URI part.
ошибки в обработке SSI.
in SSI handling.
модуль ngx_http_memcached_module не поддерживал ключи в виде /uri?args.
the ngx_http_memcached_module did not support the keys in the "/usr?args" form.
директивы path и alias поддерживают переменные.
the "path" and "alias" directives support the variables.
теперь директива valid_referers опять учитывает URI.
now the "valid_referers" directive again checks the URI part.
ошибки в обработке SSI.
in SSI handling.
директива server_names поддерживает имена вида ".domain.tld".
the "server_names" directive supports the ".domain.tld" names.
директива server_names использует хэш для имён вида "*.domain.tld"
и более эффективный хэш для обычных имён.
the "server_names" directive uses the hash for the "*.domain.tld" names
and more effective hash for usual names.
директивы server_names_hash_max_size и server_names_hash_bucket_size.
the "server_names_hash_max_size" and "server_names_hash_bucket_size" directives.
директивы server_names_hash и server_names_hash_threshold упразднены.
the "server_names_hash" and "server_names_hash_threshold" directives
were canceled.
директива valid_referers использует хэш для имён сайтов.
the "valid_referers" directive uses the hash site names.
теперь директива valid_referers проверяет только имена сайтов без учёта URI.
now the "valid_referers" directive checks the site names only without
the URI part.
некоторые имена вида ".domain.tld" неверно обрабатывались модулем
ngx_http_map_module.
some ".domain.tld" names incorrectly processed by the ngx_http_map_module.
если конфигурационного файла не было, то происходил segmentation fault;
ошибка появилась в 0.3.12.
segmentation fault was occurred if configuration file did not exist;
bug appeared in 0.3.12.
на 64-битных платформах при старте мог произойти segmentation fault;
ошибка появилась в 0.3.16.
on 64-bit platforms segmentation fault may occurred on start;
bug appeared in 0.3.16.
на Linux configure теперь проверяет наличие epoll и sendfile64() в ядре.
now on Linux configure checks the presence of epoll and sendfile64() in kernel.
директива map поддерживает доменные имена в формате ".domain.tld".
the "map" directive supports domain names in the ".domain.tld" form.
во время SSL handshake не иcпользовались таймауты;
ошибка появилась в 0.2.4.
the timeouts were not used in SSL handshake;
bug appeared in 0.2.4.
в использовании протокола HTTPS в директиве proxy_pass.
in the HTTPS protocol in the "proxy_pass" directive.
при использовании протокола HTTPS в директиве proxy_pass по умолчанию
использовался порт 80.
when the HTTPS protocol was used in the "proxy_pass" directive the port 80
was used by default.
модуль ngx_http_map_module.
the ngx_http_map_module.
директивы types_hash_max_size и types_hash_bucket_size.
the "types_hash_max_size" and "types_hash_bucket_size" directives.
директива ssi_value_length.
the "ssi_value_length" directive.
директива worker_rlimit_core.
the "worker_rlimit_core" directive.
при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
Pentium 4 номер соединения в логах всегда был равен 1.
the connection number in logs was always 1 if nginx was built by the
icc 8.1 or 9.0 compilers with optimization for Pentium 4.
команда config timefmt в SSI задавала неверный формат времени.
the "config timefmt" SSI command set incorrect time format.
nginx не закрывал соединения с IMAP/POP3 бэкендом при использовании SSL
соединений;
ошибка появилась в 0.3.13.
Спасибо Rob Mueller.
nginx did not close connection to IMAP/POP3 backend for the SSL
connections;
bug appeared in 0.3.13.
Thanks to Rob Mueller.
segmentation fault мог произойти во время SSL shutdown;
ошибка появилась в 0.3.13.
segmentation fault may occurred in at SSL shutdown;
bug appeared in 0.3.13.
новой код 444 в директиве return для закрытия соединения.
the new 444 code of the "return" directive to close connection.
директива so_keepalive в IMAP/POP3 прокси.
the "so_keepalive" directive in IMAP/POP3 proxy.
nginx теперь вызывает abort() при обнаружении незакрытых соединений
только при планом выходе и включённой директиве debug_points.
if there are unclosed connection nginx now calls abort() only on gracefull
quit and active "debug_points" directive.
в ответе 304 передавалось тело ответа;
ошибка появилась в 0.3.13.
in the 304 response the body was transferred;
bug appeared in 0.3.13.
IMAP/POP3 прокси поддерживает STARTTLS и STLS.
the IMAP/POP3 proxy supports STARTTLS and STLS.
IMAP/POP3 прокси не работала с методами select, poll и /dev/poll.
the IMAP/POP3 proxy did not work with the select, poll, and /dev/poll methods.
ошибки в обработке SSI.
in SSI handling.
sendfilev() в Solaris теперь не используется при передаче тела запроса
FastCGI-серверу через unix domain сокет.
now Solaris sendfilev() is not used to transfer the client request body
to FastCGI-server via the unix domain socket.
директива auth_basic не запрещала аутентификацию;
ошибка появилась в 0.3.11.
the "auth_basic" directive did not disable the authorization;
bug appeared in 0.3.11.
если nginx был собран с модулем ngx_http_realip_module, то при использовании
директивы "satisfy_any on" директивы доступа и аутентификации не работали.
Модуль ngx_http_realip_module не собирался и не собирается по умолчанию.
if nginx was built with the ngx_http_realip_module and the "satisfy_any on"
directive was used, then access and authorization directives did not work.
The ngx_http_realip_module was not built and is not built by default.
имя переменной "$time_gmt" изменено на "$time_local".
the "$time_gmt" variable name was changed to "$time_local".
директивы proxy_header_buffer_size и fastcgi_header_buffer_size
переименованы соответственно в proxy_buffer_size и fastcgi_buffer_size.
the "proxy_header_buffer_size" and "fastcgi_header_buffer_size" directives
was renamed to the "proxy_buffer_size" and "fastcgi_buffer_size" directives.
модуль ngx_http_memcached_module.
the ngx_http_memcached_module.
директива proxy_buffering.
the "proxy_buffering" directive.
изменение в работе с accept mutex при использовании метода rtsig;
ошибка появилась в 0.3.0.
the changes in accept mutex handling when the "rtsig" method was used;
bug appeared in 0.3.0.
если клиент передал строку "Transfer-Encoding: chunked" в заголовке
запроса, то nginx теперь выдаёт ошибку 411.
if the client sent the "Transfer-Encoding: chunked" header line, then
nginx returns the 411 error.
при наследовании директивы auth_basic с уровня http в строке
"WWW-Authenticate" заголовка ответа выводился realm без текста "Basic realm".
if the "auth_basic" directive was inherited from the http level,
then the realm in the "WWW-Authenticate" header line was without
the "Basic realm" text.
если в директиве access_log был явно указан формат combined, то в лог
записывались пустые строки;
ошибка появилась в 0.3.8.
if the "combined" format was explicitly specified in the "access_log" directive,
then the empty lines was written to the log;
bug appeared in 0.3.8.
nginx не работал на платформе sparc под любыми OS, кроме Solaris.
nginx did not run on the sparc platform under any OS except Solaris.
в директиве if теперь не нужно разделять пробелом строку в кавычках и
закрывающую скобку.
now it is not necessary to place space between the quoted string and closing
bracket in the "if" directive.
nginx не передавал при проксировании тело запроса и строки заголовка клиента;
ошибка появилась в 0.3.10.
nginx did not pass the client request headers and body while proxying;
bug appeared in 0.3.10.
директива valid_referers и переменная $invalid_referer перенесены
из модуля ngx_http_rewrite_module в новый модуль ngx_http_referer_module.
the "valid_referers" directive and the "$invalid_referer" variable
were moved to the new ngx_http_referer_module from the ngx_http_rewrite_module.
имя переменной "$apache_bytes_sent" изменено на "$body_bytes_sent".
the "$apache_bytes_sent" variable name was changed to "$body_bytes_sent".
переменные "$sent_http_...".
the "$sent_http_..." variables.
директива if поддерживает операции "=" и "!=".
the "if" directive supports the "=" and "!=" operations.
директива proxy_pass поддерживает протокол HTTPS.
the "proxy_pass" directive supports the HTTPS protocol.
директива proxy_set_body.
the "proxy_set_body" directive.
директива post_action.
the "post_action" directive.
модуль ngx_http_empty_gif_module.
the ngx_http_empty_gif_module.
директива worker_cpu_affinity для Linux.
the "worker_cpu_affinity" directive for Linux.
директива rewrite не раскодировала символы в редиректах в URI,
теперь символы раскодируются, кроме символов %00-%25 и %7F-%FF.
the "rewrite" directive did not unescape URI part in redirect,
now it is unescaped except the %00-%25 and %7F-%FF characters.
nginx не собирался компилятором icc 9.0.
nginx could not be built by the icc 9.0 compiler.
если для статического файла нулевого размера был разрешён SSI,
то ответ передавался неверно при кодировании chunk'ами.
if the SSI was enabled for zero size static file, then the chunked
response was encoded incorrectly.
nginx считал небезопасными URI, в которых между двумя слэшами
находилось два любых символа;
ошибка появилась в 0.3.8.
nginx considered URI as unsafe if two any symbols was between two slashes;
bug appeared in 0.3.8.
nginx теперь проверят URI, полученные от бэкенда в строке "X-Accel-Redirect"
в заголовке ответа, или в SSI файле на наличие путей "/../" и нулей.
nginx now checks URI got from a backend in "X-Accel-Redirect" header line
or in SSI file for the "/../" paths and zeroes.
nginx теперь не воспринимает пустое имя как правильное
в строке "Authorization" в заголовке запроса.
nginx now does not treat the empty user name in the "Authorization" header
line as valid one.
директива ssl_session_timeout модулей
ngx_http_ssl_module и ngx_imap_ssl_module.
the "ssl_session_timeout" directives
of the ngx_http_ssl_module and ngx_imap_ssl_module.
директива auth_http_header модуля ngx_imap_auth_http_module.
the "auth_http_header" directive of the ngx_imap_auth_http_module.
директива add_header.
the "add_header" directive.
модуль ngx_http_realip_module.
the ngx_http_realip_module.
новые переменные для использования в директиве log_format:
$bytes_sent, $apache_bytes_sent, $status, $time_gmt,
$uri, $request_time, $request_length,
$upstream_status, $upstream_response_time,
$gzip_ratio,
$uid_got, $uid_set,
$connection, $pipe и $msec.
Параметры в виде "%name" скоро будут упразднены.
the new variables to use in the "log_format" directive:
$bytes_sent, $apache_bytes_sent, $status, $time_gmt,
$uri, $request_time, $request_length,
$upstream_status, $upstream_response_time,
$gzip_ratio,
$uid_got, $uid_set,
$connection, $pipe, and $msec.
The parameters in the "%name" form will be canceled soon.
в директиве "if" ложными значениями переменных теперь являются
пустая строка "" и строки, начинающиеся на "0".
now the false variable values in the "if" directive are the empty string ""
and string starting with "0".
при работает с проксированными или FastCGI-серверами nginx мог оставлять
открытыми соединения и временные файлы с запросами клиентов.
while using proxied or FastCGI-server nginx may leave connections
and temporary files with client requests in open state.
рабочие процессы не сбрасывали буферизированные логи при плавном выходе.
the worker processes did not flush the buffered logs on graceful exit.
если URI запроса изменялось с помощью rewrite, а затем запрос проксировался
в location, заданном регулярным выражением, то бэкенду передавался
неверный запрос;
ошибка появилась в 0.2.6.
if the request URI was changes by the "rewrite" directive and the request
was proxied in location given by regular expression, then the incorrect
request was transferred to backend;
bug appeared in 0.2.6.
директива expires не удаляла уже установленную строку заголовка "Expires".
the "expires" directive did not remove the previous "Expires" header.
при использовании метода rtsig и нескольких рабочих процессах nginx
мог перестать принимать запросы.
nginx may stop to accept requests if the "rtsig" method and several worker
processes were used.
в SSI командах неверно обрабатывались строки "\"" и "\'".
the "\"" and "\'" escape symbols were incorrectly handled in SSI commands.
если ответ заканчивался сразу же после SSI команды, то при использовании
сжатия ответ передавался не до конца или не передавался вообще.
if the response was ended just after the SSI command and gzipping was used,
then the response did not transferred complete or did not transferred at all.
директива access_log поддерживает параметр buffer=.
the "access_log" supports the "buffer=" parameter.
nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
ошибка появилась в 0.3.2.
nginx could not be built on platforms different from i386, amd64, sparc и ppc;
bug appeared in 0.3.2.
IMAP/POP3 прокси теперь не передаёт серверу авторизации пустой логин.
now the IMAP/POP3 proxy do not send the empty login to authorization server.
директива log_format поддерживает переменные в виде $name.
the "log_format" supports the variables in the $name form.
если хотя бы в одном сервере не было описано ни одной директивы listen, то
nginx не слушал на 80 порту;
ошибка появилась в 0.3.3.
if at least in one server was no the "listen" directive, then nginx did not
listen on the 80 port;
bug appeared in 0.3.3.
если в директиве proxy_pass отсутствовал URI, то всегда использовался порт 80.
if the URI part is omitted in "proxy_pass" directive, the the 80 port was
always used.
если логин IMAP/POP3 менялся сервером авторизации, то мог произойти
segmentation fault;
ошибка появилась в 0.2.2.
the segmentation fault may occurred if the IMAP/POP3 login was changed
by authorization server;
bug appeared in 0.2.2.
accept mutex не работал, все соединения обрабатывались одним рабочим процессом;
ошибка появилась в 0.3.3.
the accept mutex did not work and all connections were handled by one process;
bug appeared in 0.3.3.
при использовании метода rtsig и директивы timer_resolution
не работали таймауты.
the timeout did not work if the "rtsig" method and the "timer_resolution"
directive were used.
nginx не собирался на Linux 2.4+ и MacOS X;
ошибка появилась в 0.3.3.
nginx could not be built on Linux 2.4+ and MacOS X;
bug appeared in 0.3.3.
параметры "bl" и "af" директивы listen переименованы в "backlog"
и "accept_filter".
the "bl" and "af" parameters of the "listen" directive was renamed to
the "backlog" and "accept_filter".
параметры "rcvbuf" и "sndbuf" в директиве listen.
the "rcvbuf" and "sndbuf" parameters of the "listen" directive.
параметр лога $msec теперь не требует дополнительного системного
вызова gettimeofday().
the "$msec" log parameter does not require now the additional
the gettimeofday() system call.
ключ -t теперь проверяет директивы listen.
the -t switch now tests the "listen" directives.
если в директиве listen был указан неверный адрес, то nginx после
сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
if the invalid address was specified in the "listen" directive, then
after the -HUP signal nginx left an open socket in the CLOSED state.
для индексных файлов, содержащих в имени переменную, мог неверно выставляться
тип mime по умолчанию;
ошибка появилась в 0.3.0.
the mime type may be incorrectly set to default value for index file with
variable in the name;
bug appeared in 0.3.0.
директива timer_resolution.
the "timer_resolution" directive.
параметр лога $upstream_response_time в миллисекундах.
the millisecond "$upstream_response_time" log parameter.
временный файл с телом запроса клиента теперь удаляется сразу после того,
как клиенту передан заголовок ответа.
a temporary file with client request body now is removed just after
the response header was transferred to a client.
совместимость с OpenSSL 0.9.6.
OpenSSL 0.9.6 compatibility.
пути к файлам с SSL сертификатом и ключом не могли быть относительными.
the SSL certificate and key file paths could not be relative.
директива ssl_prefer_server_ciphers не работала для модуля ngx_imap_ssl_module.
the "ssl_prefer_server_ciphers" directive did not work in
the ngx_imap_ssl_module.
директива ssl_protocols позволяла задать только один протокол.
the "ssl_protocols" directive allowed to specify the single protocol only.
поддержка Sun Studio 10 C compiler.
the Sun Studio 10 C compiler support.
директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout,
fastcgi_upstream_max_fails и fastcgi_upstream_fail_timeout.
the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout",
"fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout"
directives.
во время переполнения очереди сигналов при использовании метода rtsig
происходил segmentation fault;
ошибка появилась в 0.2.0.
the segmentation fault occurred when the signal queue overflowed
if the "rtsig" method was used;
bug appeared in 0.2.0.
корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
correct handling of the "\\", "\"", "\'", and "\$" pairs in SSI.
убрано десятидневное ограничение времени работы рабочего процесса.
Ограничение было введено из-за переполнения миллисекундных таймеров.
the 10-days live time limit of worker process was eliminated.
The limit was introduced because of millisecond timers overflow.
с 60 до 10 секунд уменьшено время повторного обращения к бэкенду
при использовании распределения нагрузки.
while using load-balancing the time before the failed backend retry
was decreased from 60 to 10 seconds.
директива proxy_pass_unparsed_uri упразднена, оригинальный запрос теперь
передаётся, если в директиве proxy_pass отсутствует URI.
the "proxy_pass_unparsed_uri" was canceled, the original URI now passed,
if the URI part is omitted in "proxy_pass" directive.
директива error_page поддерживает редиректы и позволяет более гибко
менять код ошибки.
the "error_page" directive supports redirects and allows more flexible
to change an error code.
в проксированных подзапросах теперь игнорируется переданный charset.
the charset in the "Content-Type" header line now is ignored
in proxied subrequests.
если после изменения URI в блоке if для запроса не находилась
новая конфигурация, то правила модуля ngx_http_rewrite_module выполнялись
снова.
if the URI was changed in the "if" block and request did not found
new configuration, then the ngx_http_rewrite_module rules ran again.
если директива set устанавливала переменную модуля ngx_http_geo_module
в какой-либо части конфигурации, то эта переменная не была доступна в
других частях конфигурации и выдавалась ошибка "using uninitialized variable";
ошибка появилась в 0.2.2.
if the "set" directive set the ngx_http_geo_module variable in some
configuration part, the this variable was not available in other
configuration parts and the "using uninitialized variable" error was occurred;
bug appeared in 0.2.2.
дублирующее значение переменной модуля ngx_http_geo_module теперь
выдаёт предупреждение и изменяет старое значение.
the duplicate value of the ngx_http_geo_module variable now causes
the warning and changes old value.
модуль ngx_http_ssi_module поддерживает команду set.
the ngx_http_ssi_module supports the "set" command.
модуль ngx_http_ssi_module поддерживает параметр file в команде include.
the ngx_http_ssi_module supports the "file" parameter in the "include" command.
модуль ngx_http_ssi_module поддерживает подстановку значений переменных
в выражениях команды if.
the ngx_http_ssi_module supports the variable value substitutions in
expressions of the "if" command.
модуль ngx_http_ssi_module поддерживает выражения
"$var=text", "$var!=text", "$var=/text/" и "$var!=/text/"
в команде if.
the ngx_http_ssi_module supports
"$var=text", "$var!=text", "$var=/text/", and "$var!=/text/" expressions
in the "if" command.
ошибки при проксировании location без слэша в конце;
ошибка появилась в 0.1.44.
in proxying location without trailing slash;
bug appeared in 0.1.44.
при использовании метода rtsig мог произойти segmentation fault;
ошибка появилась в 0.2.0.
the segmentation fault may occurred if the "rtsig" method was used;
bug appeared in 0.2.0.
nginx не собирался без параметра --with-debug;
ошибка появилась в 0.2.2.
nginx could not be built without the --with-debug option;
bug appeared in 0.2.2.
команда config errmsg в модуле ngx_http_ssi_module.
the "config errmsg" command of the ngx_http_ssi_module.
переменные модуля ngx_http_geo_module можно переопределять директивой set.
the ngx_http_geo_module variables can be overridden by the "set" directive.
директивы ssl_protocols и ssl_prefer_server_ciphers модулей
ngx_http_ssl_module и ngx_imap_ssl_module.
the "ssl_protocols" and "ssl_prefer_server_ciphers" directives
of the ngx_http_ssl_module and ngx_imap_ssl_module.
ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов;
the ngx_http_autoindex_module did not show correctly the long file names;
модуль ngx_http_autoindex_module теперь не показывает файлы,
начинающиеся на точку.
the ngx_http_autoindex_module now do not show the files starting by dot.
если SSL handshake завершался с ошибкой, то это могло привести также
к закрытию другого соединения.
Спасибо Rob Mueller.
if the SSL handshake failed then another connection may be closed too.
Thanks to Rob Mueller.
экспортные версии MSIE 5.x не могли соединиться по HTTPS.
the export versions of MSIE 5.x could not connect via HTTPS.
если все бэкенды, используемые для балансировки нагрузки, оказывались
в нерабочем состоянии после одной ошибки, то nginx мог зациклится;
ошибка появилась в 0.2.0.
if all backend using in load-balancing failed after one error, then
nginx may got caught in an endless loop;
bug appeared in 0.2.0.
Изменились имена pid-файлов, используемые во время обновления исполняемого
файла. Ручное переименование теперь не нужно.
Старый основной процесс добавляет к своему pid-файл суффикс ".oldbin"
и запускает новый исполняемый файл.
Новый основной процесс создаёт обычный pid-файл без суффикса ".newbin".
Если новый основной процесс выходит, то старый процесс переименовывает свой
pid-файл c суффиксом ".oldbin" в pid-файл без суффикса.
При обновлении с версии 0.1.х до 0.2.0 нужно учитывать, что оба
процесса—старый 0.1.x и новый 0.2.0—используют pid-файл
без суффиксов.
The pid-file names used during online upgrade was changed and now is not
required a manual rename operation.
The old master process adds the ".oldbin" suffix to its pid-file and
executes a new binary file.
The new master process creates usual pid-file without the ".newbin" suffix.
If the master process exits, then old master process renames back
its pid-file with the ".oldbin" suffix to the pid-file without suffix.
директива worker_connections, новое название директивы connections;
директива теперь задаёт максимальное число соединений,
а не максимально возможный номер дескриптора для сокета.
the "worker_connections" directive, new name of the "connections" directive;
now the directive specifies maximum number of connections,
but not maximum socket descriptor number.
SSL поддерживает кэширование сессий в пределах одного рабочего процесса.
SSL supports the session cache inside one worker process.
директива satisfy_any.
the "satisfy_any" directive.
модули ngx_http_access_module и ngx_http_auth_basic_module не работают
для подзапросов.
the ngx_http_access_module and ngx_http_auth_basic_module do not run
for subrequests.
директивы worker_rlimit_nofile и worker_rlimit_sigpending.
the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives.
если все бэкенды, используемые для балансировки нагрузки, оказывались
в нерабочем состоянии после одной ошибки, то nginx не обращался к ним
в течение 60 секунд.
if all backend using in load-balancing failed after one error, then
nginx did not try do connect to them during 60 seconds.
в парсинге аргументов IMAP/POP3 команд.
Спасибо Rob Mueller.
in IMAP/POP3 command argument parsing.
Thanks to Rob Mueller.
ошибки при использовании SSL в IMAP/POP3 прокси.
errors while using SSL in IMAP/POP3 proxy.
ошибки при использовании SSI и сжатия.
errors while using SSI and gzipping.
в ответах 304 не добавлялись строки заголовка ответа "Expires" и
"Cache-Control".
Спасибо Александру Кукушкину.
the "Expires" and "Cache-Control" header lines were omitted
from the 304 responses.
Thanks to Alexandr Kukushkin.
директива ssl_engine упразднена в модуле ngx_http_ssl_module и
перенесена на глобальный уровень.
the "ssl_engine" directive was canceled in the ngx_http_ssl_module
and now is introduced at global level.
ответы с подзапросами, включённые с помощью SSI, не передавались
через SSL соединение.
the responses with SSI subrequests did not transferred via SSL connection.
Разные исправления в IMAP/POP3 прокси.
Various bug fixes in the IMAP/POP3 proxy.
IMAP/POP3 прокси поддерживает SSL.
the IMAP/POP3 proxy supports SSL.
директива proxy_timeout модуля ngx_imap_proxy_module.
the "proxy_timeout" directive of the ngx_imap_proxy_module.
директива userid_mark.
the "userid_mark" directive.
значение переменной $remote_user определяется независимо от того,
используется ли авторизация или нет.
the $remote_user variable value is determined independently of
authorization use.
listen(2) backlog в директиве listen можно менять по сигналу -HUP.
the listen(2) backlog in the "listen" directive
can be changed using the -HUP signal.
скрипт geo2nginx.pl добавлен в contrib.
the geo2nginx.pl script was added to contrib.
параметры FastCGI с пустым значениями теперь передаются серверу.
the FastCGI parameters with the empty values now are passed to a server.
если в ответе проксированного сервера или FastCGI сервера была строка
"Cache-Control", то при использовании директивы expires происходил
segmentation fault или рабочий процесс мог зациклится;
в режиме прокси ошибка появилась в 0.1.29.
the segmentation fault occurred or the worker process may got caught
in an endless loop if the proxied or FastCGI server sent the "Cache-Control"
header line and the "expires" directive was used;
in the proxied mode the bug appeared in 0.1.29.
если URI запроса получался нулевой длины после обработки модулем
ngx_http_rewrite_module, то в модуле ngx_http_proxy_module происходил
segmentation fault или bus error.
if the request URI had a zero length after the processing in
the ngx_http_proxy_module, then the segmentation fault or bus error occurred
in the ngx_http_proxy_module.
директива limit_rate не работала внутри блока if;
ошибка появилась в 0.1.38.
the "limit_rate" directive did not work inside the "if" block;
bug appeared in 0.1.38.
если переменная использовалась в файле конфигурации,
то она не могла использоваться в SSI.
if the variable was used in the configuration file,
then it can not be used in SSI.
если клиент слал очень длинную строку заголовка, то в логе не помещалась
информация, связанная с этим запросом.
if a client sent too long header line, then the request information
did not logged in the error log.
при использовании "X-Accel-Redirect" не передавалась строка "Set-Cookie";
ошибка появилась в 0.1.39.
the "Set-Cookie" header line was not transferred when the "X-Accel-Redirect"
was used;
bug appeared in 0.1.39.
при использовании "X-Accel-Redirect" не передавалась строка
"Content-Disposition".
the "Content-Disposition" header line was not transferred when
the "X-Accel-Redirect" was used.
по сигналу SIGQUIT основной процесс не закрывал сокеты, на которых он слушал.
the master process did not close the listen socket on the SIGQUIT signal.
после обновления исполняемого файла на лету на Linux и Solaris
название процесса в команде ps становилось короче.
after on-line upgrade on Linux and Solaris the process name
became shorter in the "ps" command.
Изменения в модуле ngx_http_charset_module:
директива default_charset упразднена;
директива charset задаёт кодировку ответа;
директива source_charset задаёт только исходную кодировку.
The changes in the ngx_http_charset_module:
the "default_charset" directive was canceled;
the "charset" directive sets the response charset;
the "source_charset" directive sets the source charset only.
при перенаправлении ошибки 401, полученной от бэкенда, не передавалась
строка заголовка "WWW-Authenticate".
the backend "WWW-Authenticate" header line did not transferred while
the 401 response code redirecting.
модули ngx_http_proxy_module и ngx_http_fastcgi_module могли закрыть
соединение до того, как что-нибудь было передано клиенту;
ошибка появилась в 0.1.38.
the ngx_http_proxy_module and ngx_http_fastcgi_module may close
a connection before anything was transferred to a client;
bug appeared in 0.1.38.
обработка ошибки инициализации в crypt_r() в Linux glibc.
the Linux glibc crypt_r() initialization bug.
модуль ngx_http_ssi_module не поддерживал относительные URI в
команде include virtual.
the ngx_http_ssi_module did not support the relative URI in
the "include virtual" command.
если в строке заголовка ответа бэкенда была строка "Location",
которую nginx не должен был изменять, то в ответе передавалось тело 500 ошибки;
ошибка появилась в 0.1.29.
if the backend response had the "Location" header line and nginx
should not rewrite this line, then the 500 code response body was transferred;
bug appeared in 0.1.29.
некоторые директивы модулей ngx_http_proxy_module и ngx_http_fastcgi_module
не наследовались с уровня server на уровень location;
ошибка появилась в 0.1.29.
some directives of the ngx_http_proxy_module and ngx_http_fastcgi_module
were not inherited from the server to the location level;
bug appeared in 0.1.29.
модуль ngx_http_ssl_module не поддерживал цепочки сертификатов.
the ngx_http_ssl_module did not support the certificate chain.
ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов;
ошибка появилась в 0.1.38.
the ngx_http_autoindex_module did not show correctly the long file names;
bug appeared in 0.1.38.
Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на стадии login.
Bugfixes in IMAP/POP3 proxy in interaction with a backend at the login state.
директива limit_rate поддерживается в режиме прокси и FastCGI.
the "limit_rate" directive is supported in in proxy and FastCGI mode.
в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Limit-Rate"
в ответе бэкенда.
the "X-Accel-Limit-Rate" response header line is supported in proxy
and FastCGI mode.
директива break.
the "break" directive.
директива log_not_found.
the "log_not_found" directive.
при перенаправлении запроса с помощью строки заголовка "X-Accel-Redirect"
не изменялся код ответа.
the response status code was not changed when request was redirected
by the ""X-Accel-Redirect" header line.
переменные, установленные директивой set не могли использоваться в SSI.
the variables set by the "set" directive could not be used in SSI.
при включении в SSI более одного удалённого подзапроса
мог произойти segmentation fault.
the segmentation fault may occurred if the SSI page has more than one
remote subrequest.
если статусная строка в ответе бэкенда передавалась в двух пакетах, то
nginx считал ответ неверным;
ошибка появилась в 0.1.29.
nginx treated the backend response as invalid if the status line in the
header was transferred in two packets;
bug appeared in 0.1.29.
директива ssi_types.
the "ssi_types" directive.
директива autoindex_exact_size.
the "autoindex_exact_size" directive.
модуль ngx_http_autoindex_module не поддерживал длинные имена файлов в UTF-8.
the ngx_http_autoindex_module did not support the long file names in UTF-8.
IMAP/POP3 прокси.
the IMAP/POP3 proxy.
в конце файла nginx.pid теперь добавляется "\n".
now the "\n" is added to the end of the "nginx.pid" file.
при включении большого количества вставок или нескольких больших вставок
с помощью SSI ответ мог передаваться не полностью.
the responses may be transferred not completely,
if many parts or the big parts were included by SSI.
если все бэкенды возвращали ответ 404, то при использовании параметра http_404
в директивах proxy_next_upstream или fastcgi_next_upstream, nginx
начинал запрашивать все бэкенды снова.
if all backends had returned the 404 reponse and the "http_404" parameter of
the "proxy_next_upstream" or "fastcgi_next_upstream" directives was used,
then nginx started to request all backends again.
если в заголовке запросе есть дублирующиеся строки "Host", "Connection",
"Content-Length" и "Authorization", то nginx теперь выдаёт ошибку 400.
if the request header has duplicate the "Host", "Connection", "Content-Length",
or "Authorization" lines, then nginx now returns the 400 error.
директива post_accept_timeout упразднена.
the "post_accept_timeout" directive was canceled.
параметры default, af=, bl=, deferred и bind в директиве listen.
the "default", "af=", "bl=", "deferred", and "bind" parameters
of the "listen" directive.
поддержка accept фильтров во FreeBSD.
the FreeBSD accept filters support.
поддержка TCP_DEFER_ACCEPT в Linux.
the Linux TCP_DEFER_ACCEPT support.
модуль ngx_http_autoindex_module не поддерживал имена файлов в UTF-8.
the ngx_http_autoindex_module did not support the file names in UTF-8.
после добавления новый лог-файл ротация этого лога по сигналу -USR1
выполнялась, только если переконфигурировать nginx два раза по сигналу -HUP.
the new log file can be rotated by the -USR1 signal only if
the reconfiguration by the -HUP signal was made twice.
директива working_directory.
the "working_directory" directive.
директива port_in_redirect.
the "port_in_redirect" directive.
если заголовок ответа бэкенда не помещался в один пакет, то
происходил segmentation fault;
ошибка появилась в 0.1.29.
the segmentation fault was occurred if the backend response header was in
several packets;
bug appeared in 0.1.29.
если было сконфигурировано более 10 серверов или в сервере не описана
директива "listen",
то при запуске мог произойти segmentation fault.
if more than 10 servers were configured or some server did not use the
"listen" directive, then the segmentation fault was occurred on the start.
если ответ не помещался во временный файл,
то мог произойти segmentation fault.
the segmentation fault might occur if the response was bigger than
the temporary file.
nginx возвращал ошибку 400 на запросы вида
"GET http://www.domain.com/uri HTTP/1.0";
ошибка появилась в 0.1.28.
nginx returned the 400 response on requests like
"GET http://www.domain.com/uri HTTP/1.0";
bug appeared in 0.1.28.
при включении больших ответов с помощью SSI рабочий процесс мог зациклиться.
the worker process may got caught in an endless loop if the big response
part were include by SSI.
переменные, устанавливаемые директивой "set", не были доступны в SSI.
the variables set by the "set" directive were not available in SSI.
директива autoindex_localtime.
the "autoindex_localtime" directive.
пустое значение в директиве proxy_set_header запрещает передачу заголовка.
the empty value of the "proxy_set_header" directive forbids the client
request header line passing.
nginx не собирался с параметром --without-pcre;
ошибка появилась в 0.1.29.
nginx could not be built with the --without-pcre parameter;
bug appeared in 0.1.29.
3, 5, 7 и 8 директив proxy_set_header на одном уровне вызывали
bus fault при запуске.
3, 4, 7, and 8 the "proxy_set_header" directives in one level cause
the bus fault on start up.
в редиректах внутри HTTPS сервера был указан протокол HTTP.
the HTTP protocol was specified in the HTTPS redirects.
если директива rewrite использовала выделения внутри директивы if, то
возвращалась ошибка 500.
if the "rewrite" directive used the captures inside the "if" directive, then
the 500 error code was returned.
в редиректах, выдаваемых с помощью директивы rewrite, не передавались аргументы;
ошибка появилась в 0.1.29.
the arguments were omitted in the redirects, issued by the "rewrite" directive;
bug appeared in 0.1.29.
директива if поддерживает выделения в регулярных выражениях.
the "if" directive supports the captures in regular expressions.
директива set поддерживает переменные и выделения из регулярных выражений.
the "set" directive supports the variables and the captures of regular
expressions.
в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Redirect"
в ответе бэкенда.
the "X-Accel-Redirect" response header line is supported in proxy and FastCGI
mode.
при использовании SSL ответ мог передаваться не до конца.
the response encrypted by SSL may not transferred complete.
ошибки при обработке SSI в ответе, полученного от FastCGI-сервера.
errors while processing FastCGI response by SSI.
ошибки при использовании SSI и сжатия.
errors while using SSI and gzipping.
редирект с кодом 301 передавался без тела ответа;
ошибка появилась в 0.1.30.
the redirect with the 301 code was transferred without response body;
bug appeared in 0.1.30.
при использовании SSI рабочий процесс мог зациклиться.
the worker process may got caught in an endless loop if the SSI was used.
при использовании SSL ответ мог передаваться не до конца.
the response encrypted by SSL may not transferred complete.
если длина части ответа, полученного за один раз от проксируемого или
FastCGI сервера была равна 500 байт, то nginx возвращал код ответа 500;
в режиме прокси ошибка появилась только в 0.1.29.
if the length of the response part received at once from proxied
or FastCGI server was equal to 500, then nginx returns the 500 response code;
in proxy mode the bug appeared in 0.1.29 only.
nginx не считал неверными директивы с 8-ю или 9-ю параметрами.
nginx did not consider the directives with 8 or 9 parameters as invalid.
директива return может возвращать код ответа 204.
the "return" directive can return the 204 response code.
директива ignore_invalid_headers.
the "ignore_invalid_headers" directive.
модуль ngx_http_ssi_module поддерживает команду include virtual.
the ngx_http_ssi_module supports "include virtual" command.
модуль ngx_http_ssi_module поддерживает условную команду вида
'if expr="$NAME"' и команды else и endif.
Допускается только один уровень вложенности.
the ngx_http_ssi_module supports the condition command like
'if expr="$NAME"' and "else" and "endif" commands.
Only one nested level is supported.
модуль ngx_http_ssi_module поддерживает две переменные DATE_LOCAL и DATE_GMT
и команду config timefmt.
the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables
and "config timefmt" command.
директива ssi_ignore_recycled_buffers.
the "ssi_ignore_recycled_buffers" directive.
если переменная QUERY_STRING не была определена, то в команде echo
не ставилось значение по умолчанию.
the "echo" command did not show the default value for the empty QUERY_STRING
variable.
модуль ngx_http_proxy_module полностью переписан.
the ngx_http_proxy_module was rewritten.
директивы proxy_redirect, proxy_pass_request_headers,
proxy_pass_request_body и proxy_method.
the "proxy_redirect", "proxy_pass_request_headers",
"proxy_pass_request_body", and "proxy_method" directives.
директива proxy_set_header.
Директива proxy_x_var упразднена и должна быть заменена директивой
proxy_set_header.
the "proxy_set_header" directive.
The "proxy_x_var" was canceled and must be replaced with the proxy_set_header
directive.
директива proxy_preserve_host упразднена и должна быть заменена директивами
"proxy_set_header Host $host" и "proxy_redirect off"
или директивой "proxy_set_header Host $host:$proxy_port"
и соответствующими ей директивами proxy_redirect.
the "proxy_preserve_host" is canceled and must be replaced with
the "proxy_set_header Host $host" and the "proxy_redirect off" directives,
the "proxy_set_header Host $host:$proxy_port" directive
and the appropriate proxy_redirect directives.
директива proxy_set_x_real_ip упразднена и должна быть заменена директивой
"proxy_set_header X-Real-IP $remote_addr".
the "proxy_set_x_real_ip" is canceled and must be replaced with
the "proxy_set_header X-Real-IP $remote_addr" directive.
директива proxy_add_x_forwarded_for упразднена и должна быть заменена
директивой
"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
the "proxy_add_x_forwarded_for" is canceled and must be replaced with
the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for"
directive.
директива proxy_set_x_url упразднена и должна быть заменена директивой
"proxy_set_header X-URL http://$host:$server_port$request_uri".
the "proxy_set_x_url" is canceled and must be replaced with
the "proxy_set_header X-URL http://$host:$server_port$request_uri"
directive.
директива fastcgi_param.
the "fastcgi_param" directive.
директивы fastcgi_root, fastcgi_set_var и fastcgi_params упразднены
и должны быть замены директивами fastcgi_param.
the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive
are canceled and must be replaced with the fastcgi_param directives.
директива index может использовать переменные.
the "index" directive can use the variables.
директива index может быть указана на уровне http и server.
the "index" directive can be used at http and server levels.
только последний параметр в директиве index может быть абсолютным.
the last index only in the "index" directive can be absolute.
в директиве rewrite могут использоваться переменные.
the "rewrite" directive can use the variables.
директива internal.
the "internal" directive.
переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables.
nginx теперь передаёт неверные строки в заголовках запроса клиента и
ответа бэкенда.
nginx now passes the invalid lines in a client request headers
or a backend response header.
если бэкенд долго не передавал ответ и send_timeout был меньше, чем
proxy_read_timeout, то клиенту возвращался ответ 408.
if the backend did not transfer response for a long time and
the "send_timeout" was less than "proxy_read_timeout", then nginx
returned the 408 response.
если бэкенд передавал неверную строку в заголовке ответа, то происходил
segmentation fault;
ошибка появилась в 0.1.26.
the segmentation fault was occurred if the backend sent an invalid line
in response header;
bug appeared in 0.1.26.
при использовании отказоустойчивой конфигурации в FastCGI мог
происходить segmentation fault.
the segmentation fault may occurred in FastCGI fault tolerance configuration.
директива expires не удаляла уже установленные строки заголовка
"Expires" и "Cache-Control".
the "expires" directive did not remove the previous "Expires" and
"Cache-Control" headers.
nginx не учитывал завершающую точку в строке заголовка запроса "Host".
nginx did not take into account trailing dot in "Host" header line.
модуль ngx_http_auth_module не работал на Linux.
the ngx_http_auth_module did not work under Linux.
директива rewrite неверно работала, если в запросе присутствовали аргументы.
the rewrite directive worked incorrectly, if the arguments were in a request.
nginx не собирался на MacOS X.
nginx could not be built on MacOS X.
при проксировании больших файлов nginx сильно нагружал процессор.
nginx hogs CPU while proxying the huge files.
nginx не собирался gcc 4.0 на Linux.
nginx could not be built by gcc 4.0 on Linux.
параметр blocked в директиве valid_referers.
the "blocked" parameter of the "valid_referers" directive.
ошибки обработки заголовка запроса теперь записываются на уровне
info, в лог также записывается имя сервера и строки заголовка
запроса "Host" и "Referer".
the errors while handling the request header now logged at "info" level.
The server name and the "Host" and "Referer" header lines also logged.
при записи ошибок в лог записывается также строка заголовка запроса "Host".
the "Host" header line is also logged in error log.
директива proxy_pass_unparsed_uri.
Специальная обработка символов "://" в URI, введённая в версии 0.1.11,
теперь упразднена.
the proxy_pass_unparsed_uri directive.
The special handling of the "://" symbols in URI, appeared in 0.1.11 version,
now is canceled.
nginx не собирался на FreeBSD и Linux, если был указан параметр конфигурации
--without-ngx_http_auth_basic_module.
nginx could not be built on FreeBSD and Linux, if the
--without-ngx_http_auth_basic_module configuration parameter was used.
неверные строки заголовка, переданные клиентом, теперь игнорируется и
записываются в error_log на уровне info.
the invalid client header lines are now ignored and logged at the info level.
при записи ошибок в лог записывается также имя сервера, при обращении
к которому произошла ошибка.
the server name is also logged in error log.
модуль ngx_http_auth_basic_module и директивы auth_basic и
auth_basic_user_file.
the ngx_http_auth_basic_module module and the auth_basic and
auth_basic_user_file directives.
nginx не работал на Linux parisc.
nginx did run on Linux parisc.
nginx теперь не запускается под FreeBSD, если значение
sysctl kern.ipc.somaxconn слишком большое.
nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn
value is too big.
если модуль ngx_http_index_module делал внутреннее перенаправление запроса
в модули ngx_http_proxy_module или ngx_http_fastcgi_module, то файл индекса
не закрывался после обслуживания запроса.
if a request was internally redirected by the ngx_http_index_module
module to the ngx_http_proxy_module or ngx_http_fastcgi_module modules,
then the index file was not closed after request completion.
директива proxy_pass может использоваться в location, заданных регулярным
выражением.
the "proxy_pass" can be used in location with regular expression.
модуль ngx_http_rewrite_filter_module поддерживает условия вида
"if ($HTTP_USER_AGENT ~ MSIE)".
the ngx_http_rewrite_filter_module module supports the condition like
"if ($HTTP_USER_AGENT ~ MSIE)".
nginx очень медленно запускался при большом количестве адресов и
использовании текстовых значений в директиве geo.
nginx started too slow if the large number of addresses and text values
were used in the "geo" directive.
имя переменной в директиве geo нужно указывать, как $name.
Прежний вариант без "$" пока работает, но вскоре будет убран.
a variable name must be declared as "$name" in the "geo" directive.
The previous variant without "$" is still supported, but will be removed soon.
параметр лога "%{VARIABLE}v".
the "%{VARIABLE}v" logging parameter.
директива "set $name value".
the "set $name value" directive.
совместимость с gcc 4.0.
gcc 4.0 compatibility.
параметр автоконфигурации --with-openssl-opt=OPTIONS.
the --with-openssl-opt=OPTIONS autoconfiguration directive.
модуль ngx_http_ssi_filter_module поддерживает переменные
QUERY_STRING и DOCUMENT_URI.
the ngx_http_ssi_filter_module supports the QUERY_STRING and DOCUMENT_URI
variables.
модуль ngx_http_autoindex_module мог выдавать ответ 404
на существующий каталог, если этот каталог был указан как alias.
the ngx_http_autoindex_module may some times return the 404 response
for existent directory, if this directory was used in "alias" directive.
модуль ngx_http_ssi_filter_module неправильно работал при больших
ответах.
the ngx_http_ssi_filter_module ran incorrectly for large responses.
отсутствие строки заголовка "Referer" всегда считалось правильным referrer'ом.
the lack of the "Referer" header line was always accounted as valid referrer.
модуль ngx_http_ssi_filter_module и
директивы ssi, ssi_silent_errors и ssi_min_file_chunk.
Поддерживаются команды 'echo var="HTTP_..." default=""' и
'echo var="REMOTE_ADDR"'.
the ngx_http_ssi_filter_module and
the ssi, ssi_silent_errors, and ssi_min_file_chunk directives.
The 'echo var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands
are supported.
параметр лога %request_time.
the %request_time log parameter.
если запрос пришёл без строки заголовка "Host", то директива
proxy_preserve_host устанавливает в качестве этого заголовка первое имя
сервера из директивы server_name.
if the request has no the "Host" header line, then the "proxy_preserve_host"
directive set this header line to the first server name of the "server_name"
directive.
nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
ошибка появилась в 0.1.22.
nginx could not be built on platforms different from i386, amd64, sparc и ppc;
bug appeared in 0.1.22.
модуль ngx_http_autoindex_module теперь показывает информацию не о
символическом линке, а о файле или каталоге, на который он указывает.
the ngx_http_autoindex_module now shows the information not about the symlink,
but about file or directory it points to.
если клиенту ничего не передавалось, то параметр %apache_length
записывал в лог отрицательную длину заголовка ответа.
the %apache_length parameter logged the negative length
of the response header if the no response was transferred to a client.
модуль ngx_http_stub_status_module показывал неверную статистику
для обработанных соединений, если использовалось проксирование
или FastCGI-сервер.
the ngx_http_stub_status_module showed incorrect handled connections
statistics if the proxying or FastCGI server were used.
на Linux и Solaris установочные пути были неверно заключены в кавычки;
ошибка появилась в 0.1.21.
the installation paths were incorrectly quoted on Linux and Solaris;
bug appeared in 0.1.21.
модуль ngx_http_stub_status_module показывал неверную статистику
при использовании метода rtsig или при использовании нескольких
рабочих процессов на SMP машине.
the ngx_http_stub_status_module showed incorrect statistics
if "rtsig" method was used or if several worker process ran on SMP.
nginx не собирался компилятором icc под Линуксом или
если библиотека zlib-1.2.x собиралась из исходных текстов.
nginx could not be built by the icc compiler on Linux or
if the zlib-1.2.x library was building from sources.
nginx не собирался под NetBSD 2.0.
nginx could not be built on NetBSD 2.0.
новые параметры script_filename и remote_port в директиве fastcgi_params.
the new "script_filename" and "remote_port" parameters
of the fastcgi_params directive.
неправильно обрабатывался поток stderr от FastCGI-сервера.
the FastCGI stderr stream was handled incorrectly.
если в запросе есть нуль, то для локальных запросов теперь возвращается
ошибка 404.
now, if request contains the zero, then the 404 error is returned
for the local requests.
nginx не собирался под NetBSD 2.0.
nginx could not be built on NetBSD 2.0.
во время чтения тела запроса клиента в SSL соединении мог произойти таймаут.
the timeout may occur while reading of the the client request body
via SSL connections.
для совместимости с Solaris 10 в директивах devpoll_events и devpoll_changes
значения по умолчанию уменьшены с 512 до 32.
the default values of the devpoll_events and the devpoll_changes directives
changed from 512 to 32 to be compatible with Solaris 10.
директивы proxy_set_x_var и fastcgi_set_var не наследовались.
the proxy_set_x_var and fastcgi_set_var directives were not inherited.
в директиве rewrite, возвращающей редирект, аргументы присоединялись
к URI через символ "&" вместо "?".
in the redirect rewrite directive the arguments were concatenated with URI
by the "&" rather than the "?".
строки для модуля ngx_http_geo_module без символа ";" во включённом файле
игнорировались.
the lines without trailing ";" in the file being included
by the ngx_http_geo_module were silently ignored.
модуль ngx_http_stub_status_module.
the ngx_http_stub_status_module.
неизвестный формат лог-файла в директиве access_log вызывал segmentation fault.
the unknown log format in the access_log directive caused
the segmentation fault.
новый параметр document_root в директиве fastcgi_params.
the new "document_root" parameter of the fastcgi_params directive.
директива fastcgi_redirect_errors.
the fastcgi_redirect_errors directive.
новый модификатор break в директиве rewrite позволяет прекратить
цикл rewrite/location и устанавливает текущую конфигурацию для запроса.
the new "break" modifier of the "rewrite" directive allows to stop
the rewrite/location cycle and sets the current configuration to the request.
модуль ngx_http_rewrite_module полностью переписан.
Теперь можно делать редиректы, возвращать коды ошибок
и проверять переменные и рефереры.
Эти директивы можно использовать внутри location.
Директива redirect упразднена.
the ngx_http_rewrite_module was rewritten from the scratch.
Now it is possible to redirect, to return the error codes,
to check the variables and referrers. The directives can be used
inside locations.
The redirect directive was canceled.
модуль ngx_http_geo_module.
the ngx_http_geo_module.
директивы proxy_set_x_var и fastcgi_set_var.
the proxy_set_x_var and fastcgi_set_var directives.
конфигурация location с модификатором "=" могла использоваться
в другом location.
the location configuration with "=" modifier may be used in another
location.
правильный тип ответа выставлялся только для запросов, у которых в расширении
были только маленькие буквы.
the correct content type was set only for requests that use small caps letters
in extension.
если для location установлен proxy_pass или fastcgi_pass, и доступ
к нему запрещался, а ошибка перенаправлялась на статическую страницу,
то происходил segmentation fault.
if the proxy_pass or fastcgi_pass directives were set in the location,
and access was denied, and the error was redirected to a static page,
then the segmentation fault occurred.
если в проксированном ответе в заголовке "Location" передавался
относительный URL, то к нему добавлялось имя хоста и слэш;
ошибка появилась в 0.1.14.
if in a proxied "Location" header was a relative URL,
then a host name and a slash were added to them;
bug appeared in 0.1.14.
на Linux в лог не записывался текст системной ошибки.
the system error message was not logged on Linux.
если ответ передавался chunk'ами, то при запросе HEAD выдавался
завершающий chunk.
if the response were transferred by chunks, then on the HEAD request
the final chunk was issued.
заголовок "Connection: keep-alive" выдавался, даже если директива
keepalive_timeout запрещала использование keep-alive.
the "Connection: keep-alive" header were issued, even if the
keepalive_timeout directive forbade the keep-alive use.
ошибки в модуле ngx_http_fastcgi_module вызывали segmentation fault.
the errors in the ngx_http_fastcgi_module caused the segmentation faults.
при использовании SSL сжатый ответ мог передаваться не до конца.
the compressed response encrypted by SSL may not transferred complete.
опции TCP_NODELAY, TCP_NOPSUH и TCP_CORK, специфичные для TCP сокетов,
не используются для unix domain сокетов.
the TCP-specific TCP_NODELAY, TCP_NOPSUH, and TCP_CORK options,
are not used for the unix domain sockets.
директива rewrite поддерживает перезаписывание аргументов.
the rewrite directive supports the arguments rewriting.
на запрос POST с заголовком "Content-Length: 0" возвращался ответ 400;
ошибка появилась в 0.1.14.
the response code 400 was returned for the POST request with the
"Content-Length: 0" header;
bug appeared in 0.1.14.
ошибка соединения с FastCGI-сервером вызывала segmentation fault.
the error while the connecting to the FastCGI server caused
segmentation fault.
корректная обработка регулярного выражения, в котором число
выделенных частей не совпадает с числом подстановок.
the correct handling of the regular expression, that
has different number of the captures and substitutions.
location, который передаётся FastCGI-серверу, может быть задан
с помощью регулярного выражения.
the location, that is passed to the FastCGI server, can be
regular expression.
параметр FastCGI REQUEST_URI теперь передаётся вместе с аргументами
и в том виде, в котором был получен от клиента.
the FastCGI's parameter REQUEST_URI is now passed with the arguments
and in the original state.
для использования регулярных выражений в location нужно было
собирать nginx вместе с ngx_http_rewrite_module.
the ngx_http_rewrite_module module was required to be built to use
the regular expressions in locations.
если бэкенд слушал на 80-ом порту, то при использовании директивы
"proxy_preserve_host on" в заголовке "Host" указывался
также порт 80;
ошибка появилась в 0.1.14.
the directive "proxy_preserve_host on" adds port 80
to the "Host" headers, if upstream listen on port 80;
bug appeared in 0.1.14.
если задать одинаковые пути в параметрах автоконфигурации
--http-client-body-temp-path=PATH и --http-proxy-temp-path=PATH
или --http-client-body-temp-path=PATH и --http-fastcgi-temp-path=PATH,
то происходил segmentation fault.
the same paths in autoconfiguration parameters
--http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH,
or --http-client-body-temp-path=PATH and --http-fastcgi-temp-path=PATH
caused segmentation fault.
параметры автоконфигурации
--http-client-body-temp-path=PATH,
--http-proxy-temp-path=PATH
и --http-fastcgi-temp-path=PATH
the autoconfiguration directives:
--http-client-body-temp-path=PATH,
--http-proxy-temp-path=PATH,
and --http-fastcgi-temp-path=PATH
имя каталога с временными файлами, содержащие тело запроса клиента,
задаётся директивой client_body_temp_path,
по умолчанию <prefix>/client_body_temp.
the directory name for the temporary files with the client request body
is specified by directive client_body_temp_path,
by default it is <prefix>/client_body_temp.
модуль ngx_http_fastcgi_module и директивы
fastcgi_pass,
fastcgi_root,
fastcgi_index,
fastcgi_params,
fastcgi_connect_timeout,
fastcgi_send_timeout,
fastcgi_read_timeout,
fastcgi_send_lowat,
fastcgi_header_buffer_size,
fastcgi_buffers,
fastcgi_busy_buffers_size,
fastcgi_temp_path,
fastcgi_max_temp_file_size,
fastcgi_temp_file_write_size,
fastcgi_next_upstream
и fastcgi_x_powered_by.
the ngx_http_fastcgi_module and the directives:
fastcgi_pass,
fastcgi_root,
fastcgi_index,
fastcgi_params,
fastcgi_connect_timeout,
fastcgi_send_timeout,
fastcgi_read_timeout,
fastcgi_send_lowat,
fastcgi_header_buffer_size,
fastcgi_buffers,
fastcgi_busy_buffers_size,
fastcgi_temp_path,
fastcgi_max_temp_file_size,
fastcgi_temp_file_write_size,
fastcgi_next_upstream,
and fastcgi_x_powered_by.
ошибка "[alert] zero size buf";
ошибка появилась в 0.1.3.
the "[alert] zero size buf" error;
bug appeared in 0.1.3.
в директиве proxy_pass нужно обязательно указывать URI после имени хоста.
the URI must be specified after the host name in the proxy_pass directive.
если в URI встречался символ %3F, то он считался началом строки аргументов.
the %3F symbol in the URI was considered as the argument string start.
поддержка unix domain сoкетов в модуле ngx_http_proxy_module.
the unix domain sockets support in the ngx_http_proxy_module.
директивы ssl_engine и ssl_ciphers.
Спасибо Сергею Скворцову за SSL-акселератор.
the ssl_engine and ssl_ciphers directives.
Thanks to Sergey Skvortsov for SSL-accelerator.
директивы server_names_hash и server_names_hash_threshold.
the server_names_hash and server_names_hash_threshold directives.
имена *.domain.tld в директиве server_name не работали.
the *.domain.tld names in the "server_name" directive did not work.
параметр лога %request_length записывал неверную длину.
the %request_length log parameter logged the incorrect length.
параметр лога %request_length.
the %request_length log parameter.
при использовании /dev/poll, select и poll на платформах, где возможны
ложные срабатывания указанных методов, могли быть длительные задержки
при обработке запроса по keep-alive соединению.
Наблюдалось по крайней мере на Solaris с использованием /dev/poll.
when using the /dev/poll, select and poll on the platforms, where
these methods may do the false reports, there may be the long delay when
the request was passed via the keep-alive connection.
It may be at least on Solaris when using the /dev/poll.
директива send_lowat игнорируется на Linux, так как Linux не поддерживает
опцию SO_SNDLOWAT.
the send_lowat directive is ignored on Linux because Linux does not support
the SO_SNDLOWAT option.
директива worker_priority.
the worker_priority directive.
под FreeBSD директивы tcp_nopush и tcp_nodelay вместе влияют на передачу
ответа.
both tcp_nopush and tcp_nodelay directives affect the transferred response.
nginx не вызывал initgroups().
Спасибо Андрею Ситникову и Андрею Нигматулину.
nginx did not call initgroups().
Thanks to Andrew Sitnikov and Andrei Nigmatulin.
ngx_http_auto_index_module теперь выдаёт размер файлов в байтах.
now the ngx_http_autoindex_module shows the file size in the bytes.
ngx_http_auto_index_module возвращал ошибку 500, если в каталоге есть
битый symlink.
the ngx_http_autoindex_module returned the 500 error if the broken symlink
was in a directory.
файлы больше 4G не передавались с использованием sendfile.
the files bigger than 4G could not be transferred using sendfile.
если бэкенд резолвился в несколько адресов и при ожидании от него ответа
происходила ошибка, то процесс зацикливался.
if the backend was resolved to several backends and there was an error while
the response waiting then process may got caught in an endless loop.
при использовании метода /dev/poll рабочий процесс мог завершиться
с сообщением "unknown cycle".
the worker process may exit with the "unknown cycle" message when the /dev/poll
method was used.
ошибки "close() channel failed".
"close() channel failed" errors.
автоматическое определение групп nobody и nogroup.
the autodetection of the "nobody" and "nogroup" groups.
директива send_lowat не работала на Linux.
the send_lowat directive did not work on Linux.
если в конфигурации не было раздела events, то происходил segmentation fault.
the segmentation fault occurred if there was no events section
in configuration.
nginx не собирался под OpenBSD.
nginx could not be built on OpenBSD.
двойные слэшы в "://" в URI превращались в ":/".
the double slashes in "://" in the URI were converted to ":/".
если в запросе без аргументов есть "//", "/./", "/../" или "%XX",
то терялся последний символ в строке запроса;
ошибка появилась в 0.1.9.
if the request without arguments contains "//", "/./", "/../" or "%XX"
then the lost character in the request line was lost;
bug appeared in 0.1.9.
исправление в версии 0.1.9 для файлов больше 2G на Linux не работало.
the fix in 0.1.9 for the files bigger than 2G on Linux did not work.
если в запросе есть "//", "/./", "/../" или "%XX", то проксируемый
запрос передавался без аргументов.
the proxied request was sent without arguments if the request contains
"//", "/./", "/../" or "%XX".
при сжатии больших ответов иногда они передавались не полностью.
the large compressed responses may be transferred not completely.
не передавались файлы больше 2G на Linux, неподдерживающем sendfile64().
the files bigger than 2G was not transferred on Linux that does not support
sendfile64().
на Linux при конфигурации сборки нужно было обязательно использовать
параметр --with-poll_module;
ошибка появилась в 0.1.8.
while the build configuration on Linux the --with-poll_module parameter
was required;
bug appeared in 0.1.8.
ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов.
in the ngx_http_autoindex_module if the long file names were in the listing.
модификатор "^~" в директиве location.
the "^~" modifier in the location directive.
директива proxy_max_temp_file_size.
the proxy_max_temp_file_size directive.
при использовании sendfile, если передаваемый файл менялся, то мог
произойти segmentation fault на FreeBSD;
ошибка появилась в 0.1.5.
on FreeBSD the segmentation fault may occur if the size of the transferred
file was changed;
bug appeared in 0.1.5.
при некоторых комбинациях директив location c регулярными выражениями
использовалась конфигурация не из того location.
some location directive combinations with the regular expressions caused
the wrong configuration choose.
на Solaris и Linux могло быть очень много сообщений "recvmsg() returned
not enough data".
on Solaris and Linux there may be too many "recvmsg() returned not enough data"
alerts.
в режиме прокси без использования sendfile на Solaris возникала
ошибка "writev() failed (22: Invalid argument)".
На других платформах, не поддерживающих sendfile, процесс зацикливался.
there were the "writev() failed (22: Invalid argument)" errors on
Solaris in proxy mode without sendfile. On other platforms that do not
support sendfile at all the process got caught in an endless loop.
при использовании sendfile в режиме прокси на Solaris возникал
segmentation fault.
segmentation fault on Solaris in proxy mode and using sendfile.
segmentation fault на Solaris.
segmentation fault on Solaris.
обновление исполняемого файла на лету не работало на Linux.
on-line upgrade did not work on Linux.
в списке файлов, выдаваемом модулем ngx_http_autoindex_module,
не перекодировались пробелы, кавычки и знаки процента.
the ngx_http_autoindex_module module did not escape the spaces,
the quotes, and the percent signs in the directory listing.
уменьшение операций копирования.
the decrease of the copy operations.
директива userid_p3p.
the userid_p3p directive.
ошибка в модуле ngx_http_autoindex_module.
in the ngx_http_autoindex_module.
модуль ngx_http_autoindex_module и директива autoindex.
the ngx_http_autoindex_module and the autoindex directive.
директива proxy_set_x_url.
the proxy_set_x_url directive.
модуль проксировании мог привести к зацикливанию, если не использовался
sendfile.
proxy module may get caught in an endless loop when sendfile is not used.
параметры --user=USER, --group=GROUP и --with-ld-opt=OPTIONS в configure.
the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure.
директива server_name поддерживает *.domain.tld.
the server_name directive supports *.domain.tld.
улучшена переносимость на неизвестные платформы.
the portability improvements.
нельзя переконфигурировать nginx, если конфигурационный файл указан
в командной строке;
ошибка появилась в 0.1.1.
if configuration file was set in command line, the reconfiguration
was impossible;
bug appeared in 0.1.1.
модуль проксировании мог привести к зацикливанию, если не использовался
sendfile.
proxy module may get caught in an endless loop when sendfile is not used.
при использовании sendfile текст ответа не перекодировался
согласно директивам модуля charset;
ошибка появилась в 0.1.1.
with sendfile the response was not recoded according to the charset
module directives;
bug appeared in 0.1.1.
очень редкая ошибка при обработке kqueue.
very seldom bug in the kqueue processing.
модуль сжатия сжимал уже сжатые ответы, полученные при проксировании.
the gzip module compressed the proxied responses that was already compressed.
директива gzip_types.
the gzip_types directive.
директива tcp_nodelay.
the tcp_nodelay directive.
директива send_lowat работает не только на платформах, поддерживающих
kqueue NOTE_LOWAT, но и на всех, поддерживающих SO_SNDLOWAT.
the send_lowat directive is working not only on OSes that support
kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT.
эмуляция setproctitle() для Linux и Solaris.
the setproctitle() emulation for Linux and Solaris.
ошибка при переписывании заголовка "Location" при проксировании.
the "Location" header rewrite bug fixed while the proxying.
ошибка в модуле ngx_http_chunked_module, приводившая к зацикливанию.
the ngx_http_chunked_module module may get caught in an endless loop.
ошибки в модуле /dev/poll.
the /dev/poll module bugs fixed.
при проксировании и использовании временных файлов ответы портились.
the responses were corrupted when the temporary files were used
while the proxying.
бэкенду передавались запросы с неперекодированными символами.
the unescaped requests were passed to the backend.
на Linux 2.4 при конфигурации сборки нужно было обязательно использовать
параметр --with-poll_module.
while the build configuration on Linux 2.4 the --with-poll_module parameter
was required.
Первая публично доступная версия.
The first public version.