CS计算机代考程序代写 js dns compiler javascript scheme Java arm cache chain Изменения в nginx 1.9.3 14.07.2015

Изменения в nginx 1.9.3 14.07.2015

*) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.

*) Добавление: ограничение количества соединений в модуле stream.

*) Добавление: органичение скорости в модуле stream.

*) Исправление: директива zone в блоке upstream не работала на Windows.

*) Исправление: совместимость с LibreSSL в модуле stream.
Спасибо Piotr Sikora.

*) Исправление: в параметре –builddir в configure.
Спасибо Piotr Sikora.

*) Исправление: директива ssl_stapling_file не работала; ошибка
появилась в 1.9.2.
Спасибо Faidon Liambotis и Brandon Black.

*) Исправление: при использовании директивы ssl_stapling в рабочем
процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
Спасибо Matthew Baldwin.

Изменения в nginx 1.9.2 16.06.2015

*) Добавление: параметр backlog директивы listen в почтовом
прокси-сервере и модуле stream.

*) Добавление: директивы allow и deny в модуле stream.

*) Добавление: директива proxy_bind в модуле stream.

*) Добавление: директива proxy_protocol в модуле stream.

*) Добавление: ключ -T.

*) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
uwsgi_params.

*) Исправление: параметр reuseport директивы listen в модуле stream не
работал.

*) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
OCSP-ответ.

Изменения в nginx 1.9.1 26.05.2015

*) Изменение: теперь протокол SSLv3 по умолчанию запрещён.

*) Изменение: некоторые давно устаревшие директивы больше не
поддерживаются.

*) Добавление: параметр reuseport директивы listen.
Спасибо Sepherosa Ziehau и Yingqi Lu.

*) Добавление: переменная $upstream_connect_time.

*) Исправление: в директиве hash на big-endian платформах.

*) Исправление: nginx мог не запускаться на некоторых старых версиях
Linux; ошибка появилась в 1.7.11.

*) Исправление: в парсинге IP-адресов.
Спасибо Сергею Половко.

Изменения в nginx 1.9.0 28.04.2015

*) Изменение: устаревшие методы обработки соединений aio и rtsig больше
не поддерживаются.

*) Добавление: директива zone в блоке upstream.

*) Добавление: модуль stream.

*) Добавление: поддержка byte ranges для ответов модуля
ngx_http_memcached_module.
Спасибо Martin Mlynář.

*) Добавление: разделяемую память теперь можно использовать на версиях
Windows с рандомизацией адресного пространства.
Спасибо Сергею Брестеру.

*) Добавление: директиву error_log теперь можно использовать на уровнях
mail и server в почтовом прокси-сервере.

*) Исправление: параметр proxy_protocol директивы listen не работал,
если не был указан в первой директиве listen для данного
listen-сокета.

Изменения в nginx 1.7.12 07.04.2015

*) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
с бэкендами.

*) Добавление: теперь потоки могут использоваться для чтения заголовков
файлов в кэше.

*) Исправление: в директиве proxy_request_buffering.

*) Исправление: при использовании потоков на Linux в рабочем процессе
мог произойти segmentation fault.

*) Исправление: в обработке ошибок при использовании директивы
ssl_stapling.
Спасибо Filipe da Silva.

*) Исправление: в модуле ngx_http_spdy_module.

Изменения в nginx 1.7.11 24.03.2015

*) Изменение: параметр sendfile директивы aio более не нужен; теперь
nginx автоматически использует AIO для подгрузки данных для sendfile,
если одновременно используются директивы aio и sendfile.

*) Добавление: экспериментальная поддержка потоков.

*) Добавление: директивы proxy_request_buffering,
fastcgi_request_buffering, scgi_request_buffering и
uwsgi_request_buffering.

*) Добавление: экспериментальное API для обработки тела запроса.

*) Добавление: проверка клиентских SSL-сертификатов в почтовом
прокси-сервере.
Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.

*) Добавление: уменьшение времени запуска при использовании директивы
“hash … consistent” в блоке upstream.
Спасибо Wai Keen Woon.

*) Добавление: отладочное логгирование в кольцевой буфер в памяти.

*) Исправление: в обработке хэш-таблиц.
Спасибо Chris West.

*) Исправление: в директиве proxy_cache_revalidate.

*) Исправление: SSL-соединения могли зависать, если использовался
отложенный accept или параметр proxy_protocol директивы listen.
Спасибо James Hamlin.

*) Исправление: переменная $upstream_response_time могла содержать
неверное значение при использовании директивы image_filter.

*) Исправление: в обработке целочисленных переполнений.
Спасибо Régis Leroy.

*) Исправление: при использовании LibreSSL было невозможно включить
поддержку SSLv3.

*) Исправление: при использовании LibreSSL в логах появлялись сообщения
“ignoring stale global SSL error … called a function you should not
call”.

*) Исправление: сертификаты, указанные в директивах
ssl_client_certificate и ssl_trusted_certificate, использовались для
автоматического построения цепочек сертификатов.

Изменения в nginx 1.7.10 10.02.2015

*) Добавление: параметр use_temp_path директив proxy_cache_path,
fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.

*) Добавление: переменная $upstream_header_time.

*) Изменение: теперь при переполнении диска nginx пытается писать
error_log’и только раз в секунду.

*) Исправление: директива try_files при тестировании каталогов не
игнорировала обычные файлы.
Спасибо Damien Tournoud.

*) Исправление: при использовании директивы sendfile на OS X возникали
ошибки “sendfile() failed”; ошибка появилась в nginx 1.7.8.

*) Исправление: в лог могли писаться сообщения “sem_post() failed”.

*) Исправление: nginx не собирался с musl libc.
Спасибо James Taylor.

*) Исправление: nginx не собирался на Tru64 UNIX.
Спасибо Goetz T. Fischer.

Изменения в nginx 1.7.9 23.12.2014

*) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
uwsgi_cache поддерживают переменные.

*) Добавление: директива expires поддерживает переменные.

*) Добавление: возможность загрузки секретных ключей с аппаратных
устройств с помощью OpenSSL engines.
Спасибо Дмитрию Пичулину.

*) Добавление: директива autoindex_format.

*) Исправление: ревалидация элементов кэша теперь используется только
для ответов с кодами 200 и 206.
Спасибо Piotr Sikora.

*) Исправление: строка “TE” заголовка запроса клиента передавалась на
бэкенд при проксировании.

*) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
uwsgi_pass могли неправильно работать внутри блоков if и
limit_except.

*) Исправление: директива proxy_store с параметром “on” игнорировалась,
если на предыдущем уровне использовалась директива proxy_store с явно
заданным путём к файлам.

*) Исправление: nginx не собирался с BoringSSL.
Спасибо Lukas Tribus.

Изменения в nginx 1.7.8 02.12.2014

*) Изменение: теперь строки “If-Modified-Since”, “If-Range” и им
подобные в заголовке запроса клиента передаются бэкенду при
включённом кэшировании, если nginx заранее знает, что не будет
кэшировать ответ (например, при использовании proxy_cache_min_uses).

*) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
отправляет запрос на бэкенд без кэширования; новые директивы
proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
uwsgi_cache_lock_age позволяют указать, через какое время блокировка
будет принудительно снята и будет сделана ещё одна попытка
закэшировать ответ.

*) Изменение: директива log_format теперь может использоваться только на
уровне http.

*) Добавление: директивы proxy_ssl_certificate,
proxy_ssl_certificate_key, proxy_ssl_password_file,
uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
uwsgi_ssl_password_file.
Спасибо Piotr Sikora.

*) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
именованный location.
Спасибо Toshikuni Fukaya.

*) Добавление: теперь директива tcp_nodelay работает для
SPDY-соединений.

*) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
Спасибо Peter Wu.

*) Исправление: nginx игнорировал значение “s-maxage” в строке
“Cache-Control” в заголовке ответа бэкенда.
Спасибо Piotr Sikora.

*) Исправление: в модуле ngx_http_spdy_module.
Спасибо Piotr Sikora.

*) Исправление: в директиве ssl_password_file при использовании OpenSSL
0.9.8zc, 1.0.0o, 1.0.1j.

