Изменения в nginx nginx changelog директива 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" is 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 proxing 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 proxing 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 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.