Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

5727 lines (3501 sloc) 303.067 kB
Изменения в nginx 1.1.11 12.12.2011
*) Добавление: параметр so_keepalive в директиве listen.
Спасибо Всеволоду Стахову.
*) Добавление: параметр if_not_empty в директивах
fastcgi/scgi/uwsgi_param.
*) Добавление: переменная $https.
*) Добавление: директива proxy_redirect поддерживает переменные в первом
параметре.
*) Добавление: директива proxy_redirect поддерживает регулярные
выражения.
*) Исправление: переменная $sent_http_cache_control могла содержать
неверное значение при использовании директивы expires.
Спасибо Yichun Zhang.
*) Исправление: директива read_ahead могла не работать при использовании
совместно с try_files и open_file_cache.
*) Исправление: если в параметре inactive директивы proxy_cache_path
было указано малое время, в рабочем процессе мог произойти
segmentation fault.
*) Исправление: ответы из кэша могли зависать.
Изменения в nginx 1.1.10 30.11.2011
*) Исправление: при использовании AIO на Linux в рабочем процессе
происходил segmentation fault; ошибка появилась в 1.1.9.
Изменения в nginx 1.1.9 28.11.2011
*) Изменение: теперь двойные кавычки экранируется при выводе
SSI-командой echo.
Спасибо Зауру Абасмирзоеву.
*) Добавление: параметр valid в директиве resolver. По умолчанию теперь
используется TTL, возвращённый DNS-сервером.
Спасибо Кириллу Коринскому.
*) Исправление: nginx мог перестать отвечать, если рабочий процесс
завершался аварийно.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалось SNI; ошибка появилась в 1.1.2.
*) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
Спасибо Александру Усову.
*) Исправление: сигнал SIGWINCH переставал работать после первого
обновления исполняемого файла; ошибка появилась в 1.1.1.
*) Исправление: теперь ответы бэкендов, длина которых не соответствует
заголовку Content-Length, не кэширутся.
*) Исправление: в директиве scgi_param при использовании составных
параметров.
*) Исправление: в методе epoll.
Спасибо Yichun Zhang.
*) Исправление: в модуле ngx_http_flv_module.
Спасибо Piotr Sikora.
*) Исправление: в модуле ngx_http_mp4_module.
*) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
заголовке Host.
*) Исправление: директивы add_header и expires не работали для ответов с
кодом 206, если запрос проксировался.
*) Исправление: nginx не собирался на FreeBSD 10.
*) Исправление: nginx не собирался на AIX.
Изменения в nginx 1.1.8 14.11.2011
*) Изменение: модуль ngx_http_limit_zone_module переименован в
ngx_http_limit_conn_module.
*) Изменение: директива limit_zone заменена директивой limit_conn_zone с
новым синтаксисом.
*) Добавление: поддержка ограничения по нескольким limit_conn на одном
уровне.
*) Добавление: директива image_filter_sharpen.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если resolver получил большой DNS-ответ.
Спасибо Ben Hawkes.
*) Исправление: в вычислении ключа для кэширования, если использовалась
внутренняя реализация MD5; ошибка появилась в 1.0.4.
*) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
заголовке запроса клиента могли передаваться бэкенду при кэшировании;
или не передаваться при выключенном кэшировании, если кэширование
было включено в другой части конфигурации.
*) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
"Content-Length" в заголовке ответа, использовался аргумент start.
Спасибо Piotr Sikora.
Изменения в nginx 1.1.7 31.10.2011
*) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
Спасибо Кириллу Коринскому.
*) Исправление: на старте или во время переконфигурации происходил
segmentation fault, если директива ssl использовалась на уровне http
и не был указан ssl_certificate.
*) Исправление: уменьшено потребление памяти при проксировании больших
файлов, если они буферизировались на диск.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалась директива "proxy_http_version 1.1".
*) Исправление: в директиве "expires @time".
Изменения в nginx 1.1.6 17.10.2011
*) Изменение во внутреннем API: теперь при внутреннем редиректе в
именованный location контексты модулей очищаются.
По запросу Yichun Zhang.
*) Изменение: теперь если сервер, описанный в блоке upstream, был
признан неработающим, то после истечения fail_timeout на него будет
отправлен только один запрос; сервер будет считаться работающим, если
успешно ответит на этот запрос.
*) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
\xXX.
*) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
X-Accel-Charset.
*) Добавление: уменьшение потребления памяти при использовании SSL.
*) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
Спасибо Алексею Куцу.
*) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
уровне server, применялись повторно, если для запроса не находилось
ни одного location'а.
*) Исправление: при использовании "aio sendfile" могла происходить
утечка сокетов.
*) Исправление: при использовании файлового AIO соединения с быстрыми
клиентами могли быть закрыты по истечению send_timeout.
*) Исправление: в модуле ngx_http_autoindex_module.
*) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
32-битных платформах.
Изменения в nginx 1.1.5 05.10.2011
*) Добавление: директивы uwsgi_buffering и scgi_buffering.
Спасибо Peter Smit.
*) Исправление: при использовании proxy_cache_bypass могли быть
закэшированы некэшируемые ответы.
Спасибо John Ferlito.
*) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
HTTP/1.1.
*) Исправление: закэшированные ответы с пустым телом возвращались
некорректно; ошибка появилась в 0.8.31.
*) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
некорректны; ошибка появилась в 0.8.32.
*) Исправление: в директиве return.
*) Исправление: при использовании директивы "ssl_session_cache builtin"
происходил segmentation fault; ошибка появилась в 1.1.1.
Изменения в nginx 1.1.4 20.09.2011
*) Добавление: модуль ngx_http_upstream_keepalive.
*) Добавление: директива proxy_http_version.
*) Добавление: директива fastcgi_keep_conn.
*) Добавление: директива worker_aio_requests.
*) Исправление: если nginx был собран с файловым AIO, он не мог
запускаться на Linux без поддержки AIO.
*) Исправление: в обработке ошибок при работе с Linux AIO.
Спасибо Hagai Avrahami.
*) Исправление: уменьшено потребление памяти для долгоживущих запросов.
*) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
MP4-атом co64.
Изменения в nginx 1.1.3 14.09.2011
*) Добавление: модуль ngx_http_mp4_module.
*) Исправление: в Linux AIO, используемым совместно с open_file_cache.
*) Исправление: open_file_cache не обновлял информацию о файле, если
файл был изменён не атомарно.
*) Исправление: nginx не собирался на MacOSX 10.7.
Изменения в nginx 1.1.2 05.09.2011
*) Изменение: теперь, если суммарный размер всех диапазонов больше
размера исходного ответа, то nginx возвращает только исходный ответ,
не обрабатывая диапазоны.
*) Добавление: директива max_ranges.
*) Исправление: директивы ssl_verify_client, ssl_verify_depth и
ssl_prefer_server_cipher могли работать некорректно, если
использовался SNI.
*) Исправление: в директивах proxy/fastcgi/scgi/
uwsgi_ignore_client_abort.
Изменения в nginx 1.1.1 22.08.2011
*) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
число файлов, указанное в параметре load_files, либо работает не
дольше времени, указанного в параметре loader_threshold.
*) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
*) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
на Solaris.
Спасибо Денису Иванову.
*) Добавление: теперь на NetBSD поддерживаются accept фильтры.
*) Исправление: nginx не собирался на Linux 3.0.
*) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
появилась в 1.1.0.
*) Исправление: обработка тела запроса могла быть неверной, если клиент
использовал pipelining.
*) Исправление: в директиве request_body_in_single_buf.
*) Исправление: в директивах proxy_set_body и proxy_pass_request_body
при использовании SSL-соединения с бэкендом.
*) Исправление: nginx нагружал процессор, если все серверы в upstream'е
были помечены флагом down.
*) Исправление: при переконфигурации мог произойти segmentation fault,
если в предыдущей конфигурации был определён, но не использовался
ssl_session_cache.
*) Исправление: при использовании большого количества backup-серверов в
рабочем процессе мог произойти segmentation fault.
*) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
произойти segmentation fault; ошибка появилась в 0.8.40.
Изменения в nginx 1.1.0 01.08.2011
*) Добавление: уменьшение времени работы загрузчика кэша.
*) Добавление: параметры loader_files, loader_sleep и loader_threshold
директив proxy/fastcgi/scgi/uwsgi_cache_path.
*) Добавление: уменьшение времени загрузки конфигураций с большим
количеством HTTPS серверов.
*) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
Спасибо Adrian Kotelba.
*) Добавление: директива lingering_close.
Спасибо Максиму Дунину.
*) Исправление: закрытия соединения для pipelined-запросов.
Спасибо Максиму Дунину.
*) Исправление: nginx не запрещал сжатие при получении значения
"gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
*) Исправление: таймаута при небуферизированном проксировании.
Спасибо Максиму Дунину.
*) Исправление: утечки памяти при использовании переменных в директиве
proxy_pass при работе с бэкендом по HTTPS.
Спасибо Максиму Дунину.
*) Исправление: в проверке параметра директивы proxy_pass, заданного
переменными.
Спасибо Lanshun Zhou.
*) Исправление: SSL не работал на QNX.
Спасибо Максиму Дунину.
*) Исправление: SSL модули не собирались gcc 4.6 без параметра
--with-debug.
Изменения в nginx 1.0.5 19.07.2011
*) Изменение: теперь по умолчанию используются следующие шифры SSL:
"HIGH:!aNULL:!MD5".
Спасибо Rob Stradling.
*) Добавление: директивы referer_hash_max_size и
referer_hash_bucket_size.
Спасибо Witold Filipczyk.
*) Добавление: переменная $uid_reset.
*) Исправление: при использовании кэширования в рабочем процессе мог
произойти segmentation fault.
Спасибо Lanshun Zhou.
*) Исправление: при использовании кэширования рабочие процессы могли
зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
Спасибо Максиму Дунину.
*) Исправление: сообщения "stalled cache updating".
Спасибо Максиму Дунину.
Изменения в nginx 1.0.4 01.06.2011
*) Изменение: теперь в регулярных выражениях в директиве map можно
задать чувствительность к регистру с помощью префиксов "~" и "~*".
*) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
на Linux.
Спасибо Денису Латыпову.
*) Исправление: сообщения "stalled cache updating".
*) Исправление: nginx не собирался с параметром
--without-http_auth_basic_module; ошибка появилась в 1.0.3.
Изменения в nginx 1.0.3 25.05.2011
*) Добавление: директива auth_basic_user_file поддерживает шифрование
пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
Спасибо Максиму Дунину.
*) Добавление: директива geoip_org и переменная $geoip_org.
Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
*) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
поддерживают адреса IPv4, отображённые на IPv6 адреса.
*) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
рабочем процессе происходил segmentation fault, если директивы access
или deny были определены только для адресов IPv6; ошибка появилась в
0.8.22.
*) Исправление: закэшированный ответ мог быть испорчен, если значения
директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
Изменения в nginx 1.0.2 10.05.2011
*) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
*) Исправление: в работе параметра rotate директивы image_filter.
Спасибо Adam Bocim.
*) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
Изменения в nginx 1.0.1 03.05.2011
*) Изменение: теперь директива split_clients использует алгоритм
MurmurHash2 из-за лучшего распределения.
Спасибо Олегу Мамонтову.
*) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
ложными значениями.
Спасибо Максиму Дунину.
*) Изменение: теперь по умолчанию nginx использует значение 511 для
listen backlog на Linux.
*) Добавление: переменные $upstream_... можно использовать в SSI и
перловом модулях.
*) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
Спасибо Олегу Мамонтову.
*) Исправление: при парсинге неправильного IPv4 адреса мог произойти
segmentation fault; ошибка появилась в 0.8.22.
Спасибо Максиму Дунину.
*) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
*) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
появилась в 0.9.3.
Спасибо Dagobert Michelsen.
*) Исправление: переменная $request_time имела неверные значения, если
использовались подзапросы; ошибка появилась в 0.8.47.
Спасибо Игорю А. Валькову.
Изменения в nginx 1.0.0 12.04.2011
*) Исправление: cache manager мог нагружать процессор после
переконфигурации.
Спасибо Максиму Дунину.
*) Исправление: директива "image_filter crop" неправильно работала в
сочетании с "image_filter rotate 180".
*) Исправление: директива "satisfy any" запрещала выдачу
пользовательской страницы для 401 кода.
Изменения в nginx 0.9.7 04.04.2011
*) Добавление: теперь соединения в состоянии keepalive могут быть
закрыты преждевременно, если у воркера нет свободных соединений.
Спасибо Максиму Дунину.
*) Добавление: параметр rotate директивы image_filter.
Спасибо Adam Bocim.
*) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
upstream.
Изменения в nginx 0.9.6 21.03.2011
*) Добавление: директива map поддерживает регулярные выражения в
качестве значения первого параметра.
*) Добавление: переменная $time_iso8601 для access_log.
Спасибо Michael Lustfield.
Изменения в nginx 0.9.5 21.02.2011
*) Изменение: теперь по умолчанию nginx использует значение -1 для
listen backlog на Linux.
Спасибо Андрею Нигматулину.
*) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
Спасибо Денису Латыпову.
*) Исправление: исправление в умолчательной директиве proxy_redirect,
если в директиве proxy_pass не был описан URI.
Спасибо Максиму Дунину.
*) Исправление: директива error_page не работала с нестандартными кодами
ошибок; ошибка появилась в 0.8.53.
Спасибо Максиму Дунину.
Изменения в nginx 0.9.4 21.01.2011
*) Добавление: директива server_name поддерживает переменную $hostname.
*) Добавление: 494 код для ошибки "Request Header Too Large".
Изменения в nginx 0.9.3 13.12.2010
*) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
то выделения в регулярных выражениях в директиве server_name не
работали.
*) Исправление: nginx не собирался под Solaris; ошибка появилась в
0.9.0.
Изменения в nginx 0.9.2 06.12.2010
*) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
запросе клиента.
*) Изменение: использование accept(), если accept4() не реализован;
ошибка появилась в 0.9.0.
*) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
*) Исправление: уязвимости в OpenSSL CVE-2010-4180.
Спасибо Максиму Дунину.
Изменения в nginx 0.9.1 30.11.2010
*) Исправление: директивы вида "return CODE message" не работали; ошибка
появилась в 0.9.0.
Изменения в nginx 0.9.0 29.11.2010
*) Добавление: директива keepalive_disable.
*) Добавление: директива map поддерживает переменные в качестве значения
определяемой переменной.
*) Добавление: директива map поддерживает пустые строки в качестве
значения первого параметра.
*) Добавление: директива map поддерживает выражения в первом параметре.
*) Добавление: страница руководства nginx(8).
Спасибо Сергею Осокину.
*) Добавление: поддержка accept4() в Linux.
Спасибо Simon Liu.
*) Изменение: устранение предупреждения линкера о "sys_errlist" и
"sys_nerr" под Linux; предупреждение появилось в 0.8.35.
*) Исправление: при использовании директивы auth_basic в рабочем
процессе мог произойти segmentation fault.
Спасибо Михаилу Лалетину.
*) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
появилась в 0.8.42.
Изменения в nginx 0.8.53 18.10.2010
*) Добавление: теперь директива error_page позволяет менять код статуса
у редиректа.
*) Добавление: директива gzip_disable поддерживает специальную маску
degradation.
*) Исправление: при использовании файлового AIO могла происходить утечка
сокетов.
Спасибо Максиму Дунину.
*) Исправление: если в первом сервере не была описана директива listen и
нигде явно не описан сервер по умолчанию, то сервером по умолчанию
становился следующий сервер с директивой listen; ошибка появилась в
0.8.21.
Изменения в nginx 0.8.52 28.09.2010
*) Исправление: nginx использовал режим SSL для listen сокета, если для
него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
Изменения в nginx 0.8.51 27.09.2010
*) Изменение: директива secure_link_expires упразднена.
*) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
alert на error.
*) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
несколько раз.
Изменения в nginx 0.8.50 02.09.2010
*) Добавление: директивы secure_link, secure_link_md5 и
secure_link_expires модуля ngx_http_secure_link_module.
*) Добавление: ключ -q.
Спасибо Геннадию Махомеду.
*) Исправление: при использовании кэширования рабочие процессы и могли
зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
*) Исправление: в директиве gzip_disable.
Спасибо Derrick Petzold.
*) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
reopen, reload процессу, запущенному в другой сессии.
Изменения в nginx 0.8.49 09.08.2010
*) Добавление: директива image_filter_jpeg_quality поддерживает
переменные.
*) Исправление: при использовании переменной $geoip_region_name в
рабочем процессе мог произойти segmentation fault; ошибка появилась в
0.8.48.
*) Исправление: ошибки, перехваченные error_page, кэшировались только до
следующего запроса; ошибка появилась в 0.8.48.
Изменения в nginx 0.8.48 03.08.2010
*) Изменение: теперь по умолчанию директива server_name имеет значение
пустое имя "".
Спасибо Геннадию Махомеду.
*) Изменение: теперь по умолчанию директива server_name_in_redirect
имеет значение off.
*) Добавление: переменные $geoip_dma_code, $geoip_area_code и
$geoip_region_name.
Спасибо Christine McGonagle.
*) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
scgi_pass не наследовались в блоки limit_except.
*) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
появилась в 0.8.46.
*) Исправление: директива fastcgi_split_path_info неверно использовала
выделения, если в выделения попадала только часть URI.
Спасибо Юрию Тарадаю и Frank Enderle.
*) Исправление: директива rewrite не экранировала символ ";" при
копировании из URI в аргументы.
Спасибо Daisuke Murase.
*) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
если изображение было больше размера image_filter_buffer.
Изменения в nginx 0.8.47 28.07.2010
*) Исправление: переменная $request_time имела неверные значения для
подзапросов.
*) Исправление: ошибки, перехваченные error_page, не кэшировались.
*) Исправление: если использовался параметр max_size, то cache manager
мог зациклиться; ошибка появилась в 0.8.46.
Изменения в nginx 0.8.46 19.07.2010
*) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
и scgi_no_cache теперь влияют только на сохранение закэшированного
ответа.
*) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
uwsgi_cache_bypass и scgi_cache_bypass.
*) Исправление: nginx не освобождал память в keys_zone кэшей в случае
ошибки работы с бэкендом: память освобождалась только по истечении
времени неактивности или при недостатке памяти.
Изменения в nginx 0.8.45 13.07.2010
*) Добавление: улучшения в модуле ngx_http_xslt_filter.
Спасибо Laurence Rowe.
*) Исправление: ответ SSI модуля мог передаваться не полностью после
команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
Спасибо Максиму Дунину.
*) Исправление: директива listen не поддерживала параметр setfib=0.
Изменения в nginx 0.8.44 05.07.2010
*) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
заголовке которых есть строка "Set-Cookie".
*) Добавление: директива listen поддерживает параметр setfib.
Спасибо Андрею Филонову.
*) Исправление: директива sub_filter могла изменять регистр букв при
частичном совпадении.
*) Исправление: совместимость с HP/UX.
*) Исправление: совместимость с компилятором AIX xlC_r.
*) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
запросы.
Спасибо Miroslaw Jaworski.
Изменения в nginx 0.8.43 30.06.2010
*) Добавление: ускорение загрузки больших баз geo-диапазонов.
*) Исправление: перенаправление ошибки в "location /zero {return 204;}"
без изменения кода ответа оставляло тело ошибки; ошибка появилась в
0.8.42.
*) Исправление: nginx мог закрывать IPv6 listen сокет во время
переконфигурации.
Спасибо Максиму Дунину.
*) Исправление: переменную $uid_set можно использовать на любой стадии
обработки запроса.
Изменения в nginx 0.8.42 21.06.2010
*) Изменение: теперь nginx проверяет location'ы, заданные регулярными
выражениями, если запрос полностью совпал с location'ом, заданным
строкой префикса. Предыдущее поведение появилось в 0.7.1.
*) Добавление: модуль ngx_http_scgi_module.
Спасибо Manlio Perillo.
*) Добавление: в директиве return можно добавлять текст ответа.
Изменения в nginx 0.8.41 15.06.2010
*) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
при запросе файла с неверной кодировкой UTF-8.
*) Изменение: теперь nginx разрешает использовать пробелы в строке
запроса.
*) Исправление: директива proxy_redirect неправильно изменяла строку
"Refresh" в заголовке ответа бэкенда.
Спасибо Андрею Андрееву и Максиму Согину.
*) Исправление: nginx не поддерживал путь без имени хоста в строке
"Destination" в заголовке запроса.
Изменения в nginx 0.8.40 07.06.2010
*) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
умолчанию.
Спасибо Jose Antonio Vazquez Gonzalez.
*) Добавление: модуль ngx_http_uwsgi_module.
Спасибо Roberto De Ioris.
*) Добавление: директива fastcgi_param со значением, начинающимся со
строки "HTTP_", изменяет строку заголовка в запросе клиента.
*) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
заголовке запроса клиента передавались FastCGI-серверу при
кэшировании.
*) Исправление: listen unix domain сокет нельзя было изменить во время
переконфигурации.
Спасибо Максиму Дунину.
Изменения в nginx 0.8.39 31.05.2010
*) Исправление: наследуемая директива alias неправильно работала во
вложенном location'е.
*) Исправление: в комбинации директив alias с переменными и try_files;
*) Исправление: listen unix domain и IPv6 сокеты не наследовались во
время обновления без перерыва.
Спасибо Максиму Дунину.
Изменения в nginx 0.8.38 24.05.2010
*) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
*) Добавление: теперь при использовании переменной $scheme в директиве
rewrite автоматически делается редирект.
Спасибо Piotr Sikora.
*) Исправление: теперь задержки в директиве limit_req соответствует
описанному алгоритму.
Спасибо Максиму Дунину.
*) Исправление: переменную $uid_got нельзя было использовать в SSI и
перловом модулях.
Изменения в nginx 0.8.37 17.05.2010
*) Добавление: модуль ngx_http_split_clients_module.
*) Добавление: директива map поддерживает ключи больше 255 символов.
*) Исправление: nginx игнорировал значения "private" и "no-store" в
строке "Cache-Control" в заголовке ответа бэкенда.
*) Исправление: параметр stub в SSI-директиве include не использовался,
если пустой ответ имел код 200.
*) Исправление: если проксированный или FastCGI запрос внутренне
перенаправлялся в другой проксированный или FastCGI location, то в
рабочем процессе мог произойти segmentation fault; ошибка появилась в
0.8.33.
Спасибо Yichun Zhang.
*) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
таймаута.
Спасибо Alan Batie.
Изменения в nginx 0.8.36 22.04.2010
*) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
методы DELETE, COPY и MOVE для симлинков.
*) Исправление: модуль SSI в подзапросах использовал закэшированные в
основном запросе значения переменных $query_string, $arg_... и им
подобных.
*) Исправление: значение переменной повторно экранировалось после
каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
*) Исправление: рабочий процесс зависал при запросе файла FIFO.
Спасибо Vicente Aguilar и Максиму Дунину.
*) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
Спасибо Максиму Дунину.
*) Исправление: nginx не собирался с параметром --without-http-cache;
ошибка появилась в 0.8.35.
Изменения в nginx 0.8.35 01.04.2010
*) Изменение: теперь charset-фильтр работает до SSI-фильтра.
*) Добавление: директива chunked_transfer_encoding.
*) Исправление: символ "&" при копировании в аргументы в правилах
rewrite не экранировался.
*) Исправление: nginx мог завершаться аварийно во время обработки
сигнала или при использовании директивы timer_resolution на
платформах, не поддерживающих методы kqueue или eventport.
Спасибо George Xie и Максиму Дунину.
*) Исправление: если временные файлы и постоянное место хранения
располагались на разных файловых системах, то у постоянных файлов
время изменения было неверным.
Спасибо Максиму Дунину.
*) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
"memcached sent invalid trailer".
Спасибо Максиму Дунину.
*) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
текстов.
Спасибо Максиму Дунину.
*) Исправление: в рабочем процессе происходил segmentation fault, если
перед ответом FastCGI-сервера было много вывода в stderr; ошибка
появилась в 0.8.34.
Спасибо Максиму Дунину.
Изменения в nginx 0.8.34 03.03.2010
*) Исправление: nginx не поддерживал все шифры, используемые в
клиентских сертификатах.
Спасибо Иннокентию Еникееву.
*) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
ответом было много вывода в stderr.
*) Исправление: nginx не поддерживал HTTPS-рефереры.
*) Исправление: nginx/Windows мог не находить файлы, если путь в
конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
*) Исправление: переменная $date_local выдавала неверное время, если
использовался формат "%s".
Спасибо Максиму Дунину.
*) Исправление: если ssl_session_cache не был установлен или установлен
в none, то при проверке клиентского сертификаты могла происходить
ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
*) Исправление: geo-диапазон возвращал значение по умолчанию, если
диапазон включал в себя одну и более сетей размером /16 и не
начинался на границе сети размером /16.
*) Исправление: блок, используемый в параметре stub в SSI-директиве
include, выводился с MIME-типом "text/plain".
*) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
Изменения в nginx 0.8.33 01.02.2010
*) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
Спасибо Dan Crowley, Core Security Technologies.
*) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
Спасибо Dan Crowley, Core Security Technologies.
*) Изменение: теперь keepalive соединения после запросов POST не
запрещаются для MSIE 7.0+.
Спасибо Adam Lounds.
*) Изменение: теперь keepalive соединения запрещены для Safari.
Спасибо Joshua Sierles.
*) Исправление: если проксированный или FastCGI запрос внутренне
перенаправлялся в другой проксированный или FastCGI location, то
переменная $upstream_response_time могла иметь ненормально большое
значение; ошибка появилась в 0.8.7.
*) Исправление: в рабочем процессе мог произойти segmentation fault при
отбрасывания тела запроса; ошибка появилась в 0.8.11.
Изменения в nginx 0.8.32 11.01.2010
*) Исправление: ошибки при использовании кодировки UTF-8 в
ngx_http_autoindex_module.
Спасибо Максиму Дунину.
*) Исправление: именованные выделения в регулярных выражениях работали
только для двух переменных.
Спасибо Максиму Дунину.
*) Исправление: теперь в строке заголовка запроса "Host" используется
имя "localhost", если в директиве auth_http указан unix domain сокет.
Спасибо Максиму Дунину.
*) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
ответов.
Спасибо Julian Reich.
*) Исправление: если директива "expires modified" выставляла дату в
прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
отрицательное число.
Спасибо Алексею Капранову.
Изменения в nginx 0.8.31 23.12.2009
*) Добавление: теперь директива error_page может перенаправлять ответы
со статусом 301 и 302.
*) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
$geoip_longitude.
Спасибо Arvind Sundararajan.
*) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
*) Исправление: nginx закрывал соединение при запросе закэшированного
ответа с пустым телом.
Спасибо Piotr Sikora.
*) Исправление: nginx мог не собираться gcc 4.x при использовании
оптимизации -O2 и выше.
Спасибо Максиму Дунину и Денису Латыпову.
*) Исправление: регулярные выражения в location всегда тестировались с
учётом регистра; ошибка появилась в 0.8.25.
*) Исправление: nginx кэшировал 304 ответ, если в заголовке
проксируемого запроса была строка "If-None-Match".
Спасибо Tim Dettrick и David Kostal.
*) Исправление: nginx/Windows пытался дважды удалить временный файл при
перезаписи уже существующего файла.
Изменения в nginx 0.8.30 15.12.2009
*) Изменение: теперь по умолчанию размер буфера директивы
large_client_header_buffers равен 8K.
Спасибо Andrew Cholakian.
*) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
*) Исправление: nginx/Windows пытался дважды переименовать временный
файл при перезаписи уже существующего файла.
*) Исправление: ошибки double free or corruption, возникающей, если имя
хоста не было найдено; ошибка появилась в 0.8.22.
Спасибо Константину Свисту.
*) Исправление: в использовании libatomic на некоторых платформах.
Спасибо W-Mark Kubacki.
Изменения в nginx 0.8.29 30.11.2009
*) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
ответа "009".
*) Добавление: директивы addition_types, charset_types, gzip_types,
ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
*) Добавление: использование встроенных атомарных операций GCC 4.1+.
Спасибо W-Mark Kubacki.
*) Добавление: параметр --with-libatomic[=DIR] в configure.
Спасибо W-Mark Kubacki.
*) Исправление: listen unix domain сокет имели ограниченные права
доступа.
*) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
обрабатывались.
*) Исправление: именованные выделения в регулярных выражениях, заданные
как "?P<...>", не работали в директиве server_name.
Спасибо Максиму Дунину.
Изменения в nginx 0.8.28 23.11.2009
*) Исправление: nginx не собирался с параметром --without-pcre; ошибка
появилась в 0.8.25.
Изменения в nginx 0.8.27 17.11.2009
*) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
появилась в 0.8.25.
Изменения в nginx 0.8.26 16.11.2009
*) Исправление: ошибки при использовании выделений в директиве rewrite;
ошибка появилась в 0.8.25.
*) Исправление: nginx не собирался без параметра --with-debug; ошибка
появилась в 0.8.25.
Изменения в nginx 0.8.25 16.11.2009
*) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
не найдена с помощью метода $r->variable().
*) Добавление: модуль ngx_http_degradation_module.
*) Добавление: именованные выделения в регулярных выражениях.
*) Добавление: теперь при использовании переменных в директиве
proxy_pass не требуется задавать URI.
*) Добавление: теперь директива msie_padding работает и для Chrome.
*) Исправление: в рабочем процессе происходил segmentation fault при
недостатке памяти; ошибка появилась в 0.8.18.
*) Исправление: nginx передавал сжатые ответы клиентам, не
поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
ошибка появилась в 0.8.16.
Изменения в nginx 0.8.24 11.11.2009
*) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
*) Исправление: nginx не собирался без параметра --with-debug; ошибка
появилась в 0.8.23.
*) Исправление: параметр "unix:" в директиве set_real_ip_from
неправильно наследовался с предыдущего уровня.
*) Исправление: в resolver'е при определении пустого имени.
Изменения в nginx 0.8.23 11.11.2009
*) Безопасность: теперь SSL/TLS renegotiation запрещён.
Спасибо Максиму Дунину.
*) Исправление: listen unix domain сокет не наследовался во время
обновления без перерыва.
*) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
без ещё одной директивы с любым IP-адресом.
*) Исправление: segmentation fault и зацикливания в resolver'е.
*) Исправление: в resolver'е.
Спасибо Артёму Бохану.
Изменения в nginx 0.8.22 03.11.2009
*) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
*) Добавление: директивы access и deny поддерживают IPv6.
*) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
заголовках запроса.
*) Добавление: параметр "unix:" в директиве set_real_ip_from.
*) Исправление: nginx не удалял unix domain сокет после тестирования
конфигурации.
*) Исправление: nginx удалял unix domain сокет во время обновления без
перерыва.
*) Исправление: оператор "!-x" не работал.
Спасибо Максиму Дунину.
*) Исправление: в рабочем процессе мог произойти segmentation fault при
использовании limit_rate в HTTPS сервере.
Спасибо Максиму Дунину.
*) Исправление: при записи в лог переменной $limit_rate в рабочем
процессе происходил segmentation fault.
Спасибо Максиму Дунину.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если внутри блока server не было директивы listen; ошибка появилась в
0.8.21.
Изменения в nginx 0.8.21 26.10.2009
*) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
*) Добавление: директива listen модуля HTTP поддерживает unix domain
сокеты.
Спасибо Hongli Lai.
*) Добавление: параметр "default_server" в директиве listen.
*) Добавление: теперь параметр "default" не обязателен для установки
параметров listen-сокета.
*) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
платформах;
*) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
Изменения в nginx 0.8.20 14.10.2009
*) Изменение: теперь по умолчанию используются следующие шифры SSL:
"HIGH:!ADH:!MD5".
*) Исправление: модуль ngx_http_autoindex_module не показывал последний
слэш для линков на каталоги; ошибка появилась в 0.7.15.
*) Исправление: nginx не закрывал лог, заданный параметром конфигурации
--error-log-path; ошибка появилась в 0.7.53.
*) Исправление: nginx не считал запятую разделителем в строке
"Cache-Control" в заголовке ответа бэкенда.
*) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
не имел достаточно прав для работы с каталогами верхнего уровня.
*) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
FastCGI-сервера не скрывались при кэшировании, если не использовались
директивы fastcgi_hide_header с любыми параметрами.
*) Исправление: nginx неверно считал размер кэша на диске.
Изменения в nginx 0.8.19 06.10.2009
*) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
*) Изменение: теперь по умолчанию используются следующие шифры SSL:
"ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
*) Исправление: директива limit_req не работала; ошибка появилась в
0.8.18.
Изменения в nginx 0.8.18 06.10.2009
*) Добавление: директива read_ahead.
*) Добавление: теперь можно использовать несколько директив
perl_modules.
*) Добавление: директивы limit_req_log_level и limit_conn_log_level.
*) Исправление: теперь директива limit_req соответствует алгоритму leaky
bucket.
Спасибо Максиму Дунину.
*) Исправление: nginx не работал на Linux/sparc.
Спасибо Marcus Ramberg.
*) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
ответе на запрос MKCOL.
Спасибо Xie Zhenye.
*) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
появилась в 0.8.11.
*) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
Изменения в nginx 0.8.17 28.09.2009
*) Безопасность: теперь символы "/../" запрещены в строке "Destination"
в заголовке запроса.
*) Изменение: теперь значение переменной $host всегда в нижнем регистре.
*) Добавление: переменная $ssl_session_id.
*) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
Изменения в nginx 0.8.16 22.09.2009
*) Добавление: директива image_filter_transparency.
*) Исправление: директива "addition_types" была неверно названа
"addtion_types".
*) Исправление: порчи кэша resolver'а.
Спасибо Matthew Dempsky.
*) Исправление: утечки памяти в resolver'е.
Спасибо Matthew Dempsky.
*) Исправление: неверная строка запроса в переменной $request
записывалась в access_log только при использовании error_log на
уровне info или debug.
*) Исправление: в поддержке альфа-канала PNG в модуле
ngx_http_image_filter_module.
*) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
заголовок ответа, если обе директивы gzip_static и gzip_vary были
включены.
*) Исправление: в поддержке кодировки UTF-8 директивой try_files в
nginx/Windows.
*) Исправление: ошибки при использовании post_action; ошибка появилась в
0.8.11.
Спасибо Игорю Артемьеву.
Изменения в nginx 0.8.15 14.09.2009
*) Безопасность: при обработке специально созданного запроса в рабочем
процессе мог произойти segmentation fault.
Спасибо Chris Ries.
*) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
.domain-some.tld, то имя .sub.domain.tld попадало под маску
.domain.tld.
*) Исправление: в поддержке прозрачности в модуле
ngx_http_image_filter_module.
*) Исправление: в файловом AIO.
*) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
появилась в 0.8.11.
*) Исправление: ошибки при использовании встроенного перла; ошибка
появилась в 0.8.11.
Изменения в nginx 0.8.14 07.09.2009
*) Исправление: устаревший закэшированный запрос мог залипнуть в
состоянии "UPDATING".
*) Исправление: при использовании error_log на уровне info или debug в
рабочем процессе мог произойти segmentation fault.
Спасибо Сергею Боченкову.
*) Исправление: ошибки при использовании встроенного перла; ошибка
появилась в 0.8.11.
*) Исправление: директива error_page не перенаправляла ошибку 413;
ошибка появилась в 0.6.10.
Изменения в nginx 0.8.13 31.08.2009
*) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
*) Исправление: nginx не собирался без параметра --with-file-aio на
FreeBSD; ошибка появилась в 0.8.12.
Изменения в nginx 0.8.12 31.08.2009
*) Добавление: параметр sendfile в директиве aio во FreeBSD.
*) Исправление: ошибки при использовании try_files; ошибка появилась в
0.8.11.
*) Исправление: ошибки при использовании memcached; ошибка появилась в
0.8.11.
Изменения в nginx 0.8.11 28.08.2009
*) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
для MSIE 6.0 SV1.
*) Добавление: поддержка файлового AIO во FreeBSD и Linux.
*) Добавление: директива directio_alignment.
Изменения в nginx 0.8.10 24.08.2009
*) Исправление: утечек памяти при использовании базы GeoIP City.
*) Исправление: ошибки при копировании временных файлов в постоянное
место хранения; ошибка появилась в 0.8.9.
Изменения в nginx 0.8.9 17.08.2009
*) Добавление: теперь стартовый загрузчик кэша работает в отдельном
процесс; это должно улучшить обработку больших кэшей.
*) Добавление: теперь временные файлы и постоянное место хранения могут
располагаться на разных файловых системах.
Изменения в nginx 0.8.8 10.08.2009
*) Исправление: в обработке заголовков ответа, разделённых в
FastCGI-записях.
*) Исправление: если запрос обрабатывался в двух проксированных или
FastCGI location'ах и в первом из них использовалось кэширование, то
в рабочем процессе происходил segmentation fault; ошибка появилась в
0.8.7.
Изменения в nginx 0.8.7 27.07.2009
*) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
*) Изменение: параметр ask директивы ssl_verify_client изменён на
параметр optional и теперь он проверяет клиентский сертификат, если
он был предложен.
Спасибо Brice Figureau.
*) Добавление: переменная $ssl_client_verify.
Спасибо Brice Figureau.
*) Добавление: директива ssl_crl.
Спасибо Brice Figureau.
*) Добавление: параметр proxy директивы geo.
*) Добавление: директива image_filter поддерживает переменные для
задания размеров.
*) Исправление: использование переменной $ssl_client_cert портило
память; ошибка появилась в 0.7.7.
Спасибо Сергею Журавлёву.
*) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
"X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
Спасибо Максиму Дунину.
*) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
заголовке ответа бэкенда; ошибка появилась в 0.7.44.
Спасибо Максиму Дунину.
*) Исправление: ошибки "[alert] zero size buf" при получении пустых
ответы в подзапросах; ошибка появилась в 0.8.5.
Изменения в nginx 0.8.6 20.07.2009
*) Добавление: модуль ngx_http_geoip_module.
*) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
document" для правильного документа.
Спасибо Kuramoto Eiji.
*) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
location'ов, заданных регулярным выражением, теперь всегда делается
сравнение без учёта регистра символов.
*) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
Спасибо Hugo Leisink.
*) Исправление: имя файла указанного в --conf-path игнорировалось при
установке; ошибка появилась в 0.6.6.
Спасибо Максиму Дунину.
Изменения в nginx 0.8.5 13.07.2009
*) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
*) Исправление: при использовании HTTP Basic-аутентификации на Windows
для неверных имени/пароля возвращалась 500-ая ошибка.
*) Исправление: ответы модуля ngx_http_perl_module не работали в
подзапросах.
*) Исправление: в модуле ngx_http_limit_req_module.
Спасибо Максиму Дунину.
Изменения в nginx 0.8.4 22.06.2009
*) Исправление: nginx не собирался с параметром --without-http-cache;
ошибка появилась в 0.8.3.
Изменения в nginx 0.8.3 19.06.2009
*) Добавление: переменная $upstream_cache_status.
*) Исправление: nginx не собирался на MacOSX 10.6.
*) Исправление: nginx не собирался с параметром --without-http-cache;
ошибка появилась в 0.8.2.
*) Исправление: если использовался перехват 401 ошибки от бэкенда и
бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
в рабочем процессе происходил segmentation fault.
Спасибо Евгению Мычло.
Изменения в nginx 0.8.2 15.06.2009
*) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
на старте.
*) Исправление: open_file_cache мог кэшировать открытые файлы очень
долго; ошибка появилась в 0.7.4.
Изменения в nginx 0.8.1 08.06.2009
*) Добавление: параметр updating в директивах proxy_cache_use_stale и
fastcgi_cache_use_stale.
*) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
заголовке запроса клиента передавались бэкенду при кэшировании, если
не использовалась директива proxy_set_header с любыми параметрами.
*) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
не скрывались при кэшировании, если не использовались директивы
proxy_hide_header/fastcgi_hide_header с любыми параметрами.
*) Исправление: модуль ngx_http_image_filter_module не понимал формат
GIF87a.
Спасибо Денису Ильиных.
*) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
появилась в 0.7.56.
Изменения в nginx 0.8.0 02.06.2009
*) Добавление: директива keepalive_requests.
*) Добавление: директива limit_rate_after.
Спасибо Ivan Debnar.
*) Исправление: XSLT-фильтр не работал в подзапросах.
*) Исправление: обработке относительных путей в nginx/Windows.
*) Исправление: в proxy_store, fastcgi_store, proxy_cache и
fastcgi_cache в nginx/Windows.
*) Исправление: в обработке ошибок выделения памяти.
Спасибо Максиму Дунину и Кириллу Коринскому.
Изменения в nginx 0.7.59 25.05.2009
*) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
*) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
Спасибо Максиму Дунину.
*) Исправление: при использовании переменной $request_body в рабочем
процессе происходил segmentation fault, если в запросе не было тела;
ошибка появилась в 0.7.58.
*) Исправление: SSL-модули могли не собираться на Solaris и Linux;
ошибка появилась в 0.7.56.
*) Исправление: ответы модуля ngx_http_xslt_filter_module не
обрабатывались SSI-, charset- и gzip-фильтрами.
*) Исправление: директива charset не ставила кодировку для ответов
модуля ngx_http_gzip_static_module.
Изменения в nginx 0.7.58 18.05.2009
*) Добавление: директива listen почтового прокси-сервера поддерживает
IPv6.
*) Добавление: директива image_filter_jpeg_quality.
*) Добавление: директива client_body_in_single_buffer.
*) Добавление: переменная $request_body.
*) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
файлов, содержащих символ ":".
*) Исправление: процедура "make upgrade" не работала; ошибка появилась в
0.7.53.
Спасибо Денису Латыпову.
Изменения в nginx 0.7.57 12.05.2009
*) Исправление: при перенаправлении ошибок модуля
ngx_http_image_filter_module в именованный location в рабочем
процессе происходил floating-point fault; ошибка появилась в 0.7.56.
Изменения в nginx 0.7.56 11.05.2009
*) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
HTTP.
*) Исправление: в модуле ngx_http_image_filter_module.
Изменения в nginx 0.7.55 06.05.2009
*) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
fastcgi_cache_use_stale не работали.
*) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
заголовка.
*) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
*) Исправление: при использовании директивы debug_connection в рабочем
процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
*) Исправление: в сборке модуля ngx_http_image_filter_module.
*) Исправление: файлы больше 2G не передавались с использованием
$r->sendfile.
Спасибо Максиму Дунину.
Изменения в nginx 0.7.54 01.05.2009
*) Добавление: модуль ngx_http_image_filter_module.
*) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
*) Исправление: при использовании переменных "open_file_cache_errors on"
в рабочем процессе мог произойти segmentation fault; ошибка появилась
в 0.7.53.
*) Исправление: директива "port_in_redirect off" не работала; ошибка
появилась в 0.7.39.
*) Исправление: улучшение обработки ошибок метода select.
*) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
*) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
ошибка появилась в 0.7.53.
Изменения в nginx 0.7.53 27.04.2009
*) Изменение: теперь лог, указанный в --error-log-path, создаётся с
самого начала работы.
*) Добавление: теперь ошибки и предупреждения при старте записываются в
error_log и выводятся на stderr.
*) Добавление: при сборке с пустым параметром --prefix= nginx использует
как префикс каталог, в котором он был запущен.
*) Добавление: ключ -p.
*) Добавление: ключ -s на Unix-платформах.
*) Добавление: ключи -? и -h.
Спасибо Jerome Loyet.
*) Добавление: теперь ключи можно задавать в сжатой форме.
*) Исправление: nginx/Windows не работал, если файл конфигурации был
задан ключом -c.
*) Исправление: при использовании директив proxy_store, fastcgi_store,
proxy_cache или fastcgi_cache временные файлы могли не удаляться.
Спасибо Максиму Дунину.
*) Исправление: в заголовке Auth-Method запроса серверу аутентификации
почтового прокси-сервера передавалось неверное значение; ошибка
появилась в 0.7.34.
Спасибо Simon Lecaille.
*) Исправление: при логгировании на Linux не писались текстовые описания
системных ошибок; ошибка появилась в 0.7.45.
*) Исправление: директива fastcgi_cache_min_uses не работала.
Спасибо Андрею Воробьёву.
Изменения в nginx 0.7.52 20.04.2009
*) Добавление: первая бинарная версия под Windows.
*) Исправление: корректная обработка метода HEAD при кэшировании.
*) Исправление: корректная обработка строк "If-Modified-Since",
"If-Range" и им подобных в заголовке запроса клиента при кэшировании.
*) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
заголовке ответа для закэшированных ответов.
*) Исправление: если nginx был собран с модулем ngx_http_perl_module и
perl поддерживал потоки, то при выходе основного процесса могла
выдаваться ошибка "panic: MUTEX_LOCK".
*) Исправление: nginx не собирался с параметром --without-http-cache;
ошибка появилась в 0.7.48.
*) Исправление: nginx не собирался на платформах, отличных от i386,
amd64, sparc и ppc; ошибка появилась в 0.7.42.
Изменения в nginx 0.7.51 12.04.2009
*) Добавление: директива try_files поддерживает код ответа в последнем
параметре.
*) Добавление: теперь в директиве return можно использовать любой код
ответа.
*) Исправление: директива error_page делала внешний редирект без строки
запроса; ошибка появилась в 0.7.44.
*) Исправление: если сервера слушали на нескольких явно описанных
адресах, то виртуальные сервера могли не работать; ошибка появилась в
0.7.39.
Изменения в nginx 0.7.50 06.04.2009
*) Исправление: переменные $arg_... не работали; ошибка появилась в
0.7.49.
Изменения в nginx 0.7.49 06.04.2009
*) Исправление: при использовании переменных $arg_... в рабочем процессе
мог произойти segmentation fault; ошибка появилась в 0.7.48.
Изменения в nginx 0.7.48 06.04.2009
*) Добавление: директива proxy_cache_key.
*) Исправление: теперь nginx учитывает при кэшировании строки
"X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
бэкенда.
*) Исправление: теперь nginx кэширует только ответы на запросы GET.
*) Исправление: директива fastcgi_cache_key не наследовалась.
*) Исправление: переменные $arg_... не работали с SSI-подзапросами.
Спасибо Максиму Дунину.
*) Исправление: nginx не собирался с библиотекой uclibc.
Спасибо Timothy Redaelli.
*) Исправление: nginx не собирался на OpenBSD; ошибка появилась
в 0.7.46.
Изменения в nginx 0.7.47 01.04.2009
*) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
ошибка появилась в 0.7.46.
*) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
*) Исправление: если использовался параметр max_size, то cache manager
мог удалить весь кэш; ошибка появилась в 0.7.46.
*) Изменение: в рабочем процессе мог произойти segmentation fault, если
директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
в 0.7.46.
*) Исправление: в рабочем процессе мог произойти segmentation fault при
перенаправлении запроса проксированному или FastCGI-серверу с помощью
error_page или try_files; ошибка появилась в 0.7.44.
Изменения в nginx 0.7.46 30.03.2009
*) Исправление: архив предыдущего релиза был неверным.
Изменения в nginx 0.7.45 30.03.2009
*) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
задавать на разных уровнях.
*) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
*) Добавление: параметр max_size в директиве proxy_cache_path.
*) Добавление: предварительная поддержка кэширования в модуле
ngx_http_fastcgi_module.
*) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
указываются названия директивы и зоны.
*) Исправление: директива "add_header last-modified ''" не удаляла в
заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
*) Исправление: в директиве auth_basic_user_file не работал
относительный путь, заданный строкой без переменных; ошибка появилась
в 0.7.44.
Спасибо Jerome Loyet.
*) Исправление: в директиве alias, заданной переменными без ссылок на
выделения в регулярных выражениях; ошибка появилась в 0.7.42.
Изменения в nginx 0.7.44 23.03.2009
*) Добавление: предварительная поддержка кэширования в модуле
ngx_http_proxy_module.
*) Добавление: параметр --with-pcre в configure.
*) Добавление: теперь директива try_files может быть использована на
уровне server.
*) Исправление: директива try_files неправильно обрабатывала строку
запроса в последнем параметре.
*) Исправление: директива try_files могла неверно тестировать каталоги.
*) Исправление: если для пары адрес:порт описан только один сервер, то
выделения в регулярных выражениях в директиве server_name не
работали.
Изменения в nginx 0.7.43 18.03.2009
*) Исправление: запрос обрабатывался неверно, если директива root
использовала переменные; ошибка появилась в 0.7.42.
*) Исправление: если сервер слушал на адресах типа "*", то значение
переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
Изменения в nginx 0.7.42 16.03.2009
*) Изменение: ошибка "Invalid argument", возвращаемая
setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
*) Изменение: при отсутствии файла, указанного в директиве
auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
*) Добавление: директива auth_basic_user_file поддерживает переменные.
Спасибо Кириллу Коринскому.
*) Добавление: директива listen поддерживает параметр ipv6only.
Спасибо Zhang Hua.
*) Исправление: в директиве alias со ссылками на выделения в регулярных
выражениях; ошибка появилась в 0.7.40.
*) Исправление: совместимость с Tru64 UNIX.
Спасибо Dustin Marquess.
*) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
в 0.7.41.
Изменения в nginx 0.7.41 11.03.2009
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если в server_name или location были выделения в регулярных
выражениях; ошибка появилась в 0.7.40.
Спасибо Владимиру Сопоту.
Изменения в nginx 0.7.40 09.03.2009
*) Добавление: директива location поддерживает выделения в регулярных
выражениях.
*) Добавление: директиву alias с ссылками на выделения в регулярных
выражениях можно использовать внутри location'а, заданного регулярным
выражением с выделениями.
*) Добавление: директива server_name поддерживает выделения в регулярных
выражениях.
*) Изменение: модуль ngx_http_autoindex_module не показывал последний
слэш для каталогов на файловой системе XFS; ошибка появилась в
0.7.15.
Спасибо Дмитрию Кузьменко.
Изменения в nginx 0.7.39 02.03.2009
*) Исправление: при включённом сжатии большие ответы с использованием
SSI могли зависать; ошибка появилась в 0.7.28.
Спасибо Артёму Бохану.
*) Исправление: при использовании коротких статических вариантов в
директиве try_files в рабочем процессе мог произойти segmentation
fault.
Изменения в nginx 0.7.38 23.02.2009
*) Добавление: логгирование ошибок аутентификации.
*) Исправление: имя/пароль, заданные в auth_basic_user_file,
игнорировались после нечётного числа пустых строк.
Спасибо Александру Загребину.
*) Исправление: при использовании длинного пути в unix domain сокете в
главном процессе происходил segmentation fault; ошибка появилась в
0.7.36.
Изменения в nginx 0.7.37 21.02.2009
*) Исправление: директивы, использующие upstream'ы, не работали; ошибка
появилась в 0.7.36.
Изменения в nginx 0.7.36 21.02.2009
*) Добавление: предварительная поддержка IPv6; директива listen модуля
HTTP поддерживает IPv6.
*) Исправление: переменная $ancient_browser не работала для браузеров,
заданных директивами modern_browser.
Изменения в nginx 0.7.35 16.02.2009
*) Исправление: директива ssl_engine не использовала SSL-акселератор для
асимметричных шифров.
Спасибо Marcin Gozdalik.
*) Исправление: директива try_files выставляла MIME-type, исходя из
расширения первоначального запроса.
*) Исправление: в директивах server_name, valid_referers и map
неправильно обрабатывались имена вида "*domain.tld", если
использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
ошибка появилась в 0.7.9.
Изменения в nginx 0.7.34 10.02.2009
*) Добавление: параметр off в директиве if_modified_since.
*) Добавление: теперь после команды XCLIENT nginx посылает команду
HELO/EHLO.
Спасибо Максиму Дунину.
*) Добавление: поддержка Microsoft-специфичного режима
"AUTH LOGIN with User Name" в почтовом прокси-сервере.
Спасибо Максиму Дунину.
*) Исправление: в директиве rewrite, возвращающей редирект, старые
аргументы присоединялись к новым через символ "?" вместо "&";
ошибка появилась в 0.1.18.
Спасибо Максиму Дунину.
*) Исправление: nginx не собирался на AIX.
Изменения в nginx 0.7.33 02.02.2009
*) Исправление: если на запрос с телом возвращался редирект, то ответ
мог быть двойным при использовании методов epoll или rtsig.
Спасибо Eden Li.
*) Исправление: для некоторых типов редиректов в переменной
$sent_http_location было пустое значение.
*) Исправление: при использовании директивы resolver в SMTP
прокси-сервере в рабочем процессе мог произойти segmentation fault.
Изменения в nginx 0.7.32 26.01.2009
*) Добавление: теперь в директиве try_files можно явно указать проверку
каталога.
*) Исправление: fastcgi_store не всегда сохранял файлы.
*) Исправление: в гео-диапазонах.
*) Исправление: ошибки выделения больших блоков в разделяемой памяти,
если nginx был собран без отладки.
Спасибо Андрею Квасову.
Изменения в nginx 0.7.31 19.01.2009
*) Изменение: теперь директива try_files проверяет только файлы,
игнорируя каталоги.
*) Добавление: директива fastcgi_split_path_info.
*) Исправления в поддержке строки "Expect" в заголовке запроса.
*) Исправления в гео-диапазонах.
*) Исправление: при отсутствии ответа ngx_http_memcached_module
возвращал в теле ответа строку "END" вместо 404-ой страницы по
умолчанию; ошибка появилась в 0.7.18.
Спасибо Максиму Дунину.
*) Исправление: при проксировании SMPT nginx выдавал сообщение
"250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
Спасибо Максиму Дунину.
Изменения в nginx 0.7.30 24.12.2008
*) Исправление: в рабочем процессе происходил segmentation fault, если в
директивах fastcgi_pass или proxy_pass использовались переменные и
имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
Изменения в nginx 0.7.29 24.12.2008
*) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
переменные при использовании unix domain сокетов.
*) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
*) Исправление: ответ "100 Continue" выдавался для запросов версии
HTTP/1.0;
Спасибо Максиму Дунину.
*) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
под Cygwin.
Изменения в nginx 0.7.28 22.12.2008
*) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
*) Изменение: значения по умолчанию для директивы gzip_buffers изменены
с 4 4k/8k на 32 4k или 16 8k.
Изменения в nginx 0.7.27 15.12.2008
*) Добавление: директива try_files.
*) Добавление: директива fastcgi_pass поддерживает переменные.
*) Добавление: теперь директива geo может брать адрес из переменной.
Спасибо Андрею Нигматулину.
*) Добавление: теперь модификатор location'а можно указывать без пробела
перед названием.
*) Добавление: переменная $upstream_response_length.
*) Исправление: теперь директива add_header не добавляет пустое
значение.
*) Исправление: при запросе файла нулевой длины nginx закрывал
соединение, ничего не передав; ошибка появилась в 0.7.25.
*) Исправление: метод MOVE не мог перемещать файл в несуществующий
каталог.
*) Исправление: если в сервере не был описан ни один именованный
location, но такой location использовался в директиве error_page, то
в рабочем процессе происходил segmentation fault.
Спасибо Сергею Боченкову.
Изменения в nginx 0.7.26 08.12.2008
*) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
Изменения в nginx 0.7.25 08.12.2008
*) Изменение: в обработке подзапросов.
*) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
заголовке запроса.
*) Исправление: теперь директивы limit_req и limit_conn указывают
причину запрета запроса.
*) Исправление: в параметре delete директивы geo.
Изменения в nginx 0.7.24 01.12.2008
*) Добавление: директива if_modified_since.
*) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
ответом сервер передавал много сообщений в stderr.
*) Исправление: переменные "$cookie_..." не работали в SSI and в
перловом модуле.
Изменения в nginx 0.7.23 27.11.2008
*) Добавление: параметры delete и ranges в директиве geo.
*) Добавление: ускорение загрузки geo-базы с большим числом значений.
*) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
Изменения в nginx 0.7.22 20.11.2008
*) Добавление: параметр none в директиве smtp_auth.
Спасибо Максиму Дунину.
*) Добавление: переменные "$cookie_...".
*) Исправление: директива directio не работала с файловой системой XFS.
*) Исправление: resolver не понимал большие DNS-ответы.
Спасибо Zyb.
Изменения в nginx 0.7.21 11.11.2008
*) Изменения в модуле ngx_http_limit_req_module.
*) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
Спасибо Денису Латыпову.
*) Изменение: совместимость с glibc 2.3.
Спасибо Eric Benson и Максиму Дунину.
*) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
ошибка появилась в 0.7.6.
Изменения в nginx 0.7.20 10.11.2008
*) Изменения в модуле ngx_http_gzip_filter_module.
*) Добавление: модуль ngx_http_limit_req_module.
*) Исправление: на платформах sparc и ppc рабочие процессы могли
выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
Спасибо Максиму Дунину.
*) Исправление: директивы вида "proxy_pass http://host/some:uri" не
работали; ошибка появилась в 0.7.12.
*) Исправление: при использовании HTTPS запросы могли завершаться с
ошибкой "bad write retry".
*) Исправление: модуль ngx_http_secure_link_module не работал внутри
location'ов с именами меньше 3 символов.
*) Исправление: переменная $server_addr могла не иметь значения.
Изменения в nginx 0.7.19 13.10.2008
*) Исправление: обновление номера версии.
Изменения в nginx 0.7.18 13.10.2008
*) Изменение: директива underscores_in_headers; теперь nginx по
умолчанию не разрешает подчёркивания в именах строк в заголовке
запроса клиента.
*) Добавление: модуль ngx_http_secure_link_module.
*) Добавление: директива real_ip_header поддерживает любой заголовок.
*) Добавление: директива log_subrequest.
*) Добавление: переменная $realpath_root.
*) Добавление: параметры http_502 и http_504 в директиве
proxy_next_upstream.
*) Исправление: параметр http_503 в директивах proxy_next_upstream или
fastcgi_next_upstream не работал.
*) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
для запросов HEAD.
*) Исправление: теперь accept-лимит зависит от числа worker_connections.
Изменения в nginx 0.7.17 15.09.2008
*) Добавление: директива directio теперь работает на Linux.
*) Добавление: переменная $pid.
*) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
при использовании open_file_cache.
*) Исправление: access_log с переменными не работал на Linux; ошибка
появилась в 0.7.7.
*) Исправление: модуль ngx_http_charset_module не понимал название
кодировки в кавычках, полученное от бэкенда.
Изменения в nginx 0.7.16 08.09.2008
*) Исправление: nginx не собирался на 64-битных платформах; ошибка
появилась в 0.7.15.
Изменения в nginx 0.7.15 08.09.2008
*) Добавление: модуль ngx_http_random_index_module.
*) Добавление: директива directio оптимизирована для запросов файлов,
начинающихся с произвольной позиции.
*) Добавление: директива directio при необходимости запрещает
использование sendfile.
*) Добавление: теперь nginx разрешает подчёркивания в именах строк в
заголовке запроса клиента.
Изменения в nginx 0.7.14 01.09.2008
*) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
имеют значений по умолчанию.
*) Добавление: директива listen поддерживает параметр ssl.
*) Добавление: теперь при переконфигурации nginx учитывает изменение
временной зоны на FreeBSD и Linux.
*) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
прочие, не устанавливались, если сервером по умолчанию был не первый
сервер.
*) Исправление: при использовании в качестве аргументов части URI,
выделенного с помощью директивы rewrite, эти аргументы не
экранировались.
*) Исправление: улучшения тестирования правильности конфигурационного
файла.
Изменения в nginx 0.7.13 26.08.2008
*) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
в 0.7.12.
Изменения в nginx 0.7.12 26.08.2008
*) Добавление: директива server_name поддерживает пустое имя "".
*) Добавление: директива gzip_disable поддерживает специальную маску
msie6.
*) Исправление: при использовании параметра max_fails=0 в upstream'е с
несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
Спасибо Максиму Дунину.
*) Исправление: при перенаправлении запроса с помощью директивы
error_page терялось тело запроса.
*) Исправление: при перенаправлении запроса с методом HEAD с помощью
директивы error_page возвращался полный ответ.
*) Исправление: метод $r->header_in() не возвращал значения строк
"Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
появилась в 0.7.0.
Изменения в nginx 0.7.11 18.08.2008
*) Изменение: теперь ngx_http_charset_module по умолчанию не работает
MIME-типом text/css.
*) Добавление: теперь nginx возвращает код 405 для метода POST при
запросе статического файла, только если файл существует.
*) Добавление: директива proxy_ssl_session_reuse.
*) Исправление: после перенаправления запроса с помощью
"X-Accel-Redirect" директива proxy_pass без URI могла использовать
оригинальный запрос.
*) Исправление: если у каталога были права доступа только на поиск
файлов и первый индексный файл отсутствовал, то nginx возвращал
ошибку 500.
*) Исправление: ошибок во вложенных location'ах; ошибки появились в
0.7.1.
Изменения в nginx 0.7.10 13.08.2008
*) Исправление: ошибок в директивах addition_types, charset_types,
gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
появились в 0.7.9.
*) Исправление: рекурсивной error_page для 500 ошибки.
*) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
не для всего keepalive соединения, а для каждого запроса по этому
соединению.
Изменения в nginx 0.7.9 12.08.2008
*) Изменение: теперь ngx_http_charset_module по умолчанию работает со
следующими MIME-типами: text/html, text/css, text/xml, text/plain,
text/vnd.wap.wml, application/x-javascript и application/rss+xml.
*) Добавление: директивы charset_types и addition_types.
*) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
используют хэш.
*) Добавление: модуль ngx_cpp_test_module.
*) Добавление: директива expires поддерживает суточное время.
*) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
Спасибо Денису Латыпову и Максиму Дунину.
*) Исправление: директива log_not_found не работала при поиске индексных
файлов.
*) Исправление: HTTPS-соединения могли зависнуть, если использовались
методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
*) Исправление: если в директивах server_name, valid_referers и map
использовалась маска вида "*.domain.tld" и при этом полное имя вида
"domain.tld" не было описано, то это имя попадало под маску; ошибка
появилась в 0.3.18.
Изменения в nginx 0.7.8 04.08.2008
*) Добавление: модуль ngx_http_xslt_module.
*) Добавление: переменные "$arg_...".
*) Добавление: поддержка directio в Solaris.
Спасибо Ivan Debnar.
*) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
в заголовке ответа без строки статуса, то nginx использует код
статуса 302.
Спасибо Максиму Дунину.
Изменения в nginx 0.7.7 30.07.2008
*) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
временной.
*) Изменение: значением переменной $ssl_client_cert теперь является
сертификат, перед каждой строкой которого, кроме первой, вставляется
символ табуляции; неизменённый сертификат доступен через переменную
$ssl_client_raw_cert.
*) Добавление: параметр ask директивы ssl_verify_client.
*) Добавление: улучшения в обработке byte-range.
Спасибо Максиму Дунину.
*) Добавление: директива directio.
Спасибо Jiang Hong.
*) Добавление: поддержка sendfile() в MacOSX 10.5.
*) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
делается сравнение без учёта регистра символов; однако, сравнение
ограничено только однобайтными locale'ями.
*) Исправление: соединения почтового прокси-сервера зависали в режиме
SSL, если использовались методы select, poll или /dev/poll.
*) Исправление: ошибки при использовании кодировки UTF-8 в
ngx_http_autoindex_module.
Изменения в nginx 0.7.6 07.07.2008
*) Исправление: теперь при использовании переменных в директиве
access_log всегда проверяется существовании root'а для запроса.
*) Исправление: модуль ngx_http_flv_module не поддерживал несколько
значений в аргументах запроса.
Изменения в nginx 0.7.5 01.07.2008
*) Исправления в поддержке переменных в директиве access_log; ошибки
появились в 0.7.4.
*) Исправление: nginx не собирался с параметром
--without-http_gzip_module; ошибка появилась в 0.7.3.
Спасибо Кириллу Коринскому.
*) Исправление: при совместном использовании sub_filter и SSI ответы
могли передаваться неверно.
Изменения в nginx 0.7.4 30.06.2008
*) Добавление: директива access_log поддерживает переменные.
*) Добавление: директива open_log_file_cache.
*) Добавление: ключ -g.
*) Добавление: поддержка строки "Expect" в заголовке запроса.
*) Исправление: большие включения в SSI могли передавались не полностью.
Изменения в nginx 0.7.3 23.06.2008
*) Изменение: MIME-тип для расширения rss изменён на
"application/rss+xml".
*) Изменение: теперь директива "gzip_vary on" выдаёт строку
"Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
*) Добавление: теперь при использовании протокола "https://" в директиве
rewrite автоматически делается редирект.
*) Исправление: директива proxy_pass не работала с протоколом HTTPS;
ошибка появилась в 0.6.9.
Изменения в nginx 0.7.2 16.06.2008
*) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
*) Добавление: директива ssl_dhparam.
*) Добавление: переменная $ssl_client_cert.
Спасибо Manlio Perillo.
*) Исправление: после изменения URI с помощью директивы rewrite nginx не
искал новый location; ошибка появилась в 0.7.1.
Спасибо Максиму Дунину.
*) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
в 0.7.1.
*) Исправление: при редиректе запроса к каталогу с добавлением слэша
nginx не добавлял аргументы из оригинального запроса.
Изменения в nginx 0.7.1 26.05.2008
*) Изменение: теперь поиск location'а делается с помощью дерева.
*) Изменение: директива optimize_server_names упразднена в связи с
появлением директивы server_name_in_redirect.
*) Изменение: некоторые давно устаревшие директивы больше не
поддерживаются.
*) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
параметр используется по умолчанию.
Спасибо Rob Mueller.
*) Исправление: рабочие процессы могли не реагировать на сигналы
переконфигурации и ротации логов.
*) Исправление: nginx не собирался на последних Fedora 9 Linux.
Спасибо Roxis.
Изменения в nginx 0.7.0 19.05.2008
*) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
записываются в виде \xXX.
Спасибо Максиму Дунину.
*) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
запроса.
*) Добавление: директива expires поддерживает флаг modified.
*) Добавление: переменные $uid_got и $uid_set можно использовать на
любой стадии обработки запроса.
*) Добавление: переменная $hostname.
Спасибо Андрею Нигматулину.
*) Добавление: поддержка DESTDIR.
Спасибо Todd A. Fisher и Andras Voroskoi.
*) Исправление: при использовании 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.
Спасибо Геннадию Махомеду.
*) Исправление: в проксированных подзапросах и подзапросах к
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.