*) Исправление: при использовании директивы post_action в лог писались
сообщения “header already sent”; ошибка появилась в nginx 1.5.4.

*) Исправление: при использовании директивы “postpone_output 0” с
SSI-подзапросами в лог могли писаться сообщения “the http output
chain is empty”.

*) Исправление: в директиве proxy_cache_lock при использовании
SSI-подзапросов.
Спасибо Yichun Zhang.

Изменения в nginx 1.7.7 28.10.2014

*) Изменение: теперь nginx учитывает при кэшировании строку “Vary” в
заголовке ответа бэкенда.

*) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
scgi_force_ranges и uwsgi_force_ranges.

*) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
scgi_limit_rate и uwsgi_limit_rate.

*) Добавление: параметр Vary директив proxy_ignore_headers,
fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.

*) Исправление: последняя часть ответа, полученного от бэкенда при
небуферизированном проксировании, могла не отправляться клиенту, если
использовались директивы gzip или gunzip.

*) Исправление: в директиве proxy_cache_revalidate.
Спасибо Piotr Sikora.

*) Исправление: в обработке ошибок.
Спасибо Yichun Zhang и Даниилу Бондареву.

*) Исправление: в директивах proxy_next_upstream_tries и
proxy_next_upstream_timeout.
Спасибо Feng Gu.

*) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
Спасибо Kouhei Sutou.

Изменения в nginx 1.7.6 30.09.2014

*) Изменение: устаревшая директива limit_zone больше не поддерживается.

*) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
можно использовать комбинации нескольких переменных.

*) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
запроса могло передаваться неправильно.

*) Исправление: в логгировании в syslog.

Изменения в nginx 1.7.5 16.09.2014

*) Безопасность: при использовании общего для нескольких блоков server
разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
session tickets было возможно повторно использовать SSL-сессию в
контексте другого блока server (CVE-2014-3616).
Спасибо Antoine Delignat-Lavaud.

*) Изменение: директиву stub_status теперь можно указывать без
параметров.

*) Добавление: параметр always директивы add_header.

*) Добавление: директивы proxy_next_upstream_tries,
proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
memcached_next_upstream_timeout, scgi_next_upstream_tries,
scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
uwsgi_next_upstream_timeout.

*) Исправление: в параметре if директивы access_log.

*) Исправление: в модуле ngx_http_perl_module.
Спасибо Piotr Sikora.

*) Исправление: директива listen почтового прокси-сервера не позволяла
указать более двух параметров.

*) Исправление: директива sub_filter не работала с заменяемой строкой из
одного символа.

*) Исправление: запросы могли зависать, если использовался resolver и в
процессе обращения к DNS-серверу происходил таймаут.

*) Исправление: в модуле ngx_http_spdy_module при использовании
совместно с AIO.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если с помощью директивы set изменялись переменные “$http_…”,
“$sent_http_…” или “$upstream_http_…”.

*) Исправление: в обработке ошибок выделения памяти.
Спасибо Markus Linnala и Feng Gu.

Изменения в nginx 1.7.4 05.08.2014

*) Безопасность: pipelined-команды не отбрасывались после команды
STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
1.5.6.
Спасибо Chris Boulton.

*) Изменение: экранирование символов в URI теперь использует
шестнадцатеричные цифры в верхнем регистре.
Спасибо Piotr Sikora.

*) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
Спасибо Piotr Sikora.

*) Исправление: запросы могли зависать, если использовался resolver и
DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.

*) Исправление: в модуле ngx_http_spdy_module.
Спасибо Piotr Sikora.

*) Исправление: переменная $uri могла содержать мусор при возврате
ошибок с кодом 400.
Спасибо Сергею Боброву.

*) Исправление: в обработке ошибок в директиве proxy_store и в модуле
ngx_http_dav_module.
Спасибо Feng Gu.

*) Исправление: при логгировании ошибок в syslog мог происходить
segmentation fault; ошибка появилась в 1.7.1.

*) Исправление: переменные $geoip_latitude, $geoip_longitude,
$geoip_dma_code и $geoip_area_code могли не работать.
Спасибо Yichun Zhang.

*) Исправление: в обработке ошибок выделения памяти.
Спасибо Tatsuhiko Kubo и Piotr Sikora.

Изменения в nginx 1.7.3 08.07.2014

*) Добавление: weak entity tags теперь не удаляются при изменениях
ответа, а strong entity tags преобразуются в weak.

*) Добавление: ревалидация элементов кэша теперь, если это возможно,
использует заголовок If-None-Match.

*) Добавление: директива ssl_password_file.

*) Исправление: при возврате ответа из кэша заголовок запроса
If-None-Match игнорировался, если в ответе не было заголовка
Last-Modified.

*) Исправление: сообщения “peer closed connection in SSL handshake” при
соединении с бэкендами логгировались на уровне info вместо error.

*) Исправление: в модуле ngx_http_dav_module в nginx/Windows.

*) Исправление: SPDY-соединения могли неожиданно закрываться, если
использовалось кэширование.

Изменения в nginx 1.7.2 17.06.2014

*) Добавление: директива hash в блоке upstream.

*) Добавление: дефрагментация свободных блоков разделяемой памяти.
Спасибо Wandenberg Peixoto и Yichun Zhang.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалось значение access_log по умолчанию; ошибка
появилась в 1.7.0.
Спасибо Piotr Sikora.

*) Исправление: завершающий слэш ошибочно удалялся из последнего
параметра директивы try_files.

*) Исправление: nginx мог не собираться на OS X.

*) Исправление: в модуле ngx_http_spdy_module.

Изменения в nginx 1.7.1 27.05.2014

*) Добавление: переменные “$upstream_cookie_…”.

*) Добавление: переменная $ssl_client_fingerprint.

*) Добавление: директивы error_log и access_log теперь поддерживают
логгирование в syslog.

*) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
соединении.

*) Исправление: утечки памяти при использовании директивы
“ssl_stapling”.
Спасибо Filipe da Silva.

*) Исправление: директива alias внутри location’а, заданного регулярным
выражением, работала неправильно, если использовались директивы if
или limit_except.

*) Исправление: директива charset не ставила кодировку для сжатых
ответов бэкендов.

*) Исправление: директива proxy_pass без URI могла использовать
оригинальный запрос после установки переменной $args.
Спасибо Yichun Zhang.

*) Исправление: в работе параметра none директивы smtp_auth; ошибка
появилась в 1.5.6.
Спасибо Святославу Никольскому.

*) Исправление: при совместном использовании sub_filter и SSI ответы
могли передаваться неверно.

*) Исправление: nginx не собирался с параметром –with-file-aio на
Linux/aarch64.

Изменения в nginx 1.7.0 24.04.2014

*) Добавление: проверка SSL-сертификатов бэкендов.

*) Добавление: поддержка SNI при работе с бэкендами по SSL.

*) Добавление: переменная $ssl_server_name.

*) Добавление: параметр if директивы access_log.

Изменения в nginx 1.5.13 08.04.2014

*) Изменение: улучшена обработка хэш-таблиц; в директивах
variables_hash_max_size и types_hash_bucket_size значения по
умолчанию изменены на 1024 и 64 соответственно.

*) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.

*) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
сохранении ответов в кэш.

*) Исправление: теперь nginx не пишет в лог сообщения “ngx_slab_alloc()
failed: no memory” при использовании разделяемой памяти в
ssl_session_cache и в модуле ngx_http_limit_req_module.

*) Исправление: директива underscores_in_headers не разрешала
подчёркивание в первом символе заголовка.
Спасибо Piotr Sikora.

*) Исправление: cache manager мог нагружать процессор при выходе в
nginx/Windows.

*) Исправление: при использовании ssl_session_cache с параметром shared
рабочий процесс nginx/Windows завершался аварийно.

*) Исправление: в модуле ngx_http_spdy_module.

Изменения в nginx 1.5.12 18.03.2014

*) Безопасность: при обработке специально созданного запроса модулем
ngx_http_spdy_module могло происходить переполнение буфера в рабочем
процессе, что потенциально могло приводить к выполнению произвольного
кода (CVE-2014-0133).
Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
Buenos Aires, Argentina.

*) Добавление: параметр proxy_protocol в директивах listen и
real_ip_header, переменная $proxy_protocol_addr.

