Изменения в nginx
nginx changelog
если ответ передавался 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 derective 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 agruments rewriting.
на запрос POST с заголовком "Content-Length: 0" возвращался ответ 400;
ошибка появилась в 0.1.14.
the response code 400 was returend 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 exporession, that
has different number of the captures and substitutions.
location, который передаётся FastCGI-серверу, может быть задан
с помощью регулярного выражения.
the location, that is passed to the FastCGI server, can be
regualar 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 pathes in autoconfiguration paramters
--http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH,
or --http-client-body-temp-path=PATH nad --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 combiations 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 proxing.
ошибка в модуле 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 proxing.
бэкенду передавались запросы с неперекодированными символами.
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.