2 Изменения в nginx 1.4.0 24.04.2013
4 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
5 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
7 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
8 ошибка появилась в 1.3.9.
11 Изменения в nginx 1.3.16 16.04.2013
13 *) Исправление: в рабочем процессе мог произойти segmentation fault,
14 если использовались подзапросы; ошибка появилась в 1.3.9.
16 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
17 WebSocket-соединений в unix domain сокет.
19 *) Исправление: переменная $upstream_response_length возвращала значение
20 "0", если не использовалась буферизация.
23 *) Исправление: в методах обработки соединений eventport и /dev/poll.
26 Изменения в nginx 1.3.15 26.03.2013
28 *) Изменение: открытие и закрытие соединения без отправки в нём
29 каких-либо данных больше не записывается в access_log с кодом ошибки
32 *) Добавление: модуль ngx_http_spdy_module.
33 Спасибо Automattic за спонсирование разработки.
35 *) Добавление: директивы limit_req_status и limit_conn_status.
38 *) Добавление: директива image_filter_interlace.
39 Спасибо Ивану Боброву.
41 *) Добавление: переменная $connections_waiting в модуле
42 ngx_http_stub_status_module.
44 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
46 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
47 могло передаваться неправильно; ошибка появилась в 1.3.9.
50 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
53 *) Исправление: ответы могли зависать, если использовались подзапросы и
54 при обработке подзапроса происходила DNS-ошибка.
57 *) Исправление: в процедуре учёта использования бэкендов.
60 Изменения в nginx 1.3.14 05.03.2013
62 *) Добавление: переменные $connections_active, $connections_reading и
63 $connections_writing в модуле ngx_http_stub_status_module.
65 *) Добавление: поддержка WebSocket-соединений в модулях
66 ngx_http_uwsgi_module и ngx_http_scgi_module.
68 *) Исправление: в обработке виртуальных серверов при использовании SNI.
70 *) Исправление: при использовании директивы "ssl_session_cache shared"
71 новые сессии могли не сохраняться, если заканчивалось место в
75 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
77 Спасибо Neal Poole за спонсирование разработки.
79 *) Исправление: в модуле ngx_http_mp4_module.
80 Спасибо Gernot Vormayr.
83 Изменения в nginx 1.3.13 19.02.2013
85 *) Изменение: теперь для сборки по умолчанию используется компилятор с
88 *) Добавление: поддержка проксирования WebSocket-соединений.
89 Спасибо Apcera и CloudBees за спонсирование разработки.
91 *) Добавление: директива auth_basic_user_file поддерживает шифрование
92 паролей методом "{SHA}".
96 Изменения в nginx 1.3.12 05.02.2013
98 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
99 scgi_bind и uwsgi_bind поддерживают переменные.
101 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
102 $time_local теперь можно использовать не только в директиве
104 Спасибо Kiril Kalchev.
106 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
107 Спасибо Gregor Kališnik.
109 *) Исправление: директива proxy_method работала неверно, если была
110 указана на уровне http.
112 *) Исправление: в рабочем процессе мог произойти segmentation fault,
113 если использовался resolver и метод poll.
115 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
116 бэкендом при использовании методов обработки соединений select, poll
119 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
121 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
124 *) Исправление: в директиве fastcgi_keep_conn.
127 Изменения в nginx 1.3.11 10.01.2013
129 *) Исправление: при записи в лог мог происходить segmentation fault;
130 ошибка появилась в 1.3.10.
132 *) Исправление: директива proxy_pass не работала с IP-адресами без
133 явного указания порта; ошибка появилась в 1.3.10.
135 *) Исправление: на старте или во время переконфигурации происходил
136 segmentation fault, если директива keepalive была указана несколько
137 раз в одном блоке upstream.
139 *) Исправление: параметр default директивы geo не определял значение по
140 умолчанию для IPv6-адресов.
143 Изменения в nginx 1.3.10 25.12.2012
145 *) Изменение: для указанных в конфигурационном файле доменных имён
146 теперь используются не только IPv4, но и IPv6 адреса.
148 *) Изменение: теперь при использовании директивы include с маской на
149 Unix-системах включаемые файлы сортируются в алфавитном порядке.
151 *) Изменение: директива add_header добавляет строки в ответы с кодом
154 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
157 *) Добавление: параметры flush и gzip в директиве access_log.
159 *) Добавление: директива auth_basic поддерживает переменные.
161 *) Исправление: nginx в некоторых случаях не собирался с модулем
162 ngx_http_perl_module.
164 *) Исправление: в рабочем процессе мог произойти segmentation fault,
165 если использовался модуль ngx_http_xslt_module.
167 *) Исправление: nginx мог не собираться на MacOSX.
168 Спасибо Piotr Sikora.
170 *) Исправление: при использовании директивы limit_rate с большими
171 значениями скорости на 32-битных системах ответ мог возвращаться не
173 Спасибо Алексею Антропову.
175 *) Исправление: в рабочем процессе мог произойти segmentation fault,
176 если использовалась директива if.
177 Спасибо Piotr Sikora.
179 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
180 Request Entity Too Large".
182 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
183 image_filter_sharpen могли наследоваться некорректно.
184 Спасибо Ивану Боброву.
186 *) Исправление: при использовании директивы auth_basic под Linux могли
187 возникать ошибки "crypt_r() failed".
189 *) Исправление: в обработке backup-серверов.
192 *) Исправление: при проксировании HEAD-запросов мог возвращаться
193 некорректный ответ, если использовалась директива gzip.
196 Изменения в nginx 1.3.9 27.11.2012
198 *) Добавление: поддержка chunked transfer encoding при получении тела
201 *) Добавление: переменные $request_time и $msec теперь можно
202 использовать не только в директиве log_format.
204 *) Исправление: cache manager и cache loader могли не запускаться, если
205 использовалось более 512 listen-сокетов.
207 *) Исправление: в модуле ngx_http_dav_module.
210 Изменения в nginx 1.3.8 30.10.2012
212 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
213 Спасибо Михаилу Казанцеву и Eric O'Connor.
215 *) Добавление: переменные $bytes_sent, $connection и
216 $connection_requests теперь можно использовать не только в директиве
218 Спасибо Benjamin Grössing.
220 *) Добавление: параметр auto директивы worker_processes.
222 *) Исправление: сообщения "cache file ... has md5 collision".
224 *) Исправление: в модуле ngx_http_gunzip_filter_module.
226 *) Исправление: в директиве ssl_stapling.
229 Изменения в nginx 1.3.7 02.10.2012
231 *) Добавление: поддержка OCSP stapling.
232 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
234 *) Добавление: директива ssl_trusted_certificate.
236 *) Добавление: теперь resolver случайным образом меняет порядок
237 возвращаемых закэшированных адресов.
238 Спасибо Антону Жулину.
240 *) Исправление: совместимость с OpenSSL 0.9.7.
243 Изменения в nginx 1.3.6 12.09.2012
245 *) Добавление: модуль ngx_http_gunzip_filter_module.
247 *) Добавление: директива memcached_gzip_flag.
249 *) Добавление: параметр always директивы gzip_static.
251 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
252 Спасибо Charles Chen.
254 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
255 использовался параметр --with-ipv6.
258 Изменения в nginx 1.3.5 21.08.2012
260 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
261 дорожки в форматах, отличных от H.264 и AAC.
263 *) Исправление: в рабочем процессе мог произойти segmentation fault,
264 если в директиве map в качестве значений использовались переменные.
266 *) Исправление: в рабочем процессе мог произойти segmentation fault при
267 использовании директивы geo с параметром ranges, но без параметра
268 default; ошибка появилась в 0.8.43.
269 Спасибо Zhen Chen и Weibin Yao.
271 *) Исправление: в обработке параметра командной строки -p.
273 *) Исправление: в почтовом прокси-сервере.
275 *) Исправление: незначительных потенциальных ошибок.
278 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
279 Спасибо HAYASHI Kentaro.
282 Изменения в nginx 1.3.4 31.07.2012
284 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
287 *) Добавление: поддержка компилятора Clang.
289 *) Исправление: могли создаваться лишние слушающие сокеты.
290 Спасибо Роману Одайскому.
292 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
293 рабочего процесса происходила ошибка.
294 Спасибо Ricardo Villalobos Guevara.
296 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
297 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
298 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
299 наследоваться некорректно.
302 Изменения в nginx 1.3.3 10.07.2012
304 *) Добавление: поддержка entity tags и директива etag.
306 *) Исправление: при использовании директивы map с параметром hostnames
307 не игнорировалась конечная точка в исходном значении.
309 *) Исправление: для обработки запроса мог использоваться неверный
310 location, если переход в именованный location происходил после
311 изменения URI с помощью директивы rewrite.
314 Изменения в nginx 1.3.2 26.06.2012
316 *) Изменение: параметр single директивы keepalive теперь игнорируется.
318 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
319 OpenSSL cтарее 1.0.0.
321 *) Добавление: директиву "ip_hash" теперь можно использовать для
322 балансировки IPv6 клиентов.
324 *) Добавление: переменную $status теперь можно использовать не только в
325 директиве log_format.
327 *) Исправление: при завершении рабочего процесса мог произойти
328 segmentation fault, если использовалась директива resolver.
330 *) Исправление: в рабочем процессе мог произойти segmentation fault,
331 если использовался модуль ngx_http_mp4_module.
333 *) Исправление: в модуле ngx_http_mp4_module.
335 *) Исправление: в рабочем процессе мог произойти segmentation fault,
336 если использовались конфликтующие имена серверов с масками.
338 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
341 *) Исправление: во время переконфигурации на HP-UX в лог записывался
342 alert "sendmsg() failed (9: Bad file number)".
345 Изменения в nginx 1.3.1 05.06.2012
347 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
348 компонента URI и не разрешает URI, содержащие последовательность
350 Спасибо Владимиру Кочеткову, Positive Research Center.
352 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
353 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
355 *) Добавление: в директиве resolver теперь можно указывать порт и
356 задавать IPv6-адреса DNS-серверов.
358 *) Добавление: директива least_conn в блоке upstream.
360 *) Добавление: при использовании директивы ip_hash теперь можно задавать
363 *) Исправление: в рабочем процессе мог произойти segmentation fault,
364 если использовалась директива image_filter; ошибка появилась в 1.3.0.
366 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
369 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
370 работать после переконфигурации.
371 Спасибо Yichun Zhang.
373 *) Исправление: в модуле ngx_http_xslt_filter_module.
374 Спасибо Kuramoto Eiji.
376 *) Исправление: утечки памяти при использовании переменной $geoip_org.
377 Спасибо Денису Латыпову.
379 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
382 Изменения в nginx 1.3.0 15.05.2012
384 *) Добавление: директива debug_connection теперь поддерживает
385 IPv6-адреса и параметр "unix:".
387 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
388 теперь поддерживают IPv6-адреса.
390 *) Добавление: директивы real_ip_recursive, geoip_proxy и
391 geoip_proxy_recursive.
393 *) Добавление: параметр proxy_recursive директивы geo.
395 *) Исправление: в рабочем процессе мог произойти segmentation fault,
396 если использовалась директива resolver.
398 *) Исправление: в рабочем процессе мог произойти segmentation fault,
399 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
400 и бэкенд возвращал некорректный ответ.
402 *) Исправление: в рабочем процессе мог произойти segmentation fault,
403 если использовалась директива rewrite и в новых аргументах запроса в
404 строке замены использовались переменные.
406 *) Исправление: nginx мог нагружать процессор, если было достигнуто
407 ограничение на количество открытых файлов.
409 *) Исправление: при использовании директивы proxy_next_upstream с
410 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
411 блоке upstream был хотя бы один сервер с флагом backup.
413 *) Исправление: при использовании директивы ip_hash установка параметра
414 down директивы server могла приводить к ненужному перераспределению
415 клиентов между бэкендами.
417 *) Исправление: утечки сокетов.
418 Спасибо Yichun Zhang.
420 *) Исправление: в модуле ngx_http_fastcgi_module.
423 Изменения в nginx 1.2.0 23.04.2012
425 *) Исправление: в рабочем процессе мог произойти segmentation fault,
426 если использовалась директива try_files; ошибка появилась в 1.1.19.
428 *) Исправление: ответ мог быть передан не полностью, если использовалось
429 больше IOV_MAX буферов.
431 *) Исправление: в работе параметра crop директивы image_filter.
432 Спасибо Maxim Bublis.
435 Изменения в nginx 1.1.19 12.04.2012
437 *) Безопасность: при обработке специально созданного mp4 файла модулем
438 ngx_http_mp4_module могли перезаписываться области памяти рабочего
439 процесса, что могло приводить к выполнению произвольного кода
441 Спасибо Matthew Daley.
443 *) Исправление: nginx/Windows мог завершаться аварийно.
446 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
447 были помечены флагом backup.
449 *) Исправление: директивы allow и deny могли наследоваться некорректно,
450 если в них использовались IPv6 адреса.
452 *) Исправление: директивы modern_browser и ancient_browser могли
453 наследоваться некорректно.
455 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
457 *) Исправление: в модуле ngx_http_mp4_module.
460 Изменения в nginx 1.1.18 28.03.2012
462 *) Изменение: теперь keepalive соединения не запрещены для Safari по
465 *) Добавление: переменная $connection_requests.
467 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
468 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
470 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
472 *) Добавление: директивы xslt_param и xslt_string_param.
473 Спасибо Samuel Behan.
475 *) Исправление: в configure.
476 Спасибо Piotr Sikora.
478 *) Исправление: в модуле ngx_http_xslt_filter_module.
480 *) Исправление: nginx не собирался на Debian GNU/Hurd.
483 Изменения в nginx 1.1.17 15.03.2012
485 *) Безопасность: содержимое ранее освобождённой памяти могло быть
486 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
487 Спасибо Matthew Daley.
489 *) Исправление: при использовании встроенного перла из SSI.
490 Спасибо Matthew Daley.
492 *) Исправление: в модуле ngx_http_uwsgi_module.
495 Изменения в nginx 1.1.16 29.02.2012
497 *) Изменение: ограничение на количество одновременных подзапросов
500 *) Добавление: параметр from в директиве disable_symlinks.
502 *) Добавление: директивы return и error_page теперь могут использоваться
503 для возврата перенаправлений с кодом 307.
505 *) Исправление: в рабочем процессе мог произойти segmentation fault,
506 если использовалась директива resolver и на глобальном уровне не была
507 задана директива error_log.
508 Спасибо Роману Арутюняну.
510 *) Исправление: в рабочем процессе мог произойти segmentation fault,
511 если использовались директивы "proxy_http_version 1.1" или
512 "fastcgi_keep_conn on".
514 *) Исправление: утечек памяти.
515 Спасибо Lanshun Zhou.
517 *) Исправление: в директиве disable_symlinks.
519 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
520 некорректно; ошибка появилась в 1.0.1.
522 *) Исправление: nginx не собирался компилятором icc 12.1.
524 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
528 Изменения в nginx 1.1.15 15.02.2012
530 *) Добавление: директива disable_symlinks.
532 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
534 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
535 prematurely closed connection" вместо "upstream sent too big header".
538 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
539 использовался параметр --with-openssl.
541 *) Исправление: количество внутренних перенаправлений в именованные
542 location'ы не ограничивалось.
544 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
545 ошибкам в модуле ngx_http_gzip_filter_module.
547 *) Исправление: при использовании директивы proxy_store с
548 SSI-подзапросами временные файлы могли не удаляться.
550 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
551 $args) возвращали старое пустое закэшированное значение.
553 *) Исправление: в рабочем процессе мог произойти segmentation fault,
554 если одновременно создавалось слишком много SSI-подзапросов; ошибка
558 Изменения в nginx 1.1.14 30.01.2012
560 *) Добавление: теперь можно указать несколько ограничений limit_req
563 *) Исправление: в обработке ошибок при соединении с бэкендом.
564 Спасибо Piotr Sikora.
566 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
568 *) Исправление: в инициализации библиотеки OpenSSL.
570 *) Исправление: директивы proxy_redirect могли наследоваться
573 *) Исправление: утечки памяти при переконфигурации, если использовалась
577 Изменения в nginx 1.1.13 16.01.2012
579 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
581 *) Исправление: параметры директивы limit_req наследовались некорректно;
582 ошибка появилась в 1.1.12.
584 *) Исправление: директива proxy_redirect некорректно обрабатывала
585 заголовок Refresh при использовании регулярных выражений.
587 *) Исправление: директива proxy_cache_use_stale с параметром error не
588 возвращала ответ из кэша, если все бэкенды были признаны
591 *) Исправление: директива worker_cpu_affinity могла не работать.
593 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
596 *) Исправление: в модуле ngx_http_mp4_module.
599 Изменения в nginx 1.1.12 26.12.2011
601 *) Изменение: после перенаправления запроса с помощью директивы
602 error_page директива proxy_pass без URI теперь использует изменённый
604 Спасибо Lanshun Zhou.
606 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
607 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
609 *) Добавление: директива pcre_jit.
611 *) Добавление: SSI команда if поддерживает выделения в регулярных
614 *) Исправление: SSI команда if не работала внутри команды block.
616 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
619 *) Исправление: директива limit_rate не позволяла передавать на полной
620 скорости, даже если был указан очень большой лимит.
622 *) Исправление: директива sendfile_max_chunk не работала, если
623 использовалась директива limit_rate.
625 *) Исправление: если в директиве proxy_pass использовались переменные и
626 не был указан URI, всегда использовался URI исходного запроса.
628 *) Исправление: после перенаправления запроса с помощью директивы
629 try_files директива proxy_pass без URI могла использовать URI
631 Спасибо Lanshun Zhou.
633 *) Исправление: в модуле ngx_http_scgi_module.
635 *) Исправление: в модуле ngx_http_mp4_module.
637 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
640 Изменения в nginx 1.1.11 12.12.2011
642 *) Добавление: параметр so_keepalive в директиве listen.
643 Спасибо Всеволоду Стахову.
645 *) Добавление: параметр if_not_empty в директивах
646 fastcgi/scgi/uwsgi_param.
648 *) Добавление: переменная $https.
650 *) Добавление: директива proxy_redirect поддерживает переменные в первом
653 *) Добавление: директива proxy_redirect поддерживает регулярные
656 *) Исправление: переменная $sent_http_cache_control могла содержать
657 неверное значение при использовании директивы expires.
658 Спасибо Yichun Zhang.
660 *) Исправление: директива read_ahead могла не работать при использовании
661 совместно с try_files и open_file_cache.
663 *) Исправление: если в параметре inactive директивы proxy_cache_path
664 было указано малое время, в рабочем процессе мог произойти
667 *) Исправление: ответы из кэша могли зависать.
670 Изменения в nginx 1.1.10 30.11.2011
672 *) Исправление: при использовании AIO на Linux в рабочем процессе
673 происходил segmentation fault; ошибка появилась в 1.1.9.
676 Изменения в nginx 1.1.9 28.11.2011
678 *) Изменение: теперь двойные кавычки экранируется при выводе
680 Спасибо Зауру Абасмирзоеву.
682 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
683 используется TTL, возвращённый DNS-сервером.
684 Спасибо Кириллу Коринскому.
686 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
689 *) Исправление: в рабочем процессе мог произойти segmentation fault,
690 если использовалось SNI; ошибка появилась в 1.1.2.
692 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
693 Спасибо Александру Усову.
695 *) Исправление: сигнал SIGWINCH переставал работать после первого
696 обновления исполняемого файла; ошибка появилась в 1.1.1.
698 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
699 заголовку Content-Length, не кэширутся.
701 *) Исправление: в директиве scgi_param при использовании составных
704 *) Исправление: в методе epoll.
705 Спасибо Yichun Zhang.
707 *) Исправление: в модуле ngx_http_flv_module.
708 Спасибо Piotr Sikora.
710 *) Исправление: в модуле ngx_http_mp4_module.
712 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
715 *) Исправление: директивы add_header и expires не работали для ответов с
716 кодом 206, если запрос проксировался.
718 *) Исправление: nginx не собирался на FreeBSD 10.
720 *) Исправление: nginx не собирался на AIX.
723 Изменения в nginx 1.1.8 14.11.2011
725 *) Изменение: модуль ngx_http_limit_zone_module переименован в
726 ngx_http_limit_conn_module.
728 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
731 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
734 *) Добавление: директива image_filter_sharpen.
736 *) Исправление: в рабочем процессе мог произойти segmentation fault,
737 если resolver получил большой DNS-ответ.
740 *) Исправление: в вычислении ключа для кэширования, если использовалась
741 внутренняя реализация MD5; ошибка появилась в 1.0.4.
743 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
744 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
745 или не передаваться при выключенном кэшировании, если кэширование
746 было включено в другой части конфигурации.
748 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
749 "Content-Length" в заголовке ответа, использовался аргумент start.
750 Спасибо Piotr Sikora.
753 Изменения в nginx 1.1.7 31.10.2011
755 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
756 Спасибо Кириллу Коринскому.
758 *) Исправление: на старте или во время переконфигурации происходил
759 segmentation fault, если директива ssl использовалась на уровне http
760 и не был указан ssl_certificate.
762 *) Исправление: уменьшено потребление памяти при проксировании больших
763 файлов, если они буферизировались на диск.
765 *) Исправление: в рабочем процессе мог произойти segmentation fault,
766 если использовалась директива "proxy_http_version 1.1".
768 *) Исправление: в директиве "expires @time".
771 Изменения в nginx 1.1.6 17.10.2011
773 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
774 именованный location контексты модулей очищаются.
775 По запросу Yichun Zhang.
777 *) Изменение: теперь если сервер, описанный в блоке upstream, был
778 признан неработающим, то после истечения fail_timeout на него будет
779 отправлен только один запрос; сервер будет считаться работающим, если
780 успешно ответит на этот запрос.
782 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
785 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
786 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
789 *) Добавление: уменьшение потребления памяти при использовании SSL.
791 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
792 Спасибо Алексею Куцу.
794 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
795 уровне server, применялись повторно, если для запроса не находилось
796 ни одного location'а.
798 *) Исправление: при использовании "aio sendfile" могла происходить
801 *) Исправление: при использовании файлового AIO соединения с быстрыми
802 клиентами могли быть закрыты по истечению send_timeout.
804 *) Исправление: в модуле ngx_http_autoindex_module.
806 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
807 32-битных платформах.
810 Изменения в nginx 1.1.5 05.10.2011
812 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
815 *) Исправление: при использовании proxy_cache_bypass могли быть
816 закэшированы некэшируемые ответы.
817 Спасибо John Ferlito.
819 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
822 *) Исправление: закэшированные ответы с пустым телом возвращались
823 некорректно; ошибка появилась в 0.8.31.
825 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
826 некорректны; ошибка появилась в 0.8.32.
828 *) Исправление: в директиве return.
830 *) Исправление: при использовании директивы "ssl_session_cache builtin"
831 происходил segmentation fault; ошибка появилась в 1.1.1.
834 Изменения в nginx 1.1.4 20.09.2011
836 *) Добавление: модуль ngx_http_upstream_keepalive.
838 *) Добавление: директива proxy_http_version.
840 *) Добавление: директива fastcgi_keep_conn.
842 *) Добавление: директива worker_aio_requests.
844 *) Исправление: если nginx был собран с файловым AIO, он не мог
845 запускаться на Linux без поддержки AIO.
847 *) Исправление: в обработке ошибок при работе с Linux AIO.
848 Спасибо Hagai Avrahami.
850 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
852 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
856 Изменения в nginx 1.1.3 14.09.2011
858 *) Добавление: модуль ngx_http_mp4_module.
860 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
862 *) Исправление: open_file_cache не обновлял информацию о файле, если
863 файл был изменён не атомарно.
865 *) Исправление: nginx не собирался на MacOSX 10.7.
868 Изменения в nginx 1.1.2 05.09.2011
870 *) Изменение: теперь, если суммарный размер всех диапазонов больше
871 размера исходного ответа, то nginx возвращает только исходный ответ,
872 не обрабатывая диапазоны.
874 *) Добавление: директива max_ranges.
876 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
877 ssl_prefer_server_cipher могли работать некорректно, если
880 *) Исправление: в директивах proxy/fastcgi/scgi/
881 uwsgi_ignore_client_abort.
884 Изменения в nginx 1.1.1 22.08.2011
886 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
887 число файлов, указанное в параметре load_files, либо работает не
888 дольше времени, указанного в параметре loader_threshold.
890 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
892 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
894 Спасибо Денису Иванову.
896 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
898 *) Исправление: nginx не собирался на Linux 3.0.
900 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
903 *) Исправление: обработка тела запроса могла быть неверной, если клиент
904 использовал pipelining.
906 *) Исправление: в директиве request_body_in_single_buf.
908 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
909 при использовании SSL-соединения с бэкендом.
911 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
912 были помечены флагом down.
914 *) Исправление: при переконфигурации мог произойти segmentation fault,
915 если в предыдущей конфигурации был определён, но не использовался
918 *) Исправление: при использовании большого количества backup-серверов в
919 рабочем процессе мог произойти segmentation fault.
921 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
922 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
923 произойти segmentation fault; ошибка появилась в 0.8.40.
926 Изменения в nginx 1.1.0 01.08.2011
928 *) Добавление: уменьшение времени работы загрузчика кэша.
930 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
931 директив proxy/fastcgi/scgi/uwsgi_cache_path.
933 *) Добавление: уменьшение времени загрузки конфигураций с большим
934 количеством HTTPS серверов.
936 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
937 Спасибо Adrian Kotelba.
939 *) Добавление: директива lingering_close.
940 Спасибо Максиму Дунину.
942 *) Исправление: закрытия соединения для pipelined-запросов.
943 Спасибо Максиму Дунину.
945 *) Исправление: nginx не запрещал сжатие при получении значения
946 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
948 *) Исправление: таймаута при небуферизированном проксировании.
949 Спасибо Максиму Дунину.
951 *) Исправление: утечки памяти при использовании переменных в директиве
952 proxy_pass при работе с бэкендом по HTTPS.
953 Спасибо Максиму Дунину.
955 *) Исправление: в проверке параметра директивы proxy_pass, заданного
957 Спасибо Lanshun Zhou.
959 *) Исправление: SSL не работал на QNX.
960 Спасибо Максиму Дунину.
962 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
966 Изменения в nginx 1.0.5 19.07.2011
968 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
970 Спасибо Rob Stradling.
972 *) Добавление: директивы referer_hash_max_size и
973 referer_hash_bucket_size.
974 Спасибо Witold Filipczyk.
976 *) Добавление: переменная $uid_reset.
978 *) Исправление: при использовании кэширования в рабочем процессе мог
979 произойти segmentation fault.
980 Спасибо Lanshun Zhou.
982 *) Исправление: при использовании кэширования рабочие процессы могли
983 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
984 Спасибо Максиму Дунину.
986 *) Исправление: сообщения "stalled cache updating".
987 Спасибо Максиму Дунину.
990 Изменения в nginx 1.0.4 01.06.2011
992 *) Изменение: теперь в регулярных выражениях в директиве map можно
993 задать чувствительность к регистру с помощью префиксов "~" и "~*".
995 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
997 Спасибо Денису Латыпову.
999 *) Исправление: сообщения "stalled cache updating".
1001 *) Исправление: nginx не собирался с параметром
1002 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
1005 Изменения в nginx 1.0.3 25.05.2011
1007 *) Добавление: директива auth_basic_user_file поддерживает шифрование
1008 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
1009 Спасибо Максиму Дунину.
1011 *) Добавление: директива geoip_org и переменная $geoip_org.
1012 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
1014 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
1015 поддерживают адреса IPv4, отображённые на IPv6 адреса.
1017 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
1018 рабочем процессе происходил segmentation fault, если директивы access
1019 или deny были определены только для адресов IPv6; ошибка появилась в
1022 *) Исправление: закэшированный ответ мог быть испорчен, если значения
1023 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
1024 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
1027 Изменения в nginx 1.0.2 10.05.2011
1029 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
1031 *) Исправление: в работе параметра rotate директивы image_filter.
1034 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
1037 Изменения в nginx 1.0.1 03.05.2011
1039 *) Изменение: теперь директива split_clients использует алгоритм
1040 MurmurHash2 из-за лучшего распределения.
1041 Спасибо Олегу Мамонтову.
1043 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
1045 Спасибо Максиму Дунину.
1047 *) Изменение: теперь по умолчанию nginx использует значение 511 для
1048 listen backlog на Linux.
1050 *) Добавление: переменные $upstream_... можно использовать в SSI и
1053 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
1054 Спасибо Олегу Мамонтову.
1056 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
1057 segmentation fault; ошибка появилась в 0.8.22.
1058 Спасибо Максиму Дунину.
1060 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
1062 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
1064 Спасибо Dagobert Michelsen.
1066 *) Исправление: переменная $request_time имела неверные значения, если
1067 использовались подзапросы; ошибка появилась в 0.8.47.
1068 Спасибо Игорю А. Валькову.
1071 Изменения в nginx 1.0.0 12.04.2011
1073 *) Исправление: cache manager мог нагружать процессор после
1075 Спасибо Максиму Дунину.
1077 *) Исправление: директива "image_filter crop" неправильно работала в
1078 сочетании с "image_filter rotate 180".
1080 *) Исправление: директива "satisfy any" запрещала выдачу
1081 пользовательской страницы для 401 кода.
1084 Изменения в nginx 0.9.7 04.04.2011
1086 *) Добавление: теперь соединения в состоянии keepalive могут быть
1087 закрыты преждевременно, если у воркера нет свободных соединений.
1088 Спасибо Максиму Дунину.
1090 *) Добавление: параметр rotate директивы image_filter.
1093 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
1094 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
1098 Изменения в nginx 0.9.6 21.03.2011
1100 *) Добавление: директива map поддерживает регулярные выражения в
1101 качестве значения первого параметра.
1103 *) Добавление: переменная $time_iso8601 для access_log.
1104 Спасибо Michael Lustfield.
1107 Изменения в nginx 0.9.5 21.02.2011
1109 *) Изменение: теперь по умолчанию nginx использует значение -1 для
1110 listen backlog на Linux.
1111 Спасибо Андрею Нигматулину.
1113 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
1114 Спасибо Денису Латыпову.
1116 *) Исправление: исправление в умолчательной директиве proxy_redirect,
1117 если в директиве proxy_pass не был описан URI.
1118 Спасибо Максиму Дунину.
1120 *) Исправление: директива error_page не работала с нестандартными кодами
1121 ошибок; ошибка появилась в 0.8.53.
1122 Спасибо Максиму Дунину.
1125 Изменения в nginx 0.9.4 21.01.2011
1127 *) Добавление: директива server_name поддерживает переменную $hostname.
1129 *) Добавление: 494 код для ошибки "Request Header Too Large".
1132 Изменения в nginx 0.9.3 13.12.2010
1134 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
1135 то выделения в регулярных выражениях в директиве server_name не
1138 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
1142 Изменения в nginx 0.9.2 06.12.2010
1144 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
1147 *) Изменение: использование accept(), если accept4() не реализован;
1148 ошибка появилась в 0.9.0.
1150 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
1152 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
1153 Спасибо Максиму Дунину.
1156 Изменения в nginx 0.9.1 30.11.2010
1158 *) Исправление: директивы вида "return CODE message" не работали; ошибка
1162 Изменения в nginx 0.9.0 29.11.2010
1164 *) Добавление: директива keepalive_disable.
1166 *) Добавление: директива map поддерживает переменные в качестве значения
1167 определяемой переменной.
1169 *) Добавление: директива map поддерживает пустые строки в качестве
1170 значения первого параметра.
1172 *) Добавление: директива map поддерживает выражения в первом параметре.
1174 *) Добавление: страница руководства nginx(8).
1175 Спасибо Сергею Осокину.
1177 *) Добавление: поддержка accept4() в Linux.
1180 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
1181 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
1183 *) Исправление: при использовании директивы auth_basic в рабочем
1184 процессе мог произойти segmentation fault.
1185 Спасибо Михаилу Лалетину.
1187 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
1191 Изменения в nginx 0.8.53 18.10.2010
1193 *) Добавление: теперь директива error_page позволяет менять код статуса
1196 *) Добавление: директива gzip_disable поддерживает специальную маску
1199 *) Исправление: при использовании файлового AIO могла происходить утечка
1201 Спасибо Максиму Дунину.
1203 *) Исправление: если в первом сервере не была описана директива listen и
1204 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
1205 становился следующий сервер с директивой listen; ошибка появилась в
1209 Изменения в nginx 0.8.52 28.09.2010
1211 *) Исправление: nginx использовал режим SSL для listen сокета, если для
1212 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
1215 Изменения в nginx 0.8.51 27.09.2010
1217 *) Изменение: директива secure_link_expires упразднена.
1219 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
1222 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
1226 Изменения в nginx 0.8.50 02.09.2010
1228 *) Добавление: директивы secure_link, secure_link_md5 и
1229 secure_link_expires модуля ngx_http_secure_link_module.
1231 *) Добавление: ключ -q.
1232 Спасибо Геннадию Махомеду.
1234 *) Исправление: при использовании кэширования рабочие процессы и могли
1235 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
1237 *) Исправление: в директиве gzip_disable.
1238 Спасибо Derrick Petzold.
1240 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
1241 reopen, reload процессу, запущенному в другой сессии.
1244 Изменения в nginx 0.8.49 09.08.2010
1246 *) Добавление: директива image_filter_jpeg_quality поддерживает
1249 *) Исправление: при использовании переменной $geoip_region_name в
1250 рабочем процессе мог произойти segmentation fault; ошибка появилась в
1253 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
1254 следующего запроса; ошибка появилась в 0.8.48.
1257 Изменения в nginx 0.8.48 03.08.2010
1259 *) Изменение: теперь по умолчанию директива server_name имеет значение
1261 Спасибо Геннадию Махомеду.
1263 *) Изменение: теперь по умолчанию директива server_name_in_redirect
1266 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
1268 Спасибо Christine McGonagle.
1270 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
1271 scgi_pass не наследовались в блоки limit_except.
1273 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
1274 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
1277 *) Исправление: директива fastcgi_split_path_info неверно использовала
1278 выделения, если в выделения попадала только часть URI.
1279 Спасибо Юрию Тарадаю и Frank Enderle.
1281 *) Исправление: директива rewrite не экранировала символ ";" при
1282 копировании из URI в аргументы.
1283 Спасибо Daisuke Murase.
1285 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
1286 если изображение было больше размера image_filter_buffer.
1289 Изменения в nginx 0.8.47 28.07.2010
1291 *) Исправление: переменная $request_time имела неверные значения для
1294 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
1296 *) Исправление: если использовался параметр max_size, то cache manager
1297 мог зациклиться; ошибка появилась в 0.8.46.
1300 Изменения в nginx 0.8.46 19.07.2010
1302 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
1303 и scgi_no_cache теперь влияют только на сохранение закэшированного
1306 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
1307 uwsgi_cache_bypass и scgi_cache_bypass.
1309 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
1310 ошибки работы с бэкендом: память освобождалась только по истечении
1311 времени неактивности или при недостатке памяти.
1314 Изменения в nginx 0.8.45 13.07.2010
1316 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
1317 Спасибо Laurence Rowe.
1319 *) Исправление: ответ SSI модуля мог передаваться не полностью после
1320 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
1321 Спасибо Максиму Дунину.
1323 *) Исправление: директива listen не поддерживала параметр setfib=0.
1326 Изменения в nginx 0.8.44 05.07.2010
1328 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
1329 заголовке которых есть строка "Set-Cookie".
1331 *) Добавление: директива listen поддерживает параметр setfib.
1332 Спасибо Андрею Филонову.
1334 *) Исправление: директива sub_filter могла изменять регистр букв при
1335 частичном совпадении.
1337 *) Исправление: совместимость с HP/UX.
1339 *) Исправление: совместимость с компилятором AIX xlC_r.
1341 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
1343 Спасибо Miroslaw Jaworski.
1346 Изменения в nginx 0.8.43 30.06.2010
1348 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
1350 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
1351 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
1354 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
1356 Спасибо Максиму Дунину.
1358 *) Исправление: переменную $uid_set можно использовать на любой стадии
1362 Изменения в nginx 0.8.42 21.06.2010
1364 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
1365 выражениями, если запрос полностью совпал с location'ом, заданным
1366 строкой префикса. Предыдущее поведение появилось в 0.7.1.
1368 *) Добавление: модуль ngx_http_scgi_module.
1369 Спасибо Manlio Perillo.
1371 *) Добавление: в директиве return можно добавлять текст ответа.
1374 Изменения в nginx 0.8.41 15.06.2010
1376 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
1377 при запросе файла с неверной кодировкой UTF-8.
1379 *) Изменение: теперь nginx разрешает использовать пробелы в строке
1382 *) Исправление: директива proxy_redirect неправильно изменяла строку
1383 "Refresh" в заголовке ответа бэкенда.
1384 Спасибо Андрею Андрееву и Максиму Согину.
1386 *) Исправление: nginx не поддерживал путь без имени хоста в строке
1387 "Destination" в заголовке запроса.
1390 Изменения в nginx 0.8.40 07.06.2010
1392 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
1394 Спасибо Jose Antonio Vazquez Gonzalez.
1396 *) Добавление: модуль ngx_http_uwsgi_module.
1397 Спасибо Roberto De Ioris.
1399 *) Добавление: директива fastcgi_param со значением, начинающимся со
1400 строки "HTTP_", изменяет строку заголовка в запросе клиента.
1402 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
1403 заголовке запроса клиента передавались FastCGI-серверу при
1406 *) Исправление: listen unix domain сокет нельзя было изменить во время
1408 Спасибо Максиму Дунину.
1411 Изменения в nginx 0.8.39 31.05.2010
1413 *) Исправление: наследуемая директива alias неправильно работала во
1414 вложенном location'е.
1416 *) Исправление: в комбинации директив alias с переменными и try_files;
1418 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
1419 время обновления без перерыва.
1420 Спасибо Максиму Дунину.
1423 Изменения в nginx 0.8.38 24.05.2010
1425 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
1427 *) Добавление: теперь при использовании переменной $scheme в директиве
1428 rewrite автоматически делается редирект.
1429 Спасибо Piotr Sikora.
1431 *) Исправление: теперь задержки в директиве limit_req соответствует
1432 описанному алгоритму.
1433 Спасибо Максиму Дунину.
1435 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
1439 Изменения в nginx 0.8.37 17.05.2010
1441 *) Добавление: модуль ngx_http_split_clients_module.
1443 *) Добавление: директива map поддерживает ключи больше 255 символов.
1445 *) Исправление: nginx игнорировал значения "private" и "no-store" в
1446 строке "Cache-Control" в заголовке ответа бэкенда.
1448 *) Исправление: параметр stub в SSI-директиве include не использовался,
1449 если пустой ответ имел код 200.
1451 *) Исправление: если проксированный или FastCGI запрос внутренне
1452 перенаправлялся в другой проксированный или FastCGI location, то в
1453 рабочем процессе мог произойти segmentation fault; ошибка появилась в
1455 Спасибо Yichun Zhang.
1457 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
1462 Изменения в nginx 0.8.36 22.04.2010
1464 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
1465 методы DELETE, COPY и MOVE для симлинков.
1467 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
1468 основном запросе значения переменных $query_string, $arg_... и им
1471 *) Исправление: значение переменной повторно экранировалось после
1472 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
1474 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
1475 Спасибо Vicente Aguilar и Максиму Дунину.
1477 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
1478 Спасибо Максиму Дунину.
1480 *) Исправление: nginx не собирался с параметром --without-http-cache;
1481 ошибка появилась в 0.8.35.
1484 Изменения в nginx 0.8.35 01.04.2010
1486 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
1488 *) Добавление: директива chunked_transfer_encoding.
1490 *) Исправление: символ "&" при копировании в аргументы в правилах
1491 rewrite не экранировался.
1493 *) Исправление: nginx мог завершаться аварийно во время обработки
1494 сигнала или при использовании директивы timer_resolution на
1495 платформах, не поддерживающих методы kqueue или eventport.
1496 Спасибо George Xie и Максиму Дунину.
1498 *) Исправление: если временные файлы и постоянное место хранения
1499 располагались на разных файловых системах, то у постоянных файлов
1500 время изменения было неверным.
1501 Спасибо Максиму Дунину.
1503 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
1504 "memcached sent invalid trailer".
1505 Спасибо Максиму Дунину.
1507 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
1509 Спасибо Максиму Дунину.
1511 *) Исправление: в рабочем процессе происходил segmentation fault, если
1512 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
1514 Спасибо Максиму Дунину.
1517 Изменения в nginx 0.8.34 03.03.2010
1519 *) Исправление: nginx не поддерживал все шифры, используемые в
1520 клиентских сертификатах.
1521 Спасибо Иннокентию Еникееву.
1523 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
1524 ответом было много вывода в stderr.
1526 *) Исправление: nginx не поддерживал HTTPS-рефереры.
1528 *) Исправление: nginx/Windows мог не находить файлы, если путь в
1529 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
1531 *) Исправление: переменная $date_local выдавала неверное время, если
1532 использовался формат "%s".
1533 Спасибо Максиму Дунину.
1535 *) Исправление: если ssl_session_cache не был установлен или установлен
1536 в none, то при проверке клиентского сертификаты могла происходить
1537 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
1539 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
1540 диапазон включал в себя одну и более сетей размером /16 и не
1541 начинался на границе сети размером /16.
1543 *) Исправление: блок, используемый в параметре stub в SSI-директиве
1544 include, выводился с MIME-типом "text/plain".
1546 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
1549 Изменения в nginx 0.8.33 01.02.2010
1551 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
1552 Спасибо Dan Crowley, Core Security Technologies.
1554 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
1555 Спасибо Dan Crowley, Core Security Technologies.
1557 *) Изменение: теперь keepalive соединения после запросов POST не
1558 запрещаются для MSIE 7.0+.
1559 Спасибо Adam Lounds.
1561 *) Изменение: теперь keepalive соединения запрещены для Safari.
1562 Спасибо Joshua Sierles.
1564 *) Исправление: если проксированный или FastCGI запрос внутренне
1565 перенаправлялся в другой проксированный или FastCGI location, то
1566 переменная $upstream_response_time могла иметь ненормально большое
1567 значение; ошибка появилась в 0.8.7.
1569 *) Исправление: в рабочем процессе мог произойти segmentation fault при
1570 отбрасывания тела запроса; ошибка появилась в 0.8.11.
1573 Изменения в nginx 0.8.32 11.01.2010
1575 *) Исправление: ошибки при использовании кодировки UTF-8 в
1576 ngx_http_autoindex_module.
1577 Спасибо Максиму Дунину.
1579 *) Исправление: именованные выделения в регулярных выражениях работали
1580 только для двух переменных.
1581 Спасибо Максиму Дунину.
1583 *) Исправление: теперь в строке заголовка запроса "Host" используется
1584 имя "localhost", если в директиве auth_http указан unix domain сокет.
1585 Спасибо Максиму Дунину.
1587 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
1589 Спасибо Julian Reich.
1591 *) Исправление: если директива "expires modified" выставляла дату в
1592 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
1593 отрицательное число.
1594 Спасибо Алексею Капранову.
1597 Изменения в nginx 0.8.31 23.12.2009
1599 *) Добавление: теперь директива error_page может перенаправлять ответы
1600 со статусом 301 и 302.
1602 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
1604 Спасибо Arvind Sundararajan.
1606 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
1607 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
1609 *) Исправление: nginx закрывал соединение при запросе закэшированного
1610 ответа с пустым телом.
1611 Спасибо Piotr Sikora.
1613 *) Исправление: nginx мог не собираться gcc 4.x при использовании
1614 оптимизации -O2 и выше.
1615 Спасибо Максиму Дунину и Денису Латыпову.
1617 *) Исправление: регулярные выражения в location всегда тестировались с
1618 учётом регистра; ошибка появилась в 0.8.25.
1620 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
1621 проксируемого запроса была строка "If-None-Match".
1622 Спасибо Tim Dettrick и David Kostal.
1624 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
1625 перезаписи уже существующего файла.
1628 Изменения в nginx 0.8.30 15.12.2009
1630 *) Изменение: теперь по умолчанию размер буфера директивы
1631 large_client_header_buffers равен 8K.
1632 Спасибо Andrew Cholakian.
1634 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
1636 *) Исправление: nginx/Windows пытался дважды переименовать временный
1637 файл при перезаписи уже существующего файла.
1639 *) Исправление: ошибки double free or corruption, возникающей, если имя
1640 хоста не было найдено; ошибка появилась в 0.8.22.
1641 Спасибо Константину Свисту.
1643 *) Исправление: в использовании libatomic на некоторых платформах.
1644 Спасибо W-Mark Kubacki.
1647 Изменения в nginx 0.8.29 30.11.2009
1649 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
1652 *) Добавление: директивы addition_types, charset_types, gzip_types,
1653 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
1655 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
1656 Спасибо W-Mark Kubacki.
1658 *) Добавление: параметр --with-libatomic[=DIR] в configure.
1659 Спасибо W-Mark Kubacki.
1661 *) Исправление: listen unix domain сокет имели ограниченные права
1664 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
1667 *) Исправление: именованные выделения в регулярных выражениях, заданные
1668 как "?P<...>", не работали в директиве server_name.
1669 Спасибо Максиму Дунину.
1672 Изменения в nginx 0.8.28 23.11.2009
1674 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
1678 Изменения в nginx 0.8.27 17.11.2009
1680 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
1684 Изменения в nginx 0.8.26 16.11.2009
1686 *) Исправление: ошибки при использовании выделений в директиве rewrite;
1687 ошибка появилась в 0.8.25.
1689 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
1693 Изменения в nginx 0.8.25 16.11.2009
1695 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
1696 не найдена с помощью метода $r->variable().
1698 *) Добавление: модуль ngx_http_degradation_module.
1700 *) Добавление: именованные выделения в регулярных выражениях.
1702 *) Добавление: теперь при использовании переменных в директиве
1703 proxy_pass не требуется задавать URI.
1705 *) Добавление: теперь директива msie_padding работает и для Chrome.
1707 *) Исправление: в рабочем процессе происходил segmentation fault при
1708 недостатке памяти; ошибка появилась в 0.8.18.
1710 *) Исправление: nginx передавал сжатые ответы клиентам, не
1711 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
1712 ошибка появилась в 0.8.16.
1715 Изменения в nginx 0.8.24 11.11.2009
1717 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
1718 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
1720 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
1723 *) Исправление: параметр "unix:" в директиве set_real_ip_from
1724 неправильно наследовался с предыдущего уровня.
1726 *) Исправление: в resolver'е при определении пустого имени.
1729 Изменения в nginx 0.8.23 11.11.2009
1731 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
1732 Спасибо Максиму Дунину.
1734 *) Исправление: listen unix domain сокет не наследовался во время
1735 обновления без перерыва.
1737 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
1738 без ещё одной директивы с любым IP-адресом.
1740 *) Исправление: segmentation fault и зацикливания в resolver'е.
1742 *) Исправление: в resolver'е.
1743 Спасибо Артёму Бохану.
1746 Изменения в nginx 0.8.22 03.11.2009
1748 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
1750 *) Добавление: директивы access и deny поддерживают IPv6.
1752 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
1755 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
1757 *) Исправление: nginx не удалял unix domain сокет после тестирования
1760 *) Исправление: nginx удалял unix domain сокет во время обновления без
1763 *) Исправление: оператор "!-x" не работал.
1764 Спасибо Максиму Дунину.
1766 *) Исправление: в рабочем процессе мог произойти segmentation fault при
1767 использовании limit_rate в HTTPS сервере.
1768 Спасибо Максиму Дунину.
1770 *) Исправление: при записи в лог переменной $limit_rate в рабочем
1771 процессе происходил segmentation fault.
1772 Спасибо Максиму Дунину.
1774 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1775 если внутри блока server не было директивы listen; ошибка появилась в
1779 Изменения в nginx 0.8.21 26.10.2009
1781 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
1783 *) Добавление: директива listen модуля HTTP поддерживает unix domain
1787 *) Добавление: параметр "default_server" в директиве listen.
1789 *) Добавление: теперь параметр "default" не обязателен для установки
1790 параметров listen-сокета.
1792 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
1795 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
1798 Изменения в nginx 0.8.20 14.10.2009
1800 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
1803 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
1804 слэш для линков на каталоги; ошибка появилась в 0.7.15.
1806 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
1807 --error-log-path; ошибка появилась в 0.7.53.
1809 *) Исправление: nginx не считал запятую разделителем в строке
1810 "Cache-Control" в заголовке ответа бэкенда.
1812 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
1813 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
1814 не имел достаточно прав для работы с каталогами верхнего уровня.
1816 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
1817 FastCGI-сервера не скрывались при кэшировании, если не использовались
1818 директивы fastcgi_hide_header с любыми параметрами.
1820 *) Исправление: nginx неверно считал размер кэша на диске.
1823 Изменения в nginx 0.8.19 06.10.2009
1825 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
1827 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
1828 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
1830 *) Исправление: директива limit_req не работала; ошибка появилась в
1834 Изменения в nginx 0.8.18 06.10.2009
1836 *) Добавление: директива read_ahead.
1838 *) Добавление: теперь можно использовать несколько директив
1841 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
1843 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
1845 Спасибо Максиму Дунину.
1847 *) Исправление: nginx не работал на Linux/sparc.
1848 Спасибо Marcus Ramberg.
1850 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
1851 ответе на запрос MKCOL.
1854 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
1857 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
1860 Изменения в nginx 0.8.17 28.09.2009
1862 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
1863 в заголовке запроса.
1865 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
1867 *) Добавление: переменная $ssl_session_id.
1869 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
1872 Изменения в nginx 0.8.16 22.09.2009
1874 *) Добавление: директива image_filter_transparency.
1876 *) Исправление: директива "addition_types" была неверно названа
1879 *) Исправление: порчи кэша resolver'а.
1880 Спасибо Matthew Dempsky.
1882 *) Исправление: утечки памяти в resolver'е.
1883 Спасибо Matthew Dempsky.
1885 *) Исправление: неверная строка запроса в переменной $request
1886 записывалась в access_log только при использовании error_log на
1887 уровне info или debug.
1889 *) Исправление: в поддержке альфа-канала PNG в модуле
1890 ngx_http_image_filter_module.
1892 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
1893 заголовок ответа, если обе директивы gzip_static и gzip_vary были
1896 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
1899 *) Исправление: ошибки при использовании post_action; ошибка появилась в
1901 Спасибо Игорю Артемьеву.
1904 Изменения в nginx 0.8.15 14.09.2009
1906 *) Безопасность: при обработке специально созданного запроса в рабочем
1907 процессе мог произойти segmentation fault.
1910 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
1911 .domain-some.tld, то имя .sub.domain.tld попадало под маску
1914 *) Исправление: в поддержке прозрачности в модуле
1915 ngx_http_image_filter_module.
1917 *) Исправление: в файловом AIO.
1919 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
1922 *) Исправление: ошибки при использовании встроенного перла; ошибка
1926 Изменения в nginx 0.8.14 07.09.2009
1928 *) Исправление: устаревший закэшированный запрос мог залипнуть в
1929 состоянии "UPDATING".
1931 *) Исправление: при использовании error_log на уровне info или debug в
1932 рабочем процессе мог произойти segmentation fault.
1933 Спасибо Сергею Боченкову.
1935 *) Исправление: ошибки при использовании встроенного перла; ошибка
1938 *) Исправление: директива error_page не перенаправляла ошибку 413;
1939 ошибка появилась в 0.6.10.
1942 Изменения в nginx 0.8.13 31.08.2009
1944 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
1946 *) Исправление: nginx не собирался без параметра --with-file-aio на
1947 FreeBSD; ошибка появилась в 0.8.12.
1950 Изменения в nginx 0.8.12 31.08.2009
1952 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
1954 *) Исправление: ошибки при использовании try_files; ошибка появилась в
1957 *) Исправление: ошибки при использовании memcached; ошибка появилась в
1961 Изменения в nginx 0.8.11 28.08.2009
1963 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
1966 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
1968 *) Добавление: директива directio_alignment.
1971 Изменения в nginx 0.8.10 24.08.2009
1973 *) Исправление: утечек памяти при использовании базы GeoIP City.
1975 *) Исправление: ошибки при копировании временных файлов в постоянное
1976 место хранения; ошибка появилась в 0.8.9.
1979 Изменения в nginx 0.8.9 17.08.2009
1981 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
1982 процесс; это должно улучшить обработку больших кэшей.
1984 *) Добавление: теперь временные файлы и постоянное место хранения могут
1985 располагаться на разных файловых системах.
1988 Изменения в nginx 0.8.8 10.08.2009
1990 *) Исправление: в обработке заголовков ответа, разделённых в
1993 *) Исправление: если запрос обрабатывался в двух проксированных или
1994 FastCGI location'ах и в первом из них использовалось кэширование, то
1995 в рабочем процессе происходил segmentation fault; ошибка появилась в
1999 Изменения в nginx 0.8.7 27.07.2009
2001 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
2003 *) Изменение: параметр ask директивы ssl_verify_client изменён на
2004 параметр optional и теперь он проверяет клиентский сертификат, если
2006 Спасибо Brice Figureau.
2008 *) Добавление: переменная $ssl_client_verify.
2009 Спасибо Brice Figureau.
2011 *) Добавление: директива ssl_crl.
2012 Спасибо Brice Figureau.
2014 *) Добавление: параметр proxy директивы geo.
2016 *) Добавление: директива image_filter поддерживает переменные для
2019 *) Исправление: использование переменной $ssl_client_cert портило
2020 память; ошибка появилась в 0.7.7.
2021 Спасибо Сергею Журавлёву.
2023 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
2024 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
2025 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
2026 Спасибо Максиму Дунину.
2028 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
2029 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
2030 Спасибо Максиму Дунину.
2032 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
2033 ответы в подзапросах; ошибка появилась в 0.8.5.
2036 Изменения в nginx 0.8.6 20.07.2009
2038 *) Добавление: модуль ngx_http_geoip_module.
2040 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
2041 document" для правильного документа.
2042 Спасибо Kuramoto Eiji.
2044 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
2045 location'ов, заданных регулярным выражением, теперь всегда делается
2046 сравнение без учёта регистра символов.
2048 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
2049 Спасибо Hugo Leisink.
2051 *) Исправление: имя файла указанного в --conf-path игнорировалось при
2052 установке; ошибка появилась в 0.6.6.
2053 Спасибо Максиму Дунину.
2056 Изменения в nginx 0.8.5 13.07.2009
2058 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
2060 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
2061 для неверных имени/пароля возвращалась 500-ая ошибка.
2063 *) Исправление: ответы модуля ngx_http_perl_module не работали в
2066 *) Исправление: в модуле ngx_http_limit_req_module.
2067 Спасибо Максиму Дунину.
2070 Изменения в nginx 0.8.4 22.06.2009
2072 *) Исправление: nginx не собирался с параметром --without-http-cache;
2073 ошибка появилась в 0.8.3.
2076 Изменения в nginx 0.8.3 19.06.2009
2078 *) Добавление: переменная $upstream_cache_status.
2080 *) Исправление: nginx не собирался на MacOSX 10.6.
2082 *) Исправление: nginx не собирался с параметром --without-http-cache;
2083 ошибка появилась в 0.8.2.
2085 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
2086 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
2087 в рабочем процессе происходил segmentation fault.
2088 Спасибо Евгению Мычло.
2091 Изменения в nginx 0.8.2 15.06.2009
2093 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
2096 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
2097 долго; ошибка появилась в 0.7.4.
2100 Изменения в nginx 0.8.1 08.06.2009
2102 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
2103 fastcgi_cache_use_stale.
2105 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
2106 заголовке запроса клиента передавались бэкенду при кэшировании, если
2107 не использовалась директива proxy_set_header с любыми параметрами.
2109 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
2110 не скрывались при кэшировании, если не использовались директивы
2111 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
2113 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
2115 Спасибо Денису Ильиных.
2117 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
2121 Изменения в nginx 0.8.0 02.06.2009
2123 *) Добавление: директива keepalive_requests.
2125 *) Добавление: директива limit_rate_after.
2126 Спасибо Ivan Debnar.
2128 *) Исправление: XSLT-фильтр не работал в подзапросах.
2130 *) Исправление: обработке относительных путей в nginx/Windows.
2132 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
2133 fastcgi_cache в nginx/Windows.
2135 *) Исправление: в обработке ошибок выделения памяти.
2136 Спасибо Максиму Дунину и Кириллу Коринскому.
2139 Изменения в nginx 0.7.59 25.05.2009
2141 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
2143 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
2144 Спасибо Максиму Дунину.
2146 *) Исправление: при использовании переменной $request_body в рабочем
2147 процессе происходил segmentation fault, если в запросе не было тела;
2148 ошибка появилась в 0.7.58.
2150 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
2151 ошибка появилась в 0.7.56.
2153 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
2154 обрабатывались SSI-, charset- и gzip-фильтрами.
2156 *) Исправление: директива charset не ставила кодировку для ответов
2157 модуля ngx_http_gzip_static_module.
2160 Изменения в nginx 0.7.58 18.05.2009
2162 *) Добавление: директива listen почтового прокси-сервера поддерживает
2165 *) Добавление: директива image_filter_jpeg_quality.
2167 *) Добавление: директива client_body_in_single_buffer.
2169 *) Добавление: переменная $request_body.
2171 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
2172 файлов, содержащих символ ":".
2174 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
2176 Спасибо Денису Латыпову.
2179 Изменения в nginx 0.7.57 12.05.2009
2181 *) Исправление: при перенаправлении ошибок модуля
2182 ngx_http_image_filter_module в именованный location в рабочем
2183 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
2186 Изменения в nginx 0.7.56 11.05.2009
2188 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
2191 *) Исправление: в модуле ngx_http_image_filter_module.
2194 Изменения в nginx 0.7.55 06.05.2009
2196 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
2197 fastcgi_cache_use_stale не работали.
2199 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
2202 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
2203 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
2205 *) Исправление: при использовании директивы debug_connection в рабочем
2206 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
2208 *) Исправление: в сборке модуля ngx_http_image_filter_module.
2210 *) Исправление: файлы больше 2G не передавались с использованием
2212 Спасибо Максиму Дунину.
2215 Изменения в nginx 0.7.54 01.05.2009
2217 *) Добавление: модуль ngx_http_image_filter_module.
2219 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
2221 *) Исправление: при использовании переменных "open_file_cache_errors on"
2222 в рабочем процессе мог произойти segmentation fault; ошибка появилась
2225 *) Исправление: директива "port_in_redirect off" не работала; ошибка
2228 *) Исправление: улучшение обработки ошибок метода select.
2230 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
2232 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
2233 ошибка появилась в 0.7.53.
2236 Изменения в nginx 0.7.53 27.04.2009
2238 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
2239 самого начала работы.
2241 *) Добавление: теперь ошибки и предупреждения при старте записываются в
2242 error_log и выводятся на stderr.
2244 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
2245 как префикс каталог, в котором он был запущен.
2247 *) Добавление: ключ -p.
2249 *) Добавление: ключ -s на Unix-платформах.
2251 *) Добавление: ключи -? и -h.
2252 Спасибо Jerome Loyet.
2254 *) Добавление: теперь ключи можно задавать в сжатой форме.
2256 *) Исправление: nginx/Windows не работал, если файл конфигурации был
2259 *) Исправление: при использовании директив proxy_store, fastcgi_store,
2260 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
2261 Спасибо Максиму Дунину.
2263 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
2264 почтового прокси-сервера передавалось неверное значение; ошибка
2266 Спасибо Simon Lecaille.
2268 *) Исправление: при логгировании на Linux не писались текстовые описания
2269 системных ошибок; ошибка появилась в 0.7.45.
2271 *) Исправление: директива fastcgi_cache_min_uses не работала.
2272 Спасибо Андрею Воробьёву.
2275 Изменения в nginx 0.7.52 20.04.2009
2277 *) Добавление: первая бинарная версия под Windows.
2279 *) Исправление: корректная обработка метода HEAD при кэшировании.
2281 *) Исправление: корректная обработка строк "If-Modified-Since",
2282 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
2284 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
2285 заголовке ответа для закэшированных ответов.
2287 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
2288 perl поддерживал потоки, то при выходе основного процесса могла
2289 выдаваться ошибка "panic: MUTEX_LOCK".
2291 *) Исправление: nginx не собирался с параметром --without-http-cache;
2292 ошибка появилась в 0.7.48.
2294 *) Исправление: nginx не собирался на платформах, отличных от i386,
2295 amd64, sparc и ppc; ошибка появилась в 0.7.42.
2298 Изменения в nginx 0.7.51 12.04.2009
2300 *) Добавление: директива try_files поддерживает код ответа в последнем
2303 *) Добавление: теперь в директиве return можно использовать любой код
2306 *) Исправление: директива error_page делала внешний редирект без строки
2307 запроса; ошибка появилась в 0.7.44.
2309 *) Исправление: если сервера слушали на нескольких явно описанных
2310 адресах, то виртуальные сервера могли не работать; ошибка появилась в
2314 Изменения в nginx 0.7.50 06.04.2009
2316 *) Исправление: переменные $arg_... не работали; ошибка появилась в
2320 Изменения в nginx 0.7.49 06.04.2009
2322 *) Исправление: при использовании переменных $arg_... в рабочем процессе
2323 мог произойти segmentation fault; ошибка появилась в 0.7.48.
2326 Изменения в nginx 0.7.48 06.04.2009
2328 *) Добавление: директива proxy_cache_key.
2330 *) Исправление: теперь nginx учитывает при кэшировании строки
2331 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
2334 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
2336 *) Исправление: директива fastcgi_cache_key не наследовалась.
2338 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
2339 Спасибо Максиму Дунину.
2341 *) Исправление: nginx не собирался с библиотекой uclibc.
2342 Спасибо Timothy Redaelli.
2344 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
2348 Изменения в nginx 0.7.47 01.04.2009
2350 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
2351 ошибка появилась в 0.7.46.
2353 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
2355 *) Исправление: если использовался параметр max_size, то cache manager
2356 мог удалить весь кэш; ошибка появилась в 0.7.46.
2358 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
2359 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
2360 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
2363 *) Исправление: в рабочем процессе мог произойти segmentation fault при
2364 перенаправлении запроса проксированному или FastCGI-серверу с помощью
2365 error_page или try_files; ошибка появилась в 0.7.44.
2368 Изменения в nginx 0.7.46 30.03.2009
2370 *) Исправление: архив предыдущего релиза был неверным.
2373 Изменения в nginx 0.7.45 30.03.2009
2375 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
2376 задавать на разных уровнях.
2378 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
2380 *) Добавление: параметр max_size в директиве proxy_cache_path.
2382 *) Добавление: предварительная поддержка кэширования в модуле
2383 ngx_http_fastcgi_module.
2385 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
2386 указываются названия директивы и зоны.
2388 *) Исправление: директива "add_header last-modified ''" не удаляла в
2389 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
2391 *) Исправление: в директиве auth_basic_user_file не работал
2392 относительный путь, заданный строкой без переменных; ошибка появилась
2394 Спасибо Jerome Loyet.
2396 *) Исправление: в директиве alias, заданной переменными без ссылок на
2397 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
2400 Изменения в nginx 0.7.44 23.03.2009
2402 *) Добавление: предварительная поддержка кэширования в модуле
2403 ngx_http_proxy_module.
2405 *) Добавление: параметр --with-pcre в configure.
2407 *) Добавление: теперь директива try_files может быть использована на
2410 *) Исправление: директива try_files неправильно обрабатывала строку
2411 запроса в последнем параметре.
2413 *) Исправление: директива try_files могла неверно тестировать каталоги.
2415 *) Исправление: если для пары адрес:порт описан только один сервер, то
2416 выделения в регулярных выражениях в директиве server_name не
2420 Изменения в nginx 0.7.43 18.03.2009
2422 *) Исправление: запрос обрабатывался неверно, если директива root
2423 использовала переменные; ошибка появилась в 0.7.42.
2425 *) Исправление: если сервер слушал на адресах типа "*", то значение
2426 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
2429 Изменения в nginx 0.7.42 16.03.2009
2431 *) Изменение: ошибка "Invalid argument", возвращаемая
2432 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
2434 *) Изменение: при отсутствии файла, указанного в директиве
2435 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
2437 *) Добавление: директива auth_basic_user_file поддерживает переменные.
2438 Спасибо Кириллу Коринскому.
2440 *) Добавление: директива listen поддерживает параметр ipv6only.
2443 *) Исправление: в директиве alias со ссылками на выделения в регулярных
2444 выражениях; ошибка появилась в 0.7.40.
2446 *) Исправление: совместимость с Tru64 UNIX.
2447 Спасибо Dustin Marquess.
2449 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
2453 Изменения в nginx 0.7.41 11.03.2009
2455 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2456 если в server_name или location были выделения в регулярных
2457 выражениях; ошибка появилась в 0.7.40.
2458 Спасибо Владимиру Сопоту.
2461 Изменения в nginx 0.7.40 09.03.2009
2463 *) Добавление: директива location поддерживает выделения в регулярных
2466 *) Добавление: директиву alias с ссылками на выделения в регулярных
2467 выражениях можно использовать внутри location'а, заданного регулярным
2468 выражением с выделениями.
2470 *) Добавление: директива server_name поддерживает выделения в регулярных
2473 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
2474 слэш для каталогов на файловой системе XFS; ошибка появилась в
2476 Спасибо Дмитрию Кузьменко.
2479 Изменения в nginx 0.7.39 02.03.2009
2481 *) Исправление: при включённом сжатии большие ответы с использованием
2482 SSI могли зависать; ошибка появилась в 0.7.28.
2483 Спасибо Артёму Бохану.
2485 *) Исправление: при использовании коротких статических вариантов в
2486 директиве try_files в рабочем процессе мог произойти segmentation
2490 Изменения в nginx 0.7.38 23.02.2009
2492 *) Добавление: логгирование ошибок аутентификации.
2494 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
2495 игнорировались после нечётного числа пустых строк.
2496 Спасибо Александру Загребину.
2498 *) Исправление: при использовании длинного пути в unix domain сокете в
2499 главном процессе происходил segmentation fault; ошибка появилась в
2503 Изменения в nginx 0.7.37 21.02.2009
2505 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
2509 Изменения в nginx 0.7.36 21.02.2009
2511 *) Добавление: предварительная поддержка IPv6; директива listen модуля
2512 HTTP поддерживает IPv6.
2514 *) Исправление: переменная $ancient_browser не работала для браузеров,
2515 заданных директивами modern_browser.
2518 Изменения в nginx 0.7.35 16.02.2009
2520 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
2521 асимметричных шифров.
2522 Спасибо Marcin Gozdalik.
2524 *) Исправление: директива try_files выставляла MIME-type, исходя из
2525 расширения первоначального запроса.
2527 *) Исправление: в директивах server_name, valid_referers и map
2528 неправильно обрабатывались имена вида "*domain.tld", если
2529 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
2530 ошибка появилась в 0.7.9.
2533 Изменения в nginx 0.7.34 10.02.2009
2535 *) Добавление: параметр off в директиве if_modified_since.
2537 *) Добавление: теперь после команды XCLIENT nginx посылает команду
2539 Спасибо Максиму Дунину.
2541 *) Добавление: поддержка Microsoft-специфичного режима
2542 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
2543 Спасибо Максиму Дунину.
2545 *) Исправление: в директиве rewrite, возвращающей редирект, старые
2546 аргументы присоединялись к новым через символ "?" вместо "&";
2547 ошибка появилась в 0.1.18.
2548 Спасибо Максиму Дунину.
2550 *) Исправление: nginx не собирался на AIX.
2553 Изменения в nginx 0.7.33 02.02.2009
2555 *) Исправление: если на запрос с телом возвращался редирект, то ответ
2556 мог быть двойным при использовании методов epoll или rtsig.
2559 *) Исправление: для некоторых типов редиректов в переменной
2560 $sent_http_location было пустое значение.
2562 *) Исправление: при использовании директивы resolver в SMTP
2563 прокси-сервере в рабочем процессе мог произойти segmentation fault.
2566 Изменения в nginx 0.7.32 26.01.2009
2568 *) Добавление: теперь в директиве try_files можно явно указать проверку
2571 *) Исправление: fastcgi_store не всегда сохранял файлы.
2573 *) Исправление: в гео-диапазонах.
2575 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
2576 если nginx был собран без отладки.
2577 Спасибо Андрею Квасову.
2580 Изменения в nginx 0.7.31 19.01.2009
2582 *) Изменение: теперь директива try_files проверяет только файлы,
2585 *) Добавление: директива fastcgi_split_path_info.
2587 *) Исправления в поддержке строки "Expect" в заголовке запроса.
2589 *) Исправления в гео-диапазонах.
2591 *) Исправление: при отсутствии ответа ngx_http_memcached_module
2592 возвращал в теле ответа строку "END" вместо 404-ой страницы по
2593 умолчанию; ошибка появилась в 0.7.18.
2594 Спасибо Максиму Дунину.
2596 *) Исправление: при проксировании SMPT nginx выдавал сообщение
2597 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
2598 Спасибо Максиму Дунину.
2601 Изменения в nginx 0.7.30 24.12.2008
2603 *) Исправление: в рабочем процессе происходил segmentation fault, если в
2604 директивах fastcgi_pass или proxy_pass использовались переменные и
2605 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
2608 Изменения в nginx 0.7.29 24.12.2008
2610 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
2611 переменные при использовании unix domain сокетов.
2613 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
2615 *) Исправление: ответ "100 Continue" выдавался для запросов версии
2617 Спасибо Максиму Дунину.
2619 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
2623 Изменения в nginx 0.7.28 22.12.2008
2625 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
2627 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
2628 с 4 4k/8k на 32 4k или 16 8k.
2631 Изменения в nginx 0.7.27 15.12.2008
2633 *) Добавление: директива try_files.
2635 *) Добавление: директива fastcgi_pass поддерживает переменные.
2637 *) Добавление: теперь директива geo может брать адрес из переменной.
2638 Спасибо Андрею Нигматулину.
2640 *) Добавление: теперь модификатор location'а можно указывать без пробела
2643 *) Добавление: переменная $upstream_response_length.
2645 *) Исправление: теперь директива add_header не добавляет пустое
2648 *) Исправление: при запросе файла нулевой длины nginx закрывал
2649 соединение, ничего не передав; ошибка появилась в 0.7.25.
2651 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
2654 *) Исправление: если в сервере не был описан ни один именованный
2655 location, но такой location использовался в директиве error_page, то
2656 в рабочем процессе происходил segmentation fault.
2657 Спасибо Сергею Боченкову.
2660 Изменения в nginx 0.7.26 08.12.2008
2662 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
2665 Изменения в nginx 0.7.25 08.12.2008
2667 *) Изменение: в обработке подзапросов.
2669 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
2672 *) Исправление: теперь директивы limit_req и limit_conn указывают
2673 причину запрета запроса.
2675 *) Исправление: в параметре delete директивы geo.
2678 Изменения в nginx 0.7.24 01.12.2008
2680 *) Добавление: директива if_modified_since.
2682 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
2683 ответом сервер передавал много сообщений в stderr.
2685 *) Исправление: переменные "$cookie_..." не работали в SSI and в
2689 Изменения в nginx 0.7.23 27.11.2008
2691 *) Добавление: параметры delete и ranges в директиве geo.
2693 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
2695 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
2698 Изменения в nginx 0.7.22 20.11.2008
2700 *) Добавление: параметр none в директиве smtp_auth.
2701 Спасибо Максиму Дунину.
2703 *) Добавление: переменные "$cookie_...".
2705 *) Исправление: директива directio не работала с файловой системой XFS.
2707 *) Исправление: resolver не понимал большие DNS-ответы.
2711 Изменения в nginx 0.7.21 11.11.2008
2713 *) Изменения в модуле ngx_http_limit_req_module.
2715 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
2716 Спасибо Денису Латыпову.
2718 *) Изменение: совместимость с glibc 2.3.
2719 Спасибо Eric Benson и Максиму Дунину.
2721 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
2722 ошибка появилась в 0.7.6.
2725 Изменения в nginx 0.7.20 10.11.2008
2727 *) Изменения в модуле ngx_http_gzip_filter_module.
2729 *) Добавление: модуль ngx_http_limit_req_module.
2731 *) Исправление: на платформах sparc и ppc рабочие процессы могли
2732 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
2733 Спасибо Максиму Дунину.
2735 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
2736 работали; ошибка появилась в 0.7.12.
2738 *) Исправление: при использовании HTTPS запросы могли завершаться с
2739 ошибкой "bad write retry".
2741 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
2742 location'ов с именами меньше 3 символов.
2744 *) Исправление: переменная $server_addr могла не иметь значения.
2747 Изменения в nginx 0.7.19 13.10.2008
2749 *) Исправление: обновление номера версии.
2752 Изменения в nginx 0.7.18 13.10.2008
2754 *) Изменение: директива underscores_in_headers; теперь nginx по
2755 умолчанию не разрешает подчёркивания в именах строк в заголовке
2758 *) Добавление: модуль ngx_http_secure_link_module.
2760 *) Добавление: директива real_ip_header поддерживает любой заголовок.
2762 *) Добавление: директива log_subrequest.
2764 *) Добавление: переменная $realpath_root.
2766 *) Добавление: параметры http_502 и http_504 в директиве
2767 proxy_next_upstream.
2769 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
2770 fastcgi_next_upstream не работал.
2772 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
2775 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
2778 Изменения в nginx 0.7.17 15.09.2008
2780 *) Добавление: директива directio теперь работает на Linux.
2782 *) Добавление: переменная $pid.
2784 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
2785 при использовании open_file_cache.
2787 *) Исправление: access_log с переменными не работал на Linux; ошибка
2790 *) Исправление: модуль ngx_http_charset_module не понимал название
2791 кодировки в кавычках, полученное от бэкенда.
2794 Изменения в nginx 0.7.16 08.09.2008
2796 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
2800 Изменения в nginx 0.7.15 08.09.2008
2802 *) Добавление: модуль ngx_http_random_index_module.
2804 *) Добавление: директива directio оптимизирована для запросов файлов,
2805 начинающихся с произвольной позиции.
2807 *) Добавление: директива directio при необходимости запрещает
2808 использование sendfile.
2810 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
2811 заголовке запроса клиента.
2814 Изменения в nginx 0.7.14 01.09.2008
2816 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
2817 имеют значений по умолчанию.
2819 *) Добавление: директива listen поддерживает параметр ssl.
2821 *) Добавление: теперь при переконфигурации nginx учитывает изменение
2822 временной зоны на FreeBSD и Linux.
2824 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
2825 прочие, не устанавливались, если сервером по умолчанию был не первый
2828 *) Исправление: при использовании в качестве аргументов части URI,
2829 выделенного с помощью директивы rewrite, эти аргументы не
2832 *) Исправление: улучшения тестирования правильности конфигурационного
2836 Изменения в nginx 0.7.13 26.08.2008
2838 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
2842 Изменения в nginx 0.7.12 26.08.2008
2844 *) Добавление: директива server_name поддерживает пустое имя "".
2846 *) Добавление: директива gzip_disable поддерживает специальную маску
2849 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
2850 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
2851 Спасибо Максиму Дунину.
2853 *) Исправление: при перенаправлении запроса с помощью директивы
2854 error_page терялось тело запроса.
2856 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
2857 директивы error_page возвращался полный ответ.
2859 *) Исправление: метод $r->header_in() не возвращал значения строк
2860 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
2864 Изменения в nginx 0.7.11 18.08.2008
2866 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
2867 MIME-типом text/css.
2869 *) Добавление: теперь nginx возвращает код 405 для метода POST при
2870 запросе статического файла, только если файл существует.
2872 *) Добавление: директива proxy_ssl_session_reuse.
2874 *) Исправление: после перенаправления запроса с помощью
2875 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
2876 оригинальный запрос.
2878 *) Исправление: если у каталога были права доступа только на поиск
2879 файлов и первый индексный файл отсутствовал, то nginx возвращал
2882 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
2886 Изменения в nginx 0.7.10 13.08.2008
2888 *) Исправление: ошибок в директивах addition_types, charset_types,
2889 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
2892 *) Исправление: рекурсивной error_page для 500 ошибки.
2894 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
2895 не для всего keepalive соединения, а для каждого запроса по этому
2899 Изменения в nginx 0.7.9 12.08.2008
2901 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
2902 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
2903 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
2905 *) Добавление: директивы charset_types и addition_types.
2907 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
2910 *) Добавление: модуль ngx_cpp_test_module.
2912 *) Добавление: директива expires поддерживает суточное время.
2914 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
2915 Спасибо Денису Латыпову и Максиму Дунину.
2917 *) Исправление: директива log_not_found не работала при поиске индексных
2920 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
2921 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
2923 *) Исправление: если в директивах server_name, valid_referers и map
2924 использовалась маска вида "*.domain.tld" и при этом полное имя вида
2925 "domain.tld" не было описано, то это имя попадало под маску; ошибка
2929 Изменения в nginx 0.7.8 04.08.2008
2931 *) Добавление: модуль ngx_http_xslt_module.
2933 *) Добавление: переменные "$arg_...".
2935 *) Добавление: поддержка directio в Solaris.
2936 Спасибо Ivan Debnar.
2938 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
2939 в заголовке ответа без строки статуса, то nginx использует код
2941 Спасибо Максиму Дунину.
2944 Изменения в nginx 0.7.7 30.07.2008
2946 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
2949 *) Изменение: значением переменной $ssl_client_cert теперь является
2950 сертификат, перед каждой строкой которого, кроме первой, вставляется
2951 символ табуляции; неизменённый сертификат доступен через переменную
2952 $ssl_client_raw_cert.
2954 *) Добавление: параметр ask директивы ssl_verify_client.
2956 *) Добавление: улучшения в обработке byte-range.
2957 Спасибо Максиму Дунину.
2959 *) Добавление: директива directio.
2962 *) Добавление: поддержка sendfile() в MacOSX 10.5.
2964 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
2965 делается сравнение без учёта регистра символов; однако, сравнение
2966 ограничено только однобайтными locale'ями.
2968 *) Исправление: соединения почтового прокси-сервера зависали в режиме
2969 SSL, если использовались методы select, poll или /dev/poll.
2971 *) Исправление: ошибки при использовании кодировки UTF-8 в
2972 ngx_http_autoindex_module.
2975 Изменения в nginx 0.7.6 07.07.2008
2977 *) Исправление: теперь при использовании переменных в директиве
2978 access_log всегда проверяется существовании root'а для запроса.
2980 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
2981 значений в аргументах запроса.
2984 Изменения в nginx 0.7.5 01.07.2008
2986 *) Исправления в поддержке переменных в директиве access_log; ошибки
2989 *) Исправление: nginx не собирался с параметром
2990 --without-http_gzip_module; ошибка появилась в 0.7.3.
2991 Спасибо Кириллу Коринскому.
2993 *) Исправление: при совместном использовании sub_filter и SSI ответы
2994 могли передаваться неверно.
2997 Изменения в nginx 0.7.4 30.06.2008
2999 *) Добавление: директива access_log поддерживает переменные.
3001 *) Добавление: директива open_log_file_cache.
3003 *) Добавление: ключ -g.
3005 *) Добавление: поддержка строки "Expect" в заголовке запроса.
3007 *) Исправление: большие включения в SSI могли передавались не полностью.
3010 Изменения в nginx 0.7.3 23.06.2008
3012 *) Изменение: MIME-тип для расширения rss изменён на
3013 "application/rss+xml".
3015 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
3016 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
3018 *) Добавление: теперь при использовании протокола "https://" в директиве
3019 rewrite автоматически делается редирект.
3021 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
3022 ошибка появилась в 0.6.9.
3025 Изменения в nginx 0.7.2 16.06.2008
3027 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
3029 *) Добавление: директива ssl_dhparam.
3031 *) Добавление: переменная $ssl_client_cert.
3032 Спасибо Manlio Perillo.
3034 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
3035 искал новый location; ошибка появилась в 0.7.1.
3036 Спасибо Максиму Дунину.
3038 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
3041 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
3042 nginx не добавлял аргументы из оригинального запроса.
3045 Изменения в nginx 0.7.1 26.05.2008
3047 *) Изменение: теперь поиск location'а делается с помощью дерева.
3049 *) Изменение: директива optimize_server_names упразднена в связи с
3050 появлением директивы server_name_in_redirect.
3052 *) Изменение: некоторые давно устаревшие директивы больше не
3055 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
3056 параметр используется по умолчанию.
3057 Спасибо Rob Mueller.
3059 *) Исправление: рабочие процессы могли не реагировать на сигналы
3060 переконфигурации и ротации логов.
3062 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
3066 Изменения в nginx 0.7.0 19.05.2008
3068 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
3069 записываются в виде \xXX.
3070 Спасибо Максиму Дунину.
3072 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
3075 *) Добавление: директива expires поддерживает флаг modified.
3077 *) Добавление: переменные $uid_got и $uid_set можно использовать на
3078 любой стадии обработки запроса.
3080 *) Добавление: переменная $hostname.
3081 Спасибо Андрею Нигматулину.
3083 *) Добавление: поддержка DESTDIR.
3084 Спасибо Todd A. Fisher и Andras Voroskoi.
3086 *) Исправление: при использовании keepalive на Linux в рабочем процессе
3087 мог произойти segmentation fault.
3090 Изменения в nginx 0.6.31 12.05.2008
3092 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
3093 заголовка ответ была в конце записи FastCGI; ошибка появилась в
3095 Спасибо Сергею Серову.
3097 *) Исправление: при удалении файла и использовании директивы
3098 open_file_cache_errors off в рабочем процессе мог произойти
3102 Изменения в nginx 0.6.30 29.04.2008
3104 *) Изменение: теперь, если маске, заданной в директиве include, не
3105 соответствует ни один файл, то nginx не выдаёт ошибку.
3107 *) Добавление: теперь время в директивах можно задавать без пробела,
3110 *) Исправление: утечек памяти, если директива ssl_verify_client имела
3112 Спасибо Chavelle Vincent.
3114 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
3117 *) Исправление: директива error_page не воспринимала параметры в
3118 перенаправляемом URI.
3120 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
3123 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
3127 Изменения в nginx 0.6.29 18.03.2008
3129 *) Добавление: модуль ngx_google_perftools_module.
3131 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
3132 платформах; ошибка появилась в 0.6.27.
3135 Изменения в nginx 0.6.28 13.03.2008
3137 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
3140 Изменения в nginx 0.6.27 12.03.2008
3142 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
3145 *) Изменение: теперь при перенаправлении запроса в именованный location
3146 с помощью директивы error_page метод запроса не изменяется.
3148 *) Добавление: директивы resolver и resolver_timeout в SMTP
3151 *) Добавление: директива post_action поддерживает именованные
3154 *) Исправление: при перенаправлении запроса из location'а c обработчиком
3155 proxy, FastCGI или memcached в именованный location со статическим
3156 обработчиком в рабочем процессе происходил segmentation fault.
3158 *) Исправление: браузеры не повторяли SSL handshake, если при первом
3159 handshake не оказалось правильного клиентского сертификата.
3160 Спасибо Александру Инюхину.
3162 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
3163 error_page без изменения кода ошибки nginx пытался выделить очень
3166 *) Исправление: утечки памяти в долгоживущих небуфферизированных
3169 *) Исправление: утечки памяти в resolver'е.
3171 *) Исправление: при перенаправлении запроса из location'а c обработчиком
3172 proxy в другой location с обработчиком proxy в рабочем процессе
3173 происходил segmentation fault.
3175 *) Исправление: ошибки в кэшировании переменных $proxy_host и
3177 Спасибо Сергею Боченкову.
3179 *) Исправление: директива proxy_pass с переменными использовала порт,
3180 описанной в другой директиве proxy_pass без переменных, но с таким же
3182 Спасибо Сергею Боченкову.
3184 *) Исправление: во время переконфигурации на некоторых 64-битном
3185 платформах в лог записывался alert "sendmsg() failed (9: Bad file
3188 *) Исправление: при повторном использовании в SSI пустого block'а в
3189 качестве заглушки в рабочем процессе происходил segmentation fault.
3191 *) Исправление: ошибки при копировании части URI, содержащего
3192 экранированные символы, в аргументы.
3195 Изменения в nginx 0.6.26 11.02.2008
3197 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
3200 *) Исправление: при использовании большого значения в директиве expires
3201 в рабочем процессе происходил segmentation fault.
3202 Спасибо Joaquin Cuenca Abela.
3204 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
3205 Спасибо Геннадию Махомеду.
3207 *) Исправление: в проксированных подзапросах и подзапросах к
3208 FastCGI-серверу вместо метода GET использовался оригинальный метод
3211 *) Исправление: утечки сокетов в режиме HTTPS при использовании
3212 отложенного accept'а.
3215 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
3216 (SSL: )"; ошибка появилась в 0.6.23.
3218 *) Исправление: при использовании HTTPS запросы могли завершаться с
3219 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
3222 Изменения в nginx 0.6.25 08.01.2008
3224 *) Изменение: вместо специального параметра "*" в директиве server_name
3225 теперь используется директива server_name_in_redirect.
3227 *) Изменение: в качестве основного имени в директиве server_name теперь
3228 можно использовать имена с масками и регулярными выражениями.
3230 *) Изменение: директива satisfy_any заменена директивой satisfy.
3232 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
3233 нагружать процессор при запуске под Linux OpenVZ.
3235 *) Добавление: директива min_delete_depth.
3237 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
3239 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
3240 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
3242 *) Исправление: утечки сокетов в режиме HTTPS при использовании
3243 отложенного accept'а.
3246 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
3250 Изменения в nginx 0.6.24 27.12.2007
3252 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
3253 segmentation fault; ошибка появилась в 0.6.23.
3256 Изменения в nginx 0.6.23 27.12.2007
3258 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
3259 параметр используется по умолчанию.
3261 *) Изменение: директива open_file_cache_retest переименована в
3262 open_file_cache_valid.
3264 *) Добавление: директива open_file_cache_min_uses.
3266 *) Добавление: модуль ngx_http_gzip_static_module.
3268 *) Добавление: директива gzip_disable.
3270 *) Добавление: директиву memcached_pass можно использовать внутри блока
3273 *) Исправление: если внутри одного location'а использовались директивы
3274 "memcached_pass" и "if", то в рабочем процессе происходил
3277 *) Исправление: если при использовании директивы satisfy_any on" были
3278 заданы директивы не всех модулей доступа, то заданные директивы не
3281 *) Исправление: параметры, заданные регулярным выражением в директиве
3282 valid_referers, не наследовалась с предыдущего уровня.
3284 *) Исправление: директива post_action не работала, если запрос
3285 завершался с кодом 499.
3287 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
3290 *) Исправление: STARTTLS в режиме SMTP не работал.
3291 Спасибо Олегу Мотиенко.
3293 *) Исправление: при использовании HTTPS запросы могли завершаться с
3294 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
3297 Изменения в nginx 0.6.22 19.12.2007
3299 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
3300 значения, скопированные в память, выделенную perl'ом.
3302 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
3303 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
3304 время переконфигурации основной процесс аварийно выходил; ошибка
3306 Спасибо Борису Жмурову.
3308 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
3309 неверные результаты выделения в регулярных выражениях.
3311 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
3312 у которого небольшое тело запроса было уже полностью получено, то в
3313 рабочем процессе происходил segmentation fault.
3315 *) Исправление: large_client_header_buffers не освобождались перед
3316 переходом в состояние keep-alive.
3317 Спасибо Олександру Штепе.
3319 *) Исправление: в переменной $upstream_addr не записывался последний
3320 адрес; ошибка появилась в 0.6.18.
3322 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
3323 теперь она возвращает ошибку 502, которую можно направить на
3324 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
3326 *) Исправление: при использовании директивы fastcgi_catch_stderr в
3327 основном процессе происходил segmentation fault; ошибка появилась в
3329 Спасибо Manlio Perillo.
3332 Изменения в nginx 0.6.21 03.12.2007
3334 *) Изменение: если в значениях переменных директивы proxy_pass
3335 используются только IP-адреса, то указывать resolver не нужно.
3337 *) Исправление: при использовании директивы proxy_pass c URI-частью в
3338 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3341 *) Исправление: если resolver использовался на платформах, не
3342 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
3344 Спасибо Андрею Нигматулину.
3346 *) Исправление: При использовании переменной $server_protocol в
3347 FastCGI-параметрах и запросе, длина которого была близка к значению
3348 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
3349 the request record is too big".
3351 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
3352 nginx возвращал обычный ответ.
3355 Изменения в nginx 0.6.20 28.11.2007
3357 *) Исправление: при использовании директивы proxy_pass c URI-частью в
3358 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3362 Изменения в nginx 0.6.19 27.11.2007
3364 *) Исправление: версия 0.6.18 не собиралась.
3367 Изменения в nginx 0.6.18 27.11.2007
3369 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
3370 процесса добавляет микросекунды на время старта.
3372 *) Изменение: в error_log теперь записывается полная строка запроса
3375 *) Добавление: директива proxy_pass поддерживает переменные.
3377 *) Добавление: директивы resolver и resolver_timeout.
3379 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
3380 заголовке ответа строку "Last-Modified".
3382 *) Исправление: директива limit_rate не позволяла передавать на полной
3383 скорости, даже если был указан очень большой лимит.
3386 Изменения в nginx 0.6.17 15.11.2007
3388 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
3389 Спасибо Александру Инюхину.
3391 *) Исправление: при использовании директивы msie_refresh повторно
3392 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
3394 *) Исправление: директива autoindex не работала при использовании "alias
3397 *) Исправление: при использовании подзапросов в рабочем процессе мог
3398 произойти segmentation fault.
3400 *) Исправление: при использовании SSL и gzip большие ответы могли
3401 передаваться не полностью.
3403 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
3404 то переменная $status была равна 0.
3407 Изменения в nginx 0.6.16 29.10.2007
3409 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
3410 Спасибо Илье Новикову.
3412 *) Исправление: если в директиве error_page использовался символ "?", то
3413 он экранировался при проксировании запроса; ошибка появилась в
3416 *) Исправление: совместимость с mget.
3419 Изменения в nginx 0.6.15 22.10.2007
3421 *) Добавление: совместимость с Cygwin.
3422 Спасибо Владимиру Кутакову.
3424 *) Добавление: директива merge_slashes.
3426 *) Добавление: директива gzip_vary.
3428 *) Добавление: директива server_tokens.
3430 *) Исправление: nginx не раскодировал URI в команде SSI include.
3432 *) Исправление: при использовании переменной в директивах charset или
3433 source_charset на старте или во время переконфигурации происходил
3436 *) Исправление: nginx возвращал ошибку 400 на запросы вида
3437 "GET http://www.domain.com HTTP/1.0".
3438 Спасибо James Oakley.
3440 *) Исправление: после перенаправления запроса с телом запроса с помощью
3441 директивы error_page nginx пытался снова прочитать тело запроса;
3442 ошибка появилась в 0.6.7.
3444 *) Исправление: в рабочем процессе происходил segmentation fault, если у
3445 сервера, обрабатывающему запрос, не был явно определён server_name;
3446 ошибка появилась в 0.6.7.
3449 Изменения в nginx 0.6.14 15.10.2007
3451 *) Изменение: теперь по умолчанию команда SSI echo использует
3454 *) Добавление: параметр encoding в команде SSI echo.
3456 *) Добавление: директиву access_log можно использовать внутри блока
3459 *) Исправление: если все сервера апстрима оказывались недоступными, то
3460 до восстановления работоспособности у всех серверов вес становился
3461 равным одному; ошибка появилась в 0.6.6.
3463 *) Исправление: при использовании переменных $date_local и $date_gmt вне
3464 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
3467 *) Исправление: при использовании включённом отладочном логе в рабочем
3468 процессе мог произойти segmentation fault.
3469 Спасибо Андрею Нигматулину.
3471 *) Исправление: ngx_http_memcached_module не устанавливал
3472 $upstream_response_time.
3473 Спасибо Максиму Дунину.
3475 *) Исправление: рабочий процесс мог зациклиться при использовании
3478 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
3479 строке "Connection" в заголовке запроса только, если они были в
3480 нижнем регистре; ошибка появилась в 0.6.11.
3482 *) Исправление: sub_filter не работал с пустой строкой замены.
3484 *) Исправление: в парсинге sub_filter.
3487 Изменения в nginx 0.6.13 24.09.2007
3489 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
3490 использовался autoindex
3491 Спасибо Arkadiusz Patyk.
3494 Изменения в nginx 0.6.12 21.09.2007
3496 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
3499 *) Добавление: параметры конфигурации --without-mail_pop3_module,
3500 --without-mail_imap_module и --without-mail_smtp_module.
3502 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
3503 ngx_mail_smtp_module.
3505 *) Исправление: wildcard в конце имени сервера не работали; ошибка
3508 *) Исправление: при использовании разделяемой библиотеки PCRE,
3509 расположенной в нестандартном месте, nginx не запускался на Solaris.
3511 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
3512 скрывали строки заголовка ответа с именем больше 32 символов.
3513 Спасибо Manlio Perillo.
3516 Изменения в nginx 0.6.11 11.09.2007
3518 *) Исправление: счётчик активных соединений всегда рос при использовании
3519 почтового прокси-сервера.
3521 *) Исправление: если бэкенд возвращал только заголовок ответа при
3522 небуферизированном проксировании, то nginx закрывал соединение с
3523 бэкендом по таймауту.
3525 *) Исправление: nginx не поддерживал несколько строк "Connection" в
3528 *) Исправление: если в сервере апстрима был задан max_fails, то после
3529 первой же неудачной попытки вес сервера навсегда становился равным
3530 одному; ошибка появилась в 0.6.6.
3533 Изменения в nginx 0.6.10 03.09.2007
3535 *) Добавление: директивы open_file_cache, open_file_cache_retest и
3536 open_file_cache_errors.
3538 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
3540 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
3541 методе $r->send_http_header(), не добавлялась кодировка, указанная в
3544 *) Исправление: при использовании метода /dev/poll в рабочем процессе
3545 мог произойти segmentation fault.
3548 Изменения в nginx 0.6.9 28.08.2007
3550 *) Исправление: рабочий процесс мог зациклиться при использовании
3551 протокола HTTPS; ошибка появилась в 0.6.7.
3553 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
3554 не запускался при использовании wildcard в конце имени сервера.
3556 *) Исправление: директива ip_hash могла неверно помечать сервера как
3559 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
3562 Изменения в nginx 0.6.8 20.08.2007
3564 *) Изменение: теперь nginx пытается установить директивы
3565 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
3566 worker_rlimit_sigpending без привилегий root'а.
3568 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
3569 запроса серверу аутентификации почтового прокси-сервера.
3571 *) Изменение: теперь nginx экранирует символ "%" в переменной
3574 *) Исправление: при указании относительного пути к конфигурационному
3575 файлу в качестве параметра ключа -c nginx определял путь относительно
3576 конфигурационного префикса; ошибка появилась в 0.6.6.
3578 *) Исправление: nginx не работал на FreeBSD/sparc64.
3581 Изменения в nginx 0.6.7 15.08.2007
3583 *) Изменение: теперь пути, указанные в директивах include,
3584 auth_basic_user_file, perl_modules, ssl_certificate,
3585 ssl_certificate_key и ssl_client_certificate, определяются
3586 относительно каталога конфигурационного файла nginx.conf, а не
3587 относительно префикса.
3589 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
3591 *) Изменение: для обновления на лету версий 0.1.x создан специальный
3592 сценарий make upgrade1.
3594 *) Добавление: директивы server_name и valid_referers поддерживают
3595 регулярные выражения.
3597 *) Добавление: директива server в блоке upstream поддерживает параметр
3600 *) Добавление: модуль ngx_http_perl_module поддерживает метод
3601 $r->discard_request_body.
3603 *) Добавление: директива "add_header Last-Modified ..." меняет строку
3604 "Last-Modified" в заголовке ответа.
3606 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
3607 отличным от 200, и после этого запроса соединение переходило в
3608 состояние keep-alive, то на следующий запрос nginx возвращал 400.
3610 *) Исправление: если в директиве auth_http был задан неправильный адрес,
3611 то в рабочем процессе происходил segmentation fault.
3613 *) Исправление: теперь по умолчанию nginx использует значение 511 для
3614 listen backlog на всех платформах, кроме FreeBSD.
3617 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
3618 upstream был помечен как down; ошибка появилась в 0.6.6.
3620 *) Исправление: sendfilev() в Solaris теперь не используется при
3621 передаче тела запроса FastCGI-серверу через unix domain сокет.
3624 Изменения в nginx 0.6.6 30.07.2007
3626 *) Добавление: параметр --sysconfdir=PATH в configure.
3628 *) Добавление: именованные location'ы.
3630 *) Добавление: переменную $args можно устанавливать с помощью set.
3632 *) Добавление: переменная $is_args.
3634 *) Исправление: равномерное распределение запросов к апстримам с
3637 *) Исправление: если клиент в почтовом прокси-сервере закрывал
3638 соединение, то nginx мог не закрывать соединение с бэкендом.
3640 *) Исправление: при использовании одного хоста в качестве бэкендов для
3641 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
3642 только один порт - 80 или 443.
3644 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
3645 более ранними версиями; ошибка появилась в 0.6.4.
3648 Изменения в nginx 0.6.5 23.07.2007
3650 *) Добавление: переменная $nginx_version.
3651 Спасибо Николаю Гречуху.
3653 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
3655 Спасибо Максиму Дунину.
3657 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
3659 Спасибо Максиму Дунину.
3661 *) Исправление: теперь nginx экранирует пробел в переменной
3664 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
3667 *) Исправление: незначительных потенциальных ошибок.
3668 Спасибо Coverity's Scan.
3671 Изменения в nginx 0.6.4 17.07.2007
3673 *) Безопасность: при использовании директивы msie_refresh был возможен
3675 Спасибо Максиму Богуку.
3677 *) Изменение: директивы proxy_store и fastcgi_store изменены.
3679 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
3681 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
3683 Спасибо Андрею Нигматулину.
3685 *) Изменение: обход ошибки в Sun Studio 12.
3689 Изменения в nginx 0.6.3 12.07.2007
3691 *) Добавление: директивы proxy_store и fastcgi_store.
3693 *) Исправление: при использовании директивы auth_http_header в рабочем
3694 процессе мог произойти segmentation fault.
3695 Спасибо Максиму Дунину.
3697 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
3698 не был разрешён, то в рабочем процессе происходил segmentation fault.
3700 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
3701 в рабочем процессе мог произойти segmentation fault.
3703 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3704 если использовался метод eventport.
3706 *) Исправление: директивы proxy_ignore_client_abort и
3707 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
3710 Изменения в nginx 0.6.2 09.07.2007
3712 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
3713 nginx передавал клиенту мусор в таких заголовках.
3716 Изменения в nginx 0.6.1 17.06.2007
3718 *) Исправление: в парсинге SSI.
3720 *) Исправление: при использовании удалённого подзапроса в SSI
3721 последующий подзапрос локального файла мог отдаваться клиенту в
3724 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
3725 передавались не полностью.
3727 *) Исправление: значение perl'овой переменной $$ модуля
3728 ngx_http_perl_module было равно номеру главного процесса.
3731 Изменения в nginx 0.6.0 14.06.2007
3733 *) Добавление: директивы "server_name", "map", and "valid_referers"
3734 поддерживают маски вида "www.example.*".
3737 Изменения в nginx 0.5.25 11.06.2007
3739 *) Исправление: nginx не собирался с параметром
3740 --without-http_rewrite_module; ошибка появилась в 0.5.24.
3743 Изменения в nginx 0.5.24 06.06.2007
3745 *) Безопасность: директива ssl_verify_client не работала, если запрос
3746 выполнялся по протоколу HTTP/0.9.
3748 *) Исправление: при использовании сжатия часть ответа могла передаваться
3749 несжатой; ошибка появилась в 0.5.23.
3752 Изменения в nginx 0.5.23 04.06.2007
3754 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
3755 Server Name Indication.
3757 *) Добавление: директива fastcgi_catch_stderr.
3758 Спасибо Николаю Гречуху, проект OWOX.
3760 *) Исправление: на Линуксе в основном процессе происходил segmentation
3761 fault, если два виртуальных сервера должны bind()ится к
3762 пересекающимся портам.
3764 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
3765 perl поддерживал потоки, то во время второй переконфигурации
3766 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
3768 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
3771 Изменения в nginx 0.5.22 29.05.2007
3773 *) Исправление: большое тело запроса могло не передаваться бэкенду;
3774 ошибка появилась в 0.5.21.
3777 Изменения в nginx 0.5.21 28.05.2007
3779 *) Исправление: если внутри сервера описано больше примерно десяти
3780 location'ов, то location'ы, заданные с помощью регулярного выражения,
3781 могли выполняться не в том, порядке, в каком они описаны.
3783 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
3784 если 33-тий по счёту или последующий бэкенд упал.
3785 Спасибо Антону Поварову.
3787 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
3788 произойти bus error.
3789 Спасибо Андрею Нигматулину.
3791 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
3794 Изменения в nginx 0.5.20 07.05.2007
3796 *) Добавление: директива sendfile_max_chunk.
3798 *) Добавление: переменные "$http_...", "$sent_http_..." и
3799 "$upstream_http_..." можно менять директивой set.
3801 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
3802 рабочем процессе мог произойти segmentation fault.
3804 *) Исправление: завершающая строка multipart range ответа передавалась
3806 Спасибо Evan Miller.
3808 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
3810 Спасибо Андрею Нигматулину.
3812 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
3813 Спасибо Андрею Нигматулину.
3816 Изменения в nginx 0.5.19 24.04.2007
3818 *) Изменение: значение переменной $request_time теперь записывается с
3819 точностью до миллисекунд.
3821 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
3822 переименован в $r->flush.
3824 *) Добавление: переменная $upstream_addr.
3826 *) Добавление: директивы proxy_headers_hash_max_size и
3827 proxy_headers_hash_bucket_size.
3828 Спасибо Володымыру Костырко.
3830 *) Исправление: при использовании sendfile и limit_rate на 64-битных
3831 платформах нельзя было передавать файлы больше 2G.
3833 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
3834 было передавать файлы больше 2G.
3837 Изменения в nginx 0.5.18 19.04.2007
3839 *) Добавление: модуль ngx_http_sub_filter_module.
3841 *) Добавление: переменные "$upstream_http_...".
3843 *) Добавление: теперь переменные $upstream_status и
3844 $upstream_response_time содержат данные о всех обращениях к
3845 апстримам, сделанным до X-Accel-Redirect.
3847 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
3848 perl не поддерживал multiplicity, то после первой переконфигурации и
3849 после получения любого сигнала в основном процессе происходил
3850 segmentation fault; ошибка появилась в 0.5.9.
3852 *) Исправление: если perl не поддерживал multiplicity, то после
3853 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
3856 Изменения в nginx 0.5.17 02.04.2007
3858 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
3860 *) Добавление: теперь nginx поддерживает директиву include внутри блока
3863 *) Исправление: использование переменной $document_root в директиве root
3864 и alias запрещено: оно вызывало рекурсивное переполнение стека.
3866 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
3868 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
3869 $uri) возвращали старое закэшированное значение.
3872 Изменения в nginx 0.5.16 26.03.2007
3874 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
3875 использовалась сеть класса С.
3876 Спасибо Павлу Ярковому.
3878 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
3879 был указан charset и строка завершалась символом ";", то в рабочем
3880 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
3882 *) Исправление: ошибки "[alert] zero size buf" при работе с
3883 FastCGI-сервером, если тело запроса, записанное во временный файл,
3886 *) Исправление: nginx не собирался на Solaris без параметра
3887 --with-debug; ошибка появилась в 0.5.15.
3890 Изменения в nginx 0.5.15 19.03.2007
3892 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
3893 SMTP-проксирование и директивы smtp_auth, smtp_capablities и xclient.
3894 Спасибо Антону Южанинову и Максиму Дунину.
3896 *) Добавление: теперь keep-alive соединения закрываются сразу же по
3897 получении сигнала переконфигурации.
3899 *) Изменение: директивы imap и auth переименованы соответственно в mail
3902 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
3903 был разрешён метод APOP, то в рабочем процессе происходил
3906 *) Исправление: при использовании директивы starttls only в протоколе
3907 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
3909 *) Исправление: рабочие процессы не выходили после переконфигурации и не
3910 переоткрывали логи, если использовался метод eventport.
3912 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
3915 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
3916 используются методы eventport или /dev/poll.
3919 Изменения в nginx 0.5.14 23.02.2007
3921 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
3922 конфигурационного файла.
3925 Изменения в nginx 0.5.13 19.02.2007
3927 *) Добавление: методы COPY и MOVE.
3929 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
3930 запросов, переданных по keep-alive соединению.
3932 *) Исправление: nginx не работал на 64-битном big-endian Linux.
3933 Спасибо Андрею Нигматулину.
3935 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
3936 теперь сразу закрывает соединение, а не по таймауту.
3938 *) Исправление: если при использовании метода epoll клиент закрывал
3939 преждевременно соединение со своей стороны, то nginx закрывал это
3940 соединение только по истечении таймаута на передачу.
3942 *) Исправление: nginx не собирался на платформах, отличных от i386,
3943 amd64, sparc и ppc; ошибка появилась в 0.5.8.
3946 Изменения в nginx 0.5.12 12.02.2007
3948 *) Исправление: nginx не собирался на платформах, отличных от i386,
3949 amd64, sparc и ppc; ошибка появилась в 0.5.8.
3951 *) Исправление: при использовании временных файлов в время работы с
3952 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
3953 ошибка появилась в 0.5.8.
3955 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
3956 то в рабочем процессе мог произойти segmentation fault.
3958 *) Исправление: ngx_http_perl_module не собирался на Solaris.
3961 Изменения в nginx 0.5.11 05.02.2007
3963 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
3964 Спасибо Chris McGrath.
3966 *) Исправление: ответ был неверным, если запрашивалось несколько
3967 диапазонов; ошибка появилась в 0.5.6.
3969 *) Исправление: директива create_full_put_path не могла создавать
3970 промежуточные каталоги, если не была установлена директива
3972 Спасибо Evan Miller.
3974 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
3975 записываться код "0".
3977 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
3978 произойти segmentation fault.
3981 Изменения в nginx 0.5.10 26.01.2007
3983 *) Исправление: во время обновления исполняемого файла новый процесс не
3984 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
3986 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
3987 произойти segmentation fault; ошибка появилась в 0.5.1.
3990 Изменения в nginx 0.5.9 25.01.2007
3992 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
3993 использует значение переменной $memcached_key.
3995 *) Добавление: переменная $memcached_key.
3997 *) Добавление: параметр clean в директиве client_body_in_file_only.
3999 *) Добавление: директива env.
4001 *) Добавление: директива sendfile работает внутри блока if.
4003 *) Добавление: теперь при ошибке записи в access_log nginx записывает
4004 сообщение в error_log, но не чаще одного раза в минуту.
4006 *) Исправление: директива "access_log off" не всегда запрещала запись в
4010 Изменения в nginx 0.5.8 19.01.2007
4012 *) Исправление: если использовалась директива
4013 "client_body_in_file_only on" и тело запроса было небольшое, то мог
4014 произойти segmentation fault.
4016 *) Исправление: происходил segmentation fault, если использовались
4017 директивы "client_body_in_file_only on" и
4018 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
4019 делался переход к следующему бэкенду.
4021 *) Исправление: если при использовании директивы "proxy_buffering off"
4022 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
4023 заданному директивой send_timeout; ошибка появилась в 0.4.7.
4025 *) Исправление: если при использовании метода epoll клиент закрывал
4026 преждевременно соединение со своей стороны, то nginx закрывал это
4027 соединение только по истечении таймаута на передачу.
4029 *) Исправление: ошибки "[alert] zero size buf" при работе с
4032 *) Исправление ошибок в директиве limit_zone.
4035 Изменения в nginx 0.5.7 15.01.2007
4037 *) Добавление: оптимизация использования памяти в ssl_session_cache.
4039 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
4041 *) Исправление: на старте или во время переконфигурации происходил
4042 segmentation fault, если директивы ssl_session_cache или limit_zone
4043 использовались на 64-битных платформах.
4045 *) Исправление: при использовании директив add_before_body или
4046 add_after_body происходил segmentation fault, если в заголовке ответа
4047 нет строки "Content-Type".
4049 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
4051 Спасибо Дену Иванову.
4053 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
4056 Изменения в nginx 0.5.6 09.01.2007
4058 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
4059 кроме GET, HEAD и POST.
4061 *) Добавление: модуль ngx_http_limit_zone_module.
4063 *) Добавление: переменная $binary_remote_addr.
4065 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
4066 ngx_imap_ssl_module.
4068 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
4070 *) Исправление: при использовании $r->sendfile() byte-ranges
4071 передавались неверно.
4074 Изменения в nginx 0.5.5 24.12.2006
4076 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
4078 *) Добавление: ключ -V.
4080 *) Добавление: директива worker_rlimit_core поддерживает указание
4083 *) Исправление: модуль nginx.pm теперь может устанавливаться
4084 непривилегированным пользователем.
4086 *) Исправление: при использовании методов $r->request_body или
4087 $r->request_body_file мог произойти segmentation fault.
4089 *) Исправление: ошибок, специфичных для платформы ppc.
4092 Изменения в nginx 0.5.4 15.12.2006
4094 *) Добавление: директиву perl можно использовать внутри блока
4097 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
4098 заголовке запроса для метода DELETE.
4100 *) Исправление: при использовании одного параметра в директиве
4101 dav_access nginx мог сообщить об ошибке в конфигурации.
4103 *) Исправление: при использовании переменной $host мог произойти
4104 segmentation fault; ошибка появилась в 0.4.14.
4107 Изменения в nginx 0.5.3 13.12.2006
4109 *) Добавление: модуль ngx_http_perl_module поддерживает методы
4110 $r->status, $r->log_error и $r->sleep.
4112 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
4113 конфигурации nginx'а.
4115 *) Исправление: метод $r->has_request_body не работал.
4118 Изменения в nginx 0.5.2 11.12.2006
4120 *) Исправление: если в директивах proxy_pass использовалось имя,
4121 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
4122 ошибка появилась в 0.5.1.
4125 Изменения в nginx 0.5.1 11.12.2006
4127 *) Исправление: директива post_action могла не работать после неудачного
4130 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
4131 Спасибо Bron Gondwana.
4133 *) Исправление: при указании в директиве fastcgi_pass имени описанного
4134 upstream'а выдавалось сообщение "no port in upstream"; ошибка
4137 *) Исправление: если в директивах proxy_pass и fastcgi_pass
4138 использовались одинаковых имена серверов, но с разными портами, то
4139 эти директивы использовали первый описанный порт; ошибка появилась в
4142 *) Исправление: если в директивах proxy_pass и fastcgi_pass
4143 использовались unix domain сокеты, то эти директивы использовали
4144 первый описанный сокет; ошибка появилась в 0.5.0.
4146 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
4147 если он был указан в последней строке файла паролей и после пароля не
4148 было перевода строки, возврата каретки или символа ":".
4150 *) Исправление: переменная $upstream_response_time могла быть равна
4151 "0.000", хотя время обработки было больше 1 миллисекунды.
4154 Изменения в nginx 0.5.0 04.12.2006
4156 *) Изменение: параметры в виде "%name" в директиве log_format больше не
4159 *) Изменение: директивы proxy_upstream_max_fails,
4160 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
4161 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
4162 memcached_upstream_fail_timeout больше не поддерживаются.
4164 *) Добавление: директива server в блоке upstream поддерживает параметры
4165 max_fails, fail_timeout и down.
4167 *) Добавление: директива ip_hash в блоке upstream.
4169 *) Добавление: статус WAIT в строке "Auth-Status" в заголовка ответа
4170 сервера аутентификации IMAP/POP3 прокси.
4172 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
4176 Изменения в nginx 0.4.14 27.11.2006
4178 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
4180 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
4183 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
4184 поддержкой потоков; ошибка появилась в 0.3.38.
4186 *) Исправление: ngx_http_perl_module не работал корректно, если перл
4187 вызывался рекурсивно.
4189 *) Исправление: nginx игнорировал имя сервера в строке запроса.
4191 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
4192 процесс мог зациклиться.
4194 *) Исправление: при изменении системного времени переменная
4195 $upstream_response_time могла быть отрицательной.
4197 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
4198 прокси не передавался параметр Auth-Login-Attempt.
4200 *) Исправление: при ошибке соединения с сервером аутентификации
4201 IMAP/POP3 прокси мог произойти segmentation fault.
4204 Изменения в nginx 0.4.13 15.11.2006
4206 *) Добавление: директиву proxy_pass можно использовать внутри блока
4209 *) Добавление: директива limit_except поддерживает все WebDAV методы.
4211 *) Исправление: при использовании директивы add_before_body без
4212 директивы add_after_body ответ передавался не полностью.
4214 *) Исправление: большое тело запроса не принималось, если использовались
4215 метод epoll и deferred accept().
4217 *) Исправление: для ответов модуля ngx_http_autoindex_module не
4218 выставлялась кодировка; ошибка появилась в 0.3.50.
4220 *) Исправление: ошибки "[alert] zero size buf" при работе с
4223 *) Исправление: параметр конфигурации --group= игнорировался.
4224 Спасибо Thomas Moschny.
4226 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
4230 Изменения в nginx 0.4.12 31.10.2006
4232 *) Добавление: модуль ngx_http_perl_module поддерживает метод
4235 *) Исправление: при включении в ответ большого статического файла с
4236 помощью SSI ответ мог передаваться не полностью.
4238 *) Исправление: nginx не убирал "#fragment" в URI.
4241 Изменения в nginx 0.4.11 25.10.2006
4243 *) Добавление: POP3 прокси поддерживает AUTH LOIGN PLAIN и CRAM-MD5.
4245 *) Добавление: модуль ngx_http_perl_module поддерживает метод
4248 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
4249 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
4252 Изменения в nginx 0.4.10 23.10.2006
4254 *) Добавление: POP3 прокси поддерживает APOP.
4256 *) Исправление: при использовании методов select, poll и /dev/poll во
4257 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
4260 *) Исправление: при использовании переменной $server_addr в директиве
4261 map мог произойти segmentation fault.
4263 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
4264 для полных ответов; ошибка появилась в 0.4.7.
4266 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
4270 Изменения в nginx 0.4.9 13.10.2006
4272 *) Добавление: параметр set в команде SSI include.
4274 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
4278 Изменения в nginx 0.4.8 11.10.2006
4280 *) Исправление: если до команды SSI include с параметром wait
4281 выполнялась ещё одна команда SSI include, то параметр wait мог не
4284 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
4286 Спасибо Алексею Ковырину.
4289 Изменения в nginx 0.4.7 10.10.2006
4291 *) Добавление: модуль ngx_http_flv_module.
4293 *) Добавление: переменная $request_body_file.
4295 *) Добавление: директивы charset и source_charset поддерживают
4298 *) Исправление: если до команды SSI include с параметром wait
4299 выполнялась ещё одна команда SSI include, то параметр wait мог не
4302 *) Исправление: при использовании директивы "proxy_buffering off" или
4303 при работе с memcached соединения могли не закрываться по таймауту.
4305 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
4306 amd64, sparc64 и ppc64.
4309 Изменения в nginx 0.4.6 06.10.2006
4311 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
4312 amd64, sparc64 и ppc64.
4314 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
4315 chunk'ами, если длина ответа в методе
4316 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
4318 *) Исправление: после перенаправления ошибки с помощью директивы
4319 error_page любая директива модуля ngx_http_rewrite_module возвращала
4320 эту ошибку; ошибка появилась в 0.4.4.
4323 Изменения в nginx 0.4.5 02.10.2006
4325 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
4329 Изменения в nginx 0.4.4 02.10.2006
4331 *) Добавление: переменная $scheme.
4333 *) Добавление: директива expires поддерживает параметр max.
4335 *) Добавление: директива include поддерживает маску "*".
4336 Спасибо Jonathan Dance.
4338 *) Исправление: директива return всегда изменяла код ответа,
4339 перенаправленного директивой error_page.
4341 *) Исправление: происходил segmentation fault, если в методе PUT
4342 передавалось тело нулевой длины.
4344 *) Исправление: при использовании переменных в директиве proxy_redirect
4345 редирект изменялся неверно.
4348 Изменения в nginx 0.4.3 26.09.2006
4350 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
4353 *) Добавление: поддержка Solaris 10 event ports.
4355 *) Добавление: модуль ngx_http_browser_module.
4357 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
4358 помощью директивы error_page мог произойти segmentation fault.
4360 *) Исправление: происходил segmentation fault, если в директиве
4361 proxy_pass использовался unix domain сокет; ошибка появилась в
4364 *) Исправление: SSI не работал с ответами memcached и
4365 небуферизированными проксированными ответами.
4367 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
4370 Изменения в nginx 0.4.2 14.09.2006
4372 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
4376 Изменения в nginx 0.4.1 14.09.2006
4378 *) Исправление: совместимость с DragonFlyBSD.
4379 Спасибо Павлу Назарову.
4381 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
4384 *) Добавление: теперь на Linux nginx для статических запросов использует
4386 Спасибо Yusuf Goolamabbas.
4389 Изменения в nginx 0.4.0 30.08.2006
4391 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
4392 фазы init module в фазу HTTP postconfiguration.
4394 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
4395 считывается заранее: нужно явно инициировать чтение с помощью метода
4396 $r->has_request_body.
4398 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
4401 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
4402 заголовка "Date" для метода PUT.
4404 *) Добавление: директива ssi работает внутри блока if.
4406 *) Исправление: происходил segmentation fault, если в директиве index
4407 использовалась переменные и при этом первое имя индексного файла было
4408 без переменных; ошибка появилась в 0.1.29.
4411 Изменения в nginx 0.3.61 28.08.2006
4413 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
4415 *) Добавление: директива msie_refresh.
4417 *) Добавление: директива recursive_error_pages.
4419 *) Исправление: директива rewrite возвращала неправильный редирект, если
4420 редирект включал в себя выделенные закодированные символы из
4424 Изменения в nginx 0.3.60 18.08.2006
4426 *) Исправление: во время перенаправления ошибки рабочий процесс мог
4427 зациклиться; ошибка появилась в 0.3.59.
4430 Изменения в nginx 0.3.59 16.08.2006
4432 *) Добавление: теперь можно делать несколько перенаправлений через
4433 директиву error_page.
4435 *) Исправление: директива dav_access не поддерживала три параметра.
4437 *) Исправление: директива error_page не изменяла строку "Content-Type"
4438 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
4442 Изменения в nginx 0.3.58 14.08.2006
4444 *) Добавление: директива error_page поддерживает переменные.
4446 *) Изменение: теперь на Linux используется интерфейс procfs вместо
4449 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
4450 "Content-Type" наследуется из первоначального ответа.
4452 *) Исправление: директива error_page не перенаправляла ошибку 413.
4454 *) Исправление: завершающий "?" не удалял старые аргументы, если в
4455 переписанном URI не было новых аргументов.
4457 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
4460 Изменения в nginx 0.3.57 09.08.2006
4462 *) Добавление: переменная $ssl_client_serial.
4464 *) Исправление: в операторе "!-e" в директиве if.
4465 Спасибо Андриану Буданцову.
4467 *) Исправление: при проверке клиентского сертификата nginx не передавал
4468 клиенту информацию о требуемых сертификатах.
4470 *) Исправление: переменная $document_root не поддерживала переменные в
4474 Изменения в nginx 0.3.56 04.08.2006
4476 *) Добавление: директива dav_access.
4478 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
4479 "!-e", "-x" и "!-x".
4481 *) Исправление: при записи в access_log некоторых передаваемых клиенту
4482 строк заголовков происходил segmentation fault, если запрос возвращал
4486 Изменения в nginx 0.3.55 28.07.2006
4488 *) Добавление: параметр stub в команде SSI include.
4490 *) Добавление: команда SSI block.
4492 *) Добавление: скрипт unicode2nginx добавлен в contrib.
4494 *) Исправление: если root был задан только переменной, то корень
4495 задавался относительно префикса сервера.
4497 *) Исправление: если в запросе был "//" или "/.", и после этого
4498 закодированные символы в виде "%XX", то проксируемый запрос
4499 передавался незакодированным.
4501 *) Исправление: метод $r->header_in("Cookie") модуля
4502 ngx_http_perl_module теперь возвращает все строки "Cookie" в
4505 *) Исправление: происходил segmentation fault, если использовался
4506 "client_body_in_file_only on" и делался переход к следующему бэкенду.
4508 *) Исправление: при некоторых условиях во время переконфигурации коды
4509 символов внутри директивы charset_map могли считаться неверными;
4510 ошибка появилась в 0.3.50.
4513 Изменения в nginx 0.3.54 11.07.2006
4515 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
4517 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
4518 memcached_next_upstream поддерживают параметр off.
4520 *) Добавление: директива debug_connection поддерживает запись адресов в
4523 *) Исправление: при перекодировании ответа проксированного сервера или
4524 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
4527 *) Исправление: переменная $upstream_response_time содержала время
4528 только первого обращения к бэкенду.
4530 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
4534 Изменения в nginx 0.3.53 07.07.2006
4536 *) Изменение: директива add_header добавляет строки в ответы с кодом
4539 *) Добавление: директива server в блоке upstream поддерживает параметр
4542 *) Добавление: директива server_name поддерживает маску "*".
4544 *) Добавление: nginx поддерживает тело запроса больше 2G.
4546 *) Исправление: если при использовании "satisfy_any on" клиент успешно
4547 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
4550 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
4553 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
4554 ошибку, nginx продолжал проксирование.
4557 Изменения в nginx 0.3.52 03.07.2006
4559 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
4560 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
4563 *) Исправление: при использовании ограничения скорости рабочий процесс
4564 мог зациклиться; ошибка появилась в 0.3.37.
4566 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
4567 "unknown charset", даже если перекодировка не требовалась; ошибка
4570 *) Исправление: если в результате запроса PUT возвращался код 409, то
4571 временный файл не удалялся.
4574 Изменения в nginx 0.3.51 30.06.2006
4576 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
4577 ошибка появилась в 0.3.50.
4580 Изменения в nginx 0.3.50 28.06.2006
4582 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
4583 переименованы соответственно в proxy_intercept_errors и
4584 fastcgi_intercept_errors.
4586 *) Добавление: модуль ngx_http_charset_module поддерживает
4587 перекодирование из однобайтных кодировок в UTF-8 и обратно.
4589 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
4590 "X-Accel-Charset" в ответе бэкенда.
4592 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
4593 только если также использовался символ "$".
4595 *) Исправление: при некоторых условиях в SSI после вставки могла быть
4596 добавлена строка "<!--".
4598 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
4599 то при использовании небуферизированного проксировании не закрывалось
4600 соединение с клиентом.
4603 Изменения в nginx 0.3.49 31.05.2006
4605 *) Исправление: в директиве set.
4607 *) Исправление: при включении в ssi двух и более подзапросов,
4608 обрабатываемых через FastCGI, вместо вывода второго и остальных
4609 подзапросов в ответ включался вывод первого подзапроса.
4612 Изменения в nginx 0.3.48 29.05.2006
4614 *) Изменение: теперь модуль ngx_http_charset_module работает для
4615 подзапросов, в ответах которых нет строки заголовка "Content-Type".
4617 *) Исправление: если в директиве proxy_pass не было URI, то директива
4618 "proxy_redirect default" добавляла в переписанный редирект в начало
4621 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
4622 GET, теперь это делается только для редиректов, выполняемых с помощью
4623 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
4626 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
4627 с поддержкой потоков; ошибка появилась в 0.3.46.
4630 Изменения в nginx 0.3.47 23.05.2006
4632 *) Добавление: директива upstream.
4634 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
4638 Изменения в nginx 0.3.46 11.05.2006
4640 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
4641 fastcgi_hide_header и fastcgi_pass_header.
4643 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
4644 proxy_pass_server упразднены.
4646 *) Добавление: в режиме прокси поддерживается строка заголовка
4647 "X-Accel-Buffering" в ответе бэкенда.
4649 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
4650 ngx_http_perl_module.
4653 Изменения в nginx 0.3.45 06.05.2006
4655 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
4656 ssl_client_certificate.
4658 *) Изменение: теперь переменная $request_method возвращает метод только
4661 *) Изменение: в таблице перекодировки koi-win изменены коды символа
4664 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
4667 *) Исправление: если nginx распределял запросы на несколько машин, то
4668 при падении одной из них запросы, предназначенные для этой машины,
4669 перенаправлялись только на одну машину вместо того, чтобы равномерно
4670 распределяться между остальными.
4673 Изменения в nginx 0.3.44 04.05.2006
4675 *) Добавление: параметр wait в команде SSI include.
4677 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
4678 белорусские символы.
4680 *) Исправление: в SSI.
4683 Изменения в nginx 0.3.43 26.04.2006
4685 *) Исправление: в SSI.
4688 Изменения в nginx 0.3.42 26.04.2006
4690 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
4692 *) Исправление: ошибки при использовании в директиве rewrite одного и
4693 того же выделения более одного раза.
4695 *) Исправление: в лог не записывались переменные
4696 $sent_http_content_type, $sent_http_content_length,
4697 $sent_http_last_modified, $sent_http_connection,
4698 $sent_http_keep_alive и $sent_http_transfer_encoding.
4700 *) Исправление: переменная $sent_http_cache_control возвращала
4701 содержимое только одной строки "Cache-Control" в заголовке ответа.
4704 Изменения в nginx 0.3.41 21.04.2006
4706 *) Добавление: ключ -v.
4708 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
4711 *) Исправление: в обработке FastCGI.
4713 *) Исправление: если путь к перловым модулям не был указан с помощью
4714 --with-perl_modules_path=PATH или директивы perl_modules, то на
4715 старте происходил segmentation fault.
4718 Изменения в nginx 0.3.40 19.04.2006
4720 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
4722 *) Добавление: директива create_full_put_path.
4724 *) Добавление: переменная $limit_rate.
4727 Изменения в nginx 0.3.39 17.04.2006
4729 *) Добавление: директива uninitialized_variable_warn; уровень
4730 логгирования сообщения о неинициализированной переменной понижен с
4731 уровня alert на warn.
4733 *) Добавление: директива override_charset.
4735 *) Изменение: при использовании неизвестной переменной в SSI-командах
4736 echo и if expr='$name' теперь не записывается в лог сообщение о
4737 неизвестной переменной.
4739 *) Исправление: счётчик активных соединений рос при превышении лимита
4740 соединений, заданного директивой worker_connections; ошибка появилась
4743 *) Исправление: при некоторых условия ограничение скорости соединения
4744 могло не работать; ошибка появилась в 0.3.38.
4747 Изменения в nginx 0.3.38 14.04.2006
4749 *) Добавление: модуль ngx_http_dav_module.
4751 *) Изменение: оптимизация модуля ngx_http_perl_module.
4752 Спасибо Сергею Скворцову.
4754 *) Добавление: модуль ngx_http_perl_module поддерживает метод
4755 $r->request_body_file.
4757 *) Добавление: директива client_body_in_file_only.
4759 *) Изменение: теперь при переполнении диска nginx пытается писать
4760 access_log'и только раз в секунду.
4761 Спасибо Антону Южанинову и Максиму Дунину.
4763 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
4764 при значениях больше 100 Kbyte/s.
4767 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
4768 символы "\r" и "\n" в логине и пароле в закодированном виде.
4769 Спасибо Максиму Дунину.
4772 Изменения в nginx 0.3.37 07.04.2006
4774 *) Добавление: директива limit_except.
4776 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
4779 *) Добавление: модуль ngx_http_perl_module поддерживает метод
4782 *) Исправление: в модуле ngx_http_addition_filter_module.
4785 Изменения в nginx 0.3.36 05.04.2006
4787 *) Добавление: модуль ngx_http_addition_filter_module.
4789 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
4792 *) Добавление: директивы proxy_ignore_client_abort и
4793 fastcgi_ignore_client_abort.
4795 *) Добавление: переменная $request_completion.
4797 *) Добавление: модуль ngx_http_perl_module поддерживает методы
4798 $r->request_method и $r->remote_addr.
4800 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
4802 *) Исправление: строка "\/" в начале выражения команды if модуля
4803 ngx_http_ssi_module воспринималась неверно.
4805 *) Исправление: в использовании регулярных выражениях в команде if
4806 модуля ngx_http_ssi_module.
4808 *) Исправление: при задании относительного пути в директивах
4809 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
4810 perl_modules использовался каталог относительно текущего каталога, а
4811 не относительно префикса сервера.
4814 Изменения в nginx 0.3.35 22.03.2006
4816 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
4817 для первой директивы listen; ошибка появилась в 0.3.31.
4819 *) Исправление: в директиве proxy_pass без URI при использовании в
4823 Изменения в nginx 0.3.34 21.03.2006
4825 *) Добавление: директива add_header поддерживает переменные.
4828 Изменения в nginx 0.3.33 15.03.2006
4830 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
4831 fastcgi_next_upstream.
4833 *) Исправление: ngx_http_perl_module не работал со встроенным в
4834 конфигурационный файл кодом, если он не начинался сразу же с "sub".
4836 *) Исправление: в директиве post_action.
4839 Изменения в nginx 0.3.32 11.03.2006
4841 *) Исправление: удаление отладочного логгирования на старте и при
4842 переконфигурации; ошибка появилась в 0.3.31.
4845 Изменения в nginx 0.3.31 10.03.2006
4847 *) Изменение: теперь nginx передаёт неверные ответы проксированного
4850 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
4852 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
4854 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
4855 64-битном ядре MacOSX.
4856 Спасибо Андрею Нигматулину.
4858 *) Исправление: если внутри одного сервера описаны несколько директив
4859 listen, слушающих на разных адресах, то имена серверов вида
4860 "*.domain.tld" работали только для первого адреса; ошибка появилась в
4863 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
4864 не передавались запросы с телом, записанным во временный файл.
4866 *) Исправление: совместимость с perl 5.8.8.
4869 Изменения в nginx 0.3.30 22.02.2006
4871 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
4874 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
4875 ngx_http_ssi_filter_module.
4877 *) Исправление: nginx не собирался на i386 платформе, если использовался
4878 PIC; ошибка появилась в 0.3.27.
4881 Изменения в nginx 0.3.29 20.02.2006
4883 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
4884 FastCGI передаёт большое количество предупреждений перед ответом.
4886 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
4887 строка заголовка "Transfer-Encoding: chunked".
4889 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
4890 передавал полные строки заголовка ответа в отдельных FastCGI записях.
4892 *) Исправление: если в директиве post_action был указан проксируемый
4893 URI, то он выполнялся только после успешного завершения запроса.
4896 Изменения в nginx 0.3.28 16.02.2006
4898 *) Добавление: директива restrict_host_names упразднена.
4900 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
4902 *) Исправление: при некоторых условиях проксированное соединение с
4903 клиентом завершалось преждевременно.
4904 Спасибо Владимиру Шутову.
4906 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
4907 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
4909 *) Исправление: директива post_action работала только после успешного
4912 *) Исправление: тело проксированного ответа, создаваемого директивой
4913 post_action, передавалось клиенту.
4916 Изменения в nginx 0.3.27 08.02.2006
4918 *) Изменение: директивы variables_hash_max_size и
4919 variables_hash_bucket_size.
4921 *) Добавление: переменная $body_bytes_sent доступна не только в
4922 директиве log_format.
4924 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
4926 *) Добавление: определение размера строки кэша распространённых
4927 процессоров при старте.
4929 *) Добавление: директива accept_mutex теперь поддерживается посредством
4930 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
4932 *) Добавление: директива lock_file и параметр автоконфигурации
4933 --with-lock-path=PATH.
4935 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
4936 не передавались запросы с телом.
4939 Изменения в nginx 0.3.26 03.02.2006
4941 *) Изменение: директива optimize_host_names переименована в
4942 optimize_server_names.
4944 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
4945 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
4948 Изменения в nginx 0.3.25 01.02.2006
4950 *) Исправление: при неверной конфигурации на старте или во время
4951 переконфигурации происходил segmentation fault; ошибка появилась в
4955 Изменения в nginx 0.3.24 01.02.2006
4957 *) Изменение: обход ошибки в kqueue во FreeBSD.
4959 *) Исправление: ответ, создаваемый директивой post_action, теперь не
4962 *) Исправление: при использовании большого количества лог-файлов
4963 происходила утечка памяти.
4965 *) Исправление: внутри одного location работала только первая директива
4968 *) Исправление: на 64-битных платформах при старте мог произойти
4969 segmentation fault, если использовалось большое количество имён в
4970 директивах server_name; ошибка появилась в 0.3.18.
4973 Изменения в nginx 0.3.23 24.01.2006
4975 *) Добавление: директива optimize_host_names.
4977 *) Исправление: ошибки при использовании переменных в директивах path и
4980 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
4984 Изменения в nginx 0.3.22 17.01.2006
4986 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
4989 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
4992 *) Исправление: если в директиве valid_referers указаны только none или
4993 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
4996 Изменения в nginx 0.3.21 16.01.2006
4998 *) Добавление: модуль ngx_http_perl_module.
5000 *) Изменение: директива valid_referers разрешает использовать рефереры
5004 Изменения в nginx 0.3.20 11.01.2006
5006 *) Исправление: ошибки в обработке SSI.
5008 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
5012 Изменения в nginx 0.3.19 28.12.2005
5014 *) Добавление: директивы path и alias поддерживают переменные.
5016 *) Изменение: теперь директива valid_referers опять учитывает URI.
5018 *) Исправление: ошибки в обработке SSI.
5021 Изменения в nginx 0.3.18 26.12.2005
5023 *) Добавление: директива server_names поддерживает имена вида
5026 *) Добавление: директива server_names использует хэш для имён вида
5027 "*.domain.tld" и более эффективный хэш для обычных имён.
5029 *) Изменение: директивы server_names_hash_max_size и
5030 server_names_hash_bucket_size.
5032 *) Изменение: директивы server_names_hash и server_names_hash_threshold
5035 *) Добавление: директива valid_referers использует хэш для имён сайтов.
5037 *) Изменение: теперь директива valid_referers проверяет только имена
5038 сайтов без учёта URI.
5040 *) Исправление: некоторые имена вида ".domain.tld" неверно
5041 обрабатывались модулем ngx_http_map_module.
5043 *) Исправление: если конфигурационного файла не было, то происходил
5044 segmentation fault; ошибка появилась в 0.3.12.
5046 *) Исправление: на 64-битных платформах при старте мог произойти
5047 segmentation fault; ошибка появилась в 0.3.16.
5050 Изменения в nginx 0.3.17 18.12.2005
5052 *) Изменение: на Linux configure теперь проверяет наличие epoll и
5053 sendfile64() в ядре.
5055 *) Добавление: директива map поддерживает доменные имена в формате
5058 *) Исправление: во время SSL handshake не иcпользовались таймауты;
5059 ошибка появилась в 0.2.4.
5061 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5063 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
5064 по умолчанию использовался порт 80.
5067 Изменения в nginx 0.3.16 16.12.2005
5069 *) Добавление: модуль ngx_http_map_module.
5071 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
5073 *) Добавление: директива ssi_value_length.
5075 *) Добавление: директива worker_rlimit_core.
5077 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
5078 Pentium 4 номер соединения в логах всегда был равен 1.
5080 *) Исправление: команда config timefmt в SSI задавала неверный формат
5083 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
5084 использовании SSL соединений; ошибка появилась в 0.3.13.
5085 Спасибо Rob Mueller.
5087 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
5088 ошибка появилась в 0.3.13.
5091 Изменения в nginx 0.3.15 07.12.2005
5093 *) Добавление: новой код 444 в директиве return для закрытия соединения.
5095 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
5097 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
5098 соединений только при планом выходе и включённой директиве
5102 Изменения в nginx 0.3.14 05.12.2005
5104 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
5108 Изменения в nginx 0.3.13 05.12.2005
5110 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
5112 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
5115 *) Исправление: ошибки в обработке SSI.
5117 *) Исправление: sendfilev() в Solaris теперь не используется при
5118 передаче тела запроса FastCGI-серверу через unix domain сокет.
5120 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
5124 Изменения в nginx 0.3.12 26.11.2005
5126 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
5127 то при использовании директивы "satisfy_any on" директивы доступа и
5128 аутентификации не работали. Модуль ngx_http_realip_module не
5129 собирался и не собирается по умолчанию.
5131 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
5133 *) Изменение: директивы proxy_header_buffer_size и
5134 fastcgi_header_buffer_size переименованы соответственно в
5135 proxy_buffer_size и fastcgi_buffer_size.
5137 *) Добавление: модуль ngx_http_memcached_module.
5139 *) Добавление: директива proxy_buffering.
5141 *) Исправление: изменение в работе с accept mutex при использовании
5142 метода rtsig; ошибка появилась в 0.3.0.
5144 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
5145 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
5147 *) Исправление: при наследовании директивы auth_basic с уровня http в
5148 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
5151 *) Исправление: если в директиве access_log был явно указан формат
5152 combined, то в лог записывались пустые строки; ошибка появилась в
5155 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
5158 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
5159 в кавычках и закрывающую скобку.
5162 Изменения в nginx 0.3.11 15.11.2005
5164 *) Исправление: nginx не передавал при проксировании тело запроса и
5165 строки заголовка клиента; ошибка появилась в 0.3.10.
5168 Изменения в nginx 0.3.10 15.11.2005
5170 *) Изменение: директива valid_referers и переменная $invalid_referer
5171 перенесены из модуля ngx_http_rewrite_module в новый модуль
5172 ngx_http_referer_module.
5174 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
5177 *) Добавление: переменные "$sent_http_...".
5179 *) Добавление: директива if поддерживает операции "=" и "!=".
5181 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
5183 *) Добавление: директива proxy_set_body.
5185 *) Добавление: директива post_action.
5187 *) Добавление: модуль ngx_http_empty_gif_module.
5189 *) Добавление: директива worker_cpu_affinity для Linux.
5191 *) Исправление: директива rewrite не раскодировала символы в редиректах
5192 в URI, теперь символы раскодируются, кроме символов %00-%25 и
5195 *) Исправление: nginx не собирался компилятором icc 9.0.
5197 *) Исправление: если для статического файла нулевого размера был
5198 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
5201 Изменения в nginx 0.3.9 10.11.2005
5203 *) Исправление: nginx считал небезопасными URI, в которых между двумя
5204 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
5207 Изменения в nginx 0.3.8 09.11.2005
5209 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
5210 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
5211 наличие путей "/../" и нулей.
5213 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
5214 строке "Authorization" в заголовке запроса.
5216 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
5217 и ngx_imap_ssl_module.
5219 *) Добавление: директива auth_http_header модуля
5220 ngx_imap_auth_http_module.
5222 *) Добавление: директива add_header.
5224 *) Добавление: модуль ngx_http_realip_module.
5226 *) Добавление: новые переменные для использования в директиве
5227 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
5228 $uri, $request_time, $request_length, $upstream_status,
5229 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
5230 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
5233 *) Изменение: в директиве "if" ложными значениями переменных теперь
5234 являются пустая строка "" и строки, начинающиеся на "0".
5236 *) Исправление: при работает с проксированными или FastCGI-серверами
5237 nginx мог оставлять открытыми соединения и временные файлы с
5240 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
5243 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
5244 запрос проксировался в location, заданном регулярным выражением, то
5245 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
5247 *) Исправление: директива expires не удаляла уже установленную строку
5248 заголовка "Expires".
5250 *) Исправление: при использовании метода rtsig и нескольких рабочих
5251 процессах nginx мог перестать принимать запросы.
5253 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
5256 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
5257 при использовании сжатия ответ передавался не до конца или не
5261 Изменения в nginx 0.3.7 27.10.2005
5263 *) Добавление: директива access_log поддерживает параметр buffer=.
5265 *) Исправление: nginx не собирался на платформах, отличных от i386,
5266 amd64, sparc и ppc; ошибка появилась в 0.3.2.
5269 Изменения в nginx 0.3.6 24.10.2005
5271 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
5274 *) Добавление: директива log_format поддерживает переменные в виде
5277 *) Исправление: если хотя бы в одном сервере не было описано ни одной
5278 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
5281 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
5282 использовался порт 80.
5285 Изменения в nginx 0.3.5 21.10.2005
5287 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
5288 мог произойти segmentation fault; ошибка появилась в 0.2.2.
5290 *) Исправление: accept mutex не работал, все соединения обрабатывались
5291 одним рабочим процессом; ошибка появилась в 0.3.3.
5293 *) Исправление: при использовании метода rtsig и директивы
5294 timer_resolution не работали таймауты.
5297 Изменения в nginx 0.3.4 19.10.2005
5299 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
5303 Изменения в nginx 0.3.3 19.10.2005
5305 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
5306 "backlog" и "accept_filter".
5308 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
5310 *) Изменение: параметр лога $msec теперь не требует дополнительного
5311 системного вызова gettimeofday().
5313 *) Добавление: ключ -t теперь проверяет директивы listen.
5315 *) Исправление: если в директиве listen был указан неверный адрес, то
5316 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
5318 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
5319 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
5321 *) Добавление: директива timer_resolution.
5323 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
5325 *) Исправление: временный файл с телом запроса клиента теперь удаляется
5326 сразу после того, как клиенту передан заголовок ответа.
5328 *) Исправление: совместимость с OpenSSL 0.9.6.
5330 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
5333 *) Исправление: директива ssl_prefer_server_ciphers не работала для
5334 модуля ngx_imap_ssl_module.
5336 *) Исправление: директива ssl_protocols позволяла задать только один
5340 Изменения в nginx 0.3.2 12.10.2005
5342 *) Добавление: поддержка Sun Studio 10 C compiler.
5344 *) Добавление: директивы proxy_upstream_max_fails,
5345 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
5346 fastcgi_upstream_fail_timeout.
5349 Изменения в nginx 0.3.1 10.10.2005
5351 *) Исправление: во время переполнения очереди сигналов при использовании
5352 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
5354 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
5357 Изменения в nginx 0.3.0 07.10.2005
5359 *) Изменение: убрано десятидневное ограничение времени работы рабочего
5360 процесса. Ограничение было введено из-за переполнения миллисекундных
5364 Изменения в nginx 0.2.6 05.10.2005
5366 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
5367 бэкенду при использовании распределения нагрузки.
5369 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
5370 запрос теперь передаётся, если в директиве proxy_pass отсутствует
5373 *) Добавление: директива error_page поддерживает редиректы и позволяет
5374 более гибко менять код ошибки.
5376 *) Изменение: в проксированных подзапросах теперь игнорируется
5379 *) Исправление: если после изменения URI в блоке if для запроса не
5380 находилась новая конфигурация, то правила модуля
5381 ngx_http_rewrite_module выполнялись снова.
5383 *) Исправление: если директива set устанавливала переменную модуля
5384 ngx_http_geo_module в какой-либо части конфигурации, то эта
5385 переменная не была доступна в других частях конфигурации и выдавалась
5386 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
5389 Изменения в nginx 0.2.5 04.10.2005
5391 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
5392 теперь выдаёт предупреждение и изменяет старое значение.
5394 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
5396 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
5399 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
5400 значений переменных в выражениях команды if.
5403 Изменения в nginx 0.2.4 03.10.2005
5405 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
5406 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
5409 *) Исправление: ошибки при проксировании location без слэша в конце;
5410 ошибка появилась в 0.1.44.
5412 *) Исправление: при использовании метода rtsig мог произойти
5413 segmentation fault; ошибка появилась в 0.2.0.
5416 Изменения в nginx 0.2.3 30.09.2005
5418 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
5422 Изменения в nginx 0.2.2 30.09.2005
5424 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
5426 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
5429 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
5430 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
5432 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
5433 длинных имён файлов;
5435 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
5436 файлы, начинающиеся на точку.
5438 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
5439 привести также к закрытию другого соединения.
5440 Спасибо Rob Mueller.
5442 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
5446 Изменения в nginx 0.2.1 23.09.2005
5448 *) Исправление: если все бэкенды, используемые для балансировки
5449 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
5450 nginx мог зациклится; ошибка появилась в 0.2.0.
5453 Изменения в nginx 0.2.0 23.09.2005
5455 *) Изменились имена pid-файлов, используемые во время обновления
5456 исполняемого файла. Ручное переименование теперь не нужно. Старый
5457 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
5458 запускает новый исполняемый файл. Новый основной процесс создаёт
5459 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
5460 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
5461 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
5462 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
5463 0.2.0 - используют pid-файл без суффиксов.
5465 *) Изменение: директива worker_connections, новое название директивы
5466 connections; директива теперь задаёт максимальное число соединений, а
5467 не максимально возможный номер дескриптора для сокета.
5469 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
5472 *) Добавление: директива satisfy_any.
5474 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
5475 не работают для подзапросов.
5477 *) Добавление: директивы worker_rlimit_nofile и
5478 worker_rlimit_sigpending.
5480 *) Исправление: если все бэкенды, используемые для балансировки
5481 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
5482 nginx не обращался к ним в течение 60 секунд.
5484 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
5485 Спасибо Rob Mueller.
5487 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
5489 *) Исправление: ошибки при использовании SSI и сжатия.
5491 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
5492 "Expires" и "Cache-Control".
5493 Спасибо Александру Кукушкину.
5496 Изменения в nginx 0.1.45 08.09.2005
5498 *) Изменение: директива ssl_engine упразднена в модуле
5499 ngx_http_ssl_module и перенесена на глобальный уровень.
5501 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
5502 передавались через SSL соединение.
5504 *) Разные исправления в IMAP/POP3 прокси.
5507 Изменения в nginx 0.1.44 06.09.2005
5509 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
5511 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
5513 *) Добавление: директива userid_mark.
5515 *) Добавление: значение переменной $remote_user определяется независимо
5516 от того, используется ли авторизация или нет.
5519 Изменения в nginx 0.1.43 30.08.2005
5521 *) Добавление: listen(2) backlog в директиве listen можно менять по
5524 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
5526 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
5529 *) Исправление: если в ответе проксированного сервера или FastCGI
5530 сервера была строка "Cache-Control", то при использовании директивы
5531 expires происходил segmentation fault или рабочий процесс мог
5532 зациклится; в режиме прокси ошибка появилась в 0.1.29.
5535 Изменения в nginx 0.1.42 23.08.2005
5537 *) Исправление: если URI запроса получался нулевой длины после обработки
5538 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
5539 происходил segmentation fault или bus error.
5541 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
5545 Изменения в nginx 0.1.41 25.07.2005
5547 *) Исправление: если переменная использовалась в файле конфигурации, то
5548 она не могла использоваться в SSI.
5551 Изменения в nginx 0.1.40 22.07.2005
5553 *) Исправление: если клиент слал очень длинную строку заголовка, то в
5554 логе не помещалась информация, связанная с этим запросом.
5556 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
5557 строка "Set-Cookie"; ошибка появилась в 0.1.39.
5559 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
5560 строка "Content-Disposition".
5562 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
5563 на которых он слушал.
5565 *) Исправление: после обновления исполняемого файла на лету на Linux и
5566 Solaris название процесса в команде ps становилось короче.
5569 Изменения в nginx 0.1.39 14.07.2005
5571 *) Изменения в модуле ngx_http_charset_module: директива default_charset
5572 упразднена; директива charset задаёт кодировку ответа; директива
5573 source_charset задаёт только исходную кодировку.
5575 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
5576 не передавалась строка заголовка "WWW-Authenticate".
5578 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
5579 могли закрыть соединение до того, как что-нибудь было передано
5580 клиенту; ошибка появилась в 0.1.38.
5582 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
5584 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
5585 URI в команде include virtual.
5587 *) Исправление: если в строке заголовка ответа бэкенда была строка
5588 "Location", которую nginx не должен был изменять, то в ответе
5589 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
5591 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
5592 ngx_http_fastcgi_module не наследовались с уровня server на уровень
5593 location; ошибка появилась в 0.1.29.
5595 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
5598 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
5599 длинных имён файлов; ошибка появилась в 0.1.38.
5601 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
5605 Изменения в nginx 0.1.38 08.07.2005
5607 *) Добавление: директива limit_rate поддерживается в режиме прокси и
5610 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
5611 "X-Accel-Limit-Rate" в ответе бэкенда.
5613 *) Добавление: директива break.
5615 *) Добавление: директива log_not_found.
5617 *) Исправление: при перенаправлении запроса с помощью строки заголовка
5618 "X-Accel-Redirect" не изменялся код ответа.
5620 *) Исправление: переменные, установленные директивой set не могли
5621 использоваться в SSI.
5623 *) Исправление: при включении в SSI более одного удалённого подзапроса
5624 мог произойти segmentation fault.
5626 *) Исправление: если статусная строка в ответе бэкенда передавалась в
5627 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
5630 *) Добавление: директива ssi_types.
5632 *) Добавление: директива autoindex_exact_size.
5634 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
5635 имена файлов в UTF-8.
5637 *) Добавление: IMAP/POP3 прокси.
5640 Изменения в nginx 0.1.37 23.06.2005
5642 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
5644 *) Исправление: при включении большого количества вставок или нескольких
5645 больших вставок с помощью SSI ответ мог передаваться не полностью.
5647 *) Исправление: если все бэкенды возвращали ответ 404, то при
5648 использовании параметра http_404 в директивах proxy_next_upstream или
5649 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
5652 Изменения в nginx 0.1.36 15.06.2005
5654 *) Изменение: если в заголовке запросе есть дублирующиеся строки "Host",
5655 "Connection", "Content-Length" и "Authorization", то nginx теперь
5658 *) Изменение: директива post_accept_timeout упразднена.
5660 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
5663 *) Добавление: поддержка accept фильтров во FreeBSD.
5665 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
5667 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
5670 *) Исправление: после добавления новый лог-файл ротация этого лога по
5671 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
5672 раза по сигналу -HUP.
5675 Изменения в nginx 0.1.35 07.06.2005
5677 *) Добавление: директива working_directory.
5679 *) Добавление: директива port_in_redirect.
5681 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
5682 то происходил segmentation fault; ошибка появилась в 0.1.29.
5684 *) Исправление: если было сконфигурировано более 10 серверов или в
5685 сервере не описана директива "listen", то при запуске мог произойти
5688 *) Исправление: если ответ не помещался во временный файл, то мог
5689 произойти segmentation fault.
5691 *) Исправление: nginx возвращал ошибку 400 на запросы вида
5692 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
5695 Изменения в nginx 0.1.34 26.05.2005
5697 *) Исправление: при включении больших ответов с помощью SSI рабочий
5698 процесс мог зациклиться.
5700 *) Исправление: переменные, устанавливаемые директивой "set", не были
5703 *) Добавление: директива autoindex_localtime.
5705 *) Исправление: пустое значение в директиве proxy_set_header запрещает
5709 Изменения в nginx 0.1.33 23.05.2005
5711 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
5714 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
5715 вызывали bus fault при запуске.
5717 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
5720 *) Исправление: если директива rewrite использовала выделения внутри
5721 директивы if, то возвращалась ошибка 500.
5724 Изменения в nginx 0.1.32 19.05.2005
5726 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
5727 передавались аргументы; ошибка появилась в 0.1.29.
5729 *) Добавление: директива if поддерживает выделения в регулярных
5732 *) Добавление: директива set поддерживает переменные и выделения из
5733 регулярных выражений.
5735 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
5736 "X-Accel-Redirect" в ответе бэкенда.
5739 Изменения в nginx 0.1.31 16.05.2005
5741 *) Исправление: при использовании SSL ответ мог передаваться не до
5744 *) Исправление: ошибки при обработке SSI в ответе, полученного от
5747 *) Исправление: ошибки при использовании SSI и сжатия.
5749 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
5753 Изменения в nginx 0.1.30 14.05.2005
5755 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
5757 *) Исправление: при использовании SSL ответ мог передаваться не до
5760 *) Исправление: если длина части ответа, полученного за один раз от
5761 проксируемого или FastCGI сервера была равна 500 байт, то nginx
5762 возвращал код ответа 500; в режиме прокси ошибка появилась только в
5765 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
5768 *) Добавление: директива return может возвращать код ответа 204.
5770 *) Добавление: директива ignore_invalid_headers.
5773 Изменения в nginx 0.1.29 12.05.2005
5775 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
5778 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
5779 вида 'if expr="$NAME"' и команды else и endif. Допускается только
5780 один уровень вложенности.
5782 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
5783 DATE_LOCAL и DATE_GMT и команду config timefmt.
5785 *) Добавление: директива ssi_ignore_recycled_buffers.
5787 *) Исправление: если переменная QUERY_STRING не была определена, то в
5788 команде echo не ставилось значение по умолчанию.
5790 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
5792 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
5793 proxy_pass_request_body и proxy_method.
5795 *) Добавление: директива proxy_set_header. Директива proxy_x_var
5796 упразднена и должна быть заменена директивой proxy_set_header.
5798 *) Изменение: директива proxy_preserve_host упразднена и должна быть
5799 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
5800 off" или директивой "proxy_set_header Host $host:$proxy_port" и
5801 соответствующими ей директивами proxy_redirect.
5803 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
5804 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
5806 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
5807 быть заменена директивой
5808 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
5810 *) Изменение: директива proxy_set_x_url упразднена и должна быть
5812 "proxy_set_header X-URL http://$host:$server_port$request_uri".
5814 *) Добавление: директива fastcgi_param.
5816 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
5817 упразднены и должны быть замены директивами fastcgi_param.
5819 *) Добавление: директива index может использовать переменные.
5821 *) Добавление: директива index может быть указана на уровне http и
5824 *) Изменение: только последний параметр в директиве index может быть
5827 *) Добавление: в директиве rewrite могут использоваться переменные.
5829 *) Добавление: директива internal.
5831 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
5832 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
5833 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
5835 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
5836 клиента и ответа бэкенда.
5838 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
5839 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
5841 *) Исправление: если бэкенд передавал неверную строку в заголовке
5842 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
5844 *) Исправление: при использовании отказоустойчивой конфигурации в
5845 FastCGI мог происходить segmentation fault.
5847 *) Исправление: директива expires не удаляла уже установленные строки
5848 заголовка "Expires" и "Cache-Control".
5850 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
5853 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
5855 *) Исправление: директива rewrite неверно работала, если в запросе
5856 присутствовали аргументы.
5858 *) Исправление: nginx не собирался на MacOS X.
5861 Изменения в nginx 0.1.28 08.04.2005
5863 *) Исправление: при проксировании больших файлов nginx сильно нагружал
5866 *) Исправление: nginx не собирался gcc 4.0 на Linux.
5869 Изменения в nginx 0.1.27 28.03.2005
5871 *) Добавление: параметр blocked в директиве valid_referers.
5873 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
5874 уровне info, в лог также записывается имя сервера и строки заголовка
5875 запроса "Host" и "Referer".
5877 *) Изменение: при записи ошибок в лог записывается также строка
5878 заголовка запроса "Host".
5880 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
5881 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
5883 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
5884 параметр конфигурации --without-ngx_http_auth_basic_module.
5887 Изменения в nginx 0.1.26 22.03.2005
5889 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
5890 игнорируется и записываются в error_log на уровне info.
5892 *) Изменение: при записи ошибок в лог записывается также имя сервера,
5893 при обращении к которому произошла ошибка.
5895 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
5896 и auth_basic_user_file.
5899 Изменения в nginx 0.1.25 19.03.2005
5901 *) Исправление: nginx не работал на Linux parisc.
5903 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
5904 sysctl kern.ipc.somaxconn слишком большое.
5906 *) Исправление: если модуль ngx_http_index_module делал внутреннее
5907 перенаправление запроса в модули ngx_http_proxy_module или
5908 ngx_http_fastcgi_module, то файл индекса не закрывался после
5909 обслуживания запроса.
5911 *) Добавление: директива proxy_pass может использоваться в location,
5912 заданных регулярным выражением.
5914 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
5915 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
5917 *) Исправление: nginx очень медленно запускался при большом количестве
5918 адресов и использовании текстовых значений в директиве geo.
5920 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
5921 Прежний вариант без "$" пока работает, но вскоре будет убран.
5923 *) Добавление: параметр лога "%{VARIABLE}v".
5925 *) Добавление: директива "set $name value".
5927 *) Исправление: совместимость с gcc 4.0.
5929 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
5932 Изменения в nginx 0.1.24 04.03.2005
5934 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
5935 QUERY_STRING и DOCUMENT_URI.
5937 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
5938 на существующий каталог, если этот каталог был указан как alias.
5940 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
5941 при больших ответах.
5943 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
5944 правильным referrer'ом.
5947 Изменения в nginx 0.1.23 01.03.2005
5949 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
5950 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
5951 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
5953 *) Добавление: параметр лога %request_time.
5955 *) Добавление: если запрос пришёл без строки заголовка "Host", то
5956 директива proxy_preserve_host устанавливает в качестве этого
5957 заголовка первое имя сервера из директивы server_name.
5959 *) Исправление: nginx не собирался на платформах, отличных от i386,
5960 amd64, sparc и ppc; ошибка появилась в 0.1.22.
5962 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
5963 информацию не о символическом линке, а о файле или каталоге, на
5964 который он указывает.
5966 *) Исправление: если клиенту ничего не передавалось, то параметр
5967 %apache_length записывал в лог отрицательную длину заголовка ответа.
5970 Изменения в nginx 0.1.22 22.02.2005
5972 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
5973 статистику для обработанных соединений, если использовалось
5974 проксирование или FastCGI-сервер.
5976 *) Исправление: на Linux и Solaris установочные пути были неверно
5977 заключены в кавычки; ошибка появилась в 0.1.21.
5980 Изменения в nginx 0.1.21 22.02.2005
5982 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
5983 статистику при использовании метода rtsig или при использовании
5984 нескольких рабочих процессов на SMP машине.
5986 *) Исправление: nginx не собирался компилятором icc под Линуксом или
5987 если библиотека zlib-1.2.x собиралась из исходных текстов.
5989 *) Исправление: nginx не собирался под NetBSD 2.0.
5992 Изменения в nginx 0.1.20 17.02.2005
5994 *) Добавление: новые параметры script_filename и remote_port в директиве
5997 *) Исправление: неправильно обрабатывался поток stderr от
6001 Изменения в nginx 0.1.19 16.02.2005
6003 *) Исправление: если в запросе есть нуль, то для локальных запросов
6004 теперь возвращается ошибка 404.
6006 *) Исправление: nginx не собирался под NetBSD 2.0.
6008 *) Исправление: во время чтения тела запроса клиента в SSL соединении
6009 мог произойти таймаут.
6012 Изменения в nginx 0.1.18 09.02.2005
6014 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
6015 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
6017 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
6020 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
6021 присоединялись к URI через символ "&" вместо "?".
6023 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
6024 включённом файле игнорировались.
6026 *) Добавление: модуль ngx_http_stub_status_module.
6028 *) Исправление: неизвестный формат лог-файла в директиве access_log
6029 вызывал segmentation fault.
6031 *) Добавление: новый параметр document_root в директиве fastcgi_params.
6033 *) Добавление: директива fastcgi_redirect_errors.
6035 *) Добавление: новый модификатор break в директиве rewrite позволяет
6036 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
6040 Изменения в nginx 0.1.17 03.02.2005
6042 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
6043 можно делать редиректы, возвращать коды ошибок и проверять переменные
6044 и рефереры. Эти директивы можно использовать внутри location.
6045 Директива redirect упразднена.
6047 *) Добавление: модуль ngx_http_geo_module.
6049 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
6051 *) Исправление: конфигурация location с модификатором "=" могла
6052 использоваться в другом location.
6054 *) Исправление: правильный тип ответа выставлялся только для запросов, у
6055 которых в расширении были только маленькие буквы.
6057 *) Исправление: если для location установлен proxy_pass или
6058 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
6059 на статическую страницу, то происходил segmentation fault.
6061 *) Исправление: если в проксированном ответе в заголовке "Location"
6062 передавался относительный URL, то к нему добавлялось имя хоста и
6063 слэш; ошибка появилась в 0.1.14.
6065 *) Исправление: на Linux в лог не записывался текст системной ошибки.
6068 Изменения в nginx 0.1.16 25.01.2005
6070 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
6071 выдавался завершающий chunk.
6073 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
6074 директива keepalive_timeout запрещала использование keep-alive.
6076 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
6079 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
6082 *) Исправление: опции TCP_NODELAY, TCP_NOPSUH и TCP_CORK, специфичные
6083 для TCP сокетов, не используются для unix domain сокетов.
6085 *) Добавление: директива rewrite поддерживает перезаписывание
6088 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
6089 возвращался ответ 400; ошибка появилась в 0.1.14.
6092 Изменения в nginx 0.1.15 19.01.2005
6094 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
6097 *) Исправление: корректная обработка регулярного выражения, в котором
6098 число выделенных частей не совпадает с числом подстановок.
6100 *) Добавление: location, который передаётся FastCGI-серверу, может быть
6101 задан с помощью регулярного выражения.
6103 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
6104 аргументами и в том виде, в котором был получен от клиента.
6106 *) Исправление: для использования регулярных выражений в location нужно
6107 было собирать nginx вместе с ngx_http_rewrite_module.
6109 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
6110 директивы "proxy_preserve_host on" в заголовке "Host" указывался
6111 также порт 80; ошибка появилась в 0.1.14.
6113 *) Исправление: если задать одинаковые пути в параметрах
6114 автоконфигурации --http-client-body-temp-path=PATH и
6115 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
6116 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
6119 Изменения в nginx 0.1.14 18.01.2005
6121 *) Добавление: параметры автоконфигурации
6122 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
6123 --http-fastcgi-temp-path=PATH
6125 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
6126 клиента, задаётся директивой client_body_temp_path, по умолчанию
6127 <prefix>/client_body_temp.
6129 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
6130 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
6131 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
6132 fastcgi_header_buffer_size, fastcgi_buffers,
6133 fastcgi_busy_buffers_size, fastcgi_temp_path,
6134 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
6135 fastcgi_next_upstream и fastcgi_x_powered_by.
6137 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
6140 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
6143 *) Изменение: если в URI встречался символ %3F, то он считался началом
6146 *) Добавление: поддержка unix domain сoкетов в модуле
6147 ngx_http_proxy_module.
6149 *) Добавление: директивы ssl_engine и ssl_ciphers.
6150 Спасибо Сергею Скворцову за SSL-акселератор.
6153 Изменения в nginx 0.1.13 21.12.2004
6155 *) Добавление: директивы server_names_hash и
6156 server_names_hash_threshold.
6158 *) Исправление: имена *.domain.tld в директиве server_name не работали.
6160 *) Исправление: параметр лога %request_length записывал неверную длину.
6163 Изменения в nginx 0.1.12 06.12.2004
6165 *) Добавление: параметр лога %request_length.
6167 *) Исправление: при использовании /dev/poll, select и poll на
6168 платформах, где возможны ложные срабатывания указанных методов, могли
6169 быть длительные задержки при обработке запроса по keep-alive
6170 соединению. Наблюдалось по крайней мере на Solaris с использованием
6173 *) Исправление: директива send_lowat игнорируется на Linux, так как
6174 Linux не поддерживает опцию SO_SNDLOWAT.
6177 Изменения в nginx 0.1.11 02.12.2004
6179 *) Добавление: директива worker_priority.
6181 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
6182 влияют на передачу ответа.
6184 *) Исправление: nginx не вызывал initgroups().
6185 Спасибо Андрею Ситникову и Андрею Нигматулину.
6187 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
6190 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
6191 каталоге есть битый symlink.
6193 *) Исправление: файлы больше 4G не передавались с использованием
6196 *) Исправление: если бэкенд резолвился в несколько адресов и при
6197 ожидании от него ответа происходила ошибка, то процесс зацикливался.
6199 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
6200 завершиться с сообщением "unknown cycle".
6202 *) Исправление: ошибки "close() channel failed".
6204 *) Исправление: автоматическое определение групп nobody и nogroup.
6206 *) Исправление: директива send_lowat не работала на Linux.
6208 *) Исправление: если в конфигурации не было раздела events, то
6209 происходил segmentation fault.
6211 *) Исправление: nginx не собирался под OpenBSD.
6213 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
6216 Изменения в nginx 0.1.10 26.11.2004
6218 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
6219 или "%XX", то терялся последний символ в строке запроса; ошибка
6222 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
6226 Изменения в nginx 0.1.9 25.11.2004
6228 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
6229 проксируемый запрос передавался без аргументов.
6231 *) Исправление: при сжатии больших ответов иногда они передавались не
6234 *) Исправление: не передавались файлы больше 2G на Linux,
6235 неподдерживающем sendfile64().
6237 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
6238 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
6241 Изменения в nginx 0.1.8 20.11.2004
6243 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
6244 длинных имён файлов.
6246 *) Добавление: модификатор "^~" в директиве location.
6248 *) Добавление: директива proxy_max_temp_file_size.
6251 Изменения в nginx 0.1.7 12.11.2004
6253 *) Исправление: при использовании sendfile, если передаваемый файл
6254 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
6258 Изменения в nginx 0.1.6 11.11.2004
6260 *) Исправление: при некоторых комбинациях директив location c
6261 регулярными выражениями использовалась конфигурация не из того
6265 Изменения в nginx 0.1.5 11.11.2004
6267 *) Исправление: на Solaris и Linux могло быть очень много сообщений
6268 "recvmsg() returned not enough data".
6270 *) Исправление: в режиме прокси без использования sendfile на Solaris
6271 возникала ошибка "writev() failed (22: Invalid argument)". На других
6272 платформах, не поддерживающих sendfile, процесс зацикливался.
6274 *) Исправление: при использовании sendfile в режиме прокси на Solaris
6275 возникал segmentation fault.
6277 *) Исправление: segmentation fault на Solaris.
6279 *) Исправление: обновление исполняемого файла на лету не работало на
6282 *) Исправление: в списке файлов, выдаваемом модулем
6283 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
6286 *) Изменение: уменьшение операций копирования.
6288 *) Добавление: директива userid_p3p.
6291 Изменения в nginx 0.1.4 26.10.2004
6293 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
6296 Изменения в nginx 0.1.3 25.10.2004
6298 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
6300 *) Добавление: директива proxy_set_x_url.
6302 *) Исправление: модуль проксировании мог привести к зацикливанию, если
6303 не использовался sendfile.
6306 Изменения в nginx 0.1.2 21.10.2004
6308 *) Добавление: параметры --user=USER, --group=GROUP и
6309 --with-ld-opt=OPTIONS в configure.
6311 *) Добавление: директива server_name поддерживает *.domain.tld.
6313 *) Исправление: улучшена переносимость на неизвестные платформы.
6315 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
6316 файл указан в командной строке; ошибка появилась в 0.1.1.
6318 *) Исправление: модуль проксировании мог привести к зацикливанию, если
6319 не использовался sendfile.
6321 *) Исправление: при использовании sendfile текст ответа не
6322 перекодировался согласно директивам модуля charset; ошибка появилась
6325 *) Исправление: очень редкая ошибка при обработке kqueue.
6327 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
6331 Изменения в nginx 0.1.1 11.10.2004
6333 *) Добавление: директива gzip_types.
6335 *) Добавление: директива tcp_nodelay.
6337 *) Добавление: директива send_lowat работает не только на платформах,
6338 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
6341 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
6343 *) Исправление: ошибка при переписывании заголовка "Location" при
6346 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
6349 *) Исправление: ошибки в модуле /dev/poll.
6351 *) Исправление: при проксировании и использовании временных файлов
6354 *) Исправление: бэкенду передавались запросы с неперекодированными
6357 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
6358 обязательно использовать параметр --with-poll_module.
6361 Изменения в nginx 0.1.0 04.10.2004
6363 *) Первая публично доступная версия.