*) Исправление: в директиве fastcgi_next_upstream.
Спасибо Lucas Molas.

Изменения в nginx 1.5.11 04.03.2014

*) Безопасность: при обработке специально созданного запроса модулем
ngx_http_spdy_module на 32-битных платформах могла повреждаться
память рабочего процесса, что потенциально могло приводить к
выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
1.5.10.
Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
Buenos Aires, Argentina.

*) Добавление: переменная $ssl_session_reused.

*) Исправление: директива client_max_body_size могла не работать при
чтении тела запроса с использованием chunked transfer encoding;
ошибка появилась в 1.3.9.
Спасибо Lucas Molas.

*) Исправление: при проксировании WebSocket-соединений в рабочем
процессе мог произойти segmentation fault.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался модуль ngx_http_spdy_module на 32-битных
платформах; ошибка появилась в 1.5.10.

*) Исправление: значение переменной $upstream_status могло быть
неверным, если использовались директивы proxy_cache_use_stale или
proxy_cache_revalidate.
Спасибо Piotr Sikora.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если ошибки с кодом 400 с помощью директивы error_page
перенаправлялись в именованный location.

*) Исправление: nginx/Windows не собирался с Visual Studio 2013.

Изменения в nginx 1.5.10 04.02.2014

*) Добавление: модуль ngx_http_spdy_module теперь использует протокол
SPDY 3.1.
Спасибо Automattic и MaxCDN за спонсирование разработки.

*) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
имеющие меньшую длину, чем запрошенная перемотка.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если переменная $ssl_session_id использовалась при логгировании;
ошибка появилась в 1.5.9.

*) Исправление: переменные $date_local и $date_gmt использовали неверный
формат вне модуля ngx_http_ssi_filter_module.

*) Исправление: клиентские соединения могли сразу закрываться, если
использовался отложенный accept; ошибка появилась в 1.3.15.

*) Исправление: сообщения “getsockopt(TCP_FASTOPEN) … failed”
записывались в лог в процессе обновления исполняемого файла на Linux;
ошибка появилась в 1.5.8.
Спасибо Piotr Sikora.

Изменения в nginx 1.5.9 22.01.2014

*) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
закодированный URI.

*) Добавление: директива ssl_buffer_size.

*) Добавление: директиву limit_rate теперь можно использовать для
ограничения скорости передачи ответов клиенту в SPDY-соединениях.

*) Добавление: директива spdy_chunk_size.

*) Добавление: директива ssl_session_tickets.
Спасибо Dirkjan Bussink.

*) Исправление: переменная $ssl_session_id содержала всю сессию в
сериализованном виде вместо её идентификатора.
Спасибо Ivan Ristić.

*) Исправление: nginx неправильно обрабатывал закодированный символ “?”
в команде SSI include.

*) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
при обработке методов COPY и MOVE.

*) Исправление: resolver не понимал доменные имена с точкой в конце.
Спасибо Yichun Zhang.

*) Исправление: при проксировании в логах могли появляться сообщения
“zero size buf in output”; ошибка появилась в 1.3.9.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался модуль ngx_http_spdy_module.

*) Исправление: при использовании методов обработки соединений select,
poll и /dev/poll проксируемые WebSocket-соединения могли зависать
сразу после открытия.

*) Исправление: директива xclient почтового прокси-сервера некорректно
передавала IPv6-адреса.

Изменения в nginx 1.5.8 17.12.2013

*) Добавление: теперь resolver поддерживает IPv6.

*) Добавление: директива listen поддерживает параметр fastopen.
Спасибо Mathew Rodley.

*) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
Спасибо Roberto De Ioris.

*) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
Спасибо Evan Miller.

*) Исправление: при чтении тела запроса с использованием chunked
transfer encoding по SSL-соединению мог произойти таймаут.

*) Исправление: директива master_process работала неправильно в
nginx/Windows.

*) Исправление: параметр setfib директивы listen мог не работать.

*) Исправление: в модуле ngx_http_spdy_module.

Изменения в nginx 1.5.7 19.11.2013

*) Безопасность: символ, следующий за незакодированным пробелом в строке
запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
в 0.8.41.
Спасибо Ivan Fratric из Google Security Team.

*) Изменение: уровень логгирования ошибок auth_basic об отсутствии
пароля понижен с уровня error до info.

*) Добавление: директивы proxy_cache_revalidate,
fastcgi_cache_revalidate, scgi_cache_revalidate и
uwsgi_cache_revalidate.

*) Добавление: директива ssl_session_ticket_key.
Спасибо Piotr Sikora.

*) Исправление: директива “add_header Cache-Control ”” добавляла строку
заголовка ответа “Cache-Control” с пустым значением.

*) Исправление: директива “satisfy any” могла вернуть ошибку 403 вместо
401 при использовании директив auth_request и auth_basic.
Спасибо Jan Marc Hoffmann.

*) Исправление: параметры accept_filter и deferred директивы listen
игнорировались для listen-сокетов, создаваемых в процессе обновления
исполняемого файла.
Спасибо Piotr Sikora.

*) Исправление: часть данных, полученных от бэкенда при
небуферизированном проксировании, могла не отправляться клиенту
сразу, если использовались директивы gzip или gunzip.
Спасибо Yichun Zhang.

*) Исправление: в обработке ошибок в модуле
ngx_http_gunzip_filter_module.

*) Исправление: ответы могли зависать, если использовался модуль
ngx_http_spdy_module и директива auth_request.

*) Исправление: утечки памяти в nginx/Windows.

Изменения в nginx 1.5.6 01.10.2013

*) Добавление: директива fastcgi_buffering.

*) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
Спасибо Piotr Sikora.

*) Добавление: оптимизация SSL handshake при использовании длинных
цепочек сертификатов.

*) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.

*) Исправление: в модуле ngx_http_auth_basic_module при использовании
метода шифрования паролей “$apr1$”.
Спасибо Markus Linnala.

*) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
мог использоваться неверный location, если для задания location’ов
использовались символы разных регистров.

*) Исправление: автоматическое перенаправление с добавлением
завершающего слэша для проксированных location’ов могло не работать.

*) Исправление: в почтовом прокси-сервере.

*) Исправление: в модуле ngx_http_spdy_module.

Изменения в nginx 1.5.5 17.09.2013

*) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
определить протокол не удалось.

*) Добавление: директива disable_symlinks теперь использует O_PATH на
Linux.

*) Добавление: для определения того, что клиент закрыл соединение, при
использовании метода epoll теперь используются события EPOLLRDHUP.

*) Исправление: в директиве valid_referers при использовании параметра
server_names.

*) Исправление: переменная $request_time не работала в nginx/Windows.

*) Исправление: в директиве image_filter.
Спасибо Lanshun Zhou.

*) Исправление: совместимость с OpenSSL 1.0.1f.
Спасибо Piotr Sikora.

Изменения в nginx 1.5.4 27.08.2013

*) Изменение: MIME-тип для расширения js изменён на
“application/javascript”; значение по умолчанию директивы
charset_types изменено соответственно.

*) Изменение: теперь директива image_filter с параметром size возвращает
ответ с MIME-типом “application/json”.

*) Добавление: модуль ngx_http_auth_request_module.

*) Исправление: на старте или во время переконфигурации мог произойти
segmentation fault, если использовалась директива try_files с пустым
параметром.

*) Исправление: утечки памяти при использовании в директивах root и
auth_basic_user_file относительных путей, заданных с помощью
переменных.

*) Исправление: директива valid_referers неправильно выполняла
регулярные выражения, если заголовок Referer начинался с “https://”.
Спасибо Liangbin Li.

*) Исправление: ответы могли зависать, если использовались подзапросы и
при обработке подзапроса происходила ошибка во время SSL handshake с
бэкендом.
Спасибо Aviram Cohen.

*) Исправление: в модуле ngx_http_autoindex_module.

*) Исправление: в модуле ngx_http_spdy_module.

Изменения в nginx 1.5.3 30.07.2013

*) Изменение во внутреннем API: теперь при небуферизированной работе с
бэкендами u->length по умолчанию устанавливается в -1.

