comparison text/ru/CHANGES.ru-1.6 @ 1169:525190b17193

nginx-1.7.0, nginx-1.6.0
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 24 Apr 2014 17:04:43 +0400
parents text/ru/CHANGES.ru@57c6219b2975
children f6d12250cda5
comparison
equal deleted inserted replaced
1168:384bb0349a8a 1169:525190b17193
1
2 Изменения в nginx 1.6.0 24.04.2014
3
4 *) Стабильная ветка 1.6.x.
5
6
7 Изменения в nginx 1.5.13 08.04.2014
8
9 *) Изменение: улучшена обработка хэш-таблиц; в директивах
10 variables_hash_max_size и types_hash_bucket_size значения по
11 умолчанию изменены на 1024 и 64 соответственно.
12
13 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
14
15 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
16 сохранении ответов в кэш.
17
18 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
19 failed: no memory" при использовании разделяемой памяти в
20 ssl_session_cache и в модуле ngx_http_limit_req_module.
21
22 *) Исправление: директива underscores_in_headers не разрешала
23 подчёркивание в первом символе заголовка.
24 Спасибо Piotr Sikora.
25
26 *) Исправление: cache manager мог нагружать процессор при выходе в
27 nginx/Windows.
28
29 *) Исправление: при использовании ssl_session_cache с параметром shared
30 рабочий процесс nginx/Windows завершался аварийно.
31
32 *) Исправление: в модуле ngx_http_spdy_module.
33
34
35 Изменения в nginx 1.5.12 18.03.2014
36
37 *) Безопасность: при обработке специально созданного запроса модулем
38 ngx_http_spdy_module могло происходить переполнение буфера в рабочем
39 процессе, что потенциально могло приводить к выполнению произвольного
40 кода (CVE-2014-0133).
41 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
42 Buenos Aires, Argentina.
43
44 *) Добавление: параметр proxy_protocol в директивах listen и
45 real_ip_header, переменная $proxy_protocol_addr.
46
47 *) Исправление: в директиве fastcgi_next_upstream.
48 Спасибо Lucas Molas.
49
50
51 Изменения в nginx 1.5.11 04.03.2014
52
53 *) Безопасность: при обработке специально созданного запроса модулем
54 ngx_http_spdy_module на 32-битных платформах могла повреждаться
55 память рабочего процесса, что потенциально могло приводить к
56 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
57 1.5.10.
58 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
59 Buenos Aires, Argentina.
60
61 *) Добавление: переменная $ssl_session_reused.
62
63 *) Исправление: директива client_max_body_size могла не работать при
64 чтении тела запроса с использованием chunked transfer encoding;
65 ошибка появилась в 1.3.9.
66 Спасибо Lucas Molas.
67
68 *) Исправление: при проксировании WebSocket-соединений в рабочем
69 процессе мог произойти segmentation fault.
70
71 *) Исправление: в рабочем процессе мог произойти segmentation fault,
72 если использовался модуль ngx_http_spdy_module на 32-битных
73 платформах; ошибка появилась в 1.5.10.
74
75 *) Исправление: значение переменной $upstream_status могло быть
76 неверным, если использовались директивы proxy_cache_use_stale или
77 proxy_cache_revalidate.
78 Спасибо Piotr Sikora.
79
80 *) Исправление: в рабочем процессе мог произойти segmentation fault,
81 если ошибки с кодом 400 с помощью директивы error_page
82 перенаправлялись в именованный location.
83
84 *) Исправление: nginx/Windows не собирался с Visual Studio 2013.
85
86
87 Изменения в nginx 1.5.10 04.02.2014
88
89 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол
90 SPDY 3.1.
91 Спасибо Automattic и MaxCDN за спонсирование разработки.
92
93 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
94 имеющие меньшую длину, чем запрошенная перемотка.
95
96 *) Исправление: в рабочем процессе мог произойти segmentation fault,
97 если переменная $ssl_session_id использовалась при логгировании;
98 ошибка появилась в 1.5.9.
99
100 *) Исправление: переменные $date_local и $date_gmt использовали неверный
101 формат вне модуля ngx_http_ssi_filter_module.
102
103 *) Исправление: клиентские соединения могли сразу закрываться, если
104 использовался отложенный accept; ошибка появилась в 1.3.15.
105
106 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
107 записывались в лог в процессе обновления исполняемого файла на Linux;
108 ошибка появилась в 1.5.8.
109 Спасибо Piotr Sikora.
110
111
112 Изменения в nginx 1.5.9 22.01.2014
113
114 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
115 закодированный URI.
116
117 *) Добавление: директива ssl_buffer_size.
118
119 *) Добавление: директиву limit_rate теперь можно использовать для
120 ограничения скорости передачи ответов клиенту в SPDY-соединениях.
121
122 *) Добавление: директива spdy_chunk_size.
123
124 *) Добавление: директива ssl_session_tickets.
125 Спасибо Dirkjan Bussink.
126
127 *) Исправление: переменная $ssl_session_id содержала всю сессию в
128 сериализованном виде вместо её идентификатора.
129 Спасибо Ivan Ristić.
130
131 *) Исправление: nginx неправильно обрабатывал закодированный символ "?"
132 в команде SSI include.
133
134 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
135 при обработке методов COPY и MOVE.
136
137 *) Исправление: resolver не понимал доменные имена с точкой в конце.
138 Спасибо Yichun Zhang.
139
140 *) Исправление: при проксировании в логах могли появляться сообщения
141 "zero size buf in output"; ошибка появилась в 1.3.9.
142
143 *) Исправление: в рабочем процессе мог произойти segmentation fault,
144 если использовался модуль ngx_http_spdy_module.
145
146 *) Исправление: при использовании методов обработки соединений select,
147 poll и /dev/poll проксируемые WebSocket-соединения могли зависать
148 сразу после открытия.
149
150 *) Исправление: директива xclient почтового прокси-сервера некорректно
151 передавала IPv6-адреса.
152
153
154 Изменения в nginx 1.5.8 17.12.2013
155
156 *) Добавление: теперь resolver поддерживает IPv6.
157
158 *) Добавление: директива listen поддерживает параметр fastopen.
159 Спасибо Mathew Rodley.
160
161 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
162 Спасибо Roberto De Ioris.
163
164 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
165 Спасибо Evan Miller.
166
167 *) Исправление: при чтении тела запроса с использованием chunked
168 transfer encoding по SSL-соединению мог произойти таймаут.
169
170 *) Исправление: директива master_process работала неправильно в
171 nginx/Windows.
172
173 *) Исправление: параметр setfib директивы listen мог не работать.
174
175 *) Исправление: в модуле ngx_http_spdy_module.
176
177
178 Изменения в nginx 1.5.7 19.11.2013
179
180 *) Безопасность: символ, следующий за незакодированным пробелом в строке
181 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
182 в 0.8.41.
183 Спасибо Ivan Fratric из Google Security Team.
184
185 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии
186 пароля понижен с уровня error до info.
187
188 *) Добавление: директивы proxy_cache_revalidate,
189 fastcgi_cache_revalidate, scgi_cache_revalidate и
190 uwsgi_cache_revalidate.
191
192 *) Добавление: директива ssl_session_ticket_key.
193 Спасибо Piotr Sikora.
194
195 *) Исправление: директива "add_header Cache-Control ''" добавляла строку
196 заголовка ответа "Cache-Control" с пустым значением.
197
198 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
199 401 при использовании директив auth_request и auth_basic.
200 Спасибо Jan Marc Hoffmann.
201
202 *) Исправление: параметры accept_filter и deferred директивы listen
203 игнорировались для listen-сокетов, создаваемых в процессе обновления
204 исполняемого файла.
205 Спасибо Piotr Sikora.
206
207 *) Исправление: часть данных, полученных от бэкенда при
208 небуферизированном проксировании, могла не отправляться клиенту
209 сразу, если использовались директивы gzip или gunzip.
210 Спасибо Yichun Zhang.
211
212 *) Исправление: в обработке ошибок в модуле
213 ngx_http_gunzip_filter_module.
214
215 *) Исправление: ответы могли зависать, если использовался модуль
216 ngx_http_spdy_module и директива auth_request.
217
218 *) Исправление: утечки памяти в nginx/Windows.
219
220
221 Изменения в nginx 1.5.6 01.10.2013
222
223 *) Добавление: директива fastcgi_buffering.
224
225 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
226 Спасибо Piotr Sikora.
227
228 *) Добавление: оптимизация SSL handshake при использовании длинных
229 цепочек сертификатов.
230
231 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
232
233 *) Исправление: в модуле ngx_http_auth_basic_module при использовании
234 метода шифрования паролей "$apr1$".
235 Спасибо Markus Linnala.
236
237 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
238 мог использоваться неверный location, если для задания location'ов
239 использовались символы разных регистров.
240
241 *) Исправление: автоматическое перенаправление с добавлением
242 завершающего слэша для проксированных location'ов могло не работать.
243
244 *) Исправление: в почтовом прокси-сервере.
245
246 *) Исправление: в модуле ngx_http_spdy_module.
247
248
249 Изменения в nginx 1.5.5 17.09.2013
250
251 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
252 определить протокол не удалось.
253
254 *) Добавление: директива disable_symlinks теперь использует O_PATH на
255 Linux.
256
257 *) Добавление: для определения того, что клиент закрыл соединение, при
258 использовании метода epoll теперь используются события EPOLLRDHUP.
259
260 *) Исправление: в директиве valid_referers при использовании параметра
261 server_names.
262
263 *) Исправление: переменная $request_time не работала в nginx/Windows.
264
265 *) Исправление: в директиве image_filter.
266 Спасибо Lanshun Zhou.
267
268 *) Исправление: совместимость с OpenSSL 1.0.1f.
269 Спасибо Piotr Sikora.
270
271
272 Изменения в nginx 1.5.4 27.08.2013
273
274 *) Изменение: MIME-тип для расширения js изменён на
275 "application/javascript"; значение по умолчанию директивы
276 charset_types изменено соответственно.
277
278 *) Изменение: теперь директива image_filter с параметром size возвращает
279 ответ с MIME-типом "application/json".
280
281 *) Добавление: модуль ngx_http_auth_request_module.
282
283 *) Исправление: на старте или во время переконфигурации мог произойти
284 segmentation fault, если использовалась директива try_files с пустым
285 параметром.
286
287 *) Исправление: утечки памяти при использовании в директивах root и
288 auth_basic_user_file относительных путей, заданных с помощью
289 переменных.
290
291 *) Исправление: директива valid_referers неправильно выполняла
292 регулярные выражения, если заголовок Referer начинался с "https://".
293 Спасибо Liangbin Li.
294
295 *) Исправление: ответы могли зависать, если использовались подзапросы и
296 при обработке подзапроса происходила ошибка во время SSL handshake с
297 бэкендом.
298 Спасибо Aviram Cohen.
299
300 *) Исправление: в модуле ngx_http_autoindex_module.
301
302 *) Исправление: в модуле ngx_http_spdy_module.
303
304
305 Изменения в nginx 1.5.3 30.07.2013
306
307 *) Изменение во внутреннем API: теперь при небуферизированной работе с
308 бэкендами u->length по умолчанию устанавливается в -1.
309
310 *) Изменение: теперь при получении неполного ответа от бэкенда nginx
311 отправляет полученную часть ответа, после чего закрывает соединение с
312 клиентом.
313
314 *) Исправление: в рабочем процессе мог произойти segmentation fault,
315 если использовался модуль ngx_http_spdy_module и директива
316 client_body_in_file_only.
317
318 *) Исправление: параметр so_keepalive директивы listen мог работать
319 некорректно на DragonFlyBSD.
320 Спасибо Sepherosa Ziehau.
321
322 *) Исправление: в модуле ngx_http_xslt_filter_module.
323
324 *) Исправление: в модуле ngx_http_sub_filter_module.
325
326
327 Изменения в nginx 1.5.2 02.07.2013
328
329 *) Добавление: теперь можно использовать несколько директив error_log.
330
331 *) Исправление: метод $r->header_in() встроенного перла не возвращал
332 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
333 ошибка появилась в 1.3.14.
334
335 *) Исправление: в модуле ngx_http_spdy_module.
336 Спасибо Jim Radford.
337
338 *) Исправление: nginx не собирался на Linux при использовании x32 ABI.
339 Спасибо Сергею Иванцову.
340
341
342 Изменения в nginx 1.5.1 04.06.2013
343
344 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
345 xslt_last_modified.
346 Спасибо Алексею Колпакову.
347
348 *) Добавление: параметр http_403 в директивах proxy_next_upstream,
349 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
350
351 *) Добавление: директивы allow и deny теперь поддерживают unix domain
352 сокеты.
353
354 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
355 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
356
357 *) Исправление: в директиве proxy_set_body.
358 Спасибо Lanshun Zhou.
359
360 *) Исправление: в директиве lingering_time.
361 Спасибо Lanshun Zhou.
362
363 *) Исправление: параметр fail_timeout директивы server в блоке upstream
364 мог не работать, если использовался параметр max_fails; ошибка
365 появилась в 1.3.0.
366
367 *) Исправление: в рабочем процессе мог произойти segmentation fault,
368 если использовалась директива ssl_stapling.
369 Спасибо Piotr Sikora.
370
371 *) Исправление: в почтовом прокси-сервере.
372 Спасибо Filipe Da Silva.
373
374 *) Исправление: nginx/Windows мог перестать принимать соединения, если
375 использовалось несколько рабочих процессов.
376
377
378 Изменения в nginx 1.5.0 07.05.2013
379
380 *) Безопасность: при обработке специально созданного запроса мог
381 перезаписываться стек рабочего процесса, что могло приводить к
382 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
383 1.3.9.
384 Спасибо Greg MacManus, iSIGHT Partners Labs.
385
386
387 Изменения в nginx 1.4.0 24.04.2013
388
389 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
390 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
391
392 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
393 ошибка появилась в 1.3.9.
394
395
396 Изменения в nginx 1.3.16 16.04.2013
397
398 *) Исправление: в рабочем процессе мог произойти segmentation fault,
399 если использовались подзапросы; ошибка появилась в 1.3.9.
400
401 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
402 WebSocket-соединений в unix domain сокет.
403
404 *) Исправление: переменная $upstream_response_length возвращала значение
405 "0", если не использовалась буферизация.
406 Спасибо Piotr Sikora.
407
408 *) Исправление: в методах обработки соединений eventport и /dev/poll.
409
410
411 Изменения в nginx 1.3.15 26.03.2013
412
413 *) Изменение: открытие и закрытие соединения без отправки в нём
414 каких-либо данных больше не записывается в access_log с кодом ошибки
415 400.
416
417 *) Добавление: модуль ngx_http_spdy_module.
418 Спасибо Automattic за спонсирование разработки.
419
420 *) Добавление: директивы limit_req_status и limit_conn_status.
421 Спасибо Nick Marden.
422
423 *) Добавление: директива image_filter_interlace.
424 Спасибо Ивану Боброву.
425
426 *) Добавление: переменная $connections_waiting в модуле
427 ngx_http_stub_status_module.
428
429 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
430
431 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
432 могло передаваться неправильно; ошибка появилась в 1.3.9.
433 Спасибо Piotr Sikora.
434
435 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
436 1.3.9.
437
438 *) Исправление: ответы могли зависать, если использовались подзапросы и
439 при обработке подзапроса происходила DNS-ошибка.
440 Спасибо Lanshun Zhou.
441
442 *) Исправление: в процедуре учёта использования бэкендов.
443
444
445 Изменения в nginx 1.3.14 05.03.2013
446
447 *) Добавление: переменные $connections_active, $connections_reading и
448 $connections_writing в модуле ngx_http_stub_status_module.
449
450 *) Добавление: поддержка WebSocket-соединений в модулях
451 ngx_http_uwsgi_module и ngx_http_scgi_module.
452
453 *) Исправление: в обработке виртуальных серверов при использовании SNI.
454
455 *) Исправление: при использовании директивы "ssl_session_cache shared"
456 новые сессии могли не сохраняться, если заканчивалось место в
457 разделяемой памяти.
458 Спасибо Piotr Sikora.
459
460 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
461 неправильно.
462 Спасибо Neal Poole за спонсирование разработки.
463
464 *) Исправление: в модуле ngx_http_mp4_module.
465 Спасибо Gernot Vormayr.
466
467
468 Изменения в nginx 1.3.13 19.02.2013
469
470 *) Изменение: теперь для сборки по умолчанию используется компилятор с
471 именем "cc".
472
473 *) Добавление: поддержка проксирования WebSocket-соединений.
474 Спасибо Apcera и CloudBees за спонсирование разработки.
475
476 *) Добавление: директива auth_basic_user_file поддерживает шифрование
477 паролей методом "{SHA}".
478 Спасибо Louis Opter.
479
480
481 Изменения в nginx 1.3.12 05.02.2013
482
483 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
484 scgi_bind и uwsgi_bind поддерживают переменные.
485
486 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
487 $time_local теперь можно использовать не только в директиве
488 log_format.
489 Спасибо Kiril Kalchev.
490
491 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
492 Спасибо Gregor Kališnik.
493
494 *) Исправление: директива proxy_method работала неверно, если была
495 указана на уровне http.
496
497 *) Исправление: в рабочем процессе мог произойти segmentation fault,
498 если использовался resolver и метод poll.
499
500 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
501 бэкендом при использовании методов обработки соединений select, poll
502 и /dev/poll.
503
504 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
505
506 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
507 1.3.9.
508
509 *) Исправление: в директиве fastcgi_keep_conn.
510
511
512 Изменения в nginx 1.3.11 10.01.2013
513
514 *) Исправление: при записи в лог мог происходить segmentation fault;
515 ошибка появилась в 1.3.10.
516
517 *) Исправление: директива proxy_pass не работала с IP-адресами без
518 явного указания порта; ошибка появилась в 1.3.10.
519
520 *) Исправление: на старте или во время переконфигурации происходил
521 segmentation fault, если директива keepalive была указана несколько
522 раз в одном блоке upstream.
523
524 *) Исправление: параметр default директивы geo не определял значение по
525 умолчанию для IPv6-адресов.
526
527
528 Изменения в nginx 1.3.10 25.12.2012
529
530 *) Изменение: для указанных в конфигурационном файле доменных имён
531 теперь используются не только IPv4, но и IPv6 адреса.
532
533 *) Изменение: теперь при использовании директивы include с маской на
534 Unix-системах включаемые файлы сортируются в алфавитном порядке.
535
536 *) Изменение: директива add_header добавляет строки в ответы с кодом
537 201.
538
539 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
540 CIDR.
541
542 *) Добавление: параметры flush и gzip в директиве access_log.
543
544 *) Добавление: директива auth_basic поддерживает переменные.
545
546 *) Исправление: nginx в некоторых случаях не собирался с модулем
547 ngx_http_perl_module.
548
549 *) Исправление: в рабочем процессе мог произойти segmentation fault,
550 если использовался модуль ngx_http_xslt_module.
551
552 *) Исправление: nginx мог не собираться на MacOSX.
553 Спасибо Piotr Sikora.
554
555 *) Исправление: при использовании директивы limit_rate с большими
556 значениями скорости на 32-битных системах ответ мог возвращаться не
557 целиком.
558 Спасибо Алексею Антропову.
559
560 *) Исправление: в рабочем процессе мог произойти segmentation fault,
561 если использовалась директива if.
562 Спасибо Piotr Sikora.
563
564 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
565 Request Entity Too Large".
566
567 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
568 image_filter_sharpen могли наследоваться некорректно.
569 Спасибо Ивану Боброву.
570
571 *) Исправление: при использовании директивы auth_basic под Linux могли
572 возникать ошибки "crypt_r() failed".
573
574 *) Исправление: в обработке backup-серверов.
575 Спасибо Thomas Chen.
576
577 *) Исправление: при проксировании HEAD-запросов мог возвращаться
578 некорректный ответ, если использовалась директива gzip.
579
580
581 Изменения в nginx 1.3.9 27.11.2012
582
583 *) Добавление: поддержка chunked transfer encoding при получении тела
584 запроса.
585
586 *) Добавление: переменные $request_time и $msec теперь можно
587 использовать не только в директиве log_format.
588
589 *) Исправление: cache manager и cache loader могли не запускаться, если
590 использовалось более 512 listen-сокетов.
591
592 *) Исправление: в модуле ngx_http_dav_module.
593
594
595 Изменения в nginx 1.3.8 30.10.2012
596
597 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
598 Спасибо Михаилу Казанцеву и Eric O'Connor.
599
600 *) Добавление: переменные $bytes_sent, $connection и
601 $connection_requests теперь можно использовать не только в директиве
602 log_format.
603 Спасибо Benjamin Grössing.
604
605 *) Добавление: параметр auto директивы worker_processes.
606
607 *) Исправление: сообщения "cache file ... has md5 collision".
608
609 *) Исправление: в модуле ngx_http_gunzip_filter_module.
610
611 *) Исправление: в директиве ssl_stapling.
612
613
614 Изменения в nginx 1.3.7 02.10.2012
615
616 *) Добавление: поддержка OCSP stapling.
617 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
618
619 *) Добавление: директива ssl_trusted_certificate.
620
621 *) Добавление: теперь resolver случайным образом меняет порядок
622 возвращаемых закэшированных адресов.
623 Спасибо Антону Жулину.
624
625 *) Исправление: совместимость с OpenSSL 0.9.7.
626
627
628 Изменения в nginx 1.3.6 12.09.2012
629
630 *) Добавление: модуль ngx_http_gunzip_filter_module.
631
632 *) Добавление: директива memcached_gzip_flag.
633
634 *) Добавление: параметр always директивы gzip_static.
635
636 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
637 Спасибо Charles Chen.
638
639 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
640 использовался параметр --with-ipv6.
641
642
643 Изменения в nginx 1.3.5 21.08.2012
644
645 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
646 дорожки в форматах, отличных от H.264 и AAC.
647
648 *) Исправление: в рабочем процессе мог произойти segmentation fault,
649 если в директиве map в качестве значений использовались переменные.
650
651 *) Исправление: в рабочем процессе мог произойти segmentation fault при
652 использовании директивы geo с параметром ranges, но без параметра
653 default; ошибка появилась в 0.8.43.
654 Спасибо Zhen Chen и Weibin Yao.
655
656 *) Исправление: в обработке параметра командной строки -p.
657
658 *) Исправление: в почтовом прокси-сервере.
659
660 *) Исправление: незначительных потенциальных ошибок.
661 Спасибо Coverity.
662
663 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
664 Спасибо HAYASHI Kentaro.
665
666
667 Изменения в nginx 1.3.4 31.07.2012
668
669 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
670 по умолчанию.
671
672 *) Добавление: поддержка компилятора Clang.
673
674 *) Исправление: могли создаваться лишние слушающие сокеты.
675 Спасибо Роману Одайскому.
676
677 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
678 рабочего процесса происходила ошибка.
679 Спасибо Ricardo Villalobos Guevara.
680
681 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
682 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
683 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
684 наследоваться некорректно.
685
686
687 Изменения в nginx 1.3.3 10.07.2012
688
689 *) Добавление: поддержка entity tags и директива etag.
690
691 *) Исправление: при использовании директивы map с параметром hostnames
692 не игнорировалась конечная точка в исходном значении.
693
694 *) Исправление: для обработки запроса мог использоваться неверный
695 location, если переход в именованный location происходил после
696 изменения URI с помощью директивы rewrite.
697
698
699 Изменения в nginx 1.3.2 26.06.2012
700
701 *) Изменение: параметр single директивы keepalive теперь игнорируется.
702
703 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
704 OpenSSL старее 1.0.0.
705
706 *) Добавление: директиву "ip_hash" теперь можно использовать для
707 балансировки IPv6 клиентов.
708
709 *) Добавление: переменную $status теперь можно использовать не только в
710 директиве log_format.
711
712 *) Исправление: при завершении рабочего процесса мог произойти
713 segmentation fault, если использовалась директива resolver.
714
715 *) Исправление: в рабочем процессе мог произойти segmentation fault,
716 если использовался модуль ngx_http_mp4_module.
717
718 *) Исправление: в модуле ngx_http_mp4_module.
719
720 *) Исправление: в рабочем процессе мог произойти segmentation fault,
721 если использовались конфликтующие имена серверов с масками.
722
723 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
724 сигналу SIGBUS.
725
726 *) Исправление: во время переконфигурации на HP-UX в лог записывался
727 alert "sendmsg() failed (9: Bad file number)".
728
729
730 Изменения в nginx 1.3.1 05.06.2012
731
732 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
733 компонента URI и не разрешает URI, содержащие последовательность
734 ":$".
735 Спасибо Владимиру Кочеткову, Positive Research Center.
736
737 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
738 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
739
740 *) Добавление: в директиве resolver теперь можно указывать порт и
741 задавать IPv6-адреса DNS-серверов.
742
743 *) Добавление: директива least_conn в блоке upstream.
744
745 *) Добавление: при использовании директивы ip_hash теперь можно задавать
746 веса серверов.
747
748 *) Исправление: в рабочем процессе мог произойти segmentation fault,
749 если использовалась директива image_filter; ошибка появилась в 1.3.0.
750
751 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
752 появилась в 1.1.12.
753
754 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
755 работать после переконфигурации.
756 Спасибо Yichun Zhang.
757
758 *) Исправление: в модуле ngx_http_xslt_filter_module.
759 Спасибо Kuramoto Eiji.
760
761 *) Исправление: утечки памяти при использовании переменной $geoip_org.
762 Спасибо Денису Латыпову.
763
764 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
765
766
767 Изменения в nginx 1.3.0 15.05.2012
768
769 *) Добавление: директива debug_connection теперь поддерживает
770 IPv6-адреса и параметр "unix:".
771
772 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
773 теперь поддерживают IPv6-адреса.
774
775 *) Добавление: директивы real_ip_recursive, geoip_proxy и
776 geoip_proxy_recursive.
777
778 *) Добавление: параметр proxy_recursive директивы geo.
779
780 *) Исправление: в рабочем процессе мог произойти segmentation fault,
781 если использовалась директива resolver.
782
783 *) Исправление: в рабочем процессе мог произойти segmentation fault,
784 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
785 и бэкенд возвращал некорректный ответ.
786
787 *) Исправление: в рабочем процессе мог произойти segmentation fault,
788 если использовалась директива rewrite и в новых аргументах запроса в
789 строке замены использовались переменные.
790
791 *) Исправление: nginx мог нагружать процессор, если было достигнуто
792 ограничение на количество открытых файлов.
793
794 *) Исправление: при использовании директивы proxy_next_upstream с
795 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
796 блоке upstream был хотя бы один сервер с флагом backup.
797
798 *) Исправление: при использовании директивы ip_hash установка параметра
799 down директивы server могла приводить к ненужному перераспределению
800 клиентов между бэкендами.
801
802 *) Исправление: утечки сокетов.
803 Спасибо Yichun Zhang.
804
805 *) Исправление: в модуле ngx_http_fastcgi_module.
806
807
808 Изменения в nginx 1.2.0 23.04.2012
809
810 *) Исправление: в рабочем процессе мог произойти segmentation fault,
811 если использовалась директива try_files; ошибка появилась в 1.1.19.
812
813 *) Исправление: ответ мог быть передан не полностью, если использовалось
814 больше IOV_MAX буферов.
815
816 *) Исправление: в работе параметра crop директивы image_filter.
817 Спасибо Maxim Bublis.
818
819
820 Изменения в nginx 1.1.19 12.04.2012
821
822 *) Безопасность: при обработке специально созданного mp4 файла модулем
823 ngx_http_mp4_module могли перезаписываться области памяти рабочего
824 процесса, что могло приводить к выполнению произвольного кода
825 (CVE-2012-2089).
826 Спасибо Matthew Daley.
827
828 *) Исправление: nginx/Windows мог завершаться аварийно.
829 Спасибо Vincent Lee.
830
831 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
832 были помечены флагом backup.
833
834 *) Исправление: директивы allow и deny могли наследоваться некорректно,
835 если в них использовались IPv6 адреса.
836
837 *) Исправление: директивы modern_browser и ancient_browser могли
838 наследоваться некорректно.
839
840 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
841
842 *) Исправление: в модуле ngx_http_mp4_module.
843
844
845 Изменения в nginx 1.1.18 28.03.2012
846
847 *) Изменение: теперь keepalive соединения не запрещены для Safari по
848 умолчанию.
849
850 *) Добавление: переменная $connection_requests.
851
852 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
853 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
854
855 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
856
857 *) Добавление: директивы xslt_param и xslt_string_param.
858 Спасибо Samuel Behan.
859
860 *) Исправление: в configure.
861 Спасибо Piotr Sikora.
862
863 *) Исправление: в модуле ngx_http_xslt_filter_module.
864
865 *) Исправление: nginx не собирался на Debian GNU/Hurd.
866
867
868 Изменения в nginx 1.1.17 15.03.2012
869
870 *) Безопасность: содержимое ранее освобождённой памяти могло быть
871 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
872 Спасибо Matthew Daley.
873
874 *) Исправление: при использовании встроенного перла из SSI.
875 Спасибо Matthew Daley.
876
877 *) Исправление: в модуле ngx_http_uwsgi_module.
878
879
880 Изменения в nginx 1.1.16 29.02.2012
881
882 *) Изменение: ограничение на количество одновременных подзапросов
883 поднято до 200.
884
885 *) Добавление: параметр from в директиве disable_symlinks.
886
887 *) Добавление: директивы return и error_page теперь могут использоваться
888 для возврата перенаправлений с кодом 307.
889
890 *) Исправление: в рабочем процессе мог произойти segmentation fault,
891 если использовалась директива resolver и на глобальном уровне не была
892 задана директива error_log.
893 Спасибо Роману Арутюняну.
894
895 *) Исправление: в рабочем процессе мог произойти segmentation fault,
896 если использовались директивы "proxy_http_version 1.1" или
897 "fastcgi_keep_conn on".
898
899 *) Исправление: утечек памяти.
900 Спасибо Lanshun Zhou.
901
902 *) Исправление: в директиве disable_symlinks.
903
904 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
905 некорректно; ошибка появилась в 1.0.1.
906
907 *) Исправление: nginx не собирался компилятором icc 12.1.
908
909 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
910 1.1.15.
911
912
913 Изменения в nginx 1.1.15 15.02.2012
914
915 *) Добавление: директива disable_symlinks.
916
917 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
918
919 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
920 prematurely closed connection" вместо "upstream sent too big header".
921 Спасибо Feibo Li.
922
923 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
924 использовался параметр --with-openssl.
925
926 *) Исправление: количество внутренних перенаправлений в именованные
927 location'ы не ограничивалось.
928
929 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
930 ошибкам в модуле ngx_http_gzip_filter_module.
931
932 *) Исправление: при использовании директивы proxy_store с
933 SSI-подзапросами временные файлы могли не удаляться.
934
935 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
936 $args) возвращали старое пустое закэшированное значение.
937
938 *) Исправление: в рабочем процессе мог произойти segmentation fault,
939 если одновременно создавалось слишком много SSI-подзапросов; ошибка
940 появилась в 0.7.25.
941
942
943 Изменения в nginx 1.1.14 30.01.2012
944
945 *) Добавление: теперь можно указать несколько ограничений limit_req
946 одновременно.
947
948 *) Исправление: в обработке ошибок при соединении с бэкендом.
949 Спасибо Piotr Sikora.
950
951 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
952
953 *) Исправление: в инициализации библиотеки OpenSSL.
954
955 *) Исправление: директивы proxy_redirect могли наследоваться
956 некорректно.
957
958 *) Исправление: утечки памяти при переконфигурации, если использовалась
959 директива pcre_jit.
960
961
962 Изменения в nginx 1.1.13 16.01.2012
963
964 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
965
966 *) Исправление: параметры директивы limit_req наследовались некорректно;
967 ошибка появилась в 1.1.12.
968
969 *) Исправление: директива proxy_redirect некорректно обрабатывала
970 заголовок Refresh при использовании регулярных выражений.
971
972 *) Исправление: директива proxy_cache_use_stale с параметром error не
973 возвращала ответ из кэша, если все бэкенды были признаны
974 неработающими.
975
976 *) Исправление: директива worker_cpu_affinity могла не работать.
977
978 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
979 1.1.12.
980
981 *) Исправление: в модуле ngx_http_mp4_module.
982
983
984 Изменения в nginx 1.1.12 26.12.2011
985
986 *) Изменение: после перенаправления запроса с помощью директивы
987 error_page директива proxy_pass без URI теперь использует изменённый
988 URI.
989 Спасибо Lanshun Zhou.
990
991 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
992 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
993
994 *) Добавление: директива pcre_jit.
995
996 *) Добавление: SSI команда if поддерживает выделения в регулярных
997 выражениях.
998
999 *) Исправление: SSI команда if не работала внутри команды block.
1000
1001 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
1002 могли не работать.
1003
1004 *) Исправление: директива limit_rate не позволяла передавать на полной
1005 скорости, даже если был указан очень большой лимит.
1006
1007 *) Исправление: директива sendfile_max_chunk не работала, если
1008 использовалась директива limit_rate.
1009
1010 *) Исправление: если в директиве proxy_pass использовались переменные и
1011 не был указан URI, всегда использовался URI исходного запроса.
1012
1013 *) Исправление: после перенаправления запроса с помощью директивы
1014 try_files директива proxy_pass без URI могла использовать URI
1015 исходного запроса.
1016 Спасибо Lanshun Zhou.
1017
1018 *) Исправление: в модуле ngx_http_scgi_module.
1019
1020 *) Исправление: в модуле ngx_http_mp4_module.
1021
1022 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
1023
1024
1025 Изменения в nginx 1.1.11 12.12.2011
1026
1027 *) Добавление: параметр so_keepalive в директиве listen.
1028 Спасибо Всеволоду Стахову.
1029
1030 *) Добавление: параметр if_not_empty в директивах
1031 fastcgi/scgi/uwsgi_param.
1032
1033 *) Добавление: переменная $https.
1034
1035 *) Добавление: директива proxy_redirect поддерживает переменные в первом
1036 параметре.
1037
1038 *) Добавление: директива proxy_redirect поддерживает регулярные
1039 выражения.
1040
1041 *) Исправление: переменная $sent_http_cache_control могла содержать
1042 неверное значение при использовании директивы expires.
1043 Спасибо Yichun Zhang.
1044
1045 *) Исправление: директива read_ahead могла не работать при использовании
1046 совместно с try_files и open_file_cache.
1047
1048 *) Исправление: если в параметре inactive директивы proxy_cache_path
1049 было указано малое время, в рабочем процессе мог произойти
1050 segmentation fault.
1051
1052 *) Исправление: ответы из кэша могли зависать.
1053
1054
1055 Изменения в nginx 1.1.10 30.11.2011
1056
1057 *) Исправление: при использовании AIO на Linux в рабочем процессе
1058 происходил segmentation fault; ошибка появилась в 1.1.9.
1059
1060
1061 Изменения в nginx 1.1.9 28.11.2011
1062
1063 *) Изменение: теперь двойные кавычки экранируется при выводе
1064 SSI-командой echo.
1065 Спасибо Зауру Абасмирзоеву.
1066
1067 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
1068 используется TTL, возвращённый DNS-сервером.
1069 Спасибо Кириллу Коринскому.
1070
1071 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
1072 завершался аварийно.
1073
1074 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1075 если использовалось SNI; ошибка появилась в 1.1.2.
1076
1077 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
1078 Спасибо Александру Усову.
1079
1080 *) Исправление: сигнал SIGWINCH переставал работать после первого
1081 обновления исполняемого файла; ошибка появилась в 1.1.1.
1082
1083 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
1084 заголовку Content-Length, не кэширутся.
1085
1086 *) Исправление: в директиве scgi_param при использовании составных
1087 параметров.
1088
1089 *) Исправление: в методе epoll.
1090 Спасибо Yichun Zhang.
1091
1092 *) Исправление: в модуле ngx_http_flv_module.
1093 Спасибо Piotr Sikora.
1094
1095 *) Исправление: в модуле ngx_http_mp4_module.
1096
1097 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
1098 заголовке Host.
1099
1100 *) Исправление: директивы add_header и expires не работали для ответов с
1101 кодом 206, если запрос проксировался.
1102
1103 *) Исправление: nginx не собирался на FreeBSD 10.
1104
1105 *) Исправление: nginx не собирался на AIX.
1106
1107
1108 Изменения в nginx 1.1.8 14.11.2011
1109
1110 *) Изменение: модуль ngx_http_limit_zone_module переименован в
1111 ngx_http_limit_conn_module.
1112
1113 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
1114 новым синтаксисом.
1115
1116 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
1117 уровне.
1118
1119 *) Добавление: директива image_filter_sharpen.
1120
1121 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1122 если resolver получил большой DNS-ответ.
1123 Спасибо Ben Hawkes.
1124
1125 *) Исправление: в вычислении ключа для кэширования, если использовалась
1126 внутренняя реализация MD5; ошибка появилась в 1.0.4.
1127
1128 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
1129 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
1130 или не передаваться при выключенном кэшировании, если кэширование
1131 было включено в другой части конфигурации.
1132
1133 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
1134 "Content-Length" в заголовке ответа, использовался аргумент start.
1135 Спасибо Piotr Sikora.
1136
1137
1138 Изменения в nginx 1.1.7 31.10.2011
1139
1140 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
1141 Спасибо Кириллу Коринскому.
1142
1143 *) Исправление: на старте или во время переконфигурации происходил
1144 segmentation fault, если директива ssl использовалась на уровне http
1145 и не был указан ssl_certificate.
1146
1147 *) Исправление: уменьшено потребление памяти при проксировании больших
1148 файлов, если они буферизировались на диск.
1149
1150 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1151 если использовалась директива "proxy_http_version 1.1".
1152
1153 *) Исправление: в директиве "expires @time".
1154
1155
1156 Изменения в nginx 1.1.6 17.10.2011
1157
1158 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
1159 именованный location контексты модулей очищаются.
1160 По запросу Yichun Zhang.
1161
1162 *) Изменение: теперь если сервер, описанный в блоке upstream, был
1163 признан неработающим, то после истечения fail_timeout на него будет
1164 отправлен только один запрос; сервер будет считаться работающим, если
1165 успешно ответит на этот запрос.
1166
1167 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
1168 \xXX.
1169
1170 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
1171 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
1172 X-Accel-Charset.
1173
1174 *) Добавление: уменьшение потребления памяти при использовании SSL.
1175
1176 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
1177 Спасибо Алексею Куцу.
1178
1179 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
1180 уровне server, применялись повторно, если для запроса не находилось
1181 ни одного location'а.
1182
1183 *) Исправление: при использовании "aio sendfile" могла происходить
1184 утечка сокетов.
1185
1186 *) Исправление: при использовании файлового AIO соединения с быстрыми
1187 клиентами могли быть закрыты по истечению send_timeout.
1188
1189 *) Исправление: в модуле ngx_http_autoindex_module.
1190
1191 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
1192 32-битных платформах.
1193
1194
1195 Изменения в nginx 1.1.5 05.10.2011
1196
1197 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
1198 Спасибо Peter Smit.
1199
1200 *) Исправление: при использовании proxy_cache_bypass могли быть
1201 закэшированы некэшируемые ответы.
1202 Спасибо John Ferlito.
1203
1204 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
1205 HTTP/1.1.
1206
1207 *) Исправление: закэшированные ответы с пустым телом возвращались
1208 некорректно; ошибка появилась в 0.8.31.
1209
1210 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
1211 некорректны; ошибка появилась в 0.8.32.
1212
1213 *) Исправление: в директиве return.
1214
1215 *) Исправление: при использовании директивы "ssl_session_cache builtin"
1216 происходил segmentation fault; ошибка появилась в 1.1.1.
1217
1218
1219 Изменения в nginx 1.1.4 20.09.2011
1220
1221 *) Добавление: модуль ngx_http_upstream_keepalive.
1222
1223 *) Добавление: директива proxy_http_version.
1224
1225 *) Добавление: директива fastcgi_keep_conn.
1226
1227 *) Добавление: директива worker_aio_requests.
1228
1229 *) Исправление: если nginx был собран с файловым AIO, он не мог
1230 запускаться на Linux без поддержки AIO.
1231
1232 *) Исправление: в обработке ошибок при работе с Linux AIO.
1233 Спасибо Hagai Avrahami.
1234
1235 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
1236
1237 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
1238 MP4-атом co64.
1239
1240
1241 Изменения в nginx 1.1.3 14.09.2011
1242
1243 *) Добавление: модуль ngx_http_mp4_module.
1244
1245 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
1246
1247 *) Исправление: open_file_cache не обновлял информацию о файле, если
1248 файл был изменён не атомарно.
1249
1250 *) Исправление: nginx не собирался на MacOSX 10.7.
1251
1252
1253 Изменения в nginx 1.1.2 05.09.2011
1254
1255 *) Изменение: теперь, если суммарный размер всех диапазонов больше
1256 размера исходного ответа, то nginx возвращает только исходный ответ,
1257 не обрабатывая диапазоны.
1258
1259 *) Добавление: директива max_ranges.
1260
1261 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
1262 ssl_prefer_server_cipher могли работать некорректно, если
1263 использовался SNI.
1264
1265 *) Исправление: в директивах proxy/fastcgi/scgi/
1266 uwsgi_ignore_client_abort.
1267
1268
1269 Изменения в nginx 1.1.1 22.08.2011
1270
1271 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
1272 число файлов, указанное в параметре load_files, либо работает не
1273 дольше времени, указанного в параметре loader_threshold.
1274
1275 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
1276
1277 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
1278 на Solaris.
1279 Спасибо Денису Иванову.
1280
1281 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
1282
1283 *) Исправление: nginx не собирался на Linux 3.0.
1284
1285 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
1286 появилась в 1.1.0.
1287
1288 *) Исправление: обработка тела запроса могла быть неверной, если клиент
1289 использовал pipelining.
1290
1291 *) Исправление: в директиве request_body_in_single_buf.
1292
1293 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
1294 при использовании SSL-соединения с бэкендом.
1295
1296 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
1297 были помечены флагом down.
1298
1299 *) Исправление: при переконфигурации мог произойти segmentation fault,
1300 если в предыдущей конфигурации был определён, но не использовался
1301 ssl_session_cache.
1302
1303 *) Исправление: при использовании большого количества backup-серверов в
1304 рабочем процессе мог произойти segmentation fault.
1305
1306 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
1307 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
1308 произойти segmentation fault; ошибка появилась в 0.8.40.
1309
1310
1311 Изменения в nginx 1.1.0 01.08.2011
1312
1313 *) Добавление: уменьшение времени работы загрузчика кэша.
1314
1315 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
1316 директив proxy/fastcgi/scgi/uwsgi_cache_path.
1317
1318 *) Добавление: уменьшение времени загрузки конфигураций с большим
1319 количеством HTTPS серверов.
1320
1321 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
1322 Спасибо Adrian Kotelba.
1323
1324 *) Добавление: директива lingering_close.
1325 Спасибо Максиму Дунину.
1326
1327 *) Исправление: закрытия соединения для pipelined-запросов.
1328 Спасибо Максиму Дунину.
1329
1330 *) Исправление: nginx не запрещал сжатие при получении значения
1331 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
1332
1333 *) Исправление: таймаута при небуферизированном проксировании.
1334 Спасибо Максиму Дунину.
1335
1336 *) Исправление: утечки памяти при использовании переменных в директиве
1337 proxy_pass при работе с бэкендом по HTTPS.
1338 Спасибо Максиму Дунину.
1339
1340 *) Исправление: в проверке параметра директивы proxy_pass, заданного
1341 переменными.
1342 Спасибо Lanshun Zhou.
1343
1344 *) Исправление: SSL не работал на QNX.
1345 Спасибо Максиму Дунину.
1346
1347 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
1348 --with-debug.
1349
1350
1351 Изменения в nginx 1.0.5 19.07.2011
1352
1353 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
1354 "HIGH:!aNULL:!MD5".
1355 Спасибо Rob Stradling.
1356
1357 *) Добавление: директивы referer_hash_max_size и
1358 referer_hash_bucket_size.
1359 Спасибо Witold Filipczyk.
1360
1361 *) Добавление: переменная $uid_reset.
1362
1363 *) Исправление: при использовании кэширования в рабочем процессе мог
1364 произойти segmentation fault.
1365 Спасибо Lanshun Zhou.
1366
1367 *) Исправление: при использовании кэширования рабочие процессы могли
1368 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
1369 Спасибо Максиму Дунину.
1370
1371 *) Исправление: сообщения "stalled cache updating".
1372 Спасибо Максиму Дунину.
1373
1374
1375 Изменения в nginx 1.0.4 01.06.2011
1376
1377 *) Изменение: теперь в регулярных выражениях в директиве map можно
1378 задать чувствительность к регистру с помощью префиксов "~" и "~*".
1379
1380 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
1381 на Linux.
1382 Спасибо Денису Латыпову.
1383
1384 *) Исправление: сообщения "stalled cache updating".
1385
1386 *) Исправление: nginx не собирался с параметром
1387 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
1388
1389
1390 Изменения в nginx 1.0.3 25.05.2011
1391
1392 *) Добавление: директива auth_basic_user_file поддерживает шифрование
1393 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
1394 Спасибо Максиму Дунину.
1395
1396 *) Добавление: директива geoip_org и переменная $geoip_org.
1397 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
1398
1399 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
1400 поддерживают адреса IPv4, отображённые на IPv6 адреса.
1401
1402 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
1403 рабочем процессе происходил segmentation fault, если директивы access
1404 или deny были определены только для адресов IPv6; ошибка появилась в
1405 0.8.22.
1406
1407 *) Исправление: закэшированный ответ мог быть испорчен, если значения
1408 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
1409 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
1410
1411
1412 Изменения в nginx 1.0.2 10.05.2011
1413
1414 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
1415
1416 *) Исправление: в работе параметра rotate директивы image_filter.
1417 Спасибо Adam Bocim.
1418
1419 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
1420
1421
1422 Изменения в nginx 1.0.1 03.05.2011
1423
1424 *) Изменение: теперь директива split_clients использует алгоритм
1425 MurmurHash2 из-за лучшего распределения.
1426 Спасибо Олегу Мамонтову.
1427
1428 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
1429 ложными значениями.
1430 Спасибо Максиму Дунину.
1431
1432 *) Изменение: теперь по умолчанию nginx использует значение 511 для
1433 listen backlog на Linux.
1434
1435 *) Добавление: переменные $upstream_... можно использовать в SSI и
1436 перловом модулях.
1437
1438 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
1439 Спасибо Олегу Мамонтову.
1440
1441 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
1442 segmentation fault; ошибка появилась в 0.8.22.
1443 Спасибо Максиму Дунину.
1444
1445 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
1446
1447 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
1448 появилась в 0.9.3.
1449 Спасибо Dagobert Michelsen.
1450
1451 *) Исправление: переменная $request_time имела неверные значения, если
1452 использовались подзапросы; ошибка появилась в 0.8.47.
1453 Спасибо Игорю А. Валькову.
1454
1455
1456 Изменения в nginx 1.0.0 12.04.2011
1457
1458 *) Исправление: cache manager мог нагружать процессор после
1459 переконфигурации.
1460 Спасибо Максиму Дунину.
1461
1462 *) Исправление: директива "image_filter crop" неправильно работала в
1463 сочетании с "image_filter rotate 180".
1464
1465 *) Исправление: директива "satisfy any" запрещала выдачу
1466 пользовательской страницы для 401 кода.
1467
1468
1469 Изменения в nginx 0.9.7 04.04.2011
1470
1471 *) Добавление: теперь соединения в состоянии keepalive могут быть
1472 закрыты преждевременно, если у воркера нет свободных соединений.
1473 Спасибо Максиму Дунину.
1474
1475 *) Добавление: параметр rotate директивы image_filter.
1476 Спасибо Adam Bocim.
1477
1478 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
1479 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
1480 upstream.
1481
1482
1483 Изменения в nginx 0.9.6 21.03.2011
1484
1485 *) Добавление: директива map поддерживает регулярные выражения в
1486 качестве значения первого параметра.
1487
1488 *) Добавление: переменная $time_iso8601 для access_log.
1489 Спасибо Michael Lustfield.
1490
1491
1492 Изменения в nginx 0.9.5 21.02.2011
1493
1494 *) Изменение: теперь по умолчанию nginx использует значение -1 для
1495 listen backlog на Linux.
1496 Спасибо Андрею Нигматулину.
1497
1498 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
1499 Спасибо Денису Латыпову.
1500
1501 *) Исправление: исправление в умолчательной директиве proxy_redirect,
1502 если в директиве proxy_pass не был описан URI.
1503 Спасибо Максиму Дунину.
1504
1505 *) Исправление: директива error_page не работала с нестандартными кодами
1506 ошибок; ошибка появилась в 0.8.53.
1507 Спасибо Максиму Дунину.
1508
1509
1510 Изменения в nginx 0.9.4 21.01.2011
1511
1512 *) Добавление: директива server_name поддерживает переменную $hostname.
1513
1514 *) Добавление: 494 код для ошибки "Request Header Too Large".
1515
1516
1517 Изменения в nginx 0.9.3 13.12.2010
1518
1519 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
1520 то выделения в регулярных выражениях в директиве server_name не
1521 работали.
1522
1523 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
1524 0.9.0.
1525
1526
1527 Изменения в nginx 0.9.2 06.12.2010
1528
1529 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
1530 запросе клиента.
1531
1532 *) Изменение: использование accept(), если accept4() не реализован;
1533 ошибка появилась в 0.9.0.
1534
1535 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
1536
1537 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
1538 Спасибо Максиму Дунину.
1539
1540
1541 Изменения в nginx 0.9.1 30.11.2010
1542
1543 *) Исправление: директивы вида "return CODE message" не работали; ошибка
1544 появилась в 0.9.0.
1545
1546
1547 Изменения в nginx 0.9.0 29.11.2010
1548
1549 *) Добавление: директива keepalive_disable.
1550
1551 *) Добавление: директива map поддерживает переменные в качестве значения
1552 определяемой переменной.
1553
1554 *) Добавление: директива map поддерживает пустые строки в качестве
1555 значения первого параметра.
1556
1557 *) Добавление: директива map поддерживает выражения в первом параметре.
1558
1559 *) Добавление: страница руководства nginx(8).
1560 Спасибо Сергею Осокину.
1561
1562 *) Добавление: поддержка accept4() в Linux.
1563 Спасибо Simon Liu.
1564
1565 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
1566 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
1567
1568 *) Исправление: при использовании директивы auth_basic в рабочем
1569 процессе мог произойти segmentation fault.
1570 Спасибо Михаилу Лалетину.
1571
1572 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
1573 появилась в 0.8.42.
1574
1575
1576 Изменения в nginx 0.8.53 18.10.2010
1577
1578 *) Добавление: теперь директива error_page позволяет менять код статуса
1579 у редиректа.
1580
1581 *) Добавление: директива gzip_disable поддерживает специальную маску
1582 degradation.
1583
1584 *) Исправление: при использовании файлового AIO могла происходить утечка
1585 сокетов.
1586 Спасибо Максиму Дунину.
1587
1588 *) Исправление: если в первом сервере не была описана директива listen и
1589 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
1590 становился следующий сервер с директивой listen; ошибка появилась в
1591 0.8.21.
1592
1593
1594 Изменения в nginx 0.8.52 28.09.2010
1595
1596 *) Исправление: nginx использовал режим SSL для listen сокета, если для
1597 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
1598
1599
1600 Изменения в nginx 0.8.51 27.09.2010
1601
1602 *) Изменение: директива secure_link_expires упразднена.
1603
1604 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
1605 alert на error.
1606
1607 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
1608 несколько раз.
1609
1610
1611 Изменения в nginx 0.8.50 02.09.2010
1612
1613 *) Добавление: директивы secure_link, secure_link_md5 и
1614 secure_link_expires модуля ngx_http_secure_link_module.
1615
1616 *) Добавление: ключ -q.
1617 Спасибо Геннадию Махомеду.
1618
1619 *) Исправление: при использовании кэширования рабочие процессы и могли
1620 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
1621
1622 *) Исправление: в директиве gzip_disable.
1623 Спасибо Derrick Petzold.
1624
1625 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
1626 reopen, reload процессу, запущенному в другой сессии.
1627
1628
1629 Изменения в nginx 0.8.49 09.08.2010
1630
1631 *) Добавление: директива image_filter_jpeg_quality поддерживает
1632 переменные.
1633
1634 *) Исправление: при использовании переменной $geoip_region_name в
1635 рабочем процессе мог произойти segmentation fault; ошибка появилась в
1636 0.8.48.
1637
1638 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
1639 следующего запроса; ошибка появилась в 0.8.48.
1640
1641
1642 Изменения в nginx 0.8.48 03.08.2010
1643
1644 *) Изменение: теперь по умолчанию директива server_name имеет значение
1645 пустое имя "".
1646 Спасибо Геннадию Махомеду.
1647
1648 *) Изменение: теперь по умолчанию директива server_name_in_redirect
1649 имеет значение off.
1650
1651 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
1652 $geoip_region_name.
1653 Спасибо Christine McGonagle.
1654
1655 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
1656 scgi_pass не наследовались в блоки limit_except.
1657
1658 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
1659 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
1660 появилась в 0.8.46.
1661
1662 *) Исправление: директива fastcgi_split_path_info неверно использовала
1663 выделения, если в выделения попадала только часть URI.
1664 Спасибо Юрию Тарадаю и Frank Enderle.
1665
1666 *) Исправление: директива rewrite не экранировала символ ";" при
1667 копировании из URI в аргументы.
1668 Спасибо Daisuke Murase.
1669
1670 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
1671 если изображение было больше размера image_filter_buffer.
1672
1673
1674 Изменения в nginx 0.8.47 28.07.2010
1675
1676 *) Исправление: переменная $request_time имела неверные значения для
1677 подзапросов.
1678
1679 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
1680
1681 *) Исправление: если использовался параметр max_size, то cache manager
1682 мог зациклиться; ошибка появилась в 0.8.46.
1683
1684
1685 Изменения в nginx 0.8.46 19.07.2010
1686
1687 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
1688 и scgi_no_cache теперь влияют только на сохранение закэшированного
1689 ответа.
1690
1691 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
1692 uwsgi_cache_bypass и scgi_cache_bypass.
1693
1694 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
1695 ошибки работы с бэкендом: память освобождалась только по истечении
1696 времени неактивности или при недостатке памяти.
1697
1698
1699 Изменения в nginx 0.8.45 13.07.2010
1700
1701 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
1702 Спасибо Laurence Rowe.
1703
1704 *) Исправление: ответ SSI модуля мог передаваться не полностью после
1705 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
1706 Спасибо Максиму Дунину.
1707
1708 *) Исправление: директива listen не поддерживала параметр setfib=0.
1709
1710
1711 Изменения в nginx 0.8.44 05.07.2010
1712
1713 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
1714 заголовке которых есть строка "Set-Cookie".
1715
1716 *) Добавление: директива listen поддерживает параметр setfib.
1717 Спасибо Андрею Филонову.
1718
1719 *) Исправление: директива sub_filter могла изменять регистр букв при
1720 частичном совпадении.
1721
1722 *) Исправление: совместимость с HP/UX.
1723
1724 *) Исправление: совместимость с компилятором AIX xlC_r.
1725
1726 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
1727 запросы.
1728 Спасибо Miroslaw Jaworski.
1729
1730
1731 Изменения в nginx 0.8.43 30.06.2010
1732
1733 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
1734
1735 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
1736 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
1737 0.8.42.
1738
1739 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
1740 переконфигурации.
1741 Спасибо Максиму Дунину.
1742
1743 *) Исправление: переменную $uid_set можно использовать на любой стадии
1744 обработки запроса.
1745
1746
1747 Изменения в nginx 0.8.42 21.06.2010
1748
1749 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
1750 выражениями, если запрос полностью совпал с location'ом, заданным
1751 строкой префикса. Предыдущее поведение появилось в 0.7.1.
1752
1753 *) Добавление: модуль ngx_http_scgi_module.
1754 Спасибо Manlio Perillo.
1755
1756 *) Добавление: в директиве return можно добавлять текст ответа.
1757
1758
1759 Изменения в nginx 0.8.41 15.06.2010
1760
1761 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
1762 при запросе файла с неверной кодировкой UTF-8.
1763
1764 *) Изменение: теперь nginx разрешает использовать пробелы в строке
1765 запроса.
1766
1767 *) Исправление: директива proxy_redirect неправильно изменяла строку
1768 "Refresh" в заголовке ответа бэкенда.
1769 Спасибо Андрею Андрееву и Максиму Согину.
1770
1771 *) Исправление: nginx не поддерживал путь без имени хоста в строке
1772 "Destination" в заголовке запроса.
1773
1774
1775 Изменения в nginx 0.8.40 07.06.2010
1776
1777 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
1778 умолчанию.
1779 Спасибо Jose Antonio Vazquez Gonzalez.
1780
1781 *) Добавление: модуль ngx_http_uwsgi_module.
1782 Спасибо Roberto De Ioris.
1783
1784 *) Добавление: директива fastcgi_param со значением, начинающимся со
1785 строки "HTTP_", изменяет строку заголовка в запросе клиента.
1786
1787 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
1788 заголовке запроса клиента передавались FastCGI-серверу при
1789 кэшировании.
1790
1791 *) Исправление: listen unix domain сокет нельзя было изменить во время
1792 переконфигурации.
1793 Спасибо Максиму Дунину.
1794
1795
1796 Изменения в nginx 0.8.39 31.05.2010
1797
1798 *) Исправление: наследуемая директива alias неправильно работала во
1799 вложенном location'е.
1800
1801 *) Исправление: в комбинации директив alias с переменными и try_files;
1802
1803 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
1804 время обновления без перерыва.
1805 Спасибо Максиму Дунину.
1806
1807
1808 Изменения в nginx 0.8.38 24.05.2010
1809
1810 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
1811
1812 *) Добавление: теперь при использовании переменной $scheme в директиве
1813 rewrite автоматически делается редирект.
1814 Спасибо Piotr Sikora.
1815
1816 *) Исправление: теперь задержки в директиве limit_req соответствует
1817 описанному алгоритму.
1818 Спасибо Максиму Дунину.
1819
1820 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
1821 перловом модулях.
1822
1823
1824 Изменения в nginx 0.8.37 17.05.2010
1825
1826 *) Добавление: модуль ngx_http_split_clients_module.
1827
1828 *) Добавление: директива map поддерживает ключи больше 255 символов.
1829
1830 *) Исправление: nginx игнорировал значения "private" и "no-store" в
1831 строке "Cache-Control" в заголовке ответа бэкенда.
1832
1833 *) Исправление: параметр stub в SSI-директиве include не использовался,
1834 если пустой ответ имел код 200.
1835
1836 *) Исправление: если проксированный или FastCGI запрос внутренне
1837 перенаправлялся в другой проксированный или FastCGI location, то в
1838 рабочем процессе мог произойти segmentation fault; ошибка появилась в
1839 0.8.33.
1840 Спасибо Yichun Zhang.
1841
1842 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
1843 таймаута.
1844 Спасибо Alan Batie.
1845
1846
1847 Изменения в nginx 0.8.36 22.04.2010
1848
1849 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
1850 методы DELETE, COPY и MOVE для симлинков.
1851
1852 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
1853 основном запросе значения переменных $query_string, $arg_... и им
1854 подобных.
1855
1856 *) Исправление: значение переменной повторно экранировалось после
1857 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
1858
1859 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
1860 Спасибо Vicente Aguilar и Максиму Дунину.
1861
1862 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
1863 Спасибо Максиму Дунину.
1864
1865 *) Исправление: nginx не собирался с параметром --without-http-cache;
1866 ошибка появилась в 0.8.35.
1867
1868
1869 Изменения в nginx 0.8.35 01.04.2010
1870
1871 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
1872
1873 *) Добавление: директива chunked_transfer_encoding.
1874
1875 *) Исправление: символ "&" при копировании в аргументы в правилах
1876 rewrite не экранировался.
1877
1878 *) Исправление: nginx мог завершаться аварийно во время обработки
1879 сигнала или при использовании директивы timer_resolution на
1880 платформах, не поддерживающих методы kqueue или eventport.
1881 Спасибо George Xie и Максиму Дунину.
1882
1883 *) Исправление: если временные файлы и постоянное место хранения
1884 располагались на разных файловых системах, то у постоянных файлов
1885 время изменения было неверным.
1886 Спасибо Максиму Дунину.
1887
1888 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
1889 "memcached sent invalid trailer".
1890 Спасибо Максиму Дунину.
1891
1892 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
1893 текстов.
1894 Спасибо Максиму Дунину.
1895
1896 *) Исправление: в рабочем процессе происходил segmentation fault, если
1897 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
1898 появилась в 0.8.34.
1899 Спасибо Максиму Дунину.
1900
1901
1902 Изменения в nginx 0.8.34 03.03.2010
1903
1904 *) Исправление: nginx не поддерживал все шифры, используемые в
1905 клиентских сертификатах.
1906 Спасибо Иннокентию Еникееву.
1907
1908 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
1909 ответом было много вывода в stderr.
1910
1911 *) Исправление: nginx не поддерживал HTTPS-рефереры.
1912
1913 *) Исправление: nginx/Windows мог не находить файлы, если путь в
1914 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
1915
1916 *) Исправление: переменная $date_local выдавала неверное время, если
1917 использовался формат "%s".
1918 Спасибо Максиму Дунину.
1919
1920 *) Исправление: если ssl_session_cache не был установлен или установлен
1921 в none, то при проверке клиентского сертификаты могла происходить
1922 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
1923
1924 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
1925 диапазон включал в себя одну и более сетей размером /16 и не
1926 начинался на границе сети размером /16.
1927
1928 *) Исправление: блок, используемый в параметре stub в SSI-директиве
1929 include, выводился с MIME-типом "text/plain".
1930
1931 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
1932
1933
1934 Изменения в nginx 0.8.33 01.02.2010
1935
1936 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
1937 Спасибо Dan Crowley, Core Security Technologies.
1938
1939 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
1940 Спасибо Dan Crowley, Core Security Technologies.
1941
1942 *) Изменение: теперь keepalive соединения после запросов POST не
1943 запрещаются для MSIE 7.0+.
1944 Спасибо Adam Lounds.
1945
1946 *) Изменение: теперь keepalive соединения запрещены для Safari.
1947 Спасибо Joshua Sierles.
1948
1949 *) Исправление: если проксированный или FastCGI запрос внутренне
1950 перенаправлялся в другой проксированный или FastCGI location, то
1951 переменная $upstream_response_time могла иметь ненормально большое
1952 значение; ошибка появилась в 0.8.7.
1953
1954 *) Исправление: в рабочем процессе мог произойти segmentation fault при
1955 отбрасывания тела запроса; ошибка появилась в 0.8.11.
1956
1957
1958 Изменения в nginx 0.8.32 11.01.2010
1959
1960 *) Исправление: ошибки при использовании кодировки UTF-8 в
1961 ngx_http_autoindex_module.
1962 Спасибо Максиму Дунину.
1963
1964 *) Исправление: именованные выделения в регулярных выражениях работали
1965 только для двух переменных.
1966 Спасибо Максиму Дунину.
1967
1968 *) Исправление: теперь в строке заголовка запроса "Host" используется
1969 имя "localhost", если в директиве auth_http указан unix domain сокет.
1970 Спасибо Максиму Дунину.
1971
1972 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
1973 ответов.
1974 Спасибо Julian Reich.
1975
1976 *) Исправление: если директива "expires modified" выставляла дату в
1977 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
1978 отрицательное число.
1979 Спасибо Алексею Капранову.
1980
1981
1982 Изменения в nginx 0.8.31 23.12.2009
1983
1984 *) Добавление: теперь директива error_page может перенаправлять ответы
1985 со статусом 301 и 302.
1986
1987 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
1988 $geoip_longitude.
1989 Спасибо Arvind Sundararajan.
1990
1991 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
1992 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
1993
1994 *) Исправление: nginx закрывал соединение при запросе закэшированного
1995 ответа с пустым телом.
1996 Спасибо Piotr Sikora.
1997
1998 *) Исправление: nginx мог не собираться gcc 4.x при использовании
1999 оптимизации -O2 и выше.
2000 Спасибо Максиму Дунину и Денису Латыпову.
2001
2002 *) Исправление: регулярные выражения в location всегда тестировались с
2003 учётом регистра; ошибка появилась в 0.8.25.
2004
2005 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
2006 проксируемого запроса была строка "If-None-Match".
2007 Спасибо Tim Dettrick и David Kostal.
2008
2009 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
2010 перезаписи уже существующего файла.
2011
2012
2013 Изменения в nginx 0.8.30 15.12.2009
2014
2015 *) Изменение: теперь по умолчанию размер буфера директивы
2016 large_client_header_buffers равен 8K.
2017 Спасибо Andrew Cholakian.
2018
2019 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
2020
2021 *) Исправление: nginx/Windows пытался дважды переименовать временный
2022 файл при перезаписи уже существующего файла.
2023
2024 *) Исправление: ошибки double free or corruption, возникающей, если имя
2025 хоста не было найдено; ошибка появилась в 0.8.22.
2026 Спасибо Константину Свисту.
2027
2028 *) Исправление: в использовании libatomic на некоторых платформах.
2029 Спасибо W-Mark Kubacki.
2030
2031
2032 Изменения в nginx 0.8.29 30.11.2009
2033
2034 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
2035 ответа "009".
2036
2037 *) Добавление: директивы addition_types, charset_types, gzip_types,
2038 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
2039
2040 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
2041 Спасибо W-Mark Kubacki.
2042
2043 *) Добавление: параметр --with-libatomic[=DIR] в configure.
2044 Спасибо W-Mark Kubacki.
2045
2046 *) Исправление: listen unix domain сокет имели ограниченные права
2047 доступа.
2048
2049 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
2050 обрабатывались.
2051
2052 *) Исправление: именованные выделения в регулярных выражениях, заданные
2053 как "?P<...>", не работали в директиве server_name.
2054 Спасибо Максиму Дунину.
2055
2056
2057 Изменения в nginx 0.8.28 23.11.2009
2058
2059 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
2060 появилась в 0.8.25.
2061
2062
2063 Изменения в nginx 0.8.27 17.11.2009
2064
2065 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
2066 появилась в 0.8.25.
2067
2068
2069 Изменения в nginx 0.8.26 16.11.2009
2070
2071 *) Исправление: ошибки при использовании выделений в директиве rewrite;
2072 ошибка появилась в 0.8.25.
2073
2074 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
2075 появилась в 0.8.25.
2076
2077
2078 Изменения в nginx 0.8.25 16.11.2009
2079
2080 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
2081 не найдена с помощью метода $r->variable().
2082
2083 *) Добавление: модуль ngx_http_degradation_module.
2084
2085 *) Добавление: именованные выделения в регулярных выражениях.
2086
2087 *) Добавление: теперь при использовании переменных в директиве
2088 proxy_pass не требуется задавать URI.
2089
2090 *) Добавление: теперь директива msie_padding работает и для Chrome.
2091
2092 *) Исправление: в рабочем процессе происходил segmentation fault при
2093 недостатке памяти; ошибка появилась в 0.8.18.
2094
2095 *) Исправление: nginx передавал сжатые ответы клиентам, не
2096 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
2097 ошибка появилась в 0.8.16.
2098
2099
2100 Изменения в nginx 0.8.24 11.11.2009
2101
2102 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
2103 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
2104
2105 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
2106 появилась в 0.8.23.
2107
2108 *) Исправление: параметр "unix:" в директиве set_real_ip_from
2109 неправильно наследовался с предыдущего уровня.
2110
2111 *) Исправление: в resolver'е при определении пустого имени.
2112
2113
2114 Изменения в nginx 0.8.23 11.11.2009
2115
2116 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
2117 Спасибо Максиму Дунину.
2118
2119 *) Исправление: listen unix domain сокет не наследовался во время
2120 обновления без перерыва.
2121
2122 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
2123 без ещё одной директивы с любым IP-адресом.
2124
2125 *) Исправление: segmentation fault и зацикливания в resolver'е.
2126
2127 *) Исправление: в resolver'е.
2128 Спасибо Артёму Бохану.
2129
2130
2131 Изменения в nginx 0.8.22 03.11.2009
2132
2133 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
2134
2135 *) Добавление: директивы access и deny поддерживают IPv6.
2136
2137 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
2138 заголовках запроса.
2139
2140 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
2141
2142 *) Исправление: nginx не удалял unix domain сокет после тестирования
2143 конфигурации.
2144
2145 *) Исправление: nginx удалял unix domain сокет во время обновления без
2146 перерыва.
2147
2148 *) Исправление: оператор "!-x" не работал.
2149 Спасибо Максиму Дунину.
2150
2151 *) Исправление: в рабочем процессе мог произойти segmentation fault при
2152 использовании limit_rate в HTTPS сервере.
2153 Спасибо Максиму Дунину.
2154
2155 *) Исправление: при записи в лог переменной $limit_rate в рабочем
2156 процессе происходил segmentation fault.
2157 Спасибо Максиму Дунину.
2158
2159 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2160 если внутри блока server не было директивы listen; ошибка появилась в
2161 0.8.21.
2162
2163
2164 Изменения в nginx 0.8.21 26.10.2009
2165
2166 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
2167
2168 *) Добавление: директива listen модуля HTTP поддерживает unix domain
2169 сокеты.
2170 Спасибо Hongli Lai.
2171
2172 *) Добавление: параметр "default_server" в директиве listen.
2173
2174 *) Добавление: теперь параметр "default" не обязателен для установки
2175 параметров listen-сокета.
2176
2177 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
2178 платформах;
2179
2180 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
2181
2182
2183 Изменения в nginx 0.8.20 14.10.2009
2184
2185 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
2186 "HIGH:!ADH:!MD5".
2187
2188 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
2189 слэш для линков на каталоги; ошибка появилась в 0.7.15.
2190
2191 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
2192 --error-log-path; ошибка появилась в 0.7.53.
2193
2194 *) Исправление: nginx не считал запятую разделителем в строке
2195 "Cache-Control" в заголовке ответа бэкенда.
2196
2197 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
2198 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
2199 не имел достаточно прав для работы с каталогами верхнего уровня.
2200
2201 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
2202 FastCGI-сервера не скрывались при кэшировании, если не использовались
2203 директивы fastcgi_hide_header с любыми параметрами.
2204
2205 *) Исправление: nginx неверно считал размер кэша на диске.
2206
2207
2208 Изменения в nginx 0.8.19 06.10.2009
2209
2210 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
2211
2212 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
2213 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
2214
2215 *) Исправление: директива limit_req не работала; ошибка появилась в
2216 0.8.18.
2217
2218
2219 Изменения в nginx 0.8.18 06.10.2009
2220
2221 *) Добавление: директива read_ahead.
2222
2223 *) Добавление: теперь можно использовать несколько директив
2224 perl_modules.
2225
2226 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
2227
2228 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
2229 bucket.
2230 Спасибо Максиму Дунину.
2231
2232 *) Исправление: nginx не работал на Linux/sparc.
2233 Спасибо Marcus Ramberg.
2234
2235 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
2236 ответе на запрос MKCOL.
2237 Спасибо Xie Zhenye.
2238
2239 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
2240 появилась в 0.8.11.
2241
2242 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
2243
2244
2245 Изменения в nginx 0.8.17 28.09.2009
2246
2247 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
2248 в заголовке запроса.
2249
2250 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
2251
2252 *) Добавление: переменная $ssl_session_id.
2253
2254 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
2255
2256
2257 Изменения в nginx 0.8.16 22.09.2009
2258
2259 *) Добавление: директива image_filter_transparency.
2260
2261 *) Исправление: директива "addition_types" была неверно названа
2262 "addtion_types".
2263
2264 *) Исправление: порчи кэша resolver'а.
2265 Спасибо Matthew Dempsky.
2266
2267 *) Исправление: утечки памяти в resolver'е.
2268 Спасибо Matthew Dempsky.
2269
2270 *) Исправление: неверная строка запроса в переменной $request
2271 записывалась в access_log только при использовании error_log на
2272 уровне info или debug.
2273
2274 *) Исправление: в поддержке альфа-канала PNG в модуле
2275 ngx_http_image_filter_module.
2276
2277 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
2278 заголовок ответа, если обе директивы gzip_static и gzip_vary были
2279 включены.
2280
2281 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
2282 nginx/Windows.
2283
2284 *) Исправление: ошибки при использовании post_action; ошибка появилась в
2285 0.8.11.
2286 Спасибо Игорю Артемьеву.
2287
2288
2289 Изменения в nginx 0.8.15 14.09.2009
2290
2291 *) Безопасность: при обработке специально созданного запроса в рабочем
2292 процессе мог произойти segmentation fault.
2293 Спасибо Chris Ries.
2294
2295 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
2296 .domain-some.tld, то имя .sub.domain.tld попадало под маску
2297 .domain.tld.
2298
2299 *) Исправление: в поддержке прозрачности в модуле
2300 ngx_http_image_filter_module.
2301
2302 *) Исправление: в файловом AIO.
2303
2304 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
2305 появилась в 0.8.11.
2306
2307 *) Исправление: ошибки при использовании встроенного перла; ошибка
2308 появилась в 0.8.11.
2309
2310
2311 Изменения в nginx 0.8.14 07.09.2009
2312
2313 *) Исправление: устаревший закэшированный запрос мог залипнуть в
2314 состоянии "UPDATING".
2315
2316 *) Исправление: при использовании error_log на уровне info или debug в
2317 рабочем процессе мог произойти segmentation fault.
2318 Спасибо Сергею Боченкову.
2319
2320 *) Исправление: ошибки при использовании встроенного перла; ошибка
2321 появилась в 0.8.11.
2322
2323 *) Исправление: директива error_page не перенаправляла ошибку 413;
2324 ошибка появилась в 0.6.10.
2325
2326
2327 Изменения в nginx 0.8.13 31.08.2009
2328
2329 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
2330
2331 *) Исправление: nginx не собирался без параметра --with-file-aio на
2332 FreeBSD; ошибка появилась в 0.8.12.
2333
2334
2335 Изменения в nginx 0.8.12 31.08.2009
2336
2337 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
2338
2339 *) Исправление: ошибки при использовании try_files; ошибка появилась в
2340 0.8.11.
2341
2342 *) Исправление: ошибки при использовании memcached; ошибка появилась в
2343 0.8.11.
2344
2345
2346 Изменения в nginx 0.8.11 28.08.2009
2347
2348 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
2349 для MSIE 6.0 SV1.
2350
2351 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
2352
2353 *) Добавление: директива directio_alignment.
2354
2355
2356 Изменения в nginx 0.8.10 24.08.2009
2357
2358 *) Исправление: утечек памяти при использовании базы GeoIP City.
2359
2360 *) Исправление: ошибки при копировании временных файлов в постоянное
2361 место хранения; ошибка появилась в 0.8.9.
2362
2363
2364 Изменения в nginx 0.8.9 17.08.2009
2365
2366 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
2367 процесс; это должно улучшить обработку больших кэшей.
2368
2369 *) Добавление: теперь временные файлы и постоянное место хранения могут
2370 располагаться на разных файловых системах.
2371
2372
2373 Изменения в nginx 0.8.8 10.08.2009
2374
2375 *) Исправление: в обработке заголовков ответа, разделённых в
2376 FastCGI-записях.
2377
2378 *) Исправление: если запрос обрабатывался в двух проксированных или
2379 FastCGI location'ах и в первом из них использовалось кэширование, то
2380 в рабочем процессе происходил segmentation fault; ошибка появилась в
2381 0.8.7.
2382
2383
2384 Изменения в nginx 0.8.7 27.07.2009
2385
2386 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
2387
2388 *) Изменение: параметр ask директивы ssl_verify_client изменён на
2389 параметр optional и теперь он проверяет клиентский сертификат, если
2390 он был предложен.
2391 Спасибо Brice Figureau.
2392
2393 *) Добавление: переменная $ssl_client_verify.
2394 Спасибо Brice Figureau.
2395
2396 *) Добавление: директива ssl_crl.
2397 Спасибо Brice Figureau.
2398
2399 *) Добавление: параметр proxy директивы geo.
2400
2401 *) Добавление: директива image_filter поддерживает переменные для
2402 задания размеров.
2403
2404 *) Исправление: использование переменной $ssl_client_cert портило
2405 память; ошибка появилась в 0.7.7.
2406 Спасибо Сергею Журавлёву.
2407
2408 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
2409 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
2410 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
2411 Спасибо Максиму Дунину.
2412
2413 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
2414 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
2415 Спасибо Максиму Дунину.
2416
2417 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
2418 ответы в подзапросах; ошибка появилась в 0.8.5.
2419
2420
2421 Изменения в nginx 0.8.6 20.07.2009
2422
2423 *) Добавление: модуль ngx_http_geoip_module.
2424
2425 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
2426 document" для правильного документа.
2427 Спасибо Kuramoto Eiji.
2428
2429 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
2430 location'ов, заданных регулярным выражением, теперь всегда делается
2431 сравнение без учёта регистра символов.
2432
2433 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
2434 Спасибо Hugo Leisink.
2435
2436 *) Исправление: имя файла указанного в --conf-path игнорировалось при
2437 установке; ошибка появилась в 0.6.6.
2438 Спасибо Максиму Дунину.
2439
2440
2441 Изменения в nginx 0.8.5 13.07.2009
2442
2443 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
2444
2445 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
2446 для неверных имени/пароля возвращалась 500-ая ошибка.
2447
2448 *) Исправление: ответы модуля ngx_http_perl_module не работали в
2449 подзапросах.
2450
2451 *) Исправление: в модуле ngx_http_limit_req_module.
2452 Спасибо Максиму Дунину.
2453
2454
2455 Изменения в nginx 0.8.4 22.06.2009
2456
2457 *) Исправление: nginx не собирался с параметром --without-http-cache;
2458 ошибка появилась в 0.8.3.
2459
2460
2461 Изменения в nginx 0.8.3 19.06.2009
2462
2463 *) Добавление: переменная $upstream_cache_status.
2464
2465 *) Исправление: nginx не собирался на MacOSX 10.6.
2466
2467 *) Исправление: nginx не собирался с параметром --without-http-cache;
2468 ошибка появилась в 0.8.2.
2469
2470 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
2471 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
2472 в рабочем процессе происходил segmentation fault.
2473 Спасибо Евгению Мычло.
2474
2475
2476 Изменения в nginx 0.8.2 15.06.2009
2477
2478 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
2479 на старте.
2480
2481 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
2482 долго; ошибка появилась в 0.7.4.
2483
2484
2485 Изменения в nginx 0.8.1 08.06.2009
2486
2487 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
2488 fastcgi_cache_use_stale.
2489
2490 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
2491 заголовке запроса клиента передавались бэкенду при кэшировании, если
2492 не использовалась директива proxy_set_header с любыми параметрами.
2493
2494 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
2495 не скрывались при кэшировании, если не использовались директивы
2496 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
2497
2498 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
2499 GIF87a.
2500 Спасибо Денису Ильиных.
2501
2502 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
2503 появилась в 0.7.56.
2504
2505
2506 Изменения в nginx 0.8.0 02.06.2009
2507
2508 *) Добавление: директива keepalive_requests.
2509
2510 *) Добавление: директива limit_rate_after.
2511 Спасибо Ivan Debnar.
2512
2513 *) Исправление: XSLT-фильтр не работал в подзапросах.
2514
2515 *) Исправление: обработке относительных путей в nginx/Windows.
2516
2517 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
2518 fastcgi_cache в nginx/Windows.
2519
2520 *) Исправление: в обработке ошибок выделения памяти.
2521 Спасибо Максиму Дунину и Кириллу Коринскому.
2522
2523
2524 Изменения в nginx 0.7.59 25.05.2009
2525
2526 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
2527
2528 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
2529 Спасибо Максиму Дунину.
2530
2531 *) Исправление: при использовании переменной $request_body в рабочем
2532 процессе происходил segmentation fault, если в запросе не было тела;
2533 ошибка появилась в 0.7.58.
2534
2535 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
2536 ошибка появилась в 0.7.56.
2537
2538 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
2539 обрабатывались SSI-, charset- и gzip-фильтрами.
2540
2541 *) Исправление: директива charset не ставила кодировку для ответов
2542 модуля ngx_http_gzip_static_module.
2543
2544
2545 Изменения в nginx 0.7.58 18.05.2009
2546
2547 *) Добавление: директива listen почтового прокси-сервера поддерживает
2548 IPv6.
2549
2550 *) Добавление: директива image_filter_jpeg_quality.
2551
2552 *) Добавление: директива client_body_in_single_buffer.
2553
2554 *) Добавление: переменная $request_body.
2555
2556 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
2557 файлов, содержащих символ ":".
2558
2559 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
2560 0.7.53.
2561 Спасибо Денису Латыпову.
2562
2563
2564 Изменения в nginx 0.7.57 12.05.2009
2565
2566 *) Исправление: при перенаправлении ошибок модуля
2567 ngx_http_image_filter_module в именованный location в рабочем
2568 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
2569
2570
2571 Изменения в nginx 0.7.56 11.05.2009
2572
2573 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
2574 HTTP.
2575
2576 *) Исправление: в модуле ngx_http_image_filter_module.
2577
2578
2579 Изменения в nginx 0.7.55 06.05.2009
2580
2581 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
2582 fastcgi_cache_use_stale не работали.
2583
2584 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
2585 заголовка.
2586
2587 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
2588 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
2589
2590 *) Исправление: при использовании директивы debug_connection в рабочем
2591 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
2592
2593 *) Исправление: в сборке модуля ngx_http_image_filter_module.
2594
2595 *) Исправление: файлы больше 2G не передавались с использованием
2596 $r->sendfile.
2597 Спасибо Максиму Дунину.
2598
2599
2600 Изменения в nginx 0.7.54 01.05.2009
2601
2602 *) Добавление: модуль ngx_http_image_filter_module.
2603
2604 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
2605
2606 *) Исправление: при использовании переменных "open_file_cache_errors on"
2607 в рабочем процессе мог произойти segmentation fault; ошибка появилась
2608 в 0.7.53.
2609
2610 *) Исправление: директива "port_in_redirect off" не работала; ошибка
2611 появилась в 0.7.39.
2612
2613 *) Исправление: улучшение обработки ошибок метода select.
2614
2615 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
2616
2617 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
2618 ошибка появилась в 0.7.53.
2619
2620
2621 Изменения в nginx 0.7.53 27.04.2009
2622
2623 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
2624 самого начала работы.
2625
2626 *) Добавление: теперь ошибки и предупреждения при старте записываются в
2627 error_log и выводятся на stderr.
2628
2629 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
2630 как префикс каталог, в котором он был запущен.
2631
2632 *) Добавление: ключ -p.
2633
2634 *) Добавление: ключ -s на Unix-платформах.
2635
2636 *) Добавление: ключи -? и -h.
2637 Спасибо Jerome Loyet.
2638
2639 *) Добавление: теперь ключи можно задавать в сжатой форме.
2640
2641 *) Исправление: nginx/Windows не работал, если файл конфигурации был
2642 задан ключом -c.
2643
2644 *) Исправление: при использовании директив proxy_store, fastcgi_store,
2645 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
2646 Спасибо Максиму Дунину.
2647
2648 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
2649 почтового прокси-сервера передавалось неверное значение; ошибка
2650 появилась в 0.7.34.
2651 Спасибо Simon Lecaille.
2652
2653 *) Исправление: при логгировании на Linux не писались текстовые описания
2654 системных ошибок; ошибка появилась в 0.7.45.
2655
2656 *) Исправление: директива fastcgi_cache_min_uses не работала.
2657 Спасибо Андрею Воробьёву.
2658
2659
2660 Изменения в nginx 0.7.52 20.04.2009
2661
2662 *) Добавление: первая бинарная версия под Windows.
2663
2664 *) Исправление: корректная обработка метода HEAD при кэшировании.
2665
2666 *) Исправление: корректная обработка строк "If-Modified-Since",
2667 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
2668
2669 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
2670 заголовке ответа для закэшированных ответов.
2671
2672 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
2673 perl поддерживал потоки, то при выходе основного процесса могла
2674 выдаваться ошибка "panic: MUTEX_LOCK".
2675
2676 *) Исправление: nginx не собирался с параметром --without-http-cache;
2677 ошибка появилась в 0.7.48.
2678
2679 *) Исправление: nginx не собирался на платформах, отличных от i386,
2680 amd64, sparc и ppc; ошибка появилась в 0.7.42.
2681
2682
2683 Изменения в nginx 0.7.51 12.04.2009
2684
2685 *) Добавление: директива try_files поддерживает код ответа в последнем
2686 параметре.
2687
2688 *) Добавление: теперь в директиве return можно использовать любой код
2689 ответа.
2690
2691 *) Исправление: директива error_page делала внешний редирект без строки
2692 запроса; ошибка появилась в 0.7.44.
2693
2694 *) Исправление: если сервера слушали на нескольких явно описанных
2695 адресах, то виртуальные сервера могли не работать; ошибка появилась в
2696 0.7.39.
2697
2698
2699 Изменения в nginx 0.7.50 06.04.2009
2700
2701 *) Исправление: переменные $arg_... не работали; ошибка появилась в
2702 0.7.49.
2703
2704
2705 Изменения в nginx 0.7.49 06.04.2009
2706
2707 *) Исправление: при использовании переменных $arg_... в рабочем процессе
2708 мог произойти segmentation fault; ошибка появилась в 0.7.48.
2709
2710
2711 Изменения в nginx 0.7.48 06.04.2009
2712
2713 *) Добавление: директива proxy_cache_key.
2714
2715 *) Исправление: теперь nginx учитывает при кэшировании строки
2716 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
2717 бэкенда.
2718
2719 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
2720
2721 *) Исправление: директива fastcgi_cache_key не наследовалась.
2722
2723 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
2724 Спасибо Максиму Дунину.
2725
2726 *) Исправление: nginx не собирался с библиотекой uclibc.
2727 Спасибо Timothy Redaelli.
2728
2729 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
2730 в 0.7.46.
2731
2732
2733 Изменения в nginx 0.7.47 01.04.2009
2734
2735 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
2736 ошибка появилась в 0.7.46.
2737
2738 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
2739
2740 *) Исправление: если использовался параметр max_size, то cache manager
2741 мог удалить весь кэш; ошибка появилась в 0.7.46.
2742
2743 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
2744 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
2745 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
2746 в 0.7.46.
2747
2748 *) Исправление: в рабочем процессе мог произойти segmentation fault при
2749 перенаправлении запроса проксированному или FastCGI-серверу с помощью
2750 error_page или try_files; ошибка появилась в 0.7.44.
2751
2752
2753 Изменения в nginx 0.7.46 30.03.2009
2754
2755 *) Исправление: архив предыдущего релиза был неверным.
2756
2757
2758 Изменения в nginx 0.7.45 30.03.2009
2759
2760 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
2761 задавать на разных уровнях.
2762
2763 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
2764
2765 *) Добавление: параметр max_size в директиве proxy_cache_path.
2766
2767 *) Добавление: предварительная поддержка кэширования в модуле
2768 ngx_http_fastcgi_module.
2769
2770 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
2771 указываются названия директивы и зоны.
2772
2773 *) Исправление: директива "add_header last-modified ''" не удаляла в
2774 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
2775
2776 *) Исправление: в директиве auth_basic_user_file не работал
2777 относительный путь, заданный строкой без переменных; ошибка появилась
2778 в 0.7.44.
2779 Спасибо Jerome Loyet.
2780
2781 *) Исправление: в директиве alias, заданной переменными без ссылок на
2782 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
2783
2784
2785 Изменения в nginx 0.7.44 23.03.2009
2786
2787 *) Добавление: предварительная поддержка кэширования в модуле
2788 ngx_http_proxy_module.
2789
2790 *) Добавление: параметр --with-pcre в configure.
2791
2792 *) Добавление: теперь директива try_files может быть использована на
2793 уровне server.
2794
2795 *) Исправление: директива try_files неправильно обрабатывала строку
2796 запроса в последнем параметре.
2797
2798 *) Исправление: директива try_files могла неверно тестировать каталоги.
2799
2800 *) Исправление: если для пары адрес:порт описан только один сервер, то
2801 выделения в регулярных выражениях в директиве server_name не
2802 работали.
2803
2804
2805 Изменения в nginx 0.7.43 18.03.2009
2806
2807 *) Исправление: запрос обрабатывался неверно, если директива root
2808 использовала переменные; ошибка появилась в 0.7.42.
2809
2810 *) Исправление: если сервер слушал на адресах типа "*", то значение
2811 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
2812
2813
2814 Изменения в nginx 0.7.42 16.03.2009
2815
2816 *) Изменение: ошибка "Invalid argument", возвращаемая
2817 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
2818
2819 *) Изменение: при отсутствии файла, указанного в директиве
2820 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
2821
2822 *) Добавление: директива auth_basic_user_file поддерживает переменные.
2823 Спасибо Кириллу Коринскому.
2824
2825 *) Добавление: директива listen поддерживает параметр ipv6only.
2826 Спасибо Zhang Hua.
2827
2828 *) Исправление: в директиве alias со ссылками на выделения в регулярных
2829 выражениях; ошибка появилась в 0.7.40.
2830
2831 *) Исправление: совместимость с Tru64 UNIX.
2832 Спасибо Dustin Marquess.
2833
2834 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
2835 в 0.7.41.
2836
2837
2838 Изменения в nginx 0.7.41 11.03.2009
2839
2840 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2841 если в server_name или location были выделения в регулярных
2842 выражениях; ошибка появилась в 0.7.40.
2843 Спасибо Владимиру Сопоту.
2844
2845
2846 Изменения в nginx 0.7.40 09.03.2009
2847
2848 *) Добавление: директива location поддерживает выделения в регулярных
2849 выражениях.
2850
2851 *) Добавление: директиву alias с ссылками на выделения в регулярных
2852 выражениях можно использовать внутри location'а, заданного регулярным
2853 выражением с выделениями.
2854
2855 *) Добавление: директива server_name поддерживает выделения в регулярных
2856 выражениях.
2857
2858 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
2859 слэш для каталогов на файловой системе XFS; ошибка появилась в
2860 0.7.15.
2861 Спасибо Дмитрию Кузьменко.
2862
2863
2864 Изменения в nginx 0.7.39 02.03.2009
2865
2866 *) Исправление: при включённом сжатии большие ответы с использованием
2867 SSI могли зависать; ошибка появилась в 0.7.28.
2868 Спасибо Артёму Бохану.
2869
2870 *) Исправление: при использовании коротких статических вариантов в
2871 директиве try_files в рабочем процессе мог произойти segmentation
2872 fault.
2873
2874
2875 Изменения в nginx 0.7.38 23.02.2009
2876
2877 *) Добавление: логгирование ошибок аутентификации.
2878
2879 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
2880 игнорировались после нечётного числа пустых строк.
2881 Спасибо Александру Загребину.
2882
2883 *) Исправление: при использовании длинного пути в unix domain сокете в
2884 главном процессе происходил segmentation fault; ошибка появилась в
2885 0.7.36.
2886
2887
2888 Изменения в nginx 0.7.37 21.02.2009
2889
2890 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
2891 появилась в 0.7.36.
2892
2893
2894 Изменения в nginx 0.7.36 21.02.2009
2895
2896 *) Добавление: предварительная поддержка IPv6; директива listen модуля
2897 HTTP поддерживает IPv6.
2898
2899 *) Исправление: переменная $ancient_browser не работала для браузеров,
2900 заданных директивами modern_browser.
2901
2902
2903 Изменения в nginx 0.7.35 16.02.2009
2904
2905 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
2906 асимметричных шифров.
2907 Спасибо Marcin Gozdalik.
2908
2909 *) Исправление: директива try_files выставляла MIME-type, исходя из
2910 расширения первоначального запроса.
2911
2912 *) Исправление: в директивах server_name, valid_referers и map
2913 неправильно обрабатывались имена вида "*domain.tld", если
2914 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
2915 ошибка появилась в 0.7.9.
2916
2917
2918 Изменения в nginx 0.7.34 10.02.2009
2919
2920 *) Добавление: параметр off в директиве if_modified_since.
2921
2922 *) Добавление: теперь после команды XCLIENT nginx посылает команду
2923 HELO/EHLO.
2924 Спасибо Максиму Дунину.
2925
2926 *) Добавление: поддержка Microsoft-специфичного режима
2927 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
2928 Спасибо Максиму Дунину.
2929
2930 *) Исправление: в директиве rewrite, возвращающей редирект, старые
2931 аргументы присоединялись к новым через символ "?" вместо "&";
2932 ошибка появилась в 0.1.18.
2933 Спасибо Максиму Дунину.
2934
2935 *) Исправление: nginx не собирался на AIX.
2936
2937
2938 Изменения в nginx 0.7.33 02.02.2009
2939
2940 *) Исправление: если на запрос с телом возвращался редирект, то ответ
2941 мог быть двойным при использовании методов epoll или rtsig.
2942 Спасибо Eden Li.
2943
2944 *) Исправление: для некоторых типов редиректов в переменной
2945 $sent_http_location было пустое значение.
2946
2947 *) Исправление: при использовании директивы resolver в SMTP
2948 прокси-сервере в рабочем процессе мог произойти segmentation fault.
2949
2950
2951 Изменения в nginx 0.7.32 26.01.2009
2952
2953 *) Добавление: теперь в директиве try_files можно явно указать проверку
2954 каталога.
2955
2956 *) Исправление: fastcgi_store не всегда сохранял файлы.
2957
2958 *) Исправление: в гео-диапазонах.
2959
2960 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
2961 если nginx был собран без отладки.
2962 Спасибо Андрею Квасову.
2963
2964
2965 Изменения в nginx 0.7.31 19.01.2009
2966
2967 *) Изменение: теперь директива try_files проверяет только файлы,
2968 игнорируя каталоги.
2969
2970 *) Добавление: директива fastcgi_split_path_info.
2971
2972 *) Исправления в поддержке строки "Expect" в заголовке запроса.
2973
2974 *) Исправления в гео-диапазонах.
2975
2976 *) Исправление: при отсутствии ответа ngx_http_memcached_module
2977 возвращал в теле ответа строку "END" вместо 404-ой страницы по
2978 умолчанию; ошибка появилась в 0.7.18.
2979 Спасибо Максиму Дунину.
2980
2981 *) Исправление: при проксировании SMTP nginx выдавал сообщение
2982 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
2983 Спасибо Максиму Дунину.
2984
2985
2986 Изменения в nginx 0.7.30 24.12.2008
2987
2988 *) Исправление: в рабочем процессе происходил segmentation fault, если в
2989 директивах fastcgi_pass или proxy_pass использовались переменные и
2990 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
2991
2992
2993 Изменения в nginx 0.7.29 24.12.2008
2994
2995 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
2996 переменные при использовании unix domain сокетов.
2997
2998 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
2999
3000 *) Исправление: ответ "100 Continue" выдавался для запросов версии
3001 HTTP/1.0;
3002 Спасибо Максиму Дунину.
3003
3004 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
3005 под Cygwin.
3006
3007
3008 Изменения в nginx 0.7.28 22.12.2008
3009
3010 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
3011
3012 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
3013 с 4 4k/8k на 32 4k или 16 8k.
3014
3015
3016 Изменения в nginx 0.7.27 15.12.2008
3017
3018 *) Добавление: директива try_files.
3019
3020 *) Добавление: директива fastcgi_pass поддерживает переменные.
3021
3022 *) Добавление: теперь директива geo может брать адрес из переменной.
3023 Спасибо Андрею Нигматулину.
3024
3025 *) Добавление: теперь модификатор location'а можно указывать без пробела
3026 перед названием.
3027
3028 *) Добавление: переменная $upstream_response_length.
3029
3030 *) Исправление: теперь директива add_header не добавляет пустое
3031 значение.
3032
3033 *) Исправление: при запросе файла нулевой длины nginx закрывал
3034 соединение, ничего не передав; ошибка появилась в 0.7.25.
3035
3036 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
3037 каталог.
3038
3039 *) Исправление: если в сервере не был описан ни один именованный
3040 location, но такой location использовался в директиве error_page, то
3041 в рабочем процессе происходил segmentation fault.
3042 Спасибо Сергею Боченкову.
3043
3044
3045 Изменения в nginx 0.7.26 08.12.2008
3046
3047 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
3048
3049
3050 Изменения в nginx 0.7.25 08.12.2008
3051
3052 *) Изменение: в обработке подзапросов.
3053
3054 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
3055 заголовке запроса.
3056
3057 *) Исправление: теперь директивы limit_req и limit_conn указывают
3058 причину запрета запроса.
3059
3060 *) Исправление: в параметре delete директивы geo.
3061
3062
3063 Изменения в nginx 0.7.24 01.12.2008
3064
3065 *) Добавление: директива if_modified_since.
3066
3067 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
3068 ответом сервер передавал много сообщений в stderr.
3069
3070 *) Исправление: переменные "$cookie_..." не работали в SSI and в
3071 перловом модуле.
3072
3073
3074 Изменения в nginx 0.7.23 27.11.2008
3075
3076 *) Добавление: параметры delete и ranges в директиве geo.
3077
3078 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
3079
3080 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
3081
3082
3083 Изменения в nginx 0.7.22 20.11.2008
3084
3085 *) Добавление: параметр none в директиве smtp_auth.
3086 Спасибо Максиму Дунину.
3087
3088 *) Добавление: переменные "$cookie_...".
3089
3090 *) Исправление: директива directio не работала с файловой системой XFS.
3091
3092 *) Исправление: resolver не понимал большие DNS-ответы.
3093 Спасибо Zyb.
3094
3095
3096 Изменения в nginx 0.7.21 11.11.2008
3097
3098 *) Изменения в модуле ngx_http_limit_req_module.
3099
3100 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
3101 Спасибо Денису Латыпову.
3102
3103 *) Изменение: совместимость с glibc 2.3.
3104 Спасибо Eric Benson и Максиму Дунину.
3105
3106 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
3107 ошибка появилась в 0.7.6.
3108
3109
3110 Изменения в nginx 0.7.20 10.11.2008
3111
3112 *) Изменения в модуле ngx_http_gzip_filter_module.
3113
3114 *) Добавление: модуль ngx_http_limit_req_module.
3115
3116 *) Исправление: на платформах sparc и ppc рабочие процессы могли
3117 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
3118 Спасибо Максиму Дунину.
3119
3120 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
3121 работали; ошибка появилась в 0.7.12.
3122
3123 *) Исправление: при использовании HTTPS запросы могли завершаться с
3124 ошибкой "bad write retry".
3125
3126 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
3127 location'ов с именами меньше 3 символов.
3128
3129 *) Исправление: переменная $server_addr могла не иметь значения.
3130
3131
3132 Изменения в nginx 0.7.19 13.10.2008
3133
3134 *) Исправление: обновление номера версии.
3135
3136
3137 Изменения в nginx 0.7.18 13.10.2008
3138
3139 *) Изменение: директива underscores_in_headers; теперь nginx по
3140 умолчанию не разрешает подчёркивания в именах строк в заголовке
3141 запроса клиента.
3142
3143 *) Добавление: модуль ngx_http_secure_link_module.
3144
3145 *) Добавление: директива real_ip_header поддерживает любой заголовок.
3146
3147 *) Добавление: директива log_subrequest.
3148
3149 *) Добавление: переменная $realpath_root.
3150
3151 *) Добавление: параметры http_502 и http_504 в директиве
3152 proxy_next_upstream.
3153
3154 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
3155 fastcgi_next_upstream не работал.
3156
3157 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
3158 для запросов HEAD.
3159
3160 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
3161
3162
3163 Изменения в nginx 0.7.17 15.09.2008
3164
3165 *) Добавление: директива directio теперь работает на Linux.
3166
3167 *) Добавление: переменная $pid.
3168
3169 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
3170 при использовании open_file_cache.
3171
3172 *) Исправление: access_log с переменными не работал на Linux; ошибка
3173 появилась в 0.7.7.
3174
3175 *) Исправление: модуль ngx_http_charset_module не понимал название
3176 кодировки в кавычках, полученное от бэкенда.
3177
3178
3179 Изменения в nginx 0.7.16 08.09.2008
3180
3181 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
3182 появилась в 0.7.15.
3183
3184
3185 Изменения в nginx 0.7.15 08.09.2008
3186
3187 *) Добавление: модуль ngx_http_random_index_module.
3188
3189 *) Добавление: директива directio оптимизирована для запросов файлов,
3190 начинающихся с произвольной позиции.
3191
3192 *) Добавление: директива directio при необходимости запрещает
3193 использование sendfile.
3194
3195 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
3196 заголовке запроса клиента.
3197
3198
3199 Изменения в nginx 0.7.14 01.09.2008
3200
3201 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
3202 имеют значений по умолчанию.
3203
3204 *) Добавление: директива listen поддерживает параметр ssl.
3205
3206 *) Добавление: теперь при переконфигурации nginx учитывает изменение
3207 временной зоны на FreeBSD и Linux.
3208
3209 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
3210 прочие, не устанавливались, если сервером по умолчанию был не первый
3211 сервер.
3212
3213 *) Исправление: при использовании в качестве аргументов части URI,
3214 выделенного с помощью директивы rewrite, эти аргументы не
3215 экранировались.
3216
3217 *) Исправление: улучшения тестирования правильности конфигурационного
3218 файла.
3219
3220
3221 Изменения в nginx 0.7.13 26.08.2008
3222
3223 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
3224 в 0.7.12.
3225
3226
3227 Изменения в nginx 0.7.12 26.08.2008
3228
3229 *) Добавление: директива server_name поддерживает пустое имя "".
3230
3231 *) Добавление: директива gzip_disable поддерживает специальную маску
3232 msie6.
3233
3234 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
3235 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
3236 Спасибо Максиму Дунину.
3237
3238 *) Исправление: при перенаправлении запроса с помощью директивы
3239 error_page терялось тело запроса.
3240
3241 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
3242 директивы error_page возвращался полный ответ.
3243
3244 *) Исправление: метод $r->header_in() не возвращал значения строк
3245 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
3246 появилась в 0.7.0.
3247
3248
3249 Изменения в nginx 0.7.11 18.08.2008
3250
3251 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
3252 MIME-типом text/css.
3253
3254 *) Добавление: теперь nginx возвращает код 405 для метода POST при
3255 запросе статического файла, только если файл существует.
3256
3257 *) Добавление: директива proxy_ssl_session_reuse.
3258
3259 *) Исправление: после перенаправления запроса с помощью
3260 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
3261 оригинальный запрос.
3262
3263 *) Исправление: если у каталога были права доступа только на поиск
3264 файлов и первый индексный файл отсутствовал, то nginx возвращал
3265 ошибку 500.
3266
3267 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
3268 0.7.1.
3269
3270
3271 Изменения в nginx 0.7.10 13.08.2008
3272
3273 *) Исправление: ошибок в директивах addition_types, charset_types,
3274 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
3275 появились в 0.7.9.
3276
3277 *) Исправление: рекурсивной error_page для 500 ошибки.
3278
3279 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
3280 не для всего keepalive соединения, а для каждого запроса по этому
3281 соединению.
3282
3283
3284 Изменения в nginx 0.7.9 12.08.2008
3285
3286 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
3287 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
3288 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
3289
3290 *) Добавление: директивы charset_types и addition_types.
3291
3292 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
3293 используют хэш.
3294
3295 *) Добавление: модуль ngx_cpp_test_module.
3296
3297 *) Добавление: директива expires поддерживает суточное время.
3298
3299 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
3300 Спасибо Денису Латыпову и Максиму Дунину.
3301
3302 *) Исправление: директива log_not_found не работала при поиске индексных
3303 файлов.
3304
3305 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
3306 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
3307
3308 *) Исправление: если в директивах server_name, valid_referers и map
3309 использовалась маска вида "*.domain.tld" и при этом полное имя вида
3310 "domain.tld" не было описано, то это имя попадало под маску; ошибка
3311 появилась в 0.3.18.
3312
3313
3314 Изменения в nginx 0.7.8 04.08.2008
3315
3316 *) Добавление: модуль ngx_http_xslt_module.
3317
3318 *) Добавление: переменные "$arg_...".
3319
3320 *) Добавление: поддержка directio в Solaris.
3321 Спасибо Ivan Debnar.
3322
3323 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
3324 в заголовке ответа без строки статуса, то nginx использует код
3325 статуса 302.
3326 Спасибо Максиму Дунину.
3327
3328
3329 Изменения в nginx 0.7.7 30.07.2008
3330
3331 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
3332 временной.
3333
3334 *) Изменение: значением переменной $ssl_client_cert теперь является
3335 сертификат, перед каждой строкой которого, кроме первой, вставляется
3336 символ табуляции; неизменённый сертификат доступен через переменную
3337 $ssl_client_raw_cert.
3338
3339 *) Добавление: параметр ask директивы ssl_verify_client.
3340
3341 *) Добавление: улучшения в обработке byte-range.
3342 Спасибо Максиму Дунину.
3343
3344 *) Добавление: директива directio.
3345 Спасибо Jiang Hong.
3346
3347 *) Добавление: поддержка sendfile() в MacOSX 10.5.
3348
3349 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
3350 делается сравнение без учёта регистра символов; однако, сравнение
3351 ограничено только однобайтными locale'ями.
3352
3353 *) Исправление: соединения почтового прокси-сервера зависали в режиме
3354 SSL, если использовались методы select, poll или /dev/poll.
3355
3356 *) Исправление: ошибки при использовании кодировки UTF-8 в
3357 ngx_http_autoindex_module.
3358
3359
3360 Изменения в nginx 0.7.6 07.07.2008
3361
3362 *) Исправление: теперь при использовании переменных в директиве
3363 access_log всегда проверяется существовании root'а для запроса.
3364
3365 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
3366 значений в аргументах запроса.
3367
3368
3369 Изменения в nginx 0.7.5 01.07.2008
3370
3371 *) Исправления в поддержке переменных в директиве access_log; ошибки
3372 появились в 0.7.4.
3373
3374 *) Исправление: nginx не собирался с параметром
3375 --without-http_gzip_module; ошибка появилась в 0.7.3.
3376 Спасибо Кириллу Коринскому.
3377
3378 *) Исправление: при совместном использовании sub_filter и SSI ответы
3379 могли передаваться неверно.
3380
3381
3382 Изменения в nginx 0.7.4 30.06.2008
3383
3384 *) Добавление: директива access_log поддерживает переменные.
3385
3386 *) Добавление: директива open_log_file_cache.
3387
3388 *) Добавление: ключ -g.
3389
3390 *) Добавление: поддержка строки "Expect" в заголовке запроса.
3391
3392 *) Исправление: большие включения в SSI могли передавались не полностью.
3393
3394
3395 Изменения в nginx 0.7.3 23.06.2008
3396
3397 *) Изменение: MIME-тип для расширения rss изменён на
3398 "application/rss+xml".
3399
3400 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
3401 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
3402
3403 *) Добавление: теперь при использовании протокола "https://" в директиве
3404 rewrite автоматически делается редирект.
3405
3406 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
3407 ошибка появилась в 0.6.9.
3408
3409
3410 Изменения в nginx 0.7.2 16.06.2008
3411
3412 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
3413
3414 *) Добавление: директива ssl_dhparam.
3415
3416 *) Добавление: переменная $ssl_client_cert.
3417 Спасибо Manlio Perillo.
3418
3419 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
3420 искал новый location; ошибка появилась в 0.7.1.
3421 Спасибо Максиму Дунину.
3422
3423 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
3424 в 0.7.1.
3425
3426 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
3427 nginx не добавлял аргументы из оригинального запроса.
3428
3429
3430 Изменения в nginx 0.7.1 26.05.2008
3431
3432 *) Изменение: теперь поиск location'а делается с помощью дерева.
3433
3434 *) Изменение: директива optimize_server_names упразднена в связи с
3435 появлением директивы server_name_in_redirect.
3436
3437 *) Изменение: некоторые давно устаревшие директивы больше не
3438 поддерживаются.
3439
3440 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
3441 параметр используется по умолчанию.
3442 Спасибо Rob Mueller.
3443
3444 *) Исправление: рабочие процессы могли не реагировать на сигналы
3445 переконфигурации и ротации логов.
3446
3447 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
3448 Спасибо Roxis.
3449
3450
3451 Изменения в nginx 0.7.0 19.05.2008
3452
3453 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
3454 записываются в виде \xXX.
3455 Спасибо Максиму Дунину.
3456
3457 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
3458 запроса.
3459
3460 *) Добавление: директива expires поддерживает флаг modified.
3461
3462 *) Добавление: переменные $uid_got и $uid_set можно использовать на
3463 любой стадии обработки запроса.
3464
3465 *) Добавление: переменная $hostname.
3466 Спасибо Андрею Нигматулину.
3467
3468 *) Добавление: поддержка DESTDIR.
3469 Спасибо Todd A. Fisher и Andras Voroskoi.
3470
3471 *) Исправление: при использовании keepalive на Linux в рабочем процессе
3472 мог произойти segmentation fault.
3473
3474
3475 Изменения в nginx 0.6.31 12.05.2008
3476
3477 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
3478 заголовка ответ была в конце записи FastCGI; ошибка появилась в
3479 0.6.2.
3480 Спасибо Сергею Серову.
3481
3482 *) Исправление: при удалении файла и использовании директивы
3483 open_file_cache_errors off в рабочем процессе мог произойти
3484 segmentation fault.
3485
3486
3487 Изменения в nginx 0.6.30 29.04.2008
3488
3489 *) Изменение: теперь, если маске, заданной в директиве include, не
3490 соответствует ни один файл, то nginx не выдаёт ошибку.
3491
3492 *) Добавление: теперь время в директивах можно задавать без пробела,
3493 например, "1h50m".
3494
3495 *) Исправление: утечек памяти, если директива ssl_verify_client имела
3496 значение on.
3497 Спасибо Chavelle Vincent.
3498
3499 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
3500 вывод.
3501
3502 *) Исправление: директива error_page не воспринимала параметры в
3503 перенаправляемом URI.
3504
3505 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
3506 в бинарном режиме.
3507
3508 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
3509 0.6.15.
3510
3511
3512 Изменения в nginx 0.6.29 18.03.2008
3513
3514 *) Добавление: модуль ngx_google_perftools_module.
3515
3516 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
3517 платформах; ошибка появилась в 0.6.27.
3518
3519
3520 Изменения в nginx 0.6.28 13.03.2008
3521
3522 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
3523
3524
3525 Изменения в nginx 0.6.27 12.03.2008
3526
3527 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
3528 rtsig.
3529
3530 *) Изменение: теперь при перенаправлении запроса в именованный location
3531 с помощью директивы error_page метод запроса не изменяется.
3532
3533 *) Добавление: директивы resolver и resolver_timeout в SMTP
3534 прокси-сервере.
3535
3536 *) Добавление: директива post_action поддерживает именованные
3537 location'ы.
3538
3539 *) Исправление: при перенаправлении запроса из location'а c обработчиком
3540 proxy, FastCGI или memcached в именованный location со статическим
3541 обработчиком в рабочем процессе происходил segmentation fault.
3542
3543 *) Исправление: браузеры не повторяли SSL handshake, если при первом
3544 handshake не оказалось правильного клиентского сертификата.
3545 Спасибо Александру Инюхину.
3546
3547 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
3548 error_page без изменения кода ошибки nginx пытался выделить очень
3549 много памяти.
3550
3551 *) Исправление: утечки памяти в долгоживущих небуфферизированных
3552 соединениях.
3553
3554 *) Исправление: утечки памяти в resolver'е.
3555
3556 *) Исправление: при перенаправлении запроса из location'а c обработчиком
3557 proxy в другой location с обработчиком proxy в рабочем процессе
3558 происходил segmentation fault.
3559
3560 *) Исправление: ошибки в кэшировании переменных $proxy_host и
3561 $proxy_port.
3562 Спасибо Сергею Боченкову.
3563
3564 *) Исправление: директива proxy_pass с переменными использовала порт,
3565 описанной в другой директиве proxy_pass без переменных, но с таким же
3566 именем хоста.
3567 Спасибо Сергею Боченкову.
3568
3569 *) Исправление: во время переконфигурации на некоторых 64-битном
3570 платформах в лог записывался alert "sendmsg() failed (9: Bad file
3571 descriptor)".
3572
3573 *) Исправление: при повторном использовании в SSI пустого block'а в
3574 качестве заглушки в рабочем процессе происходил segmentation fault.
3575
3576 *) Исправление: ошибки при копировании части URI, содержащего
3577 экранированные символы, в аргументы.
3578
3579
3580 Изменения в nginx 0.6.26 11.02.2008
3581
3582 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
3583 ответа.
3584
3585 *) Исправление: при использовании большого значения в директиве expires
3586 в рабочем процессе происходил segmentation fault.
3587 Спасибо Joaquin Cuenca Abela.
3588
3589 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
3590 Спасибо Геннадию Махомеду.
3591
3592 *) Исправление: в проксированных подзапросах и подзапросах к
3593 FastCGI-серверу вместо метода GET использовался оригинальный метод
3594 клиента.
3595
3596 *) Исправление: утечки сокетов в режиме HTTPS при использовании
3597 отложенного accept'а.
3598 Спасибо Ben Maurer.
3599
3600 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
3601 (SSL: )"; ошибка появилась в 0.6.23.
3602
3603 *) Исправление: при использовании HTTPS запросы могли завершаться с
3604 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
3605
3606
3607 Изменения в nginx 0.6.25 08.01.2008
3608
3609 *) Изменение: вместо специального параметра "*" в директиве server_name
3610 теперь используется директива server_name_in_redirect.
3611
3612 *) Изменение: в качестве основного имени в директиве server_name теперь
3613 можно использовать имена с масками и регулярными выражениями.
3614
3615 *) Изменение: директива satisfy_any заменена директивой satisfy.
3616
3617 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
3618 нагружать процессор при запуске под Linux OpenVZ.
3619
3620 *) Добавление: директива min_delete_depth.
3621
3622 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
3623
3624 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
3625 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
3626
3627 *) Исправление: утечки сокетов в режиме HTTPS при использовании
3628 отложенного accept'а.
3629 Спасибо Ben Maurer.
3630
3631 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
3632 в 0.6.23.
3633
3634
3635 Изменения в nginx 0.6.24 27.12.2007
3636
3637 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
3638 segmentation fault; ошибка появилась в 0.6.23.
3639
3640
3641 Изменения в nginx 0.6.23 27.12.2007
3642
3643 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
3644 параметр используется по умолчанию.
3645
3646 *) Изменение: директива open_file_cache_retest переименована в
3647 open_file_cache_valid.
3648
3649 *) Добавление: директива open_file_cache_min_uses.
3650
3651 *) Добавление: модуль ngx_http_gzip_static_module.
3652
3653 *) Добавление: директива gzip_disable.
3654
3655 *) Добавление: директиву memcached_pass можно использовать внутри блока
3656 if.
3657
3658 *) Исправление: если внутри одного location'а использовались директивы
3659 "memcached_pass" и "if", то в рабочем процессе происходил
3660 segmentation fault.
3661
3662 *) Исправление: если при использовании директивы satisfy_any on" были
3663 заданы директивы не всех модулей доступа, то заданные директивы не
3664 проверялись.
3665
3666 *) Исправление: параметры, заданные регулярным выражением в директиве
3667 valid_referers, не наследовалась с предыдущего уровня.
3668
3669 *) Исправление: директива post_action не работала, если запрос
3670 завершался с кодом 499.
3671
3672 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
3673 Спасибо Ben Maurer.
3674
3675 *) Исправление: STARTTLS в режиме SMTP не работал.
3676 Спасибо Олегу Мотиенко.
3677
3678 *) Исправление: при использовании HTTPS запросы могли завершаться с
3679 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
3680
3681
3682 Изменения в nginx 0.6.22 19.12.2007
3683
3684 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
3685 значения, скопированные в память, выделенную perl'ом.
3686
3687 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
3688 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
3689 время переконфигурации основной процесс аварийно выходил; ошибка
3690 появилась в 0.5.9.
3691 Спасибо Борису Жмурову.
3692
3693 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
3694 неверные результаты выделения в регулярных выражениях.
3695
3696 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
3697 у которого небольшое тело запроса было уже полностью получено, то в
3698 рабочем процессе происходил segmentation fault.
3699
3700 *) Исправление: large_client_header_buffers не освобождались перед
3701 переходом в состояние keep-alive.
3702 Спасибо Олександру Штепе.
3703
3704 *) Исправление: в переменной $upstream_addr не записывался последний
3705 адрес; ошибка появилась в 0.6.18.
3706
3707 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
3708 теперь она возвращает ошибку 502, которую можно направить на
3709 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
3710
3711 *) Исправление: при использовании директивы fastcgi_catch_stderr в
3712 основном процессе происходил segmentation fault; ошибка появилась в
3713 0.6.10.
3714 Спасибо Manlio Perillo.
3715
3716
3717 Изменения в nginx 0.6.21 03.12.2007
3718
3719 *) Изменение: если в значениях переменных директивы proxy_pass
3720 используются только IP-адреса, то указывать resolver не нужно.
3721
3722 *) Исправление: при использовании директивы proxy_pass c URI-частью в
3723 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3724 0.6.19.
3725
3726 *) Исправление: если resolver использовался на платформах, не
3727 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
3728 response".
3729 Спасибо Андрею Нигматулину.
3730
3731 *) Исправление: При использовании переменной $server_protocol в
3732 FastCGI-параметрах и запросе, длина которого была близка к значению
3733 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
3734 the request record is too big".
3735
3736 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
3737 nginx возвращал обычный ответ.
3738
3739
3740 Изменения в nginx 0.6.20 28.11.2007
3741
3742 *) Исправление: при использовании директивы proxy_pass c URI-частью в
3743 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3744 0.6.19.
3745
3746
3747 Изменения в nginx 0.6.19 27.11.2007
3748
3749 *) Исправление: версия 0.6.18 не собиралась.
3750
3751
3752 Изменения в nginx 0.6.18 27.11.2007
3753
3754 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
3755 процесса добавляет микросекунды на время старта.
3756
3757 *) Изменение: в error_log теперь записывается полная строка запроса
3758 вместо только URI.
3759
3760 *) Добавление: директива proxy_pass поддерживает переменные.
3761
3762 *) Добавление: директивы resolver и resolver_timeout.
3763
3764 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
3765 заголовке ответа строку "Last-Modified".
3766
3767 *) Исправление: директива limit_rate не позволяла передавать на полной
3768 скорости, даже если был указан очень большой лимит.
3769
3770
3771 Изменения в nginx 0.6.17 15.11.2007
3772
3773 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
3774 Спасибо Александру Инюхину.
3775
3776 *) Исправление: при использовании директивы msie_refresh повторно
3777 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
3778
3779 *) Исправление: директива autoindex не работала при использовании "alias
3780 /".
3781
3782 *) Исправление: при использовании подзапросов в рабочем процессе мог
3783 произойти segmentation fault.
3784
3785 *) Исправление: при использовании SSL и gzip большие ответы могли
3786 передаваться не полностью.
3787
3788 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
3789 то переменная $status была равна 0.
3790
3791
3792 Изменения в nginx 0.6.16 29.10.2007
3793
3794 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
3795 Спасибо Илье Новикову.
3796
3797 *) Исправление: если в директиве error_page использовался символ "?", то
3798 он экранировался при проксировании запроса; ошибка появилась в
3799 0.6.11.
3800
3801 *) Исправление: совместимость с mget.
3802
3803
3804 Изменения в nginx 0.6.15 22.10.2007
3805
3806 *) Добавление: совместимость с Cygwin.
3807 Спасибо Владимиру Кутакову.
3808
3809 *) Добавление: директива merge_slashes.
3810
3811 *) Добавление: директива gzip_vary.
3812
3813 *) Добавление: директива server_tokens.
3814
3815 *) Исправление: nginx не раскодировал URI в команде SSI include.
3816
3817 *) Исправление: при использовании переменной в директивах charset или
3818 source_charset на старте или во время переконфигурации происходил
3819 segmentation fault,
3820
3821 *) Исправление: nginx возвращал ошибку 400 на запросы вида
3822 "GET http://www.domain.com HTTP/1.0".
3823 Спасибо James Oakley.
3824
3825 *) Исправление: после перенаправления запроса с телом запроса с помощью
3826 директивы error_page nginx пытался снова прочитать тело запроса;
3827 ошибка появилась в 0.6.7.
3828
3829 *) Исправление: в рабочем процессе происходил segmentation fault, если у
3830 сервера, обрабатывающему запрос, не был явно определён server_name;
3831 ошибка появилась в 0.6.7.
3832
3833
3834 Изменения в nginx 0.6.14 15.10.2007
3835
3836 *) Изменение: теперь по умолчанию команда SSI echo использует
3837 кодирование entity.
3838
3839 *) Добавление: параметр encoding в команде SSI echo.
3840
3841 *) Добавление: директиву access_log можно использовать внутри блока
3842 limit_except.
3843
3844 *) Исправление: если все сервера апстрима оказывались недоступными, то
3845 до восстановления работоспособности у всех серверов вес становился
3846 равным одному; ошибка появилась в 0.6.6.
3847
3848 *) Исправление: при использовании переменных $date_local и $date_gmt вне
3849 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
3850 segmentation fault.
3851
3852 *) Исправление: при использовании включённом отладочном логе в рабочем
3853 процессе мог произойти segmentation fault.
3854 Спасибо Андрею Нигматулину.
3855
3856 *) Исправление: ngx_http_memcached_module не устанавливал
3857 $upstream_response_time.
3858 Спасибо Максиму Дунину.
3859
3860 *) Исправление: рабочий процесс мог зациклиться при использовании
3861 memcached.
3862
3863 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
3864 строке "Connection" в заголовке запроса только, если они были в
3865 нижнем регистре; ошибка появилась в 0.6.11.
3866
3867 *) Исправление: sub_filter не работал с пустой строкой замены.
3868
3869 *) Исправление: в парсинге sub_filter.
3870
3871
3872 Изменения в nginx 0.6.13 24.09.2007
3873
3874 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
3875 использовался autoindex
3876 Спасибо Arkadiusz Patyk.
3877
3878
3879 Изменения в nginx 0.6.12 21.09.2007
3880
3881 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
3882 и smtp.
3883
3884 *) Добавление: параметры конфигурации --without-mail_pop3_module,
3885 --without-mail_imap_module и --without-mail_smtp_module.
3886
3887 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
3888 ngx_mail_smtp_module.
3889
3890 *) Исправление: wildcard в конце имени сервера не работали; ошибка
3891 появилась в 0.6.9.
3892
3893 *) Исправление: при использовании разделяемой библиотеки PCRE,
3894 расположенной в нестандартном месте, nginx не запускался на Solaris.
3895
3896 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
3897 скрывали строки заголовка ответа с именем больше 32 символов.
3898 Спасибо Manlio Perillo.
3899
3900
3901 Изменения в nginx 0.6.11 11.09.2007
3902
3903 *) Исправление: счётчик активных соединений всегда рос при использовании
3904 почтового прокси-сервера.
3905
3906 *) Исправление: если бэкенд возвращал только заголовок ответа при
3907 небуферизированном проксировании, то nginx закрывал соединение с
3908 бэкендом по таймауту.
3909
3910 *) Исправление: nginx не поддерживал несколько строк "Connection" в
3911 заголовке запроса.
3912
3913 *) Исправление: если в сервере апстрима был задан max_fails, то после
3914 первой же неудачной попытки вес сервера навсегда становился равным
3915 одному; ошибка появилась в 0.6.6.
3916
3917
3918 Изменения в nginx 0.6.10 03.09.2007
3919
3920 *) Добавление: директивы open_file_cache, open_file_cache_retest и
3921 open_file_cache_errors.
3922
3923 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
3924
3925 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
3926 методе $r->send_http_header(), не добавлялась кодировка, указанная в
3927 директиве charset.
3928
3929 *) Исправление: при использовании метода /dev/poll в рабочем процессе
3930 мог произойти segmentation fault.
3931
3932
3933 Изменения в nginx 0.6.9 28.08.2007
3934
3935 *) Исправление: рабочий процесс мог зациклиться при использовании
3936 протокола HTTPS; ошибка появилась в 0.6.7.
3937
3938 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
3939 не запускался при использовании wildcard в конце имени сервера.
3940
3941 *) Исправление: директива ip_hash могла неверно помечать сервера как
3942 нерабочие.
3943
3944 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
3945
3946
3947 Изменения в nginx 0.6.8 20.08.2007
3948
3949 *) Изменение: теперь nginx пытается установить директивы
3950 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
3951 worker_rlimit_sigpending без привилегий root'а.
3952
3953 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
3954 запроса серверу аутентификации почтового прокси-сервера.
3955
3956 *) Изменение: теперь nginx экранирует символ "%" в переменной
3957 $memcached_key.
3958
3959 *) Исправление: при указании относительного пути к конфигурационному
3960 файлу в качестве параметра ключа -c nginx определял путь относительно
3961 конфигурационного префикса; ошибка появилась в 0.6.6.
3962
3963 *) Исправление: nginx не работал на FreeBSD/sparc64.
3964
3965
3966 Изменения в nginx 0.6.7 15.08.2007
3967
3968 *) Изменение: теперь пути, указанные в директивах include,
3969 auth_basic_user_file, perl_modules, ssl_certificate,
3970 ssl_certificate_key и ssl_client_certificate, определяются
3971 относительно каталога конфигурационного файла nginx.conf, а не
3972 относительно префикса.
3973
3974 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
3975
3976 *) Изменение: для обновления на лету версий 0.1.x создан специальный
3977 сценарий make upgrade1.
3978
3979 *) Добавление: директивы server_name и valid_referers поддерживают
3980 регулярные выражения.
3981
3982 *) Добавление: директива server в блоке upstream поддерживает параметр
3983 backup.
3984
3985 *) Добавление: модуль ngx_http_perl_module поддерживает метод
3986 $r->discard_request_body.
3987
3988 *) Добавление: директива "add_header Last-Modified ..." меняет строку
3989 "Last-Modified" в заголовке ответа.
3990
3991 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
3992 отличным от 200, и после этого запроса соединение переходило в
3993 состояние keep-alive, то на следующий запрос nginx возвращал 400.
3994
3995 *) Исправление: если в директиве auth_http был задан неправильный адрес,
3996 то в рабочем процессе происходил segmentation fault.
3997
3998 *) Исправление: теперь по умолчанию nginx использует значение 511 для
3999 listen backlog на всех платформах, кроме FreeBSD.
4000 Спасибо Jiang Hong.
4001
4002 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
4003 upstream был помечен как down; ошибка появилась в 0.6.6.
4004
4005 *) Исправление: sendfilev() в Solaris теперь не используется при
4006 передаче тела запроса FastCGI-серверу через unix domain сокет.
4007
4008
4009 Изменения в nginx 0.6.6 30.07.2007
4010
4011 *) Добавление: параметр --sysconfdir=PATH в configure.
4012
4013 *) Добавление: именованные location'ы.
4014
4015 *) Добавление: переменную $args можно устанавливать с помощью set.
4016
4017 *) Добавление: переменная $is_args.
4018
4019 *) Исправление: равномерное распределение запросов к апстримам с
4020 большими весами.
4021
4022 *) Исправление: если клиент в почтовом прокси-сервере закрывал
4023 соединение, то nginx мог не закрывать соединение с бэкендом.
4024
4025 *) Исправление: при использовании одного хоста в качестве бэкендов для
4026 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
4027 только один порт - 80 или 443.
4028
4029 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
4030 более ранними версиями; ошибка появилась в 0.6.4.
4031
4032
4033 Изменения в nginx 0.6.5 23.07.2007
4034
4035 *) Добавление: переменная $nginx_version.
4036 Спасибо Николаю Гречуху.
4037
4038 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
4039 IMAP.
4040 Спасибо Максиму Дунину.
4041
4042 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
4043 SMTP.
4044 Спасибо Максиму Дунину.
4045
4046 *) Исправление: теперь nginx экранирует пробел в переменной
4047 $memcached_key.
4048
4049 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
4050 Спасибо Jiang Hong.
4051
4052 *) Исправление: незначительных потенциальных ошибок.
4053 Спасибо Coverity's Scan.
4054
4055
4056 Изменения в nginx 0.6.4 17.07.2007
4057
4058 *) Безопасность: при использовании директивы msie_refresh был возможен
4059 XSS.
4060 Спасибо Максиму Богуку.
4061
4062 *) Изменение: директивы proxy_store и fastcgi_store изменены.
4063
4064 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
4065
4066 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
4067 Studio.
4068 Спасибо Андрею Нигматулину.
4069
4070 *) Изменение: обход ошибки в Sun Studio 12.
4071 Спасибо Jiang Hong.
4072
4073
4074 Изменения в nginx 0.6.3 12.07.2007
4075
4076 *) Добавление: директивы proxy_store и fastcgi_store.
4077
4078 *) Исправление: при использовании директивы auth_http_header в рабочем
4079 процессе мог произойти segmentation fault.
4080 Спасибо Максиму Дунину.
4081
4082 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
4083 не был разрешён, то в рабочем процессе происходил segmentation fault.
4084
4085 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
4086 в рабочем процессе мог произойти segmentation fault.
4087
4088 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4089 если использовался метод eventport.
4090
4091 *) Исправление: директивы proxy_ignore_client_abort и
4092 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
4093
4094
4095 Изменения в nginx 0.6.2 09.07.2007
4096
4097 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
4098 nginx передавал клиенту мусор в таких заголовках.
4099
4100
4101 Изменения в nginx 0.6.1 17.06.2007
4102
4103 *) Исправление: в парсинге SSI.
4104
4105 *) Исправление: при использовании удалённого подзапроса в SSI
4106 последующий подзапрос локального файла мог отдаваться клиенту в
4107 неверном порядке.
4108
4109 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
4110 передавались не полностью.
4111
4112 *) Исправление: значение perl'овой переменной $$ модуля
4113 ngx_http_perl_module было равно номеру главного процесса.
4114
4115
4116 Изменения в nginx 0.6.0 14.06.2007
4117
4118 *) Добавление: директивы "server_name", "map", and "valid_referers"
4119 поддерживают маски вида "www.example.*".
4120
4121
4122 Изменения в nginx 0.5.25 11.06.2007
4123
4124 *) Исправление: nginx не собирался с параметром
4125 --without-http_rewrite_module; ошибка появилась в 0.5.24.
4126
4127
4128 Изменения в nginx 0.5.24 06.06.2007
4129
4130 *) Безопасность: директива ssl_verify_client не работала, если запрос
4131 выполнялся по протоколу HTTP/0.9.
4132
4133 *) Исправление: при использовании сжатия часть ответа могла передаваться
4134 несжатой; ошибка появилась в 0.5.23.
4135
4136
4137 Изменения в nginx 0.5.23 04.06.2007
4138
4139 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
4140 Server Name Indication.
4141
4142 *) Добавление: директива fastcgi_catch_stderr.
4143 Спасибо Николаю Гречуху, проект OWOX.
4144
4145 *) Исправление: на Линуксе в основном процессе происходил segmentation
4146 fault, если два виртуальных сервера должны bind()ится к
4147 пересекающимся портам.
4148
4149 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
4150 perl поддерживал потоки, то во время второй переконфигурации
4151 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
4152
4153 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
4154
4155
4156 Изменения в nginx 0.5.22 29.05.2007
4157
4158 *) Исправление: большое тело запроса могло не передаваться бэкенду;
4159 ошибка появилась в 0.5.21.
4160
4161
4162 Изменения в nginx 0.5.21 28.05.2007
4163
4164 *) Исправление: если внутри сервера описано больше примерно десяти
4165 location'ов, то location'ы, заданные с помощью регулярного выражения,
4166 могли выполняться не в том, порядке, в каком они описаны.
4167
4168 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
4169 если 33-тий по счёту или последующий бэкенд упал.
4170 Спасибо Антону Поварову.
4171
4172 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
4173 произойти bus error.
4174 Спасибо Андрею Нигматулину.
4175
4176 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
4177
4178
4179 Изменения в nginx 0.5.20 07.05.2007
4180
4181 *) Добавление: директива sendfile_max_chunk.
4182
4183 *) Добавление: переменные "$http_...", "$sent_http_..." и
4184 "$upstream_http_..." можно менять директивой set.
4185
4186 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
4187 рабочем процессе мог произойти segmentation fault.
4188
4189 *) Исправление: завершающая строка multipart range ответа передавалась
4190 неверно.
4191 Спасибо Evan Miller.
4192
4193 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
4194 Studio.
4195 Спасибо Андрею Нигматулину.
4196
4197 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
4198 Спасибо Андрею Нигматулину.
4199
4200
4201 Изменения в nginx 0.5.19 24.04.2007
4202
4203 *) Изменение: значение переменной $request_time теперь записывается с
4204 точностью до миллисекунд.
4205
4206 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
4207 переименован в $r->flush.
4208
4209 *) Добавление: переменная $upstream_addr.
4210
4211 *) Добавление: директивы proxy_headers_hash_max_size и
4212 proxy_headers_hash_bucket_size.
4213 Спасибо Володымыру Костырко.
4214
4215 *) Исправление: при использовании sendfile и limit_rate на 64-битных
4216 платформах нельзя было передавать файлы больше 2G.
4217
4218 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
4219 было передавать файлы больше 2G.
4220
4221
4222 Изменения в nginx 0.5.18 19.04.2007
4223
4224 *) Добавление: модуль ngx_http_sub_filter_module.
4225
4226 *) Добавление: переменные "$upstream_http_...".
4227
4228 *) Добавление: теперь переменные $upstream_status и
4229 $upstream_response_time содержат данные о всех обращениях к
4230 апстримам, сделанным до X-Accel-Redirect.
4231
4232 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
4233 perl не поддерживал multiplicity, то после первой переконфигурации и
4234 после получения любого сигнала в основном процессе происходил
4235 segmentation fault; ошибка появилась в 0.5.9.
4236
4237 *) Исправление: если perl не поддерживал multiplicity, то после
4238 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
4239
4240
4241 Изменения в nginx 0.5.17 02.04.2007
4242
4243 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
4244
4245 *) Добавление: теперь nginx поддерживает директиву include внутри блока
4246 types.
4247
4248 *) Исправление: использование переменной $document_root в директиве root
4249 и alias запрещено: оно вызывало рекурсивное переполнение стека.
4250
4251 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
4252
4253 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
4254 $uri) возвращали старое закэшированное значение.
4255
4256
4257 Изменения в nginx 0.5.16 26.03.2007
4258
4259 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
4260 использовалась сеть класса С.
4261 Спасибо Павлу Ярковому.
4262
4263 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
4264 был указан charset и строка завершалась символом ";", то в рабочем
4265 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
4266
4267 *) Исправление: ошибки "[alert] zero size buf" при работе с
4268 FastCGI-сервером, если тело запроса, записанное во временный файл,
4269 было кратно 32K.
4270
4271 *) Исправление: nginx не собирался на Solaris без параметра
4272 --with-debug; ошибка появилась в 0.5.15.
4273
4274
4275 Изменения в nginx 0.5.15 19.03.2007
4276
4277 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
4278 SMTP-проксирование и директивы smtp_auth, smtp_capablities и xclient.
4279 Спасибо Антону Южанинову и Максиму Дунину.
4280
4281 *) Добавление: теперь keep-alive соединения закрываются сразу же по
4282 получении сигнала переконфигурации.
4283
4284 *) Изменение: директивы imap и auth переименованы соответственно в mail
4285 и pop3_auth.
4286
4287 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
4288 был разрешён метод APOP, то в рабочем процессе происходил
4289 segmentation fault.
4290
4291 *) Исправление: при использовании директивы starttls only в протоколе
4292 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
4293
4294 *) Исправление: рабочие процессы не выходили после переконфигурации и не
4295 переоткрывали логи, если использовался метод eventport.
4296
4297 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
4298 зациклиться.
4299
4300 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
4301 используются методы eventport или /dev/poll.
4302
4303
4304 Изменения в nginx 0.5.14 23.02.2007
4305
4306 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
4307 конфигурационного файла.
4308
4309
4310 Изменения в nginx 0.5.13 19.02.2007
4311
4312 *) Добавление: методы COPY и MOVE.
4313
4314 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
4315 запросов, переданных по keep-alive соединению.
4316
4317 *) Исправление: nginx не работал на 64-битном big-endian Linux.
4318 Спасибо Андрею Нигматулину.
4319
4320 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
4321 теперь сразу закрывает соединение, а не по таймауту.
4322
4323 *) Исправление: если при использовании метода epoll клиент закрывал
4324 преждевременно соединение со своей стороны, то nginx закрывал это
4325 соединение только по истечении таймаута на передачу.
4326
4327 *) Исправление: nginx не собирался на платформах, отличных от i386,
4328 amd64, sparc и ppc; ошибка появилась в 0.5.8.
4329
4330
4331 Изменения в nginx 0.5.12 12.02.2007
4332
4333 *) Исправление: nginx не собирался на платформах, отличных от i386,
4334 amd64, sparc и ppc; ошибка появилась в 0.5.8.
4335
4336 *) Исправление: при использовании временных файлов в время работы с
4337 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
4338 ошибка появилась в 0.5.8.
4339
4340 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
4341 то в рабочем процессе мог произойти segmentation fault.
4342
4343 *) Исправление: ngx_http_perl_module не собирался на Solaris.
4344
4345
4346 Изменения в nginx 0.5.11 05.02.2007
4347
4348 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
4349 Спасибо Chris McGrath.
4350
4351 *) Исправление: ответ был неверным, если запрашивалось несколько
4352 диапазонов; ошибка появилась в 0.5.6.
4353
4354 *) Исправление: директива create_full_put_path не могла создавать
4355 промежуточные каталоги, если не была установлена директива
4356 dav_access.
4357 Спасибо Evan Miller.
4358
4359 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
4360 записываться код "0".
4361
4362 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
4363 произойти segmentation fault.
4364
4365
4366 Изменения в nginx 0.5.10 26.01.2007
4367
4368 *) Исправление: во время обновления исполняемого файла новый процесс не
4369 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
4370
4371 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
4372 произойти segmentation fault; ошибка появилась в 0.5.1.
4373
4374
4375 Изменения в nginx 0.5.9 25.01.2007
4376
4377 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
4378 использует значение переменной $memcached_key.
4379
4380 *) Добавление: переменная $memcached_key.
4381
4382 *) Добавление: параметр clean в директиве client_body_in_file_only.
4383
4384 *) Добавление: директива env.
4385
4386 *) Добавление: директива sendfile работает внутри блока if.
4387
4388 *) Добавление: теперь при ошибке записи в access_log nginx записывает
4389 сообщение в error_log, но не чаще одного раза в минуту.
4390
4391 *) Исправление: директива "access_log off" не всегда запрещала запись в
4392 лог.
4393
4394
4395 Изменения в nginx 0.5.8 19.01.2007
4396
4397 *) Исправление: если использовалась директива
4398 "client_body_in_file_only on" и тело запроса было небольшое, то мог
4399 произойти segmentation fault.
4400
4401 *) Исправление: происходил segmentation fault, если использовались
4402 директивы "client_body_in_file_only on" и
4403 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
4404 делался переход к следующему бэкенду.
4405
4406 *) Исправление: если при использовании директивы "proxy_buffering off"
4407 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
4408 заданному директивой send_timeout; ошибка появилась в 0.4.7.
4409
4410 *) Исправление: если при использовании метода epoll клиент закрывал
4411 преждевременно соединение со своей стороны, то nginx закрывал это
4412 соединение только по истечении таймаута на передачу.
4413
4414 *) Исправление: ошибки "[alert] zero size buf" при работе с
4415 FastCGI-сервером.
4416
4417 *) Исправление ошибок в директиве limit_zone.
4418
4419
4420 Изменения в nginx 0.5.7 15.01.2007
4421
4422 *) Добавление: оптимизация использования памяти в ssl_session_cache.
4423
4424 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
4425
4426 *) Исправление: на старте или во время переконфигурации происходил
4427 segmentation fault, если директивы ssl_session_cache или limit_zone
4428 использовались на 64-битных платформах.
4429
4430 *) Исправление: при использовании директив add_before_body или
4431 add_after_body происходил segmentation fault, если в заголовке ответа
4432 нет строки "Content-Type".
4433
4434 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
4435 потоков.
4436 Спасибо Дену Иванову.
4437
4438 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
4439
4440
4441 Изменения в nginx 0.5.6 09.01.2007
4442
4443 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
4444 кроме GET, HEAD и POST.
4445
4446 *) Добавление: модуль ngx_http_limit_zone_module.
4447
4448 *) Добавление: переменная $binary_remote_addr.
4449
4450 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
4451 ngx_imap_ssl_module.
4452
4453 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
4454
4455 *) Исправление: при использовании $r->sendfile() byte-ranges
4456 передавались неверно.
4457
4458
4459 Изменения в nginx 0.5.5 24.12.2006
4460
4461 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
4462
4463 *) Добавление: ключ -V.
4464
4465 *) Добавление: директива worker_rlimit_core поддерживает указание
4466 размера в K, M и G.
4467
4468 *) Исправление: модуль nginx.pm теперь может устанавливаться
4469 непривилегированным пользователем.
4470
4471 *) Исправление: при использовании методов $r->request_body или
4472 $r->request_body_file мог произойти segmentation fault.
4473
4474 *) Исправление: ошибок, специфичных для платформы ppc.
4475
4476
4477 Изменения в nginx 0.5.4 15.12.2006
4478
4479 *) Добавление: директиву perl можно использовать внутри блока
4480 limit_except.
4481
4482 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
4483 заголовке запроса для метода DELETE.
4484
4485 *) Исправление: при использовании одного параметра в директиве
4486 dav_access nginx мог сообщить об ошибке в конфигурации.
4487
4488 *) Исправление: при использовании переменной $host мог произойти
4489 segmentation fault; ошибка появилась в 0.4.14.
4490
4491
4492 Изменения в nginx 0.5.3 13.12.2006
4493
4494 *) Добавление: модуль ngx_http_perl_module поддерживает методы
4495 $r->status, $r->log_error и $r->sleep.
4496
4497 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
4498 конфигурации nginx'а.
4499
4500 *) Исправление: метод $r->has_request_body не работал.
4501
4502
4503 Изменения в nginx 0.5.2 11.12.2006
4504
4505 *) Исправление: если в директивах proxy_pass использовалось имя,
4506 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
4507 ошибка появилась в 0.5.1.
4508
4509
4510 Изменения в nginx 0.5.1 11.12.2006
4511
4512 *) Исправление: директива post_action могла не работать после неудачного
4513 завершения запроса.
4514
4515 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
4516 Спасибо Bron Gondwana.
4517
4518 *) Исправление: при указании в директиве fastcgi_pass имени описанного
4519 upstream'а выдавалось сообщение "no port in upstream"; ошибка
4520 появилась в 0.5.0.
4521
4522 *) Исправление: если в директивах proxy_pass и fastcgi_pass
4523 использовались одинаковых имена серверов, но с разными портами, то
4524 эти директивы использовали первый описанный порт; ошибка появилась в
4525 0.5.0.
4526
4527 *) Исправление: если в директивах proxy_pass и fastcgi_pass
4528 использовались unix domain сокеты, то эти директивы использовали
4529 первый описанный сокет; ошибка появилась в 0.5.0.
4530
4531 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
4532 если он был указан в последней строке файла паролей и после пароля не
4533 было перевода строки, возврата каретки или символа ":".
4534
4535 *) Исправление: переменная $upstream_response_time могла быть равна
4536 "0.000", хотя время обработки было больше 1 миллисекунды.
4537
4538
4539 Изменения в nginx 0.5.0 04.12.2006
4540
4541 *) Изменение: параметры в виде "%name" в директиве log_format больше не
4542 поддерживаются.
4543
4544 *) Изменение: директивы proxy_upstream_max_fails,
4545 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
4546 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
4547 memcached_upstream_fail_timeout больше не поддерживаются.
4548
4549 *) Добавление: директива server в блоке upstream поддерживает параметры
4550 max_fails, fail_timeout и down.
4551
4552 *) Добавление: директива ip_hash в блоке upstream.
4553
4554 *) Добавление: статус WAIT в строке "Auth-Status" в заголовка ответа
4555 сервера аутентификации IMAP/POP3 прокси.
4556
4557 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
4558 появилась в 0.4.14.
4559
4560
4561 Изменения в nginx 0.4.14 27.11.2006
4562
4563 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
4564
4565 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
4566 Linux и NetBSD.
4567
4568 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
4569 поддержкой потоков; ошибка появилась в 0.3.38.
4570
4571 *) Исправление: ngx_http_perl_module не работал корректно, если перл
4572 вызывался рекурсивно.
4573
4574 *) Исправление: nginx игнорировал имя сервера в строке запроса.
4575
4576 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
4577 процесс мог зациклиться.
4578
4579 *) Исправление: при изменении системного времени переменная
4580 $upstream_response_time могла быть отрицательной.
4581
4582 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
4583 прокси не передавался параметр Auth-Login-Attempt.
4584
4585 *) Исправление: при ошибке соединения с сервером аутентификации
4586 IMAP/POP3 прокси мог произойти segmentation fault.
4587
4588
4589 Изменения в nginx 0.4.13 15.11.2006
4590
4591 *) Добавление: директиву proxy_pass можно использовать внутри блока
4592 limit_except.
4593
4594 *) Добавление: директива limit_except поддерживает все WebDAV методы.
4595
4596 *) Исправление: при использовании директивы add_before_body без
4597 директивы add_after_body ответ передавался не полностью.
4598
4599 *) Исправление: большое тело запроса не принималось, если использовались
4600 метод epoll и deferred accept().
4601
4602 *) Исправление: для ответов модуля ngx_http_autoindex_module не
4603 выставлялась кодировка; ошибка появилась в 0.3.50.
4604
4605 *) Исправление: ошибки "[alert] zero size buf" при работе с
4606 FastCGI-сервером;
4607
4608 *) Исправление: параметр конфигурации --group= игнорировался.
4609 Спасибо Thomas Moschny.
4610
4611 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
4612 в 0.3.50.
4613
4614
4615 Изменения в nginx 0.4.12 31.10.2006
4616
4617 *) Добавление: модуль ngx_http_perl_module поддерживает метод
4618 $r->variable.
4619
4620 *) Исправление: при включении в ответ большого статического файла с
4621 помощью SSI ответ мог передаваться не полностью.
4622
4623 *) Исправление: nginx не убирал "#fragment" в URI.
4624
4625
4626 Изменения в nginx 0.4.11 25.10.2006
4627
4628 *) Добавление: POP3 прокси поддерживает AUTH LOIGN PLAIN и CRAM-MD5.
4629
4630 *) Добавление: модуль ngx_http_perl_module поддерживает метод
4631 $r->allow_ranges.
4632
4633 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
4634 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
4635
4636
4637 Изменения в nginx 0.4.10 23.10.2006
4638
4639 *) Добавление: POP3 прокси поддерживает APOP.
4640
4641 *) Исправление: при использовании методов select, poll и /dev/poll во
4642 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
4643 нагружал процессор.
4644
4645 *) Исправление: при использовании переменной $server_addr в директиве
4646 map мог произойти segmentation fault.
4647
4648 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
4649 для полных ответов; ошибка появилась в 0.4.7.
4650
4651 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
4652 0.4.9.
4653
4654
4655 Изменения в nginx 0.4.9 13.10.2006
4656
4657 *) Добавление: параметр set в команде SSI include.
4658
4659 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
4660 модуля nginx.pm.
4661
4662
4663 Изменения в nginx 0.4.8 11.10.2006
4664
4665 *) Исправление: если до команды SSI include с параметром wait
4666 выполнялась ещё одна команда SSI include, то параметр wait мог не
4667 работать.
4668
4669 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
4670 полных ответов.
4671 Спасибо Алексею Ковырину.
4672
4673
4674 Изменения в nginx 0.4.7 10.10.2006
4675
4676 *) Добавление: модуль ngx_http_flv_module.
4677
4678 *) Добавление: переменная $request_body_file.
4679
4680 *) Добавление: директивы charset и source_charset поддерживают
4681 переменные.
4682
4683 *) Исправление: если до команды SSI include с параметром wait
4684 выполнялась ещё одна команда SSI include, то параметр wait мог не
4685 работать.
4686
4687 *) Исправление: при использовании директивы "proxy_buffering off" или
4688 при работе с memcached соединения могли не закрываться по таймауту.
4689
4690 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
4691 amd64, sparc64 и ppc64.
4692
4693
4694 Изменения в nginx 0.4.6 06.10.2006
4695
4696 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
4697 amd64, sparc64 и ppc64.
4698
4699 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
4700 chunk'ами, если длина ответа в методе
4701 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
4702
4703 *) Исправление: после перенаправления ошибки с помощью директивы
4704 error_page любая директива модуля ngx_http_rewrite_module возвращала
4705 эту ошибку; ошибка появилась в 0.4.4.
4706
4707
4708 Изменения в nginx 0.4.5 02.10.2006
4709
4710 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
4711 в 0.4.4.
4712
4713
4714 Изменения в nginx 0.4.4 02.10.2006
4715
4716 *) Добавление: переменная $scheme.
4717
4718 *) Добавление: директива expires поддерживает параметр max.
4719
4720 *) Добавление: директива include поддерживает маску "*".
4721 Спасибо Jonathan Dance.
4722
4723 *) Исправление: директива return всегда изменяла код ответа,
4724 перенаправленного директивой error_page.
4725
4726 *) Исправление: происходил segmentation fault, если в методе PUT
4727 передавалось тело нулевой длины.
4728
4729 *) Исправление: при использовании переменных в директиве proxy_redirect
4730 редирект изменялся неверно.
4731
4732
4733 Изменения в nginx 0.4.3 26.09.2006
4734
4735 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
4736 error_page.
4737
4738 *) Добавление: поддержка Solaris 10 event ports.
4739
4740 *) Добавление: модуль ngx_http_browser_module.
4741
4742 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
4743 помощью директивы error_page мог произойти segmentation fault.
4744
4745 *) Исправление: происходил segmentation fault, если в директиве
4746 proxy_pass использовался unix domain сокет; ошибка появилась в
4747 0.3.47.
4748
4749 *) Исправление: SSI не работал с ответами memcached и
4750 небуферизированными проксированными ответами.
4751
4752 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
4753
4754
4755 Изменения в nginx 0.4.2 14.09.2006
4756
4757 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
4758 появилась в 0.4.1.
4759
4760
4761 Изменения в nginx 0.4.1 14.09.2006
4762
4763 *) Исправление: совместимость с DragonFlyBSD.
4764 Спасибо Павлу Назарову.
4765
4766 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
4767 файлов больше 2G.
4768
4769 *) Добавление: теперь на Linux nginx для статических запросов использует
4770 флаг O_NOATIME.
4771 Спасибо Yusuf Goolamabbas.
4772
4773
4774 Изменения в nginx 0.4.0 30.08.2006
4775
4776 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
4777 фазы init module в фазу HTTP postconfiguration.
4778
4779 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
4780 считывается заранее: нужно явно инициировать чтение с помощью метода
4781 $r->has_request_body.
4782
4783 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
4784 DECLINED.
4785
4786 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
4787 заголовка "Date" для метода PUT.
4788
4789 *) Добавление: директива ssi работает внутри блока if.
4790
4791 *) Исправление: происходил segmentation fault, если в директиве index
4792 использовалась переменные и при этом первое имя индексного файла было
4793 без переменных; ошибка появилась в 0.1.29.
4794
4795
4796 Изменения в nginx 0.3.61 28.08.2006
4797
4798 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
4799
4800 *) Добавление: директива msie_refresh.
4801
4802 *) Добавление: директива recursive_error_pages.
4803
4804 *) Исправление: директива rewrite возвращала неправильный редирект, если
4805 редирект включал в себя выделенные закодированные символы из
4806 оригинального URI.
4807
4808
4809 Изменения в nginx 0.3.60 18.08.2006
4810
4811 *) Исправление: во время перенаправления ошибки рабочий процесс мог
4812 зациклиться; ошибка появилась в 0.3.59.
4813
4814
4815 Изменения в nginx 0.3.59 16.08.2006
4816
4817 *) Добавление: теперь можно делать несколько перенаправлений через
4818 директиву error_page.
4819
4820 *) Исправление: директива dav_access не поддерживала три параметра.
4821
4822 *) Исправление: директива error_page не изменяла строку "Content-Type"
4823 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
4824 в 0.3.58.
4825
4826
4827 Изменения в nginx 0.3.58 14.08.2006
4828
4829 *) Добавление: директива error_page поддерживает переменные.
4830
4831 *) Изменение: теперь на Linux используется интерфейс procfs вместо
4832 sysctl.
4833
4834 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
4835 "Content-Type" наследуется из первоначального ответа.
4836
4837 *) Исправление: директива error_page не перенаправляла ошибку 413.
4838
4839 *) Исправление: завершающий "?" не удалял старые аргументы, если в
4840 переписанном URI не было новых аргументов.
4841
4842 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
4843
4844
4845 Изменения в nginx 0.3.57 09.08.2006
4846
4847 *) Добавление: переменная $ssl_client_serial.
4848
4849 *) Исправление: в операторе "!-e" в директиве if.
4850 Спасибо Андриану Буданцову.
4851
4852 *) Исправление: при проверке клиентского сертификата nginx не передавал
4853 клиенту информацию о требуемых сертификатах.
4854
4855 *) Исправление: переменная $document_root не поддерживала переменные в
4856 директиве root.
4857
4858
4859 Изменения в nginx 0.3.56 04.08.2006
4860
4861 *) Добавление: директива dav_access.
4862
4863 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
4864 "!-e", "-x" и "!-x".
4865
4866 *) Исправление: при записи в access_log некоторых передаваемых клиенту
4867 строк заголовков происходил segmentation fault, если запрос возвращал
4868 редирект.
4869
4870
4871 Изменения в nginx 0.3.55 28.07.2006
4872
4873 *) Добавление: параметр stub в команде SSI include.
4874
4875 *) Добавление: команда SSI block.
4876
4877 *) Добавление: скрипт unicode2nginx добавлен в contrib.
4878
4879 *) Исправление: если root был задан только переменной, то корень
4880 задавался относительно префикса сервера.
4881
4882 *) Исправление: если в запросе был "//" или "/.", и после этого
4883 закодированные символы в виде "%XX", то проксируемый запрос
4884 передавался незакодированным.
4885
4886 *) Исправление: метод $r->header_in("Cookie") модуля
4887 ngx_http_perl_module теперь возвращает все строки "Cookie" в
4888 заголовке запроса.
4889
4890 *) Исправление: происходил segmentation fault, если использовался
4891 "client_body_in_file_only on" и делался переход к следующему бэкенду.
4892
4893 *) Исправление: при некоторых условиях во время переконфигурации коды
4894 символов внутри директивы charset_map могли считаться неверными;
4895 ошибка появилась в 0.3.50.
4896
4897
4898 Изменения в nginx 0.3.54 11.07.2006
4899
4900 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
4901
4902 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
4903 memcached_next_upstream поддерживают параметр off.
4904
4905 *) Добавление: директива debug_connection поддерживает запись адресов в
4906 формате CIDR.
4907
4908 *) Исправление: при перекодировании ответа проксированного сервера или
4909 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
4910 полностью.
4911
4912 *) Исправление: переменная $upstream_response_time содержала время
4913 только первого обращения к бэкенду.
4914
4915 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
4916 в 0.3.53.
4917
4918
4919 Изменения в nginx 0.3.53 07.07.2006
4920
4921 *) Изменение: директива add_header добавляет строки в ответы с кодом
4922 204, 301 и 302.
4923
4924 *) Добавление: директива server в блоке upstream поддерживает параметр
4925 weight.
4926
4927 *) Добавление: директива server_name поддерживает маску "*".
4928
4929 *) Добавление: nginx поддерживает тело запроса больше 2G.
4930
4931 *) Исправление: если при использовании "satisfy_any on" клиент успешно
4932 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
4933 forbidden by rule".
4934
4935 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
4936 409.
4937
4938 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
4939 ошибку, nginx продолжал проксирование.
4940
4941
4942 Изменения в nginx 0.3.52 03.07.2006
4943
4944 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
4945 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
4946 ошибку 405.
4947
4948 *) Исправление: при использовании ограничения скорости рабочий процесс
4949 мог зациклиться; ошибка появилась в 0.3.37.
4950
4951 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
4952 "unknown charset", даже если перекодировка не требовалась; ошибка
4953 появилась в 0.3.50.
4954
4955 *) Исправление: если в результате запроса PUT возвращался код 409, то
4956 временный файл не удалялся.
4957
4958
4959 Изменения в nginx 0.3.51 30.06.2006
4960
4961 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
4962 ошибка появилась в 0.3.50.
4963
4964
4965 Изменения в nginx 0.3.50 28.06.2006
4966
4967 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
4968 переименованы соответственно в proxy_intercept_errors и
4969 fastcgi_intercept_errors.
4970
4971 *) Добавление: модуль ngx_http_charset_module поддерживает
4972 перекодирование из однобайтных кодировок в UTF-8 и обратно.
4973
4974 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
4975 "X-Accel-Charset" в ответе бэкенда.
4976
4977 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
4978 только если также использовался символ "$".
4979
4980 *) Исправление: при некоторых условиях в SSI после вставки могла быть
4981 добавлена строка "<!--".
4982
4983 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
4984 то при использовании небуферизированного проксировании не закрывалось
4985 соединение с клиентом.
4986
4987
4988 Изменения в nginx 0.3.49 31.05.2006
4989
4990 *) Исправление: в директиве set.
4991
4992 *) Исправление: при включении в ssi двух и более подзапросов,
4993 обрабатываемых через FastCGI, вместо вывода второго и остальных
4994 подзапросов в ответ включался вывод первого подзапроса.
4995
4996
4997 Изменения в nginx 0.3.48 29.05.2006
4998
4999 *) Изменение: теперь модуль ngx_http_charset_module работает для
5000 подзапросов, в ответах которых нет строки заголовка "Content-Type".
5001
5002 *) Исправление: если в директиве proxy_pass не было URI, то директива
5003 "proxy_redirect default" добавляла в переписанный редирект в начало
5004 лишний слэш.
5005
5006 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
5007 GET, теперь это делается только для редиректов, выполняемых с помощью
5008 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
5009 0.3.42.
5010
5011 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
5012 с поддержкой потоков; ошибка появилась в 0.3.46.
5013
5014
5015 Изменения в nginx 0.3.47 23.05.2006
5016
5017 *) Добавление: директива upstream.
5018
5019 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
5020 всегда убирается.
5021
5022
5023 Изменения в nginx 0.3.46 11.05.2006
5024
5025 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
5026 fastcgi_hide_header и fastcgi_pass_header.
5027
5028 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
5029 proxy_pass_server упразднены.
5030
5031 *) Добавление: в режиме прокси поддерживается строка заголовка
5032 "X-Accel-Buffering" в ответе бэкенда.
5033
5034 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
5035 ngx_http_perl_module.
5036
5037
5038 Изменения в nginx 0.3.45 06.05.2006
5039
5040 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
5041 ssl_client_certificate.
5042
5043 *) Изменение: теперь переменная $request_method возвращает метод только
5044 основного запроса.
5045
5046 *) Изменение: в таблице перекодировки koi-win изменены коды символа
5047 &deg;.
5048
5049 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
5050 номера.
5051
5052 *) Исправление: если nginx распределял запросы на несколько машин, то
5053 при падении одной из них запросы, предназначенные для этой машины,
5054 перенаправлялись только на одну машину вместо того, чтобы равномерно
5055 распределяться между остальными.
5056
5057
5058 Изменения в nginx 0.3.44 04.05.2006
5059
5060 *) Добавление: параметр wait в команде SSI include.
5061
5062 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
5063 белорусские символы.
5064
5065 *) Исправление: в SSI.
5066
5067
5068 Изменения в nginx 0.3.43 26.04.2006
5069
5070 *) Исправление: в SSI.
5071
5072
5073 Изменения в nginx 0.3.42 26.04.2006
5074
5075 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
5076
5077 *) Исправление: ошибки при использовании в директиве rewrite одного и
5078 того же выделения более одного раза.
5079
5080 *) Исправление: в лог не записывались переменные
5081 $sent_http_content_type, $sent_http_content_length,
5082 $sent_http_last_modified, $sent_http_connection,
5083 $sent_http_keep_alive и $sent_http_transfer_encoding.
5084
5085 *) Исправление: переменная $sent_http_cache_control возвращала
5086 содержимое только одной строки "Cache-Control" в заголовке ответа.
5087
5088
5089 Изменения в nginx 0.3.41 21.04.2006
5090
5091 *) Добавление: ключ -v.
5092
5093 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
5094 segmentation fault.
5095
5096 *) Исправление: в обработке FastCGI.
5097
5098 *) Исправление: если путь к перловым модулям не был указан с помощью
5099 --with-perl_modules_path=PATH или директивы perl_modules, то на
5100 старте происходил segmentation fault.
5101
5102
5103 Изменения в nginx 0.3.40 19.04.2006
5104
5105 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
5106
5107 *) Добавление: директива create_full_put_path.
5108
5109 *) Добавление: переменная $limit_rate.
5110
5111
5112 Изменения в nginx 0.3.39 17.04.2006
5113
5114 *) Добавление: директива uninitialized_variable_warn; уровень
5115 логгирования сообщения о неинициализированной переменной понижен с
5116 уровня alert на warn.
5117
5118 *) Добавление: директива override_charset.
5119
5120 *) Изменение: при использовании неизвестной переменной в SSI-командах
5121 echo и if expr='$name' теперь не записывается в лог сообщение о
5122 неизвестной переменной.
5123
5124 *) Исправление: счётчик активных соединений рос при превышении лимита
5125 соединений, заданного директивой worker_connections; ошибка появилась
5126 в 0.2.0.
5127
5128 *) Исправление: при некоторых условия ограничение скорости соединения
5129 могло не работать; ошибка появилась в 0.3.38.
5130
5131
5132 Изменения в nginx 0.3.38 14.04.2006
5133
5134 *) Добавление: модуль ngx_http_dav_module.
5135
5136 *) Изменение: оптимизация модуля ngx_http_perl_module.
5137 Спасибо Сергею Скворцову.
5138
5139 *) Добавление: модуль ngx_http_perl_module поддерживает метод
5140 $r->request_body_file.
5141
5142 *) Добавление: директива client_body_in_file_only.
5143
5144 *) Изменение: теперь при переполнении диска nginx пытается писать
5145 access_log'и только раз в секунду.
5146 Спасибо Антону Южанинову и Максиму Дунину.
5147
5148 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
5149 при значениях больше 100 Kbyte/s.
5150 Спасибо ForJest.
5151
5152 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
5153 символы "\r" и "\n" в логине и пароле в закодированном виде.
5154 Спасибо Максиму Дунину.
5155
5156
5157 Изменения в nginx 0.3.37 07.04.2006
5158
5159 *) Добавление: директива limit_except.
5160
5161 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
5162 "!-f".
5163
5164 *) Добавление: модуль ngx_http_perl_module поддерживает метод
5165 $r->request_body.
5166
5167 *) Исправление: в модуле ngx_http_addition_filter_module.
5168
5169
5170 Изменения в nginx 0.3.36 05.04.2006
5171
5172 *) Добавление: модуль ngx_http_addition_filter_module.
5173
5174 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
5175 внутри блока if.
5176
5177 *) Добавление: директивы proxy_ignore_client_abort и
5178 fastcgi_ignore_client_abort.
5179
5180 *) Добавление: переменная $request_completion.
5181
5182 *) Добавление: модуль ngx_http_perl_module поддерживает методы
5183 $r->request_method и $r->remote_addr.
5184
5185 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
5186
5187 *) Исправление: строка "\/" в начале выражения команды if модуля
5188 ngx_http_ssi_module воспринималась неверно.
5189
5190 *) Исправление: в использовании регулярных выражениях в команде if
5191 модуля ngx_http_ssi_module.
5192
5193 *) Исправление: при задании относительного пути в директивах
5194 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
5195 perl_modules использовался каталог относительно текущего каталога, а
5196 не относительно префикса сервера.
5197
5198
5199 Изменения в nginx 0.3.35 22.03.2006
5200
5201 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
5202 для первой директивы listen; ошибка появилась в 0.3.31.
5203
5204 *) Исправление: в директиве proxy_pass без URI при использовании в
5205 подзапросе.
5206
5207
5208 Изменения в nginx 0.3.34 21.03.2006
5209
5210 *) Добавление: директива add_header поддерживает переменные.
5211
5212
5213 Изменения в nginx 0.3.33 15.03.2006
5214
5215 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
5216 fastcgi_next_upstream.
5217
5218 *) Исправление: ngx_http_perl_module не работал со встроенным в
5219 конфигурационный файл кодом, если он не начинался сразу же с "sub".
5220
5221 *) Исправление: в директиве post_action.
5222
5223
5224 Изменения в nginx 0.3.32 11.03.2006
5225
5226 *) Исправление: удаление отладочного логгирования на старте и при
5227 переконфигурации; ошибка появилась в 0.3.31.
5228
5229
5230 Изменения в nginx 0.3.31 10.03.2006
5231
5232 *) Изменение: теперь nginx передаёт неверные ответы проксированного
5233 бэкенда.
5234
5235 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
5236
5237 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
5238
5239 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
5240 64-битном ядре MacOSX.
5241 Спасибо Андрею Нигматулину.
5242
5243 *) Исправление: если внутри одного сервера описаны несколько директив
5244 listen, слушающих на разных адресах, то имена серверов вида
5245 "*.domain.tld" работали только для первого адреса; ошибка появилась в
5246 0.3.18.
5247
5248 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
5249 не передавались запросы с телом, записанным во временный файл.
5250
5251 *) Исправление: совместимость с perl 5.8.8.
5252
5253
5254 Изменения в nginx 0.3.30 22.02.2006
5255
5256 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
5257 с уровня crit.
5258
5259 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
5260 ngx_http_ssi_filter_module.
5261
5262 *) Исправление: nginx не собирался на i386 платформе, если использовался
5263 PIC; ошибка появилась в 0.3.27.
5264
5265
5266 Изменения в nginx 0.3.29 20.02.2006
5267
5268 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
5269 FastCGI передаёт большое количество предупреждений перед ответом.
5270
5271 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
5272 строка заголовка "Transfer-Encoding: chunked".
5273
5274 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
5275 передавал полные строки заголовка ответа в отдельных FastCGI записях.
5276
5277 *) Исправление: если в директиве post_action был указан проксируемый
5278 URI, то он выполнялся только после успешного завершения запроса.
5279
5280
5281 Изменения в nginx 0.3.28 16.02.2006
5282
5283 *) Добавление: директива restrict_host_names упразднена.
5284
5285 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
5286
5287 *) Исправление: при некоторых условиях проксированное соединение с
5288 клиентом завершалось преждевременно.
5289 Спасибо Владимиру Шутову.
5290
5291 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
5292 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
5293
5294 *) Исправление: директива post_action работала только после успешного
5295 завершения запроса.
5296
5297 *) Исправление: тело проксированного ответа, создаваемого директивой
5298 post_action, передавалось клиенту.
5299
5300
5301 Изменения в nginx 0.3.27 08.02.2006
5302
5303 *) Изменение: директивы variables_hash_max_size и
5304 variables_hash_bucket_size.
5305
5306 *) Добавление: переменная $body_bytes_sent доступна не только в
5307 директиве log_format.
5308
5309 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
5310
5311 *) Добавление: определение размера строки кэша распространённых
5312 процессоров при старте.
5313
5314 *) Добавление: директива accept_mutex теперь поддерживается посредством
5315 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
5316
5317 *) Добавление: директива lock_file и параметр автоконфигурации
5318 --with-lock-path=PATH.
5319
5320 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
5321 не передавались запросы с телом.
5322
5323
5324 Изменения в nginx 0.3.26 03.02.2006
5325
5326 *) Изменение: директива optimize_host_names переименована в
5327 optimize_server_names.
5328
5329 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
5330 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
5331
5332
5333 Изменения в nginx 0.3.25 01.02.2006
5334
5335 *) Исправление: при неверной конфигурации на старте или во время
5336 переконфигурации происходил segmentation fault; ошибка появилась в
5337 0.3.24.
5338
5339
5340 Изменения в nginx 0.3.24 01.02.2006
5341
5342 *) Изменение: обход ошибки в kqueue во FreeBSD.
5343
5344 *) Исправление: ответ, создаваемый директивой post_action, теперь не
5345 передаётся клиенту.
5346
5347 *) Исправление: при использовании большого количества лог-файлов
5348 происходила утечка памяти.
5349
5350 *) Исправление: внутри одного location работала только первая директива
5351 proxy_redirect.
5352
5353 *) Исправление: на 64-битных платформах при старте мог произойти
5354 segmentation fault, если использовалось большое количество имён в
5355 директивах server_name; ошибка появилась в 0.3.18.
5356
5357
5358 Изменения в nginx 0.3.23 24.01.2006
5359
5360 *) Добавление: директива optimize_host_names.
5361
5362 *) Исправление: ошибки при использовании переменных в директивах path и
5363 alias.
5364
5365 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
5366 Linux и Solaris.
5367
5368
5369 Изменения в nginx 0.3.22 17.01.2006
5370
5371 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
5372 и $r->unescape.
5373
5374 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
5375 упразднён.
5376
5377 *) Исправление: если в директиве valid_referers указаны только none или
5378 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
5379
5380
5381 Изменения в nginx 0.3.21 16.01.2006
5382
5383 *) Добавление: модуль ngx_http_perl_module.
5384
5385 *) Изменение: директива valid_referers разрешает использовать рефереры
5386 совсем без URI.
5387
5388
5389 Изменения в nginx 0.3.20 11.01.2006
5390
5391 *) Исправление: ошибки в обработке SSI.
5392
5393 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
5394 виде /uri?args.
5395
5396
5397 Изменения в nginx 0.3.19 28.12.2005
5398
5399 *) Добавление: директивы path и alias поддерживают переменные.
5400
5401 *) Изменение: теперь директива valid_referers опять учитывает URI.
5402
5403 *) Исправление: ошибки в обработке SSI.
5404
5405
5406 Изменения в nginx 0.3.18 26.12.2005
5407
5408 *) Добавление: директива server_names поддерживает имена вида
5409 ".domain.tld".
5410
5411 *) Добавление: директива server_names использует хэш для имён вида
5412 "*.domain.tld" и более эффективный хэш для обычных имён.
5413
5414 *) Изменение: директивы server_names_hash_max_size и
5415 server_names_hash_bucket_size.
5416
5417 *) Изменение: директивы server_names_hash и server_names_hash_threshold
5418 упразднены.
5419
5420 *) Добавление: директива valid_referers использует хэш для имён сайтов.
5421
5422 *) Изменение: теперь директива valid_referers проверяет только имена
5423 сайтов без учёта URI.
5424
5425 *) Исправление: некоторые имена вида ".domain.tld" неверно
5426 обрабатывались модулем ngx_http_map_module.
5427
5428 *) Исправление: если конфигурационного файла не было, то происходил
5429 segmentation fault; ошибка появилась в 0.3.12.
5430
5431 *) Исправление: на 64-битных платформах при старте мог произойти
5432 segmentation fault; ошибка появилась в 0.3.16.
5433
5434
5435 Изменения в nginx 0.3.17 18.12.2005
5436
5437 *) Изменение: на Linux configure теперь проверяет наличие epoll и
5438 sendfile64() в ядре.
5439
5440 *) Добавление: директива map поддерживает доменные имена в формате
5441 ".domain.tld".
5442
5443 *) Исправление: во время SSL handshake не иcпользовались таймауты;
5444 ошибка появилась в 0.2.4.
5445
5446 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5447
5448 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
5449 по умолчанию использовался порт 80.
5450
5451
5452 Изменения в nginx 0.3.16 16.12.2005
5453
5454 *) Добавление: модуль ngx_http_map_module.
5455
5456 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
5457
5458 *) Добавление: директива ssi_value_length.
5459
5460 *) Добавление: директива worker_rlimit_core.
5461
5462 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
5463 Pentium 4 номер соединения в логах всегда был равен 1.
5464
5465 *) Исправление: команда config timefmt в SSI задавала неверный формат
5466 времени.
5467
5468 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
5469 использовании SSL соединений; ошибка появилась в 0.3.13.
5470 Спасибо Rob Mueller.
5471
5472 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
5473 ошибка появилась в 0.3.13.
5474
5475
5476 Изменения в nginx 0.3.15 07.12.2005
5477
5478 *) Добавление: новой код 444 в директиве return для закрытия соединения.
5479
5480 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
5481
5482 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
5483 соединений только при планом выходе и включённой директиве
5484 debug_points.
5485
5486
5487 Изменения в nginx 0.3.14 05.12.2005
5488
5489 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
5490 в 0.3.13.
5491
5492
5493 Изменения в nginx 0.3.13 05.12.2005
5494
5495 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
5496
5497 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
5498 /dev/poll.
5499
5500 *) Исправление: ошибки в обработке SSI.
5501
5502 *) Исправление: sendfilev() в Solaris теперь не используется при
5503 передаче тела запроса FastCGI-серверу через unix domain сокет.
5504
5505 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
5506 появилась в 0.3.11.
5507
5508
5509 Изменения в nginx 0.3.12 26.11.2005
5510
5511 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
5512 то при использовании директивы "satisfy_any on" директивы доступа и
5513 аутентификации не работали. Модуль ngx_http_realip_module не
5514 собирался и не собирается по умолчанию.
5515
5516 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
5517
5518 *) Изменение: директивы proxy_header_buffer_size и
5519 fastcgi_header_buffer_size переименованы соответственно в
5520 proxy_buffer_size и fastcgi_buffer_size.
5521
5522 *) Добавление: модуль ngx_http_memcached_module.
5523
5524 *) Добавление: директива proxy_buffering.
5525
5526 *) Исправление: изменение в работе с accept mutex при использовании
5527 метода rtsig; ошибка появилась в 0.3.0.
5528
5529 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
5530 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
5531
5532 *) Исправление: при наследовании директивы auth_basic с уровня http в
5533 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
5534 "Basic realm".
5535
5536 *) Исправление: если в директиве access_log был явно указан формат
5537 combined, то в лог записывались пустые строки; ошибка появилась в
5538 0.3.8.
5539
5540 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
5541 Solaris.
5542
5543 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
5544 в кавычках и закрывающую скобку.
5545
5546
5547 Изменения в nginx 0.3.11 15.11.2005
5548
5549 *) Исправление: nginx не передавал при проксировании тело запроса и
5550 строки заголовка клиента; ошибка появилась в 0.3.10.
5551
5552
5553 Изменения в nginx 0.3.10 15.11.2005
5554
5555 *) Изменение: директива valid_referers и переменная $invalid_referer
5556 перенесены из модуля ngx_http_rewrite_module в новый модуль
5557 ngx_http_referer_module.
5558
5559 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
5560 "$body_bytes_sent".
5561
5562 *) Добавление: переменные "$sent_http_...".
5563
5564 *) Добавление: директива if поддерживает операции "=" и "!=".
5565
5566 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
5567
5568 *) Добавление: директива proxy_set_body.
5569
5570 *) Добавление: директива post_action.
5571
5572 *) Добавление: модуль ngx_http_empty_gif_module.
5573
5574 *) Добавление: директива worker_cpu_affinity для Linux.
5575
5576 *) Исправление: директива rewrite не раскодировала символы в редиректах
5577 в URI, теперь символы раскодируются, кроме символов %00-%25 и
5578 %7F-%FF.
5579
5580 *) Исправление: nginx не собирался компилятором icc 9.0.
5581
5582 *) Исправление: если для статического файла нулевого размера был
5583 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
5584
5585
5586 Изменения в nginx 0.3.9 10.11.2005
5587
5588 *) Исправление: nginx считал небезопасными URI, в которых между двумя
5589 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
5590
5591
5592 Изменения в nginx 0.3.8 09.11.2005
5593
5594 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
5595 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
5596 наличие путей "/../" и нулей.
5597
5598 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
5599 строке "Authorization" в заголовке запроса.
5600
5601 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
5602 и ngx_imap_ssl_module.
5603
5604 *) Добавление: директива auth_http_header модуля
5605 ngx_imap_auth_http_module.
5606
5607 *) Добавление: директива add_header.
5608
5609 *) Добавление: модуль ngx_http_realip_module.
5610
5611 *) Добавление: новые переменные для использования в директиве
5612 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
5613 $uri, $request_time, $request_length, $upstream_status,
5614 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
5615 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
5616 упразднены.
5617
5618 *) Изменение: в директиве "if" ложными значениями переменных теперь
5619 являются пустая строка "" и строки, начинающиеся на "0".
5620
5621 *) Исправление: при работает с проксированными или FastCGI-серверами
5622 nginx мог оставлять открытыми соединения и временные файлы с
5623 запросами клиентов.
5624
5625 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
5626 плавном выходе.
5627
5628 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
5629 запрос проксировался в location, заданном регулярным выражением, то
5630 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
5631
5632 *) Исправление: директива expires не удаляла уже установленную строку
5633 заголовка "Expires".
5634
5635 *) Исправление: при использовании метода rtsig и нескольких рабочих
5636 процессах nginx мог перестать принимать запросы.
5637
5638 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
5639 "\'".
5640
5641 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
5642 при использовании сжатия ответ передавался не до конца или не
5643 передавался вообще.
5644
5645
5646 Изменения в nginx 0.3.7 27.10.2005
5647
5648 *) Добавление: директива access_log поддерживает параметр buffer=.
5649
5650 *) Исправление: nginx не собирался на платформах, отличных от i386,
5651 amd64, sparc и ppc; ошибка появилась в 0.3.2.
5652
5653
5654 Изменения в nginx 0.3.6 24.10.2005
5655
5656 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
5657 пустой логин.
5658
5659 *) Добавление: директива log_format поддерживает переменные в виде
5660 $name.
5661
5662 *) Исправление: если хотя бы в одном сервере не было описано ни одной
5663 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
5664 0.3.3.
5665
5666 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
5667 использовался порт 80.
5668
5669
5670 Изменения в nginx 0.3.5 21.10.2005
5671
5672 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
5673 мог произойти segmentation fault; ошибка появилась в 0.2.2.
5674
5675 *) Исправление: accept mutex не работал, все соединения обрабатывались
5676 одним рабочим процессом; ошибка появилась в 0.3.3.
5677
5678 *) Исправление: при использовании метода rtsig и директивы
5679 timer_resolution не работали таймауты.
5680
5681
5682 Изменения в nginx 0.3.4 19.10.2005
5683
5684 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
5685 появилась в 0.3.3.
5686
5687
5688 Изменения в nginx 0.3.3 19.10.2005
5689
5690 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
5691 "backlog" и "accept_filter".
5692
5693 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
5694
5695 *) Изменение: параметр лога $msec теперь не требует дополнительного
5696 системного вызова gettimeofday().
5697
5698 *) Добавление: ключ -t теперь проверяет директивы listen.
5699
5700 *) Исправление: если в директиве listen был указан неверный адрес, то
5701 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
5702
5703 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
5704 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
5705
5706 *) Добавление: директива timer_resolution.
5707
5708 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
5709
5710 *) Исправление: временный файл с телом запроса клиента теперь удаляется
5711 сразу после того, как клиенту передан заголовок ответа.
5712
5713 *) Исправление: совместимость с OpenSSL 0.9.6.
5714
5715 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
5716 относительными.
5717
5718 *) Исправление: директива ssl_prefer_server_ciphers не работала для
5719 модуля ngx_imap_ssl_module.
5720
5721 *) Исправление: директива ssl_protocols позволяла задать только один
5722 протокол.
5723
5724
5725 Изменения в nginx 0.3.2 12.10.2005
5726
5727 *) Добавление: поддержка Sun Studio 10 C compiler.
5728
5729 *) Добавление: директивы proxy_upstream_max_fails,
5730 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
5731 fastcgi_upstream_fail_timeout.
5732
5733
5734 Изменения в nginx 0.3.1 10.10.2005
5735
5736 *) Исправление: во время переполнения очереди сигналов при использовании
5737 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
5738
5739 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
5740
5741
5742 Изменения в nginx 0.3.0 07.10.2005
5743
5744 *) Изменение: убрано десятидневное ограничение времени работы рабочего
5745 процесса. Ограничение было введено из-за переполнения миллисекундных
5746 таймеров.
5747
5748
5749 Изменения в nginx 0.2.6 05.10.2005
5750
5751 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
5752 бэкенду при использовании распределения нагрузки.
5753
5754 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
5755 запрос теперь передаётся, если в директиве proxy_pass отсутствует
5756 URI.
5757
5758 *) Добавление: директива error_page поддерживает редиректы и позволяет
5759 более гибко менять код ошибки.
5760
5761 *) Изменение: в проксированных подзапросах теперь игнорируется
5762 переданный charset.
5763
5764 *) Исправление: если после изменения URI в блоке if для запроса не
5765 находилась новая конфигурация, то правила модуля
5766 ngx_http_rewrite_module выполнялись снова.
5767
5768 *) Исправление: если директива set устанавливала переменную модуля
5769 ngx_http_geo_module в какой-либо части конфигурации, то эта
5770 переменная не была доступна в других частях конфигурации и выдавалась
5771 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
5772
5773
5774 Изменения в nginx 0.2.5 04.10.2005
5775
5776 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
5777 теперь выдаёт предупреждение и изменяет старое значение.
5778
5779 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
5780
5781 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
5782 команде include.
5783
5784 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
5785 значений переменных в выражениях команды if.
5786
5787
5788 Изменения в nginx 0.2.4 03.10.2005
5789
5790 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
5791 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
5792 if.
5793
5794 *) Исправление: ошибки при проксировании location без слэша в конце;
5795 ошибка появилась в 0.1.44.
5796
5797 *) Исправление: при использовании метода rtsig мог произойти
5798 segmentation fault; ошибка появилась в 0.2.0.
5799
5800
5801 Изменения в nginx 0.2.3 30.09.2005
5802
5803 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
5804 появилась в 0.2.2.
5805
5806
5807 Изменения в nginx 0.2.2 30.09.2005
5808
5809 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
5810
5811 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
5812 директивой set.
5813
5814 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
5815 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
5816
5817 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
5818 длинных имён файлов;
5819
5820 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
5821 файлы, начинающиеся на точку.
5822
5823 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
5824 привести также к закрытию другого соединения.
5825 Спасибо Rob Mueller.
5826
5827 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
5828 HTTPS.
5829
5830
5831 Изменения в nginx 0.2.1 23.09.2005
5832
5833 *) Исправление: если все бэкенды, используемые для балансировки
5834 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
5835 nginx мог зациклится; ошибка появилась в 0.2.0.
5836
5837
5838 Изменения в nginx 0.2.0 23.09.2005
5839
5840 *) Изменились имена pid-файлов, используемые во время обновления
5841 исполняемого файла. Ручное переименование теперь не нужно. Старый
5842 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
5843 запускает новый исполняемый файл. Новый основной процесс создаёт
5844 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
5845 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
5846 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
5847 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
5848 0.2.0 - используют pid-файл без суффиксов.
5849
5850 *) Изменение: директива worker_connections, новое название директивы
5851 connections; директива теперь задаёт максимальное число соединений, а
5852 не максимально возможный номер дескриптора для сокета.
5853
5854 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
5855 рабочего процесса.
5856
5857 *) Добавление: директива satisfy_any.
5858
5859 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
5860 не работают для подзапросов.
5861
5862 *) Добавление: директивы worker_rlimit_nofile и
5863 worker_rlimit_sigpending.
5864
5865 *) Исправление: если все бэкенды, используемые для балансировки
5866 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
5867 nginx не обращался к ним в течение 60 секунд.
5868
5869 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
5870 Спасибо Rob Mueller.
5871
5872 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
5873
5874 *) Исправление: ошибки при использовании SSI и сжатия.
5875
5876 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
5877 "Expires" и "Cache-Control".
5878 Спасибо Александру Кукушкину.
5879
5880
5881 Изменения в nginx 0.1.45 08.09.2005
5882
5883 *) Изменение: директива ssl_engine упразднена в модуле
5884 ngx_http_ssl_module и перенесена на глобальный уровень.
5885
5886 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
5887 передавались через SSL соединение.
5888
5889 *) Разные исправления в IMAP/POP3 прокси.
5890
5891
5892 Изменения в nginx 0.1.44 06.09.2005
5893
5894 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
5895
5896 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
5897
5898 *) Добавление: директива userid_mark.
5899
5900 *) Добавление: значение переменной $remote_user определяется независимо
5901 от того, используется ли авторизация или нет.
5902
5903
5904 Изменения в nginx 0.1.43 30.08.2005
5905
5906 *) Добавление: listen(2) backlog в директиве listen можно менять по
5907 сигналу -HUP.
5908
5909 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
5910
5911 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
5912 серверу.
5913
5914 *) Исправление: если в ответе проксированного сервера или FastCGI
5915 сервера была строка "Cache-Control", то при использовании директивы
5916 expires происходил segmentation fault или рабочий процесс мог
5917 зациклится; в режиме прокси ошибка появилась в 0.1.29.
5918
5919
5920 Изменения в nginx 0.1.42 23.08.2005
5921
5922 *) Исправление: если URI запроса получался нулевой длины после обработки
5923 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
5924 происходил segmentation fault или bus error.
5925
5926 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
5927 появилась в 0.1.38.
5928
5929
5930 Изменения в nginx 0.1.41 25.07.2005
5931
5932 *) Исправление: если переменная использовалась в файле конфигурации, то
5933 она не могла использоваться в SSI.
5934
5935
5936 Изменения в nginx 0.1.40 22.07.2005
5937
5938 *) Исправление: если клиент слал очень длинную строку заголовка, то в
5939 логе не помещалась информация, связанная с этим запросом.
5940
5941 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
5942 строка "Set-Cookie"; ошибка появилась в 0.1.39.
5943
5944 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
5945 строка "Content-Disposition".
5946
5947 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
5948 на которых он слушал.
5949
5950 *) Исправление: после обновления исполняемого файла на лету на Linux и
5951 Solaris название процесса в команде ps становилось короче.
5952
5953
5954 Изменения в nginx 0.1.39 14.07.2005
5955
5956 *) Изменения в модуле ngx_http_charset_module: директива default_charset
5957 упразднена; директива charset задаёт кодировку ответа; директива
5958 source_charset задаёт только исходную кодировку.
5959
5960 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
5961 не передавалась строка заголовка "WWW-Authenticate".
5962
5963 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
5964 могли закрыть соединение до того, как что-нибудь было передано
5965 клиенту; ошибка появилась в 0.1.38.
5966
5967 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
5968
5969 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
5970 URI в команде include virtual.
5971
5972 *) Исправление: если в строке заголовка ответа бэкенда была строка
5973 "Location", которую nginx не должен был изменять, то в ответе
5974 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
5975
5976 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
5977 ngx_http_fastcgi_module не наследовались с уровня server на уровень
5978 location; ошибка появилась в 0.1.29.
5979
5980 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
5981 сертификатов.
5982
5983 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
5984 длинных имён файлов; ошибка появилась в 0.1.38.
5985
5986 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
5987 стадии login.
5988
5989
5990 Изменения в nginx 0.1.38 08.07.2005
5991
5992 *) Добавление: директива limit_rate поддерживается в режиме прокси и
5993 FastCGI.
5994
5995 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
5996 "X-Accel-Limit-Rate" в ответе бэкенда.
5997
5998 *) Добавление: директива break.
5999
6000 *) Добавление: директива log_not_found.
6001
6002 *) Исправление: при перенаправлении запроса с помощью строки заголовка
6003 "X-Accel-Redirect" не изменялся код ответа.
6004
6005 *) Исправление: переменные, установленные директивой set не могли
6006 использоваться в SSI.
6007
6008 *) Исправление: при включении в SSI более одного удалённого подзапроса
6009 мог произойти segmentation fault.
6010
6011 *) Исправление: если статусная строка в ответе бэкенда передавалась в
6012 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
6013 0.1.29.
6014
6015 *) Добавление: директива ssi_types.
6016
6017 *) Добавление: директива autoindex_exact_size.
6018
6019 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
6020 имена файлов в UTF-8.
6021
6022 *) Добавление: IMAP/POP3 прокси.
6023
6024
6025 Изменения в nginx 0.1.37 23.06.2005
6026
6027 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
6028
6029 *) Исправление: при включении большого количества вставок или нескольких
6030 больших вставок с помощью SSI ответ мог передаваться не полностью.
6031
6032 *) Исправление: если все бэкенды возвращали ответ 404, то при
6033 использовании параметра http_404 в директивах proxy_next_upstream или
6034 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
6035
6036
6037 Изменения в nginx 0.1.36 15.06.2005
6038
6039 *) Изменение: если в заголовке запросе есть дублирующиеся строки "Host",
6040 "Connection", "Content-Length" и "Authorization", то nginx теперь
6041 выдаёт ошибку 400.
6042
6043 *) Изменение: директива post_accept_timeout упразднена.
6044
6045 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
6046 listen.
6047
6048 *) Добавление: поддержка accept фильтров во FreeBSD.
6049
6050 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
6051
6052 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
6053 файлов в UTF-8.
6054
6055 *) Исправление: после добавления новый лог-файл ротация этого лога по
6056 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
6057 раза по сигналу -HUP.
6058
6059
6060 Изменения в nginx 0.1.35 07.06.2005
6061
6062 *) Добавление: директива working_directory.
6063
6064 *) Добавление: директива port_in_redirect.
6065
6066 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
6067 то происходил segmentation fault; ошибка появилась в 0.1.29.
6068
6069 *) Исправление: если было сконфигурировано более 10 серверов или в
6070 сервере не описана директива "listen", то при запуске мог произойти
6071 segmentation fault.
6072
6073 *) Исправление: если ответ не помещался во временный файл, то мог
6074 произойти segmentation fault.
6075
6076 *) Исправление: nginx возвращал ошибку 400 на запросы вида
6077 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
6078
6079
6080 Изменения в nginx 0.1.34 26.05.2005
6081
6082 *) Исправление: при включении больших ответов с помощью SSI рабочий
6083 процесс мог зациклиться.
6084
6085 *) Исправление: переменные, устанавливаемые директивой "set", не были
6086 доступны в SSI.
6087
6088 *) Добавление: директива autoindex_localtime.
6089
6090 *) Исправление: пустое значение в директиве proxy_set_header запрещает
6091 передачу заголовка.
6092
6093
6094 Изменения в nginx 0.1.33 23.05.2005
6095
6096 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
6097 появилась в 0.1.29.
6098
6099 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
6100 вызывали bus fault при запуске.
6101
6102 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
6103 HTTP.
6104
6105 *) Исправление: если директива rewrite использовала выделения внутри
6106 директивы if, то возвращалась ошибка 500.
6107
6108
6109 Изменения в nginx 0.1.32 19.05.2005
6110
6111 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
6112 передавались аргументы; ошибка появилась в 0.1.29.
6113
6114 *) Добавление: директива if поддерживает выделения в регулярных
6115 выражениях.
6116
6117 *) Добавление: директива set поддерживает переменные и выделения из
6118 регулярных выражений.
6119
6120 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
6121 "X-Accel-Redirect" в ответе бэкенда.
6122
6123
6124 Изменения в nginx 0.1.31 16.05.2005
6125
6126 *) Исправление: при использовании SSL ответ мог передаваться не до
6127 конца.
6128
6129 *) Исправление: ошибки при обработке SSI в ответе, полученного от
6130 FastCGI-сервера.
6131
6132 *) Исправление: ошибки при использовании SSI и сжатия.
6133
6134 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
6135 появилась в 0.1.30.
6136
6137
6138 Изменения в nginx 0.1.30 14.05.2005
6139
6140 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
6141
6142 *) Исправление: при использовании SSL ответ мог передаваться не до
6143 конца.
6144
6145 *) Исправление: если длина части ответа, полученного за один раз от
6146 проксируемого или FastCGI сервера была равна 500 байт, то nginx
6147 возвращал код ответа 500; в режиме прокси ошибка появилась только в
6148 0.1.29.
6149
6150 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
6151 параметрами.
6152
6153 *) Добавление: директива return может возвращать код ответа 204.
6154
6155 *) Добавление: директива ignore_invalid_headers.
6156
6157
6158 Изменения в nginx 0.1.29 12.05.2005
6159
6160 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
6161 virtual.
6162
6163 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
6164 вида 'if expr="$NAME"' и команды else и endif. Допускается только
6165 один уровень вложенности.
6166
6167 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
6168 DATE_LOCAL и DATE_GMT и команду config timefmt.
6169
6170 *) Добавление: директива ssi_ignore_recycled_buffers.
6171
6172 *) Исправление: если переменная QUERY_STRING не была определена, то в
6173 команде echo не ставилось значение по умолчанию.
6174
6175 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
6176
6177 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
6178 proxy_pass_request_body и proxy_method.
6179
6180 *) Добавление: директива proxy_set_header. Директива proxy_x_var
6181 упразднена и должна быть заменена директивой proxy_set_header.
6182
6183 *) Изменение: директива proxy_preserve_host упразднена и должна быть
6184 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
6185 off" или директивой "proxy_set_header Host $host:$proxy_port" и
6186 соответствующими ей директивами proxy_redirect.
6187
6188 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
6189 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
6190
6191 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
6192 быть заменена директивой
6193 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
6194
6195 *) Изменение: директива proxy_set_x_url упразднена и должна быть
6196 заменена директивой
6197 "proxy_set_header X-URL http://$host:$server_port$request_uri".
6198
6199 *) Добавление: директива fastcgi_param.
6200
6201 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
6202 упразднены и должны быть замены директивами fastcgi_param.
6203
6204 *) Добавление: директива index может использовать переменные.
6205
6206 *) Добавление: директива index может быть указана на уровне http и
6207 server.
6208
6209 *) Изменение: только последний параметр в директиве index может быть
6210 абсолютным.
6211
6212 *) Добавление: в директиве rewrite могут использоваться переменные.
6213
6214 *) Добавление: директива internal.
6215
6216 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
6217 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
6218 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
6219
6220 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
6221 клиента и ответа бэкенда.
6222
6223 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
6224 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
6225
6226 *) Исправление: если бэкенд передавал неверную строку в заголовке
6227 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
6228
6229 *) Исправление: при использовании отказоустойчивой конфигурации в
6230 FastCGI мог происходить segmentation fault.
6231
6232 *) Исправление: директива expires не удаляла уже установленные строки
6233 заголовка "Expires" и "Cache-Control".
6234
6235 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
6236 запроса "Host".
6237
6238 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
6239
6240 *) Исправление: директива rewrite неверно работала, если в запросе
6241 присутствовали аргументы.
6242
6243 *) Исправление: nginx не собирался на MacOS X.
6244
6245
6246 Изменения в nginx 0.1.28 08.04.2005
6247
6248 *) Исправление: при проксировании больших файлов nginx сильно нагружал
6249 процессор.
6250
6251 *) Исправление: nginx не собирался gcc 4.0 на Linux.
6252
6253
6254 Изменения в nginx 0.1.27 28.03.2005
6255
6256 *) Добавление: параметр blocked в директиве valid_referers.
6257
6258 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
6259 уровне info, в лог также записывается имя сервера и строки заголовка
6260 запроса "Host" и "Referer".
6261
6262 *) Изменение: при записи ошибок в лог записывается также строка
6263 заголовка запроса "Host".
6264
6265 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
6266 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
6267
6268 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
6269 параметр конфигурации --without-ngx_http_auth_basic_module.
6270
6271
6272 Изменения в nginx 0.1.26 22.03.2005
6273
6274 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
6275 игнорируется и записываются в error_log на уровне info.
6276
6277 *) Изменение: при записи ошибок в лог записывается также имя сервера,
6278 при обращении к которому произошла ошибка.
6279
6280 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
6281 и auth_basic_user_file.
6282
6283
6284 Изменения в nginx 0.1.25 19.03.2005
6285
6286 *) Исправление: nginx не работал на Linux parisc.
6287
6288 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
6289 sysctl kern.ipc.somaxconn слишком большое.
6290
6291 *) Исправление: если модуль ngx_http_index_module делал внутреннее
6292 перенаправление запроса в модули ngx_http_proxy_module или
6293 ngx_http_fastcgi_module, то файл индекса не закрывался после
6294 обслуживания запроса.
6295
6296 *) Добавление: директива proxy_pass может использоваться в location,
6297 заданных регулярным выражением.
6298
6299 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
6300 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
6301
6302 *) Исправление: nginx очень медленно запускался при большом количестве
6303 адресов и использовании текстовых значений в директиве geo.
6304
6305 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
6306 Прежний вариант без "$" пока работает, но вскоре будет убран.
6307
6308 *) Добавление: параметр лога "%{VARIABLE}v".
6309
6310 *) Добавление: директива "set $name value".
6311
6312 *) Исправление: совместимость с gcc 4.0.
6313
6314 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
6315
6316
6317 Изменения в nginx 0.1.24 04.03.2005
6318
6319 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
6320 QUERY_STRING и DOCUMENT_URI.
6321
6322 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
6323 на существующий каталог, если этот каталог был указан как alias.
6324
6325 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
6326 при больших ответах.
6327
6328 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
6329 правильным referrer'ом.
6330
6331
6332 Изменения в nginx 0.1.23 01.03.2005
6333
6334 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
6335 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
6336 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
6337
6338 *) Добавление: параметр лога %request_time.
6339
6340 *) Добавление: если запрос пришёл без строки заголовка "Host", то
6341 директива proxy_preserve_host устанавливает в качестве этого
6342 заголовка первое имя сервера из директивы server_name.
6343
6344 *) Исправление: nginx не собирался на платформах, отличных от i386,
6345 amd64, sparc и ppc; ошибка появилась в 0.1.22.
6346
6347 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
6348 информацию не о символическом линке, а о файле или каталоге, на
6349 который он указывает.
6350
6351 *) Исправление: если клиенту ничего не передавалось, то параметр
6352 %apache_length записывал в лог отрицательную длину заголовка ответа.
6353
6354
6355 Изменения в nginx 0.1.22 22.02.2005
6356
6357 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
6358 статистику для обработанных соединений, если использовалось
6359 проксирование или FastCGI-сервер.
6360
6361 *) Исправление: на Linux и Solaris установочные пути были неверно
6362 заключены в кавычки; ошибка появилась в 0.1.21.
6363
6364
6365 Изменения в nginx 0.1.21 22.02.2005
6366
6367 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
6368 статистику при использовании метода rtsig или при использовании
6369 нескольких рабочих процессов на SMP машине.
6370
6371 *) Исправление: nginx не собирался компилятором icc под Линуксом или
6372 если библиотека zlib-1.2.x собиралась из исходных текстов.
6373
6374 *) Исправление: nginx не собирался под NetBSD 2.0.
6375
6376
6377 Изменения в nginx 0.1.20 17.02.2005
6378
6379 *) Добавление: новые параметры script_filename и remote_port в директиве
6380 fastcgi_params.
6381
6382 *) Исправление: неправильно обрабатывался поток stderr от
6383 FastCGI-сервера.
6384
6385
6386 Изменения в nginx 0.1.19 16.02.2005
6387
6388 *) Исправление: если в запросе есть нуль, то для локальных запросов
6389 теперь возвращается ошибка 404.
6390
6391 *) Исправление: nginx не собирался под NetBSD 2.0.
6392
6393 *) Исправление: во время чтения тела запроса клиента в SSL соединении
6394 мог произойти таймаут.
6395
6396
6397 Изменения в nginx 0.1.18 09.02.2005
6398
6399 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
6400 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
6401
6402 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
6403 наследовались.
6404
6405 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
6406 присоединялись к URI через символ "&" вместо "?".
6407
6408 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
6409 включённом файле игнорировались.
6410
6411 *) Добавление: модуль ngx_http_stub_status_module.
6412
6413 *) Исправление: неизвестный формат лог-файла в директиве access_log
6414 вызывал segmentation fault.
6415
6416 *) Добавление: новый параметр document_root в директиве fastcgi_params.
6417
6418 *) Добавление: директива fastcgi_redirect_errors.
6419
6420 *) Добавление: новый модификатор break в директиве rewrite позволяет
6421 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
6422 для запроса.
6423
6424
6425 Изменения в nginx 0.1.17 03.02.2005
6426
6427 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
6428 можно делать редиректы, возвращать коды ошибок и проверять переменные
6429 и рефереры. Эти директивы можно использовать внутри location.
6430 Директива redirect упразднена.
6431
6432 *) Добавление: модуль ngx_http_geo_module.
6433
6434 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
6435
6436 *) Исправление: конфигурация location с модификатором "=" могла
6437 использоваться в другом location.
6438
6439 *) Исправление: правильный тип ответа выставлялся только для запросов, у
6440 которых в расширении были только маленькие буквы.
6441
6442 *) Исправление: если для location установлен proxy_pass или
6443 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
6444 на статическую страницу, то происходил segmentation fault.
6445
6446 *) Исправление: если в проксированном ответе в заголовке "Location"
6447 передавался относительный URL, то к нему добавлялось имя хоста и
6448 слэш; ошибка появилась в 0.1.14.
6449
6450 *) Исправление: на Linux в лог не записывался текст системной ошибки.
6451
6452
6453 Изменения в nginx 0.1.16 25.01.2005
6454
6455 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
6456 выдавался завершающий chunk.
6457
6458 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
6459 директива keepalive_timeout запрещала использование keep-alive.
6460
6461 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
6462 segmentation fault.
6463
6464 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
6465 до конца.
6466
6467 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
6468 для TCP сокетов, не используются для unix domain сокетов.
6469
6470 *) Добавление: директива rewrite поддерживает перезаписывание
6471 аргументов.
6472
6473 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
6474 возвращался ответ 400; ошибка появилась в 0.1.14.
6475
6476
6477 Изменения в nginx 0.1.15 19.01.2005
6478
6479 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
6480 segmentation fault.
6481
6482 *) Исправление: корректная обработка регулярного выражения, в котором
6483 число выделенных частей не совпадает с числом подстановок.
6484
6485 *) Добавление: location, который передаётся FastCGI-серверу, может быть
6486 задан с помощью регулярного выражения.
6487
6488 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
6489 аргументами и в том виде, в котором был получен от клиента.
6490
6491 *) Исправление: для использования регулярных выражений в location нужно
6492 было собирать nginx вместе с ngx_http_rewrite_module.
6493
6494 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
6495 директивы "proxy_preserve_host on" в заголовке "Host" указывался
6496 также порт 80; ошибка появилась в 0.1.14.
6497
6498 *) Исправление: если задать одинаковые пути в параметрах
6499 автоконфигурации --http-client-body-temp-path=PATH и
6500 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
6501 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
6502
6503
6504 Изменения в nginx 0.1.14 18.01.2005
6505
6506 *) Добавление: параметры автоконфигурации
6507 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
6508 --http-fastcgi-temp-path=PATH
6509
6510 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
6511 клиента, задаётся директивой client_body_temp_path, по умолчанию
6512 <prefix>/client_body_temp.
6513
6514 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
6515 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
6516 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
6517 fastcgi_header_buffer_size, fastcgi_buffers,
6518 fastcgi_busy_buffers_size, fastcgi_temp_path,
6519 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
6520 fastcgi_next_upstream и fastcgi_x_powered_by.
6521
6522 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
6523 0.1.3.
6524
6525 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
6526 после имени хоста.
6527
6528 *) Изменение: если в URI встречался символ %3F, то он считался началом
6529 строки аргументов.
6530
6531 *) Добавление: поддержка unix domain сокетов в модуле
6532 ngx_http_proxy_module.
6533
6534 *) Добавление: директивы ssl_engine и ssl_ciphers.
6535 Спасибо Сергею Скворцову за SSL-акселератор.
6536
6537
6538 Изменения в nginx 0.1.13 21.12.2004
6539
6540 *) Добавление: директивы server_names_hash и
6541 server_names_hash_threshold.
6542
6543 *) Исправление: имена *.domain.tld в директиве server_name не работали.
6544
6545 *) Исправление: параметр лога %request_length записывал неверную длину.
6546
6547
6548 Изменения в nginx 0.1.12 06.12.2004
6549
6550 *) Добавление: параметр лога %request_length.
6551
6552 *) Исправление: при использовании /dev/poll, select и poll на
6553 платформах, где возможны ложные срабатывания указанных методов, могли
6554 быть длительные задержки при обработке запроса по keep-alive
6555 соединению. Наблюдалось по крайней мере на Solaris с использованием
6556 /dev/poll.
6557
6558 *) Исправление: директива send_lowat игнорируется на Linux, так как
6559 Linux не поддерживает опцию SO_SNDLOWAT.
6560
6561
6562 Изменения в nginx 0.1.11 02.12.2004
6563
6564 *) Добавление: директива worker_priority.
6565
6566 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
6567 влияют на передачу ответа.
6568
6569 *) Исправление: nginx не вызывал initgroups().
6570 Спасибо Андрею Ситникову и Андрею Нигматулину.
6571
6572 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
6573 байтах.
6574
6575 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
6576 каталоге есть битый symlink.
6577
6578 *) Исправление: файлы больше 4G не передавались с использованием
6579 sendfile.
6580
6581 *) Исправление: если бэкенд резолвился в несколько адресов и при
6582 ожидании от него ответа происходила ошибка, то процесс зацикливался.
6583
6584 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
6585 завершиться с сообщением "unknown cycle".
6586
6587 *) Исправление: ошибки "close() channel failed".
6588
6589 *) Исправление: автоматическое определение групп nobody и nogroup.
6590
6591 *) Исправление: директива send_lowat не работала на Linux.
6592
6593 *) Исправление: если в конфигурации не было раздела events, то
6594 происходил segmentation fault.
6595
6596 *) Исправление: nginx не собирался под OpenBSD.
6597
6598 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
6599
6600
6601 Изменения в nginx 0.1.10 26.11.2004
6602
6603 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
6604 или "%XX", то терялся последний символ в строке запроса; ошибка
6605 появилась в 0.1.9.
6606
6607 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
6608 не работало.
6609
6610
6611 Изменения в nginx 0.1.9 25.11.2004
6612
6613 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
6614 проксируемый запрос передавался без аргументов.
6615
6616 *) Исправление: при сжатии больших ответов иногда они передавались не
6617 полностью.
6618
6619 *) Исправление: не передавались файлы больше 2G на Linux,
6620 неподдерживающем sendfile64().
6621
6622 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
6623 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
6624
6625
6626 Изменения в nginx 0.1.8 20.11.2004
6627
6628 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
6629 длинных имён файлов.
6630
6631 *) Добавление: модификатор "^~" в директиве location.
6632
6633 *) Добавление: директива proxy_max_temp_file_size.
6634
6635
6636 Изменения в nginx 0.1.7 12.11.2004
6637
6638 *) Исправление: при использовании sendfile, если передаваемый файл
6639 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
6640 появилась в 0.1.5.
6641
6642
6643 Изменения в nginx 0.1.6 11.11.2004
6644
6645 *) Исправление: при некоторых комбинациях директив location c
6646 регулярными выражениями использовалась конфигурация не из того
6647 location.
6648
6649
6650 Изменения в nginx 0.1.5 11.11.2004
6651
6652 *) Исправление: на Solaris и Linux могло быть очень много сообщений
6653 "recvmsg() returned not enough data".
6654
6655 *) Исправление: в режиме прокси без использования sendfile на Solaris
6656 возникала ошибка "writev() failed (22: Invalid argument)". На других
6657 платформах, не поддерживающих sendfile, процесс зацикливался.
6658
6659 *) Исправление: при использовании sendfile в режиме прокси на Solaris
6660 возникал segmentation fault.
6661
6662 *) Исправление: segmentation fault на Solaris.
6663
6664 *) Исправление: обновление исполняемого файла на лету не работало на
6665 Linux.
6666
6667 *) Исправление: в списке файлов, выдаваемом модулем
6668 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
6669 знаки процента.
6670
6671 *) Изменение: уменьшение операций копирования.
6672
6673 *) Добавление: директива userid_p3p.
6674
6675
6676 Изменения в nginx 0.1.4 26.10.2004
6677
6678 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
6679
6680
6681 Изменения в nginx 0.1.3 25.10.2004
6682
6683 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
6684
6685 *) Добавление: директива proxy_set_x_url.
6686
6687 *) Исправление: модуль проксировании мог привести к зацикливанию, если
6688 не использовался sendfile.
6689
6690
6691 Изменения в nginx 0.1.2 21.10.2004
6692
6693 *) Добавление: параметры --user=USER, --group=GROUP и
6694 --with-ld-opt=OPTIONS в configure.
6695
6696 *) Добавление: директива server_name поддерживает *.domain.tld.
6697
6698 *) Исправление: улучшена переносимость на неизвестные платформы.
6699
6700 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
6701 файл указан в командной строке; ошибка появилась в 0.1.1.
6702
6703 *) Исправление: модуль проксировании мог привести к зацикливанию, если
6704 не использовался sendfile.
6705
6706 *) Исправление: при использовании sendfile текст ответа не
6707 перекодировался согласно директивам модуля charset; ошибка появилась
6708 в 0.1.1.
6709
6710 *) Исправление: очень редкая ошибка при обработке kqueue.
6711
6712 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
6713 проксировании.
6714
6715
6716 Изменения в nginx 0.1.1 11.10.2004
6717
6718 *) Добавление: директива gzip_types.
6719
6720 *) Добавление: директива tcp_nodelay.
6721
6722 *) Добавление: директива send_lowat работает не только на платформах,
6723 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
6724 SO_SNDLOWAT.
6725
6726 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
6727
6728 *) Исправление: ошибка при переписывании заголовка "Location" при
6729 проксировании.
6730
6731 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
6732 зацикливанию.
6733
6734 *) Исправление: ошибки в модуле /dev/poll.
6735
6736 *) Исправление: при проксировании и использовании временных файлов
6737 ответы портились.
6738
6739 *) Исправление: бэкенду передавались запросы с неперекодированными
6740 символами.
6741
6742 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
6743 обязательно использовать параметр --with-poll_module.
6744
6745
6746 Изменения в nginx 0.1.0 04.10.2004
6747
6748 *) Первая публично доступная версия.
6749