Annotation of embedaddon/nginx/CHANGES.ru, revision 1.1.1.1
1.1 misho 1:
2: Изменения в nginx 1.4.3 08.10.2013
3:
4: *) Исправление: в рабочем процессе мог произойти segmentation fault,
5: если использовался модуль ngx_http_spdy_module и директива
6: client_body_in_file_only.
7:
8: *) Исправление: на старте или во время переконфигурации мог произойти
9: segmentation fault, если использовалась директива try_files с пустым
10: параметром.
11:
12: *) Исправление: переменная $request_time не работала в nginx/Windows.
13:
14: *) Исправление: в модуле ngx_http_auth_basic_module при использовании
15: метода шифрования паролей "$apr1$".
16: Спасибо Markus Linnala.
17:
18: *) Исправление: в модуле ngx_http_autoindex_module.
19:
20: *) Исправление: в почтовом прокси-сервере.
21:
22:
23: Изменения в nginx 1.4.2 17.07.2013
24:
25: *) Исправление: метод $r->header_in() встроенного перла не возвращал
26: значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
27: ошибка появилась в 1.3.14.
28:
29: *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
30: модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
31:
32: *) Исправление: в директиве proxy_set_body.
33: Спасибо Lanshun Zhou.
34:
35: *) Исправление: параметр fail_timeout директивы server в блоке upstream
36: мог не работать, если использовался параметр max_fails; ошибка
37: появилась в 1.3.0.
38:
39: *) Исправление: в рабочем процессе мог произойти segmentation fault,
40: если использовалась директива ssl_stapling.
41: Спасибо Piotr Sikora.
42:
43: *) Исправление: nginx/Windows мог перестать принимать соединения, если
44: использовалось несколько рабочих процессов.
45:
46:
47: Изменения в nginx 1.4.1 07.05.2013
48:
49: *) Безопасность: при обработке специально созданного запроса мог
50: перезаписываться стек рабочего процесса, что могло приводить к
51: выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
52: 1.3.9.
53: Спасибо Greg MacManus, iSIGHT Partners Labs.
54:
55:
56: Изменения в nginx 1.4.0 24.04.2013
57:
58: *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
59: использовался параметр --with-openssl; ошибка появилась в 1.3.16.
60:
61: *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
62: ошибка появилась в 1.3.9.
63:
64:
65: Изменения в nginx 1.3.16 16.04.2013
66:
67: *) Исправление: в рабочем процессе мог произойти segmentation fault,
68: если использовались подзапросы; ошибка появилась в 1.3.9.
69:
70: *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
71: WebSocket-соединений в unix domain сокет.
72:
73: *) Исправление: переменная $upstream_response_length возвращала значение
74: "0", если не использовалась буферизация.
75: Спасибо Piotr Sikora.
76:
77: *) Исправление: в методах обработки соединений eventport и /dev/poll.
78:
79:
80: Изменения в nginx 1.3.15 26.03.2013
81:
82: *) Изменение: открытие и закрытие соединения без отправки в нём
83: каких-либо данных больше не записывается в access_log с кодом ошибки
84: 400.
85:
86: *) Добавление: модуль ngx_http_spdy_module.
87: Спасибо Automattic за спонсирование разработки.
88:
89: *) Добавление: директивы limit_req_status и limit_conn_status.
90: Спасибо Nick Marden.
91:
92: *) Добавление: директива image_filter_interlace.
93: Спасибо Ивану Боброву.
94:
95: *) Добавление: переменная $connections_waiting в модуле
96: ngx_http_stub_status_module.
97:
98: *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
99:
100: *) Исправление: при повторной отправке запроса на бэкенд тело запроса
101: могло передаваться неправильно; ошибка появилась в 1.3.9.
102: Спасибо Piotr Sikora.
103:
104: *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
105: 1.3.9.
106:
107: *) Исправление: ответы могли зависать, если использовались подзапросы и
108: при обработке подзапроса происходила DNS-ошибка.
109: Спасибо Lanshun Zhou.
110:
111: *) Исправление: в процедуре учёта использования бэкендов.
112:
113:
114: Изменения в nginx 1.3.14 05.03.2013
115:
116: *) Добавление: переменные $connections_active, $connections_reading и
117: $connections_writing в модуле ngx_http_stub_status_module.
118:
119: *) Добавление: поддержка WebSocket-соединений в модулях
120: ngx_http_uwsgi_module и ngx_http_scgi_module.
121:
122: *) Исправление: в обработке виртуальных серверов при использовании SNI.
123:
124: *) Исправление: при использовании директивы "ssl_session_cache shared"
125: новые сессии могли не сохраняться, если заканчивалось место в
126: разделяемой памяти.
127: Спасибо Piotr Sikora.
128:
129: *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
130: неправильно.
131: Спасибо Neal Poole за спонсирование разработки.
132:
133: *) Исправление: в модуле ngx_http_mp4_module.
134: Спасибо Gernot Vormayr.
135:
136:
137: Изменения в nginx 1.3.13 19.02.2013
138:
139: *) Изменение: теперь для сборки по умолчанию используется компилятор с
140: именем "cc".
141:
142: *) Добавление: поддержка проксирования WebSocket-соединений.
143: Спасибо Apcera и CloudBees за спонсирование разработки.
144:
145: *) Добавление: директива auth_basic_user_file поддерживает шифрование
146: паролей методом "{SHA}".
147: Спасибо Louis Opter.
148:
149:
150: Изменения в nginx 1.3.12 05.02.2013
151:
152: *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
153: scgi_bind и uwsgi_bind поддерживают переменные.
154:
155: *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
156: $time_local теперь можно использовать не только в директиве
157: log_format.
158: Спасибо Kiril Kalchev.
159:
160: *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
161: Спасибо Gregor Kališnik.
162:
163: *) Исправление: директива proxy_method работала неверно, если была
164: указана на уровне http.
165:
166: *) Исправление: в рабочем процессе мог произойти segmentation fault,
167: если использовался resolver и метод poll.
168:
169: *) Исправление: nginx мог нагружать процессор во время SSL handshake с
170: бэкендом при использовании методов обработки соединений select, poll
171: и /dev/poll.
172:
173: *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
174:
175: *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
176: 1.3.9.
177:
178: *) Исправление: в директиве fastcgi_keep_conn.
179:
180:
181: Изменения в nginx 1.3.11 10.01.2013
182:
183: *) Исправление: при записи в лог мог происходить segmentation fault;
184: ошибка появилась в 1.3.10.
185:
186: *) Исправление: директива proxy_pass не работала с IP-адресами без
187: явного указания порта; ошибка появилась в 1.3.10.
188:
189: *) Исправление: на старте или во время переконфигурации происходил
190: segmentation fault, если директива keepalive была указана несколько
191: раз в одном блоке upstream.
192:
193: *) Исправление: параметр default директивы geo не определял значение по
194: умолчанию для IPv6-адресов.
195:
196:
197: Изменения в nginx 1.3.10 25.12.2012
198:
199: *) Изменение: для указанных в конфигурационном файле доменных имён
200: теперь используются не только IPv4, но и IPv6 адреса.
201:
202: *) Изменение: теперь при использовании директивы include с маской на
203: Unix-системах включаемые файлы сортируются в алфавитном порядке.
204:
205: *) Изменение: директива add_header добавляет строки в ответы с кодом
206: 201.
207:
208: *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
209: CIDR.
210:
211: *) Добавление: параметры flush и gzip в директиве access_log.
212:
213: *) Добавление: директива auth_basic поддерживает переменные.
214:
215: *) Исправление: nginx в некоторых случаях не собирался с модулем
216: ngx_http_perl_module.
217:
218: *) Исправление: в рабочем процессе мог произойти segmentation fault,
219: если использовался модуль ngx_http_xslt_module.
220:
221: *) Исправление: nginx мог не собираться на MacOSX.
222: Спасибо Piotr Sikora.
223:
224: *) Исправление: при использовании директивы limit_rate с большими
225: значениями скорости на 32-битных системах ответ мог возвращаться не
226: целиком.
227: Спасибо Алексею Антропову.
228:
229: *) Исправление: в рабочем процессе мог произойти segmentation fault,
230: если использовалась директива if.
231: Спасибо Piotr Sikora.
232:
233: *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
234: Request Entity Too Large".
235:
236: *) Исправление: директивы image_filter, image_filter_jpeg_quality и
237: image_filter_sharpen могли наследоваться некорректно.
238: Спасибо Ивану Боброву.
239:
240: *) Исправление: при использовании директивы auth_basic под Linux могли
241: возникать ошибки "crypt_r() failed".
242:
243: *) Исправление: в обработке backup-серверов.
244: Спасибо Thomas Chen.
245:
246: *) Исправление: при проксировании HEAD-запросов мог возвращаться
247: некорректный ответ, если использовалась директива gzip.
248:
249:
250: Изменения в nginx 1.3.9 27.11.2012
251:
252: *) Добавление: поддержка chunked transfer encoding при получении тела
253: запроса.
254:
255: *) Добавление: переменные $request_time и $msec теперь можно
256: использовать не только в директиве log_format.
257:
258: *) Исправление: cache manager и cache loader могли не запускаться, если
259: использовалось более 512 listen-сокетов.
260:
261: *) Исправление: в модуле ngx_http_dav_module.
262:
263:
264: Изменения в nginx 1.3.8 30.10.2012
265:
266: *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
267: Спасибо Михаилу Казанцеву и Eric O'Connor.
268:
269: *) Добавление: переменные $bytes_sent, $connection и
270: $connection_requests теперь можно использовать не только в директиве
271: log_format.
272: Спасибо Benjamin Grössing.
273:
274: *) Добавление: параметр auto директивы worker_processes.
275:
276: *) Исправление: сообщения "cache file ... has md5 collision".
277:
278: *) Исправление: в модуле ngx_http_gunzip_filter_module.
279:
280: *) Исправление: в директиве ssl_stapling.
281:
282:
283: Изменения в nginx 1.3.7 02.10.2012
284:
285: *) Добавление: поддержка OCSP stapling.
286: Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
287:
288: *) Добавление: директива ssl_trusted_certificate.
289:
290: *) Добавление: теперь resolver случайным образом меняет порядок
291: возвращаемых закэшированных адресов.
292: Спасибо Антону Жулину.
293:
294: *) Исправление: совместимость с OpenSSL 0.9.7.
295:
296:
297: Изменения в nginx 1.3.6 12.09.2012
298:
299: *) Добавление: модуль ngx_http_gunzip_filter_module.
300:
301: *) Добавление: директива memcached_gzip_flag.
302:
303: *) Добавление: параметр always директивы gzip_static.
304:
305: *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
306: Спасибо Charles Chen.
307:
308: *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
309: использовался параметр --with-ipv6.
310:
311:
312: Изменения в nginx 1.3.5 21.08.2012
313:
314: *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
315: дорожки в форматах, отличных от H.264 и AAC.
316:
317: *) Исправление: в рабочем процессе мог произойти segmentation fault,
318: если в директиве map в качестве значений использовались переменные.
319:
320: *) Исправление: в рабочем процессе мог произойти segmentation fault при
321: использовании директивы geo с параметром ranges, но без параметра
322: default; ошибка появилась в 0.8.43.
323: Спасибо Zhen Chen и Weibin Yao.
324:
325: *) Исправление: в обработке параметра командной строки -p.
326:
327: *) Исправление: в почтовом прокси-сервере.
328:
329: *) Исправление: незначительных потенциальных ошибок.
330: Спасибо Coverity.
331:
332: *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
333: Спасибо HAYASHI Kentaro.
334:
335:
336: Изменения в nginx 1.3.4 31.07.2012
337:
338: *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
339: по умолчанию.
340:
341: *) Добавление: поддержка компилятора Clang.
342:
343: *) Исправление: могли создаваться лишние слушающие сокеты.
344: Спасибо Роману Одайскому.
345:
346: *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
347: рабочего процесса происходила ошибка.
348: Спасибо Ricardo Villalobos Guevara.
349:
350: *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
351: scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
352: fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
353: наследоваться некорректно.
354:
355:
356: Изменения в nginx 1.3.3 10.07.2012
357:
358: *) Добавление: поддержка entity tags и директива etag.
359:
360: *) Исправление: при использовании директивы map с параметром hostnames
361: не игнорировалась конечная точка в исходном значении.
362:
363: *) Исправление: для обработки запроса мог использоваться неверный
364: location, если переход в именованный location происходил после
365: изменения URI с помощью директивы rewrite.
366:
367:
368: Изменения в nginx 1.3.2 26.06.2012
369:
370: *) Изменение: параметр single директивы keepalive теперь игнорируется.
371:
372: *) Изменение: сжатие SSL теперь отключено в том числе при использовании
373: OpenSSL cтарее 1.0.0.
374:
375: *) Добавление: директиву "ip_hash" теперь можно использовать для
376: балансировки IPv6 клиентов.
377:
378: *) Добавление: переменную $status теперь можно использовать не только в
379: директиве log_format.
380:
381: *) Исправление: при завершении рабочего процесса мог произойти
382: segmentation fault, если использовалась директива resolver.
383:
384: *) Исправление: в рабочем процессе мог произойти segmentation fault,
385: если использовался модуль ngx_http_mp4_module.
386:
387: *) Исправление: в модуле ngx_http_mp4_module.
388:
389: *) Исправление: в рабочем процессе мог произойти segmentation fault,
390: если использовались конфликтующие имена серверов с масками.
391:
392: *) Исправление: на платформе ARM nginx мог аварийно завершаться по
393: сигналу SIGBUS.
394:
395: *) Исправление: во время переконфигурации на HP-UX в лог записывался
396: alert "sendmsg() failed (9: Bad file number)".
397:
398:
399: Изменения в nginx 1.3.1 05.06.2012
400:
401: *) Безопасность: теперь nginx/Windows игнорирует точку в конце
402: компонента URI и не разрешает URI, содержащие последовательность
403: ":$".
404: Спасибо Владимиру Кочеткову, Positive Research Center.
405:
406: *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
407: и директива server в блоке upstream теперь поддерживают IPv6-адреса.
408:
409: *) Добавление: в директиве resolver теперь можно указывать порт и
410: задавать IPv6-адреса DNS-серверов.
411:
412: *) Добавление: директива least_conn в блоке upstream.
413:
414: *) Добавление: при использовании директивы ip_hash теперь можно задавать
415: веса серверов.
416:
417: *) Исправление: в рабочем процессе мог произойти segmentation fault,
418: если использовалась директива image_filter; ошибка появилась в 1.3.0.
419:
420: *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
421: появилась в 1.1.12.
422:
423: *) Исправление: доступ к переменным из SSI и встроенного перла мог не
424: работать после переконфигурации.
425: Спасибо Yichun Zhang.
426:
427: *) Исправление: в модуле ngx_http_xslt_filter_module.
428: Спасибо Kuramoto Eiji.
429:
430: *) Исправление: утечки памяти при использовании переменной $geoip_org.
431: Спасибо Денису Латыпову.
432:
433: *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
434:
435:
436: Изменения в nginx 1.3.0 15.05.2012
437:
438: *) Добавление: директива debug_connection теперь поддерживает
439: IPv6-адреса и параметр "unix:".
440:
441: *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
442: теперь поддерживают IPv6-адреса.
443:
444: *) Добавление: директивы real_ip_recursive, geoip_proxy и
445: geoip_proxy_recursive.
446:
447: *) Добавление: параметр proxy_recursive директивы geo.
448:
449: *) Исправление: в рабочем процессе мог произойти segmentation fault,
450: если использовалась директива resolver.
451:
452: *) Исправление: в рабочем процессе мог произойти segmentation fault,
453: если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
454: и бэкенд возвращал некорректный ответ.
455:
456: *) Исправление: в рабочем процессе мог произойти segmentation fault,
457: если использовалась директива rewrite и в новых аргументах запроса в
458: строке замены использовались переменные.
459:
460: *) Исправление: nginx мог нагружать процессор, если было достигнуто
461: ограничение на количество открытых файлов.
462:
463: *) Исправление: при использовании директивы proxy_next_upstream с
464: параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
465: блоке upstream был хотя бы один сервер с флагом backup.
466:
467: *) Исправление: при использовании директивы ip_hash установка параметра
468: down директивы server могла приводить к ненужному перераспределению
469: клиентов между бэкендами.
470:
471: *) Исправление: утечки сокетов.
472: Спасибо Yichun Zhang.
473:
474: *) Исправление: в модуле ngx_http_fastcgi_module.
475:
476:
477: Изменения в nginx 1.2.0 23.04.2012
478:
479: *) Исправление: в рабочем процессе мог произойти segmentation fault,
480: если использовалась директива try_files; ошибка появилась в 1.1.19.
481:
482: *) Исправление: ответ мог быть передан не полностью, если использовалось
483: больше IOV_MAX буферов.
484:
485: *) Исправление: в работе параметра crop директивы image_filter.
486: Спасибо Maxim Bublis.
487:
488:
489: Изменения в nginx 1.1.19 12.04.2012
490:
491: *) Безопасность: при обработке специально созданного mp4 файла модулем
492: ngx_http_mp4_module могли перезаписываться области памяти рабочего
493: процесса, что могло приводить к выполнению произвольного кода
494: (CVE-2012-2089).
495: Спасибо Matthew Daley.
496:
497: *) Исправление: nginx/Windows мог завершаться аварийно.
498: Спасибо Vincent Lee.
499:
500: *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
501: были помечены флагом backup.
502:
503: *) Исправление: директивы allow и deny могли наследоваться некорректно,
504: если в них использовались IPv6 адреса.
505:
506: *) Исправление: директивы modern_browser и ancient_browser могли
507: наследоваться некорректно.
508:
509: *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
510:
511: *) Исправление: в модуле ngx_http_mp4_module.
512:
513:
514: Изменения в nginx 1.1.18 28.03.2012
515:
516: *) Изменение: теперь keepalive соединения не запрещены для Safari по
517: умолчанию.
518:
519: *) Добавление: переменная $connection_requests.
520:
521: *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
522: $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
523:
524: *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
525:
526: *) Добавление: директивы xslt_param и xslt_string_param.
527: Спасибо Samuel Behan.
528:
529: *) Исправление: в configure.
530: Спасибо Piotr Sikora.
531:
532: *) Исправление: в модуле ngx_http_xslt_filter_module.
533:
534: *) Исправление: nginx не собирался на Debian GNU/Hurd.
535:
536:
537: Изменения в nginx 1.1.17 15.03.2012
538:
539: *) Безопасность: содержимое ранее освобождённой памяти могло быть
540: отправлено клиенту, если бэкенд возвращал специально созданный ответ.
541: Спасибо Matthew Daley.
542:
543: *) Исправление: при использовании встроенного перла из SSI.
544: Спасибо Matthew Daley.
545:
546: *) Исправление: в модуле ngx_http_uwsgi_module.
547:
548:
549: Изменения в nginx 1.1.16 29.02.2012
550:
551: *) Изменение: ограничение на количество одновременных подзапросов
552: поднято до 200.
553:
554: *) Добавление: параметр from в директиве disable_symlinks.
555:
556: *) Добавление: директивы return и error_page теперь могут использоваться
557: для возврата перенаправлений с кодом 307.
558:
559: *) Исправление: в рабочем процессе мог произойти segmentation fault,
560: если использовалась директива resolver и на глобальном уровне не была
561: задана директива error_log.
562: Спасибо Роману Арутюняну.
563:
564: *) Исправление: в рабочем процессе мог произойти segmentation fault,
565: если использовались директивы "proxy_http_version 1.1" или
566: "fastcgi_keep_conn on".
567:
568: *) Исправление: утечек памяти.
569: Спасибо Lanshun Zhou.
570:
571: *) Исправление: в директиве disable_symlinks.
572:
573: *) Исправление: при использовании ZFS размер кэша на диске мог считаться
574: некорректно; ошибка появилась в 1.0.1.
575:
576: *) Исправление: nginx не собирался компилятором icc 12.1.
577:
578: *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
579: 1.1.15.
580:
581:
582: Изменения в nginx 1.1.15 15.02.2012
583:
584: *) Добавление: директива disable_symlinks.
585:
586: *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
587:
588: *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
589: prematurely closed connection" вместо "upstream sent too big header".
590: Спасибо Feibo Li.
591:
592: *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
593: использовался параметр --with-openssl.
594:
595: *) Исправление: количество внутренних перенаправлений в именованные
596: location'ы не ограничивалось.
597:
598: *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
599: ошибкам в модуле ngx_http_gzip_filter_module.
600:
601: *) Исправление: при использовании директивы proxy_store с
602: SSI-подзапросами временные файлы могли не удаляться.
603:
604: *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
605: $args) возвращали старое пустое закэшированное значение.
606:
607: *) Исправление: в рабочем процессе мог произойти segmentation fault,
608: если одновременно создавалось слишком много SSI-подзапросов; ошибка
609: появилась в 0.7.25.
610:
611:
612: Изменения в nginx 1.1.14 30.01.2012
613:
614: *) Добавление: теперь можно указать несколько ограничений limit_req
615: одновременно.
616:
617: *) Исправление: в обработке ошибок при соединении с бэкендом.
618: Спасибо Piotr Sikora.
619:
620: *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
621:
622: *) Исправление: в инициализации библиотеки OpenSSL.
623:
624: *) Исправление: директивы proxy_redirect могли наследоваться
625: некорректно.
626:
627: *) Исправление: утечки памяти при переконфигурации, если использовалась
628: директива pcre_jit.
629:
630:
631: Изменения в nginx 1.1.13 16.01.2012
632:
633: *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
634:
635: *) Исправление: параметры директивы limit_req наследовались некорректно;
636: ошибка появилась в 1.1.12.
637:
638: *) Исправление: директива proxy_redirect некорректно обрабатывала
639: заголовок Refresh при использовании регулярных выражений.
640:
641: *) Исправление: директива proxy_cache_use_stale с параметром error не
642: возвращала ответ из кэша, если все бэкенды были признаны
643: неработающими.
644:
645: *) Исправление: директива worker_cpu_affinity могла не работать.
646:
647: *) Исправление: nginx не собирался на Solaris; ошибка появилась в
648: 1.1.12.
649:
650: *) Исправление: в модуле ngx_http_mp4_module.
651:
652:
653: Изменения в nginx 1.1.12 26.12.2011
654:
655: *) Изменение: после перенаправления запроса с помощью директивы
656: error_page директива proxy_pass без URI теперь использует изменённый
657: URI.
658: Спасибо Lanshun Zhou.
659:
660: *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
661: proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
662:
663: *) Добавление: директива pcre_jit.
664:
665: *) Добавление: SSI команда if поддерживает выделения в регулярных
666: выражениях.
667:
668: *) Исправление: SSI команда if не работала внутри команды block.
669:
670: *) Исправление: директивы limit_conn_log_level и limit_req_log_level
671: могли не работать.
672:
673: *) Исправление: директива limit_rate не позволяла передавать на полной
674: скорости, даже если был указан очень большой лимит.
675:
676: *) Исправление: директива sendfile_max_chunk не работала, если
677: использовалась директива limit_rate.
678:
679: *) Исправление: если в директиве proxy_pass использовались переменные и
680: не был указан URI, всегда использовался URI исходного запроса.
681:
682: *) Исправление: после перенаправления запроса с помощью директивы
683: try_files директива proxy_pass без URI могла использовать URI
684: исходного запроса.
685: Спасибо Lanshun Zhou.
686:
687: *) Исправление: в модуле ngx_http_scgi_module.
688:
689: *) Исправление: в модуле ngx_http_mp4_module.
690:
691: *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
692:
693:
694: Изменения в nginx 1.1.11 12.12.2011
695:
696: *) Добавление: параметр so_keepalive в директиве listen.
697: Спасибо Всеволоду Стахову.
698:
699: *) Добавление: параметр if_not_empty в директивах
700: fastcgi/scgi/uwsgi_param.
701:
702: *) Добавление: переменная $https.
703:
704: *) Добавление: директива proxy_redirect поддерживает переменные в первом
705: параметре.
706:
707: *) Добавление: директива proxy_redirect поддерживает регулярные
708: выражения.
709:
710: *) Исправление: переменная $sent_http_cache_control могла содержать
711: неверное значение при использовании директивы expires.
712: Спасибо Yichun Zhang.
713:
714: *) Исправление: директива read_ahead могла не работать при использовании
715: совместно с try_files и open_file_cache.
716:
717: *) Исправление: если в параметре inactive директивы proxy_cache_path
718: было указано малое время, в рабочем процессе мог произойти
719: segmentation fault.
720:
721: *) Исправление: ответы из кэша могли зависать.
722:
723:
724: Изменения в nginx 1.1.10 30.11.2011
725:
726: *) Исправление: при использовании AIO на Linux в рабочем процессе
727: происходил segmentation fault; ошибка появилась в 1.1.9.
728:
729:
730: Изменения в nginx 1.1.9 28.11.2011
731:
732: *) Изменение: теперь двойные кавычки экранируется при выводе
733: SSI-командой echo.
734: Спасибо Зауру Абасмирзоеву.
735:
736: *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
737: используется TTL, возвращённый DNS-сервером.
738: Спасибо Кириллу Коринскому.
739:
740: *) Исправление: nginx мог перестать отвечать, если рабочий процесс
741: завершался аварийно.
742:
743: *) Исправление: в рабочем процессе мог произойти segmentation fault,
744: если использовалось SNI; ошибка появилась в 1.1.2.
745:
746: *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
747: Спасибо Александру Усову.
748:
749: *) Исправление: сигнал SIGWINCH переставал работать после первого
750: обновления исполняемого файла; ошибка появилась в 1.1.1.
751:
752: *) Исправление: теперь ответы бэкендов, длина которых не соответствует
753: заголовку Content-Length, не кэширутся.
754:
755: *) Исправление: в директиве scgi_param при использовании составных
756: параметров.
757:
758: *) Исправление: в методе epoll.
759: Спасибо Yichun Zhang.
760:
761: *) Исправление: в модуле ngx_http_flv_module.
762: Спасибо Piotr Sikora.
763:
764: *) Исправление: в модуле ngx_http_mp4_module.
765:
766: *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
767: заголовке Host.
768:
769: *) Исправление: директивы add_header и expires не работали для ответов с
770: кодом 206, если запрос проксировался.
771:
772: *) Исправление: nginx не собирался на FreeBSD 10.
773:
774: *) Исправление: nginx не собирался на AIX.
775:
776:
777: Изменения в nginx 1.1.8 14.11.2011
778:
779: *) Изменение: модуль ngx_http_limit_zone_module переименован в
780: ngx_http_limit_conn_module.
781:
782: *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
783: новым синтаксисом.
784:
785: *) Добавление: поддержка ограничения по нескольким limit_conn на одном
786: уровне.
787:
788: *) Добавление: директива image_filter_sharpen.
789:
790: *) Исправление: в рабочем процессе мог произойти segmentation fault,
791: если resolver получил большой DNS-ответ.
792: Спасибо Ben Hawkes.
793:
794: *) Исправление: в вычислении ключа для кэширования, если использовалась
795: внутренняя реализация MD5; ошибка появилась в 1.0.4.
796:
797: *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
798: заголовке запроса клиента могли передаваться бэкенду при кэшировании;
799: или не передаваться при выключенном кэшировании, если кэширование
800: было включено в другой части конфигурации.
801:
802: *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
803: "Content-Length" в заголовке ответа, использовался аргумент start.
804: Спасибо Piotr Sikora.
805:
806:
807: Изменения в nginx 1.1.7 31.10.2011
808:
809: *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
810: Спасибо Кириллу Коринскому.
811:
812: *) Исправление: на старте или во время переконфигурации происходил
813: segmentation fault, если директива ssl использовалась на уровне http
814: и не был указан ssl_certificate.
815:
816: *) Исправление: уменьшено потребление памяти при проксировании больших
817: файлов, если они буферизировались на диск.
818:
819: *) Исправление: в рабочем процессе мог произойти segmentation fault,
820: если использовалась директива "proxy_http_version 1.1".
821:
822: *) Исправление: в директиве "expires @time".
823:
824:
825: Изменения в nginx 1.1.6 17.10.2011
826:
827: *) Изменение во внутреннем API: теперь при внутреннем редиректе в
828: именованный location контексты модулей очищаются.
829: По запросу Yichun Zhang.
830:
831: *) Изменение: теперь если сервер, описанный в блоке upstream, был
832: признан неработающим, то после истечения fail_timeout на него будет
833: отправлен только один запрос; сервер будет считаться работающим, если
834: успешно ответит на этот запрос.
835:
836: *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
837: \xXX.
838:
839: *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
840: теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
841: X-Accel-Charset.
842:
843: *) Добавление: уменьшение потребления памяти при использовании SSL.
844:
845: *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
846: Спасибо Алексею Куцу.
847:
848: *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
849: уровне server, применялись повторно, если для запроса не находилось
850: ни одного location'а.
851:
852: *) Исправление: при использовании "aio sendfile" могла происходить
853: утечка сокетов.
854:
855: *) Исправление: при использовании файлового AIO соединения с быстрыми
856: клиентами могли быть закрыты по истечению send_timeout.
857:
858: *) Исправление: в модуле ngx_http_autoindex_module.
859:
860: *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
861: 32-битных платформах.
862:
863:
864: Изменения в nginx 1.1.5 05.10.2011
865:
866: *) Добавление: директивы uwsgi_buffering и scgi_buffering.
867: Спасибо Peter Smit.
868:
869: *) Исправление: при использовании proxy_cache_bypass могли быть
870: закэшированы некэшируемые ответы.
871: Спасибо John Ferlito.
872:
873: *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
874: HTTP/1.1.
875:
876: *) Исправление: закэшированные ответы с пустым телом возвращались
877: некорректно; ошибка появилась в 0.8.31.
878:
879: *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
880: некорректны; ошибка появилась в 0.8.32.
881:
882: *) Исправление: в директиве return.
883:
884: *) Исправление: при использовании директивы "ssl_session_cache builtin"
885: происходил segmentation fault; ошибка появилась в 1.1.1.
886:
887:
888: Изменения в nginx 1.1.4 20.09.2011
889:
890: *) Добавление: модуль ngx_http_upstream_keepalive.
891:
892: *) Добавление: директива proxy_http_version.
893:
894: *) Добавление: директива fastcgi_keep_conn.
895:
896: *) Добавление: директива worker_aio_requests.
897:
898: *) Исправление: если nginx был собран с файловым AIO, он не мог
899: запускаться на Linux без поддержки AIO.
900:
901: *) Исправление: в обработке ошибок при работе с Linux AIO.
902: Спасибо Hagai Avrahami.
903:
904: *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
905:
906: *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
907: MP4-атом co64.
908:
909:
910: Изменения в nginx 1.1.3 14.09.2011
911:
912: *) Добавление: модуль ngx_http_mp4_module.
913:
914: *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
915:
916: *) Исправление: open_file_cache не обновлял информацию о файле, если
917: файл был изменён не атомарно.
918:
919: *) Исправление: nginx не собирался на MacOSX 10.7.
920:
921:
922: Изменения в nginx 1.1.2 05.09.2011
923:
924: *) Изменение: теперь, если суммарный размер всех диапазонов больше
925: размера исходного ответа, то nginx возвращает только исходный ответ,
926: не обрабатывая диапазоны.
927:
928: *) Добавление: директива max_ranges.
929:
930: *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
931: ssl_prefer_server_cipher могли работать некорректно, если
932: использовался SNI.
933:
934: *) Исправление: в директивах proxy/fastcgi/scgi/
935: uwsgi_ignore_client_abort.
936:
937:
938: Изменения в nginx 1.1.1 22.08.2011
939:
940: *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
941: число файлов, указанное в параметре load_files, либо работает не
942: дольше времени, указанного в параметре loader_threshold.
943:
944: *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
945:
946: *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
947: на Solaris.
948: Спасибо Денису Иванову.
949:
950: *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
951:
952: *) Исправление: nginx не собирался на Linux 3.0.
953:
954: *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
955: появилась в 1.1.0.
956:
957: *) Исправление: обработка тела запроса могла быть неверной, если клиент
958: использовал pipelining.
959:
960: *) Исправление: в директиве request_body_in_single_buf.
961:
962: *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
963: при использовании SSL-соединения с бэкендом.
964:
965: *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
966: были помечены флагом down.
967:
968: *) Исправление: при переконфигурации мог произойти segmentation fault,
969: если в предыдущей конфигурации был определён, но не использовался
970: ssl_session_cache.
971:
972: *) Исправление: при использовании большого количества backup-серверов в
973: рабочем процессе мог произойти segmentation fault.
974:
975: *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
976: значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
977: произойти segmentation fault; ошибка появилась в 0.8.40.
978:
979:
980: Изменения в nginx 1.1.0 01.08.2011
981:
982: *) Добавление: уменьшение времени работы загрузчика кэша.
983:
984: *) Добавление: параметры loader_files, loader_sleep и loader_threshold
985: директив proxy/fastcgi/scgi/uwsgi_cache_path.
986:
987: *) Добавление: уменьшение времени загрузки конфигураций с большим
988: количеством HTTPS серверов.
989:
990: *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
991: Спасибо Adrian Kotelba.
992:
993: *) Добавление: директива lingering_close.
994: Спасибо Максиму Дунину.
995:
996: *) Исправление: закрытия соединения для pipelined-запросов.
997: Спасибо Максиму Дунину.
998:
999: *) Исправление: nginx не запрещал сжатие при получении значения
1000: "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
1001:
1002: *) Исправление: таймаута при небуферизированном проксировании.
1003: Спасибо Максиму Дунину.
1004:
1005: *) Исправление: утечки памяти при использовании переменных в директиве
1006: proxy_pass при работе с бэкендом по HTTPS.
1007: Спасибо Максиму Дунину.
1008:
1009: *) Исправление: в проверке параметра директивы proxy_pass, заданного
1010: переменными.
1011: Спасибо Lanshun Zhou.
1012:
1013: *) Исправление: SSL не работал на QNX.
1014: Спасибо Максиму Дунину.
1015:
1016: *) Исправление: SSL модули не собирались gcc 4.6 без параметра
1017: --with-debug.
1018:
1019:
1020: Изменения в nginx 1.0.5 19.07.2011
1021:
1022: *) Изменение: теперь по умолчанию используются следующие шифры SSL:
1023: "HIGH:!aNULL:!MD5".
1024: Спасибо Rob Stradling.
1025:
1026: *) Добавление: директивы referer_hash_max_size и
1027: referer_hash_bucket_size.
1028: Спасибо Witold Filipczyk.
1029:
1030: *) Добавление: переменная $uid_reset.
1031:
1032: *) Исправление: при использовании кэширования в рабочем процессе мог
1033: произойти segmentation fault.
1034: Спасибо Lanshun Zhou.
1035:
1036: *) Исправление: при использовании кэширования рабочие процессы могли
1037: зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
1038: Спасибо Максиму Дунину.
1039:
1040: *) Исправление: сообщения "stalled cache updating".
1041: Спасибо Максиму Дунину.
1042:
1043:
1044: Изменения в nginx 1.0.4 01.06.2011
1045:
1046: *) Изменение: теперь в регулярных выражениях в директиве map можно
1047: задать чувствительность к регистру с помощью префиксов "~" и "~*".
1048:
1049: *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
1050: на Linux.
1051: Спасибо Денису Латыпову.
1052:
1053: *) Исправление: сообщения "stalled cache updating".
1054:
1055: *) Исправление: nginx не собирался с параметром
1056: --without-http_auth_basic_module; ошибка появилась в 1.0.3.
1057:
1058:
1059: Изменения в nginx 1.0.3 25.05.2011
1060:
1061: *) Добавление: директива auth_basic_user_file поддерживает шифрование
1062: пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
1063: Спасибо Максиму Дунину.
1064:
1065: *) Добавление: директива geoip_org и переменная $geoip_org.
1066: Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
1067:
1068: *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
1069: поддерживают адреса IPv4, отображённые на IPv6 адреса.
1070:
1071: *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
1072: рабочем процессе происходил segmentation fault, если директивы access
1073: или deny были определены только для адресов IPv6; ошибка появилась в
1074: 0.8.22.
1075:
1076: *) Исправление: закэшированный ответ мог быть испорчен, если значения
1077: директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
1078: uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
1079:
1080:
1081: Изменения в nginx 1.0.2 10.05.2011
1082:
1083: *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
1084:
1085: *) Исправление: в работе параметра rotate директивы image_filter.
1086: Спасибо Adam Bocim.
1087:
1088: *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
1089:
1090:
1091: Изменения в nginx 1.0.1 03.05.2011
1092:
1093: *) Изменение: теперь директива split_clients использует алгоритм
1094: MurmurHash2 из-за лучшего распределения.
1095: Спасибо Олегу Мамонтову.
1096:
1097: *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
1098: ложными значениями.
1099: Спасибо Максиму Дунину.
1100:
1101: *) Изменение: теперь по умолчанию nginx использует значение 511 для
1102: listen backlog на Linux.
1103:
1104: *) Добавление: переменные $upstream_... можно использовать в SSI и
1105: перловом модулях.
1106:
1107: *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
1108: Спасибо Олегу Мамонтову.
1109:
1110: *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
1111: segmentation fault; ошибка появилась в 0.8.22.
1112: Спасибо Максиму Дунину.
1113:
1114: *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
1115:
1116: *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
1117: появилась в 0.9.3.
1118: Спасибо Dagobert Michelsen.
1119:
1120: *) Исправление: переменная $request_time имела неверные значения, если
1121: использовались подзапросы; ошибка появилась в 0.8.47.
1122: Спасибо Игорю А. Валькову.
1123:
1124:
1125: Изменения в nginx 1.0.0 12.04.2011
1126:
1127: *) Исправление: cache manager мог нагружать процессор после
1128: переконфигурации.
1129: Спасибо Максиму Дунину.
1130:
1131: *) Исправление: директива "image_filter crop" неправильно работала в
1132: сочетании с "image_filter rotate 180".
1133:
1134: *) Исправление: директива "satisfy any" запрещала выдачу
1135: пользовательской страницы для 401 кода.
1136:
1137:
1138: Изменения в nginx 0.9.7 04.04.2011
1139:
1140: *) Добавление: теперь соединения в состоянии keepalive могут быть
1141: закрыты преждевременно, если у воркера нет свободных соединений.
1142: Спасибо Максиму Дунину.
1143:
1144: *) Добавление: параметр rotate директивы image_filter.
1145: Спасибо Adam Bocim.
1146:
1147: *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
1148: scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
1149: upstream.
1150:
1151:
1152: Изменения в nginx 0.9.6 21.03.2011
1153:
1154: *) Добавление: директива map поддерживает регулярные выражения в
1155: качестве значения первого параметра.
1156:
1157: *) Добавление: переменная $time_iso8601 для access_log.
1158: Спасибо Michael Lustfield.
1159:
1160:
1161: Изменения в nginx 0.9.5 21.02.2011
1162:
1163: *) Изменение: теперь по умолчанию nginx использует значение -1 для
1164: listen backlog на Linux.
1165: Спасибо Андрею Нигматулину.
1166:
1167: *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
1168: Спасибо Денису Латыпову.
1169:
1170: *) Исправление: исправление в умолчательной директиве proxy_redirect,
1171: если в директиве proxy_pass не был описан URI.
1172: Спасибо Максиму Дунину.
1173:
1174: *) Исправление: директива error_page не работала с нестандартными кодами
1175: ошибок; ошибка появилась в 0.8.53.
1176: Спасибо Максиму Дунину.
1177:
1178:
1179: Изменения в nginx 0.9.4 21.01.2011
1180:
1181: *) Добавление: директива server_name поддерживает переменную $hostname.
1182:
1183: *) Добавление: 494 код для ошибки "Request Header Too Large".
1184:
1185:
1186: Изменения в nginx 0.9.3 13.12.2010
1187:
1188: *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
1189: то выделения в регулярных выражениях в директиве server_name не
1190: работали.
1191:
1192: *) Исправление: nginx не собирался под Solaris; ошибка появилась в
1193: 0.9.0.
1194:
1195:
1196: Изменения в nginx 0.9.2 06.12.2010
1197:
1198: *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
1199: запросе клиента.
1200:
1201: *) Изменение: использование accept(), если accept4() не реализован;
1202: ошибка появилась в 0.9.0.
1203:
1204: *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
1205:
1206: *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
1207: Спасибо Максиму Дунину.
1208:
1209:
1210: Изменения в nginx 0.9.1 30.11.2010
1211:
1212: *) Исправление: директивы вида "return CODE message" не работали; ошибка
1213: появилась в 0.9.0.
1214:
1215:
1216: Изменения в nginx 0.9.0 29.11.2010
1217:
1218: *) Добавление: директива keepalive_disable.
1219:
1220: *) Добавление: директива map поддерживает переменные в качестве значения
1221: определяемой переменной.
1222:
1223: *) Добавление: директива map поддерживает пустые строки в качестве
1224: значения первого параметра.
1225:
1226: *) Добавление: директива map поддерживает выражения в первом параметре.
1227:
1228: *) Добавление: страница руководства nginx(8).
1229: Спасибо Сергею Осокину.
1230:
1231: *) Добавление: поддержка accept4() в Linux.
1232: Спасибо Simon Liu.
1233:
1234: *) Изменение: устранение предупреждения линкера о "sys_errlist" и
1235: "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
1236:
1237: *) Исправление: при использовании директивы auth_basic в рабочем
1238: процессе мог произойти segmentation fault.
1239: Спасибо Михаилу Лалетину.
1240:
1241: *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
1242: появилась в 0.8.42.
1243:
1244:
1245: Изменения в nginx 0.8.53 18.10.2010
1246:
1247: *) Добавление: теперь директива error_page позволяет менять код статуса
1248: у редиректа.
1249:
1250: *) Добавление: директива gzip_disable поддерживает специальную маску
1251: degradation.
1252:
1253: *) Исправление: при использовании файлового AIO могла происходить утечка
1254: сокетов.
1255: Спасибо Максиму Дунину.
1256:
1257: *) Исправление: если в первом сервере не была описана директива listen и
1258: нигде явно не описан сервер по умолчанию, то сервером по умолчанию
1259: становился следующий сервер с директивой listen; ошибка появилась в
1260: 0.8.21.
1261:
1262:
1263: Изменения в nginx 0.8.52 28.09.2010
1264:
1265: *) Исправление: nginx использовал режим SSL для listen сокета, если для
1266: него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
1267:
1268:
1269: Изменения в nginx 0.8.51 27.09.2010
1270:
1271: *) Изменение: директива secure_link_expires упразднена.
1272:
1273: *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
1274: alert на error.
1275:
1276: *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
1277: несколько раз.
1278:
1279:
1280: Изменения в nginx 0.8.50 02.09.2010
1281:
1282: *) Добавление: директивы secure_link, secure_link_md5 и
1283: secure_link_expires модуля ngx_http_secure_link_module.
1284:
1285: *) Добавление: ключ -q.
1286: Спасибо Геннадию Махомеду.
1287:
1288: *) Исправление: при использовании кэширования рабочие процессы и могли
1289: зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
1290:
1291: *) Исправление: в директиве gzip_disable.
1292: Спасибо Derrick Petzold.
1293:
1294: *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
1295: reopen, reload процессу, запущенному в другой сессии.
1296:
1297:
1298: Изменения в nginx 0.8.49 09.08.2010
1299:
1300: *) Добавление: директива image_filter_jpeg_quality поддерживает
1301: переменные.
1302:
1303: *) Исправление: при использовании переменной $geoip_region_name в
1304: рабочем процессе мог произойти segmentation fault; ошибка появилась в
1305: 0.8.48.
1306:
1307: *) Исправление: ошибки, перехваченные error_page, кэшировались только до
1308: следующего запроса; ошибка появилась в 0.8.48.
1309:
1310:
1311: Изменения в nginx 0.8.48 03.08.2010
1312:
1313: *) Изменение: теперь по умолчанию директива server_name имеет значение
1314: пустое имя "".
1315: Спасибо Геннадию Махомеду.
1316:
1317: *) Изменение: теперь по умолчанию директива server_name_in_redirect
1318: имеет значение off.
1319:
1320: *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
1321: $geoip_region_name.
1322: Спасибо Christine McGonagle.
1323:
1324: *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
1325: scgi_pass не наследовались в блоки limit_except.
1326:
1327: *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
1328: uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
1329: появилась в 0.8.46.
1330:
1331: *) Исправление: директива fastcgi_split_path_info неверно использовала
1332: выделения, если в выделения попадала только часть URI.
1333: Спасибо Юрию Тарадаю и Frank Enderle.
1334:
1335: *) Исправление: директива rewrite не экранировала символ ";" при
1336: копировании из URI в аргументы.
1337: Спасибо Daisuke Murase.
1338:
1339: *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
1340: если изображение было больше размера image_filter_buffer.
1341:
1342:
1343: Изменения в nginx 0.8.47 28.07.2010
1344:
1345: *) Исправление: переменная $request_time имела неверные значения для
1346: подзапросов.
1347:
1348: *) Исправление: ошибки, перехваченные error_page, не кэшировались.
1349:
1350: *) Исправление: если использовался параметр max_size, то cache manager
1351: мог зациклиться; ошибка появилась в 0.8.46.
1352:
1353:
1354: Изменения в nginx 0.8.46 19.07.2010
1355:
1356: *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
1357: и scgi_no_cache теперь влияют только на сохранение закэшированного
1358: ответа.
1359:
1360: *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
1361: uwsgi_cache_bypass и scgi_cache_bypass.
1362:
1363: *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
1364: ошибки работы с бэкендом: память освобождалась только по истечении
1365: времени неактивности или при недостатке памяти.
1366:
1367:
1368: Изменения в nginx 0.8.45 13.07.2010
1369:
1370: *) Добавление: улучшения в модуле ngx_http_xslt_filter.
1371: Спасибо Laurence Rowe.
1372:
1373: *) Исправление: ответ SSI модуля мог передаваться не полностью после
1374: команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
1375: Спасибо Максиму Дунину.
1376:
1377: *) Исправление: директива listen не поддерживала параметр setfib=0.
1378:
1379:
1380: Изменения в nginx 0.8.44 05.07.2010
1381:
1382: *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
1383: заголовке которых есть строка "Set-Cookie".
1384:
1385: *) Добавление: директива listen поддерживает параметр setfib.
1386: Спасибо Андрею Филонову.
1387:
1388: *) Исправление: директива sub_filter могла изменять регистр букв при
1389: частичном совпадении.
1390:
1391: *) Исправление: совместимость с HP/UX.
1392:
1393: *) Исправление: совместимость с компилятором AIX xlC_r.
1394:
1395: *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
1396: запросы.
1397: Спасибо Miroslaw Jaworski.
1398:
1399:
1400: Изменения в nginx 0.8.43 30.06.2010
1401:
1402: *) Добавление: ускорение загрузки больших баз geo-диапазонов.
1403:
1404: *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
1405: без изменения кода ответа оставляло тело ошибки; ошибка появилась в
1406: 0.8.42.
1407:
1408: *) Исправление: nginx мог закрывать IPv6 listen сокет во время
1409: переконфигурации.
1410: Спасибо Максиму Дунину.
1411:
1412: *) Исправление: переменную $uid_set можно использовать на любой стадии
1413: обработки запроса.
1414:
1415:
1416: Изменения в nginx 0.8.42 21.06.2010
1417:
1418: *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
1419: выражениями, если запрос полностью совпал с location'ом, заданным
1420: строкой префикса. Предыдущее поведение появилось в 0.7.1.
1421:
1422: *) Добавление: модуль ngx_http_scgi_module.
1423: Спасибо Manlio Perillo.
1424:
1425: *) Добавление: в директиве return можно добавлять текст ответа.
1426:
1427:
1428: Изменения в nginx 0.8.41 15.06.2010
1429:
1430: *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
1431: при запросе файла с неверной кодировкой UTF-8.
1432:
1433: *) Изменение: теперь nginx разрешает использовать пробелы в строке
1434: запроса.
1435:
1436: *) Исправление: директива proxy_redirect неправильно изменяла строку
1437: "Refresh" в заголовке ответа бэкенда.
1438: Спасибо Андрею Андрееву и Максиму Согину.
1439:
1440: *) Исправление: nginx не поддерживал путь без имени хоста в строке
1441: "Destination" в заголовке запроса.
1442:
1443:
1444: Изменения в nginx 0.8.40 07.06.2010
1445:
1446: *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
1447: умолчанию.
1448: Спасибо Jose Antonio Vazquez Gonzalez.
1449:
1450: *) Добавление: модуль ngx_http_uwsgi_module.
1451: Спасибо Roberto De Ioris.
1452:
1453: *) Добавление: директива fastcgi_param со значением, начинающимся со
1454: строки "HTTP_", изменяет строку заголовка в запросе клиента.
1455:
1456: *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
1457: заголовке запроса клиента передавались FastCGI-серверу при
1458: кэшировании.
1459:
1460: *) Исправление: listen unix domain сокет нельзя было изменить во время
1461: переконфигурации.
1462: Спасибо Максиму Дунину.
1463:
1464:
1465: Изменения в nginx 0.8.39 31.05.2010
1466:
1467: *) Исправление: наследуемая директива alias неправильно работала во
1468: вложенном location'е.
1469:
1470: *) Исправление: в комбинации директив alias с переменными и try_files;
1471:
1472: *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
1473: время обновления без перерыва.
1474: Спасибо Максиму Дунину.
1475:
1476:
1477: Изменения в nginx 0.8.38 24.05.2010
1478:
1479: *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
1480:
1481: *) Добавление: теперь при использовании переменной $scheme в директиве
1482: rewrite автоматически делается редирект.
1483: Спасибо Piotr Sikora.
1484:
1485: *) Исправление: теперь задержки в директиве limit_req соответствует
1486: описанному алгоритму.
1487: Спасибо Максиму Дунину.
1488:
1489: *) Исправление: переменную $uid_got нельзя было использовать в SSI и
1490: перловом модулях.
1491:
1492:
1493: Изменения в nginx 0.8.37 17.05.2010
1494:
1495: *) Добавление: модуль ngx_http_split_clients_module.
1496:
1497: *) Добавление: директива map поддерживает ключи больше 255 символов.
1498:
1499: *) Исправление: nginx игнорировал значения "private" и "no-store" в
1500: строке "Cache-Control" в заголовке ответа бэкенда.
1501:
1502: *) Исправление: параметр stub в SSI-директиве include не использовался,
1503: если пустой ответ имел код 200.
1504:
1505: *) Исправление: если проксированный или FastCGI запрос внутренне
1506: перенаправлялся в другой проксированный или FastCGI location, то в
1507: рабочем процессе мог произойти segmentation fault; ошибка появилась в
1508: 0.8.33.
1509: Спасибо Yichun Zhang.
1510:
1511: *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
1512: таймаута.
1513: Спасибо Alan Batie.
1514:
1515:
1516: Изменения в nginx 0.8.36 22.04.2010
1517:
1518: *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
1519: методы DELETE, COPY и MOVE для симлинков.
1520:
1521: *) Исправление: модуль SSI в подзапросах использовал закэшированные в
1522: основном запросе значения переменных $query_string, $arg_... и им
1523: подобных.
1524:
1525: *) Исправление: значение переменной повторно экранировалось после
1526: каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
1527:
1528: *) Исправление: рабочий процесс зависал при запросе файла FIFO.
1529: Спасибо Vicente Aguilar и Максиму Дунину.
1530:
1531: *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
1532: Спасибо Максиму Дунину.
1533:
1534: *) Исправление: nginx не собирался с параметром --without-http-cache;
1535: ошибка появилась в 0.8.35.
1536:
1537:
1538: Изменения в nginx 0.8.35 01.04.2010
1539:
1540: *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
1541:
1542: *) Добавление: директива chunked_transfer_encoding.
1543:
1544: *) Исправление: символ "&" при копировании в аргументы в правилах
1545: rewrite не экранировался.
1546:
1547: *) Исправление: nginx мог завершаться аварийно во время обработки
1548: сигнала или при использовании директивы timer_resolution на
1549: платформах, не поддерживающих методы kqueue или eventport.
1550: Спасибо George Xie и Максиму Дунину.
1551:
1552: *) Исправление: если временные файлы и постоянное место хранения
1553: располагались на разных файловых системах, то у постоянных файлов
1554: время изменения было неверным.
1555: Спасибо Максиму Дунину.
1556:
1557: *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
1558: "memcached sent invalid trailer".
1559: Спасибо Максиму Дунину.
1560:
1561: *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
1562: текстов.
1563: Спасибо Максиму Дунину.
1564:
1565: *) Исправление: в рабочем процессе происходил segmentation fault, если
1566: перед ответом FastCGI-сервера было много вывода в stderr; ошибка
1567: появилась в 0.8.34.
1568: Спасибо Максиму Дунину.
1569:
1570:
1571: Изменения в nginx 0.8.34 03.03.2010
1572:
1573: *) Исправление: nginx не поддерживал все шифры, используемые в
1574: клиентских сертификатах.
1575: Спасибо Иннокентию Еникееву.
1576:
1577: *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
1578: ответом было много вывода в stderr.
1579:
1580: *) Исправление: nginx не поддерживал HTTPS-рефереры.
1581:
1582: *) Исправление: nginx/Windows мог не находить файлы, если путь в
1583: конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
1584:
1585: *) Исправление: переменная $date_local выдавала неверное время, если
1586: использовался формат "%s".
1587: Спасибо Максиму Дунину.
1588:
1589: *) Исправление: если ssl_session_cache не был установлен или установлен
1590: в none, то при проверке клиентского сертификаты могла происходить
1591: ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
1592:
1593: *) Исправление: geo-диапазон возвращал значение по умолчанию, если
1594: диапазон включал в себя одну и более сетей размером /16 и не
1595: начинался на границе сети размером /16.
1596:
1597: *) Исправление: блок, используемый в параметре stub в SSI-директиве
1598: include, выводился с MIME-типом "text/plain".
1599:
1600: *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
1601:
1602:
1603: Изменения в nginx 0.8.33 01.02.2010
1604:
1605: *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
1606: Спасибо Dan Crowley, Core Security Technologies.
1607:
1608: *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
1609: Спасибо Dan Crowley, Core Security Technologies.
1610:
1611: *) Изменение: теперь keepalive соединения после запросов POST не
1612: запрещаются для MSIE 7.0+.
1613: Спасибо Adam Lounds.
1614:
1615: *) Изменение: теперь keepalive соединения запрещены для Safari.
1616: Спасибо Joshua Sierles.
1617:
1618: *) Исправление: если проксированный или FastCGI запрос внутренне
1619: перенаправлялся в другой проксированный или FastCGI location, то
1620: переменная $upstream_response_time могла иметь ненормально большое
1621: значение; ошибка появилась в 0.8.7.
1622:
1623: *) Исправление: в рабочем процессе мог произойти segmentation fault при
1624: отбрасывания тела запроса; ошибка появилась в 0.8.11.
1625:
1626:
1627: Изменения в nginx 0.8.32 11.01.2010
1628:
1629: *) Исправление: ошибки при использовании кодировки UTF-8 в
1630: ngx_http_autoindex_module.
1631: Спасибо Максиму Дунину.
1632:
1633: *) Исправление: именованные выделения в регулярных выражениях работали
1634: только для двух переменных.
1635: Спасибо Максиму Дунину.
1636:
1637: *) Исправление: теперь в строке заголовка запроса "Host" используется
1638: имя "localhost", если в директиве auth_http указан unix domain сокет.
1639: Спасибо Максиму Дунину.
1640:
1641: *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
1642: ответов.
1643: Спасибо Julian Reich.
1644:
1645: *) Исправление: если директива "expires modified" выставляла дату в
1646: прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
1647: отрицательное число.
1648: Спасибо Алексею Капранову.
1649:
1650:
1651: Изменения в nginx 0.8.31 23.12.2009
1652:
1653: *) Добавление: теперь директива error_page может перенаправлять ответы
1654: со статусом 301 и 302.
1655:
1656: *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
1657: $geoip_longitude.
1658: Спасибо Arvind Sundararajan.
1659:
1660: *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
1661: EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
1662:
1663: *) Исправление: nginx закрывал соединение при запросе закэшированного
1664: ответа с пустым телом.
1665: Спасибо Piotr Sikora.
1666:
1667: *) Исправление: nginx мог не собираться gcc 4.x при использовании
1668: оптимизации -O2 и выше.
1669: Спасибо Максиму Дунину и Денису Латыпову.
1670:
1671: *) Исправление: регулярные выражения в location всегда тестировались с
1672: учётом регистра; ошибка появилась в 0.8.25.
1673:
1674: *) Исправление: nginx кэшировал 304 ответ, если в заголовке
1675: проксируемого запроса была строка "If-None-Match".
1676: Спасибо Tim Dettrick и David Kostal.
1677:
1678: *) Исправление: nginx/Windows пытался дважды удалить временный файл при
1679: перезаписи уже существующего файла.
1680:
1681:
1682: Изменения в nginx 0.8.30 15.12.2009
1683:
1684: *) Изменение: теперь по умолчанию размер буфера директивы
1685: large_client_header_buffers равен 8K.
1686: Спасибо Andrew Cholakian.
1687:
1688: *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
1689:
1690: *) Исправление: nginx/Windows пытался дважды переименовать временный
1691: файл при перезаписи уже существующего файла.
1692:
1693: *) Исправление: ошибки double free or corruption, возникающей, если имя
1694: хоста не было найдено; ошибка появилась в 0.8.22.
1695: Спасибо Константину Свисту.
1696:
1697: *) Исправление: в использовании libatomic на некоторых платформах.
1698: Спасибо W-Mark Kubacki.
1699:
1700:
1701: Изменения в nginx 0.8.29 30.11.2009
1702:
1703: *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
1704: ответа "009".
1705:
1706: *) Добавление: директивы addition_types, charset_types, gzip_types,
1707: ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
1708:
1709: *) Добавление: использование встроенных атомарных операций GCC 4.1+.
1710: Спасибо W-Mark Kubacki.
1711:
1712: *) Добавление: параметр --with-libatomic[=DIR] в configure.
1713: Спасибо W-Mark Kubacki.
1714:
1715: *) Исправление: listen unix domain сокет имели ограниченные права
1716: доступа.
1717:
1718: *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
1719: обрабатывались.
1720:
1721: *) Исправление: именованные выделения в регулярных выражениях, заданные
1722: как "?P<...>", не работали в директиве server_name.
1723: Спасибо Максиму Дунину.
1724:
1725:
1726: Изменения в nginx 0.8.28 23.11.2009
1727:
1728: *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
1729: появилась в 0.8.25.
1730:
1731:
1732: Изменения в nginx 0.8.27 17.11.2009
1733:
1734: *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
1735: появилась в 0.8.25.
1736:
1737:
1738: Изменения в nginx 0.8.26 16.11.2009
1739:
1740: *) Исправление: ошибки при использовании выделений в директиве rewrite;
1741: ошибка появилась в 0.8.25.
1742:
1743: *) Исправление: nginx не собирался без параметра --with-debug; ошибка
1744: появилась в 0.8.25.
1745:
1746:
1747: Изменения в nginx 0.8.25 16.11.2009
1748:
1749: *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
1750: не найдена с помощью метода $r->variable().
1751:
1752: *) Добавление: модуль ngx_http_degradation_module.
1753:
1754: *) Добавление: именованные выделения в регулярных выражениях.
1755:
1756: *) Добавление: теперь при использовании переменных в директиве
1757: proxy_pass не требуется задавать URI.
1758:
1759: *) Добавление: теперь директива msie_padding работает и для Chrome.
1760:
1761: *) Исправление: в рабочем процессе происходил segmentation fault при
1762: недостатке памяти; ошибка появилась в 0.8.18.
1763:
1764: *) Исправление: nginx передавал сжатые ответы клиентам, не
1765: поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
1766: ошибка появилась в 0.8.16.
1767:
1768:
1769: Изменения в nginx 0.8.24 11.11.2009
1770:
1771: *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
1772: заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
1773:
1774: *) Исправление: nginx не собирался без параметра --with-debug; ошибка
1775: появилась в 0.8.23.
1776:
1777: *) Исправление: параметр "unix:" в директиве set_real_ip_from
1778: неправильно наследовался с предыдущего уровня.
1779:
1780: *) Исправление: в resolver'е при определении пустого имени.
1781:
1782:
1783: Изменения в nginx 0.8.23 11.11.2009
1784:
1785: *) Безопасность: теперь SSL/TLS renegotiation запрещён.
1786: Спасибо Максиму Дунину.
1787:
1788: *) Исправление: listen unix domain сокет не наследовался во время
1789: обновления без перерыва.
1790:
1791: *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
1792: без ещё одной директивы с любым IP-адресом.
1793:
1794: *) Исправление: segmentation fault и зацикливания в resolver'е.
1795:
1796: *) Исправление: в resolver'е.
1797: Спасибо Артёму Бохану.
1798:
1799:
1800: Изменения в nginx 0.8.22 03.11.2009
1801:
1802: *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
1803:
1804: *) Добавление: директивы access и deny поддерживают IPv6.
1805:
1806: *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
1807: заголовках запроса.
1808:
1809: *) Добавление: параметр "unix:" в директиве set_real_ip_from.
1810:
1811: *) Исправление: nginx не удалял unix domain сокет после тестирования
1812: конфигурации.
1813:
1814: *) Исправление: nginx удалял unix domain сокет во время обновления без
1815: перерыва.
1816:
1817: *) Исправление: оператор "!-x" не работал.
1818: Спасибо Максиму Дунину.
1819:
1820: *) Исправление: в рабочем процессе мог произойти segmentation fault при
1821: использовании limit_rate в HTTPS сервере.
1822: Спасибо Максиму Дунину.
1823:
1824: *) Исправление: при записи в лог переменной $limit_rate в рабочем
1825: процессе происходил segmentation fault.
1826: Спасибо Максиму Дунину.
1827:
1828: *) Исправление: в рабочем процессе мог произойти segmentation fault,
1829: если внутри блока server не было директивы listen; ошибка появилась в
1830: 0.8.21.
1831:
1832:
1833: Изменения в nginx 0.8.21 26.10.2009
1834:
1835: *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
1836:
1837: *) Добавление: директива listen модуля HTTP поддерживает unix domain
1838: сокеты.
1839: Спасибо Hongli Lai.
1840:
1841: *) Добавление: параметр "default_server" в директиве listen.
1842:
1843: *) Добавление: теперь параметр "default" не обязателен для установки
1844: параметров listen-сокета.
1845:
1846: *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
1847: платформах;
1848:
1849: *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
1850:
1851:
1852: Изменения в nginx 0.8.20 14.10.2009
1853:
1854: *) Изменение: теперь по умолчанию используются следующие шифры SSL:
1855: "HIGH:!ADH:!MD5".
1856:
1857: *) Исправление: модуль ngx_http_autoindex_module не показывал последний
1858: слэш для линков на каталоги; ошибка появилась в 0.7.15.
1859:
1860: *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
1861: --error-log-path; ошибка появилась в 0.7.53.
1862:
1863: *) Исправление: nginx не считал запятую разделителем в строке
1864: "Cache-Control" в заголовке ответа бэкенда.
1865:
1866: *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
1867: или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
1868: не имел достаточно прав для работы с каталогами верхнего уровня.
1869:
1870: *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
1871: FastCGI-сервера не скрывались при кэшировании, если не использовались
1872: директивы fastcgi_hide_header с любыми параметрами.
1873:
1874: *) Исправление: nginx неверно считал размер кэша на диске.
1875:
1876:
1877: Изменения в nginx 0.8.19 06.10.2009
1878:
1879: *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
1880:
1881: *) Изменение: теперь по умолчанию используются следующие шифры SSL:
1882: "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
1883:
1884: *) Исправление: директива limit_req не работала; ошибка появилась в
1885: 0.8.18.
1886:
1887:
1888: Изменения в nginx 0.8.18 06.10.2009
1889:
1890: *) Добавление: директива read_ahead.
1891:
1892: *) Добавление: теперь можно использовать несколько директив
1893: perl_modules.
1894:
1895: *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
1896:
1897: *) Исправление: теперь директива limit_req соответствует алгоритму leaky
1898: bucket.
1899: Спасибо Максиму Дунину.
1900:
1901: *) Исправление: nginx не работал на Linux/sparc.
1902: Спасибо Marcus Ramberg.
1903:
1904: *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
1905: ответе на запрос MKCOL.
1906: Спасибо Xie Zhenye.
1907:
1908: *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
1909: появилась в 0.8.11.
1910:
1911: *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
1912:
1913:
1914: Изменения в nginx 0.8.17 28.09.2009
1915:
1916: *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
1917: в заголовке запроса.
1918:
1919: *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
1920:
1921: *) Добавление: переменная $ssl_session_id.
1922:
1923: *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
1924:
1925:
1926: Изменения в nginx 0.8.16 22.09.2009
1927:
1928: *) Добавление: директива image_filter_transparency.
1929:
1930: *) Исправление: директива "addition_types" была неверно названа
1931: "addtion_types".
1932:
1933: *) Исправление: порчи кэша resolver'а.
1934: Спасибо Matthew Dempsky.
1935:
1936: *) Исправление: утечки памяти в resolver'е.
1937: Спасибо Matthew Dempsky.
1938:
1939: *) Исправление: неверная строка запроса в переменной $request
1940: записывалась в access_log только при использовании error_log на
1941: уровне info или debug.
1942:
1943: *) Исправление: в поддержке альфа-канала PNG в модуле
1944: ngx_http_image_filter_module.
1945:
1946: *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
1947: заголовок ответа, если обе директивы gzip_static и gzip_vary были
1948: включены.
1949:
1950: *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
1951: nginx/Windows.
1952:
1953: *) Исправление: ошибки при использовании post_action; ошибка появилась в
1954: 0.8.11.
1955: Спасибо Игорю Артемьеву.
1956:
1957:
1958: Изменения в nginx 0.8.15 14.09.2009
1959:
1960: *) Безопасность: при обработке специально созданного запроса в рабочем
1961: процессе мог произойти segmentation fault.
1962: Спасибо Chris Ries.
1963:
1964: *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
1965: .domain-some.tld, то имя .sub.domain.tld попадало под маску
1966: .domain.tld.
1967:
1968: *) Исправление: в поддержке прозрачности в модуле
1969: ngx_http_image_filter_module.
1970:
1971: *) Исправление: в файловом AIO.
1972:
1973: *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
1974: появилась в 0.8.11.
1975:
1976: *) Исправление: ошибки при использовании встроенного перла; ошибка
1977: появилась в 0.8.11.
1978:
1979:
1980: Изменения в nginx 0.8.14 07.09.2009
1981:
1982: *) Исправление: устаревший закэшированный запрос мог залипнуть в
1983: состоянии "UPDATING".
1984:
1985: *) Исправление: при использовании error_log на уровне info или debug в
1986: рабочем процессе мог произойти segmentation fault.
1987: Спасибо Сергею Боченкову.
1988:
1989: *) Исправление: ошибки при использовании встроенного перла; ошибка
1990: появилась в 0.8.11.
1991:
1992: *) Исправление: директива error_page не перенаправляла ошибку 413;
1993: ошибка появилась в 0.6.10.
1994:
1995:
1996: Изменения в nginx 0.8.13 31.08.2009
1997:
1998: *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
1999:
2000: *) Исправление: nginx не собирался без параметра --with-file-aio на
2001: FreeBSD; ошибка появилась в 0.8.12.
2002:
2003:
2004: Изменения в nginx 0.8.12 31.08.2009
2005:
2006: *) Добавление: параметр sendfile в директиве aio во FreeBSD.
2007:
2008: *) Исправление: ошибки при использовании try_files; ошибка появилась в
2009: 0.8.11.
2010:
2011: *) Исправление: ошибки при использовании memcached; ошибка появилась в
2012: 0.8.11.
2013:
2014:
2015: Изменения в nginx 0.8.11 28.08.2009
2016:
2017: *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
2018: для MSIE 6.0 SV1.
2019:
2020: *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
2021:
2022: *) Добавление: директива directio_alignment.
2023:
2024:
2025: Изменения в nginx 0.8.10 24.08.2009
2026:
2027: *) Исправление: утечек памяти при использовании базы GeoIP City.
2028:
2029: *) Исправление: ошибки при копировании временных файлов в постоянное
2030: место хранения; ошибка появилась в 0.8.9.
2031:
2032:
2033: Изменения в nginx 0.8.9 17.08.2009
2034:
2035: *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
2036: процесс; это должно улучшить обработку больших кэшей.
2037:
2038: *) Добавление: теперь временные файлы и постоянное место хранения могут
2039: располагаться на разных файловых системах.
2040:
2041:
2042: Изменения в nginx 0.8.8 10.08.2009
2043:
2044: *) Исправление: в обработке заголовков ответа, разделённых в
2045: FastCGI-записях.
2046:
2047: *) Исправление: если запрос обрабатывался в двух проксированных или
2048: FastCGI location'ах и в первом из них использовалось кэширование, то
2049: в рабочем процессе происходил segmentation fault; ошибка появилась в
2050: 0.8.7.
2051:
2052:
2053: Изменения в nginx 0.8.7 27.07.2009
2054:
2055: *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
2056:
2057: *) Изменение: параметр ask директивы ssl_verify_client изменён на
2058: параметр optional и теперь он проверяет клиентский сертификат, если
2059: он был предложен.
2060: Спасибо Brice Figureau.
2061:
2062: *) Добавление: переменная $ssl_client_verify.
2063: Спасибо Brice Figureau.
2064:
2065: *) Добавление: директива ssl_crl.
2066: Спасибо Brice Figureau.
2067:
2068: *) Добавление: параметр proxy директивы geo.
2069:
2070: *) Добавление: директива image_filter поддерживает переменные для
2071: задания размеров.
2072:
2073: *) Исправление: использование переменной $ssl_client_cert портило
2074: память; ошибка появилась в 0.7.7.
2075: Спасибо Сергею Журавлёву.
2076:
2077: *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
2078: передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
2079: "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
2080: Спасибо Максиму Дунину.
2081:
2082: *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
2083: заголовке ответа бэкенда; ошибка появилась в 0.7.44.
2084: Спасибо Максиму Дунину.
2085:
2086: *) Исправление: ошибки "[alert] zero size buf" при получении пустых
2087: ответы в подзапросах; ошибка появилась в 0.8.5.
2088:
2089:
2090: Изменения в nginx 0.8.6 20.07.2009
2091:
2092: *) Добавление: модуль ngx_http_geoip_module.
2093:
2094: *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
2095: document" для правильного документа.
2096: Спасибо Kuramoto Eiji.
2097:
2098: *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
2099: location'ов, заданных регулярным выражением, теперь всегда делается
2100: сравнение без учёта регистра символов.
2101:
2102: *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
2103: Спасибо Hugo Leisink.
2104:
2105: *) Исправление: имя файла указанного в --conf-path игнорировалось при
2106: установке; ошибка появилась в 0.6.6.
2107: Спасибо Максиму Дунину.
2108:
2109:
2110: Изменения в nginx 0.8.5 13.07.2009
2111:
2112: *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
2113:
2114: *) Исправление: при использовании HTTP Basic-аутентификации на Windows
2115: для неверных имени/пароля возвращалась 500-ая ошибка.
2116:
2117: *) Исправление: ответы модуля ngx_http_perl_module не работали в
2118: подзапросах.
2119:
2120: *) Исправление: в модуле ngx_http_limit_req_module.
2121: Спасибо Максиму Дунину.
2122:
2123:
2124: Изменения в nginx 0.8.4 22.06.2009
2125:
2126: *) Исправление: nginx не собирался с параметром --without-http-cache;
2127: ошибка появилась в 0.8.3.
2128:
2129:
2130: Изменения в nginx 0.8.3 19.06.2009
2131:
2132: *) Добавление: переменная $upstream_cache_status.
2133:
2134: *) Исправление: nginx не собирался на MacOSX 10.6.
2135:
2136: *) Исправление: nginx не собирался с параметром --without-http-cache;
2137: ошибка появилась в 0.8.2.
2138:
2139: *) Исправление: если использовался перехват 401 ошибки от бэкенда и
2140: бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
2141: в рабочем процессе происходил segmentation fault.
2142: Спасибо Евгению Мычло.
2143:
2144:
2145: Изменения в nginx 0.8.2 15.06.2009
2146:
2147: *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
2148: на старте.
2149:
2150: *) Исправление: open_file_cache мог кэшировать открытые файлы очень
2151: долго; ошибка появилась в 0.7.4.
2152:
2153:
2154: Изменения в nginx 0.8.1 08.06.2009
2155:
2156: *) Добавление: параметр updating в директивах proxy_cache_use_stale и
2157: fastcgi_cache_use_stale.
2158:
2159: *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
2160: заголовке запроса клиента передавались бэкенду при кэшировании, если
2161: не использовалась директива proxy_set_header с любыми параметрами.
2162:
2163: *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
2164: не скрывались при кэшировании, если не использовались директивы
2165: proxy_hide_header/fastcgi_hide_header с любыми параметрами.
2166:
2167: *) Исправление: модуль ngx_http_image_filter_module не понимал формат
2168: GIF87a.
2169: Спасибо Денису Ильиных.
2170:
2171: *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
2172: появилась в 0.7.56.
2173:
2174:
2175: Изменения в nginx 0.8.0 02.06.2009
2176:
2177: *) Добавление: директива keepalive_requests.
2178:
2179: *) Добавление: директива limit_rate_after.
2180: Спасибо Ivan Debnar.
2181:
2182: *) Исправление: XSLT-фильтр не работал в подзапросах.
2183:
2184: *) Исправление: обработке относительных путей в nginx/Windows.
2185:
2186: *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
2187: fastcgi_cache в nginx/Windows.
2188:
2189: *) Исправление: в обработке ошибок выделения памяти.
2190: Спасибо Максиму Дунину и Кириллу Коринскому.
2191:
2192:
2193: Изменения в nginx 0.7.59 25.05.2009
2194:
2195: *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
2196:
2197: *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
2198: Спасибо Максиму Дунину.
2199:
2200: *) Исправление: при использовании переменной $request_body в рабочем
2201: процессе происходил segmentation fault, если в запросе не было тела;
2202: ошибка появилась в 0.7.58.
2203:
2204: *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
2205: ошибка появилась в 0.7.56.
2206:
2207: *) Исправление: ответы модуля ngx_http_xslt_filter_module не
2208: обрабатывались SSI-, charset- и gzip-фильтрами.
2209:
2210: *) Исправление: директива charset не ставила кодировку для ответов
2211: модуля ngx_http_gzip_static_module.
2212:
2213:
2214: Изменения в nginx 0.7.58 18.05.2009
2215:
2216: *) Добавление: директива listen почтового прокси-сервера поддерживает
2217: IPv6.
2218:
2219: *) Добавление: директива image_filter_jpeg_quality.
2220:
2221: *) Добавление: директива client_body_in_single_buffer.
2222:
2223: *) Добавление: переменная $request_body.
2224:
2225: *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
2226: файлов, содержащих символ ":".
2227:
2228: *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
2229: 0.7.53.
2230: Спасибо Денису Латыпову.
2231:
2232:
2233: Изменения в nginx 0.7.57 12.05.2009
2234:
2235: *) Исправление: при перенаправлении ошибок модуля
2236: ngx_http_image_filter_module в именованный location в рабочем
2237: процессе происходил floating-point fault; ошибка появилась в 0.7.56.
2238:
2239:
2240: Изменения в nginx 0.7.56 11.05.2009
2241:
2242: *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
2243: HTTP.
2244:
2245: *) Исправление: в модуле ngx_http_image_filter_module.
2246:
2247:
2248: Изменения в nginx 0.7.55 06.05.2009
2249:
2250: *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
2251: fastcgi_cache_use_stale не работали.
2252:
2253: *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
2254: заголовка.
2255:
2256: *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
2257: nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
2258:
2259: *) Исправление: при использовании директивы debug_connection в рабочем
2260: процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
2261:
2262: *) Исправление: в сборке модуля ngx_http_image_filter_module.
2263:
2264: *) Исправление: файлы больше 2G не передавались с использованием
2265: $r->sendfile.
2266: Спасибо Максиму Дунину.
2267:
2268:
2269: Изменения в nginx 0.7.54 01.05.2009
2270:
2271: *) Добавление: модуль ngx_http_image_filter_module.
2272:
2273: *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
2274:
2275: *) Исправление: при использовании переменных "open_file_cache_errors on"
2276: в рабочем процессе мог произойти segmentation fault; ошибка появилась
2277: в 0.7.53.
2278:
2279: *) Исправление: директива "port_in_redirect off" не работала; ошибка
2280: появилась в 0.7.39.
2281:
2282: *) Исправление: улучшение обработки ошибок метода select.
2283:
2284: *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
2285:
2286: *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
2287: ошибка появилась в 0.7.53.
2288:
2289:
2290: Изменения в nginx 0.7.53 27.04.2009
2291:
2292: *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
2293: самого начала работы.
2294:
2295: *) Добавление: теперь ошибки и предупреждения при старте записываются в
2296: error_log и выводятся на stderr.
2297:
2298: *) Добавление: при сборке с пустым параметром --prefix= nginx использует
2299: как префикс каталог, в котором он был запущен.
2300:
2301: *) Добавление: ключ -p.
2302:
2303: *) Добавление: ключ -s на Unix-платформах.
2304:
2305: *) Добавление: ключи -? и -h.
2306: Спасибо Jerome Loyet.
2307:
2308: *) Добавление: теперь ключи можно задавать в сжатой форме.
2309:
2310: *) Исправление: nginx/Windows не работал, если файл конфигурации был
2311: задан ключом -c.
2312:
2313: *) Исправление: при использовании директив proxy_store, fastcgi_store,
2314: proxy_cache или fastcgi_cache временные файлы могли не удаляться.
2315: Спасибо Максиму Дунину.
2316:
2317: *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
2318: почтового прокси-сервера передавалось неверное значение; ошибка
2319: появилась в 0.7.34.
2320: Спасибо Simon Lecaille.
2321:
2322: *) Исправление: при логгировании на Linux не писались текстовые описания
2323: системных ошибок; ошибка появилась в 0.7.45.
2324:
2325: *) Исправление: директива fastcgi_cache_min_uses не работала.
2326: Спасибо Андрею Воробьёву.
2327:
2328:
2329: Изменения в nginx 0.7.52 20.04.2009
2330:
2331: *) Добавление: первая бинарная версия под Windows.
2332:
2333: *) Исправление: корректная обработка метода HEAD при кэшировании.
2334:
2335: *) Исправление: корректная обработка строк "If-Modified-Since",
2336: "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
2337:
2338: *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
2339: заголовке ответа для закэшированных ответов.
2340:
2341: *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
2342: perl поддерживал потоки, то при выходе основного процесса могла
2343: выдаваться ошибка "panic: MUTEX_LOCK".
2344:
2345: *) Исправление: nginx не собирался с параметром --without-http-cache;
2346: ошибка появилась в 0.7.48.
2347:
2348: *) Исправление: nginx не собирался на платформах, отличных от i386,
2349: amd64, sparc и ppc; ошибка появилась в 0.7.42.
2350:
2351:
2352: Изменения в nginx 0.7.51 12.04.2009
2353:
2354: *) Добавление: директива try_files поддерживает код ответа в последнем
2355: параметре.
2356:
2357: *) Добавление: теперь в директиве return можно использовать любой код
2358: ответа.
2359:
2360: *) Исправление: директива error_page делала внешний редирект без строки
2361: запроса; ошибка появилась в 0.7.44.
2362:
2363: *) Исправление: если сервера слушали на нескольких явно описанных
2364: адресах, то виртуальные сервера могли не работать; ошибка появилась в
2365: 0.7.39.
2366:
2367:
2368: Изменения в nginx 0.7.50 06.04.2009
2369:
2370: *) Исправление: переменные $arg_... не работали; ошибка появилась в
2371: 0.7.49.
2372:
2373:
2374: Изменения в nginx 0.7.49 06.04.2009
2375:
2376: *) Исправление: при использовании переменных $arg_... в рабочем процессе
2377: мог произойти segmentation fault; ошибка появилась в 0.7.48.
2378:
2379:
2380: Изменения в nginx 0.7.48 06.04.2009
2381:
2382: *) Добавление: директива proxy_cache_key.
2383:
2384: *) Исправление: теперь nginx учитывает при кэшировании строки
2385: "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
2386: бэкенда.
2387:
2388: *) Исправление: теперь nginx кэширует только ответы на запросы GET.
2389:
2390: *) Исправление: директива fastcgi_cache_key не наследовалась.
2391:
2392: *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
2393: Спасибо Максиму Дунину.
2394:
2395: *) Исправление: nginx не собирался с библиотекой uclibc.
2396: Спасибо Timothy Redaelli.
2397:
2398: *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
2399: в 0.7.46.
2400:
2401:
2402: Изменения в nginx 0.7.47 01.04.2009
2403:
2404: *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
2405: ошибка появилась в 0.7.46.
2406:
2407: *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
2408:
2409: *) Исправление: если использовался параметр max_size, то cache manager
2410: мог удалить весь кэш; ошибка появилась в 0.7.46.
2411:
2412: *) Изменение: в рабочем процессе мог произойти segmentation fault, если
2413: директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
2414: fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
2415: в 0.7.46.
2416:
2417: *) Исправление: в рабочем процессе мог произойти segmentation fault при
2418: перенаправлении запроса проксированному или FastCGI-серверу с помощью
2419: error_page или try_files; ошибка появилась в 0.7.44.
2420:
2421:
2422: Изменения в nginx 0.7.46 30.03.2009
2423:
2424: *) Исправление: архив предыдущего релиза был неверным.
2425:
2426:
2427: Изменения в nginx 0.7.45 30.03.2009
2428:
2429: *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
2430: задавать на разных уровнях.
2431:
2432: *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
2433:
2434: *) Добавление: параметр max_size в директиве proxy_cache_path.
2435:
2436: *) Добавление: предварительная поддержка кэширования в модуле
2437: ngx_http_fastcgi_module.
2438:
2439: *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
2440: указываются названия директивы и зоны.
2441:
2442: *) Исправление: директива "add_header last-modified ''" не удаляла в
2443: заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
2444:
2445: *) Исправление: в директиве auth_basic_user_file не работал
2446: относительный путь, заданный строкой без переменных; ошибка появилась
2447: в 0.7.44.
2448: Спасибо Jerome Loyet.
2449:
2450: *) Исправление: в директиве alias, заданной переменными без ссылок на
2451: выделения в регулярных выражениях; ошибка появилась в 0.7.42.
2452:
2453:
2454: Изменения в nginx 0.7.44 23.03.2009
2455:
2456: *) Добавление: предварительная поддержка кэширования в модуле
2457: ngx_http_proxy_module.
2458:
2459: *) Добавление: параметр --with-pcre в configure.
2460:
2461: *) Добавление: теперь директива try_files может быть использована на
2462: уровне server.
2463:
2464: *) Исправление: директива try_files неправильно обрабатывала строку
2465: запроса в последнем параметре.
2466:
2467: *) Исправление: директива try_files могла неверно тестировать каталоги.
2468:
2469: *) Исправление: если для пары адрес:порт описан только один сервер, то
2470: выделения в регулярных выражениях в директиве server_name не
2471: работали.
2472:
2473:
2474: Изменения в nginx 0.7.43 18.03.2009
2475:
2476: *) Исправление: запрос обрабатывался неверно, если директива root
2477: использовала переменные; ошибка появилась в 0.7.42.
2478:
2479: *) Исправление: если сервер слушал на адресах типа "*", то значение
2480: переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
2481:
2482:
2483: Изменения в nginx 0.7.42 16.03.2009
2484:
2485: *) Изменение: ошибка "Invalid argument", возвращаемая
2486: setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
2487:
2488: *) Изменение: при отсутствии файла, указанного в директиве
2489: auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
2490:
2491: *) Добавление: директива auth_basic_user_file поддерживает переменные.
2492: Спасибо Кириллу Коринскому.
2493:
2494: *) Добавление: директива listen поддерживает параметр ipv6only.
2495: Спасибо Zhang Hua.
2496:
2497: *) Исправление: в директиве alias со ссылками на выделения в регулярных
2498: выражениях; ошибка появилась в 0.7.40.
2499:
2500: *) Исправление: совместимость с Tru64 UNIX.
2501: Спасибо Dustin Marquess.
2502:
2503: *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
2504: в 0.7.41.
2505:
2506:
2507: Изменения в nginx 0.7.41 11.03.2009
2508:
2509: *) Исправление: в рабочем процессе мог произойти segmentation fault,
2510: если в server_name или location были выделения в регулярных
2511: выражениях; ошибка появилась в 0.7.40.
2512: Спасибо Владимиру Сопоту.
2513:
2514:
2515: Изменения в nginx 0.7.40 09.03.2009
2516:
2517: *) Добавление: директива location поддерживает выделения в регулярных
2518: выражениях.
2519:
2520: *) Добавление: директиву alias с ссылками на выделения в регулярных
2521: выражениях можно использовать внутри location'а, заданного регулярным
2522: выражением с выделениями.
2523:
2524: *) Добавление: директива server_name поддерживает выделения в регулярных
2525: выражениях.
2526:
2527: *) Изменение: модуль ngx_http_autoindex_module не показывал последний
2528: слэш для каталогов на файловой системе XFS; ошибка появилась в
2529: 0.7.15.
2530: Спасибо Дмитрию Кузьменко.
2531:
2532:
2533: Изменения в nginx 0.7.39 02.03.2009
2534:
2535: *) Исправление: при включённом сжатии большие ответы с использованием
2536: SSI могли зависать; ошибка появилась в 0.7.28.
2537: Спасибо Артёму Бохану.
2538:
2539: *) Исправление: при использовании коротких статических вариантов в
2540: директиве try_files в рабочем процессе мог произойти segmentation
2541: fault.
2542:
2543:
2544: Изменения в nginx 0.7.38 23.02.2009
2545:
2546: *) Добавление: логгирование ошибок аутентификации.
2547:
2548: *) Исправление: имя/пароль, заданные в auth_basic_user_file,
2549: игнорировались после нечётного числа пустых строк.
2550: Спасибо Александру Загребину.
2551:
2552: *) Исправление: при использовании длинного пути в unix domain сокете в
2553: главном процессе происходил segmentation fault; ошибка появилась в
2554: 0.7.36.
2555:
2556:
2557: Изменения в nginx 0.7.37 21.02.2009
2558:
2559: *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
2560: появилась в 0.7.36.
2561:
2562:
2563: Изменения в nginx 0.7.36 21.02.2009
2564:
2565: *) Добавление: предварительная поддержка IPv6; директива listen модуля
2566: HTTP поддерживает IPv6.
2567:
2568: *) Исправление: переменная $ancient_browser не работала для браузеров,
2569: заданных директивами modern_browser.
2570:
2571:
2572: Изменения в nginx 0.7.35 16.02.2009
2573:
2574: *) Исправление: директива ssl_engine не использовала SSL-акселератор для
2575: асимметричных шифров.
2576: Спасибо Marcin Gozdalik.
2577:
2578: *) Исправление: директива try_files выставляла MIME-type, исходя из
2579: расширения первоначального запроса.
2580:
2581: *) Исправление: в директивах server_name, valid_referers и map
2582: неправильно обрабатывались имена вида "*domain.tld", если
2583: использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
2584: ошибка появилась в 0.7.9.
2585:
2586:
2587: Изменения в nginx 0.7.34 10.02.2009
2588:
2589: *) Добавление: параметр off в директиве if_modified_since.
2590:
2591: *) Добавление: теперь после команды XCLIENT nginx посылает команду
2592: HELO/EHLO.
2593: Спасибо Максиму Дунину.
2594:
2595: *) Добавление: поддержка Microsoft-специфичного режима
2596: "AUTH LOGIN with User Name" в почтовом прокси-сервере.
2597: Спасибо Максиму Дунину.
2598:
2599: *) Исправление: в директиве rewrite, возвращающей редирект, старые
2600: аргументы присоединялись к новым через символ "?" вместо "&";
2601: ошибка появилась в 0.1.18.
2602: Спасибо Максиму Дунину.
2603:
2604: *) Исправление: nginx не собирался на AIX.
2605:
2606:
2607: Изменения в nginx 0.7.33 02.02.2009
2608:
2609: *) Исправление: если на запрос с телом возвращался редирект, то ответ
2610: мог быть двойным при использовании методов epoll или rtsig.
2611: Спасибо Eden Li.
2612:
2613: *) Исправление: для некоторых типов редиректов в переменной
2614: $sent_http_location было пустое значение.
2615:
2616: *) Исправление: при использовании директивы resolver в SMTP
2617: прокси-сервере в рабочем процессе мог произойти segmentation fault.
2618:
2619:
2620: Изменения в nginx 0.7.32 26.01.2009
2621:
2622: *) Добавление: теперь в директиве try_files можно явно указать проверку
2623: каталога.
2624:
2625: *) Исправление: fastcgi_store не всегда сохранял файлы.
2626:
2627: *) Исправление: в гео-диапазонах.
2628:
2629: *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
2630: если nginx был собран без отладки.
2631: Спасибо Андрею Квасову.
2632:
2633:
2634: Изменения в nginx 0.7.31 19.01.2009
2635:
2636: *) Изменение: теперь директива try_files проверяет только файлы,
2637: игнорируя каталоги.
2638:
2639: *) Добавление: директива fastcgi_split_path_info.
2640:
2641: *) Исправления в поддержке строки "Expect" в заголовке запроса.
2642:
2643: *) Исправления в гео-диапазонах.
2644:
2645: *) Исправление: при отсутствии ответа ngx_http_memcached_module
2646: возвращал в теле ответа строку "END" вместо 404-ой страницы по
2647: умолчанию; ошибка появилась в 0.7.18.
2648: Спасибо Максиму Дунину.
2649:
2650: *) Исправление: при проксировании SMPT nginx выдавал сообщение
2651: "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
2652: Спасибо Максиму Дунину.
2653:
2654:
2655: Изменения в nginx 0.7.30 24.12.2008
2656:
2657: *) Исправление: в рабочем процессе происходил segmentation fault, если в
2658: директивах fastcgi_pass или proxy_pass использовались переменные и
2659: имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
2660:
2661:
2662: Изменения в nginx 0.7.29 24.12.2008
2663:
2664: *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
2665: переменные при использовании unix domain сокетов.
2666:
2667: *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
2668:
2669: *) Исправление: ответ "100 Continue" выдавался для запросов версии
2670: HTTP/1.0;
2671: Спасибо Максиму Дунину.
2672:
2673: *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
2674: под Cygwin.
2675:
2676:
2677: Изменения в nginx 0.7.28 22.12.2008
2678:
2679: *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
2680:
2681: *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
2682: с 4 4k/8k на 32 4k или 16 8k.
2683:
2684:
2685: Изменения в nginx 0.7.27 15.12.2008
2686:
2687: *) Добавление: директива try_files.
2688:
2689: *) Добавление: директива fastcgi_pass поддерживает переменные.
2690:
2691: *) Добавление: теперь директива geo может брать адрес из переменной.
2692: Спасибо Андрею Нигматулину.
2693:
2694: *) Добавление: теперь модификатор location'а можно указывать без пробела
2695: перед названием.
2696:
2697: *) Добавление: переменная $upstream_response_length.
2698:
2699: *) Исправление: теперь директива add_header не добавляет пустое
2700: значение.
2701:
2702: *) Исправление: при запросе файла нулевой длины nginx закрывал
2703: соединение, ничего не передав; ошибка появилась в 0.7.25.
2704:
2705: *) Исправление: метод MOVE не мог перемещать файл в несуществующий
2706: каталог.
2707:
2708: *) Исправление: если в сервере не был описан ни один именованный
2709: location, но такой location использовался в директиве error_page, то
2710: в рабочем процессе происходил segmentation fault.
2711: Спасибо Сергею Боченкову.
2712:
2713:
2714: Изменения в nginx 0.7.26 08.12.2008
2715:
2716: *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
2717:
2718:
2719: Изменения в nginx 0.7.25 08.12.2008
2720:
2721: *) Изменение: в обработке подзапросов.
2722:
2723: *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
2724: заголовке запроса.
2725:
2726: *) Исправление: теперь директивы limit_req и limit_conn указывают
2727: причину запрета запроса.
2728:
2729: *) Исправление: в параметре delete директивы geo.
2730:
2731:
2732: Изменения в nginx 0.7.24 01.12.2008
2733:
2734: *) Добавление: директива if_modified_since.
2735:
2736: *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
2737: ответом сервер передавал много сообщений в stderr.
2738:
2739: *) Исправление: переменные "$cookie_..." не работали в SSI and в
2740: перловом модуле.
2741:
2742:
2743: Изменения в nginx 0.7.23 27.11.2008
2744:
2745: *) Добавление: параметры delete и ranges в директиве geo.
2746:
2747: *) Добавление: ускорение загрузки geo-базы с большим числом значений.
2748:
2749: *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
2750:
2751:
2752: Изменения в nginx 0.7.22 20.11.2008
2753:
2754: *) Добавление: параметр none в директиве smtp_auth.
2755: Спасибо Максиму Дунину.
2756:
2757: *) Добавление: переменные "$cookie_...".
2758:
2759: *) Исправление: директива directio не работала с файловой системой XFS.
2760:
2761: *) Исправление: resolver не понимал большие DNS-ответы.
2762: Спасибо Zyb.
2763:
2764:
2765: Изменения в nginx 0.7.21 11.11.2008
2766:
2767: *) Изменения в модуле ngx_http_limit_req_module.
2768:
2769: *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
2770: Спасибо Денису Латыпову.
2771:
2772: *) Изменение: совместимость с glibc 2.3.
2773: Спасибо Eric Benson и Максиму Дунину.
2774:
2775: *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
2776: ошибка появилась в 0.7.6.
2777:
2778:
2779: Изменения в nginx 0.7.20 10.11.2008
2780:
2781: *) Изменения в модуле ngx_http_gzip_filter_module.
2782:
2783: *) Добавление: модуль ngx_http_limit_req_module.
2784:
2785: *) Исправление: на платформах sparc и ppc рабочие процессы могли
2786: выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
2787: Спасибо Максиму Дунину.
2788:
2789: *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
2790: работали; ошибка появилась в 0.7.12.
2791:
2792: *) Исправление: при использовании HTTPS запросы могли завершаться с
2793: ошибкой "bad write retry".
2794:
2795: *) Исправление: модуль ngx_http_secure_link_module не работал внутри
2796: location'ов с именами меньше 3 символов.
2797:
2798: *) Исправление: переменная $server_addr могла не иметь значения.
2799:
2800:
2801: Изменения в nginx 0.7.19 13.10.2008
2802:
2803: *) Исправление: обновление номера версии.
2804:
2805:
2806: Изменения в nginx 0.7.18 13.10.2008
2807:
2808: *) Изменение: директива underscores_in_headers; теперь nginx по
2809: умолчанию не разрешает подчёркивания в именах строк в заголовке
2810: запроса клиента.
2811:
2812: *) Добавление: модуль ngx_http_secure_link_module.
2813:
2814: *) Добавление: директива real_ip_header поддерживает любой заголовок.
2815:
2816: *) Добавление: директива log_subrequest.
2817:
2818: *) Добавление: переменная $realpath_root.
2819:
2820: *) Добавление: параметры http_502 и http_504 в директиве
2821: proxy_next_upstream.
2822:
2823: *) Исправление: параметр http_503 в директивах proxy_next_upstream или
2824: fastcgi_next_upstream не работал.
2825:
2826: *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
2827: для запросов HEAD.
2828:
2829: *) Исправление: теперь accept-лимит зависит от числа worker_connections.
2830:
2831:
2832: Изменения в nginx 0.7.17 15.09.2008
2833:
2834: *) Добавление: директива directio теперь работает на Linux.
2835:
2836: *) Добавление: переменная $pid.
2837:
2838: *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
2839: при использовании open_file_cache.
2840:
2841: *) Исправление: access_log с переменными не работал на Linux; ошибка
2842: появилась в 0.7.7.
2843:
2844: *) Исправление: модуль ngx_http_charset_module не понимал название
2845: кодировки в кавычках, полученное от бэкенда.
2846:
2847:
2848: Изменения в nginx 0.7.16 08.09.2008
2849:
2850: *) Исправление: nginx не собирался на 64-битных платформах; ошибка
2851: появилась в 0.7.15.
2852:
2853:
2854: Изменения в nginx 0.7.15 08.09.2008
2855:
2856: *) Добавление: модуль ngx_http_random_index_module.
2857:
2858: *) Добавление: директива directio оптимизирована для запросов файлов,
2859: начинающихся с произвольной позиции.
2860:
2861: *) Добавление: директива directio при необходимости запрещает
2862: использование sendfile.
2863:
2864: *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
2865: заголовке запроса клиента.
2866:
2867:
2868: Изменения в nginx 0.7.14 01.09.2008
2869:
2870: *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
2871: имеют значений по умолчанию.
2872:
2873: *) Добавление: директива listen поддерживает параметр ssl.
2874:
2875: *) Добавление: теперь при переконфигурации nginx учитывает изменение
2876: временной зоны на FreeBSD и Linux.
2877:
2878: *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
2879: прочие, не устанавливались, если сервером по умолчанию был не первый
2880: сервер.
2881:
2882: *) Исправление: при использовании в качестве аргументов части URI,
2883: выделенного с помощью директивы rewrite, эти аргументы не
2884: экранировались.
2885:
2886: *) Исправление: улучшения тестирования правильности конфигурационного
2887: файла.
2888:
2889:
2890: Изменения в nginx 0.7.13 26.08.2008
2891:
2892: *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
2893: в 0.7.12.
2894:
2895:
2896: Изменения в nginx 0.7.12 26.08.2008
2897:
2898: *) Добавление: директива server_name поддерживает пустое имя "".
2899:
2900: *) Добавление: директива gzip_disable поддерживает специальную маску
2901: msie6.
2902:
2903: *) Исправление: при использовании параметра max_fails=0 в upstream'е с
2904: несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
2905: Спасибо Максиму Дунину.
2906:
2907: *) Исправление: при перенаправлении запроса с помощью директивы
2908: error_page терялось тело запроса.
2909:
2910: *) Исправление: при перенаправлении запроса с методом HEAD с помощью
2911: директивы error_page возвращался полный ответ.
2912:
2913: *) Исправление: метод $r->header_in() не возвращал значения строк
2914: "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
2915: появилась в 0.7.0.
2916:
2917:
2918: Изменения в nginx 0.7.11 18.08.2008
2919:
2920: *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
2921: MIME-типом text/css.
2922:
2923: *) Добавление: теперь nginx возвращает код 405 для метода POST при
2924: запросе статического файла, только если файл существует.
2925:
2926: *) Добавление: директива proxy_ssl_session_reuse.
2927:
2928: *) Исправление: после перенаправления запроса с помощью
2929: "X-Accel-Redirect" директива proxy_pass без URI могла использовать
2930: оригинальный запрос.
2931:
2932: *) Исправление: если у каталога были права доступа только на поиск
2933: файлов и первый индексный файл отсутствовал, то nginx возвращал
2934: ошибку 500.
2935:
2936: *) Исправление: ошибок во вложенных location'ах; ошибки появились в
2937: 0.7.1.
2938:
2939:
2940: Изменения в nginx 0.7.10 13.08.2008
2941:
2942: *) Исправление: ошибок в директивах addition_types, charset_types,
2943: gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
2944: появились в 0.7.9.
2945:
2946: *) Исправление: рекурсивной error_page для 500 ошибки.
2947:
2948: *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
2949: не для всего keepalive соединения, а для каждого запроса по этому
2950: соединению.
2951:
2952:
2953: Изменения в nginx 0.7.9 12.08.2008
2954:
2955: *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
2956: следующими MIME-типами: text/html, text/css, text/xml, text/plain,
2957: text/vnd.wap.wml, application/x-javascript и application/rss+xml.
2958:
2959: *) Добавление: директивы charset_types и addition_types.
2960:
2961: *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
2962: используют хэш.
2963:
2964: *) Добавление: модуль ngx_cpp_test_module.
2965:
2966: *) Добавление: директива expires поддерживает суточное время.
2967:
2968: *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
2969: Спасибо Денису Латыпову и Максиму Дунину.
2970:
2971: *) Исправление: директива log_not_found не работала при поиске индексных
2972: файлов.
2973:
2974: *) Исправление: HTTPS-соединения могли зависнуть, если использовались
2975: методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
2976:
2977: *) Исправление: если в директивах server_name, valid_referers и map
2978: использовалась маска вида "*.domain.tld" и при этом полное имя вида
2979: "domain.tld" не было описано, то это имя попадало под маску; ошибка
2980: появилась в 0.3.18.
2981:
2982:
2983: Изменения в nginx 0.7.8 04.08.2008
2984:
2985: *) Добавление: модуль ngx_http_xslt_module.
2986:
2987: *) Добавление: переменные "$arg_...".
2988:
2989: *) Добавление: поддержка directio в Solaris.
2990: Спасибо Ivan Debnar.
2991:
2992: *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
2993: в заголовке ответа без строки статуса, то nginx использует код
2994: статуса 302.
2995: Спасибо Максиму Дунину.
2996:
2997:
2998: Изменения в nginx 0.7.7 30.07.2008
2999:
3000: *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
3001: временной.
3002:
3003: *) Изменение: значением переменной $ssl_client_cert теперь является
3004: сертификат, перед каждой строкой которого, кроме первой, вставляется
3005: символ табуляции; неизменённый сертификат доступен через переменную
3006: $ssl_client_raw_cert.
3007:
3008: *) Добавление: параметр ask директивы ssl_verify_client.
3009:
3010: *) Добавление: улучшения в обработке byte-range.
3011: Спасибо Максиму Дунину.
3012:
3013: *) Добавление: директива directio.
3014: Спасибо Jiang Hong.
3015:
3016: *) Добавление: поддержка sendfile() в MacOSX 10.5.
3017:
3018: *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
3019: делается сравнение без учёта регистра символов; однако, сравнение
3020: ограничено только однобайтными locale'ями.
3021:
3022: *) Исправление: соединения почтового прокси-сервера зависали в режиме
3023: SSL, если использовались методы select, poll или /dev/poll.
3024:
3025: *) Исправление: ошибки при использовании кодировки UTF-8 в
3026: ngx_http_autoindex_module.
3027:
3028:
3029: Изменения в nginx 0.7.6 07.07.2008
3030:
3031: *) Исправление: теперь при использовании переменных в директиве
3032: access_log всегда проверяется существовании root'а для запроса.
3033:
3034: *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
3035: значений в аргументах запроса.
3036:
3037:
3038: Изменения в nginx 0.7.5 01.07.2008
3039:
3040: *) Исправления в поддержке переменных в директиве access_log; ошибки
3041: появились в 0.7.4.
3042:
3043: *) Исправление: nginx не собирался с параметром
3044: --without-http_gzip_module; ошибка появилась в 0.7.3.
3045: Спасибо Кириллу Коринскому.
3046:
3047: *) Исправление: при совместном использовании sub_filter и SSI ответы
3048: могли передаваться неверно.
3049:
3050:
3051: Изменения в nginx 0.7.4 30.06.2008
3052:
3053: *) Добавление: директива access_log поддерживает переменные.
3054:
3055: *) Добавление: директива open_log_file_cache.
3056:
3057: *) Добавление: ключ -g.
3058:
3059: *) Добавление: поддержка строки "Expect" в заголовке запроса.
3060:
3061: *) Исправление: большие включения в SSI могли передавались не полностью.
3062:
3063:
3064: Изменения в nginx 0.7.3 23.06.2008
3065:
3066: *) Изменение: MIME-тип для расширения rss изменён на
3067: "application/rss+xml".
3068:
3069: *) Изменение: теперь директива "gzip_vary on" выдаёт строку
3070: "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
3071:
3072: *) Добавление: теперь при использовании протокола "https://" в директиве
3073: rewrite автоматически делается редирект.
3074:
3075: *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
3076: ошибка появилась в 0.6.9.
3077:
3078:
3079: Изменения в nginx 0.7.2 16.06.2008
3080:
3081: *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
3082:
3083: *) Добавление: директива ssl_dhparam.
3084:
3085: *) Добавление: переменная $ssl_client_cert.
3086: Спасибо Manlio Perillo.
3087:
3088: *) Исправление: после изменения URI с помощью директивы rewrite nginx не
3089: искал новый location; ошибка появилась в 0.7.1.
3090: Спасибо Максиму Дунину.
3091:
3092: *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
3093: в 0.7.1.
3094:
3095: *) Исправление: при редиректе запроса к каталогу с добавлением слэша
3096: nginx не добавлял аргументы из оригинального запроса.
3097:
3098:
3099: Изменения в nginx 0.7.1 26.05.2008
3100:
3101: *) Изменение: теперь поиск location'а делается с помощью дерева.
3102:
3103: *) Изменение: директива optimize_server_names упразднена в связи с
3104: появлением директивы server_name_in_redirect.
3105:
3106: *) Изменение: некоторые давно устаревшие директивы больше не
3107: поддерживаются.
3108:
3109: *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
3110: параметр используется по умолчанию.
3111: Спасибо Rob Mueller.
3112:
3113: *) Исправление: рабочие процессы могли не реагировать на сигналы
3114: переконфигурации и ротации логов.
3115:
3116: *) Исправление: nginx не собирался на последних Fedora 9 Linux.
3117: Спасибо Roxis.
3118:
3119:
3120: Изменения в nginx 0.7.0 19.05.2008
3121:
3122: *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
3123: записываются в виде \xXX.
3124: Спасибо Максиму Дунину.
3125:
3126: *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
3127: запроса.
3128:
3129: *) Добавление: директива expires поддерживает флаг modified.
3130:
3131: *) Добавление: переменные $uid_got и $uid_set можно использовать на
3132: любой стадии обработки запроса.
3133:
3134: *) Добавление: переменная $hostname.
3135: Спасибо Андрею Нигматулину.
3136:
3137: *) Добавление: поддержка DESTDIR.
3138: Спасибо Todd A. Fisher и Andras Voroskoi.
3139:
3140: *) Исправление: при использовании keepalive на Linux в рабочем процессе
3141: мог произойти segmentation fault.
3142:
3143:
3144: Изменения в nginx 0.6.31 12.05.2008
3145:
3146: *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
3147: заголовка ответ была в конце записи FastCGI; ошибка появилась в
3148: 0.6.2.
3149: Спасибо Сергею Серову.
3150:
3151: *) Исправление: при удалении файла и использовании директивы
3152: open_file_cache_errors off в рабочем процессе мог произойти
3153: segmentation fault.
3154:
3155:
3156: Изменения в nginx 0.6.30 29.04.2008
3157:
3158: *) Изменение: теперь, если маске, заданной в директиве include, не
3159: соответствует ни один файл, то nginx не выдаёт ошибку.
3160:
3161: *) Добавление: теперь время в директивах можно задавать без пробела,
3162: например, "1h50m".
3163:
3164: *) Исправление: утечек памяти, если директива ssl_verify_client имела
3165: значение on.
3166: Спасибо Chavelle Vincent.
3167:
3168: *) Исправление: директива sub_filter могла вставлять заменяемый текст в
3169: вывод.
3170:
3171: *) Исправление: директива error_page не воспринимала параметры в
3172: перенаправляемом URI.
3173:
3174: *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
3175: в бинарном режиме.
3176:
3177: *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
3178: 0.6.15.
3179:
3180:
3181: Изменения в nginx 0.6.29 18.03.2008
3182:
3183: *) Добавление: модуль ngx_google_perftools_module.
3184:
3185: *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
3186: платформах; ошибка появилась в 0.6.27.
3187:
3188:
3189: Изменения в nginx 0.6.28 13.03.2008
3190:
3191: *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
3192:
3193:
3194: Изменения в nginx 0.6.27 12.03.2008
3195:
3196: *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
3197: rtsig.
3198:
3199: *) Изменение: теперь при перенаправлении запроса в именованный location
3200: с помощью директивы error_page метод запроса не изменяется.
3201:
3202: *) Добавление: директивы resolver и resolver_timeout в SMTP
3203: прокси-сервере.
3204:
3205: *) Добавление: директива post_action поддерживает именованные
3206: location'ы.
3207:
3208: *) Исправление: при перенаправлении запроса из location'а c обработчиком
3209: proxy, FastCGI или memcached в именованный location со статическим
3210: обработчиком в рабочем процессе происходил segmentation fault.
3211:
3212: *) Исправление: браузеры не повторяли SSL handshake, если при первом
3213: handshake не оказалось правильного клиентского сертификата.
3214: Спасибо Александру Инюхину.
3215:
3216: *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
3217: error_page без изменения кода ошибки nginx пытался выделить очень
3218: много памяти.
3219:
3220: *) Исправление: утечки памяти в долгоживущих небуфферизированных
3221: соединениях.
3222:
3223: *) Исправление: утечки памяти в resolver'е.
3224:
3225: *) Исправление: при перенаправлении запроса из location'а c обработчиком
3226: proxy в другой location с обработчиком proxy в рабочем процессе
3227: происходил segmentation fault.
3228:
3229: *) Исправление: ошибки в кэшировании переменных $proxy_host и
3230: $proxy_port.
3231: Спасибо Сергею Боченкову.
3232:
3233: *) Исправление: директива proxy_pass с переменными использовала порт,
3234: описанной в другой директиве proxy_pass без переменных, но с таким же
3235: именем хоста.
3236: Спасибо Сергею Боченкову.
3237:
3238: *) Исправление: во время переконфигурации на некоторых 64-битном
3239: платформах в лог записывался alert "sendmsg() failed (9: Bad file
3240: descriptor)".
3241:
3242: *) Исправление: при повторном использовании в SSI пустого block'а в
3243: качестве заглушки в рабочем процессе происходил segmentation fault.
3244:
3245: *) Исправление: ошибки при копировании части URI, содержащего
3246: экранированные символы, в аргументы.
3247:
3248:
3249: Изменения в nginx 0.6.26 11.02.2008
3250:
3251: *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
3252: ответа.
3253:
3254: *) Исправление: при использовании большого значения в директиве expires
3255: в рабочем процессе происходил segmentation fault.
3256: Спасибо Joaquin Cuenca Abela.
3257:
3258: *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
3259: Спасибо Геннадию Махомеду.
3260:
3261: *) Исправление: в проксированных подзапросах и подзапросах к
3262: FastCGI-серверу вместо метода GET использовался оригинальный метод
3263: клиента.
3264:
3265: *) Исправление: утечки сокетов в режиме HTTPS при использовании
3266: отложенного accept'а.
3267: Спасибо Ben Maurer.
3268:
3269: *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
3270: (SSL: )"; ошибка появилась в 0.6.23.
3271:
3272: *) Исправление: при использовании HTTPS запросы могли завершаться с
3273: ошибкой "bad write retry"; ошибка появилась в 0.6.23.
3274:
3275:
3276: Изменения в nginx 0.6.25 08.01.2008
3277:
3278: *) Изменение: вместо специального параметра "*" в директиве server_name
3279: теперь используется директива server_name_in_redirect.
3280:
3281: *) Изменение: в качестве основного имени в директиве server_name теперь
3282: можно использовать имена с масками и регулярными выражениями.
3283:
3284: *) Изменение: директива satisfy_any заменена директивой satisfy.
3285:
3286: *) Изменение: после переконфигурации старые рабочие процесс могли сильно
3287: нагружать процессор при запуске под Linux OpenVZ.
3288:
3289: *) Добавление: директива min_delete_depth.
3290:
3291: *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
3292:
3293: *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
3294: модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
3295:
3296: *) Исправление: утечки сокетов в режиме HTTPS при использовании
3297: отложенного accept'а.
3298: Спасибо Ben Maurer.
3299:
3300: *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
3301: в 0.6.23.
3302:
3303:
3304: Изменения в nginx 0.6.24 27.12.2007
3305:
3306: *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
3307: segmentation fault; ошибка появилась в 0.6.23.
3308:
3309:
3310: Изменения в nginx 0.6.23 27.12.2007
3311:
3312: *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
3313: параметр используется по умолчанию.
3314:
3315: *) Изменение: директива open_file_cache_retest переименована в
3316: open_file_cache_valid.
3317:
3318: *) Добавление: директива open_file_cache_min_uses.
3319:
3320: *) Добавление: модуль ngx_http_gzip_static_module.
3321:
3322: *) Добавление: директива gzip_disable.
3323:
3324: *) Добавление: директиву memcached_pass можно использовать внутри блока
3325: if.
3326:
3327: *) Исправление: если внутри одного location'а использовались директивы
3328: "memcached_pass" и "if", то в рабочем процессе происходил
3329: segmentation fault.
3330:
3331: *) Исправление: если при использовании директивы satisfy_any on" были
3332: заданы директивы не всех модулей доступа, то заданные директивы не
3333: проверялись.
3334:
3335: *) Исправление: параметры, заданные регулярным выражением в директиве
3336: valid_referers, не наследовалась с предыдущего уровня.
3337:
3338: *) Исправление: директива post_action не работала, если запрос
3339: завершался с кодом 499.
3340:
3341: *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
3342: Спасибо Ben Maurer.
3343:
3344: *) Исправление: STARTTLS в режиме SMTP не работал.
3345: Спасибо Олегу Мотиенко.
3346:
3347: *) Исправление: при использовании HTTPS запросы могли завершаться с
3348: ошибкой "bad write retry"; ошибка появилась в 0.5.13.
3349:
3350:
3351: Изменения в nginx 0.6.22 19.12.2007
3352:
3353: *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
3354: значения, скопированные в память, выделенную perl'ом.
3355:
3356: *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
3357: использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
3358: время переконфигурации основной процесс аварийно выходил; ошибка
3359: появилась в 0.5.9.
3360: Спасибо Борису Жмурову.
3361:
3362: *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
3363: неверные результаты выделения в регулярных выражениях.
3364:
3365: *) Исправление: если метод $r->has_request_body() вызывался для запроса,
3366: у которого небольшое тело запроса было уже полностью получено, то в
3367: рабочем процессе происходил segmentation fault.
3368:
3369: *) Исправление: large_client_header_buffers не освобождались перед
3370: переходом в состояние keep-alive.
3371: Спасибо Олександру Штепе.
3372:
3373: *) Исправление: в переменной $upstream_addr не записывался последний
3374: адрес; ошибка появилась в 0.6.18.
3375:
3376: *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
3377: теперь она возвращает ошибку 502, которую можно направить на
3378: следующий сервер с помощью "fastcgi_next_upstream invalid_header".
3379:
3380: *) Исправление: при использовании директивы fastcgi_catch_stderr в
3381: основном процессе происходил segmentation fault; ошибка появилась в
3382: 0.6.10.
3383: Спасибо Manlio Perillo.
3384:
3385:
3386: Изменения в nginx 0.6.21 03.12.2007
3387:
3388: *) Изменение: если в значениях переменных директивы proxy_pass
3389: используются только IP-адреса, то указывать resolver не нужно.
3390:
3391: *) Исправление: при использовании директивы proxy_pass c URI-частью в
3392: рабочем процессе мог произойти segmentation fault; ошибка появилась в
3393: 0.6.19.
3394:
3395: *) Исправление: если resolver использовался на платформах, не
3396: поддерживающих метод kqueue, то nginx выдавал alert "name is out of
3397: response".
3398: Спасибо Андрею Нигматулину.
3399:
3400: *) Исправление: При использовании переменной $server_protocol в
3401: FastCGI-параметрах и запросе, длина которого была близка к значению
3402: директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
3403: the request record is too big".
3404:
3405: *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
3406: nginx возвращал обычный ответ.
3407:
3408:
3409: Изменения в nginx 0.6.20 28.11.2007
3410:
3411: *) Исправление: при использовании директивы proxy_pass c URI-частью в
3412: рабочем процессе мог произойти segmentation fault; ошибка появилась в
3413: 0.6.19.
3414:
3415:
3416: Изменения в nginx 0.6.19 27.11.2007
3417:
3418: *) Исправление: версия 0.6.18 не собиралась.
3419:
3420:
3421: Изменения в nginx 0.6.18 27.11.2007
3422:
3423: *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
3424: процесса добавляет микросекунды на время старта.
3425:
3426: *) Изменение: в error_log теперь записывается полная строка запроса
3427: вместо только URI.
3428:
3429: *) Добавление: директива proxy_pass поддерживает переменные.
3430:
3431: *) Добавление: директивы resolver и resolver_timeout.
3432:
3433: *) Добавление: теперь директива "add_header last-modified ''" удаляет в
3434: заголовке ответа строку "Last-Modified".
3435:
3436: *) Исправление: директива limit_rate не позволяла передавать на полной
3437: скорости, даже если был указан очень большой лимит.
3438:
3439:
3440: Изменения в nginx 0.6.17 15.11.2007
3441:
3442: *) Добавление: поддержка строки "If-Range" в заголовке запроса.
3443: Спасибо Александру Инюхину.
3444:
3445: *) Исправление: при использовании директивы msie_refresh повторно
3446: экранировались уже экранированные символы; ошибка появилась в 0.6.4.
3447:
3448: *) Исправление: директива autoindex не работала при использовании "alias
3449: /".
3450:
3451: *) Исправление: при использовании подзапросов в рабочем процессе мог
3452: произойти segmentation fault.
3453:
3454: *) Исправление: при использовании SSL и gzip большие ответы могли
3455: передаваться не полностью.
3456:
3457: *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
3458: то переменная $status была равна 0.
3459:
3460:
3461: Изменения в nginx 0.6.16 29.10.2007
3462:
3463: *) Изменение: теперь на Linux используется uname(2) вместо procfs.
3464: Спасибо Илье Новикову.
3465:
3466: *) Исправление: если в директиве error_page использовался символ "?", то
3467: он экранировался при проксировании запроса; ошибка появилась в
3468: 0.6.11.
3469:
3470: *) Исправление: совместимость с mget.
3471:
3472:
3473: Изменения в nginx 0.6.15 22.10.2007
3474:
3475: *) Добавление: совместимость с Cygwin.
3476: Спасибо Владимиру Кутакову.
3477:
3478: *) Добавление: директива merge_slashes.
3479:
3480: *) Добавление: директива gzip_vary.
3481:
3482: *) Добавление: директива server_tokens.
3483:
3484: *) Исправление: nginx не раскодировал URI в команде SSI include.
3485:
3486: *) Исправление: при использовании переменной в директивах charset или
3487: source_charset на старте или во время переконфигурации происходил
3488: segmentation fault,
3489:
3490: *) Исправление: nginx возвращал ошибку 400 на запросы вида
3491: "GET http://www.domain.com HTTP/1.0".
3492: Спасибо James Oakley.
3493:
3494: *) Исправление: после перенаправления запроса с телом запроса с помощью
3495: директивы error_page nginx пытался снова прочитать тело запроса;
3496: ошибка появилась в 0.6.7.
3497:
3498: *) Исправление: в рабочем процессе происходил segmentation fault, если у
3499: сервера, обрабатывающему запрос, не был явно определён server_name;
3500: ошибка появилась в 0.6.7.
3501:
3502:
3503: Изменения в nginx 0.6.14 15.10.2007
3504:
3505: *) Изменение: теперь по умолчанию команда SSI echo использует
3506: кодирование entity.
3507:
3508: *) Добавление: параметр encoding в команде SSI echo.
3509:
3510: *) Добавление: директиву access_log можно использовать внутри блока
3511: limit_except.
3512:
3513: *) Исправление: если все сервера апстрима оказывались недоступными, то
3514: до восстановления работоспособности у всех серверов вес становился
3515: равным одному; ошибка появилась в 0.6.6.
3516:
3517: *) Исправление: при использовании переменных $date_local и $date_gmt вне
3518: модуля ngx_http_ssi_filter_module в рабочем процессе происходил
3519: segmentation fault.
3520:
3521: *) Исправление: при использовании включённом отладочном логе в рабочем
3522: процессе мог произойти segmentation fault.
3523: Спасибо Андрею Нигматулину.
3524:
3525: *) Исправление: ngx_http_memcached_module не устанавливал
3526: $upstream_response_time.
3527: Спасибо Максиму Дунину.
3528:
3529: *) Исправление: рабочий процесс мог зациклиться при использовании
3530: memcached.
3531:
3532: *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
3533: строке "Connection" в заголовке запроса только, если они были в
3534: нижнем регистре; ошибка появилась в 0.6.11.
3535:
3536: *) Исправление: sub_filter не работал с пустой строкой замены.
3537:
3538: *) Исправление: в парсинге sub_filter.
3539:
3540:
3541: Изменения в nginx 0.6.13 24.09.2007
3542:
3543: *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
3544: использовался autoindex
3545: Спасибо Arkadiusz Patyk.
3546:
3547:
3548: Изменения в nginx 0.6.12 21.09.2007
3549:
3550: *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
3551: и smtp.
3552:
3553: *) Добавление: параметры конфигурации --without-mail_pop3_module,
3554: --without-mail_imap_module и --without-mail_smtp_module.
3555:
3556: *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
3557: ngx_mail_smtp_module.
3558:
3559: *) Исправление: wildcard в конце имени сервера не работали; ошибка
3560: появилась в 0.6.9.
3561:
3562: *) Исправление: при использовании разделяемой библиотеки PCRE,
3563: расположенной в нестандартном месте, nginx не запускался на Solaris.
3564:
3565: *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
3566: скрывали строки заголовка ответа с именем больше 32 символов.
3567: Спасибо Manlio Perillo.
3568:
3569:
3570: Изменения в nginx 0.6.11 11.09.2007
3571:
3572: *) Исправление: счётчик активных соединений всегда рос при использовании
3573: почтового прокси-сервера.
3574:
3575: *) Исправление: если бэкенд возвращал только заголовок ответа при
3576: небуферизированном проксировании, то nginx закрывал соединение с
3577: бэкендом по таймауту.
3578:
3579: *) Исправление: nginx не поддерживал несколько строк "Connection" в
3580: заголовке запроса.
3581:
3582: *) Исправление: если в сервере апстрима был задан max_fails, то после
3583: первой же неудачной попытки вес сервера навсегда становился равным
3584: одному; ошибка появилась в 0.6.6.
3585:
3586:
3587: Изменения в nginx 0.6.10 03.09.2007
3588:
3589: *) Добавление: директивы open_file_cache, open_file_cache_retest и
3590: open_file_cache_errors.
3591:
3592: *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
3593:
3594: *) Исправление: В строку заголовка ответа "Content-Type", указанную в
3595: методе $r->send_http_header(), не добавлялась кодировка, указанная в
3596: директиве charset.
3597:
3598: *) Исправление: при использовании метода /dev/poll в рабочем процессе
3599: мог произойти segmentation fault.
3600:
3601:
3602: Изменения в nginx 0.6.9 28.08.2007
3603:
3604: *) Исправление: рабочий процесс мог зациклиться при использовании
3605: протокола HTTPS; ошибка появилась в 0.6.7.
3606:
3607: *) Исправление: если сервер слушал на двух адресах или портах, то nginx
3608: не запускался при использовании wildcard в конце имени сервера.
3609:
3610: *) Исправление: директива ip_hash могла неверно помечать сервера как
3611: нерабочие.
3612:
3613: *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
3614:
3615:
3616: Изменения в nginx 0.6.8 20.08.2007
3617:
3618: *) Изменение: теперь nginx пытается установить директивы
3619: worker_priority, worker_rlimit_nofile, worker_rlimit_core,
3620: worker_rlimit_sigpending без привилегий root'а.
3621:
3622: *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
3623: запроса серверу аутентификации почтового прокси-сервера.
3624:
3625: *) Изменение: теперь nginx экранирует символ "%" в переменной
3626: $memcached_key.
3627:
3628: *) Исправление: при указании относительного пути к конфигурационному
3629: файлу в качестве параметра ключа -c nginx определял путь относительно
3630: конфигурационного префикса; ошибка появилась в 0.6.6.
3631:
3632: *) Исправление: nginx не работал на FreeBSD/sparc64.
3633:
3634:
3635: Изменения в nginx 0.6.7 15.08.2007
3636:
3637: *) Изменение: теперь пути, указанные в директивах include,
3638: auth_basic_user_file, perl_modules, ssl_certificate,
3639: ssl_certificate_key и ssl_client_certificate, определяются
3640: относительно каталога конфигурационного файла nginx.conf, а не
3641: относительно префикса.
3642:
3643: *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
3644:
3645: *) Изменение: для обновления на лету версий 0.1.x создан специальный
3646: сценарий make upgrade1.
3647:
3648: *) Добавление: директивы server_name и valid_referers поддерживают
3649: регулярные выражения.
3650:
3651: *) Добавление: директива server в блоке upstream поддерживает параметр
3652: backup.
3653:
3654: *) Добавление: модуль ngx_http_perl_module поддерживает метод
3655: $r->discard_request_body.
3656:
3657: *) Добавление: директива "add_header Last-Modified ..." меняет строку
3658: "Last-Modified" в заголовке ответа.
3659:
3660: *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
3661: отличным от 200, и после этого запроса соединение переходило в
3662: состояние keep-alive, то на следующий запрос nginx возвращал 400.
3663:
3664: *) Исправление: если в директиве auth_http был задан неправильный адрес,
3665: то в рабочем процессе происходил segmentation fault.
3666:
3667: *) Исправление: теперь по умолчанию nginx использует значение 511 для
3668: listen backlog на всех платформах, кроме FreeBSD.
3669: Спасибо Jiang Hong.
3670:
3671: *) Исправление: рабочий процесс мог зациклиться, если server в блоке
3672: upstream был помечен как down; ошибка появилась в 0.6.6.
3673:
3674: *) Исправление: sendfilev() в Solaris теперь не используется при
3675: передаче тела запроса FastCGI-серверу через unix domain сокет.
3676:
3677:
3678: Изменения в nginx 0.6.6 30.07.2007
3679:
3680: *) Добавление: параметр --sysconfdir=PATH в configure.
3681:
3682: *) Добавление: именованные location'ы.
3683:
3684: *) Добавление: переменную $args можно устанавливать с помощью set.
3685:
3686: *) Добавление: переменная $is_args.
3687:
3688: *) Исправление: равномерное распределение запросов к апстримам с
3689: большими весами.
3690:
3691: *) Исправление: если клиент в почтовом прокси-сервере закрывал
3692: соединение, то nginx мог не закрывать соединение с бэкендом.
3693:
3694: *) Исправление: при использовании одного хоста в качестве бэкендов для
3695: протоколов HTTP и HTTPS без явного указания портов, nginx использовал
3696: только один порт - 80 или 443.
3697:
3698: *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
3699: более ранними версиями; ошибка появилась в 0.6.4.
3700:
3701:
3702: Изменения в nginx 0.6.5 23.07.2007
3703:
3704: *) Добавление: переменная $nginx_version.
3705: Спасибо Николаю Гречуху.
3706:
3707: *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
3708: IMAP.
3709: Спасибо Максиму Дунину.
3710:
3711: *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
3712: SMTP.
3713: Спасибо Максиму Дунину.
3714:
3715: *) Исправление: теперь nginx экранирует пробел в переменной
3716: $memcached_key.
3717:
3718: *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
3719: Спасибо Jiang Hong.
3720:
3721: *) Исправление: незначительных потенциальных ошибок.
3722: Спасибо Coverity's Scan.
3723:
3724:
3725: Изменения в nginx 0.6.4 17.07.2007
3726:
3727: *) Безопасность: при использовании директивы msie_refresh был возможен
3728: XSS.
3729: Спасибо Максиму Богуку.
3730:
3731: *) Изменение: директивы proxy_store и fastcgi_store изменены.
3732:
3733: *) Добавление: директивы proxy_store_access и fastcgi_store_access.
3734:
3735: *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
3736: Studio.
3737: Спасибо Андрею Нигматулину.
3738:
3739: *) Изменение: обход ошибки в Sun Studio 12.
3740: Спасибо Jiang Hong.
3741:
3742:
3743: Изменения в nginx 0.6.3 12.07.2007
3744:
3745: *) Добавление: директивы proxy_store и fastcgi_store.
3746:
3747: *) Исправление: при использовании директивы auth_http_header в рабочем
3748: процессе мог произойти segmentation fault.
3749: Спасибо Максиму Дунину.
3750:
3751: *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
3752: не был разрешён, то в рабочем процессе происходил segmentation fault.
3753:
3754: *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
3755: в рабочем процессе мог произойти segmentation fault.
3756:
3757: *) Исправление: в рабочем процессе мог произойти segmentation fault,
3758: если использовался метод eventport.
3759:
3760: *) Исправление: директивы proxy_ignore_client_abort и
3761: fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
3762:
3763:
3764: Изменения в nginx 0.6.2 09.07.2007
3765:
3766: *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
3767: nginx передавал клиенту мусор в таких заголовках.
3768:
3769:
3770: Изменения в nginx 0.6.1 17.06.2007
3771:
3772: *) Исправление: в парсинге SSI.
3773:
3774: *) Исправление: при использовании удалённого подзапроса в SSI
3775: последующий подзапрос локального файла мог отдаваться клиенту в
3776: неверном порядке.
3777:
3778: *) Исправление: большие включения в SSI, сохранённые во временные файлы,
3779: передавались не полностью.
3780:
3781: *) Исправление: значение perl'овой переменной $$ модуля
3782: ngx_http_perl_module было равно номеру главного процесса.
3783:
3784:
3785: Изменения в nginx 0.6.0 14.06.2007
3786:
3787: *) Добавление: директивы "server_name", "map", and "valid_referers"
3788: поддерживают маски вида "www.example.*".
3789:
3790:
3791: Изменения в nginx 0.5.25 11.06.2007
3792:
3793: *) Исправление: nginx не собирался с параметром
3794: --without-http_rewrite_module; ошибка появилась в 0.5.24.
3795:
3796:
3797: Изменения в nginx 0.5.24 06.06.2007
3798:
3799: *) Безопасность: директива ssl_verify_client не работала, если запрос
3800: выполнялся по протоколу HTTP/0.9.
3801:
3802: *) Исправление: при использовании сжатия часть ответа могла передаваться
3803: несжатой; ошибка появилась в 0.5.23.
3804:
3805:
3806: Изменения в nginx 0.5.23 04.06.2007
3807:
3808: *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
3809: Server Name Indication.
3810:
3811: *) Добавление: директива fastcgi_catch_stderr.
3812: Спасибо Николаю Гречуху, проект OWOX.
3813:
3814: *) Исправление: на Линуксе в основном процессе происходил segmentation
3815: fault, если два виртуальных сервера должны bind()ится к
3816: пересекающимся портам.
3817:
3818: *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
3819: perl поддерживал потоки, то во время второй переконфигурации
3820: выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
3821:
3822: *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
3823:
3824:
3825: Изменения в nginx 0.5.22 29.05.2007
3826:
3827: *) Исправление: большое тело запроса могло не передаваться бэкенду;
3828: ошибка появилась в 0.5.21.
3829:
3830:
3831: Изменения в nginx 0.5.21 28.05.2007
3832:
3833: *) Исправление: если внутри сервера описано больше примерно десяти
3834: location'ов, то location'ы, заданные с помощью регулярного выражения,
3835: могли выполняться не в том, порядке, в каком они описаны.
3836:
3837: *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
3838: если 33-тий по счёту или последующий бэкенд упал.
3839: Спасибо Антону Поварову.
3840:
3841: *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
3842: произойти bus error.
3843: Спасибо Андрею Нигматулину.
3844:
3845: *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
3846:
3847:
3848: Изменения в nginx 0.5.20 07.05.2007
3849:
3850: *) Добавление: директива sendfile_max_chunk.
3851:
3852: *) Добавление: переменные "$http_...", "$sent_http_..." и
3853: "$upstream_http_..." можно менять директивой set.
3854:
3855: *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
3856: рабочем процессе мог произойти segmentation fault.
3857:
3858: *) Исправление: завершающая строка multipart range ответа передавалась
3859: неверно.
3860: Спасибо Evan Miller.
3861:
3862: *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
3863: Studio.
3864: Спасибо Андрею Нигматулину.
3865:
3866: *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
3867: Спасибо Андрею Нигматулину.
3868:
3869:
3870: Изменения в nginx 0.5.19 24.04.2007
3871:
3872: *) Изменение: значение переменной $request_time теперь записывается с
3873: точностью до миллисекунд.
3874:
3875: *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
3876: переименован в $r->flush.
3877:
3878: *) Добавление: переменная $upstream_addr.
3879:
3880: *) Добавление: директивы proxy_headers_hash_max_size и
3881: proxy_headers_hash_bucket_size.
3882: Спасибо Володымыру Костырко.
3883:
3884: *) Исправление: при использовании sendfile и limit_rate на 64-битных
3885: платформах нельзя было передавать файлы больше 2G.
3886:
3887: *) Исправление: при использовании sendfile на 64-битном Linux нельзя
3888: было передавать файлы больше 2G.
3889:
3890:
3891: Изменения в nginx 0.5.18 19.04.2007
3892:
3893: *) Добавление: модуль ngx_http_sub_filter_module.
3894:
3895: *) Добавление: переменные "$upstream_http_...".
3896:
3897: *) Добавление: теперь переменные $upstream_status и
3898: $upstream_response_time содержат данные о всех обращениях к
3899: апстримам, сделанным до X-Accel-Redirect.
3900:
3901: *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
3902: perl не поддерживал multiplicity, то после первой переконфигурации и
3903: после получения любого сигнала в основном процессе происходил
3904: segmentation fault; ошибка появилась в 0.5.9.
3905:
3906: *) Исправление: если perl не поддерживал multiplicity, то после
3907: переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
3908:
3909:
3910: Изменения в nginx 0.5.17 02.04.2007
3911:
3912: *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
3913:
3914: *) Добавление: теперь nginx поддерживает директиву include внутри блока
3915: types.
3916:
3917: *) Исправление: использование переменной $document_root в директиве root
3918: и alias запрещено: оно вызывало рекурсивное переполнение стека.
3919:
3920: *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
3921:
3922: *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
3923: $uri) возвращали старое закэшированное значение.
3924:
3925:
3926: Изменения в nginx 0.5.16 26.03.2007
3927:
3928: *) Исправление: в качестве ключа для хэша в директиве ip_hash не
3929: использовалась сеть класса С.
3930: Спасибо Павлу Ярковому.
3931:
3932: *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
3933: был указан charset и строка завершалась символом ";", то в рабочем
3934: процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
3935:
3936: *) Исправление: ошибки "[alert] zero size buf" при работе с
3937: FastCGI-сервером, если тело запроса, записанное во временный файл,
3938: было кратно 32K.
3939:
3940: *) Исправление: nginx не собирался на Solaris без параметра
3941: --with-debug; ошибка появилась в 0.5.15.
3942:
3943:
3944: Изменения в nginx 0.5.15 19.03.2007
3945:
3946: *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
3947: SMTP-проксирование и директивы smtp_auth, smtp_capablities и xclient.
3948: Спасибо Антону Южанинову и Максиму Дунину.
3949:
3950: *) Добавление: теперь keep-alive соединения закрываются сразу же по
3951: получении сигнала переконфигурации.
3952:
3953: *) Изменение: директивы imap и auth переименованы соответственно в mail
3954: и pop3_auth.
3955:
3956: *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
3957: был разрешён метод APOP, то в рабочем процессе происходил
3958: segmentation fault.
3959:
3960: *) Исправление: при использовании директивы starttls only в протоколе
3961: POP3 nginx разрешал аутентификацию без перехода в режим SSL.
3962:
3963: *) Исправление: рабочие процессы не выходили после переконфигурации и не
3964: переоткрывали логи, если использовался метод eventport.
3965:
3966: *) Исправление: при использовании директивы ip_hash рабочий процесс мог
3967: зациклиться.
3968:
3969: *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
3970: используются методы eventport или /dev/poll.
3971:
3972:
3973: Изменения в nginx 0.5.14 23.02.2007
3974:
3975: *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
3976: конфигурационного файла.
3977:
3978:
3979: Изменения в nginx 0.5.13 19.02.2007
3980:
3981: *) Добавление: методы COPY и MOVE.
3982:
3983: *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
3984: запросов, переданных по keep-alive соединению.
3985:
3986: *) Исправление: nginx не работал на 64-битном big-endian Linux.
3987: Спасибо Андрею Нигматулину.
3988:
3989: *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
3990: теперь сразу закрывает соединение, а не по таймауту.
3991:
3992: *) Исправление: если при использовании метода epoll клиент закрывал
3993: преждевременно соединение со своей стороны, то nginx закрывал это
3994: соединение только по истечении таймаута на передачу.
3995:
3996: *) Исправление: nginx не собирался на платформах, отличных от i386,
3997: amd64, sparc и ppc; ошибка появилась в 0.5.8.
3998:
3999:
4000: Изменения в nginx 0.5.12 12.02.2007
4001:
4002: *) Исправление: nginx не собирался на платформах, отличных от i386,
4003: amd64, sparc и ppc; ошибка появилась в 0.5.8.
4004:
4005: *) Исправление: при использовании временных файлов в время работы с
4006: FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
4007: ошибка появилась в 0.5.8.
4008:
4009: *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
4010: то в рабочем процессе мог произойти segmentation fault.
4011:
4012: *) Исправление: ngx_http_perl_module не собирался на Solaris.
4013:
4014:
4015: Изменения в nginx 0.5.11 05.02.2007
4016:
4017: *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
4018: Спасибо Chris McGrath.
4019:
4020: *) Исправление: ответ был неверным, если запрашивалось несколько
4021: диапазонов; ошибка появилась в 0.5.6.
4022:
4023: *) Исправление: директива create_full_put_path не могла создавать
4024: промежуточные каталоги, если не была установлена директива
4025: dav_access.
4026: Спасибо Evan Miller.
4027:
4028: *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
4029: записываться код "0".
4030:
4031: *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
4032: произойти segmentation fault.
4033:
4034:
4035: Изменения в nginx 0.5.10 26.01.2007
4036:
4037: *) Исправление: во время обновления исполняемого файла новый процесс не
4038: наследовал слушающие сокеты; ошибка появилась в 0.5.9.
4039:
4040: *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
4041: произойти segmentation fault; ошибка появилась в 0.5.1.
4042:
4043:
4044: Изменения в nginx 0.5.9 25.01.2007
4045:
4046: *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
4047: использует значение переменной $memcached_key.
4048:
4049: *) Добавление: переменная $memcached_key.
4050:
4051: *) Добавление: параметр clean в директиве client_body_in_file_only.
4052:
4053: *) Добавление: директива env.
4054:
4055: *) Добавление: директива sendfile работает внутри блока if.
4056:
4057: *) Добавление: теперь при ошибке записи в access_log nginx записывает
4058: сообщение в error_log, но не чаще одного раза в минуту.
4059:
4060: *) Исправление: директива "access_log off" не всегда запрещала запись в
4061: лог.
4062:
4063:
4064: Изменения в nginx 0.5.8 19.01.2007
4065:
4066: *) Исправление: если использовалась директива
4067: "client_body_in_file_only on" и тело запроса было небольшое, то мог
4068: произойти segmentation fault.
4069:
4070: *) Исправление: происходил segmentation fault, если использовались
4071: директивы "client_body_in_file_only on" и
4072: "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
4073: делался переход к следующему бэкенду.
4074:
4075: *) Исправление: если при использовании директивы "proxy_buffering off"
4076: соединение с клиентом было неактивно, то оно закрывалось по таймауту,
4077: заданному директивой send_timeout; ошибка появилась в 0.4.7.
4078:
4079: *) Исправление: если при использовании метода epoll клиент закрывал
4080: преждевременно соединение со своей стороны, то nginx закрывал это
4081: соединение только по истечении таймаута на передачу.
4082:
4083: *) Исправление: ошибки "[alert] zero size buf" при работе с
4084: FastCGI-сервером.
4085:
4086: *) Исправление ошибок в директиве limit_zone.
4087:
4088:
4089: Изменения в nginx 0.5.7 15.01.2007
4090:
4091: *) Добавление: оптимизация использования памяти в ssl_session_cache.
4092:
4093: *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
4094:
4095: *) Исправление: на старте или во время переконфигурации происходил
4096: segmentation fault, если директивы ssl_session_cache или limit_zone
4097: использовались на 64-битных платформах.
4098:
4099: *) Исправление: при использовании директив add_before_body или
4100: add_after_body происходил segmentation fault, если в заголовке ответа
4101: нет строки "Content-Type".
4102:
4103: *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
4104: потоков.
4105: Спасибо Дену Иванову.
4106:
4107: *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
4108:
4109:
4110: Изменения в nginx 0.5.6 09.01.2007
4111:
4112: *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
4113: кроме GET, HEAD и POST.
4114:
4115: *) Добавление: модуль ngx_http_limit_zone_module.
4116:
4117: *) Добавление: переменная $binary_remote_addr.
4118:
4119: *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
4120: ngx_imap_ssl_module.
4121:
4122: *) Добавление: метод DELETE поддерживает рекурсивное удаление.
4123:
4124: *) Исправление: при использовании $r->sendfile() byte-ranges
4125: передавались неверно.
4126:
4127:
4128: Изменения в nginx 0.5.5 24.12.2006
4129:
4130: *) Изменение: ключ -v больше не выводит информацию о компиляторе.
4131:
4132: *) Добавление: ключ -V.
4133:
4134: *) Добавление: директива worker_rlimit_core поддерживает указание
4135: размера в K, M и G.
4136:
4137: *) Исправление: модуль nginx.pm теперь может устанавливаться
4138: непривилегированным пользователем.
4139:
4140: *) Исправление: при использовании методов $r->request_body или
4141: $r->request_body_file мог произойти segmentation fault.
4142:
4143: *) Исправление: ошибок, специфичных для платформы ppc.
4144:
4145:
4146: Изменения в nginx 0.5.4 15.12.2006
4147:
4148: *) Добавление: директиву perl можно использовать внутри блока
4149: limit_except.
4150:
4151: *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
4152: заголовке запроса для метода DELETE.
4153:
4154: *) Исправление: при использовании одного параметра в директиве
4155: dav_access nginx мог сообщить об ошибке в конфигурации.
4156:
4157: *) Исправление: при использовании переменной $host мог произойти
4158: segmentation fault; ошибка появилась в 0.4.14.
4159:
4160:
4161: Изменения в nginx 0.5.3 13.12.2006
4162:
4163: *) Добавление: модуль ngx_http_perl_module поддерживает методы
4164: $r->status, $r->log_error и $r->sleep.
4165:
4166: *) Добавление: метод $r->variable поддерживает переменные, неописанные в
4167: конфигурации nginx'а.
4168:
4169: *) Исправление: метод $r->has_request_body не работал.
4170:
4171:
4172: Изменения в nginx 0.5.2 11.12.2006
4173:
4174: *) Исправление: если в директивах proxy_pass использовалось имя,
4175: указанное в upstream, то nginx пытался найти IP-адрес этого имени;
4176: ошибка появилась в 0.5.1.
4177:
4178:
4179: Изменения в nginx 0.5.1 11.12.2006
4180:
4181: *) Исправление: директива post_action могла не работать после неудачного
4182: завершения запроса.
4183:
4184: *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
4185: Спасибо Bron Gondwana.
4186:
4187: *) Исправление: при указании в директиве fastcgi_pass имени описанного
4188: upstream'а выдавалось сообщение "no port in upstream"; ошибка
4189: появилась в 0.5.0.
4190:
4191: *) Исправление: если в директивах proxy_pass и fastcgi_pass
4192: использовались одинаковых имена серверов, но с разными портами, то
4193: эти директивы использовали первый описанный порт; ошибка появилась в
4194: 0.5.0.
4195:
4196: *) Исправление: если в директивах proxy_pass и fastcgi_pass
4197: использовались unix domain сокеты, то эти директивы использовали
4198: первый описанный сокет; ошибка появилась в 0.5.0.
4199:
4200: *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
4201: если он был указан в последней строке файла паролей и после пароля не
4202: было перевода строки, возврата каретки или символа ":".
4203:
4204: *) Исправление: переменная $upstream_response_time могла быть равна
4205: "0.000", хотя время обработки было больше 1 миллисекунды.
4206:
4207:
4208: Изменения в nginx 0.5.0 04.12.2006
4209:
4210: *) Изменение: параметры в виде "%name" в директиве log_format больше не
4211: поддерживаются.
4212:
4213: *) Изменение: директивы proxy_upstream_max_fails,
4214: proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
4215: fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
4216: memcached_upstream_fail_timeout больше не поддерживаются.
4217:
4218: *) Добавление: директива server в блоке upstream поддерживает параметры
4219: max_fails, fail_timeout и down.
4220:
4221: *) Добавление: директива ip_hash в блоке upstream.
4222:
4223: *) Добавление: статус WAIT в строке "Auth-Status" в заголовка ответа
4224: сервера аутентификации IMAP/POP3 прокси.
4225:
4226: *) Исправление: nginx не собирался на 64-битных платформах; ошибка
4227: появилась в 0.4.14.
4228:
4229:
4230: Изменения в nginx 0.4.14 27.11.2006
4231:
4232: *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
4233:
4234: *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
4235: Linux и NetBSD.
4236:
4237: *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
4238: поддержкой потоков; ошибка появилась в 0.3.38.
4239:
4240: *) Исправление: ngx_http_perl_module не работал корректно, если перл
4241: вызывался рекурсивно.
4242:
4243: *) Исправление: nginx игнорировал имя сервера в строке запроса.
4244:
4245: *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
4246: процесс мог зациклиться.
4247:
4248: *) Исправление: при изменении системного времени переменная
4249: $upstream_response_time могла быть отрицательной.
4250:
4251: *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
4252: прокси не передавался параметр Auth-Login-Attempt.
4253:
4254: *) Исправление: при ошибке соединения с сервером аутентификации
4255: IMAP/POP3 прокси мог произойти segmentation fault.
4256:
4257:
4258: Изменения в nginx 0.4.13 15.11.2006
4259:
4260: *) Добавление: директиву proxy_pass можно использовать внутри блока
4261: limit_except.
4262:
4263: *) Добавление: директива limit_except поддерживает все WebDAV методы.
4264:
4265: *) Исправление: при использовании директивы add_before_body без
4266: директивы add_after_body ответ передавался не полностью.
4267:
4268: *) Исправление: большое тело запроса не принималось, если использовались
4269: метод epoll и deferred accept().
4270:
4271: *) Исправление: для ответов модуля ngx_http_autoindex_module не
4272: выставлялась кодировка; ошибка появилась в 0.3.50.
4273:
4274: *) Исправление: ошибки "[alert] zero size buf" при работе с
4275: FastCGI-сервером;
4276:
4277: *) Исправление: параметр конфигурации --group= игнорировался.
4278: Спасибо Thomas Moschny.
4279:
4280: *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
4281: в 0.3.50.
4282:
4283:
4284: Изменения в nginx 0.4.12 31.10.2006
4285:
4286: *) Добавление: модуль ngx_http_perl_module поддерживает метод
4287: $r->variable.
4288:
4289: *) Исправление: при включении в ответ большого статического файла с
4290: помощью SSI ответ мог передаваться не полностью.
4291:
4292: *) Исправление: nginx не убирал "#fragment" в URI.
4293:
4294:
4295: Изменения в nginx 0.4.11 25.10.2006
4296:
4297: *) Добавление: POP3 прокси поддерживает AUTH LOIGN PLAIN и CRAM-MD5.
4298:
4299: *) Добавление: модуль ngx_http_perl_module поддерживает метод
4300: $r->allow_ranges.
4301:
4302: *) Исправление: при включённой поддержке команды APOP в POP3 прокси
4303: могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
4304:
4305:
4306: Изменения в nginx 0.4.10 23.10.2006
4307:
4308: *) Добавление: POP3 прокси поддерживает APOP.
4309:
4310: *) Исправление: при использовании методов select, poll и /dev/poll во
4311: время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
4312: нагружал процессор.
4313:
4314: *) Исправление: при использовании переменной $server_addr в директиве
4315: map мог произойти segmentation fault.
4316:
4317: *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
4318: для полных ответов; ошибка появилась в 0.4.7.
4319:
4320: *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
4321: 0.4.9.
4322:
4323:
4324: Изменения в nginx 0.4.9 13.10.2006
4325:
4326: *) Добавление: параметр set в команде SSI include.
4327:
4328: *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
4329: модуля nginx.pm.
4330:
4331:
4332: Изменения в nginx 0.4.8 11.10.2006
4333:
4334: *) Исправление: если до команды SSI include с параметром wait
4335: выполнялась ещё одна команда SSI include, то параметр wait мог не
4336: работать.
4337:
4338: *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
4339: полных ответов.
4340: Спасибо Алексею Ковырину.
4341:
4342:
4343: Изменения в nginx 0.4.7 10.10.2006
4344:
4345: *) Добавление: модуль ngx_http_flv_module.
4346:
4347: *) Добавление: переменная $request_body_file.
4348:
4349: *) Добавление: директивы charset и source_charset поддерживают
4350: переменные.
4351:
4352: *) Исправление: если до команды SSI include с параметром wait
4353: выполнялась ещё одна команда SSI include, то параметр wait мог не
4354: работать.
4355:
4356: *) Исправление: при использовании директивы "proxy_buffering off" или
4357: при работе с memcached соединения могли не закрываться по таймауту.
4358:
4359: *) Исправление: nginx не запускался на 64-битных платформах, отличных от
4360: amd64, sparc64 и ppc64.
4361:
4362:
4363: Изменения в nginx 0.4.6 06.10.2006
4364:
4365: *) Исправление: nginx не запускался на 64-битных платформах, отличных от
4366: amd64, sparc64 и ppc64.
4367:
4368: *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
4369: chunk'ами, если длина ответа в методе
4370: $r->headers_out("Content-Length", ...) была задана текстовой строкой.
4371:
4372: *) Исправление: после перенаправления ошибки с помощью директивы
4373: error_page любая директива модуля ngx_http_rewrite_module возвращала
4374: эту ошибку; ошибка появилась в 0.4.4.
4375:
4376:
4377: Изменения в nginx 0.4.5 02.10.2006
4378:
4379: *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
4380: в 0.4.4.
4381:
4382:
4383: Изменения в nginx 0.4.4 02.10.2006
4384:
4385: *) Добавление: переменная $scheme.
4386:
4387: *) Добавление: директива expires поддерживает параметр max.
4388:
4389: *) Добавление: директива include поддерживает маску "*".
4390: Спасибо Jonathan Dance.
4391:
4392: *) Исправление: директива return всегда изменяла код ответа,
4393: перенаправленного директивой error_page.
4394:
4395: *) Исправление: происходил segmentation fault, если в методе PUT
4396: передавалось тело нулевой длины.
4397:
4398: *) Исправление: при использовании переменных в директиве proxy_redirect
4399: редирект изменялся неверно.
4400:
4401:
4402: Изменения в nginx 0.4.3 26.09.2006
4403:
4404: *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
4405: error_page.
4406:
4407: *) Добавление: поддержка Solaris 10 event ports.
4408:
4409: *) Добавление: модуль ngx_http_browser_module.
4410:
4411: *) Исправление: при перенаправлении ошибки 400 проксированному серверу
4412: помощью директивы error_page мог произойти segmentation fault.
4413:
4414: *) Исправление: происходил segmentation fault, если в директиве
4415: proxy_pass использовался unix domain сокет; ошибка появилась в
4416: 0.3.47.
4417:
4418: *) Исправление: SSI не работал с ответами memcached и
4419: небуферизированными проксированными ответами.
4420:
4421: *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
4422:
4423:
4424: Изменения в nginx 0.4.2 14.09.2006
4425:
4426: *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
4427: появилась в 0.4.1.
4428:
4429:
4430: Изменения в nginx 0.4.1 14.09.2006
4431:
4432: *) Исправление: совместимость с DragonFlyBSD.
4433: Спасибо Павлу Назарову.
4434:
4435: *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
4436: файлов больше 2G.
4437:
4438: *) Добавление: теперь на Linux nginx для статических запросов использует
4439: флаг O_NOATIME.
4440: Спасибо Yusuf Goolamabbas.
4441:
4442:
4443: Изменения в nginx 0.4.0 30.08.2006
4444:
4445: *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
4446: фазы init module в фазу HTTP postconfiguration.
4447:
4448: *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
4449: считывается заранее: нужно явно инициировать чтение с помощью метода
4450: $r->has_request_body.
4451:
4452: *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
4453: DECLINED.
4454:
4455: *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
4456: заголовка "Date" для метода PUT.
4457:
4458: *) Добавление: директива ssi работает внутри блока if.
4459:
4460: *) Исправление: происходил segmentation fault, если в директиве index
4461: использовалась переменные и при этом первое имя индексного файла было
4462: без переменных; ошибка появилась в 0.1.29.
4463:
4464:
4465: Изменения в nginx 0.3.61 28.08.2006
4466:
4467: *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
4468:
4469: *) Добавление: директива msie_refresh.
4470:
4471: *) Добавление: директива recursive_error_pages.
4472:
4473: *) Исправление: директива rewrite возвращала неправильный редирект, если
4474: редирект включал в себя выделенные закодированные символы из
4475: оригинального URI.
4476:
4477:
4478: Изменения в nginx 0.3.60 18.08.2006
4479:
4480: *) Исправление: во время перенаправления ошибки рабочий процесс мог
4481: зациклиться; ошибка появилась в 0.3.59.
4482:
4483:
4484: Изменения в nginx 0.3.59 16.08.2006
4485:
4486: *) Добавление: теперь можно делать несколько перенаправлений через
4487: директиву error_page.
4488:
4489: *) Исправление: директива dav_access не поддерживала три параметра.
4490:
4491: *) Исправление: директива error_page не изменяла строку "Content-Type"
4492: после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
4493: в 0.3.58.
4494:
4495:
4496: Изменения в nginx 0.3.58 14.08.2006
4497:
4498: *) Добавление: директива error_page поддерживает переменные.
4499:
4500: *) Изменение: теперь на Linux используется интерфейс procfs вместо
4501: sysctl.
4502:
4503: *) Изменение: теперь при использовании "X-Accel-Redirect" строка
4504: "Content-Type" наследуется из первоначального ответа.
4505:
4506: *) Исправление: директива error_page не перенаправляла ошибку 413.
4507:
4508: *) Исправление: завершающий "?" не удалял старые аргументы, если в
4509: переписанном URI не было новых аргументов.
4510:
4511: *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
4512:
4513:
4514: Изменения в nginx 0.3.57 09.08.2006
4515:
4516: *) Добавление: переменная $ssl_client_serial.
4517:
4518: *) Исправление: в операторе "!-e" в директиве if.
4519: Спасибо Андриану Буданцову.
4520:
4521: *) Исправление: при проверке клиентского сертификата nginx не передавал
4522: клиенту информацию о требуемых сертификатах.
4523:
4524: *) Исправление: переменная $document_root не поддерживала переменные в
4525: директиве root.
4526:
4527:
4528: Изменения в nginx 0.3.56 04.08.2006
4529:
4530: *) Добавление: директива dav_access.
4531:
4532: *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
4533: "!-e", "-x" и "!-x".
4534:
4535: *) Исправление: при записи в access_log некоторых передаваемых клиенту
4536: строк заголовков происходил segmentation fault, если запрос возвращал
4537: редирект.
4538:
4539:
4540: Изменения в nginx 0.3.55 28.07.2006
4541:
4542: *) Добавление: параметр stub в команде SSI include.
4543:
4544: *) Добавление: команда SSI block.
4545:
4546: *) Добавление: скрипт unicode2nginx добавлен в contrib.
4547:
4548: *) Исправление: если root был задан только переменной, то корень
4549: задавался относительно префикса сервера.
4550:
4551: *) Исправление: если в запросе был "//" или "/.", и после этого
4552: закодированные символы в виде "%XX", то проксируемый запрос
4553: передавался незакодированным.
4554:
4555: *) Исправление: метод $r->header_in("Cookie") модуля
4556: ngx_http_perl_module теперь возвращает все строки "Cookie" в
4557: заголовке запроса.
4558:
4559: *) Исправление: происходил segmentation fault, если использовался
4560: "client_body_in_file_only on" и делался переход к следующему бэкенду.
4561:
4562: *) Исправление: при некоторых условиях во время переконфигурации коды
4563: символов внутри директивы charset_map могли считаться неверными;
4564: ошибка появилась в 0.3.50.
4565:
4566:
4567: Изменения в nginx 0.3.54 11.07.2006
4568:
4569: *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
4570:
4571: *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
4572: memcached_next_upstream поддерживают параметр off.
4573:
4574: *) Добавление: директива debug_connection поддерживает запись адресов в
4575: формате CIDR.
4576:
4577: *) Исправление: при перекодировании ответа проксированного сервера или
4578: сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
4579: полностью.
4580:
4581: *) Исправление: переменная $upstream_response_time содержала время
4582: только первого обращения к бэкенду.
4583:
4584: *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
4585: в 0.3.53.
4586:
4587:
4588: Изменения в nginx 0.3.53 07.07.2006
4589:
4590: *) Изменение: директива add_header добавляет строки в ответы с кодом
4591: 204, 301 и 302.
4592:
4593: *) Добавление: директива server в блоке upstream поддерживает параметр
4594: weight.
4595:
4596: *) Добавление: директива server_name поддерживает маску "*".
4597:
4598: *) Добавление: nginx поддерживает тело запроса больше 2G.
4599:
4600: *) Исправление: если при использовании "satisfy_any on" клиент успешно
4601: проходил аутентификацию, в лог всё равно записалоcь сообщение "access
4602: forbidden by rule".
4603:
4604: *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
4605: 409.
4606:
4607: *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
4608: ошибку, nginx продолжал проксирование.
4609:
4610:
4611: Изменения в nginx 0.3.52 03.07.2006
4612:
4613: *) Изменение: восстановлено поведение модуля ngx_http_index_module для
4614: запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
4615: ошибку 405.
4616:
4617: *) Исправление: при использовании ограничения скорости рабочий процесс
4618: мог зациклиться; ошибка появилась в 0.3.37.
4619:
4620: *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
4621: "unknown charset", даже если перекодировка не требовалась; ошибка
4622: появилась в 0.3.50.
4623:
4624: *) Исправление: если в результате запроса PUT возвращался код 409, то
4625: временный файл не удалялся.
4626:
4627:
4628: Изменения в nginx 0.3.51 30.06.2006
4629:
4630: *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
4631: ошибка появилась в 0.3.50.
4632:
4633:
4634: Изменения в nginx 0.3.50 28.06.2006
4635:
4636: *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
4637: переименованы соответственно в proxy_intercept_errors и
4638: fastcgi_intercept_errors.
4639:
4640: *) Добавление: модуль ngx_http_charset_module поддерживает
4641: перекодирование из однобайтных кодировок в UTF-8 и обратно.
4642:
4643: *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
4644: "X-Accel-Charset" в ответе бэкенда.
4645:
4646: *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
4647: только если также использовался символ "$".
4648:
4649: *) Исправление: при некоторых условиях в SSI после вставки могла быть
4650: добавлена строка "<!--".
4651:
4652: *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
4653: то при использовании небуферизированного проксировании не закрывалось
4654: соединение с клиентом.
4655:
4656:
4657: Изменения в nginx 0.3.49 31.05.2006
4658:
4659: *) Исправление: в директиве set.
4660:
4661: *) Исправление: при включении в ssi двух и более подзапросов,
4662: обрабатываемых через FastCGI, вместо вывода второго и остальных
4663: подзапросов в ответ включался вывод первого подзапроса.
4664:
4665:
4666: Изменения в nginx 0.3.48 29.05.2006
4667:
4668: *) Изменение: теперь модуль ngx_http_charset_module работает для
4669: подзапросов, в ответах которых нет строки заголовка "Content-Type".
4670:
4671: *) Исправление: если в директиве proxy_pass не было URI, то директива
4672: "proxy_redirect default" добавляла в переписанный редирект в начало
4673: лишний слэш.
4674:
4675: *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
4676: GET, теперь это делается только для редиректов, выполняемых с помощью
4677: X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
4678: 0.3.42.
4679:
4680: *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
4681: с поддержкой потоков; ошибка появилась в 0.3.46.
4682:
4683:
4684: Изменения в nginx 0.3.47 23.05.2006
4685:
4686: *) Добавление: директива upstream.
4687:
4688: *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
4689: всегда убирается.
4690:
4691:
4692: Изменения в nginx 0.3.46 11.05.2006
4693:
4694: *) Добавление: директивы proxy_hide_header, proxy_pass_header,
4695: fastcgi_hide_header и fastcgi_pass_header.
4696:
4697: *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
4698: proxy_pass_server упразднены.
4699:
4700: *) Добавление: в режиме прокси поддерживается строка заголовка
4701: "X-Accel-Buffering" в ответе бэкенда.
4702:
4703: *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
4704: ngx_http_perl_module.
4705:
4706:
4707: Изменения в nginx 0.3.45 06.05.2006
4708:
4709: *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
4710: ssl_client_certificate.
4711:
4712: *) Изменение: теперь переменная $request_method возвращает метод только
4713: основного запроса.
4714:
4715: *) Изменение: в таблице перекодировки koi-win изменены коды символа
4716: °.
4717:
4718: *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
4719: номера.
4720:
4721: *) Исправление: если nginx распределял запросы на несколько машин, то
4722: при падении одной из них запросы, предназначенные для этой машины,
4723: перенаправлялись только на одну машину вместо того, чтобы равномерно
4724: распределяться между остальными.
4725:
4726:
4727: Изменения в nginx 0.3.44 04.05.2006
4728:
4729: *) Добавление: параметр wait в команде SSI include.
4730:
4731: *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
4732: белорусские символы.
4733:
4734: *) Исправление: в SSI.
4735:
4736:
4737: Изменения в nginx 0.3.43 26.04.2006
4738:
4739: *) Исправление: в SSI.
4740:
4741:
4742: Изменения в nginx 0.3.42 26.04.2006
4743:
4744: *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
4745:
4746: *) Исправление: ошибки при использовании в директиве rewrite одного и
4747: того же выделения более одного раза.
4748:
4749: *) Исправление: в лог не записывались переменные
4750: $sent_http_content_type, $sent_http_content_length,
4751: $sent_http_last_modified, $sent_http_connection,
4752: $sent_http_keep_alive и $sent_http_transfer_encoding.
4753:
4754: *) Исправление: переменная $sent_http_cache_control возвращала
4755: содержимое только одной строки "Cache-Control" в заголовке ответа.
4756:
4757:
4758: Изменения в nginx 0.3.41 21.04.2006
4759:
4760: *) Добавление: ключ -v.
4761:
4762: *) Исправление: при включении в SSI удалённых подзапросов мог произойти
4763: segmentation fault.
4764:
4765: *) Исправление: в обработке FastCGI.
4766:
4767: *) Исправление: если путь к перловым модулям не был указан с помощью
4768: --with-perl_modules_path=PATH или директивы perl_modules, то на
4769: старте происходил segmentation fault.
4770:
4771:
4772: Изменения в nginx 0.3.40 19.04.2006
4773:
4774: *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
4775:
4776: *) Добавление: директива create_full_put_path.
4777:
4778: *) Добавление: переменная $limit_rate.
4779:
4780:
4781: Изменения в nginx 0.3.39 17.04.2006
4782:
4783: *) Добавление: директива uninitialized_variable_warn; уровень
4784: логгирования сообщения о неинициализированной переменной понижен с
4785: уровня alert на warn.
4786:
4787: *) Добавление: директива override_charset.
4788:
4789: *) Изменение: при использовании неизвестной переменной в SSI-командах
4790: echo и if expr='$name' теперь не записывается в лог сообщение о
4791: неизвестной переменной.
4792:
4793: *) Исправление: счётчик активных соединений рос при превышении лимита
4794: соединений, заданного директивой worker_connections; ошибка появилась
4795: в 0.2.0.
4796:
4797: *) Исправление: при некоторых условия ограничение скорости соединения
4798: могло не работать; ошибка появилась в 0.3.38.
4799:
4800:
4801: Изменения в nginx 0.3.38 14.04.2006
4802:
4803: *) Добавление: модуль ngx_http_dav_module.
4804:
4805: *) Изменение: оптимизация модуля ngx_http_perl_module.
4806: Спасибо Сергею Скворцову.
4807:
4808: *) Добавление: модуль ngx_http_perl_module поддерживает метод
4809: $r->request_body_file.
4810:
4811: *) Добавление: директива client_body_in_file_only.
4812:
4813: *) Изменение: теперь при переполнении диска nginx пытается писать
4814: access_log'и только раз в секунду.
4815: Спасибо Антону Южанинову и Максиму Дунину.
4816:
4817: *) Исправление: теперь директива limit_rate точнее ограничивает скорость
4818: при значениях больше 100 Kbyte/s.
4819: Спасибо ForJest.
4820:
4821: *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
4822: символы "\r" и "\n" в логине и пароле в закодированном виде.
4823: Спасибо Максиму Дунину.
4824:
4825:
4826: Изменения в nginx 0.3.37 07.04.2006
4827:
4828: *) Добавление: директива limit_except.
4829:
4830: *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
4831: "!-f".
4832:
4833: *) Добавление: модуль ngx_http_perl_module поддерживает метод
4834: $r->request_body.
4835:
4836: *) Исправление: в модуле ngx_http_addition_filter_module.
4837:
4838:
4839: Изменения в nginx 0.3.36 05.04.2006
4840:
4841: *) Добавление: модуль ngx_http_addition_filter_module.
4842:
4843: *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
4844: внутри блока if.
4845:
4846: *) Добавление: директивы proxy_ignore_client_abort и
4847: fastcgi_ignore_client_abort.
4848:
4849: *) Добавление: переменная $request_completion.
4850:
4851: *) Добавление: модуль ngx_http_perl_module поддерживает методы
4852: $r->request_method и $r->remote_addr.
4853:
4854: *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
4855:
4856: *) Исправление: строка "\/" в начале выражения команды if модуля
4857: ngx_http_ssi_module воспринималась неверно.
4858:
4859: *) Исправление: в использовании регулярных выражениях в команде if
4860: модуля ngx_http_ssi_module.
4861:
4862: *) Исправление: при задании относительного пути в директивах
4863: client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
4864: perl_modules использовался каталог относительно текущего каталога, а
4865: не относительно префикса сервера.
4866:
4867:
4868: Изменения в nginx 0.3.35 22.03.2006
4869:
4870: *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
4871: для первой директивы listen; ошибка появилась в 0.3.31.
4872:
4873: *) Исправление: в директиве proxy_pass без URI при использовании в
4874: подзапросе.
4875:
4876:
4877: Изменения в nginx 0.3.34 21.03.2006
4878:
4879: *) Добавление: директива add_header поддерживает переменные.
4880:
4881:
4882: Изменения в nginx 0.3.33 15.03.2006
4883:
4884: *) Добавление: параметр http_503 в директивах proxy_next_upstream или
4885: fastcgi_next_upstream.
4886:
4887: *) Исправление: ngx_http_perl_module не работал со встроенным в
4888: конфигурационный файл кодом, если он не начинался сразу же с "sub".
4889:
4890: *) Исправление: в директиве post_action.
4891:
4892:
4893: Изменения в nginx 0.3.32 11.03.2006
4894:
4895: *) Исправление: удаление отладочного логгирования на старте и при
4896: переконфигурации; ошибка появилась в 0.3.31.
4897:
4898:
4899: Изменения в nginx 0.3.31 10.03.2006
4900:
4901: *) Изменение: теперь nginx передаёт неверные ответы проксированного
4902: бэкенда.
4903:
4904: *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
4905:
4906: *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
4907:
4908: *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
4909: 64-битном ядре MacOSX.
4910: Спасибо Андрею Нигматулину.
4911:
4912: *) Исправление: если внутри одного сервера описаны несколько директив
4913: listen, слушающих на разных адресах, то имена серверов вида
4914: "*.domain.tld" работали только для первого адреса; ошибка появилась в
4915: 0.3.18.
4916:
4917: *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
4918: не передавались запросы с телом, записанным во временный файл.
4919:
4920: *) Исправление: совместимость с perl 5.8.8.
4921:
4922:
4923: Изменения в nginx 0.3.30 22.02.2006
4924:
4925: *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
4926: с уровня crit.
4927:
4928: *) Исправление: модуль ngx_http_perl_module не собирался без модуля
4929: ngx_http_ssi_filter_module.
4930:
4931: *) Исправление: nginx не собирался на i386 платформе, если использовался
4932: PIC; ошибка появилась в 0.3.27.
4933:
4934:
4935: Изменения в nginx 0.3.29 20.02.2006
4936:
4937: *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
4938: FastCGI передаёт большое количество предупреждений перед ответом.
4939:
4940: *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
4941: строка заголовка "Transfer-Encoding: chunked".
4942:
4943: *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
4944: передавал полные строки заголовка ответа в отдельных FastCGI записях.
4945:
4946: *) Исправление: если в директиве post_action был указан проксируемый
4947: URI, то он выполнялся только после успешного завершения запроса.
4948:
4949:
4950: Изменения в nginx 0.3.28 16.02.2006
4951:
4952: *) Добавление: директива restrict_host_names упразднена.
4953:
4954: *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
4955:
4956: *) Исправление: при некоторых условиях проксированное соединение с
4957: клиентом завершалось преждевременно.
4958: Спасибо Владимиру Шутову.
4959:
4960: *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
4961: запросов, перенаправленных с помощью строки "X-Accel-Redirect".
4962:
4963: *) Исправление: директива post_action работала только после успешного
4964: завершения запроса.
4965:
4966: *) Исправление: тело проксированного ответа, создаваемого директивой
4967: post_action, передавалось клиенту.
4968:
4969:
4970: Изменения в nginx 0.3.27 08.02.2006
4971:
4972: *) Изменение: директивы variables_hash_max_size и
4973: variables_hash_bucket_size.
4974:
4975: *) Добавление: переменная $body_bytes_sent доступна не только в
4976: директиве log_format.
4977:
4978: *) Добавление: переменные $ssl_protocol и $ssl_cipher.
4979:
4980: *) Добавление: определение размера строки кэша распространённых
4981: процессоров при старте.
4982:
4983: *) Добавление: директива accept_mutex теперь поддерживается посредством
4984: fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
4985:
4986: *) Добавление: директива lock_file и параметр автоконфигурации
4987: --with-lock-path=PATH.
4988:
4989: *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
4990: не передавались запросы с телом.
4991:
4992:
4993: Изменения в nginx 0.3.26 03.02.2006
4994:
4995: *) Изменение: директива optimize_host_names переименована в
4996: optimize_server_names.
4997:
4998: *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
4999: URI основного запроса, если в директиве proxy_pass отсутствовал URI.
5000:
5001:
5002: Изменения в nginx 0.3.25 01.02.2006
5003:
5004: *) Исправление: при неверной конфигурации на старте или во время
5005: переконфигурации происходил segmentation fault; ошибка появилась в
5006: 0.3.24.
5007:
5008:
5009: Изменения в nginx 0.3.24 01.02.2006
5010:
5011: *) Изменение: обход ошибки в kqueue во FreeBSD.
5012:
5013: *) Исправление: ответ, создаваемый директивой post_action, теперь не
5014: передаётся клиенту.
5015:
5016: *) Исправление: при использовании большого количества лог-файлов
5017: происходила утечка памяти.
5018:
5019: *) Исправление: внутри одного location работала только первая директива
5020: proxy_redirect.
5021:
5022: *) Исправление: на 64-битных платформах при старте мог произойти
5023: segmentation fault, если использовалось большое количество имён в
5024: директивах server_name; ошибка появилась в 0.3.18.
5025:
5026:
5027: Изменения в nginx 0.3.23 24.01.2006
5028:
5029: *) Добавление: директива optimize_host_names.
5030:
5031: *) Исправление: ошибки при использовании переменных в директивах path и
5032: alias.
5033:
5034: *) Исправление: модуль ngx_http_perl_module неправильно собирался на
5035: Linux и Solaris.
5036:
5037:
5038: Изменения в nginx 0.3.22 17.01.2006
5039:
5040: *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
5041: и $r->unescape.
5042:
5043: *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
5044: упразднён.
5045:
5046: *) Исправление: если в директиве valid_referers указаны только none или
5047: blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
5048:
5049:
5050: Изменения в nginx 0.3.21 16.01.2006
5051:
5052: *) Добавление: модуль ngx_http_perl_module.
5053:
5054: *) Изменение: директива valid_referers разрешает использовать рефереры
5055: совсем без URI.
5056:
5057:
5058: Изменения в nginx 0.3.20 11.01.2006
5059:
5060: *) Исправление: ошибки в обработке SSI.
5061:
5062: *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
5063: виде /uri?args.
5064:
5065:
5066: Изменения в nginx 0.3.19 28.12.2005
5067:
5068: *) Добавление: директивы path и alias поддерживают переменные.
5069:
5070: *) Изменение: теперь директива valid_referers опять учитывает URI.
5071:
5072: *) Исправление: ошибки в обработке SSI.
5073:
5074:
5075: Изменения в nginx 0.3.18 26.12.2005
5076:
5077: *) Добавление: директива server_names поддерживает имена вида
5078: ".domain.tld".
5079:
5080: *) Добавление: директива server_names использует хэш для имён вида
5081: "*.domain.tld" и более эффективный хэш для обычных имён.
5082:
5083: *) Изменение: директивы server_names_hash_max_size и
5084: server_names_hash_bucket_size.
5085:
5086: *) Изменение: директивы server_names_hash и server_names_hash_threshold
5087: упразднены.
5088:
5089: *) Добавление: директива valid_referers использует хэш для имён сайтов.
5090:
5091: *) Изменение: теперь директива valid_referers проверяет только имена
5092: сайтов без учёта URI.
5093:
5094: *) Исправление: некоторые имена вида ".domain.tld" неверно
5095: обрабатывались модулем ngx_http_map_module.
5096:
5097: *) Исправление: если конфигурационного файла не было, то происходил
5098: segmentation fault; ошибка появилась в 0.3.12.
5099:
5100: *) Исправление: на 64-битных платформах при старте мог произойти
5101: segmentation fault; ошибка появилась в 0.3.16.
5102:
5103:
5104: Изменения в nginx 0.3.17 18.12.2005
5105:
5106: *) Изменение: на Linux configure теперь проверяет наличие epoll и
5107: sendfile64() в ядре.
5108:
5109: *) Добавление: директива map поддерживает доменные имена в формате
5110: ".domain.tld".
5111:
5112: *) Исправление: во время SSL handshake не иcпользовались таймауты;
5113: ошибка появилась в 0.2.4.
5114:
5115: *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5116:
5117: *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
5118: по умолчанию использовался порт 80.
5119:
5120:
5121: Изменения в nginx 0.3.16 16.12.2005
5122:
5123: *) Добавление: модуль ngx_http_map_module.
5124:
5125: *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
5126:
5127: *) Добавление: директива ssi_value_length.
5128:
5129: *) Добавление: директива worker_rlimit_core.
5130:
5131: *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
5132: Pentium 4 номер соединения в логах всегда был равен 1.
5133:
5134: *) Исправление: команда config timefmt в SSI задавала неверный формат
5135: времени.
5136:
5137: *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
5138: использовании SSL соединений; ошибка появилась в 0.3.13.
5139: Спасибо Rob Mueller.
5140:
5141: *) Исправление: segmentation fault мог произойти во время SSL shutdown;
5142: ошибка появилась в 0.3.13.
5143:
5144:
5145: Изменения в nginx 0.3.15 07.12.2005
5146:
5147: *) Добавление: новой код 444 в директиве return для закрытия соединения.
5148:
5149: *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
5150:
5151: *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
5152: соединений только при планом выходе и включённой директиве
5153: debug_points.
5154:
5155:
5156: Изменения в nginx 0.3.14 05.12.2005
5157:
5158: *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
5159: в 0.3.13.
5160:
5161:
5162: Изменения в nginx 0.3.13 05.12.2005
5163:
5164: *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
5165:
5166: *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
5167: /dev/poll.
5168:
5169: *) Исправление: ошибки в обработке SSI.
5170:
5171: *) Исправление: sendfilev() в Solaris теперь не используется при
5172: передаче тела запроса FastCGI-серверу через unix domain сокет.
5173:
5174: *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
5175: появилась в 0.3.11.
5176:
5177:
5178: Изменения в nginx 0.3.12 26.11.2005
5179:
5180: *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
5181: то при использовании директивы "satisfy_any on" директивы доступа и
5182: аутентификации не работали. Модуль ngx_http_realip_module не
5183: собирался и не собирается по умолчанию.
5184:
5185: *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
5186:
5187: *) Изменение: директивы proxy_header_buffer_size и
5188: fastcgi_header_buffer_size переименованы соответственно в
5189: proxy_buffer_size и fastcgi_buffer_size.
5190:
5191: *) Добавление: модуль ngx_http_memcached_module.
5192:
5193: *) Добавление: директива proxy_buffering.
5194:
5195: *) Исправление: изменение в работе с accept mutex при использовании
5196: метода rtsig; ошибка появилась в 0.3.0.
5197:
5198: *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
5199: в заголовке запроса, то nginx теперь выдаёт ошибку 411.
5200:
5201: *) Исправление: при наследовании директивы auth_basic с уровня http в
5202: строке "WWW-Authenticate" заголовка ответа выводился realm без текста
5203: "Basic realm".
5204:
5205: *) Исправление: если в директиве access_log был явно указан формат
5206: combined, то в лог записывались пустые строки; ошибка появилась в
5207: 0.3.8.
5208:
5209: *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
5210: Solaris.
5211:
5212: *) Исправление: в директиве if теперь не нужно разделять пробелом строку
5213: в кавычках и закрывающую скобку.
5214:
5215:
5216: Изменения в nginx 0.3.11 15.11.2005
5217:
5218: *) Исправление: nginx не передавал при проксировании тело запроса и
5219: строки заголовка клиента; ошибка появилась в 0.3.10.
5220:
5221:
5222: Изменения в nginx 0.3.10 15.11.2005
5223:
5224: *) Изменение: директива valid_referers и переменная $invalid_referer
5225: перенесены из модуля ngx_http_rewrite_module в новый модуль
5226: ngx_http_referer_module.
5227:
5228: *) Изменение: имя переменной "$apache_bytes_sent" изменено на
5229: "$body_bytes_sent".
5230:
5231: *) Добавление: переменные "$sent_http_...".
5232:
5233: *) Добавление: директива if поддерживает операции "=" и "!=".
5234:
5235: *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
5236:
5237: *) Добавление: директива proxy_set_body.
5238:
5239: *) Добавление: директива post_action.
5240:
5241: *) Добавление: модуль ngx_http_empty_gif_module.
5242:
5243: *) Добавление: директива worker_cpu_affinity для Linux.
5244:
5245: *) Исправление: директива rewrite не раскодировала символы в редиректах
5246: в URI, теперь символы раскодируются, кроме символов %00-%25 и
5247: %7F-%FF.
5248:
5249: *) Исправление: nginx не собирался компилятором icc 9.0.
5250:
5251: *) Исправление: если для статического файла нулевого размера был
5252: разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
5253:
5254:
5255: Изменения в nginx 0.3.9 10.11.2005
5256:
5257: *) Исправление: nginx считал небезопасными URI, в которых между двумя
5258: слэшами находилось два любых символа; ошибка появилась в 0.3.8.
5259:
5260:
5261: Изменения в nginx 0.3.8 09.11.2005
5262:
5263: *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
5264: строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
5265: наличие путей "/../" и нулей.
5266:
5267: *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
5268: строке "Authorization" в заголовке запроса.
5269:
5270: *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
5271: и ngx_imap_ssl_module.
5272:
5273: *) Добавление: директива auth_http_header модуля
5274: ngx_imap_auth_http_module.
5275:
5276: *) Добавление: директива add_header.
5277:
5278: *) Добавление: модуль ngx_http_realip_module.
5279:
5280: *) Добавление: новые переменные для использования в директиве
5281: log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
5282: $uri, $request_time, $request_length, $upstream_status,
5283: $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
5284: $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
5285: упразднены.
5286:
5287: *) Изменение: в директиве "if" ложными значениями переменных теперь
5288: являются пустая строка "" и строки, начинающиеся на "0".
5289:
5290: *) Исправление: при работает с проксированными или FastCGI-серверами
5291: nginx мог оставлять открытыми соединения и временные файлы с
5292: запросами клиентов.
5293:
5294: *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
5295: плавном выходе.
5296:
5297: *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
5298: запрос проксировался в location, заданном регулярным выражением, то
5299: бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
5300:
5301: *) Исправление: директива expires не удаляла уже установленную строку
5302: заголовка "Expires".
5303:
5304: *) Исправление: при использовании метода rtsig и нескольких рабочих
5305: процессах nginx мог перестать принимать запросы.
5306:
5307: *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
5308: "\'".
5309:
5310: *) Исправление: если ответ заканчивался сразу же после SSI команды, то
5311: при использовании сжатия ответ передавался не до конца или не
5312: передавался вообще.
5313:
5314:
5315: Изменения в nginx 0.3.7 27.10.2005
5316:
5317: *) Добавление: директива access_log поддерживает параметр buffer=.
5318:
5319: *) Исправление: nginx не собирался на платформах, отличных от i386,
5320: amd64, sparc и ppc; ошибка появилась в 0.3.2.
5321:
5322:
5323: Изменения в nginx 0.3.6 24.10.2005
5324:
5325: *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
5326: пустой логин.
5327:
5328: *) Добавление: директива log_format поддерживает переменные в виде
5329: $name.
5330:
5331: *) Исправление: если хотя бы в одном сервере не было описано ни одной
5332: директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
5333: 0.3.3.
5334:
5335: *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
5336: использовался порт 80.
5337:
5338:
5339: Изменения в nginx 0.3.5 21.10.2005
5340:
5341: *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
5342: мог произойти segmentation fault; ошибка появилась в 0.2.2.
5343:
5344: *) Исправление: accept mutex не работал, все соединения обрабатывались
5345: одним рабочим процессом; ошибка появилась в 0.3.3.
5346:
5347: *) Исправление: при использовании метода rtsig и директивы
5348: timer_resolution не работали таймауты.
5349:
5350:
5351: Изменения в nginx 0.3.4 19.10.2005
5352:
5353: *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
5354: появилась в 0.3.3.
5355:
5356:
5357: Изменения в nginx 0.3.3 19.10.2005
5358:
5359: *) Изменение: параметры "bl" и "af" директивы listen переименованы в
5360: "backlog" и "accept_filter".
5361:
5362: *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
5363:
5364: *) Изменение: параметр лога $msec теперь не требует дополнительного
5365: системного вызова gettimeofday().
5366:
5367: *) Добавление: ключ -t теперь проверяет директивы listen.
5368:
5369: *) Исправление: если в директиве listen был указан неверный адрес, то
5370: nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
5371:
5372: *) Исправление: для индексных файлов, содержащих в имени переменную, мог
5373: неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
5374:
5375: *) Добавление: директива timer_resolution.
5376:
5377: *) Добавление: параметр лога $upstream_response_time в миллисекундах.
5378:
5379: *) Исправление: временный файл с телом запроса клиента теперь удаляется
5380: сразу после того, как клиенту передан заголовок ответа.
5381:
5382: *) Исправление: совместимость с OpenSSL 0.9.6.
5383:
5384: *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
5385: относительными.
5386:
5387: *) Исправление: директива ssl_prefer_server_ciphers не работала для
5388: модуля ngx_imap_ssl_module.
5389:
5390: *) Исправление: директива ssl_protocols позволяла задать только один
5391: протокол.
5392:
5393:
5394: Изменения в nginx 0.3.2 12.10.2005
5395:
5396: *) Добавление: поддержка Sun Studio 10 C compiler.
5397:
5398: *) Добавление: директивы proxy_upstream_max_fails,
5399: proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
5400: fastcgi_upstream_fail_timeout.
5401:
5402:
5403: Изменения в nginx 0.3.1 10.10.2005
5404:
5405: *) Исправление: во время переполнения очереди сигналов при использовании
5406: метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
5407:
5408: *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
5409:
5410:
5411: Изменения в nginx 0.3.0 07.10.2005
5412:
5413: *) Изменение: убрано десятидневное ограничение времени работы рабочего
5414: процесса. Ограничение было введено из-за переполнения миллисекундных
5415: таймеров.
5416:
5417:
5418: Изменения в nginx 0.2.6 05.10.2005
5419:
5420: *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
5421: бэкенду при использовании распределения нагрузки.
5422:
5423: *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
5424: запрос теперь передаётся, если в директиве proxy_pass отсутствует
5425: URI.
5426:
5427: *) Добавление: директива error_page поддерживает редиректы и позволяет
5428: более гибко менять код ошибки.
5429:
5430: *) Изменение: в проксированных подзапросах теперь игнорируется
5431: переданный charset.
5432:
5433: *) Исправление: если после изменения URI в блоке if для запроса не
5434: находилась новая конфигурация, то правила модуля
5435: ngx_http_rewrite_module выполнялись снова.
5436:
5437: *) Исправление: если директива set устанавливала переменную модуля
5438: ngx_http_geo_module в какой-либо части конфигурации, то эта
5439: переменная не была доступна в других частях конфигурации и выдавалась
5440: ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
5441:
5442:
5443: Изменения в nginx 0.2.5 04.10.2005
5444:
5445: *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
5446: теперь выдаёт предупреждение и изменяет старое значение.
5447:
5448: *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
5449:
5450: *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
5451: команде include.
5452:
5453: *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
5454: значений переменных в выражениях команды if.
5455:
5456:
5457: Изменения в nginx 0.2.4 03.10.2005
5458:
5459: *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
5460: "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
5461: if.
5462:
5463: *) Исправление: ошибки при проксировании location без слэша в конце;
5464: ошибка появилась в 0.1.44.
5465:
5466: *) Исправление: при использовании метода rtsig мог произойти
5467: segmentation fault; ошибка появилась в 0.2.0.
5468:
5469:
5470: Изменения в nginx 0.2.3 30.09.2005
5471:
5472: *) Исправление: nginx не собирался без параметра --with-debug; ошибка
5473: появилась в 0.2.2.
5474:
5475:
5476: Изменения в nginx 0.2.2 30.09.2005
5477:
5478: *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
5479:
5480: *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
5481: директивой set.
5482:
5483: *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
5484: модулей ngx_http_ssl_module и ngx_imap_ssl_module.
5485:
5486: *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
5487: длинных имён файлов;
5488:
5489: *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
5490: файлы, начинающиеся на точку.
5491:
5492: *) Исправление: если SSL handshake завершался с ошибкой, то это могло
5493: привести также к закрытию другого соединения.
5494: Спасибо Rob Mueller.
5495:
5496: *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
5497: HTTPS.
5498:
5499:
5500: Изменения в nginx 0.2.1 23.09.2005
5501:
5502: *) Исправление: если все бэкенды, используемые для балансировки
5503: нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
5504: nginx мог зациклится; ошибка появилась в 0.2.0.
5505:
5506:
5507: Изменения в nginx 0.2.0 23.09.2005
5508:
5509: *) Изменились имена pid-файлов, используемые во время обновления
5510: исполняемого файла. Ручное переименование теперь не нужно. Старый
5511: основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
5512: запускает новый исполняемый файл. Новый основной процесс создаёт
5513: обычный pid-файл без суффикса ".newbin". Если новый основной процесс
5514: выходит, то старый процесс переименовывает свой pid-файл c суффиксом
5515: ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
5516: 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
5517: 0.2.0 - используют pid-файл без суффиксов.
5518:
5519: *) Изменение: директива worker_connections, новое название директивы
5520: connections; директива теперь задаёт максимальное число соединений, а
5521: не максимально возможный номер дескриптора для сокета.
5522:
5523: *) Добавление: SSL поддерживает кэширование сессий в пределах одного
5524: рабочего процесса.
5525:
5526: *) Добавление: директива satisfy_any.
5527:
5528: *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
5529: не работают для подзапросов.
5530:
5531: *) Добавление: директивы worker_rlimit_nofile и
5532: worker_rlimit_sigpending.
5533:
5534: *) Исправление: если все бэкенды, используемые для балансировки
5535: нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
5536: nginx не обращался к ним в течение 60 секунд.
5537:
5538: *) Исправление: в парсинге аргументов IMAP/POP3 команд.
5539: Спасибо Rob Mueller.
5540:
5541: *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
5542:
5543: *) Исправление: ошибки при использовании SSI и сжатия.
5544:
5545: *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
5546: "Expires" и "Cache-Control".
5547: Спасибо Александру Кукушкину.
5548:
5549:
5550: Изменения в nginx 0.1.45 08.09.2005
5551:
5552: *) Изменение: директива ssl_engine упразднена в модуле
5553: ngx_http_ssl_module и перенесена на глобальный уровень.
5554:
5555: *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
5556: передавались через SSL соединение.
5557:
5558: *) Разные исправления в IMAP/POP3 прокси.
5559:
5560:
5561: Изменения в nginx 0.1.44 06.09.2005
5562:
5563: *) Добавление: IMAP/POP3 прокси поддерживает SSL.
5564:
5565: *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
5566:
5567: *) Добавление: директива userid_mark.
5568:
5569: *) Добавление: значение переменной $remote_user определяется независимо
5570: от того, используется ли авторизация или нет.
5571:
5572:
5573: Изменения в nginx 0.1.43 30.08.2005
5574:
5575: *) Добавление: listen(2) backlog в директиве listen можно менять по
5576: сигналу -HUP.
5577:
5578: *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
5579:
5580: *) Изменение: параметры FastCGI с пустым значениями теперь передаются
5581: серверу.
5582:
5583: *) Исправление: если в ответе проксированного сервера или FastCGI
5584: сервера была строка "Cache-Control", то при использовании директивы
5585: expires происходил segmentation fault или рабочий процесс мог
5586: зациклится; в режиме прокси ошибка появилась в 0.1.29.
5587:
5588:
5589: Изменения в nginx 0.1.42 23.08.2005
5590:
5591: *) Исправление: если URI запроса получался нулевой длины после обработки
5592: модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
5593: происходил segmentation fault или bus error.
5594:
5595: *) Исправление: директива limit_rate не работала внутри блока if; ошибка
5596: появилась в 0.1.38.
5597:
5598:
5599: Изменения в nginx 0.1.41 25.07.2005
5600:
5601: *) Исправление: если переменная использовалась в файле конфигурации, то
5602: она не могла использоваться в SSI.
5603:
5604:
5605: Изменения в nginx 0.1.40 22.07.2005
5606:
5607: *) Исправление: если клиент слал очень длинную строку заголовка, то в
5608: логе не помещалась информация, связанная с этим запросом.
5609:
5610: *) Исправление: при использовании "X-Accel-Redirect" не передавалась
5611: строка "Set-Cookie"; ошибка появилась в 0.1.39.
5612:
5613: *) Исправление: при использовании "X-Accel-Redirect" не передавалась
5614: строка "Content-Disposition".
5615:
5616: *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
5617: на которых он слушал.
5618:
5619: *) Исправление: после обновления исполняемого файла на лету на Linux и
5620: Solaris название процесса в команде ps становилось короче.
5621:
5622:
5623: Изменения в nginx 0.1.39 14.07.2005
5624:
5625: *) Изменения в модуле ngx_http_charset_module: директива default_charset
5626: упразднена; директива charset задаёт кодировку ответа; директива
5627: source_charset задаёт только исходную кодировку.
5628:
5629: *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
5630: не передавалась строка заголовка "WWW-Authenticate".
5631:
5632: *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
5633: могли закрыть соединение до того, как что-нибудь было передано
5634: клиенту; ошибка появилась в 0.1.38.
5635:
5636: *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
5637:
5638: *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
5639: URI в команде include virtual.
5640:
5641: *) Исправление: если в строке заголовка ответа бэкенда была строка
5642: "Location", которую nginx не должен был изменять, то в ответе
5643: передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
5644:
5645: *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
5646: ngx_http_fastcgi_module не наследовались с уровня server на уровень
5647: location; ошибка появилась в 0.1.29.
5648:
5649: *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
5650: сертификатов.
5651:
5652: *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
5653: длинных имён файлов; ошибка появилась в 0.1.38.
5654:
5655: *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
5656: стадии login.
5657:
5658:
5659: Изменения в nginx 0.1.38 08.07.2005
5660:
5661: *) Добавление: директива limit_rate поддерживается в режиме прокси и
5662: FastCGI.
5663:
5664: *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
5665: "X-Accel-Limit-Rate" в ответе бэкенда.
5666:
5667: *) Добавление: директива break.
5668:
5669: *) Добавление: директива log_not_found.
5670:
5671: *) Исправление: при перенаправлении запроса с помощью строки заголовка
5672: "X-Accel-Redirect" не изменялся код ответа.
5673:
5674: *) Исправление: переменные, установленные директивой set не могли
5675: использоваться в SSI.
5676:
5677: *) Исправление: при включении в SSI более одного удалённого подзапроса
5678: мог произойти segmentation fault.
5679:
5680: *) Исправление: если статусная строка в ответе бэкенда передавалась в
5681: двух пакетах, то nginx считал ответ неверным; ошибка появилась в
5682: 0.1.29.
5683:
5684: *) Добавление: директива ssi_types.
5685:
5686: *) Добавление: директива autoindex_exact_size.
5687:
5688: *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
5689: имена файлов в UTF-8.
5690:
5691: *) Добавление: IMAP/POP3 прокси.
5692:
5693:
5694: Изменения в nginx 0.1.37 23.06.2005
5695:
5696: *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
5697:
5698: *) Исправление: при включении большого количества вставок или нескольких
5699: больших вставок с помощью SSI ответ мог передаваться не полностью.
5700:
5701: *) Исправление: если все бэкенды возвращали ответ 404, то при
5702: использовании параметра http_404 в директивах proxy_next_upstream или
5703: fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
5704:
5705:
5706: Изменения в nginx 0.1.36 15.06.2005
5707:
5708: *) Изменение: если в заголовке запросе есть дублирующиеся строки "Host",
5709: "Connection", "Content-Length" и "Authorization", то nginx теперь
5710: выдаёт ошибку 400.
5711:
5712: *) Изменение: директива post_accept_timeout упразднена.
5713:
5714: *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
5715: listen.
5716:
5717: *) Добавление: поддержка accept фильтров во FreeBSD.
5718:
5719: *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
5720:
5721: *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
5722: файлов в UTF-8.
5723:
5724: *) Исправление: после добавления новый лог-файл ротация этого лога по
5725: сигналу -USR1 выполнялась, только если переконфигурировать nginx два
5726: раза по сигналу -HUP.
5727:
5728:
5729: Изменения в nginx 0.1.35 07.06.2005
5730:
5731: *) Добавление: директива working_directory.
5732:
5733: *) Добавление: директива port_in_redirect.
5734:
5735: *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
5736: то происходил segmentation fault; ошибка появилась в 0.1.29.
5737:
5738: *) Исправление: если было сконфигурировано более 10 серверов или в
5739: сервере не описана директива "listen", то при запуске мог произойти
5740: segmentation fault.
5741:
5742: *) Исправление: если ответ не помещался во временный файл, то мог
5743: произойти segmentation fault.
5744:
5745: *) Исправление: nginx возвращал ошибку 400 на запросы вида
5746: "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
5747:
5748:
5749: Изменения в nginx 0.1.34 26.05.2005
5750:
5751: *) Исправление: при включении больших ответов с помощью SSI рабочий
5752: процесс мог зациклиться.
5753:
5754: *) Исправление: переменные, устанавливаемые директивой "set", не были
5755: доступны в SSI.
5756:
5757: *) Добавление: директива autoindex_localtime.
5758:
5759: *) Исправление: пустое значение в директиве proxy_set_header запрещает
5760: передачу заголовка.
5761:
5762:
5763: Изменения в nginx 0.1.33 23.05.2005
5764:
5765: *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
5766: появилась в 0.1.29.
5767:
5768: *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
5769: вызывали bus fault при запуске.
5770:
5771: *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
5772: HTTP.
5773:
5774: *) Исправление: если директива rewrite использовала выделения внутри
5775: директивы if, то возвращалась ошибка 500.
5776:
5777:
5778: Изменения в nginx 0.1.32 19.05.2005
5779:
5780: *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
5781: передавались аргументы; ошибка появилась в 0.1.29.
5782:
5783: *) Добавление: директива if поддерживает выделения в регулярных
5784: выражениях.
5785:
5786: *) Добавление: директива set поддерживает переменные и выделения из
5787: регулярных выражений.
5788:
5789: *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
5790: "X-Accel-Redirect" в ответе бэкенда.
5791:
5792:
5793: Изменения в nginx 0.1.31 16.05.2005
5794:
5795: *) Исправление: при использовании SSL ответ мог передаваться не до
5796: конца.
5797:
5798: *) Исправление: ошибки при обработке SSI в ответе, полученного от
5799: FastCGI-сервера.
5800:
5801: *) Исправление: ошибки при использовании SSI и сжатия.
5802:
5803: *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
5804: появилась в 0.1.30.
5805:
5806:
5807: Изменения в nginx 0.1.30 14.05.2005
5808:
5809: *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
5810:
5811: *) Исправление: при использовании SSL ответ мог передаваться не до
5812: конца.
5813:
5814: *) Исправление: если длина части ответа, полученного за один раз от
5815: проксируемого или FastCGI сервера была равна 500 байт, то nginx
5816: возвращал код ответа 500; в режиме прокси ошибка появилась только в
5817: 0.1.29.
5818:
5819: *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
5820: параметрами.
5821:
5822: *) Добавление: директива return может возвращать код ответа 204.
5823:
5824: *) Добавление: директива ignore_invalid_headers.
5825:
5826:
5827: Изменения в nginx 0.1.29 12.05.2005
5828:
5829: *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
5830: virtual.
5831:
5832: *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
5833: вида 'if expr="$NAME"' и команды else и endif. Допускается только
5834: один уровень вложенности.
5835:
5836: *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
5837: DATE_LOCAL и DATE_GMT и команду config timefmt.
5838:
5839: *) Добавление: директива ssi_ignore_recycled_buffers.
5840:
5841: *) Исправление: если переменная QUERY_STRING не была определена, то в
5842: команде echo не ставилось значение по умолчанию.
5843:
5844: *) Изменение: модуль ngx_http_proxy_module полностью переписан.
5845:
5846: *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
5847: proxy_pass_request_body и proxy_method.
5848:
5849: *) Добавление: директива proxy_set_header. Директива proxy_x_var
5850: упразднена и должна быть заменена директивой proxy_set_header.
5851:
5852: *) Изменение: директива proxy_preserve_host упразднена и должна быть
5853: заменена директивами "proxy_set_header Host $host" и "proxy_redirect
5854: off" или директивой "proxy_set_header Host $host:$proxy_port" и
5855: соответствующими ей директивами proxy_redirect.
5856:
5857: *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
5858: заменена директивой "proxy_set_header X-Real-IP $remote_addr".
5859:
5860: *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
5861: быть заменена директивой
5862: "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
5863:
5864: *) Изменение: директива proxy_set_x_url упразднена и должна быть
5865: заменена директивой
5866: "proxy_set_header X-URL http://$host:$server_port$request_uri".
5867:
5868: *) Добавление: директива fastcgi_param.
5869:
5870: *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
5871: упразднены и должны быть замены директивами fastcgi_param.
5872:
5873: *) Добавление: директива index может использовать переменные.
5874:
5875: *) Добавление: директива index может быть указана на уровне http и
5876: server.
5877:
5878: *) Изменение: только последний параметр в директиве index может быть
5879: абсолютным.
5880:
5881: *) Добавление: в директиве rewrite могут использоваться переменные.
5882:
5883: *) Добавление: директива internal.
5884:
5885: *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
5886: SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
5887: SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
5888:
5889: *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
5890: клиента и ответа бэкенда.
5891:
5892: *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
5893: меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
5894:
5895: *) Исправление: если бэкенд передавал неверную строку в заголовке
5896: ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
5897:
5898: *) Исправление: при использовании отказоустойчивой конфигурации в
5899: FastCGI мог происходить segmentation fault.
5900:
5901: *) Исправление: директива expires не удаляла уже установленные строки
5902: заголовка "Expires" и "Cache-Control".
5903:
5904: *) Исправление: nginx не учитывал завершающую точку в строке заголовка
5905: запроса "Host".
5906:
5907: *) Исправление: модуль ngx_http_auth_module не работал на Linux.
5908:
5909: *) Исправление: директива rewrite неверно работала, если в запросе
5910: присутствовали аргументы.
5911:
5912: *) Исправление: nginx не собирался на MacOS X.
5913:
5914:
5915: Изменения в nginx 0.1.28 08.04.2005
5916:
5917: *) Исправление: при проксировании больших файлов nginx сильно нагружал
5918: процессор.
5919:
5920: *) Исправление: nginx не собирался gcc 4.0 на Linux.
5921:
5922:
5923: Изменения в nginx 0.1.27 28.03.2005
5924:
5925: *) Добавление: параметр blocked в директиве valid_referers.
5926:
5927: *) Изменение: ошибки обработки заголовка запроса теперь записываются на
5928: уровне info, в лог также записывается имя сервера и строки заголовка
5929: запроса "Host" и "Referer".
5930:
5931: *) Изменение: при записи ошибок в лог записывается также строка
5932: заголовка запроса "Host".
5933:
5934: *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
5935: символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
5936:
5937: *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
5938: параметр конфигурации --without-ngx_http_auth_basic_module.
5939:
5940:
5941: Изменения в nginx 0.1.26 22.03.2005
5942:
5943: *) Изменение: неверные строки заголовка, переданные клиентом, теперь
5944: игнорируется и записываются в error_log на уровне info.
5945:
5946: *) Изменение: при записи ошибок в лог записывается также имя сервера,
5947: при обращении к которому произошла ошибка.
5948:
5949: *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
5950: и auth_basic_user_file.
5951:
5952:
5953: Изменения в nginx 0.1.25 19.03.2005
5954:
5955: *) Исправление: nginx не работал на Linux parisc.
5956:
5957: *) Добавление: nginx теперь не запускается под FreeBSD, если значение
5958: sysctl kern.ipc.somaxconn слишком большое.
5959:
5960: *) Исправление: если модуль ngx_http_index_module делал внутреннее
5961: перенаправление запроса в модули ngx_http_proxy_module или
5962: ngx_http_fastcgi_module, то файл индекса не закрывался после
5963: обслуживания запроса.
5964:
5965: *) Добавление: директива proxy_pass может использоваться в location,
5966: заданных регулярным выражением.
5967:
5968: *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
5969: условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
5970:
5971: *) Исправление: nginx очень медленно запускался при большом количестве
5972: адресов и использовании текстовых значений в директиве geo.
5973:
5974: *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
5975: Прежний вариант без "$" пока работает, но вскоре будет убран.
5976:
5977: *) Добавление: параметр лога "%{VARIABLE}v".
5978:
5979: *) Добавление: директива "set $name value".
5980:
5981: *) Исправление: совместимость с gcc 4.0.
5982:
5983: *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
5984:
5985:
5986: Изменения в nginx 0.1.24 04.03.2005
5987:
5988: *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
5989: QUERY_STRING и DOCUMENT_URI.
5990:
5991: *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
5992: на существующий каталог, если этот каталог был указан как alias.
5993:
5994: *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
5995: при больших ответах.
5996:
5997: *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
5998: правильным referrer'ом.
5999:
6000:
6001: Изменения в nginx 0.1.23 01.03.2005
6002:
6003: *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
6004: ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
6005: var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
6006:
6007: *) Добавление: параметр лога %request_time.
6008:
6009: *) Добавление: если запрос пришёл без строки заголовка "Host", то
6010: директива proxy_preserve_host устанавливает в качестве этого
6011: заголовка первое имя сервера из директивы server_name.
6012:
6013: *) Исправление: nginx не собирался на платформах, отличных от i386,
6014: amd64, sparc и ppc; ошибка появилась в 0.1.22.
6015:
6016: *) Исправление: модуль ngx_http_autoindex_module теперь показывает
6017: информацию не о символическом линке, а о файле или каталоге, на
6018: который он указывает.
6019:
6020: *) Исправление: если клиенту ничего не передавалось, то параметр
6021: %apache_length записывал в лог отрицательную длину заголовка ответа.
6022:
6023:
6024: Изменения в nginx 0.1.22 22.02.2005
6025:
6026: *) Исправление: модуль ngx_http_stub_status_module показывал неверную
6027: статистику для обработанных соединений, если использовалось
6028: проксирование или FastCGI-сервер.
6029:
6030: *) Исправление: на Linux и Solaris установочные пути были неверно
6031: заключены в кавычки; ошибка появилась в 0.1.21.
6032:
6033:
6034: Изменения в nginx 0.1.21 22.02.2005
6035:
6036: *) Исправление: модуль ngx_http_stub_status_module показывал неверную
6037: статистику при использовании метода rtsig или при использовании
6038: нескольких рабочих процессов на SMP машине.
6039:
6040: *) Исправление: nginx не собирался компилятором icc под Линуксом или
6041: если библиотека zlib-1.2.x собиралась из исходных текстов.
6042:
6043: *) Исправление: nginx не собирался под NetBSD 2.0.
6044:
6045:
6046: Изменения в nginx 0.1.20 17.02.2005
6047:
6048: *) Добавление: новые параметры script_filename и remote_port в директиве
6049: fastcgi_params.
6050:
6051: *) Исправление: неправильно обрабатывался поток stderr от
6052: FastCGI-сервера.
6053:
6054:
6055: Изменения в nginx 0.1.19 16.02.2005
6056:
6057: *) Исправление: если в запросе есть нуль, то для локальных запросов
6058: теперь возвращается ошибка 404.
6059:
6060: *) Исправление: nginx не собирался под NetBSD 2.0.
6061:
6062: *) Исправление: во время чтения тела запроса клиента в SSL соединении
6063: мог произойти таймаут.
6064:
6065:
6066: Изменения в nginx 0.1.18 09.02.2005
6067:
6068: *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
6069: и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
6070:
6071: *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
6072: наследовались.
6073:
6074: *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
6075: присоединялись к URI через символ "&" вместо "?".
6076:
6077: *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
6078: включённом файле игнорировались.
6079:
6080: *) Добавление: модуль ngx_http_stub_status_module.
6081:
6082: *) Исправление: неизвестный формат лог-файла в директиве access_log
6083: вызывал segmentation fault.
6084:
6085: *) Добавление: новый параметр document_root в директиве fastcgi_params.
6086:
6087: *) Добавление: директива fastcgi_redirect_errors.
6088:
6089: *) Добавление: новый модификатор break в директиве rewrite позволяет
6090: прекратить цикл rewrite/location и устанавливает текущую конфигурацию
6091: для запроса.
6092:
6093:
6094: Изменения в nginx 0.1.17 03.02.2005
6095:
6096: *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
6097: можно делать редиректы, возвращать коды ошибок и проверять переменные
6098: и рефереры. Эти директивы можно использовать внутри location.
6099: Директива redirect упразднена.
6100:
6101: *) Добавление: модуль ngx_http_geo_module.
6102:
6103: *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
6104:
6105: *) Исправление: конфигурация location с модификатором "=" могла
6106: использоваться в другом location.
6107:
6108: *) Исправление: правильный тип ответа выставлялся только для запросов, у
6109: которых в расширении были только маленькие буквы.
6110:
6111: *) Исправление: если для location установлен proxy_pass или
6112: fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
6113: на статическую страницу, то происходил segmentation fault.
6114:
6115: *) Исправление: если в проксированном ответе в заголовке "Location"
6116: передавался относительный URL, то к нему добавлялось имя хоста и
6117: слэш; ошибка появилась в 0.1.14.
6118:
6119: *) Исправление: на Linux в лог не записывался текст системной ошибки.
6120:
6121:
6122: Изменения в nginx 0.1.16 25.01.2005
6123:
6124: *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
6125: выдавался завершающий chunk.
6126:
6127: *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
6128: директива keepalive_timeout запрещала использование keep-alive.
6129:
6130: *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
6131: segmentation fault.
6132:
6133: *) Исправление: при использовании SSL сжатый ответ мог передаваться не
6134: до конца.
6135:
6136: *) Исправление: опции TCP_NODELAY, TCP_NOPSUH и TCP_CORK, специфичные
6137: для TCP сокетов, не используются для unix domain сокетов.
6138:
6139: *) Добавление: директива rewrite поддерживает перезаписывание
6140: аргументов.
6141:
6142: *) Исправление: на запрос POST с заголовком "Content-Length: 0"
6143: возвращался ответ 400; ошибка появилась в 0.1.14.
6144:
6145:
6146: Изменения в nginx 0.1.15 19.01.2005
6147:
6148: *) Исправление: ошибка соединения с FastCGI-сервером вызывала
6149: segmentation fault.
6150:
6151: *) Исправление: корректная обработка регулярного выражения, в котором
6152: число выделенных частей не совпадает с числом подстановок.
6153:
6154: *) Добавление: location, который передаётся FastCGI-серверу, может быть
6155: задан с помощью регулярного выражения.
6156:
6157: *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
6158: аргументами и в том виде, в котором был получен от клиента.
6159:
6160: *) Исправление: для использования регулярных выражений в location нужно
6161: было собирать nginx вместе с ngx_http_rewrite_module.
6162:
6163: *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
6164: директивы "proxy_preserve_host on" в заголовке "Host" указывался
6165: также порт 80; ошибка появилась в 0.1.14.
6166:
6167: *) Исправление: если задать одинаковые пути в параметрах
6168: автоконфигурации --http-client-body-temp-path=PATH и
6169: --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
6170: --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
6171:
6172:
6173: Изменения в nginx 0.1.14 18.01.2005
6174:
6175: *) Добавление: параметры автоконфигурации
6176: --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
6177: --http-fastcgi-temp-path=PATH
6178:
6179: *) Изменение: имя каталога с временными файлами, содержащие тело запроса
6180: клиента, задаётся директивой client_body_temp_path, по умолчанию
6181: <prefix>/client_body_temp.
6182:
6183: *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
6184: fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
6185: fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
6186: fastcgi_header_buffer_size, fastcgi_buffers,
6187: fastcgi_busy_buffers_size, fastcgi_temp_path,
6188: fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
6189: fastcgi_next_upstream и fastcgi_x_powered_by.
6190:
6191: *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
6192: 0.1.3.
6193:
6194: *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
6195: после имени хоста.
6196:
6197: *) Изменение: если в URI встречался символ %3F, то он считался началом
6198: строки аргументов.
6199:
6200: *) Добавление: поддержка unix domain сoкетов в модуле
6201: ngx_http_proxy_module.
6202:
6203: *) Добавление: директивы ssl_engine и ssl_ciphers.
6204: Спасибо Сергею Скворцову за SSL-акселератор.
6205:
6206:
6207: Изменения в nginx 0.1.13 21.12.2004
6208:
6209: *) Добавление: директивы server_names_hash и
6210: server_names_hash_threshold.
6211:
6212: *) Исправление: имена *.domain.tld в директиве server_name не работали.
6213:
6214: *) Исправление: параметр лога %request_length записывал неверную длину.
6215:
6216:
6217: Изменения в nginx 0.1.12 06.12.2004
6218:
6219: *) Добавление: параметр лога %request_length.
6220:
6221: *) Исправление: при использовании /dev/poll, select и poll на
6222: платформах, где возможны ложные срабатывания указанных методов, могли
6223: быть длительные задержки при обработке запроса по keep-alive
6224: соединению. Наблюдалось по крайней мере на Solaris с использованием
6225: /dev/poll.
6226:
6227: *) Исправление: директива send_lowat игнорируется на Linux, так как
6228: Linux не поддерживает опцию SO_SNDLOWAT.
6229:
6230:
6231: Изменения в nginx 0.1.11 02.12.2004
6232:
6233: *) Добавление: директива worker_priority.
6234:
6235: *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
6236: влияют на передачу ответа.
6237:
6238: *) Исправление: nginx не вызывал initgroups().
6239: Спасибо Андрею Ситникову и Андрею Нигматулину.
6240:
6241: *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
6242: байтах.
6243:
6244: *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
6245: каталоге есть битый symlink.
6246:
6247: *) Исправление: файлы больше 4G не передавались с использованием
6248: sendfile.
6249:
6250: *) Исправление: если бэкенд резолвился в несколько адресов и при
6251: ожидании от него ответа происходила ошибка, то процесс зацикливался.
6252:
6253: *) Исправление: при использовании метода /dev/poll рабочий процесс мог
6254: завершиться с сообщением "unknown cycle".
6255:
6256: *) Исправление: ошибки "close() channel failed".
6257:
6258: *) Исправление: автоматическое определение групп nobody и nogroup.
6259:
6260: *) Исправление: директива send_lowat не работала на Linux.
6261:
6262: *) Исправление: если в конфигурации не было раздела events, то
6263: происходил segmentation fault.
6264:
6265: *) Исправление: nginx не собирался под OpenBSD.
6266:
6267: *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
6268:
6269:
6270: Изменения в nginx 0.1.10 26.11.2004
6271:
6272: *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
6273: или "%XX", то терялся последний символ в строке запроса; ошибка
6274: появилась в 0.1.9.
6275:
6276: *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
6277: не работало.
6278:
6279:
6280: Изменения в nginx 0.1.9 25.11.2004
6281:
6282: *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
6283: проксируемый запрос передавался без аргументов.
6284:
6285: *) Исправление: при сжатии больших ответов иногда они передавались не
6286: полностью.
6287:
6288: *) Исправление: не передавались файлы больше 2G на Linux,
6289: неподдерживающем sendfile64().
6290:
6291: *) Исправление: на Linux при конфигурации сборки нужно было обязательно
6292: использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
6293:
6294:
6295: Изменения в nginx 0.1.8 20.11.2004
6296:
6297: *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
6298: длинных имён файлов.
6299:
6300: *) Добавление: модификатор "^~" в директиве location.
6301:
6302: *) Добавление: директива proxy_max_temp_file_size.
6303:
6304:
6305: Изменения в nginx 0.1.7 12.11.2004
6306:
6307: *) Исправление: при использовании sendfile, если передаваемый файл
6308: менялся, то мог произойти segmentation fault на FreeBSD; ошибка
6309: появилась в 0.1.5.
6310:
6311:
6312: Изменения в nginx 0.1.6 11.11.2004
6313:
6314: *) Исправление: при некоторых комбинациях директив location c
6315: регулярными выражениями использовалась конфигурация не из того
6316: location.
6317:
6318:
6319: Изменения в nginx 0.1.5 11.11.2004
6320:
6321: *) Исправление: на Solaris и Linux могло быть очень много сообщений
6322: "recvmsg() returned not enough data".
6323:
6324: *) Исправление: в режиме прокси без использования sendfile на Solaris
6325: возникала ошибка "writev() failed (22: Invalid argument)". На других
6326: платформах, не поддерживающих sendfile, процесс зацикливался.
6327:
6328: *) Исправление: при использовании sendfile в режиме прокси на Solaris
6329: возникал segmentation fault.
6330:
6331: *) Исправление: segmentation fault на Solaris.
6332:
6333: *) Исправление: обновление исполняемого файла на лету не работало на
6334: Linux.
6335:
6336: *) Исправление: в списке файлов, выдаваемом модулем
6337: ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
6338: знаки процента.
6339:
6340: *) Изменение: уменьшение операций копирования.
6341:
6342: *) Добавление: директива userid_p3p.
6343:
6344:
6345: Изменения в nginx 0.1.4 26.10.2004
6346:
6347: *) Исправление: ошибка в модуле ngx_http_autoindex_module.
6348:
6349:
6350: Изменения в nginx 0.1.3 25.10.2004
6351:
6352: *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
6353:
6354: *) Добавление: директива proxy_set_x_url.
6355:
6356: *) Исправление: модуль проксировании мог привести к зацикливанию, если
6357: не использовался sendfile.
6358:
6359:
6360: Изменения в nginx 0.1.2 21.10.2004
6361:
6362: *) Добавление: параметры --user=USER, --group=GROUP и
6363: --with-ld-opt=OPTIONS в configure.
6364:
6365: *) Добавление: директива server_name поддерживает *.domain.tld.
6366:
6367: *) Исправление: улучшена переносимость на неизвестные платформы.
6368:
6369: *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
6370: файл указан в командной строке; ошибка появилась в 0.1.1.
6371:
6372: *) Исправление: модуль проксировании мог привести к зацикливанию, если
6373: не использовался sendfile.
6374:
6375: *) Исправление: при использовании sendfile текст ответа не
6376: перекодировался согласно директивам модуля charset; ошибка появилась
6377: в 0.1.1.
6378:
6379: *) Исправление: очень редкая ошибка при обработке kqueue.
6380:
6381: *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
6382: проксировании.
6383:
6384:
6385: Изменения в nginx 0.1.1 11.10.2004
6386:
6387: *) Добавление: директива gzip_types.
6388:
6389: *) Добавление: директива tcp_nodelay.
6390:
6391: *) Добавление: директива send_lowat работает не только на платформах,
6392: поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
6393: SO_SNDLOWAT.
6394:
6395: *) Добавление: эмуляция setproctitle() для Linux и Solaris.
6396:
6397: *) Исправление: ошибка при переписывании заголовка "Location" при
6398: проксировании.
6399:
6400: *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
6401: зацикливанию.
6402:
6403: *) Исправление: ошибки в модуле /dev/poll.
6404:
6405: *) Исправление: при проксировании и использовании временных файлов
6406: ответы портились.
6407:
6408: *) Исправление: бэкенду передавались запросы с неперекодированными
6409: символами.
6410:
6411: *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
6412: обязательно использовать параметр --with-poll_module.
6413:
6414:
6415: Изменения в nginx 0.1.0 04.10.2004
6416:
6417: *) Первая публично доступная версия.
6418:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>