*) Изменение: теперь при получении неполного ответа от бэкенда nginx
отправляет полученную часть ответа, после чего закрывает соединение с
клиентом.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался модуль ngx_http_spdy_module и директива
client_body_in_file_only.

*) Исправление: параметр so_keepalive директивы listen мог работать
некорректно на DragonFlyBSD.
Спасибо Sepherosa Ziehau.

*) Исправление: в модуле ngx_http_xslt_filter_module.

*) Исправление: в модуле ngx_http_sub_filter_module.

Изменения в nginx 1.5.2 02.07.2013

*) Добавление: теперь можно использовать несколько директив error_log.

*) Исправление: метод $r->header_in() встроенного перла не возвращал
значения строк “Cookie” и “X-Forwarded-For” из заголовка запроса;
ошибка появилась в 1.3.14.

*) Исправление: в модуле ngx_http_spdy_module.
Спасибо Jim Radford.

*) Исправление: nginx не собирался на Linux при использовании x32 ABI.
Спасибо Сергею Иванцову.

Изменения в nginx 1.5.1 04.06.2013

*) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
xslt_last_modified.
Спасибо Алексею Колпакову.

*) Добавление: параметр http_403 в директивах proxy_next_upstream,
fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.

*) Добавление: директивы allow и deny теперь поддерживают unix domain
сокеты.

*) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.

*) Исправление: в директиве proxy_set_body.
Спасибо Lanshun Zhou.

*) Исправление: в директиве lingering_time.
Спасибо Lanshun Zhou.

*) Исправление: параметр fail_timeout директивы server в блоке upstream
мог не работать, если использовался параметр max_fails; ошибка
появилась в 1.3.0.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалась директива ssl_stapling.
Спасибо Piotr Sikora.

*) Исправление: в почтовом прокси-сервере.
Спасибо Filipe Da Silva.

*) Исправление: nginx/Windows мог перестать принимать соединения, если
использовалось несколько рабочих процессов.

Изменения в nginx 1.5.0 07.05.2013

*) Безопасность: при обработке специально созданного запроса мог
перезаписываться стек рабочего процесса, что могло приводить к
выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
1.3.9.
Спасибо Greg MacManus, iSIGHT Partners Labs.

Изменения в nginx 1.4.0 24.04.2013

*) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
использовался параметр –with-openssl; ошибка появилась в 1.3.16.

*) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
ошибка появилась в 1.3.9.

Изменения в nginx 1.3.16 16.04.2013

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовались подзапросы; ошибка появилась в 1.3.9.

*) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
WebSocket-соединений в unix domain сокет.

*) Исправление: переменная $upstream_response_length возвращала значение
“0”, если не использовалась буферизация.
Спасибо Piotr Sikora.

*) Исправление: в методах обработки соединений eventport и /dev/poll.

Изменения в nginx 1.3.15 26.03.2013

*) Изменение: открытие и закрытие соединения без отправки в нём
каких-либо данных больше не записывается в access_log с кодом ошибки
400.

*) Добавление: модуль ngx_http_spdy_module.
Спасибо Automattic за спонсирование разработки.

*) Добавление: директивы limit_req_status и limit_conn_status.
Спасибо Nick Marden.

*) Добавление: директива image_filter_interlace.
Спасибо Ивану Боброву.

*) Добавление: переменная $connections_waiting в модуле
ngx_http_stub_status_module.

*) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.

*) Исправление: при повторной отправке запроса на бэкенд тело запроса
могло передаваться неправильно; ошибка появилась в 1.3.9.
Спасибо Piotr Sikora.

*) Исправление: в директиве client_body_in_file_only; ошибка появилась в
1.3.9.

*) Исправление: ответы могли зависать, если использовались подзапросы и
при обработке подзапроса происходила DNS-ошибка.
Спасибо Lanshun Zhou.

*) Исправление: в процедуре учёта использования бэкендов.

Изменения в nginx 1.3.14 05.03.2013

*) Добавление: переменные $connections_active, $connections_reading и
$connections_writing в модуле ngx_http_stub_status_module.

*) Добавление: поддержка WebSocket-соединений в модулях
ngx_http_uwsgi_module и ngx_http_scgi_module.

*) Исправление: в обработке виртуальных серверов при использовании SNI.

*) Исправление: при использовании директивы “ssl_session_cache shared”
новые сессии могли не сохраняться, если заканчивалось место в
разделяемой памяти.
Спасибо Piotr Sikora.

*) Исправление: несколько заголовков X-Forwarded-For обрабатывались
неправильно.
Спасибо Neal Poole за спонсирование разработки.

*) Исправление: в модуле ngx_http_mp4_module.
Спасибо Gernot Vormayr.

Изменения в nginx 1.3.13 19.02.2013

*) Изменение: теперь для сборки по умолчанию используется компилятор с
именем “cc”.

*) Добавление: поддержка проксирования WebSocket-соединений.
Спасибо Apcera и CloudBees за спонсирование разработки.

*) Добавление: директива auth_basic_user_file поддерживает шифрование
паролей методом “{SHA}”.
Спасибо Louis Opter.

Изменения в nginx 1.3.12 05.02.2013

*) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
scgi_bind и uwsgi_bind поддерживают переменные.

*) Добавление: переменные $pipe, $request_length, $time_iso8601 и
$time_local теперь можно использовать не только в директиве
log_format.
Спасибо Kiril Kalchev.

*) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
Спасибо Gregor Kališnik.

*) Исправление: директива proxy_method работала неверно, если была
указана на уровне http.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался resolver и метод poll.

*) Исправление: nginx мог нагружать процессор во время SSL handshake с
бэкендом при использовании методов обработки соединений select, poll
и /dev/poll.

*) Исправление: ошибка “[crit] SSL_write() failed (SSL:)”.

*) Исправление: в директиве client_body_in_file_only; ошибка появилась в
1.3.9.

*) Исправление: в директиве fastcgi_keep_conn.

Изменения в nginx 1.3.11 10.01.2013

*) Исправление: при записи в лог мог происходить segmentation fault;
ошибка появилась в 1.3.10.

*) Исправление: директива proxy_pass не работала с IP-адресами без
явного указания порта; ошибка появилась в 1.3.10.

*) Исправление: на старте или во время переконфигурации происходил
segmentation fault, если директива keepalive была указана несколько
раз в одном блоке upstream.

*) Исправление: параметр default директивы geo не определял значение по
умолчанию для IPv6-адресов.

Изменения в nginx 1.3.10 25.12.2012

*) Изменение: для указанных в конфигурационном файле доменных имён
теперь используются не только IPv4, но и IPv6 адреса.

*) Изменение: теперь при использовании директивы include с маской на
Unix-системах включаемые файлы сортируются в алфавитном порядке.

*) Изменение: директива add_header добавляет строки в ответы с кодом
201.

*) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
CIDR.

*) Добавление: параметры flush и gzip в директиве access_log.

*) Добавление: директива auth_basic поддерживает переменные.

*) Исправление: nginx в некоторых случаях не собирался с модулем
ngx_http_perl_module.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался модуль ngx_http_xslt_module.

*) Исправление: nginx мог не собираться на MacOSX.
Спасибо Piotr Sikora.

*) Исправление: при использовании директивы limit_rate с большими
значениями скорости на 32-битных системах ответ мог возвращаться не
целиком.
Спасибо Алексею Антропову.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалась директива if.
Спасибо Piotr Sikora.

*) Исправление: ответ “100 Continue” выдавался вместе с ответом “413
Request Entity Too Large”.

*) Исправление: директивы image_filter, image_filter_jpeg_quality и
image_filter_sharpen могли наследоваться некорректно.
Спасибо Ивану Боброву.

*) Исправление: при использовании директивы auth_basic под Linux могли
возникать ошибки “crypt_r() failed”.

*) Исправление: в обработке backup-серверов.
Спасибо Thomas Chen.

*) Исправление: при проксировании HEAD-запросов мог возвращаться
некорректный ответ, если использовалась директива gzip.

Изменения в nginx 1.3.9 27.11.2012

*) Добавление: поддержка chunked transfer encoding при получении тела
запроса.

*) Добавление: переменные $request_time и $msec теперь можно
использовать не только в директиве log_format.

