Изменения в nginx 0.6.39 14.09.2009 *) Безопасность: при обработке специально созданного запроса в рабочем процессе мог произойти segmentation fault. Спасибо Chris Ries. *) Исправление: при использовании error_log на уровне info или debug в рабочем процессе мог произойти segmentation fault. Спасибо Сергею Боченкову. Изменения в nginx 0.6.38 22.06.2009 *) Добавление: директива keepalive_requests. Изменения в nginx 0.6.37 18.05.2009 *) Добавление: поддержка Microsoft-специфичного режима "AUTH LOGIN with User Name" в почтовом прокси-сервере. Спасибо Максиму Дунину. *) Исправление: nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; ошибка появилась в 0.6.36. Изменения в nginx 0.6.36 02.04.2009 *) Изменение: ошибка "Invalid argument", возвращаемая setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется. *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в заголовке запроса. *) Добавление: директива try_files. *) Добавление: параметр --with-pcre в configure. *) Добавление: директива if_modified_since. *) Добавление: переменные "$cookie_...". *) Добавление: переменные "$arg_...". *) Исправление: совместимость с Tru64 UNIX. Спасибо Dustin Marquess. *) Исправление: директива ssl_engine не использовала SSL-акселератор для асимметричных шифров. Спасибо Marcin Gozdalik. *) Исправление: в директиве rewrite, возвращающей редирект, старые аргументы присоединялись к новым через символ "?" вместо "&"; ошибка появилась в 0.1.18. Спасибо Максиму Дунину. *) Исправление: nginx не собирался на AIX. *) Исправление: если на запрос с телом возвращался редирект, то ответ мог быть двойным при использовании методов epoll или rtsig. Спасибо Eden Li. *) Исправление: при использовании директивы resolver в SMTP прокси-сервере в рабочем процессе мог произойти segmentation fault. *) Исправление: fastcgi_store не всегда сохранял файлы. *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед ответом сервер передавал много сообщений в stderr. Изменения в nginx 0.6.35 26.01.2009 *) Исправление: ошибки выделения больших блоков в разделяемой памяти, если nginx был собран без отладки. Спасибо Андрею Квасову. *) Исправления в поддержке строки "Expect" в заголовке запроса. *) Исправление: ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module. Изменения в nginx 0.6.34 27.11.2008 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается временной. *) Изменение: теперь директива "gzip_vary on" выдаёт строку "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов. *) Добавление: директива expires поддерживает суточное время. *) Добавление: поддержка строки "Expect" в заголовке запроса. *) Добавление: теперь при использовании протокола "https://" в директиве rewrite автоматически делается редирект. *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и прочие, не устанавливались, если сервером по умолчанию был не первый сервер. *) Исправление: директива log_not_found не работала при поиске индексных файлов. *) Исправление: теперь, если FastCGI-сервер присылает строку "Location" в заголовке ответа без строки статуса, то nginx использует код статуса 302. Спасибо Максиму Дунину. *) Исправление: модуль ngx_http_flv_module не поддерживал несколько значений в аргументах запроса. *) Исправление: при редиректе запроса к каталогу с добавлением слэша nginx не добавлял аргументы из оригинального запроса. Изменения в nginx 0.6.33 20.11.2008 *) Добавление: теперь nginx возвращает код 405 для метода POST при запросе статического файла, только если файл существует. *) Изменение: совместимость с glibc 2.3. Спасибо Eric Benson и Максиму Дунину. *) Исправление: resolver не понимал большие DNS-ответы. Спасибо Zyb. *) Исправление: при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry". *) Исправление: модуль ngx_http_charset_module не понимал название кодировки в кавычках, полученное от бэкенда. *) Исправление: при использовании параметра max_fails=0 в upstream'е с несколькими серверами рабочий процесс выходил по сигналу SIGFPE. Спасибо Максиму Дунину. *) Исправление: метод $r->header_in() не возвращал значения строк "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка появилась в 0.6.32. *) Исправление: при перенаправлении запроса с методом HEAD с помощью директивы error_page возвращался полный ответ. *) Исправление: если у каталога были права доступа только на поиск файлов и первый индексный файл отсутствовал, то nginx возвращал ошибку 500. *) Исправление: рекурсивной error_page для 500 ошибки. Изменения в nginx 0.6.32 07.07.2008 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот параметр используется по умолчанию. Спасибо Rob Mueller. *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log записываются в виде \xXX. Спасибо Максиму Дунину. *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке запроса. *) Добавление: директива expires поддерживает флаг modified. *) Добавление: переменные $uid_got и $uid_set можно использовать на любой стадии обработки запроса. *) Добавление: переменная $hostname. Спасибо Андрею Нигматулину. *) Добавление: поддержка DESTDIR. Спасибо Todd A. Fisher и Andras Voroskoi. *) Исправление: при совместном использовании sub_filter и SSI ответы могли передаваться неверно. *) Исправление: большие включения в SSI могли передавались не полностью. *) Исправление: директива proxy_pass не работала с протоколом HTTPS; ошибка появилась в 0.6.9. *) Исправление: рабочие процессы могли не реагировать на сигналы переконфигурации и ротации логов. *) Исправление: nginx не собирался на последних Fedora 9 Linux. Спасибо Roxis. *) Исправление: при использовании keepalive на Linux в рабочем процессе мог произойти segmentation fault. Изменения в nginx 0.6.31 12.05.2008 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка заголовка ответ была в конце записи FastCGI; ошибка появилась в 0.6.2. Спасибо Сергею Серову. *) Исправление: при удалении файла и использовании директивы open_file_cache_errors off в рабочем процессе мог произойти segmentation fault. Изменения в nginx 0.6.30 29.04.2008 *) Изменение: теперь, если маске, заданной в директиве include, не соответствует ни один файл, то nginx не выдаёт ошибку. *) Добавление: теперь время в директивах можно задавать без пробела, например, "1h50m". *) Исправление: утечек памяти, если директива ssl_verify_client имела значение on. Спасибо Chavelle Vincent. *) Исправление: директива sub_filter могла вставлять заменяемый текст в вывод. *) Исправление: директива error_page не воспринимала параметры в перенаправляемом URI. *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы в бинарном режиме. *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в 0.6.15. Изменения в nginx 0.6.29 18.03.2008 *) Добавление: модуль ngx_google_perftools_module. *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных платформах; ошибка появилась в 0.6.27. Изменения в nginx 0.6.28 13.03.2008 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27. Изменения в nginx 0.6.27 12.03.2008 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод rtsig. *) Изменение: теперь при перенаправлении запроса в именованный location с помощью директивы error_page метод запроса не изменяется. *) Добавление: директивы resolver и resolver_timeout в SMTP прокси-сервере. *) Добавление: директива post_action поддерживает именованные location'ы. *) Исправление: при перенаправлении запроса из location'а c обработчиком proxy, FastCGI или memcached в именованный location со статическим обработчиком в рабочем процессе происходил segmentation fault. *) Исправление: браузеры не повторяли SSL handshake, если при первом handshake не оказалось правильного клиентского сертификата. Спасибо Александру Инюхину. *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы error_page без изменения кода ошибки nginx пытался выделить очень много памяти. *) Исправление: утечки памяти в долгоживущих небуфферизированных соединениях. *) Исправление: утечки памяти в resolver'е. *) Исправление: при перенаправлении запроса из location'а c обработчиком proxy в другой location с обработчиком proxy в рабочем процессе происходил segmentation fault. *) Исправление: ошибки в кэшировании переменных $proxy_host и $proxy_port. Спасибо Сергею Боченкову. *) Исправление: директива proxy_pass с переменными использовала порт, описанной в другой директиве proxy_pass без переменных, но с таким же именем хоста. Спасибо Сергею Боченкову. *) Исправление: во время переконфигурации на некоторых 64-битном платформах в лог записывался alert "sendmsg() failed (9: Bad file descriptor)". *) Исправление: при повторном использовании в SSI пустого block'а в качестве заглушки в рабочем процессе происходил segmentation fault. *) Исправление: ошибки при копировании части URI, содержащего экранированные символы, в аргументы. Изменения в nginx 0.6.26 11.02.2008 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину ответа. *) Исправление: при использовании большого значения в директиве expires в рабочем процессе происходил segmentation fault. Спасибо Joaquin Cuenca Abela. *) Исправление: nginx неверно определял длину строки кэша на Pentium 4. Спасибо Gena Makhomed. *) Исправление: в проксированных подзапросах и подзапросах к FastCGI-серверу вместо метода GET использовался оригинальный метод клиента. *) Исправление: утечки сокетов в режиме HTTPS при использовании отложенного accept'а. Спасибо Ben Maurer. *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed (SSL: )"; ошибка появилась в 0.6.23. *) Исправление: при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry"; ошибка появилась в 0.6.23. Изменения в nginx 0.6.25 08.01.2008 *) Изменение: вместо специального параметра "*" в директиве server_name теперь используется директива server_name_in_redirect. *) Изменение: в качестве основного имени в директиве server_name теперь можно использовать имена с масками и регулярными выражениями. *) Изменение: директива satisfy_any заменена директивой satisfy. *) Изменение: после переконфигурации старые рабочие процесс могли сильно нагружать процессор при запуске под Linux OpenVZ. *) Добавление: директива min_delete_depth. *) Исправление: методы COPY и MOVE не работали с одиночными файлами. *) Исправление: модуль ngx_http_gzip_static_module не позволял работать модулю ngx_http_dav_module; ошибка появилась в 0.6.23. *) Исправление: утечки сокетов в режиме HTTPS при использовании отложенного accept'а. Спасибо Ben Maurer. *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась в 0.6.23. Изменения в nginx 0.6.24 27.12.2007 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти segmentation fault; ошибка появилась в 0.6.23. Изменения в nginx 0.6.23 27.12.2007 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот параметр используется по умолчанию. *) Изменение: директива open_file_cache_retest переименована в open_file_cache_valid. *) Добавление: директива open_file_cache_min_uses. *) Добавление: модуль ngx_http_gzip_static_module. *) Добавление: директива gzip_disable. *) Добавление: директиву memcached_pass можно использовать внутри блока if. *) Исправление: если внутри одного location'а использовались директивы "memcached_pass" и "if", то в рабочем процессе происходил segmentation fault. *) Исправление: если при использовании директивы satisfy_any on" были заданы директивы не всех модулей доступа, то заданные директивы не проверялись. *) Исправление: параметры, заданные регулярным выражением в директиве valid_referers, не наследовалась с предыдущего уровня. *) Исправление: директива post_action не работала, если запрос завершался с кодом 499. *) Исправление: оптимизация использования 16K буфера для SSL-соединения. Спасибо Ben Maurer. *) Исправление: STARTTLS в режиме SMTP не работал. Спасибо Олегу Мотиенко. *) Исправление: при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry"; ошибка появилась в 0.5.13. Изменения в nginx 0.6.22 19.12.2007 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают значения, скопированные в память, выделенную perl'ом. *) Исправление: если nginx был собран с модулем ngx_http_perl_module, использовался perl до версии 5.8.6 и perl поддерживал потоки, то во время переконфигурации основной процесс аварийно выходил; ошибка появилась в 0.5.9. Спасибо Борису Жмурову. *) Исправление: в методы модуля ngx_http_perl_module могли передаваться неверные результаты выделения в регулярных выражениях. *) Исправление: если метод $r->has_request_body() вызывался для запроса, у которого небольшое тело запроса было уже полностью получено, то в рабочем процессе происходил segmentation fault. *) Исправление: large_client_header_buffers не освобождались перед переходом в состояние keep-alive. Спасибо Олександру Штепе. *) Исправление: в переменной $upstream_addr не записывался последний адрес; ошибка появилась в 0.6.18. *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку; теперь она возвращает ошибку 502, которую можно направить на следующий сервер с помощью "fastcgi_next_upstream invalid_header". *) Исправление: при использовании директивы fastcgi_catch_stderr в основном процессе происходил segmentation fault; ошибка появилась в 0.6.10. Спасибо Manlio Perillo. Изменения в nginx 0.6.21 03.12.2007 *) Изменение: если в значениях переменных директивы proxy_pass используются только IP-адреса, то указывать resolver не нужно. *) Исправление: при использовании директивы proxy_pass c URI-частью в рабочем процессе мог произойти segmentation fault; ошибка появилась в 0.6.19. *) Исправление: если resolver использовался на платформах, не поддерживающих метод kqueue, то nginx выдавал alert "name is out of response". Спасибо Андрею Нигматулину. *) Исправление: При использовании переменной $server_protocol в FastCGI-параметрах и запросе, длина которого была близка к значению директивы client_header_buffer_size, nginx выдавал alert "fastcgi: the request record is too big". *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу nginx возвращал обычный ответ. Изменения в nginx 0.6.20 28.11.2007 *) Исправление: при использовании директивы proxy_pass c URI-частью в рабочем процессе мог произойти segmentation fault; ошибка появилась в 0.6.19. Изменения в nginx 0.6.19 27.11.2007 *) Исправление: версия 0.6.18 не собиралась. Изменения в nginx 0.6.18 27.11.2007 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером процесса добавляет микросекунды на время старта. *) Изменение: в error_log теперь записывается полная строка запроса вместо только URI. *) Добавление: директива proxy_pass поддерживает переменные. *) Добавление: директивы resolver и resolver_timeout. *) Добавление: теперь директива "add_header last-modified ''" удаляет в заголовке ответа строку "Last-Modified". *) Исправление: директива limit_rate не позволяла передавать на полной скорости, даже если был указан очень большой лимит. Изменения в nginx 0.6.17 15.11.2007 *) Добавление: поддержка строки "If-Range" в заголовке запроса. Спасибо Александру Инюхину. *) Исправление: при использовании директивы msie_refresh повторно экранировались уже экранированные символы; ошибка появилась в 0.6.4. *) Исправление: директива autoindex не работала при использовании "alias /". *) Исправление: при использовании подзапросов в рабочем процессе мог произойти segmentation fault. *) Исправление: при использовании SSL и gzip большие ответы могли передаваться не полностью. *) Исправление: если ответ проксированного сервера был версии HTTP/0.9, то переменная $status была равна 0. Изменения в nginx 0.6.16 29.10.2007 *) Изменение: теперь на Linux используется uname(2) вместо procfs. Спасибо Илье Новикову. *) Исправление: если в директиве error_page использовался символ "?", то он экранировался при проксировании запроса; ошибка появилась в 0.6.11. *) Исправление: совместимость с mget. Изменения в nginx 0.6.15 22.10.2007 *) Добавление: совместимость с Cygwin. Спасибо Владимиру Кутакову. *) Добавление: директива merge_slashes. *) Добавление: директива gzip_vary. *) Добавление: директива server_tokens. *) Исправление: nginx не раскодировал URI в команде SSI include. *) Исправление: при использовании переменной в директивах charset или source_charset на старте или во время переконфигурации происходил segmentation fault, *) Исправление: nginx возвращал ошибку 400 на запросы вида "GET http://www.domain.com HTTP/1.0". Спасибо James Oakley. *) Исправление: после перенаправления запроса с телом запроса с помощью директивы error_page nginx пытался снова прочитать тело запроса; ошибка появилась в 0.6.7. *) Исправление: в рабочем процессе происходил segmentation fault, если у сервера, обрабатывающему запрос, не был явно определён server_name; ошибка появилась в 0.6.7. Изменения в nginx 0.6.14 15.10.2007 *) Изменение: теперь по умолчанию команда SSI echo использует кодирование entity. *) Добавление: параметр encoding в команде SSI echo. *) Добавление: директиву access_log можно использовать внутри блока limit_except. *) Исправление: если все сервера апстрима оказывались недоступными, то до восстановления работоспособности у всех серверов вес становился равным одному; ошибка появилась в 0.6.6. *) Исправление: при использовании переменных $date_local и $date_gmt вне модуля ngx_http_ssi_filter_module в рабочем процессе происходил segmentation fault. *) Исправление: при использовании включённом отладочном логе в рабочем процессе мог произойти segmentation fault. Спасибо Андрею Нигматулину. *) Исправление: ngx_http_memcached_module не устанавливал upstream_response_time. Спасибо Максиму Дунину. *) Исправление: рабочий процесс мог зациклиться при использовании memcached. *) Исправление: nginx распознавал параметры "close" и "keep-alive" в строке "Connection" в заголовке запроса только, если они были в нижнем регистре; ошибка появилась в 0.6.11. *) Исправление: sub_filter не работал с пустой строкой замены. *) Исправление: в парсинге sub_filter. Изменения в nginx 0.6.13 24.09.2007 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если использовался autoindex Спасибо Arkadiusz Patyk. Изменения в nginx 0.6.12 21.09.2007 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap и smtp. *) Добавление: параметры конфигурации --without-mail_pop3_module, --without-mail_imap_module и --without-mail_smtp_module. *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля ngx_mail_smtp_module. *) Исправление: wildcard в конце имени сервера не работали; ошибка появилась в 0.6.9. *) Исправление: при использовании разделяемой библиотеки PCRE, расположенной в нестандартном месте, nginx не запускался на Solaris. *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не скрывали строки заголовка ответа с именем больше 32 символов. Спасибо Manlio Perillo. Изменения в nginx 0.6.11 11.09.2007 *) Исправление: счётчик активных соединений всегда рос при использовании почтового прокси-сервера. *) Исправление: если бэкенд возвращал только заголовок ответа при небуферизированном проксировании, то nginx закрывал соединение с бэкендом по таймауту. *) Исправление: nginx не поддерживал несколько строк "Connection" в заголовке запроса. *) Исправление: если в сервере апстрима был задан max_fails, то после первой же неудачной попытки вес сервера навсегда становился равным одному; ошибка появилась в 0.6.6. Изменения в nginx 0.6.10 03.09.2007 *) Добавление: директивы open_file_cache, open_file_cache_retest и open_file_cache_errors. *) Исправление: утечки сокетов; ошибка появилась в 0.6.7. *) Исправление: В строку заголовка ответа "Content-Type", указанную в методе $r->send_http_header(), не добавлялась кодировка, указанная в директиве charset. *) Исправление: при использовании метода /dev/poll в рабочем процессе мог произойти segmentation fault. Изменения в nginx 0.6.9 28.08.2007 *) Исправление: рабочий процесс мог зациклиться при использовании протокола HTTPS; ошибка появилась в 0.6.7. *) Исправление: если сервер слушал на двух адресах или портах, то nginx не запускался при использовании wildcard в конце имени сервера. *) Исправление: директива ip_hash могла неверно помечать сервера как нерабочие. *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8. Изменения в nginx 0.6.8 20.08.2007 *) Изменение: теперь nginx пытается установить директивы worker_priority, worker_rlimit_nofile, worker_rlimit_core, worker_rlimit_sigpending без привилегий root'а. *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче запроса серверу аутентификации почтового прокси-сервера. *) Изменение: теперь nginx экранирует символ "%" в переменной $memcached_key. *) Исправление: при указании относительного пути к конфигурационному файлу в качестве параметра ключа -c nginx определял путь относительно конфигурационного префикса; ошибка появилась в 0.6.6. *) Исправление: nginx не работал на FreeBSD/sparc64. Изменения в nginx 0.6.7 15.08.2007 *) Изменение: теперь пути, указанные в директивах include, auth_basic_user_file, perl_modules, ssl_certificate, ssl_certificate_key и ssl_client_certificate, определяются относительно каталога конфигурационного файла nginx.conf, а не относительно префикса. *) Изменение: параметр --sysconfdir=PATH в configure упразднён. *) Изменение: для обновления на лету версий 0.1.x создан специальный сценарий make upgrade1. *) Добавление: директивы server_name и valid_referers поддерживают регулярные выражения. *) Добавление: директива server в блоке upstream поддерживает параметр backup. *) Добавление: модуль ngx_http_perl_module поддерживает метод $r->discard_request_body. *) Добавление: директива "add_header Last-Modified ..." меняет строку "Last-Modified" в заголовке ответа. *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP отличным от 200, и после этого запроса соединение переходило в состояние keep-alive, то на следующий запрос nginx возвращал 400. *) Исправление: если в директиве auth_http был задан неправильный адрес, то в рабочем процессе происходил segmentation fault. *) Исправление: теперь по умолчанию nginx использует значение 511 для listen backlog на всех платформах, кроме FreeBSD. Спасибо Jiang Hong. *) Исправление: рабочий процесс мог зациклиться, если server в блоке upstream был помечен как down; ошибка появилась в 0.6.6. *) Исправление: sendfilev() в Solaris теперь не используется при передаче тела запроса FastCGI-серверу через unix domain сокет. Изменения в nginx 0.6.6 30.07.2007 *) Добавление: параметр --sysconfdir=PATH в configure. *) Добавление: именованные location'ы. *) Добавление: переменную $args можно устанавливать с помощью set. *) Добавление: переменная $is_args. *) Исправление: равномерное распределение запросов к апстримам с большими весами. *) Исправление: если клиент в почтовом прокси-сервере закрывал соединение, то nginx мог не закрывать соединение с бэкендом. *) Исправление: при использовании одного хоста в качестве бэкендов для протоколов HTTP и HTTPS без явного указания портов, nginx использовал только один порт - 80 или 443. *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и более ранними версиями; ошибка появилась в 0.6.4. Изменения в nginx 0.6.5 23.07.2007 *) Добавление: переменная $nginx_version. Спасибо Николаю Гречуху. *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме IMAP. Спасибо Максиму Дунину. *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме SMTP. Спасибо Максиму Дунину. *) Исправление: теперь nginx экранирует пробел в переменной $memcached_key. *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64. Спасибо Jiang Hong. *) Исправление: незначительных потенциальных ошибок. Спасибо Coverity's Scan. Изменения в nginx 0.6.4 17.07.2007 *) Безопасность: при использовании директивы msie_refresh был возможен XSS. Спасибо Максиму Богуку. *) Изменение: директивы proxy_store и fastcgi_store изменены. *) Добавление: директивы proxy_store_access и fastcgi_store_access. *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun Studio. Спасибо Андрею Нигматулину. *) Изменение: обход ошибки в Sun Studio 12. Спасибо Jiang Hong. Изменения в nginx 0.6.3 12.07.2007 *) Добавление: директивы proxy_store и fastcgi_store. *) Исправление: при использовании директивы auth_http_header в рабочем процессе мог произойти segmentation fault. Спасибо Максиму Дунину. *) Исправление: если использовался метод аутентификации CRAM-MD5, но он не был разрешён, то в рабочем процессе происходил segmentation fault. *) Исправление: при использовании протокола HTTPS в директиве proxy_pass в рабочем процессе мог произойти segmentation fault. *) Исправление: в рабочем процессе мог произойти segmentation fault, если использовался метод eventport. *) Исправление: директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13. Изменения в nginx 0.6.2 09.07.2007 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то nginx передавал клиенту мусор в таких заголовках. Изменения в nginx 0.6.1 17.06.2007 *) Исправление: в парсинге SSI. *) Исправление: при использовании удалённого подзапроса в SSI последующий подзапрос локального файла мог отдаваться клиенту в неверном порядке. *) Исправление: большие включения в SSI, сохранённые во временные файлы, передавались не полностью. *) Исправление: значение perl'овой переменной $$ модуля ngx_http_perl_module было равно номеру главного процесса. Изменения в nginx 0.6.0 14.06.2007 *) Добавление: директивы "server_name", "map", and "valid_referers" поддерживают маски вида "www.example.*". Изменения в nginx 0.5.25 11.06.2007 *) Исправление: nginx не собирался с параметром --without-http_rewrite_module; ошибка появилась в 0.5.24. Изменения в nginx 0.5.24 06.06.2007 *) Безопасность: директива ssl_verify_client не работала, если запрос выполнялся по протоколу HTTP/0.9. *) Исправление: при использовании сжатия часть ответа могла передаваться несжатой; ошибка появилась в 0.5.23. Изменения в nginx 0.5.23 04.06.2007 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS Server Name Indication. *) Добавление: директива fastcgi_catch_stderr. Спасибо Николаю Гречуху, проект OWOX. *) Исправление: на Линуксе в основном процессе происходил segmentation fault, если два виртуальных сервера должны bind()ится к пересекающимся портам. *) Исправление: если nginx был собран с модулем ngx_http_perl_module и perl поддерживал потоки, то во время второй переконфигурации выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed". *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. Изменения в nginx 0.5.22 29.05.2007 *) Исправление: большое тело запроса могло не передаваться бэкенду; ошибка появилась в 0.5.21. Изменения в nginx 0.5.21 28.05.2007 *) Исправление: если внутри сервера описано больше примерно десяти location'ов, то location'ы, заданные с помощью регулярного выражения, могли выполняться не в том, порядке, в каком они описаны. *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться, если 33-тий по счёту или последующий бэкенд упал. Спасибо Антону Поварову. *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог произойти bus error. Спасибо Андрею Нигматулину. *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. Изменения в nginx 0.5.20 07.05.2007 *) Добавление: директива sendfile_max_chunk. *) Добавление: переменные "$http_...", "$sent_http_..." и "$upstream_http_..." можно менять директивой set. *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в рабочем процессе мог произойти segmentation fault. *) Исправление: завершающая строка multipart range ответа передавалась неверно. Спасибо Evan Miller. *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun Studio. Спасибо Андрею Нигматулину. *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris. Спасибо Андрею Нигматулину. Изменения в nginx 0.5.19 24.04.2007 *) Изменение: значение переменной $request_time теперь записывается с точностью до миллисекунд. *) Изменение: метод $r->rflush в модуле ngx_http_perl_module переименован в $r->flush. *) Добавление: переменная $upstream_addr. *) Добавление: директивы proxy_headers_hash_max_size и proxy_headers_hash_bucket_size. Спасибо Володымыру Костырко. *) Исправление: при использовании sendfile и limit_rate на 64-битных платформах нельзя было передавать файлы больше 2G. *) Исправление: при использовании sendfile на 64-битном Linux нельзя было передавать файлы больше 2G. Изменения в nginx 0.5.18 19.04.2007 *) Добавление: модуль ngx_http_sub_filter_module. *) Добавление: переменные "$upstream_http_...". *) Добавление: теперь переменные $upstream_status и $upstream_response_time содержат данные о всех обращениях к апстримам, сделанным до X-Accel-Redirect. *) Исправление: если nginx был собран с модулем ngx_http_perl_module и perl не поддерживал multiplicity, то после первой переконфигурации и после получения любого сигнала в основном процессе происходил segmentation fault; ошибка появилась в 0.5.9. *) Исправление: если perl не поддерживал multiplicity, то после переконфигурации перловый код не работал; ошибка появилась в 0.3.38. Изменения в nginx 0.5.17 02.04.2007 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405. *) Добавление: теперь nginx поддерживает директиву include внутри блока types. *) Исправление: использование переменной $document_root в директиве root и alias запрещено: оно вызывало рекурсивное переполнение стека. *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. *) Исправление: в некоторых случаях некэшируемые переменные (такие, как $uri) возвращали старое закэшированное значение. Изменения в nginx 0.5.16 26.03.2007 *) Исправление: в качестве ключа для хэша в директиве ip_hash не использовалась сеть класса С. Спасибо Павлу Ярковому. *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда был указан charset и строка завершалась символом ";", то в рабочем процессе мог произойти segmentation fault; ошибка появилась в 0.3.50. *) Исправление: ошибки "[alert] zero size buf" при работе с FastCGI-сервером, если тело запроса, записанное во временный файл, было кратно 32K. *) Исправление: nginx не собирался на Solaris без параметра --with-debug; ошибка появилась в 0.5.15. Изменения в nginx 0.5.15 19.03.2007 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное SMTP-проксирование и директивы smtp_auth, smtp_capablities и xclient. Спасибо Антону Южанинову и Максиму Дунину. *) Добавление: теперь keep-alive соединения закрываются сразу же по получении сигнала переконфигурации. *) Изменение: директивы imap и auth переименованы соответственно в mail и pop3_auth. *) Исправление: если использовался метод аутентификации CRAM-MD5 и не был разрешён метод APOP, то в рабочем процессе происходил segmentation fault. *) Исправление: при использовании директивы starttls only в протоколе POP3 nginx разрешал аутентификацию без перехода в режим SSL. *) Исправление: рабочие процессы не выходили после переконфигурации и не переоткрывали логи, если использовался метод eventport. *) Исправление: при использовании директивы ip_hash рабочий процесс мог зациклиться. *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если используются методы eventport или /dev/poll. Изменения в nginx 0.5.14 23.02.2007 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце конфигурационного файла. Изменения в nginx 0.5.13 19.02.2007 *) Добавление: методы COPY и MOVE. *) Исправление: модуль ngx_http_realip_module устанавливал мусор для запросов, переданных по keep-alive соединению. *) Исправление: nginx не работал на 64-битном big-endian Linux. Спасибо Андрею Нигматулину. *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси теперь сразу закрывает соединение, а не по таймауту. *) Исправление: если при использовании метода epoll клиент закрывал преждевременно соединение со своей стороны, то nginx закрывал это соединение только по истечении таймаута на передачу. *) Исправление: nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; ошибка появилась в 0.5.8. Изменения в nginx 0.5.12 12.02.2007 *) Исправление: nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; ошибка появилась в 0.5.8. *) Исправление: при использовании временных файлов в время работы с FastCGI-сервером в рабочем процессе мог произойти segmentation fault; ошибка появилась в 0.5.8. *) Исправление: если переменная $fastcgi_script_name записывалась в лог, то в рабочем процессе мог произойти segmentation fault. *) Исправление: ngx_http_perl_module не собирался на Solaris. Изменения в nginx 0.5.11 05.02.2007 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts. Спасибо Chris McGrath. *) Исправление: ответ был неверным, если запрашивалось несколько диапазонов; ошибка появилась в 0.5.6. *) Исправление: директива create_full_put_path не могла создавать промежуточные каталоги, если не была установлена директива dav_access. Спасибо Evan Miller. *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог записываться код "0". *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог произойти segmentation fault. Изменения в nginx 0.5.10 26.01.2007 *) Исправление: во время обновления исполняемого файла новый процесс не наследовал слушающие сокеты; ошибка появилась в 0.5.9. *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог произойти segmentation fault; ошибка появилась в 0.5.1. Изменения в nginx 0.5.9 25.01.2007 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа использует значение переменной $memcached_key. *) Добавление: переменная $memcached_key. *) Добавление: параметр clean в директиве client_body_in_file_only. *) Добавление: директива env. *) Добавление: директива sendfile работает внутри блока if. *) Добавление: теперь при ошибке записи в access_log nginx записывает сообщение в error_log, но не чаще одного раза в минуту. *) Исправление: директива "access_log off" не всегда запрещала запись в лог. Изменения в nginx 0.5.8 19.01.2007 *) Исправление: если использовалась директива "client_body_in_file_only on" и тело запроса было небольшое, то мог произойти segmentation fault. *) Исправление: происходил segmentation fault, если использовались директивы "client_body_in_file_only on" и "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и делался переход к следующему бэкенду. *) Исправление: если при использовании директивы "proxy_buffering off" соединение с клиентом было неактивно, то оно закрывалось по таймауту, заданному директивой send_timeout; ошибка появилась в 0.4.7. *) Исправление: если при использовании метода epoll клиент закрывал преждевременно соединение со своей стороны, то nginx закрывал это соединение только по истечении таймаута на передачу. *) Исправление: ошибки "[alert] zero size buf" при работе с FastCGI-сервером. *) Исправление ошибок в директиве limit_zone. Изменения в nginx 0.5.7 15.01.2007 *) Добавление: оптимизация использования памяти в ssl_session_cache. *) Исправление ошибок в директивах ssl_session_cache и limit_zone. *) Исправление: на старте или во время переконфигурации происходил segmentation fault, если директивы ssl_session_cache или limit_zone использовались на 64-битных платформах. *) Исправление: при использовании директив add_before_body или add_after_body происходил segmentation fault, если в заголовке ответа нет строки "Content-Type". *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой потоков. Спасибо Дену Иванову. *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc. Изменения в nginx 0.5.6 09.01.2007 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы, кроме GET, HEAD и POST. *) Добавление: модуль ngx_http_limit_zone_module. *) Добавление: переменная $binary_remote_addr. *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и ngx_imap_ssl_module. *) Добавление: метод DELETE поддерживает рекурсивное удаление. *) Исправление: при использовании $r->sendfile() byte-ranges передавались неверно. Изменения в nginx 0.5.5 24.12.2006 *) Изменение: ключ -v больше не выводит информацию о компиляторе. *) Добавление: ключ -V. *) Добавление: директива worker_rlimit_core поддерживает указание размера в K, M и G. *) Исправление: модуль nginx.pm теперь может устанавливаться непривилегированным пользователем. *) Исправление: при использовании методов $r->request_body или $r->request_body_file мог произойти segmentation fault. *) Исправление: ошибок, специфичных для платформы ppc. Изменения в nginx 0.5.4 15.12.2006 *) Добавление: директиву perl можно использовать внутри блока limit_except. *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в заголовке запроса для метода DELETE. *) Исправление: при использовании одного параметра в директиве dav_access nginx мог сообщить об ошибке в конфигурации. *) Исправление: при использовании переменной $host мог произойти segmentation fault; ошибка появилась в 0.4.14. Изменения в nginx 0.5.3 13.12.2006 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->status, $r->log_error и $r->sleep. *) Добавление: метод $r->variable поддерживает переменные, неописанные в конфигурации nginx'а. *) Исправление: метод $r->has_request_body не работал. Изменения в nginx 0.5.2 11.12.2006 *) Исправление: если в директивах proxy_pass использовалось имя, указанное в upstream, то nginx пытался найти IP-адрес этого имени; ошибка появилась в 0.5.1. Изменения в nginx 0.5.1 11.12.2006 *) Исправление: директива post_action могла не работать после неудачного завершения запроса. *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11. Спасибо Bron Gondwana. *) Исправление: при указании в директиве fastcgi_pass имени описанного upstream'а выдавалось сообщение "no port in upstream"; ошибка появилась в 0.5.0. *) Исправление: если в директивах proxy_pass и fastcgi_pass использовались одинаковых имена серверов, но с разными портами, то эти директивы использовали первый описанный порт; ошибка появилась в 0.5.0. *) Исправление: если в директивах proxy_pass и fastcgi_pass использовались unix domain сокеты, то эти директивы использовали первый описанный сокет; ошибка появилась в 0.5.0. *) Исправление: ngx_http_auth_basic_module игнорировал пользователя, если он был указан в последней строке файла паролей и после пароля не было перевода строки, возврата каретки или символа ":". *) Исправление: переменная $upstream_response_time могла быть равна "0.000", хотя время обработки было больше 1 миллисекунды. Изменения в nginx 0.5.0 04.12.2006 *) Изменение: параметры в виде "%name" в директиве log_format больше не поддерживаются. *) Изменение: директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и memcached_upstream_fail_timeout больше не поддерживаются. *) Добавление: директива server в блоке upstream поддерживает параметры max_fails, fail_timeout и down. *) Добавление: директива ip_hash в блоке upstream. *) Добавление: статус WAIT в строке "Auth-Status" в заголовка ответа сервера аутентификации IMAP/POP3 прокси. *) Исправление: nginx не собирался на 64-битных платформах; ошибка появилась в 0.4.14. Изменения в nginx 0.4.14 27.11.2006 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси. *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD, Linux и NetBSD. *) Исправление: ngx_http_perl_module не работал с перлом, собранным с поддержкой потоков; ошибка появилась в 0.3.38. *) Исправление: ngx_http_perl_module не работал корректно, если перл вызывался рекурсивно. *) Исправление: nginx игнорировал имя сервера в строке запроса. *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий процесс мог зациклиться. *) Исправление: при изменении системного времени переменная $upstream_response_time могла быть отрицательной. *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3 прокси не передавался параметр Auth-Login-Attempt. *) Исправление: при ошибке соединения с сервером аутентификации IMAP/POP3 прокси мог произойти segmentation fault. Изменения в nginx 0.4.13 15.11.2006 *) Добавление: директиву proxy_pass можно использовать внутри блока limit_except. *) Добавление: директива limit_except поддерживает все WebDAV методы. *) Исправление: при использовании директивы add_before_body без директивы add_after_body ответ передавался не полностью. *) Исправление: большое тело запроса не принималось, если использовались метод epoll и deferred accept(). *) Исправление: для ответов модуля ngx_http_autoindex_module не выставлялась кодировка; ошибка появилась в 0.3.50. *) Исправление: ошибки "[alert] zero size buf" при работе с FastCGI-сервером; *) Исправление: параметр конфигурации --group= игнорировался. Спасибо Thomas Moschny. *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась в 0.3.50. Изменения в nginx 0.4.12 31.10.2006 *) Добавление: модуль ngx_http_perl_module поддерживает метод $r->variable. *) Исправление: при включении в ответ большого статического файла с помощью SSI ответ мог передаваться не полностью. *) Исправление: nginx не убирал "#fragment" в URI. Изменения в nginx 0.4.11 25.10.2006 *) Добавление: POP3 прокси поддерживает AUTH LOIGN PLAIN и CRAM-MD5. *) Добавление: модуль ngx_http_perl_module поддерживает метод $r->allow_ranges. *) Исправление: при включённой поддержке команды APOP в POP3 прокси могли не работать команды USER/PASS; ошибка появилась в 0.4.10. Изменения в nginx 0.4.10 23.10.2006 *) Добавление: POP3 прокси поддерживает APOP. *) Исправление: при использовании методов select, poll и /dev/poll во время ожидания ответа от сервера аутентификации IMAP/POP3 прокси нагружал процессор. *) Исправление: при использовании переменной $server_addr в директиве map мог произойти segmentation fault. *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges для полных ответов; ошибка появилась в 0.4.7. *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в 0.4.9. Изменения в nginx 0.4.9 13.10.2006 *) Добавление: параметр set в команде SSI include. *) Добавление: модуль ngx_http_perl_module теперь проверяет версию модуля nginx.pm. Изменения в nginx 0.4.8 11.10.2006 *) Исправление: если до команды SSI include с параметром wait выполнялась ещё одна команда SSI include, то параметр wait мог не работать. *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для полных ответов. Спасибо Алексею Ковырину. Изменения в nginx 0.4.7 10.10.2006 *) Добавление: модуль ngx_http_flv_module. *) Добавление: переменная $request_body_file. *) Добавление: директивы charset и source_charset поддерживают переменные. *) Исправление: если до команды SSI include с параметром wait выполнялась ещё одна команда SSI include, то параметр wait мог не работать. *) Исправление: при использовании директивы "proxy_buffering off" или при работе с memcached соединения могли не закрываться по таймауту. *) Исправление: nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64. Изменения в nginx 0.4.6 06.10.2006 *) Исправление: nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64. *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ chunk'ами, если длина ответа в методе $r->headers_out("Content-Length", ...) была задана текстовой строкой. *) Исправление: после перенаправления ошибки с помощью директивы error_page любая директива модуля ngx_http_rewrite_module возвращала эту ошибку; ошибка появилась в 0.4.4. Изменения в nginx 0.4.5 02.10.2006 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась в 0.4.4. Изменения в nginx 0.4.4 02.10.2006 *) Добавление: переменная $scheme. *) Добавление: директива expires поддерживает параметр max. *) Добавление: директива include поддерживает маску "*". Спасибо Jonathan Dance. *) Исправление: директива return всегда изменяла код ответа, перенаправленного директивой error_page. *) Исправление: происходил segmentation fault, если в методе PUT передавалось тело нулевой длины. *) Исправление: при использовании переменных в директиве proxy_redirect редирект изменялся неверно. Изменения в nginx 0.4.3 26.09.2006 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы error_page. *) Добавление: поддержка Solaris 10 event ports. *) Добавление: модуль ngx_http_browser_module. *) Исправление: при перенаправлении ошибки 400 проксированному серверу помощью директивы error_page мог произойти segmentation fault. *) Исправление: происходил segmentation fault, если в директиве proxy_pass использовался unix domain сокет; ошибка появилась в 0.3.47. *) Исправление: SSI не работал с ответами memcached и небуферизированными проксированными ответами. *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio. Изменения в nginx 0.4.2 14.09.2006 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка появилась в 0.4.1. Изменения в nginx 0.4.1 14.09.2006 *) Исправление: совместимость с DragonFlyBSD. Спасибо Павлу Назарову. *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче файлов больше 2G. *) Добавление: теперь на Linux nginx для статических запросов использует флаг O_NOATIME. Спасибо Yusuf Goolamabbas. Изменения в nginx 0.4.0 30.08.2006 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из фазы init module в фазу HTTP postconfiguration. *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не считывается заранее: нужно явно инициировать чтение с помощью метода $r->has_request_body. *) Добавление: модуль ngx_http_perl_module поддерживает код возврата DECLINED. *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку заголовка "Date" для метода PUT. *) Добавление: директива ssi работает внутри блока if. *) Исправление: происходил segmentation fault, если в директиве index использовалась переменные и при этом первое имя индексного файла было без переменных; ошибка появилась в 0.1.29. Изменения в nginx 0.3.61 28.08.2006 *) Изменение: директива tcp_nodelay теперь по умолчанию включена. *) Добавление: директива msie_refresh. *) Добавление: директива recursive_error_pages. *) Исправление: директива rewrite возвращала неправильный редирект, если редирект включал в себя выделенные закодированные символы из оригинального URI. Изменения в nginx 0.3.60 18.08.2006 *) Исправление: во время перенаправления ошибки рабочий процесс мог зациклиться; ошибка появилась в 0.3.59. Изменения в nginx 0.3.59 16.08.2006 *) Добавление: теперь можно делать несколько перенаправлений через директиву error_page. *) Исправление: директива dav_access не поддерживала три параметра. *) Исправление: директива error_page не изменяла строку "Content-Type" после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась в 0.3.58. Изменения в nginx 0.3.58 14.08.2006 *) Добавление: директива error_page поддерживает переменные. *) Изменение: теперь на Linux используется интерфейс procfs вместо sysctl. *) Изменение: теперь при использовании "X-Accel-Redirect" строка "Content-Type" наследуется из первоначального ответа. *) Исправление: директива error_page не перенаправляла ошибку 413. *) Исправление: завершающий "?" не удалял старые аргументы, если в переписанном URI не было новых аргументов. *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT. Изменения в nginx 0.3.57 09.08.2006 *) Добавление: переменная $ssl_client_serial. *) Исправление: в операторе "!-e" в директиве if. Спасибо Андриану Буданцову. *) Исправление: при проверке клиентского сертификата nginx не передавал клиенту информацию о требуемых сертификатах. *) Исправление: переменная $document_root не поддерживала переменные в директиве root. Изменения в nginx 0.3.56 04.08.2006 *) Добавление: директива dav_access. *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e", "!-e", "-x" и "!-x". *) Исправление: при записи в access_log некоторых передаваемых клиенту строк заголовков происходил segmentation fault, если запрос возвращал редирект. Изменения в nginx 0.3.55 28.07.2006 *) Добавление: параметр stub в команде SSI include. *) Добавление: команда SSI block. *) Добавление: скрипт unicode2nginx добавлен в contrib. *) Исправление: если root был задан только переменной, то корень задавался относительно префикса сервера. *) Исправление: если в запросе был "//" или "/.", и после этого закодированные символы в виде "%XX", то проксируемый запрос передавался незакодированным. *) Исправление: метод $r->header_in("Cookie") модуля ngx_http_perl_module теперь возвращает все строки "Cookie" в заголовке запроса. *) Исправление: происходил segmentation fault, если использовался "client_body_in_file_only on" и делался переход к следующему бэкенду. *) Исправление: при некоторых условиях во время переконфигурации коды символов внутри директивы charset_map могли считаться неверными; ошибка появилась в 0.3.50. Изменения в nginx 0.3.54 11.07.2006 *) Добавление: nginx теперь записывает в лог информацию о подзапросах. *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и memcached_next_upstream поддерживают параметр off. *) Добавление: директива debug_connection поддерживает запись адресов в формате CIDR. *) Исправление: при перекодировании ответа проксированного сервера или сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не полностью. *) Исправление: переменная $upstream_response_time содержала время только первого обращения к бэкенду. *) Исправление: nginx не собирался на платформе amd64; ошибка появилась в 0.3.53. Изменения в nginx 0.3.53 07.07.2006 *) Изменение: директива add_header добавляет строки в ответы с кодом 204, 301 и 302. *) Добавление: директива server в блоке upstream поддерживает параметр weight. *) Добавление: директива server_name поддерживает маску "*". *) Добавление: nginx поддерживает тело запроса больше 2G. *) Исправление: если при использовании "satisfy_any on" клиент успешно проходил аутентификацию, в лог всё равно записалоcь сообщение "access forbidden by rule". *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код 409. *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал ошибку, nginx продолжал проксирование. Изменения в nginx 0.3.52 03.07.2006 *) Изменение: восстановлено поведение модуля ngx_http_index_module для запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт ошибку 405. *) Исправление: при использовании ограничения скорости рабочий процесс мог зациклиться; ошибка появилась в 0.3.37. *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку "unknown charset", даже если перекодировка не требовалась; ошибка появилась в 0.3.50. *) Исправление: если в результате запроса PUT возвращался код 409, то временный файл не удалялся. Изменения в nginx 0.3.51 30.06.2006 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<"; ошибка появилась в 0.3.50. Изменения в nginx 0.3.50 28.06.2006 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors переименованы соответственно в proxy_intercept_errors и fastcgi_intercept_errors. *) Добавление: модуль ngx_http_charset_module поддерживает перекодирование из однобайтных кодировок в UTF-8 и обратно. *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Charset" в ответе бэкенда. *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался, только если также использовался символ "$". *) Исправление: при некоторых условиях в SSI после вставки могла быть добавлена строка "