Изменения в nginx 0.1.32 19.05.2005 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не передавались аргументы; ошибка появилась в 0.1.29. *) Добавление: директива if поддерживает выделения в регулярных выражениях. *) Добавление: директива set поддерживает переменные и выделения из регулярных выражений. *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка X-Accel-Redirect в ответе бэкенда. Изменения в nginx 0.1.31 16.05.2005 *) Исправление: при использовании SSL ответ мог передаваться не до конца. *) Исправление: ошибки при обработке SSI в ответе, полученного от FastCGI-сервера. *) Исправление: ошибки при использовании SSI и сжатия. *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка появилась в 0.1.30. Изменения в nginx 0.1.30 14.05.2005 *) Исправление: при использовании SSI рабочий процесс мог зациклиться. *) Исправление: при использовании SSL ответ мог передаваться не до конца. *) Исправление: если длина части ответа, полученного за один раз от проксируемого или FastCGI сервера была равна 500 байт, то nginx возвращал код ответа 500; в режиме прокси ошибка появилась только в 0.1.29. *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю параметрами. *) Добавление: директива return может возвращать код ответа 204. *) Добавление: директива ignore_invalid_headers. Изменения в nginx 0.1.29 12.05.2005 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include virtual. *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду вида 'if expr="$NAME"' и команды else и endif. Допускается только один уровень вложенности. *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные DATE_LOCAL и DATE_GMT и команду config timefmt. *) Добавление: директива ssi_ignore_recycled_buffers. *) Исправление: если переменная QUERY_STRING не была определена, то в команде echo не ставилось значение по умолчанию. *) Изменение: модуль ngx_http_proxy_module полностью переписан. *) Добавление: директивы proxy_redirect, proxy_pass_request_headers, proxy_pass_request_body и proxy_method. *) Добавление: директива proxy_set_header. Директива proxy_x_var упразднена и должна быть заменена директивой proxy_set_header. *) Изменение: директива proxy_preserve_host упразднена и должна быть заменена директивами "proxy_set_header Host $host" и "proxy_redirect off" или директивой "proxy_set_header Host $host:$proxy_port" и соответствующими ей директивами proxy_redirect. *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть заменена директивой "proxy_set_header X-Real-IP $remote_addr". *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна быть заменена директивой "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for". *) Изменение: директива proxy_set_x_url упразднена и должна быть заменена директивой "proxy_set_header X-URL http://$host:$server_port$request_uri". *) Добавление: директива fastcgi_param. *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params упразднены и должны быть замены директивами fastcgi_param. *) Добавление: директива index может использовать переменные. *) Добавление: директива index может быть указана на уровне http и server. *) Изменение: только последний параметр в директиве index может быть абсолютным. *) Добавление: в директиве rewrite могут использоваться переменные. *) Добавление: директива internal. *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER. *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса клиента и ответа бэкенда. *) Исправление: если бэкенд долго не передавал ответ и send_timeout был меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408. *) Исправление: если бэкенд передавал неверную строку в заголовке ответа, то происходил segmentation fault; ошибка появилась в 0.1.26. *) Исправление: при использовании отказоустойчивой конфигурации в FastCGI мог происходить segmentation fault. *) Исправление: директива expires не удаляла уже установленные строки заголовка "Expires" и "Cache-Control". *) Исправление: nginx не учитывал завершающую точку в строке заголовка запроса "Host". *) Исправление: модуль ngx_http_auth_module не работал на Linux. *) Исправление: директива rewrite неверно работала, если в запросе присутствовали аргументы. *) Исправление: nginx не собирался на MacOS X. Изменения в nginx 0.1.28 08.04.2005 *) Исправление: при проксировании больших файлов nginx сильно нагружал процессор. *) Исправление: nginx не собирался gcc 4.0 на Linux. Изменения в nginx 0.1.27 28.03.2005 *) Добавление: параметр blocked в директиве valid_referers. *) Изменение: ошибки обработки заголовка запроса теперь записываются на уровне info, в лог также записывается имя сервера и строки заголовка запроса "Host" и "Referer". *) Изменение: при записи ошибок в лог записывается также строка заголовка запроса "Host". *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка символов "://" в URI, введённая в версии 0.1.11, теперь упразднена. *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан параметр конфигурации --without-ngx_http_auth_basic_module. Изменения в nginx 0.1.26 22.03.2005 *) Изменение: неверные строки заголовка, переданные клиентом, теперь игнорируется и записываются в error_log на уровне info. *) Изменение: при записи ошибок в лог записывается также имя сервера, при обращении к которому произошла ошибка. *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic и auth_basic_user_file. Изменения в nginx 0.1.25 19.03.2005 *) Исправление: nginx не работал на Linux parisc. *) Добавление: nginx теперь не запускается под FreeBSD, если значение sysctl kern.ipc.somaxconn слишком большое. *) Исправление: если модуль ngx_http_index_module делал внутреннее перенаправление запроса в модули ngx_http_proxy_module или ngx_http_fastcgi_module, то файл индекса не закрывался после обслуживания запроса. *) Добавление: директива proxy_pass может использоваться в location, заданных регулярным выражением. *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает условия вида "if ($HTTP_USER_AGENT ~ MSIE)". *) Исправление: nginx очень медленно запускался при большом количестве адресов и использовании текстовых значений в директиве geo. *) Изменение: имя переменной в директиве geo нужно указывать, как $name. Прежний вариант без "$" пока работает, но вскоре будет убран. *) Добавление: параметр лога "%{VARIABLE}v". *) Добавление: директива "set $name value". *) Исправление: совместимость с gcc 4.0. *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS. Изменения в nginx 0.1.24 04.03.2005 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные QUERY_STRING и DOCUMENT_URI. *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404 на существующий каталог, если этот каталог был указан как alias. *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал при больших ответах. *) Исправление: отсутствие строки заголовка "Referer" всегда считалось правильным referrer'ом. Изменения в nginx 0.1.23 01.03.2005 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi, ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'. *) Добавление: параметр лога %request_time. *) Добавление: если запрос пришёл без строки заголовка "Host", то директива proxy_preserve_host устанавливает в качестве этого заголовка первое имя сервера из директивы server_name. *) Исправление: nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc; ошибка появилась в 0.1.22. *) Исправление: модуль ngx_http_autoindex_module теперь показывает информацию не о символическом линке, а о файле или каталоге, на который он указывает. *) Исправление: если клиенту ничего не передавалось, то параметр %apache_length записывал в лог отрицательную длину заголовка ответа. Изменения в nginx 0.1.22 22.02.2005 *) Исправление: модуль ngx_http_stub_status_module показывал неверную статистику для обработанных соединений, если использовалось проксирование или FastCGI-сервер. *) Исправление: на Linux и Solaris установочные пути были неверно заключены в кавычки; ошибка появилась в 0.1.21. Изменения в nginx 0.1.21 22.02.2005 *) Исправление: модуль ngx_http_stub_status_module показывал неверную статистику при использовании метода rtsig или при использовании нескольких рабочих процессов на SMP машине. *) Исправление: nginx не собирался компилятором icc под Линуксом или если библиотека zlib-1.2.x собиралась из исходных текстов. *) Исправление: nginx не собирался под NetBSD 2.0. Изменения в nginx 0.1.20 17.02.2005 *) Добавление: новые параметры script_filename и remote_port в директиве fastcgi_params. *) Исправление: неправильно обрабатывался поток stderr от FastCGI-сервера. Изменения в nginx 0.1.19 16.02.2005 *) Исправление: если в запросе есть нуль, то для локальных запросов теперь возвращается ошибка 404. *) Исправление: nginx не собирался под NetBSD 2.0. *) Исправление: во время чтения тела запроса клиента в SSL соединении мог произойти таймаут. Изменения в nginx 0.1.18 09.02.2005 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events и devpoll_changes значения по умолчанию уменьшены с 512 до 32. *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не наследовались. *) Исправление: в директиве rewrite, возвращающей редирект, аргументы присоединялись к URI через символ "&" вместо "?". *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во включённом файле игнорировались. *) Добавление: модуль ngx_http_stub_status_module. *) Исправление: неизвестный формат лог-файла в директиве access_log вызывал segmentation fault. *) Добавление: новый параметр document_root в директиве fastcgi_params. *) Добавление: директива fastcgi_redirect_errors. *) Добавление: новый модификатор break в директиве rewrite позволяет прекратить цикл rewrite/location и устанавливает текущую конфигурацию для запроса. Изменения в nginx 0.1.17 03.02.2005 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь можно делать редиректы, возвращать коды ошибок и проверять переменные и рефереры. Эти директивы можно использовать внутри location. Директива redirect упразднена. *) Добавление: модуль ngx_http_geo_module. *) Добавление: директивы proxy_set_x_var и fastcgi_set_var. *) Исправление: конфигурация location с модификатором "=" могла использоваться в другом location. *) Исправление: правильный тип ответа выставлялся только для запросов, у которых в расширении были только маленькие буквы. *) Исправление: если для location установлен proxy_pass или fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась на статическую страницу, то происходил segmentation fault. *) Исправление: если в проксированном ответе в заголовке "Location" передавался относительный URL, то к нему добавлялось имя хоста и слэш; ошибка появилась в 0.1.14. *) Исправление: на Linux в лог не записывался текст системной ошибки. Изменения в nginx 0.1.16 25.01.2005 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD выдавался завершающий chunk. *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если директива keepalive_timeout запрещала использование keep-alive. *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали segmentation fault. *) Исправление: при использовании SSL сжатый ответ мог передаваться не до конца. *) Исправление: опции TCP_NODELAY, TCP_NOPSUH и TCP_CORK, специфичные для TCP сокетов, не используются для unix domain сокетов. *) Добавление: директива rewrite поддерживает перезаписывание аргументов. *) Исправление: на запрос POST с заголовком "Content-Length: 0" возвращался ответ 400; ошибка появилась в 0.1.14. Изменения в nginx 0.1.15 19.01.2005 *) Исправление: ошибка соединения с FastCGI-сервером вызывала segmentation fault. *) Исправление: корректная обработка регулярного выражения, в котором число выделенных частей не совпадает с числом подстановок. *) Добавление: location, который передаётся FastCGI-серверу, может быть задан с помощью регулярного выражения. *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с аргументами и в том виде, в котором был получен от клиента. *) Исправление: для использования регулярных выражений в location нужно было собирать nginx вместе с ngx_http_rewrite_module. *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании директивы "proxy_preserve_host on" в заголовке "Host" указывался также порт 80; ошибка появилась в 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. Изменения в nginx 0.1.14 18.01.2005 *) Добавление: параметры автоконфигурации --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и --http-fastcgi-temp-path=PATH *) Изменение: имя каталога с временными файлами, содержащие тело запроса клиента, задаётся директивой client_body_temp_path, по умолчанию /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. *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в 0.1.3. *) Изменение: в директиве proxy_pass нужно обязательно указывать URI после имени хоста. *) Изменение: если в URI встречался символ %3F, то он считался началом строки аргументов. *) Добавление: поддержка unix domain сoкетов в модуле ngx_http_proxy_module. *) Добавление: директивы ssl_engine и ssl_ciphers. Спасибо Сергею Скворцову за SSL-акселератор. Изменения в nginx 0.1.13 21.12.2004 *) Добавление: директивы server_names_hash и server_names_hash_threshold. *) Исправление: имена *.domain.tld в директиве server_name не работали. *) Исправление: параметр лога %request_length записывал неверную длину. Изменения в nginx 0.1.12 06.12.2004 *) Добавление: параметр лога %request_length. *) Исправление: при использовании /dev/poll, select и poll на платформах, где возможны ложные срабатывания указанных методов, могли быть длительные задержки при обработке запроса по keep-alive соединению. Наблюдалось по крайней мере на Solaris с использованием /dev/poll. *) Исправление: директива send_lowat игнорируется на Linux, так как Linux не поддерживает опцию SO_SNDLOWAT. Изменения в nginx 0.1.11 02.12.2004 *) Добавление: директива worker_priority. *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе влияют на передачу ответа. *) Исправление: nginx не вызывал initgroups(). Спасибо Андрею Ситникову и Андрею Нигматулину. *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в байтах. *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в каталоге есть битый symlink. *) Исправление: файлы больше 4G не передавались с использованием sendfile. *) Исправление: если бэкенд резолвился в несколько адресов и при ожидании от него ответа происходила ошибка, то процесс зацикливался. *) Исправление: при использовании метода /dev/poll рабочий процесс мог завершиться с сообщением "unknown cycle". *) Исправление: ошибки "close() channel failed". *) Исправление: автоматическое определение групп nobody и nogroup. *) Исправление: директива send_lowat не работала на Linux. *) Исправление: если в конфигурации не было раздела events, то происходил segmentation fault. *) Исправление: nginx не собирался под OpenBSD. *) Исправление: двойные слэшы в "://" в URI превращались в ":/". Изменения в nginx 0.1.10 26.11.2004 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../" или "%XX", то терялся последний символ в строке запроса; ошибка появилась в 0.1.9. *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux не работало. Изменения в nginx 0.1.9 25.11.2004 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то проксируемый запрос передавался без аргументов. *) Исправление: при сжатии больших ответов иногда они передавались не полностью. *) Исправление: не передавались файлы больше 2G на Linux, неподдерживающем sendfile64(). *) Исправление: на Linux при конфигурации сборки нужно было обязательно использовать параметр --with-poll_module; ошибка появилась в 0.1.8. Изменения в nginx 0.1.8 20.11.2004 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов. *) Добавление: модификатор "^~" в директиве location. *) Добавление: директива proxy_max_temp_file_size. Изменения в nginx 0.1.7 12.11.2004 *) Исправление: при использовании sendfile, если передаваемый файл менялся, то мог произойти segmentation fault на FreeBSD; ошибка появилась в 0.1.5. Изменения в nginx 0.1.6 11.11.2004 *) Исправление: при некоторых комбинациях директив location c регулярными выражениями использовалась конфигурация не из того location. Изменения в nginx 0.1.5 11.11.2004 *) Исправление: на Solaris и Linux могло быть очень много сообщений "recvmsg() returned not enough data". *) Исправление: в режиме прокси без использования sendfile на Solaris возникала ошибка "writev() failed (22: Invalid argument)". На других платформах, не поддерживающих sendfile, процесс зацикливался. *) Исправление: при использовании sendfile в режиме прокси на Solaris возникал segmentation fault. *) Исправление: segmentation fault на Solaris. *) Исправление: обновление исполняемого файла на лету не работало на Linux. *) Исправление: в списке файлов, выдаваемом модулем ngx_http_autoindex_module, не перекодировались пробелы, кавычки и знаки процента. *) Изменение: уменьшение операций копирования. *) Добавление: директива userid_p3p. Изменения в nginx 0.1.4 26.10.2004 *) Исправление: ошибка в модуле ngx_http_autoindex_module. Изменения в nginx 0.1.3 25.10.2004 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex. *) Добавление: директива proxy_set_x_url. *) Исправление: модуль проксировании мог привести к зацикливанию, если не использовался sendfile. Изменения в nginx 0.1.2 21.10.2004 *) Добавление: параметры --user=USER, --group=GROUP и --with-ld-opt=OPTIONS в configure. *) Добавление: директива server_name поддерживает *.domain.tld. *) Исправление: улучшена переносимость на неизвестные платформы. *) Исправление: нельзя переконфигурировать nginx, если конфигурационный файл указан в командной строке; ошибка появилась в 0.1.1. *) Исправление: модуль проксировании мог привести к зацикливанию, если не использовался sendfile. *) Исправление: при использовании sendfile текст ответа не перекодировался согласно директивам модуля charset; ошибка появилась в 0.1.1. *) Исправление: очень редкая ошибка при обработке kqueue. *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при проксировании. Изменения в nginx 0.1.1 11.10.2004 *) Добавление: директива gzip_types. *) Добавление: директива tcp_nodelay. *) Добавление: директива send_lowat работает не только на платформах, поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих SO_SNDLOWAT. *) Добавление: эмуляция setproctitle() для Linux и Solaris. *) Исправление: ошибка при переписывании заголовка "Location" при проксировании. *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к зацикливанию. *) Исправление: ошибки в модуле /dev/poll. *) Исправление: при проксировании и использовании временных файлов ответы портились. *) Исправление: бэкенду передавались запросы с неперекодированными символами. *) Исправление: на Linux 2.4 при конфигурации сборки нужно было обязательно использовать параметр --with-poll_module. Изменения в nginx 0.1.0 04.10.2004 *) Первая публично доступная версия.