*) Исправление: cache manager и cache loader могли не запускаться, если
использовалось более 512 listen-сокетов.

*) Исправление: в модуле ngx_http_dav_module.

Изменения в nginx 1.3.8 30.10.2012

*) Добавление: параметр optional_no_ca директивы ssl_verify_client.
Спасибо Михаилу Казанцеву и Eric O’Connor.

*) Добавление: переменные $bytes_sent, $connection и
$connection_requests теперь можно использовать не только в директиве
log_format.
Спасибо Benjamin Grössing.

*) Добавление: параметр auto директивы worker_processes.

*) Исправление: сообщения “cache file … has md5 collision”.

*) Исправление: в модуле ngx_http_gunzip_filter_module.

*) Исправление: в директиве ssl_stapling.

Изменения в nginx 1.3.7 02.10.2012

*) Добавление: поддержка OCSP stapling.
Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.

*) Добавление: директива ssl_trusted_certificate.

*) Добавление: теперь resolver случайным образом меняет порядок
возвращаемых закэшированных адресов.
Спасибо Антону Жулину.

*) Исправление: совместимость с OpenSSL 0.9.7.

Изменения в nginx 1.3.6 12.09.2012

*) Добавление: модуль ngx_http_gunzip_filter_module.

*) Добавление: директива memcached_gzip_flag.

*) Добавление: параметр always директивы gzip_static.

*) Исправление: в директиве “limit_req”; ошибка появилась в 1.1.14.
Спасибо Charles Chen.

*) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
использовался параметр –with-ipv6.

Изменения в nginx 1.3.5 21.08.2012

*) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
дорожки в форматах, отличных от H.264 и AAC.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если в директиве map в качестве значений использовались переменные.

*) Исправление: в рабочем процессе мог произойти segmentation fault при
использовании директивы geo с параметром ranges, но без параметра
default; ошибка появилась в 0.8.43.
Спасибо Zhen Chen и Weibin Yao.

*) Исправление: в обработке параметра командной строки -p.

*) Исправление: в почтовом прокси-сервере.

*) Исправление: незначительных потенциальных ошибок.
Спасибо Coverity.

*) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
Спасибо HAYASHI Kentaro.

Изменения в nginx 1.3.4 31.07.2012

*) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
по умолчанию.

*) Добавление: поддержка компилятора Clang.

*) Исправление: могли создаваться лишние слушающие сокеты.
Спасибо Роману Одайскому.

*) Исправление: nginx/Windows мог нагружать процессор, если при запуске
рабочего процесса происходила ошибка.
Спасибо Ricardo Villalobos Guevara.

*) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
наследоваться некорректно.

Изменения в nginx 1.3.3 10.07.2012

*) Добавление: поддержка entity tags и директива etag.

*) Исправление: при использовании директивы map с параметром hostnames
не игнорировалась конечная точка в исходном значении.

*) Исправление: для обработки запроса мог использоваться неверный
location, если переход в именованный location происходил после
изменения URI с помощью директивы rewrite.

Изменения в nginx 1.3.2 26.06.2012

*) Изменение: параметр single директивы keepalive теперь игнорируется.

*) Изменение: сжатие SSL теперь отключено в том числе при использовании
OpenSSL старее 1.0.0.

*) Добавление: директиву “ip_hash” теперь можно использовать для
балансировки IPv6 клиентов.

*) Добавление: переменную $status теперь можно использовать не только в
директиве log_format.

*) Исправление: при завершении рабочего процесса мог произойти
segmentation fault, если использовалась директива resolver.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался модуль ngx_http_mp4_module.

*) Исправление: в модуле ngx_http_mp4_module.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовались конфликтующие имена серверов с масками.

*) Исправление: на платформе ARM nginx мог аварийно завершаться по
сигналу SIGBUS.

*) Исправление: во время переконфигурации на HP-UX в лог записывался
alert “sendmsg() failed (9: Bad file number)”.

Изменения в nginx 1.3.1 05.06.2012

*) Безопасность: теперь nginx/Windows игнорирует точку в конце
компонента URI и не разрешает URI, содержащие последовательность
“:$”.
Спасибо Владимиру Кочеткову, Positive Research Center.

*) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
и директива server в блоке upstream теперь поддерживают IPv6-адреса.

*) Добавление: в директиве resolver теперь можно указывать порт и
задавать IPv6-адреса DNS-серверов.

*) Добавление: директива least_conn в блоке upstream.

*) Добавление: при использовании директивы ip_hash теперь можно задавать
веса серверов.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалась директива image_filter; ошибка появилась в 1.3.0.

*) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
появилась в 1.1.12.

*) Исправление: доступ к переменным из SSI и встроенного перла мог не
работать после переконфигурации.
Спасибо Yichun Zhang.

*) Исправление: в модуле ngx_http_xslt_filter_module.
Спасибо Kuramoto Eiji.

*) Исправление: утечки памяти при использовании переменной $geoip_org.
Спасибо Денису Латыпову.

*) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.

Изменения в nginx 1.3.0 15.05.2012

*) Добавление: директива debug_connection теперь поддерживает
IPv6-адреса и параметр “unix:”.

*) Добавление: директива set_real_ip_from и параметр proxy директивы geo
теперь поддерживают IPv6-адреса.

*) Добавление: директивы real_ip_recursive, geoip_proxy и
geoip_proxy_recursive.

*) Добавление: параметр proxy_recursive директивы geo.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалась директива resolver.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
и бэкенд возвращал некорректный ответ.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалась директива rewrite и в новых аргументах запроса в
строке замены использовались переменные.

*) Исправление: nginx мог нагружать процессор, если было достигнуто
ограничение на количество открытых файлов.

*) Исправление: при использовании директивы proxy_next_upstream с
параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
блоке upstream был хотя бы один сервер с флагом backup.

*) Исправление: при использовании директивы ip_hash установка параметра
down директивы server могла приводить к ненужному перераспределению
клиентов между бэкендами.

*) Исправление: утечки сокетов.
Спасибо Yichun Zhang.

*) Исправление: в модуле ngx_http_fastcgi_module.

Изменения в nginx 1.2.0 23.04.2012

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалась директива try_files; ошибка появилась в 1.1.19.

*) Исправление: ответ мог быть передан не полностью, если использовалось
больше IOV_MAX буферов.

*) Исправление: в работе параметра crop директивы image_filter.
Спасибо Maxim Bublis.

Изменения в nginx 1.1.19 12.04.2012

*) Безопасность: при обработке специально созданного mp4 файла модулем
ngx_http_mp4_module могли перезаписываться области памяти рабочего
процесса, что могло приводить к выполнению произвольного кода
(CVE-2012-2089).
Спасибо Matthew Daley.

*) Исправление: nginx/Windows мог завершаться аварийно.
Спасибо Vincent Lee.

*) Исправление: nginx нагружал процессор, если все серверы в upstream’е
были помечены флагом backup.

*) Исправление: директивы allow и deny могли наследоваться некорректно,
если в них использовались IPv6 адреса.

*) Исправление: директивы modern_browser и ancient_browser могли
наследоваться некорректно.

*) Исправление: таймауты могли работать некорректно на Solaris/SPARC.

*) Исправление: в модуле ngx_http_mp4_module.

Изменения в nginx 1.1.18 28.03.2012

*) Изменение: теперь keepalive соединения не запрещены для Safari по
умолчанию.

*) Добавление: переменная $connection_requests.

*) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
$tcpinfo_snd_cwnd и $tcpinfo_rcv_space.

*) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.

*) Добавление: директивы xslt_param и xslt_string_param.
Спасибо Samuel Behan.

*) Исправление: в configure.
Спасибо Piotr Sikora.

*) Исправление: в модуле ngx_http_xslt_filter_module.

*) Исправление: nginx не собирался на Debian GNU/Hurd.

Изменения в nginx 1.1.17 15.03.2012

*) Безопасность: содержимое ранее освобождённой памяти могло быть
отправлено клиенту, если бэкенд возвращал специально созданный ответ.
Спасибо Matthew Daley.

*) Исправление: при использовании встроенного перла из SSI.
Спасибо Matthew Daley.

*) Исправление: в модуле ngx_http_uwsgi_module.

Изменения в nginx 1.1.16 29.02.2012

*) Изменение: ограничение на количество одновременных подзапросов
поднято до 200.

*) Добавление: параметр from в директиве disable_symlinks.

*) Добавление: директивы return и error_page теперь могут использоваться
для возврата перенаправлений с кодом 307.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалась директива resolver и на глобальном уровне не была
задана директива error_log.
Спасибо Роману Арутюняну.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовались директивы “proxy_http_version 1.1” или
“fastcgi_keep_conn on”.

*) Исправление: утечек памяти.
Спасибо Lanshun Zhou.

*) Исправление: в директиве disable_symlinks.

*) Исправление: при использовании ZFS размер кэша на диске мог считаться
некорректно; ошибка появилась в 1.0.1.

*) Исправление: nginx не собирался компилятором icc 12.1.

*) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
1.1.15.

Изменения в nginx 1.1.15 15.02.2012

*) Добавление: директива disable_symlinks.

*) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.

*) Исправление: nginx мог некорректно сообщать об ошибке “upstream
prematurely closed connection” вместо “upstream sent too big header”.
Спасибо Feibo Li.

*) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
использовался параметр –with-openssl.

*) Исправление: количество внутренних перенаправлений в именованные
location’ы не ограничивалось.

*) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
ошибкам в модуле ngx_http_gzip_filter_module.

*) Исправление: при использовании директивы proxy_store с
SSI-подзапросами временные файлы могли не удаляться.

*) Исправление: в некоторых случаях некэшируемые переменные (такие, как
$args) возвращали старое пустое закэшированное значение.

*) Исправление: в рабочем процессе мог произойти segmentation fault,
если одновременно создавалось слишком много SSI-подзапросов; ошибка
появилась в 0.7.25.

Изменения в nginx 1.1.14 30.01.2012

*) Добавление: теперь можно указать несколько ограничений limit_req
одновременно.

*) Исправление: в обработке ошибок при соединении с бэкендом.
Спасибо Piotr Sikora.

*) Исправление: в обработке ошибок при использовании AIO на FreeBSD.

*) Исправление: в инициализации библиотеки OpenSSL.

*) Исправление: директивы proxy_redirect могли наследоваться
некорректно.

*) Исправление: утечки памяти при переконфигурации, если использовалась
директива pcre_jit.

Изменения в nginx 1.1.13 16.01.2012

*) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.

*) Исправление: параметры директивы limit_req наследовались некорректно;
ошибка появилась в 1.1.12.

*) Исправление: директива proxy_redirect некорректно обрабатывала
заголовок Refresh при использовании регулярных выражений.

*) Исправление: директива proxy_cache_use_stale с параметром error не
возвращала ответ из кэша, если все бэкенды были признаны
неработающими.

*) Исправление: директива worker_cpu_affinity могла не работать.

*) Исправление: nginx не собирался на Solaris; ошибка появилась в
1.1.12.

*) Исправление: в модуле ngx_http_mp4_module.

Изменения в nginx 1.1.12 26.12.2011

*) Изменение: после перенаправления запроса с помощью директивы
error_page директива proxy_pass без URI теперь использует изменённый
URI.
Спасибо Lanshun Zhou.

*) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.

*) Добавление: директива pcre_jit.

*) Добавление: SSI команда if поддерживает выделения в регулярных
выражениях.

*) Исправление: SSI команда if не работала внутри команды block.

*) Исправление: директивы limit_conn_log_level и limit_req_log_level
могли не работать.

*) Исправление: директива limit_rate не позволяла передавать на полной
скорости, даже если был указан очень большой лимит.

*) Исправление: директива sendfile_max_chunk не работала, если
использовалась директива limit_rate.

*) Исправление: если в директиве proxy_pass использовались переменные и
не был указан URI, всегда использовался URI исходного запроса.

*) Исправление: после перенаправления запроса с помощью директивы
try_files директива proxy_pass без URI могла использовать URI
исходного запроса.
Спасибо Lanshun Zhou.

*) Исправление: в модуле ngx_http_scgi_module.

*) Исправление: в модуле ngx_http_mp4_module.

*) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.

Изменения в 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.
Спасибо Максиму Дунину.

*) Исправление: при проксировании SMTP 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_capabilities и
xclient.
Спасибо Антону Южанинову и Максиму Дунину.

*) Добавление: теперь keep-alive соединения закрываются сразу же по
получении сигнала переконфигурации.

*) Изменение: директивы imap и auth переименованы соответственно в mail
и pop3_auth.

*) Исправление: если использовался метод аутентификации CRAM-MD5 и не
был разрешён метод APOP, то в рабочем процессе происходил
segmentation fault.

*) Исправление: при использовании директивы starttls only в протоколе
POP3 nginx разрешал аутентификацию без перехода в режим SSL.

*) Исправление: рабочие процессы не выходили после переконфигурации и не
переоткрывали логи, если использовался метод eventport.

*) Исправление: при использовании директивы ip_hash рабочий процесс мог
зациклиться.

*) Исправление: теперь nginx не пишет в лог некоторые alert’ы, если
используются методы eventport или /dev/poll.

Изменения в nginx 0.5.14 23.02.2007

*) Исправление: nginx игнорировал лишние закрывающие скобки “}” в конце
конфигурационного файла.

Изменения в nginx 0.5.13 19.02.2007

*) Добавление: методы COPY и MOVE.

*) Исправление: модуль ngx_http_realip_module устанавливал мусор для
запросов, переданных по keep-alive соединению.

*) Исправление: nginx не работал на 64-битном big-endian Linux.
Спасибо Андрею Нигматулину.

*) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
теперь сразу закрывает соединение, а не по таймауту.

*) Исправление: если при использовании метода epoll клиент закрывал
преждевременно соединение со своей стороны, то nginx закрывал это
соединение только по истечении таймаута на передачу.

*) Исправление: nginx не собирался на платформах, отличных от i386,
amd64, sparc и ppc; ошибка появилась в 0.5.8.

Изменения в nginx 0.5.12 12.02.2007

*) Исправление: nginx не собирался на платформах, отличных от i386,
amd64, sparc и ppc; ошибка появилась в 0.5.8.

*) Исправление: при использовании временных файлов в время работы с
FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
ошибка появилась в 0.5.8.

*) Исправление: если переменная $fastcgi_script_name записывалась в лог,
то в рабочем процессе мог произойти segmentation fault.

*) Исправление: ngx_http_perl_module не собирался на Solaris.

Изменения в nginx 0.5.11 05.02.2007

*) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
Спасибо Chris McGrath.

*) Исправление: ответ был неверным, если запрашивалось несколько
диапазонов; ошибка появилась в 0.5.6.

*) Исправление: директива create_full_put_path не могла создавать
промежуточные каталоги, если не была установлена директива
dav_access.
Спасибо Evan Miller.

*) Исправление: вместо кодов ошибок “400” и “408” в access_log мог
записываться код “0”.

*) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
произойти segmentation fault.

Изменения в nginx 0.5.10 26.01.2007

*) Исправление: во время обновления исполняемого файла новый процесс не
наследовал слушающие сокеты; ошибка появилась в 0.5.9.

*) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
произойти segmentation fault; ошибка появилась в 0.5.1.

Изменения в nginx 0.5.9 25.01.2007

*) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
использует значение переменной $memcached_key.

*) Добавление: переменная $memcached_key.

*) Добавление: параметр clean в директиве client_body_in_file_only.

*) Добавление: директива env.

*) Добавление: директива sendfile работает внутри блока if.

*) Добавление: теперь при ошибке записи в access_log nginx записывает
сообщение в error_log, но не чаще одного раза в минуту.

*) Исправление: директива “access_log off” не всегда запрещала запись в
лог.

Изменения в nginx 0.5.8 19.01.2007

*) Исправление: если использовалась директива
“client_body_in_file_only on” и тело запроса было небольшое, то мог
произойти segmentation fault.

*) Исправление: происходил segmentation fault, если использовались
директивы “client_body_in_file_only on” и
“proxy_pass_request_body off” или “fastcgi_pass_request_body off”, и
делался переход к следующему бэкенду.

*) Исправление: если при использовании директивы “proxy_buffering off”
соединение с клиентом было неактивно, то оно закрывалось по таймауту,
заданному директивой send_timeout; ошибка появилась в 0.4.7.

*) Исправление: если при использовании метода epoll клиент закрывал
преждевременно соединение со своей стороны, то nginx закрывал это
соединение только по истечении таймаута на передачу.

*) Исправление: ошибки “[alert] zero size buf” при работе с
FastCGI-сервером.

*) Исправление ошибок в директиве limit_zone.

Изменения в nginx 0.5.7 15.01.2007

*) Добавление: оптимизация использования памяти в ssl_session_cache.

*) Исправление ошибок в директивах ssl_session_cache и limit_zone.

*) Исправление: на старте или во время переконфигурации происходил
segmentation fault, если директивы ssl_session_cache или limit_zone
использовались на 64-битных платформах.

*) Исправление: при использовании директив add_before_body или
add_after_body происходил segmentation fault, если в заголовке ответа
нет строки “Content-Type”.

*) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
потоков.
Спасибо Дену Иванову.

*) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.

Изменения в nginx 0.5.6 09.01.2007

*) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
кроме GET, HEAD и POST.

*) Добавление: модуль ngx_http_limit_zone_module.

*) Добавление: переменная $binary_remote_addr.

*) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
ngx_imap_ssl_module.

*) Добавление: метод DELETE поддерживает рекурсивное удаление.

*) Исправление: при использовании $r->sendfile() byte-ranges
передавались неверно.

Изменения в nginx 0.5.5 24.12.2006

*) Изменение: ключ -v больше не выводит информацию о компиляторе.

*) Добавление: ключ -V.

*) Добавление: директива worker_rlimit_core поддерживает указание
размера в K, M и G.

*) Исправление: модуль nginx.pm теперь может устанавливаться
непривилегированным пользователем.

*) Исправление: при использовании методов $r->request_body или
$r->request_body_file мог произойти segmentation fault.

*) Исправление: ошибок, специфичных для платформы ppc.

Изменения в nginx 0.5.4 15.12.2006

*) Добавление: директиву perl можно использовать внутри блока
limit_except.

*) Исправление: модуль ngx_http_dav_module требовал строку “Date” в
заголовке запроса для метода DELETE.

*) Исправление: при использовании одного параметра в директиве
dav_access nginx мог сообщить об ошибке в конфигурации.

*) Исправление: при использовании переменной $host мог произойти
segmentation fault; ошибка появилась в 0.4.14.

Изменения в nginx 0.5.3 13.12.2006

*) Добавление: модуль ngx_http_perl_module поддерживает методы
$r->status, $r->log_error и $r->sleep.

*) Добавление: метод $r->variable поддерживает переменные, неописанные в
конфигурации nginx’а.

*) Исправление: метод $r->has_request_body не работал.

Изменения в nginx 0.5.2 11.12.2006

*) Исправление: если в директивах proxy_pass использовалось имя,
указанное в upstream, то nginx пытался найти IP-адрес этого имени;
ошибка появилась в 0.5.1.

Изменения в nginx 0.5.1 11.12.2006

*) Исправление: директива post_action могла не работать после неудачного
завершения запроса.

*) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
Спасибо Bron Gondwana.

*) Исправление: при указании в директиве fastcgi_pass имени описанного
upstream’а выдавалось сообщение “no port in upstream”; ошибка
появилась в 0.5.0.

*) Исправление: если в директивах proxy_pass и fastcgi_pass
использовались одинаковых имена серверов, но с разными портами, то
эти директивы использовали первый описанный порт; ошибка появилась в
0.5.0.

*) Исправление: если в директивах proxy_pass и fastcgi_pass
использовались unix domain сокеты, то эти директивы использовали
первый описанный сокет; ошибка появилась в 0.5.0.

*) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
если он был указан в последней строке файла паролей и после пароля не
было перевода строки, возврата каретки или символа “:”.

*) Исправление: переменная $upstream_response_time могла быть равна
“0.000”, хотя время обработки было больше 1 миллисекунды.

Изменения в nginx 0.5.0 04.12.2006

*) Изменение: параметры в виде “%name” в директиве log_format больше не
поддерживаются.

*) Изменение: директивы proxy_upstream_max_fails,
proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
memcached_upstream_fail_timeout больше не поддерживаются.

*) Добавление: директива server в блоке upstream поддерживает параметры
max_fails, fail_timeout и down.

*) Добавление: директива ip_hash в блоке upstream.

*) Добавление: статус WAIT в строке “Auth-Status” в заголовке ответа
сервера аутентификации IMAP/POP3 прокси.

*) Исправление: nginx не собирался на 64-битных платформах; ошибка
появилась в 0.4.14.

Изменения в nginx 0.4.14 27.11.2006

*) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.

*) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
Linux и NetBSD.

*) Исправление: ngx_http_perl_module не работал с перлом, собранным с
поддержкой потоков; ошибка появилась в 0.3.38.

*) Исправление: ngx_http_perl_module не работал корректно, если перл
вызывался рекурсивно.

*) Исправление: nginx игнорировал имя сервера в строке запроса.

*) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
процесс мог зациклиться.

*) Исправление: при изменении системного времени переменная
$upstream_response_time могла быть отрицательной.

*) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
прокси не передавался параметр Auth-Login-Attempt.

*) Исправление: при ошибке соединения с сервером аутентификации
IMAP/POP3 прокси мог произойти segmentation fault.

Изменения в nginx 0.4.13 15.11.2006

*) Добавление: директиву proxy_pass можно использовать внутри блока
limit_except.

*) Добавление: директива limit_except поддерживает все WebDAV методы.

*) Исправление: при использовании директивы add_before_body без
директивы add_after_body ответ передавался не полностью.

*) Исправление: большое тело запроса не принималось, если использовались
метод epoll и deferred accept().

*) Исправление: для ответов модуля ngx_http_autoindex_module не
выставлялась кодировка; ошибка появилась в 0.3.50.

*) Исправление: ошибки “[alert] zero size buf” при работе с
FastCGI-сервером;

*) Исправление: параметр конфигурации –group= игнорировался.
Спасибо Thomas Moschny.

*) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
в 0.3.50.

Изменения в nginx 0.4.12 31.10.2006

*) Добавление: модуль ngx_http_perl_module поддерживает метод
$r->variable.

*) Исправление: при включении в ответ большого статического файла с
помощью SSI ответ мог передаваться не полностью.

*) Исправление: nginx не убирал “#fragment” в URI.

Изменения в nginx 0.4.11 25.10.2006

*) Добавление: POP3 прокси поддерживает AUTH LOIGN PLAIN и CRAM-MD5.

*) Добавление: модуль ngx_http_perl_module поддерживает метод
$r->allow_ranges.

*) Исправление: при включённой поддержке команды APOP в POP3 прокси
могли не работать команды USER/PASS; ошибка появилась в 0.4.10.

Изменения в nginx 0.4.10 23.10.2006

*) Добавление: POP3 прокси поддерживает APOP.

*) Исправление: при использовании методов select, poll и /dev/poll во
время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
нагружал процессор.

*) Исправление: при использовании переменной $server_addr в директиве
map мог произойти segmentation fault.

*) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
для полных ответов; ошибка появилась в 0.4.7.

*) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
0.4.9.

Изменения в nginx 0.4.9 13.10.2006

*) Добавление: параметр set в команде SSI include.

*) Добавление: модуль ngx_http_perl_module теперь проверяет версию
модуля nginx.pm.

Изменения в nginx 0.4.8 11.10.2006

*) Исправление: если до команды SSI include с параметром wait
выполнялась ещё одна команда SSI include, то параметр wait мог не
работать.

*) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
полных ответов.
Спасибо Алексею Ковырину.

Изменения в nginx 0.4.7 10.10.2006

*) Добавление: модуль ngx_http_flv_module.

*) Добавление: переменная $request_body_file.

*) Добавление: директивы charset и source_charset поддерживают
переменные.

*) Исправление: если до команды SSI include с параметром wait
выполнялась ещё одна команда SSI include, то параметр wait мог не
работать.

*) Исправление: при использовании директивы “proxy_buffering off” или
при работе с memcached соединения могли не закрываться по таймауту.

*) Исправление: nginx не запускался на 64-битных платформах, отличных от
amd64, sparc64 и ppc64.

Изменения в nginx 0.4.6 06.10.2006

*) Исправление: nginx не запускался на 64-битных платформах, отличных от
amd64, sparc64 и ppc64.

*) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
chunk’ами, если длина ответа в методе
$r->headers_out(“Content-Length”, …) была задана текстовой строкой.

*) Исправление: после перенаправления ошибки с помощью директивы
error_page любая директива модуля ngx_http_rewrite_module возвращала
эту ошибку; ошибка появилась в 0.4.4.

Изменения в nginx 0.4.5 02.10.2006

*) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
в 0.4.4.

Изменения в nginx 0.4.4 02.10.2006

*) Добавление: переменная $scheme.

*) Добавление: директива expires поддерживает параметр max.

*) Добавление: директива include поддерживает маску “*”.
Спасибо Jonathan Dance.

*) Исправление: директива return всегда изменяла код ответа,
перенаправленного директивой error_page.

*) Исправление: происходил segmentation fault, если в методе PUT
передавалось тело нулевой длины.

*) Исправление: при использовании переменных в директиве proxy_redirect
редирект изменялся неверно.

Изменения в nginx 0.4.3 26.09.2006

*) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
error_page.

*) Добавление: поддержка Solaris 10 event ports.

*) Добавление: модуль ngx_http_browser_module.

*) Исправление: при перенаправлении ошибки 400 проксированному серверу
помощью директивы error_page мог произойти segmentation fault.

*) Исправление: происходил segmentation fault, если в директиве
proxy_pass использовался unix domain сокет; ошибка появилась в
0.3.47.

*) Исправление: SSI не работал с ответами memcached и
небуферизированными проксированными ответами.

*) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.

Изменения в nginx 0.4.2 14.09.2006

*) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
появилась в 0.4.1.

Изменения в nginx 0.4.1 14.09.2006

*) Исправление: совместимость с DragonFlyBSD.
Спасибо Павлу Назарову.

*) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
файлов больше 2G.

*) Добавление: теперь на Linux nginx для статических запросов использует
флаг O_NOATIME.
Спасибо Yusuf Goolamabbas.

Изменения в nginx 0.4.0 30.08.2006

*) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
фазы init module в фазу HTTP postconfiguration.

*) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
считывается заранее: нужно явно инициировать чтение с помощью метода
$r->has_request_body.

*) Добавление: модуль ngx_http_perl_module поддерживает код возврата
DECLINED.

*) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
заголовка “Date” для метода PUT.

*) Добавление: директива ssi работает внутри блока if.

*) Исправление: происходил segmentation fault, если в директиве index
использовалась переменные и при этом первое имя индексного файла было
без переменных; ошибка появилась в 0.1.29.

Изменения в nginx 0.3.61 28.08.2006

*) Изменение: директива tcp_nodelay теперь по умолчанию включена.

*) Добавление: директива msie_refresh.

*) Добавление: директива recursive_error_pages.

*) Исправление: директива rewrite возвращала неправильный редирект, если
редирект включал в себя выделенные закодированные символы из
оригинального URI.

Изменения в nginx 0.3.60 18.08.2006

*) Исправление: во время перенаправления ошибки рабочий процесс мог
зациклиться; ошибка появилась в 0.3.59.

Изменения в nginx 0.3.59 16.08.2006

*) Добавление: теперь можно делать несколько перенаправлений через
директиву error_page.

*) Исправление: директива dav_access не поддерживала три параметра.

*) Исправление: директива error_page не изменяла строку “Content-Type”
после перенаправления с помощью “X-Accel-Redirect”; ошибка появилась
в 0.3.58.

Изменения в nginx 0.3.58 14.08.2006

*) Добавление: директива error_page поддерживает переменные.

*) Изменение: теперь на Linux используется интерфейс procfs вместо
sysctl.

*) Изменение: теперь при использовании “X-Accel-Redirect” строка
“Content-Type” наследуется из первоначального ответа.

*) Исправление: директива error_page не перенаправляла ошибку 413.

*) Исправление: завершающий “?” не удалял старые аргументы, если в
переписанном URI не было новых аргументов.

*) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.

Изменения в nginx 0.3.57 09.08.2006

*) Добавление: переменная $ssl_client_serial.

*) Исправление: в операторе “!-e” в директиве if.
Спасибо Андриану Буданцову.

*) Исправление: при проверке клиентского сертификата nginx не передавал
клиенту информацию о требуемых сертификатах.

*) Исправление: переменная $document_root не поддерживала переменные в
директиве root.

Изменения в nginx 0.3.56 04.08.2006

*) Добавление: директива dav_access.

*) Добавление: директива if поддерживает операторы “-d”, “!-d”, “-e”,
“!-e”, “-x” и “!-x”.

*) Исправление: при записи в access_log некоторых передаваемых клиенту
строк заголовков происходил segmentation fault, если запрос возвращал
редирект.

Изменения в nginx 0.3.55 28.07.2006

*) Добавление: параметр stub в команде SSI include.

*) Добавление: команда SSI block.

*) Добавление: скрипт unicode2nginx добавлен в contrib.

*) Исправление: если root был задан только переменной, то корень
задавался относительно префикса сервера.

*) Исправление: если в запросе был “//” или “/.”, и после этого
закодированные символы в виде “%XX”, то проксируемый запрос
передавался незакодированным.

*) Исправление: метод $r->header_in(“Cookie”) модуля
ngx_http_perl_module теперь возвращает все строки “Cookie” в
заголовке запроса.

*) Исправление: происходил segmentation fault, если использовался
“client_body_in_file_only on” и делался переход к следующему бэкенду.

*) Исправление: при некоторых условиях во время переконфигурации коды
символов внутри директивы charset_map могли считаться неверными;
ошибка появилась в 0.3.50.

Изменения в nginx 0.3.54 11.07.2006

*) Добавление: nginx теперь записывает в лог информацию о подзапросах.

*) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
memcached_next_upstream поддерживают параметр off.

*) Добавление: директива debug_connection поддерживает запись адресов в
формате CIDR.

*) Исправление: при перекодировании ответа проксированного сервера или
сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
полностью.

*) Исправление: переменная $upstream_response_time содержала время
только первого обращения к бэкенду.

*) Исправление: nginx не собирался на платформе amd64; ошибка появилась
в 0.3.53.

Изменения в nginx 0.3.53 07.07.2006

*) Изменение: директива add_header добавляет строки в ответы с кодом
204, 301 и 302.

*) Добавление: директива server в блоке upstream поддерживает параметр
weight.

*) Добавление: директива server_name поддерживает маску “*”.

*) Добавление: nginx поддерживает тело запроса больше 2G.

*) Исправление: если при использовании “satisfy_any on” клиент успешно
проходил аутентификацию, в лог всё равно записалоcь сообщение “access
forbidden by rule”.

*) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
409.

*) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
ошибку, nginx продолжал проксирование.

Изменения в nginx 0.3.52 03.07.2006

*) Изменение: восстановлено поведение модуля ngx_http_index_module для
запросов “POST /”: как в версии до 0.3.40, модуль теперь не выдаёт
ошибку 405.

*) Исправление: при использовании ограничения скорости рабочий процесс
мог зациклиться; ошибка появилась в 0.3.37.

*) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
“unknown charset”, даже если перекодировка не требовалась; ошибка
появилась в 0.3.50.

*) Исправление: если в результате запроса PUT возвращался код 409, то
временный файл не удалялся.

Изменения в nginx 0.3.51 30.06.2006

*) Исправление: при некоторых условиях в SSI мог пропадать символы “<"; ошибка появилась в 0.3.50. Изменения в nginx 0.3.50 28.06.2006 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors переименованы соответственно в proxy_intercept_errors и fastcgi_intercept_errors. *) Добавление: модуль ngx_http_charset_module поддерживает перекодирование из однобайтных кодировок в UTF-8 и обратно. *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Charset" в ответе бэкенда. *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался, только если также использовался символ "$". *) Исправление: при некоторых условиях в SSI после вставки могла быть добавлена строка "