comparison text/ru/CHANGES.ru-1.20 @ 2712:caa04d53b7af

nginx-1.20.0
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 20 Apr 2021 17:49:29 +0300
parents text/ru/CHANGES.ru@f8686d85df53
children a7a36efd10af
comparison
equal deleted inserted replaced
2711:aa837ec44acf 2712:caa04d53b7af
1
2 Изменения в nginx 1.20.0 20.04.2021
3
4 *) Стабильная ветка 1.20.x.
5
6
7 Изменения в nginx 1.19.10 13.04.2021
8
9 *) Изменение: в директиве keepalive_requests значение по умолчанию
10 изменено на 1000.
11
12 *) Добавление: директива keepalive_time.
13
14 *) Добавление: переменная $connection_time.
15
16 *) Изменение: при использовании zlib-ng в логах появлялись сообщения
17 "gzip filter failed to use preallocated memory".
18
19
20 Изменения в nginx 1.19.9 30.03.2021
21
22 *) Исправление: nginx не собирался с почтовым прокси-сервером, но без
23 модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8.
24
25 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
26 "upstream sent response body larger than indicated content length";
27 ошибка появилась в 1.19.1.
28
29 *) Исправление: если клиент закрывал соединение в момент отбрасывания
30 тела запроса, nginx мог не закрыть соединение до истечения
31 keepalive-таймаута.
32
33 *) Исправление: при ожидании задержки limit_req или auth_delay, а также
34 при работе с бэкендами nginx мог не обнаружить, что соединение уже
35 закрыто клиентом.
36
37 *) Исправление: в методе обработки соединений eventport.
38
39
40 Изменения в nginx 1.19.8 09.03.2021
41
42 *) Добавление: в директиве proxy_cookie_flags теперь флаги можно
43 задавать с помощью переменных.
44
45 *) Добавление: параметр proxy_protocol в директиве listen, директивы
46 proxy_protocol и set_real_ip_from в почтовом прокси-сервере.
47
48 *) Исправление: HTTP/2-соединения сразу закрывались при использовании
49 "keepalive_timeout 0"; ошибка появилась в 1.19.7.
50
51 *) Исправление: некоторые ошибки логгировались как неизвестные, если
52 nginx был собран с glibc 2.32.
53
54 *) Исправление: в методе обработки соединений eventport.
55
56
57 Изменения в nginx 1.19.7 16.02.2021
58
59 *) Изменение: обработка соединений в HTTP/2 была изменена и теперь более
60 соответствует HTTP/1.x; директивы http2_recv_timeout,
61 http2_idle_timeout и http2_max_requests упразднены, вместо них
62 следует использовать директивы keepalive_timeout и
63 keepalive_requests.
64
65 *) Изменение: директивы http2_max_field_size и http2_max_header_size
66 упразднены, вместо них следует использовать директиву
67 large_client_header_buffers.
68
69 *) Добавление: теперь при исчерпании свободных соединений nginx
70 закрывает не только keepalive-соединения, но и соединения в lingering
71 close.
72
73 *) Исправление: в логах могли появляться сообщения "zero size buf in
74 output", если бэкенд возвращал некорректный ответ при
75 небуферизированном проксировании; ошибка появилась в 1.19.1.
76
77 *) Исправление: при использовании директивы return вместе с image_filter
78 или xslt_stylesheet HEAD-запросы обрабатывались некорректно.
79
80 *) Исправление: в директиве add_trailer.
81
82
83 Изменения в nginx 1.19.6 15.12.2020
84
85 *) Исправление: ошибки "no live upstreams", если server в блоке upstream
86 был помечен как down.
87
88 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
89 segmentation fault; ошибка появилась в 1.19.5.
90
91 *) Исправление: nginx возвращал ошибку 400 на запросы вида
92 "GET http://example.com?args HTTP/1.0".
93
94 *) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module.
95 Спасибо Chris Newton.
96
97
98 Изменения в nginx 1.19.5 24.11.2020
99
100 *) Добавление: ключ -e.
101
102 *) Добавление: при сборке дополнительных модулей теперь можно указывать
103 одни и те же исходные файлы в разных модулях.
104
105 *) Исправление: SSL shutdown не работал при закрытии соединений с
106 ожиданием дополнительных данных (lingering close).
107
108 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
109 "upstream sent frame for closed stream".
110
111 *) Исправление: во внутреннем API для обработки тела запроса.
112
113
114 Изменения в nginx 1.19.4 27.10.2020
115
116 *) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
117 grpc_ssl_conf_command и uwsgi_ssl_conf_command.
118
119 *) Добавление: директива ssl_reject_handshake.
120
121 *) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере.
122
123
124 Изменения в nginx 1.19.3 29.09.2020
125
126 *) Добавление: модуль ngx_stream_set_module.
127
128 *) Добавление: директива proxy_cookie_flags.
129
130 *) Добавление: директива userid_flags.
131
132 *) Исправление: расширение управления кэшированием stale-if-error
133 ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502,
134 503, 504, 403, 404 или 429.
135
136 *) Исправление: если использовалось кэширование и бэкенд возвращал
137 ответы с строкой заголовка Vary, в логах могли появляться сообщения
138 "[crit] cache file ... has too long header".
139
140 *) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться
141 сообщения "[crit] SSL_write() failed".
142
143 *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
144 failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2.
145
146 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
147 произойти segmentation fault, если ошибки с кодом 400 с помощью
148 директивы error_page перенаправлялись в проксируемый location.
149
150 *) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в
151 модуле njs.
152
153
154 Изменения в nginx 1.19.2 11.08.2020
155
156 *) Изменение: теперь nginx начинает закрывать keepalive-соединения, не
157 дожидаясь исчерпания всех свободных соединений, а также пишет об этом
158 предупреждение в лог ошибок.
159
160 *) Изменение: оптимизация чтения тела запроса при использовании chunked
161 transfer encoding.
162
163 *) Исправление: утечки памяти при использовании директивы ssl_ocsp.
164
165 *) Исправление: в логах могли появляться сообщения "zero size buf in
166 output", если FastCGI-сервер возвращал некорректный ответ; ошибка
167 появилась в 1.19.1.
168
169 *) Исправление: в рабочем процессе мог произойти segmentation fault,
170 если размеры large_client_header_buffers отличались в разных
171 виртуальных серверах.
172
173 *) Исправление: SSL shutdown мог не работать.
174
175 *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
176 failed (SSL: ... bad write retry)".
177
178 *) Исправление: в модуле ngx_http_slice_module.
179
180 *) Исправление: в модуле ngx_http_xslt_filter_module.
181
182
183 Изменения в nginx 1.19.1 07.07.2020
184
185 *) Изменение: директивы lingering_close, lingering_time и
186 lingering_timeout теперь работают при использовании HTTP/2.
187
188 *) Изменение: теперь лишние данные, присланные бэкендом, всегда
189 отбрасываются.
190
191 *) Изменение: теперь при получении слишком короткого ответа от
192 FastCGI-сервера nginx пытается отправить клиенту доступную часть
193 ответа, после чего закрывает соединение с клиентом.
194
195 *) Изменение: теперь при получении ответа некорректной длины от
196 gRPC-бэкенда nginx прекращает обработку ответа с ошибкой.
197
198 *) Добавление: параметр min_free в директивах proxy_cache_path,
199 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
200 Спасибо Adam Bambuch.
201
202 *) Исправление: nginx не удалял unix domain listen-сокеты при плавном
203 завершении по сигналу SIGQUIT.
204
205 *) Исправление: UDP-пакеты нулевого размера не проксировались.
206
207 *) Исправление: проксирование на uwsgi-бэкенды с использованием SSL
208 могло не работать.
209 Спасибо Guanzhong Chen.
210
211 *) Исправление: в обработке ошибок при использовании директивы ssl_ocsp.
212
213 *) Исправление: при использовании файловых систем XFS и NFS размер кэша
214 на диске мог считаться некорректно.
215
216 *) Исправление: если сервер memcached возвращал некорректный ответ, в
217 логах могли появляться сообщения "negative size buf in writer".
218
219
220 Изменения в nginx 1.19.0 26.05.2020
221
222 *) Добавление: проверка клиентских сертификатов с помощью OCSP.
223
224 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
225 "upstream sent frame for closed stream".
226
227 *) Исправление: OCSP stapling мог не работать, если не была указана
228 директива resolver.
229
230 *) Исправление: соединения с некорректным HTTP/2 preface не
231 логгировались.
232
233
234 Изменения в nginx 1.17.10 14.04.2020
235
236 *) Добавление: директива auth_delay.
237
238
239 Изменения в nginx 1.17.9 03.03.2020
240
241 *) Изменение: теперь nginx не разрешает несколько строк "Host" в
242 заголовке запроса.
243
244 *) Исправление: nginx игнорировал дополнительные строки
245 "Transfer-Encoding" в заголовке запроса.
246
247 *) Исправление: утечки сокетов при использовании HTTP/2.
248
249 *) Исправление: в рабочем процессе мог произойти segmentation fault,
250 если использовался OCSP stapling.
251
252 *) Исправление: в модуле ngx_http_mp4_module.
253
254 *) Исправление: при перенаправлении ошибок с кодом 494 с помощью
255 директивы error_page nginx возвращал ответ с кодом 494 вместо 400.
256
257 *) Исправление: утечки сокетов при использовании подзапросов в модуле
258 njs и директивы aio.
259
260
261 Изменения в nginx 1.17.8 21.01.2020
262
263 *) Добавление: директива grpc_pass поддерживает переменные.
264
265 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
266 произойти таймаут; ошибка появилась в 1.17.5.
267
268 *) Исправление: в директиве debug_points при использовании HTTP/2.
269 Спасибо Даниилу Бондареву.
270
271
272 Изменения в nginx 1.17.7 24.12.2019
273
274 *) Исправление: на старте или во время переконфигурации мог произойти
275 segmentation fault, если в конфигурации использовалась директива
276 rewrite с пустой строкой замены.
277
278 *) Исправление: в рабочем процессе мог произойти segmentation fault,
279 если директива break использовалась совместно с директивой alias или
280 директивой proxy_pass с URI.
281
282 *) Исправление: строка Location заголовка ответа могла содержать мусор,
283 если URI запроса был изменён на URI, содержащий нулевой символ.
284
285 *) Исправление: при возврате перенаправлений с помощью директивы
286 error_page запросы с телом обрабатывались некорректно; ошибка
287 появилась в 0.7.12.
288
289 *) Исправление: утечки сокетов при использовании HTTP/2.
290
291 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
292 произойти таймаут; ошибка появилась в 1.17.5.
293
294 *) Исправление: в модуле ngx_http_dav_module.
295
296
297 Изменения в nginx 1.17.6 19.11.2019
298
299 *) Добавление: переменные $proxy_protocol_server_addr и
300 $proxy_protocol_server_port.
301
302 *) Добавление: директива limit_conn_dry_run.
303
304 *) Добавление: переменные $limit_req_status и $limit_conn_status.
305
306
307 Изменения в nginx 1.17.5 22.10.2019
308
309 *) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
310 доступен, чтобы избежать чтения из быстрого соединения в течение
311 долгого времени.
312
313 *) Исправление: неполные закодированные символы в конце URI запроса
314 игнорировались.
315
316 *) Исправление: "/." и "/.." в конце URI запроса не нормализовывались.
317
318 *) Исправление: в директиве merge_slashes.
319
320 *) Исправление: в директиве ignore_invalid_headers.
321 Спасибо Alan Kemp.
322
323 *) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее.
324
325
326 Изменения в nginx 1.17.4 24.09.2019
327
328 *) Изменение: улучшено детектирование некорректного поведения клиентов в
329 HTTP/2.
330
331 *) Изменение: в обработке непрочитанного тела запроса при возврате
332 ошибок в HTTP/2.
333
334 *) Исправление: директива worker_shutdown_timeout могла не работать при
335 использовании HTTP/2.
336
337 *) Исправление: при использовании HTTP/2 и директивы
338 proxy_request_buffering в рабочем процессе мог произойти segmentation
339 fault.
340
341 *) Исправление: на Windows при использовании SSL уровень записи в лог
342 ошибки ECONNABORTED был "crit" вместо "error".
343
344 *) Исправление: nginx игнорировал лишние данные при использовании
345 chunked transfer encoding.
346
347 *) Исправление: если использовалась директива return и при чтении тела
348 запроса возникала ошибка, nginx всегда возвращал ошибку 500.
349
350 *) Исправление: в обработке ошибок выделения памяти.
351
352
353 Изменения в nginx 1.17.3 13.08.2019
354
355 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
356 потребление памяти и ресурсов процессора (CVE-2019-9511,
357 CVE-2019-9513, CVE-2019-9516).
358
359 *) Исправление: при использовании сжатия в логах могли появляться
360 сообщения "zero size buf"; ошибка появилась в 1.17.2.
361
362 *) Исправление: при использовании директивы resolver в SMTP
363 прокси-сервере в рабочем процессе мог произойти segmentation fault.
364
365
366 Изменения в nginx 1.17.2 23.07.2019
367
368 *) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4.
369 Спасибо Илье Леошкевичу.
370
371 *) Изменение: метод $r->internal_redirect() встроенного перла теперь
372 ожидает закодированный URI.
373
374 *) Добавление: теперь с помощью метода $r->internal_redirect()
375 встроенного перла можно перейти в именованный location.
376
377 *) Исправление: в обработке ошибок во встроенном перле.
378
379 *) Исправление: на старте или во время переконфигурации мог произойти
380 segmentation fault, если в конфигурации использовалось значение hash
381 bucket size больше 64 килобайт.
382
383 *) Исправление: при использовании методов обработки соединений select,
384 poll и /dev/poll nginx мог нагружать процессор во время
385 небуферизованного проксирования и при проксировании
386 WebSocket-соединений.
387
388 *) Исправление: в модуле ngx_http_xslt_filter_module.
389
390 *) Исправление: в модуле ngx_http_ssi_filter_module.
391
392
393 Изменения в nginx 1.17.1 25.06.2019
394
395 *) Добавление: директива limit_req_dry_run.
396
397 *) Добавление: при использовании директивы hash в блоке upstream пустой
398 ключ хэширования теперь приводит к переключению на round-robin
399 балансировку.
400 Спасибо Niklas Keller.
401
402 *) Исправление: в рабочем процессе мог произойти segmentation fault,
403 если использовалось кэширование и директива image_filter, а ошибки с
404 кодом 415 перенаправлялись с помощью директивы error_page; ошибка
405 появилась в 1.11.10.
406
407 *) Исправление: в рабочем процессе мог произойти segmentation fault,
408 если использовался встроенный перл; ошибка появилась в 1.7.3.
409
410
411 Изменения в nginx 1.17.0 21.05.2019
412
413 *) Добавление: директивы limit_rate и limit_rate_after поддерживают
414 переменные.
415
416 *) Добавление: директивы proxy_upload_rate и proxy_download_rate в
417 модуле stream поддерживают переменные.
418
419 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8.
420
421 *) Изменение: теперь postpone-фильтр собирается всегда.
422
423 *) Исправление: директива include не работала в блоках if и
424 limit_except.
425
426 *) Исправление: в обработке byte ranges.
427
428
429 Изменения в nginx 1.15.12 16.04.2019
430
431 *) Исправление: в рабочем процессе мог произойти segmentation fault,
432 если в директивах ssl_certificate или ssl_certificate_key
433 использовались переменные и был включён OCSP stapling.
434
435
436 Изменения в nginx 1.15.11 09.04.2019
437
438 *) Исправление: в директиве ssl_stapling_file на Windows.
439
440
441 Изменения в nginx 1.15.10 26.03.2019
442
443 *) Изменение: теперь при использовании имени хоста в директиве listen
444 nginx создаёт listen-сокеты для всех адресов, соответствующих этому
445 имени (ранее использовался только первый адрес).
446
447 *) Добавление: диапазоны портов в директиве listen.
448
449 *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
450 из переменных.
451
452 *) Изменение: переменная $ssl_server_name могла быть пустой при
453 использовании OpenSSL 1.1.1.
454
455 *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
456 ошибка появилась в 1.15.9.
457
458
459 Изменения в nginx 1.15.9 26.02.2019
460
461 *) Добавление: директивы ssl_certificate и ssl_certificate_key
462 поддерживают переменные.
463
464 *) Добавление: метод poll теперь доступен на Windows при использовании
465 Windows Vista и новее.
466
467 *) Исправление: если при использовании метода select на Windows
468 происходила ошибка при установлении соединения с бэкендом, nginx
469 ожидал истечения таймаута на установление соединения.
470
471 *) Исправление: директивы proxy_upload_rate и proxy_download_rate в
472 модуле stream работали некорректно при проксировании UDP-пакетов.
473
474
475 Изменения в nginx 1.15.8 25.12.2018
476
477 *) Добавление: переменная $upstream_bytes_sent.
478 Спасибо Piotr Sikora.
479
480 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
481 Спасибо Геннадию Махомеду.
482
483 *) Исправление: в директиве proxy_cache_background_update.
484
485 *) Исправление: в директиве geo при использовании unix domain
486 listen-сокетов.
487
488 *) Изменение: при использовании директивы ssl_early_data с OpenSSL в
489 логах могли появляться сообщения "ignoring stale global SSL error ...
490 bad length".
491
492 *) Исправление: в nginx/Windows.
493
494 *) Исправление: в модуле ngx_http_autoindex_module на 32-битных
495 платформах.
496
497
498 Изменения в nginx 1.15.7 27.11.2018
499
500 *) Добавление: директива proxy_requests в модуле stream.
501
502 *) Добавление: параметр "delay" директивы "limit_req".
503 Спасибо Владиславу Шабанову и Петру Щучкину.
504
505 *) Исправление: утечки памяти в случае ошибок при переконфигурации.
506
507 *) Исправление: в переменных $upstream_response_time,
508 $upstream_connect_time и $upstream_header_time.
509
510 *) Исправление: в рабочем процессе мог произойти segmentation fault,
511 если использовался модуль ngx_http_mp4_module на 32-битных
512 платформах.
513
514
515 Изменения в nginx 1.15.6 06.11.2018
516
517 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
518 потреблению памяти (CVE-2018-16843) и ресурсов процессора
519 (CVE-2018-16844).
520
521 *) Безопасность: при обработке специально созданного mp4-файла модулем
522 ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
523 отправлено клиенту (CVE-2018-16845).
524
525 *) Добавление: директивы proxy_socket_keepalive,
526 fastcgi_socket_keepalive, grpc_socket_keepalive,
527 memcached_socket_keepalive, scgi_socket_keepalive и
528 uwsgi_socket_keepalive.
529
530 *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
531 OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.
532
533 *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
534 количество памяти.
535
536
537 Изменения в nginx 1.15.5 02.10.2018
538
539 *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
540 процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.
541
542 *) Исправление: незначительных потенциальных ошибок.
543
544
545 Изменения в nginx 1.15.4 25.09.2018
546
547 *) Добавление: теперь директиву ssl_early_data можно использовать с
548 OpenSSL.
549
550 *) Исправление: в модуле ngx_http_uwsgi_module.
551 Спасибо Chris Caputo.
552
553 *) Исправление: соединения к некоторым gRPC-бэкендам могли не
554 кэшироваться при использовании директивы keepalive.
555
556 *) Исправление: при использовании директивы error_page для
557 перенаправления ошибок, возникающих на ранних этапах обработки
558 запроса, в частности ошибок с кодом 400, могла происходить утечка
559 сокетов.
560
561 *) Исправление: директива return при возврате ошибок не изменяла код
562 ответа, если запрос был перенаправлен с помощью директивы error_page.
563
564 *) Исправление: стандартные сообщения об ошибках и ответы модуля
565 ngx_http_autoindex_module содержали атрибут bgcolor, что могло
566 приводить к их некорректному отображению при использовании
567 пользовательских настроек цветов в браузерах.
568 Спасибо Nova DasSarma.
569
570 *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
571 "no suitable signature algorithm" понижен с уровня crit до info.
572
573
574 Изменения в nginx 1.15.3 28.08.2018
575
576 *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.
577
578 *) Добавление: директива ssl_early_data, сейчас доступна при
579 использовании BoringSSL.
580
581 *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
582 upstream.
583
584 *) Исправление: модуль ngx_http_dav_module при копировании файла поверх
585 существующего файла с помощью метода COPY не обнулял целевой файл.
586
587 *) Исправление: модуль ngx_http_dav_module при перемещении файла между
588 файловыми системами с помощью метода MOVE устанавливал нулевые права
589 доступа на результирующий файл и не сохранял время изменения файла.
590
591 *) Исправление: модуль ngx_http_dav_module при копировании файла с
592 помощью метода COPY для результирующего файла использовал права
593 доступа по умолчанию.
594
595 *) Изменение: некоторые клиенты могли не работать при использовании
596 HTTP/2; ошибка появилась в 1.13.5.
597
598 *) Исправление: nginx не собирался с LibreSSL 2.8.0.
599
600
601 Изменения в nginx 1.15.2 24.07.2018
602
603 *) Добавление: переменная $ssl_preread_protocol в модуле
604 ngx_stream_ssl_preread_module.
605
606 *) Добавление: теперь при использовании директивы
607 reset_timedout_connection nginx сбрасывает соединения, закрываемые с
608 кодом 444.
609
610 *) Изменение: уровень логгирования ошибок SSL "http request", "https
611 proxy request", "unsupported protocol" и "version too low" понижен с
612 уровня crit до info.
613
614 *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
615 первой попытке отправки происходила ошибка.
616
617 *) Исправление: параметр reuseport директивы listen игнорировался, если
618 количество рабочих процессов было задано после директивы listen.
619
620 *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
621 ssl_prefer_server_ciphers нельзя было выключить в виртуальном
622 сервере, если она была включена в сервере по умолчанию.
623
624 *) Исправление: повторное использование SSL-сессий к бэкендам не
625 работало с протоколом TLS 1.3.
626
627
628 Изменения в nginx 1.15.1 03.07.2018
629
630 *) Добавление: директива random в блоке upstream.
631
632 *) Добавление: улучшена производительность при использовании директив
633 hash и ip_hash совместно с директивой zone.
634
635 *) Добавление: параметр reuseport директивы listen теперь использует
636 SO_REUSEPORT_LB на FreeBSD 12.
637
638 *) Исправление: HTTP/2 server push не работал, если SSL терминировался
639 прокси-сервером перед nginx'ом.
640
641 *) Исправление: директива tcp_nopush всегда использовалась для
642 соединений к бэкендам.
643
644 *) Исправление: при отправке сохранённого на диск тела запроса на
645 gRPC-бэкенд могли возникать ошибки.
646
647
648 Изменения в nginx 1.15.0 05.06.2018
649
650 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
651 следует использовать параметр ssl директивы listen.
652
653 *) Изменение: теперь при использовании директивы listen с параметром ssl
654 nginx определяет отсутствие SSL-сертификатов при тестировании
655 конфигурации.
656
657 *) Добавление: теперь модуль stream умеет обрабатывать несколько
658 входящих UDP-пакетов от клиента в рамках одной сессии.
659
660 *) Исправление: в директиве proxy_cache_valid можно было указать
661 некорректный код ответа.
662
663 *) Исправление: nginx не собирался gcc 8.1.
664
665 *) Исправление: логгирование в syslog останавливалось при изменении
666 локального IP-адреса.
667
668 *) Исправление: nginx не собирался компилятором clang, если был
669 установлен CUDA SDK; ошибка появилась в 1.13.8.
670
671 *) Исправление: при использовании unix domain listen-сокетов на FreeBSD
672 в процессе обновления исполняемого файла в логе могли появляться
673 сообщения "getsockopt(TCP_FASTOPEN) ... failed".
674
675 *) Исправление: nginx не собирался на Fedora 28 Linux.
676
677 *) Исправление: при использовании директивы limit_req заданная скорость
678 обработки запросов могла не соблюдаться.
679
680 *) Исправление: в обработке адресов клиентов при использовании unix
681 domain listen-сокетов для работы с датаграммами на Linux.
682
683 *) Исправление: в обработке ошибок выделения памяти.
684
685
686 Изменения в nginx 1.13.12 10.04.2018
687
688 *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
689 могли неожиданно закрываться.
690
691
692 Изменения в nginx 1.13.11 03.04.2018
693
694 *) Добавление: параметр proxy_protocol директивы listen теперь
695 поддерживает протокол PROXY версии 2.
696
697 *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.
698
699 *) Исправление: в параметрах http_404, http_500 и им подобных директивы
700 proxy_next_upstream.
701
702
703 Изменения в nginx 1.13.10 20.03.2018
704
705 *) Добавление: теперь параметр set в SSI-директиве include позволяет
706 сохранять в переменную любые ответы; максимальный размер ответа
707 задаётся директивой subrequest_output_buffer_size.
708
709 *) Добавление: теперь nginx использует вызов
710 clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
711 избежать некорректного срабатывания таймаутов при изменениях
712 системного времени.
713
714 *) Добавление: параметр "escape=none" директивы log_format.
715 Спасибо Johannes Baiter и Calin Don.
716
717 *) Добавление: переменная $ssl_preread_alpn_protocols в модуле
718 ngx_stream_ssl_preread_module.
719
720 *) Добавление: модуль ngx_http_grpc_module.
721
722 *) Исправление: в обработке ошибок выделения памяти в директиве geo.
723
724 *) Исправление: при использовании переменных в директиве
725 auth_basic_user_file в лог мог выводиться символ '\0'.
726 Спасибо Вадиму Филимонову.
727
728
729 Изменения в nginx 1.13.9 20.02.2018
730
731 *) Добавление: поддержка HTTP/2 server push; директивы http2_push и
732 http2_push_preload.
733
734 *) Исправление: при использовании кэша в логах могли появляться
735 сообщения "header already sent"; ошибка появилась в 1.9.13.
736
737 *) Исправление: при использовании директивы ssl_verify_client в рабочем
738 процессе мог произойти segmentation fault, если в виртуальном сервере
739 не был указан SSL-сертификат.
740
741 *) Исправление: в модуле ngx_http_v2_module.
742
743 *) Исправление: в модуле ngx_http_dav_module.
744
745
746 Изменения в nginx 1.13.8 26.12.2017
747
748 *) Добавление: теперь при использовании параметра transparent директив
749 proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
750 nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
751 процессах.
752
753 *) Добавление: улучшения в определении размера строки кэша процессора.
754 Спасибо Debayan Ghosh.
755
756 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
757 Спасибо Геннадию Махомеду.
758
759 *) Исправление: процедура обновления исполняемого файла не работала,
760 если после завершения родительского процесса новым родительским
761 процессом nginx'а становился процесс с PID, отличным от 1.
762
763 *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
764 запросы с телом.
765
766 *) Исправление: в директиве proxy_limit_rate при использовании с
767 директивой keepalive.
768
769 *) Исправление: при использовании "proxy_buffering off" часть ответа
770 могла буферизироваться, если клиентское соединение использовало SSL.
771 Спасибо Patryk Lesiewicz.
772
773 *) Исправление: в директиве proxy_cache_background_update.
774
775 *) Исправление: переменную вида "${name}" с именем в фигурных скобках
776 нельзя было использовать в начале параметра не заключив весь параметр
777 в кавычки.
778
779
780 Изменения в nginx 1.13.7 21.11.2017
781
782 *) Исправление: в переменной $upstream_status.
783
784 *) Исправление: в рабочем процессе мог произойти segmentation fault,
785 если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
786
787 *) Исправление: если при переконфигурации изменялся размер зоны
788 разделяемой памяти и переконфигурация завершалась неудачно, то в
789 главном процессе происходил segmentation fault.
790
791 *) Исправление: в модуле ngx_http_fastcgi_module.
792
793 *) Исправление: nginx возвращал ошибку 500, если в директиве
794 xslt_stylesheet были заданы параметры без использования переменных.
795
796 *) Изменение: при использовании варианта библиотеки zlib от Intel в лог
797 писались сообщения "gzip filter failed to use preallocated memory".
798
799 *) Исправление: директива worker_shutdown_timeout не работала при
800 использовании почтового прокси-сервера и при проксировании
801 WebSocket-соединений.
802
803
804 Изменения в nginx 1.13.6 10.10.2017
805
806 *) Исправление: при использовании директивы ssl_preread в модуле stream
807 не работало переключение на следующий бэкенд.
808
809 *) Исправление: в модуле ngx_http_v2_module.
810 Спасибо Piotr Sikora.
811
812 *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
813 платформах с 64-битным time_t.
814
815 *) Исправление: в обработке дат до 1970 года и после 10000 года.
816
817 *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
818 бэкендов не логгировались или логгировались на уровне info вместо
819 error.
820
821 *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
822 не указав в логе причину.
823
824 *) Исправление: в обработке повреждённых файлов кэша.
825
826 *) Исправление: при кэшировании ошибок, перехваченных error_page, не
827 учитывались заголовки управления кэшированием.
828
829 *) Исправление: при использовании HTTP/2 тело запроса могло быть
830 повреждено.
831
832 *) Исправление: в обработке адресов клиентов при использовании unix
833 domain сокетов.
834
835 *) Исправление: при использовании директивы "hash ... consistent" в
836 блоке upstream nginx нагружал процессор, если использовались большие
837 веса и все или почти все бэкенды были недоступны.
838
839
840 Изменения в nginx 1.13.5 05.09.2017
841
842 *) Добавление: переменная $ssl_client_escaped_cert.
843
844 *) Исправление: директива ssl_session_ticket_key и параметр include
845 директивы geo не работали на Windows.
846
847 *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
848 помощью нескольких диапазонов возвращалась некорректная длина ответа.
849
850 *) Исправление: директива "expires modified" и обработка строки If-Range
851 заголовка запроса не учитывали время последнего изменения ответа,
852 если использовалось проксирование без кэширования.
853
854
855 Изменения в nginx 1.13.4 08.08.2017
856
857 *) Добавление: модуль ngx_http_mirror_module.
858
859 *) Исправление: клиентские соединения могли сбрасываться при
860 тестировании конфигурации, если использовался параметр reuseport
861 директивы listen на Linux.
862
863 *) Исправление: тело запроса могло быть недоступно в подзапросах, если
864 оно было сохранено в файл и использовалось проксирование.
865
866 *) Исправление: очистка кэша по max_size не работала на Windows.
867
868 *) Исправление: любое выделение разделяемой памяти на Windows требовало
869 4096 байт памяти.
870
871 *) Исправление: при использовании директивы zone в блоке upstream на
872 Windows рабочий процесс мог завершаться аварийно.
873
874
875 Изменения в nginx 1.13.3 11.07.2017
876
877 *) Безопасность: специально созданный запрос мог вызвать целочисленное
878 переполнение в range-фильтре и последующую некорректную обработку
879 запрошенных диапазонов, что потенциально могло привести к утечке
880 конфиденциальной информации (CVE-2017-7529).
881
882
883 Изменения в nginx 1.13.2 27.06.2017
884
885 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из
886 пустого файла nginx возвращает ответ 200 вместо 416.
887
888 *) Добавление: директива add_trailer.
889 Спасибо Piotr Sikora.
890
891 *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
892 в 1.13.0.
893
894 *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
895 Спасибо Orgad Shaneh.
896
897 *) Исправление: при использовании SSI с большим количеством подзапросов
898 и proxy_pass с переменными в рабочем процессе мог произойти
899 segmentation fault.
900
901 *) Исправление: в модуле ngx_http_v2_module.
902 Спасибо Piotr Sikora.
903
904
905 Изменения в nginx 1.13.1 30.05.2017
906
907 *) Добавление: теперь в качестве параметра директивы set_real_ip_from
908 можно указывать имя хоста.
909
910 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
911
912 *) Добавление: директива worker_cpu_affinity теперь работает на
913 DragonFly BSD.
914 Спасибо Sepherosa Ziehau.
915
916 *) Исправление: SSL renegotiation в соединениях к бэкендам не работал
917 при использовании OpenSSL до 1.1.0.
918
919 *) Изменение: nginx не собирался с Oracle Developer Studio 12.5.
920
921 *) Изменение: теперь cache manager пропускает заблокированные записи при
922 очистке кэша по max_size.
923
924 *) Исправление: клиентские SSL-соединения сразу закрывались, если
925 использовался отложенный accept и параметр proxy_protocol директивы
926 listen.
927
928 *) Исправление: в директиве proxy_cache_background_update.
929
930 *) Изменение: теперь директива tcp_nodelay устанавливает опцию
931 TCP_NODELAY перед SSL handshake.
932
933
934 Изменения в nginx 1.13.0 25.04.2017
935
936 *) Изменение: теперь SSL renegotiation допускается в соединениях к
937 бэкендам.
938
939 *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
940 прокси-сервере и модуле stream.
941
942 *) Добавление: директивы return и error_page теперь могут использоваться
943 для возврата перенаправлений с кодом 308.
944 Спасибо Simon Leblanc.
945
946 *) Добавление: параметр TLSv1.3 в директиве ssl_protocols.
947
948 *) Добавление: при логгировании сигналов теперь указывается PID
949 отправившего сигнал процесса.
950
951 *) Исправление: в обработке ошибок выделения памяти.
952
953 *) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
954 исходящий адрес ответного UDP-пакета мог отличаться от адреса
955 назначения исходного пакета.
956
957
958 Изменения в nginx 1.11.13 04.04.2017
959
960 *) Добавление: параметр http_429 в директивах proxy_next_upstream,
961 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
962 Спасибо Piotr Sikora.
963
964 *) Исправление: в обработке ошибок выделения памяти.
965
966 *) Исправление: при использовании директив sendfile и timer_resolution
967 на Linux запросы могли зависать.
968
969 *) Исправление: при использовании с подзапросами директив sendfile и
970 aio_write запросы могли зависать.
971
972 *) Исправление: в модуле ngx_http_v2_module.
973 Спасибо Piotr Sikora.
974
975 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
976 произойти segmentation fault.
977
978 *) Исправление: запросы могли зависать при использовании с подзапросами
979 директив limit_rate, sendfile_max_chunk, limit_req или метода
980 $r->sleep() встроенного перла.
981
982 *) Исправление: в модуле ngx_http_slice_module.
983
984
985 Изменения в nginx 1.11.12 24.03.2017
986
987 *) Исправление: nginx мог нагружать процессор; ошибка появилась в
988 1.11.11.
989
990
991 Изменения в nginx 1.11.11 21.03.2017
992
993 *) Добавление: директива worker_shutdown_timeout.
994
995 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
996 Спасибо Wei-Ko Kao.
997
998 *) Исправление: при попытке установить переменную $limit_rate в пустую
999 строку в рабочем процессе мог произойти segmentation fault.
1000
1001 *) Исправление: директивы proxy_cache_background_update,
1002 fastcgi_cache_background_update, scgi_cache_background_update и
1003 uwsgi_cache_background_update могли работать некорректно, если
1004 использовалась директива if.
1005
1006 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1007 если количество large_client_header_buffers в виртуальном сервере
1008 отличалось от такового в сервере по умолчанию.
1009
1010 *) Исправление: в почтовом прокси-сервере.
1011
1012
1013 Изменения в nginx 1.11.10 14.02.2017
1014
1015 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные
1016 ответы будут загружены заново.
1017
1018 *) Добавление: поддержка расширений stale-while-revalidate и
1019 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда.
1020
1021 *) Добавление: директивы proxy_cache_background_update,
1022 fastcgi_cache_background_update, scgi_cache_background_update и
1023 uwsgi_cache_background_update.
1024
1025 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary
1026 заголовка длиной до 128 символов (вместо 42 символов в предыдущих
1027 версиях).
1028
1029 *) Добавление: параметр build директивы server_tokens.
1030 Спасибо Tom Thorogood.
1031
1032 *) Исправление: при обработке запросов со строкой "Expect: 100-continue"
1033 в заголовке запроса в логах могли появляться сообщения "[crit]
1034 SSL_write() failed".
1035
1036 *) Исправление: модуль ngx_http_slice_module не работал в именованных
1037 location'ах.
1038
1039 *) Исправление: при использовании AIO после перенаправления запроса с
1040 помощью X-Accel-Redirect в рабочем процессе мог произойти
1041 segmentation fault.
1042
1043 *) Исправление: уменьшено потребление памяти для долгоживущих запросов,
1044 использующих сжатие.
1045
1046
1047 Изменения в nginx 1.11.9 24.01.2017
1048
1049 *) Исправление: при использовании модуля stream nginx мог нагружать
1050 процессор; ошибка появилась в 1.11.5.
1051
1052 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере
1053 можно было использовать, даже если он не был разрешён в конфигурации.
1054
1055 *) Исправление: при использовании директивы ssl_verify_client модуля
1056 stream в рабочем процессе мог произойти segmentation fault.
1057
1058 *) Исправление: директива ssl_verify_client модуля stream могла не
1059 работать.
1060
1061 *) Исправление: при исчерпании рабочим процессом свободных соединений
1062 keepalive-соединения могли закрываться излишне агрессивно.
1063 Спасибо Joel Cunningham.
1064
1065 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS
1066 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8.
1067
1068 *) Исправление: при использовании директивы aio_write ответ мог
1069 сохраняться в кэш не полностью.
1070
1071 *) Исправление: при использовании директивы aio_write могла происходить
1072 утечка сокетов.
1073
1074
1075 Изменения в nginx 1.11.8 27.12.2016
1076
1077 *) Добавление: директива absolute_redirect.
1078
1079 *) Добавление: параметр escape директивы log_format.
1080
1081 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream.
1082
1083 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование
1084 TLS session tickets с помощью AES256 при использовании с 80-байтными
1085 ключами.
1086
1087 *) Добавление: поддержка vim-commentary в скриптах для vim.
1088 Спасибо Armin Grodon.
1089
1090 *) Исправление: рекурсия при получении значений переменных не
1091 ограничивалась.
1092
1093 *) Исправление: в модуле ngx_stream_ssl_preread_module.
1094
1095 *) Исправление: если сервер, описанный в блоке upstream в модуле stream,
1096 был признан неработающим, то после истечения fail_timeout он
1097 признавался работающим только после завершения тестового соединения;
1098 теперь достаточно, чтобы соединение было успешно установлено.
1099
1100 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio.
1101
1102 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0.
1103
1104
1105 Изменения в nginx 1.11.7 13.12.2016
1106
1107 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки
1108 проверки клиентского сертификата содержит строку с описанием ошибки,
1109 например, "FAILED:certificate has expired".
1110
1111 *) Добавление: переменные $ssl_ciphers, $ssl_curves,
1112 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
1113
1114 *) Добавление: параметр volatile директивы map.
1115
1116 *) Исправление: при сборке динамических модулей не учитывались заданные
1117 для модуля зависимости.
1118
1119 *) Исправление: при использовании HTTP/2 и директив limit_req или
1120 auth_request тело запроса могло быть повреждено; ошибка появилась в
1121 1.11.0.
1122
1123 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1124 произойти segmentation fault; ошибка появилась в 1.11.3.
1125
1126 *) Исправление: в модуле ngx_http_mp4_module.
1127 Спасибо Congcong Hu.
1128
1129 *) Исправление: в модуле ngx_http_perl_module.
1130
1131
1132 Изменения в nginx 1.11.6 15.11.2016
1133
1134 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn
1135 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом
1136 формате доступны через переменные $ssl_client_s_dn_legacy и
1137 $ssl_client_i_dn_legacy.
1138
1139 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь
1140 располагаются не в отдельном подкаталоге для временных файлов, а в
1141 том же подкаталоге, что и соответствующие файлы в кэше.
1142
1143 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом
1144 прокси-сервере.
1145 Спасибо Robert Norris.
1146
1147 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module.
1148
1149 *) Добавление: директива proxy_method поддерживает переменные.
1150 Спасибо Дмитрию Лазуркину.
1151
1152 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module.
1153
1154 *) Добавление: директивы proxy_cache_max_range_offset,
1155 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и
1156 uwsgi_cache_max_range_offset.
1157
1158 *) Исправление: плавное завершение старых рабочих процессов могло
1159 занимать бесконечное время при использовании HTTP/2.
1160
1161 *) Исправление: в модуле ngx_http_mp4_module.
1162
1163 *) Исправление: при проксировании WebSocket-соединений и включённом
1164 кэшировании в логах могли появляться сообщения "ignore long locked
1165 inactive cache entry".
1166
1167 *) Исправление: если во время SSL handshake с бэкендом происходил
1168 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502
1169 вместо 504.
1170
1171
1172 Изменения в nginx 1.11.5 11.10.2016
1173
1174 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6
1175 теперь собирается автоматически.
1176
1177 *) Изменение: теперь, если в блоке upstream не оказалось доступных
1178 серверов, nginx не сбрасывает статистику ошибок всех серверов, как
1179 делал ранее, а ожидает истечения fail_timeout.
1180
1181 *) Добавление: модуль ngx_stream_ssl_preread_module.
1182
1183 *) Добавление: директива server в блоке upstream поддерживает параметр
1184 max_conns.
1185
1186 *) Добавление: параметр configure --with-compat.
1187
1188 *) Добавление: параметры manager_files, manager_threshold и
1189 manager_sleep директив proxy_cache_path, fastcgi_cache_path,
1190 scgi_cache_path и uwsgi_cache_path.
1191
1192 *) Исправление: при сборке perl-модуля не использовались флаги, заданные
1193 с помощью параметра configure --with-ld-opt.
1194
1195 *) Исправление: в директиве add_after_body при использовании совместно с
1196 директивой sub_filter.
1197
1198 *) Исправление: в переменной $realip_remote_addr.
1199
1200 *) Исправление: директивы dav_access, proxy_store_access,
1201 fastcgi_store_access, scgi_store_access и uwsgi_store_access
1202 игнорировали права, заданные для пользователя.
1203
1204 *) Исправление: unix domain listen-сокеты могли не наследоваться при
1205 обновлении исполняемого файла на Linux.
1206
1207 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в
1208 HTTP-методе.
1209
1210
1211 Изменения в nginx 1.11.4 13.09.2016
1212
1213 *) Добавление: переменная $upstream_bytes_received.
1214
1215 *) Добавление: переменные $bytes_received, $session_time, $protocol,
1216 $status, $upstream_addr, $upstream_bytes_sent,
1217 $upstream_bytes_received, $upstream_connect_time,
1218 $upstream_first_byte_time и $upstream_session_time в модуле stream.
1219
1220 *) Добавление: модуль ngx_stream_log_module.
1221
1222 *) Добавление: параметр proxy_protocol в директиве listen, переменные
1223 $proxy_protocol_addr и $proxy_protocol_port в модуле stream.
1224
1225 *) Добавление: модуль ngx_stream_realip_module.
1226
1227 *) Исправление: nginx не собирался с модулем stream и модулем
1228 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка
1229 появилась в 1.11.3.
1230
1231 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
1232 ошибка появилась в 1.11.2.
1233
1234 *) Исправление: в параметре ranges директивы geo.
1235
1236 *) Исправление: при использовании директив "aio threads" и sendfile мог
1237 возвращаться некорректный ответ; ошибка появилась в 1.9.13.
1238
1239
1240 Изменения в nginx 1.11.3 26.07.2016
1241
1242 *) Изменение: теперь accept_mutex по умолчанию выключен.
1243
1244 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux.
1245
1246 *) Добавление: модуль ngx_stream_geo_module.
1247
1248 *) Добавление: модуль ngx_stream_geoip_module.
1249
1250 *) Добавление: модуль ngx_stream_split_clients_module.
1251
1252 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream
1253 поддерживают переменные.
1254
1255 *) Исправление: утечки сокетов при использовании HTTP/2.
1256
1257 *) Исправление: в configure.
1258 Спасибо Piotr Sikora.
1259
1260
1261 Изменения в nginx 1.11.2 05.07.2016
1262
1263 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и
1264 SHA1; параметры configure --with-md5 и --with-sha1 упразднены.
1265
1266 *) Добавление: поддержка переменных в модуле stream.
1267
1268 *) Добавление: модуль ngx_stream_map_module.
1269
1270 *) Добавление: модуль ngx_stream_return_module.
1271
1272 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind,
1273 scgi_bind и uwsgi_bind теперь можно указывать порт.
1274
1275 *) Добавление: теперь nginx использует опцию сокета
1276 IP_BIND_ADDRESS_NO_PORT, если она доступна.
1277
1278 *) Исправление: при использовании HTTP/2 и директивы
1279 proxy_request_buffering в рабочем процессе мог произойти segmentation
1280 fault.
1281
1282 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на
1283 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
1284 если у запроса не было тела.
1285
1286 *) Исправление: при использовании HTTP/2 в логах могли появляться
1287 сообщения "http request count is zero".
1288
1289 *) Исправление: при использовании директивы sub_filter могло
1290 буферизироваться больше данных, чем это необходимо; проблема
1291 появилась в 1.9.4.
1292
1293
1294 Изменения в nginx 1.11.1 31.05.2016
1295
1296 *) Безопасность: при записи тела специально созданного запроса во
1297 временный файл в рабочем процессе мог происходить segmentation fault
1298 (CVE-2016-4450); ошибка появилась в 1.3.9.
1299
1300
1301 Изменения в nginx 1.11.0 24.05.2016
1302
1303 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind,
1304 memcached_bind, scgi_bind и uwsgi_bind.
1305
1306 *) Добавление: переменная $request_id.
1307
1308 *) Добавление: директива map поддерживает комбинации нескольких
1309 переменных в качестве результирующих значений.
1310
1311 *) Добавление: теперь при использовании метода epoll nginx проверяет,
1312 поддерживает ли ядро события EPOLLRDHUP, и соответственно
1313 оптимизирует обработку соединений.
1314
1315 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь
1316 можно указывать несколько раз для загрузки сертификатов разных типов
1317 (например, RSA и ECDSA).
1318
1319 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью
1320 директивы ssl_ecdh_curve теперь можно задать список кривых; по
1321 умолчанию используется встроенный в OpenSSL список кривых.
1322
1323 *) Изменение: для использования DHE-шифров теперь надо явно задавать
1324 файл параметров с помощью директивы ssl_dhparam.
1325
1326 *) Добавление: переменная $proxy_protocol_port.
1327
1328 *) Добавление: переменная $realip_remote_port в модуле
1329 ngx_http_realip_module.
1330
1331 *) Добавление: модуль ngx_http_realip_module теперь позволяет
1332 устанавливать не только адрес, но и порт клиента.
1333
1334 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от
1335 согласованного в процессе SSL handshake, теперь возвращается ответ
1336 "421 Misdirected Request"; это улучшает совместимость с некоторыми
1337 HTTP/2-клиентами в случае использования клиентских сертификатов.
1338
1339 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
1340 директива http2_body_preread_size позволяет указать размер буфера,
1341 который будет использоваться до того, как nginx начнёт читать тело.
1342
1343 *) Исправление: при использовании директивы proxy_cache_bypass не
1344 обновлялись закэшированные ошибочные ответы.
1345
1346
1347 Изменения в nginx 1.9.15 19.04.2016
1348
1349 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли
1350 возникать ошибки "recv() failed".
1351
1352 *) Исправление: при использовании HTTP/2 и директив limit_req или
1353 auth_request при чтении тела запроса мог произойти таймаут или ошибка
1354 "client violated flow control"; ошибка появилась в 1.9.14.
1355
1356 *) Изменение: при использовании HTTP/2 ответ мог не показываться
1357 некоторыми браузерами, если тело запроса было прочитано не целиком;
1358 ошибка появилась в 1.9.14.
1359
1360 *) Исправление: при использовании директивы "aio threads" соединения
1361 могли зависать.
1362 Спасибо Mindaugas Rasiukevicius.
1363
1364
1365 Изменения в nginx 1.9.14 05.04.2016
1366
1367 *) Добавление: совместимость с OpenSSL 1.1.0.
1368
1369 *) Добавление: директивы proxy_request_buffering,
1370 fastcgi_request_buffering, scgi_request_buffering и
1371 uwsgi_request_buffering теперь работают при использовании HTTP/2.
1372
1373 *) Исправление: при использовании HTTP/2 в логах могли появляться
1374 сообщения "zero size buf in output".
1375
1376 *) Исправление: при использовании HTTP/2 директива client_max_body_size
1377 могла работать неверно.
1378
1379 *) Исправление: незначительных ошибок логгирования.
1380
1381
1382 Изменения в nginx 1.9.13 29.03.2016
1383
1384 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по
1385 умолчанию не передаются на другой сервер, если запрос уже был
1386 отправлен на бэкенд; параметр non_idempotent директивы
1387 proxy_next_upstream явно разрешает повторять такие запросы.
1388
1389 *) Добавление: модуль ngx_http_perl_module теперь можно собрать
1390 динамически.
1391
1392 *) Добавление: поддержка UDP в модуле stream.
1393
1394 *) Добавление: директива aio_write.
1395
1396 *) Добавление: теперь cache manager следит за количеством элементов в
1397 кэше и старается не допускать переполнений зоны разделяемой памяти.
1398
1399 *) Исправление: при использовании директив sendfile и aio с подзапросами
1400 в логах могли появляться сообщения "task already active" и "second
1401 aio post".
1402
1403 *) Исправление: при использовании кэширования в логах могли появляться
1404 сообщения "zero size buf in output", если клиент закрывал соединение
1405 преждевременно.
1406
1407 *) Исправление: при использовании кэширования соединения с клиентами
1408 могли закрываться без необходимости.
1409 Спасибо Justin Li.
1410
1411 *) Исправление: nginx мог нагружать процессор при использовании
1412 директивы sendfile на Linux и Solaris, если отправляемый файл был
1413 изменён в процессе отправки.
1414
1415 *) Исправление: при использовании директив sendfile и "aio threads"
1416 соединения могли зависать.
1417
1418 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и
1419 uwsgi_pass при использовании переменных.
1420 Спасибо Piotr Sikora.
1421
1422 *) Исправление: в модуле ngx_http_sub_filter_module.
1423
1424 *) Исправление: если в закэшированном соединении к бэкенду происходила
1425 ошибка, запрос передавался на другой сервер без учёта директивы
1426 proxy_next_upstream.
1427
1428 *) Исправление: ошибки "CreateFile() failed" при создании временных
1429 файлов на Windows.
1430
1431
1432 Изменения в nginx 1.9.12 24.02.2016
1433
1434 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2.
1435 Спасибо Владу Краснову.
1436
1437 *) Добавление: директива worker_cpu_affinity теперь поддерживает более
1438 64 процессоров.
1439
1440 *) Исправление: совместимость со сторонними модулями на C++; ошибка
1441 появилась в 1.9.11.
1442 Спасибо Piotr Sikora.
1443
1444 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка
1445 появилась в 1.9.11.
1446
1447 *) Исправление: директива "add_header ... always" с пустым значением не
1448 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag.
1449
1450 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться
1451 сообщения "called a function you should not call" и "shutdown while
1452 in init".
1453
1454 *) Исправление: ошибочные заголовки могли логгироваться некорректно.
1455
1456 *) Исправление: утечки сокетов при использовании HTTP/2.
1457
1458 *) Исправление: в модуле ngx_http_v2_module.
1459
1460
1461 Изменения в nginx 1.9.11 09.02.2016
1462
1463 *) Добавление: теперь resolver поддерживает TCP.
1464
1465 *) Добавление: динамические модули.
1466
1467 *) Исправление: при использовании HTTP/2 переменная $request_length не
1468 учитывала размер заголовков запроса.
1469
1470 *) Исправление: в модуле ngx_http_v2_module.
1471
1472
1473 Изменения в nginx 1.9.10 26.01.2016
1474
1475 *) Безопасность: при использовании директивы resolver во время обработки
1476 ответов DNS-сервера могло происходить разыменование некорректного
1477 адреса, что позволяло атакующему, имеющему возможность подделывать
1478 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
1479 процессе (CVE-2016-0742).
1480
1481 *) Безопасность: при использовании директивы resolver во время обработки
1482 CNAME-записей могло произойти обращение к ранее освобождённой памяти,
1483 что позволяло атакующему, имеющему возможность инициировать
1484 преобразование произвольных имён в адреса, вызвать segmentation fault
1485 в рабочем процессе, а также потенциально могло иметь другие
1486 последствия (CVE-2016-0746).
1487
1488 *) Безопасность: при использовании директивы resolver во время обработки
1489 CNAME-записей не во всех случаях проверялось ограничение на
1490 максимальное количество записей в цепочке, что позволяло атакующему,
1491 имеющему возможность инициировать преобразование произвольных имён в
1492 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
1493 (CVE-2016-0747).
1494
1495 *) Добавление: параметр auto директивы worker_cpu_affinity.
1496
1497 *) Исправление: параметр proxy_protocol директивы listen не работал с
1498 IPv6 listen-сокетами.
1499
1500 *) Исправление: при использовании директивы keepalive соединения к
1501 бэкендам могли кэшироваться некорректно.
1502
1503 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
1504 при проксировании использовался HTTP-метод оригинального запроса.
1505
1506
1507 Изменения в nginx 1.9.9 09.12.2015
1508
1509 *) Исправление: проксирование в unix domain сокеты не работало при
1510 использовании переменных; ошибка появилась в 1.9.8.
1511
1512
1513 Изменения в nginx 1.9.8 08.12.2015
1514
1515 *) Добавление: поддержка pwritev().
1516
1517 *) Добавление: директива include в блоке upstream.
1518
1519 *) Добавление: модуль ngx_http_slice_module.
1520
1521 *) Исправление: при использовании LibreSSL в рабочем процессе мог
1522 произойти segmentation fault; ошибка появилась в 1.9.6.
1523
1524 *) Исправление: nginx мог не собираться на OS X.
1525
1526
1527 Изменения в nginx 1.9.7 17.11.2015
1528
1529 *) Добавление: параметр nohostname логгирования в syslog.
1530
1531 *) Добавление: директива proxy_cache_convert_head.
1532
1533 *) Добавление: переменная $realip_remote_addr в модуле
1534 ngx_http_realip_module.
1535
1536 *) Исправление: директива expires могла не срабатывать при использовании
1537 переменных.
1538
1539 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1540 произойти segmentation fault; ошибка появилась в 1.9.6.
1541
1542 *) Исправление: если nginx был собран с модулем ngx_http_v2_module,
1543 протокол HTTP/2 мог быть использован клиентом, даже если не был
1544 указан параметр http2 директивы listen.
1545
1546 *) Исправление: в модуле ngx_http_v2_module.
1547
1548
1549 Изменения в nginx 1.9.6 27.10.2015
1550
1551 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1552 произойти segmentation fault.
1553 Спасибо Piotr Sikora и Denis Andzakovic.
1554
1555 *) Исправление: при использовании HTTP/2 переменная $server_protocol
1556 была пустой.
1557
1558 *) Исправление: SSL-соединения к бэкендам в модуле stream могли
1559 неожиданно завершаться по таймауту.
1560
1561 *) Исправление: при использовании различных настроек ssl_session_cache в
1562 разных виртуальных серверах в рабочем процессе мог произойти
1563 segmentation fault.
1564
1565 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась
1566 в 1.9.4.
1567 Спасибо Kouhei Sutou.
1568
1569 *) Исправление: при использовании директивы timer_resolution на Windows
1570 время не обновлялось.
1571
1572 *) Незначительные исправления и улучшения.
1573 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
1574
1575
1576 Изменения в nginx 1.9.5 22.09.2015
1577
1578 *) Добавление: модуль ngx_http_v2_module (заменяет модуль
1579 ngx_http_spdy_module).
1580 Спасибо Dropbox и Automattic за спонсирование разработки.
1581
1582 *) Изменение: теперь по умолчанию директива output_buffers использует
1583 два буфера.
1584
1585 *) Изменение: теперь nginx ограничивает максимальную вложенность
1586 подзапросов, а не количество одновременных подзапросов.
1587
1588 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ
1589 полностью.
1590 Спасибо Геннадию Махомеду и Сергею Брестеру.
1591
1592 *) Исправление: при использовании кэша в логах могли появляться
1593 сообщения "header already sent"; ошибка появилась в 1.7.5.
1594
1595 *) Исправление: при использовании CephFS и директивы timer_resolution на
1596 Linux в логах могли появляться сообщения "writev() failed (4:
1597 Interrupted system call)".
1598
1599 *) Исправление: в обработке ошибок конфигурации.
1600 Спасибо Markus Linnala.
1601
1602 *) Исправление: при использовании директивы sub_filter на уровне http в
1603 рабочем процессе происходил segmentation fault; ошибка появилась в
1604 1.9.4.
1605
1606
1607 Изменения в nginx 1.9.4 18.08.2015
1608
1609 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer
1610 в модуле stream заменены директивой proxy_buffer_size.
1611
1612 *) Добавление: директива tcp_nodelay в модуле stream.
1613
1614 *) Добавление: теперь можно указать несколько директив sub_filter
1615 одновременно.
1616
1617 *) Добавление: директива sub_filter поддерживает переменные в строке
1618 поиска.
1619
1620 *) Изменение: тестирование конфигурации могло не работать под Linux
1621 OpenVZ.
1622 Спасибо Геннадию Махомеду.
1623
1624 *) Исправление: после переконфигурации старые рабочие процессы могли
1625 сильно нагружать процессор при больших значениях worker_connections.
1626
1627 *) Исправление: при совместном использовании директив try_files и alias
1628 внутри location'а, заданного регулярным выражением, в рабочем
1629 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
1630
1631 *) Исправление: директива try_files внутри вложенного location'а,
1632 заданного регулярным выражением, работала неправильно, если во
1633 внешнем location'е использовалась директива alias.
1634
1635 *) Исправление: в обработке ошибок при построении хэш-таблиц.
1636
1637 *) Исправление: nginx не собирался с Visual Studio 2015.
1638
1639
1640 Изменения в nginx 1.9.3 14.07.2015
1641
1642 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.
1643
1644 *) Добавление: ограничение количества соединений в модуле stream.
1645
1646 *) Добавление: ограничение скорости в модуле stream.
1647
1648 *) Исправление: директива zone в блоке upstream не работала на Windows.
1649
1650 *) Исправление: совместимость с LibreSSL в модуле stream.
1651 Спасибо Piotr Sikora.
1652
1653 *) Исправление: в параметре --builddir в configure.
1654 Спасибо Piotr Sikora.
1655
1656 *) Исправление: директива ssl_stapling_file не работала; ошибка
1657 появилась в 1.9.2.
1658 Спасибо Faidon Liambotis и Brandon Black.
1659
1660 *) Исправление: при использовании директивы ssl_stapling в рабочем
1661 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
1662 Спасибо Matthew Baldwin.
1663
1664
1665 Изменения в nginx 1.9.2 16.06.2015
1666
1667 *) Добавление: параметр backlog директивы listen в почтовом
1668 прокси-сервере и модуле stream.
1669
1670 *) Добавление: директивы allow и deny в модуле stream.
1671
1672 *) Добавление: директива proxy_bind в модуле stream.
1673
1674 *) Добавление: директива proxy_protocol в модуле stream.
1675
1676 *) Добавление: ключ -T.
1677
1678 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
1679 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
1680 uwsgi_params.
1681
1682 *) Исправление: параметр reuseport директивы listen в модуле stream не
1683 работал.
1684
1685 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
1686 OCSP-ответ.
1687
1688
1689 Изменения в nginx 1.9.1 26.05.2015
1690
1691 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён.
1692
1693 *) Изменение: некоторые давно устаревшие директивы больше не
1694 поддерживаются.
1695
1696 *) Добавление: параметр reuseport директивы listen.
1697 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
1698
1699 *) Добавление: переменная $upstream_connect_time.
1700
1701 *) Исправление: в директиве hash на big-endian платформах.
1702
1703 *) Исправление: nginx мог не запускаться на некоторых старых версиях
1704 Linux; ошибка появилась в 1.7.11.
1705
1706 *) Исправление: в парсинге IP-адресов.
1707 Спасибо Сергею Половко.
1708
1709
1710 Изменения в nginx 1.9.0 28.04.2015
1711
1712 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше
1713 не поддерживаются.
1714
1715 *) Добавление: директива zone в блоке upstream.
1716
1717 *) Добавление: модуль stream.
1718
1719 *) Добавление: поддержка byte ranges для ответов модуля
1720 ngx_http_memcached_module.
1721 Спасибо Martin Mlynář.
1722
1723 *) Добавление: разделяемую память теперь можно использовать на версиях
1724 Windows с рандомизацией адресного пространства.
1725 Спасибо Сергею Брестеру.
1726
1727 *) Добавление: директиву error_log теперь можно использовать на уровнях
1728 mail и server в почтовом прокси-сервере.
1729
1730 *) Исправление: параметр proxy_protocol директивы listen не работал,
1731 если не был указан в первой директиве listen для данного
1732 listen-сокета.
1733
1734
1735 Изменения в nginx 1.7.12 07.04.2015
1736
1737 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
1738 с бэкендами.
1739
1740 *) Добавление: теперь потоки могут использоваться для чтения заголовков
1741 файлов в кэше.
1742
1743 *) Исправление: в директиве proxy_request_buffering.
1744
1745 *) Исправление: при использовании потоков на Linux в рабочем процессе
1746 мог произойти segmentation fault.
1747
1748 *) Исправление: в обработке ошибок при использовании директивы
1749 ssl_stapling.
1750 Спасибо Filipe da Silva.
1751
1752 *) Исправление: в модуле ngx_http_spdy_module.
1753
1754
1755 Изменения в nginx 1.7.11 24.03.2015
1756
1757 *) Изменение: параметр sendfile директивы aio более не нужен; теперь
1758 nginx автоматически использует AIO для подгрузки данных для sendfile,
1759 если одновременно используются директивы aio и sendfile.
1760
1761 *) Добавление: экспериментальная поддержка потоков.
1762
1763 *) Добавление: директивы proxy_request_buffering,
1764 fastcgi_request_buffering, scgi_request_buffering и
1765 uwsgi_request_buffering.
1766
1767 *) Добавление: экспериментальное API для обработки тела запроса.
1768
1769 *) Добавление: проверка клиентских SSL-сертификатов в почтовом
1770 прокси-сервере.
1771 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
1772
1773 *) Добавление: уменьшение времени запуска при использовании директивы
1774 "hash ... consistent" в блоке upstream.
1775 Спасибо Wai Keen Woon.
1776
1777 *) Добавление: отладочное логгирование в кольцевой буфер в памяти.
1778
1779 *) Исправление: в обработке хэш-таблиц.
1780 Спасибо Chris West.
1781
1782 *) Исправление: в директиве proxy_cache_revalidate.
1783
1784 *) Исправление: SSL-соединения могли зависать, если использовался
1785 отложенный accept или параметр proxy_protocol директивы listen.
1786 Спасибо James Hamlin.
1787
1788 *) Исправление: переменная $upstream_response_time могла содержать
1789 неверное значение при использовании директивы image_filter.
1790
1791 *) Исправление: в обработке целочисленных переполнений.
1792 Спасибо Régis Leroy.
1793
1794 *) Исправление: при использовании LibreSSL было невозможно включить
1795 поддержку SSLv3.
1796
1797 *) Исправление: при использовании LibreSSL в логах появлялись сообщения
1798 "ignoring stale global SSL error ... called a function you should not
1799 call".
1800
1801 *) Исправление: сертификаты, указанные в директивах
1802 ssl_client_certificate и ssl_trusted_certificate, использовались для
1803 автоматического построения цепочек сертификатов.
1804
1805
1806 Изменения в nginx 1.7.10 10.02.2015
1807
1808 *) Добавление: параметр use_temp_path директив proxy_cache_path,
1809 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
1810
1811 *) Добавление: переменная $upstream_header_time.
1812
1813 *) Изменение: теперь при переполнении диска nginx пытается писать
1814 error_log'и только раз в секунду.
1815
1816 *) Исправление: директива try_files при тестировании каталогов не
1817 игнорировала обычные файлы.
1818 Спасибо Damien Tournoud.
1819
1820 *) Исправление: при использовании директивы sendfile на OS X возникали
1821 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8.
1822
1823 *) Исправление: в лог могли писаться сообщения "sem_post() failed".
1824
1825 *) Исправление: nginx не собирался с musl libc.
1826 Спасибо James Taylor.
1827
1828 *) Исправление: nginx не собирался на Tru64 UNIX.
1829 Спасибо Goetz T. Fischer.
1830
1831
1832 Изменения в nginx 1.7.9 23.12.2014
1833
1834 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
1835 uwsgi_cache поддерживают переменные.
1836
1837 *) Добавление: директива expires поддерживает переменные.
1838
1839 *) Добавление: возможность загрузки секретных ключей с аппаратных
1840 устройств с помощью OpenSSL engines.
1841 Спасибо Дмитрию Пичулину.
1842
1843 *) Добавление: директива autoindex_format.
1844
1845 *) Исправление: ревалидация элементов кэша теперь используется только
1846 для ответов с кодами 200 и 206.
1847 Спасибо Piotr Sikora.
1848
1849 *) Исправление: строка "TE" заголовка запроса клиента передавалась на
1850 бэкенд при проксировании.
1851
1852 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
1853 uwsgi_pass могли неправильно работать внутри блоков if и
1854 limit_except.
1855
1856 *) Исправление: директива proxy_store с параметром "on" игнорировалась,
1857 если на предыдущем уровне использовалась директива proxy_store с явно
1858 заданным путём к файлам.
1859
1860 *) Исправление: nginx не собирался с BoringSSL.
1861 Спасибо Lukas Tribus.
1862
1863
1864 Изменения в nginx 1.7.8 02.12.2014
1865
1866 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им
1867 подобные в заголовке запроса клиента передаются бэкенду при
1868 включённом кэшировании, если nginx заранее знает, что не будет
1869 кэшировать ответ (например, при использовании proxy_cache_min_uses).
1870
1871 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
1872 отправляет запрос на бэкенд без кэширования; новые директивы
1873 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
1874 uwsgi_cache_lock_age позволяют указать, через какое время блокировка
1875 будет принудительно снята и будет сделана ещё одна попытка
1876 закэшировать ответ.
1877
1878 *) Изменение: директива log_format теперь может использоваться только на
1879 уровне http.
1880
1881 *) Добавление: директивы proxy_ssl_certificate,
1882 proxy_ssl_certificate_key, proxy_ssl_password_file,
1883 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
1884 uwsgi_ssl_password_file.
1885 Спасибо Piotr Sikora.
1886
1887 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
1888 именованный location.
1889 Спасибо Toshikuni Fukaya.
1890
1891 *) Добавление: теперь директива tcp_nodelay работает для
1892 SPDY-соединений.
1893
1894 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
1895 Спасибо Peter Wu.
1896
1897 *) Исправление: nginx игнорировал значение "s-maxage" в строке
1898 "Cache-Control" в заголовке ответа бэкенда.
1899 Спасибо Piotr Sikora.
1900
1901 *) Исправление: в модуле ngx_http_spdy_module.
1902 Спасибо Piotr Sikora.
1903
1904 *) Исправление: в директиве ssl_password_file при использовании OpenSSL
1905 0.9.8zc, 1.0.0o, 1.0.1j.
1906
1907 *) Исправление: при использовании директивы post_action в лог писались
1908 сообщения "header already sent"; ошибка появилась в nginx 1.5.4.
1909
1910 *) Исправление: при использовании директивы "postpone_output 0" с
1911 SSI-подзапросами в лог могли писаться сообщения "the http output
1912 chain is empty".
1913
1914 *) Исправление: в директиве proxy_cache_lock при использовании
1915 SSI-подзапросов.
1916 Спасибо Yichun Zhang.
1917
1918
1919 Изменения в nginx 1.7.7 28.10.2014
1920
1921 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
1922 заголовке ответа бэкенда.
1923
1924 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
1925 scgi_force_ranges и uwsgi_force_ranges.
1926
1927 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
1928 scgi_limit_rate и uwsgi_limit_rate.
1929
1930 *) Добавление: параметр Vary директив proxy_ignore_headers,
1931 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.
1932
1933 *) Исправление: последняя часть ответа, полученного от бэкенда при
1934 небуферизированном проксировании, могла не отправляться клиенту, если
1935 использовались директивы gzip или gunzip.
1936
1937 *) Исправление: в директиве proxy_cache_revalidate.
1938 Спасибо Piotr Sikora.
1939
1940 *) Исправление: в обработке ошибок.
1941 Спасибо Yichun Zhang и Даниилу Бондареву.
1942
1943 *) Исправление: в директивах proxy_next_upstream_tries и
1944 proxy_next_upstream_timeout.
1945 Спасибо Feng Gu.
1946
1947 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
1948 Спасибо Kouhei Sutou.
1949
1950
1951 Изменения в nginx 1.7.6 30.09.2014
1952
1953 *) Изменение: устаревшая директива limit_zone больше не поддерживается.
1954
1955 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
1956 можно использовать комбинации нескольких переменных.
1957
1958 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
1959 запроса могло передаваться неправильно.
1960
1961 *) Исправление: в логгировании в syslog.
1962
1963
1964 Изменения в nginx 1.7.5 16.09.2014
1965
1966 *) Безопасность: при использовании общего для нескольких блоков server
1967 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
1968 session tickets было возможно повторно использовать SSL-сессию в
1969 контексте другого блока server (CVE-2014-3616).
1970 Спасибо Antoine Delignat-Lavaud.
1971
1972 *) Изменение: директиву stub_status теперь можно указывать без
1973 параметров.
1974
1975 *) Добавление: параметр always директивы add_header.
1976
1977 *) Добавление: директивы proxy_next_upstream_tries,
1978 proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
1979 fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
1980 memcached_next_upstream_timeout, scgi_next_upstream_tries,
1981 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
1982 uwsgi_next_upstream_timeout.
1983
1984 *) Исправление: в параметре if директивы access_log.
1985
1986 *) Исправление: в модуле ngx_http_perl_module.
1987 Спасибо Piotr Sikora.
1988
1989 *) Исправление: директива listen почтового прокси-сервера не позволяла
1990 указать более двух параметров.
1991
1992 *) Исправление: директива sub_filter не работала с заменяемой строкой из
1993 одного символа.
1994
1995 *) Исправление: запросы могли зависать, если использовался resolver и в
1996 процессе обращения к DNS-серверу происходил таймаут.
1997
1998 *) Исправление: в модуле ngx_http_spdy_module при использовании
1999 совместно с AIO.
2000
2001 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2002 если с помощью директивы set изменялись переменные "$http_...",
2003 "$sent_http_..." или "$upstream_http_...".
2004
2005 *) Исправление: в обработке ошибок выделения памяти.
2006 Спасибо Markus Linnala и Feng Gu.
2007
2008
2009 Изменения в nginx 1.7.4 05.08.2014
2010
2011 *) Безопасность: pipelined-команды не отбрасывались после команды
2012 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
2013 1.5.6.
2014 Спасибо Chris Boulton.
2015
2016 *) Изменение: экранирование символов в URI теперь использует
2017 шестнадцатеричные цифры в верхнем регистре.
2018 Спасибо Piotr Sikora.
2019
2020 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
2021 Спасибо Piotr Sikora.
2022
2023 *) Исправление: запросы могли зависать, если использовался resolver и
2024 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.
2025
2026 *) Исправление: в модуле ngx_http_spdy_module.
2027 Спасибо Piotr Sikora.
2028
2029 *) Исправление: переменная $uri могла содержать мусор при возврате
2030 ошибок с кодом 400.
2031 Спасибо Сергею Боброву.
2032
2033 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле
2034 ngx_http_dav_module.
2035 Спасибо Feng Gu.
2036
2037 *) Исправление: при логгировании ошибок в syslog мог происходить
2038 segmentation fault; ошибка появилась в 1.7.1.
2039
2040 *) Исправление: переменные $geoip_latitude, $geoip_longitude,
2041 $geoip_dma_code и $geoip_area_code могли не работать.
2042 Спасибо Yichun Zhang.
2043
2044 *) Исправление: в обработке ошибок выделения памяти.
2045 Спасибо Tatsuhiko Kubo и Piotr Sikora.
2046
2047
2048 Изменения в nginx 1.7.3 08.07.2014
2049
2050 *) Добавление: weak entity tags теперь не удаляются при изменениях
2051 ответа, а strong entity tags преобразуются в weak.
2052
2053 *) Добавление: ревалидация элементов кэша теперь, если это возможно,
2054 использует заголовок If-None-Match.
2055
2056 *) Добавление: директива ssl_password_file.
2057
2058 *) Исправление: при возврате ответа из кэша заголовок запроса
2059 If-None-Match игнорировался, если в ответе не было заголовка
2060 Last-Modified.
2061
2062 *) Исправление: сообщения "peer closed connection in SSL handshake" при
2063 соединении с бэкендами логгировались на уровне info вместо error.
2064
2065 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows.
2066
2067 *) Исправление: SPDY-соединения могли неожиданно закрываться, если
2068 использовалось кэширование.
2069
2070
2071 Изменения в nginx 1.7.2 17.06.2014
2072
2073 *) Добавление: директива hash в блоке upstream.
2074
2075 *) Добавление: дефрагментация свободных блоков разделяемой памяти.
2076 Спасибо Wandenberg Peixoto и Yichun Zhang.
2077
2078 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2079 если использовалось значение access_log по умолчанию; ошибка
2080 появилась в 1.7.0.
2081 Спасибо Piotr Sikora.
2082
2083 *) Исправление: завершающий слэш ошибочно удалялся из последнего
2084 параметра директивы try_files.
2085
2086 *) Исправление: nginx мог не собираться на OS X.
2087
2088 *) Исправление: в модуле ngx_http_spdy_module.
2089
2090
2091 Изменения в nginx 1.7.1 27.05.2014
2092
2093 *) Добавление: переменные "$upstream_cookie_...".
2094
2095 *) Добавление: переменная $ssl_client_fingerprint.
2096
2097 *) Добавление: директивы error_log и access_log теперь поддерживают
2098 логгирование в syslog.
2099
2100 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
2101 соединении.
2102
2103 *) Исправление: утечки памяти при использовании директивы
2104 "ssl_stapling".
2105 Спасибо Filipe da Silva.
2106
2107 *) Исправление: директива alias внутри location'а, заданного регулярным
2108 выражением, работала неправильно, если использовались директивы if
2109 или limit_except.
2110
2111 *) Исправление: директива charset не ставила кодировку для сжатых
2112 ответов бэкендов.
2113
2114 *) Исправление: директива proxy_pass без URI могла использовать
2115 оригинальный запрос после установки переменной $args.
2116 Спасибо Yichun Zhang.
2117
2118 *) Исправление: в работе параметра none директивы smtp_auth; ошибка
2119 появилась в 1.5.6.
2120 Спасибо Святославу Никольскому.
2121
2122 *) Исправление: при совместном использовании sub_filter и SSI ответы
2123 могли передаваться неверно.
2124
2125 *) Исправление: nginx не собирался с параметром --with-file-aio на
2126 Linux/aarch64.
2127
2128
2129 Изменения в nginx 1.7.0 24.04.2014
2130
2131 *) Добавление: проверка SSL-сертификатов бэкендов.
2132
2133 *) Добавление: поддержка SNI при работе с бэкендами по SSL.
2134
2135 *) Добавление: переменная $ssl_server_name.
2136
2137 *) Добавление: параметр if директивы access_log.
2138
2139
2140 Изменения в nginx 1.5.13 08.04.2014
2141
2142 *) Изменение: улучшена обработка хэш-таблиц; в директивах
2143 variables_hash_max_size и types_hash_bucket_size значения по
2144 умолчанию изменены на 1024 и 64 соответственно.
2145
2146 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
2147
2148 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
2149 сохранении ответов в кэш.
2150
2151 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
2152 failed: no memory" при использовании разделяемой памяти в
2153 ssl_session_cache и в модуле ngx_http_limit_req_module.
2154
2155 *) Исправление: директива underscores_in_headers не разрешала
2156 подчёркивание в первом символе заголовка.
2157 Спасибо Piotr Sikora.
2158
2159 *) Исправление: cache manager мог нагружать процессор при выходе в
2160 nginx/Windows.
2161
2162 *) Исправление: при использовании ssl_session_cache с параметром shared
2163 рабочий процесс nginx/Windows завершался аварийно.
2164
2165 *) Исправление: в модуле ngx_http_spdy_module.
2166
2167
2168 Изменения в nginx 1.5.12 18.03.2014
2169
2170 *) Безопасность: при обработке специально созданного запроса модулем
2171 ngx_http_spdy_module могло происходить переполнение буфера в рабочем
2172 процессе, что потенциально могло приводить к выполнению произвольного
2173 кода (CVE-2014-0133).
2174 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
2175 Buenos Aires, Argentina.
2176
2177 *) Добавление: параметр proxy_protocol в директивах listen и
2178 real_ip_header, переменная $proxy_protocol_addr.
2179
2180 *) Исправление: в директиве fastcgi_next_upstream.
2181 Спасибо Lucas Molas.
2182
2183
2184 Изменения в nginx 1.5.11 04.03.2014
2185
2186 *) Безопасность: при обработке специально созданного запроса модулем
2187 ngx_http_spdy_module на 32-битных платформах могла повреждаться
2188 память рабочего процесса, что потенциально могло приводить к
2189 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
2190 1.5.10.
2191 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
2192 Buenos Aires, Argentina.
2193
2194 *) Добавление: переменная $ssl_session_reused.
2195
2196 *) Исправление: директива client_max_body_size могла не работать при
2197 чтении тела запроса с использованием chunked transfer encoding;
2198 ошибка появилась в 1.3.9.
2199 Спасибо Lucas Molas.
2200
2201 *) Исправление: при проксировании WebSocket-соединений в рабочем
2202 процессе мог произойти segmentation fault.
2203
2204 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2205 если использовался модуль ngx_http_spdy_module на 32-битных
2206 платформах; ошибка появилась в 1.5.10.
2207
2208 *) Исправление: значение переменной $upstream_status могло быть
2209 неверным, если использовались директивы proxy_cache_use_stale или
2210 proxy_cache_revalidate.
2211 Спасибо Piotr Sikora.
2212
2213 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2214 если ошибки с кодом 400 с помощью директивы error_page
2215 перенаправлялись в именованный location.
2216
2217 *) Исправление: nginx/Windows не собирался с Visual Studio 2013.
2218
2219
2220 Изменения в nginx 1.5.10 04.02.2014
2221
2222 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол
2223 SPDY 3.1.
2224 Спасибо Automattic и MaxCDN за спонсирование разработки.
2225
2226 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
2227 имеющие меньшую длину, чем запрошенная перемотка.
2228
2229 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2230 если переменная $ssl_session_id использовалась при логгировании;
2231 ошибка появилась в 1.5.9.
2232
2233 *) Исправление: переменные $date_local и $date_gmt использовали неверный
2234 формат вне модуля ngx_http_ssi_filter_module.
2235
2236 *) Исправление: клиентские соединения могли сразу закрываться, если
2237 использовался отложенный accept; ошибка появилась в 1.3.15.
2238
2239 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
2240 записывались в лог в процессе обновления исполняемого файла на Linux;
2241 ошибка появилась в 1.5.8.
2242 Спасибо Piotr Sikora.
2243
2244
2245 Изменения в nginx 1.5.9 22.01.2014
2246
2247 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
2248 закодированный URI.
2249
2250 *) Добавление: директива ssl_buffer_size.
2251
2252 *) Добавление: директиву limit_rate теперь можно использовать для
2253 ограничения скорости передачи ответов клиенту в SPDY-соединениях.
2254
2255 *) Добавление: директива spdy_chunk_size.
2256
2257 *) Добавление: директива ssl_session_tickets.
2258 Спасибо Dirkjan Bussink.
2259
2260 *) Исправление: переменная $ssl_session_id содержала всю сессию в
2261 сериализованном виде вместо её идентификатора.
2262 Спасибо Ivan Ristić.
2263
2264 *) Исправление: nginx неправильно обрабатывал закодированный символ "?"
2265 в команде SSI include.
2266
2267 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
2268 при обработке методов COPY и MOVE.
2269
2270 *) Исправление: resolver не понимал доменные имена с точкой в конце.
2271 Спасибо Yichun Zhang.
2272
2273 *) Исправление: при проксировании в логах могли появляться сообщения
2274 "zero size buf in output"; ошибка появилась в 1.3.9.
2275
2276 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2277 если использовался модуль ngx_http_spdy_module.
2278
2279 *) Исправление: при использовании методов обработки соединений select,
2280 poll и /dev/poll проксируемые WebSocket-соединения могли зависать
2281 сразу после открытия.
2282
2283 *) Исправление: директива xclient почтового прокси-сервера некорректно
2284 передавала IPv6-адреса.
2285
2286
2287 Изменения в nginx 1.5.8 17.12.2013
2288
2289 *) Добавление: теперь resolver поддерживает IPv6.
2290
2291 *) Добавление: директива listen поддерживает параметр fastopen.
2292 Спасибо Mathew Rodley.
2293
2294 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
2295 Спасибо Roberto De Ioris.
2296
2297 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
2298 Спасибо Evan Miller.
2299
2300 *) Исправление: при чтении тела запроса с использованием chunked
2301 transfer encoding по SSL-соединению мог произойти таймаут.
2302
2303 *) Исправление: директива master_process работала неправильно в
2304 nginx/Windows.
2305
2306 *) Исправление: параметр setfib директивы listen мог не работать.
2307
2308 *) Исправление: в модуле ngx_http_spdy_module.
2309
2310
2311 Изменения в nginx 1.5.7 19.11.2013
2312
2313 *) Безопасность: символ, следующий за незакодированным пробелом в строке
2314 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
2315 в 0.8.41.
2316 Спасибо Ivan Fratric из Google Security Team.
2317
2318 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии
2319 пароля понижен с уровня error до info.
2320
2321 *) Добавление: директивы proxy_cache_revalidate,
2322 fastcgi_cache_revalidate, scgi_cache_revalidate и
2323 uwsgi_cache_revalidate.
2324
2325 *) Добавление: директива ssl_session_ticket_key.
2326 Спасибо Piotr Sikora.
2327
2328 *) Исправление: директива "add_header Cache-Control ''" добавляла строку
2329 заголовка ответа "Cache-Control" с пустым значением.
2330
2331 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
2332 401 при использовании директив auth_request и auth_basic.
2333 Спасибо Jan Marc Hoffmann.
2334
2335 *) Исправление: параметры accept_filter и deferred директивы listen
2336 игнорировались для listen-сокетов, создаваемых в процессе обновления
2337 исполняемого файла.
2338 Спасибо Piotr Sikora.
2339
2340 *) Исправление: часть данных, полученных от бэкенда при
2341 небуферизированном проксировании, могла не отправляться клиенту
2342 сразу, если использовались директивы gzip или gunzip.
2343 Спасибо Yichun Zhang.
2344
2345 *) Исправление: в обработке ошибок в модуле
2346 ngx_http_gunzip_filter_module.
2347
2348 *) Исправление: ответы могли зависать, если использовался модуль
2349 ngx_http_spdy_module и директива auth_request.
2350
2351 *) Исправление: утечки памяти в nginx/Windows.
2352
2353
2354 Изменения в nginx 1.5.6 01.10.2013
2355
2356 *) Добавление: директива fastcgi_buffering.
2357
2358 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
2359 Спасибо Piotr Sikora.
2360
2361 *) Добавление: оптимизация SSL handshake при использовании длинных
2362 цепочек сертификатов.
2363
2364 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
2365
2366 *) Исправление: в модуле ngx_http_auth_basic_module при использовании
2367 метода шифрования паролей "$apr1$".
2368 Спасибо Markus Linnala.
2369
2370 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
2371 мог использоваться неверный location, если для задания location'ов
2372 использовались символы разных регистров.
2373
2374 *) Исправление: автоматическое перенаправление с добавлением
2375 завершающего слэша для проксированных location'ов могло не работать.
2376
2377 *) Исправление: в почтовом прокси-сервере.
2378
2379 *) Исправление: в модуле ngx_http_spdy_module.
2380
2381
2382 Изменения в nginx 1.5.5 17.09.2013
2383
2384 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
2385 определить протокол не удалось.
2386
2387 *) Добавление: директива disable_symlinks теперь использует O_PATH на
2388 Linux.
2389
2390 *) Добавление: для определения того, что клиент закрыл соединение, при
2391 использовании метода epoll теперь используются события EPOLLRDHUP.
2392
2393 *) Исправление: в директиве valid_referers при использовании параметра
2394 server_names.
2395
2396 *) Исправление: переменная $request_time не работала в nginx/Windows.
2397
2398 *) Исправление: в директиве image_filter.
2399 Спасибо Lanshun Zhou.
2400
2401 *) Исправление: совместимость с OpenSSL 1.0.1f.
2402 Спасибо Piotr Sikora.
2403
2404
2405 Изменения в nginx 1.5.4 27.08.2013
2406
2407 *) Изменение: MIME-тип для расширения js изменён на
2408 "application/javascript"; значение по умолчанию директивы
2409 charset_types изменено соответственно.
2410
2411 *) Изменение: теперь директива image_filter с параметром size возвращает
2412 ответ с MIME-типом "application/json".
2413
2414 *) Добавление: модуль ngx_http_auth_request_module.
2415
2416 *) Исправление: на старте или во время переконфигурации мог произойти
2417 segmentation fault, если использовалась директива try_files с пустым
2418 параметром.
2419
2420 *) Исправление: утечки памяти при использовании в директивах root и
2421 auth_basic_user_file относительных путей, заданных с помощью
2422 переменных.
2423
2424 *) Исправление: директива valid_referers неправильно выполняла
2425 регулярные выражения, если заголовок Referer начинался с "https://".
2426 Спасибо Liangbin Li.
2427
2428 *) Исправление: ответы могли зависать, если использовались подзапросы и
2429 при обработке подзапроса происходила ошибка во время SSL handshake с
2430 бэкендом.
2431 Спасибо Aviram Cohen.
2432
2433 *) Исправление: в модуле ngx_http_autoindex_module.
2434
2435 *) Исправление: в модуле ngx_http_spdy_module.
2436
2437
2438 Изменения в nginx 1.5.3 30.07.2013
2439
2440 *) Изменение во внутреннем API: теперь при небуферизированной работе с
2441 бэкендами u->length по умолчанию устанавливается в -1.
2442
2443 *) Изменение: теперь при получении неполного ответа от бэкенда nginx
2444 отправляет полученную часть ответа, после чего закрывает соединение с
2445 клиентом.
2446
2447 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2448 если использовался модуль ngx_http_spdy_module и директива
2449 client_body_in_file_only.
2450
2451 *) Исправление: параметр so_keepalive директивы listen мог работать
2452 некорректно на DragonFlyBSD.
2453 Спасибо Sepherosa Ziehau.
2454
2455 *) Исправление: в модуле ngx_http_xslt_filter_module.
2456
2457 *) Исправление: в модуле ngx_http_sub_filter_module.
2458
2459
2460 Изменения в nginx 1.5.2 02.07.2013
2461
2462 *) Добавление: теперь можно использовать несколько директив error_log.
2463
2464 *) Исправление: метод $r->header_in() встроенного перла не возвращал
2465 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
2466 ошибка появилась в 1.3.14.
2467
2468 *) Исправление: в модуле ngx_http_spdy_module.
2469 Спасибо Jim Radford.
2470
2471 *) Исправление: nginx не собирался на Linux при использовании x32 ABI.
2472 Спасибо Сергею Иванцову.
2473
2474
2475 Изменения в nginx 1.5.1 04.06.2013
2476
2477 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
2478 xslt_last_modified.
2479 Спасибо Алексею Колпакову.
2480
2481 *) Добавление: параметр http_403 в директивах proxy_next_upstream,
2482 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
2483
2484 *) Добавление: директивы allow и deny теперь поддерживают unix domain
2485 сокеты.
2486
2487 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
2488 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
2489
2490 *) Исправление: в директиве proxy_set_body.
2491 Спасибо Lanshun Zhou.
2492
2493 *) Исправление: в директиве lingering_time.
2494 Спасибо Lanshun Zhou.
2495
2496 *) Исправление: параметр fail_timeout директивы server в блоке upstream
2497 мог не работать, если использовался параметр max_fails; ошибка
2498 появилась в 1.3.0.
2499
2500 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2501 если использовалась директива ssl_stapling.
2502 Спасибо Piotr Sikora.
2503
2504 *) Исправление: в почтовом прокси-сервере.
2505 Спасибо Filipe Da Silva.
2506
2507 *) Исправление: nginx/Windows мог перестать принимать соединения, если
2508 использовалось несколько рабочих процессов.
2509
2510
2511 Изменения в nginx 1.5.0 07.05.2013
2512
2513 *) Безопасность: при обработке специально созданного запроса мог
2514 перезаписываться стек рабочего процесса, что могло приводить к
2515 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
2516 1.3.9.
2517 Спасибо Greg MacManus, iSIGHT Partners Labs.
2518
2519
2520 Изменения в nginx 1.4.0 24.04.2013
2521
2522 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2523 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
2524
2525 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
2526 ошибка появилась в 1.3.9.
2527
2528
2529 Изменения в nginx 1.3.16 16.04.2013
2530
2531 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2532 если использовались подзапросы; ошибка появилась в 1.3.9.
2533
2534 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
2535 WebSocket-соединений в unix domain сокет.
2536
2537 *) Исправление: переменная $upstream_response_length возвращала значение
2538 "0", если не использовалась буферизация.
2539 Спасибо Piotr Sikora.
2540
2541 *) Исправление: в методах обработки соединений eventport и /dev/poll.
2542
2543
2544 Изменения в nginx 1.3.15 26.03.2013
2545
2546 *) Изменение: открытие и закрытие соединения без отправки в нём
2547 каких-либо данных больше не записывается в access_log с кодом ошибки
2548 400.
2549
2550 *) Добавление: модуль ngx_http_spdy_module.
2551 Спасибо Automattic за спонсирование разработки.
2552
2553 *) Добавление: директивы limit_req_status и limit_conn_status.
2554 Спасибо Nick Marden.
2555
2556 *) Добавление: директива image_filter_interlace.
2557 Спасибо Ивану Боброву.
2558
2559 *) Добавление: переменная $connections_waiting в модуле
2560 ngx_http_stub_status_module.
2561
2562 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
2563
2564 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
2565 могло передаваться неправильно; ошибка появилась в 1.3.9.
2566 Спасибо Piotr Sikora.
2567
2568 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2569 1.3.9.
2570
2571 *) Исправление: ответы могли зависать, если использовались подзапросы и
2572 при обработке подзапроса происходила DNS-ошибка.
2573 Спасибо Lanshun Zhou.
2574
2575 *) Исправление: в процедуре учёта использования бэкендов.
2576
2577
2578 Изменения в nginx 1.3.14 05.03.2013
2579
2580 *) Добавление: переменные $connections_active, $connections_reading и
2581 $connections_writing в модуле ngx_http_stub_status_module.
2582
2583 *) Добавление: поддержка WebSocket-соединений в модулях
2584 ngx_http_uwsgi_module и ngx_http_scgi_module.
2585
2586 *) Исправление: в обработке виртуальных серверов при использовании SNI.
2587
2588 *) Исправление: при использовании директивы "ssl_session_cache shared"
2589 новые сессии могли не сохраняться, если заканчивалось место в
2590 разделяемой памяти.
2591 Спасибо Piotr Sikora.
2592
2593 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
2594 неправильно.
2595 Спасибо Neal Poole за спонсирование разработки.
2596
2597 *) Исправление: в модуле ngx_http_mp4_module.
2598 Спасибо Gernot Vormayr.
2599
2600
2601 Изменения в nginx 1.3.13 19.02.2013
2602
2603 *) Изменение: теперь для сборки по умолчанию используется компилятор с
2604 именем "cc".
2605
2606 *) Добавление: поддержка проксирования WebSocket-соединений.
2607 Спасибо Apcera и CloudBees за спонсирование разработки.
2608
2609 *) Добавление: директива auth_basic_user_file поддерживает шифрование
2610 паролей методом "{SHA}".
2611 Спасибо Louis Opter.
2612
2613
2614 Изменения в nginx 1.3.12 05.02.2013
2615
2616 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
2617 scgi_bind и uwsgi_bind поддерживают переменные.
2618
2619 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
2620 $time_local теперь можно использовать не только в директиве
2621 log_format.
2622 Спасибо Kiril Kalchev.
2623
2624 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
2625 Спасибо Gregor Kališnik.
2626
2627 *) Исправление: директива proxy_method работала неверно, если была
2628 указана на уровне http.
2629
2630 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2631 если использовался resolver и метод poll.
2632
2633 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
2634 бэкендом при использовании методов обработки соединений select, poll
2635 и /dev/poll.
2636
2637 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
2638
2639 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2640 1.3.9.
2641
2642 *) Исправление: в директиве fastcgi_keep_conn.
2643
2644
2645 Изменения в nginx 1.3.11 10.01.2013
2646
2647 *) Исправление: при записи в лог мог происходить segmentation fault;
2648 ошибка появилась в 1.3.10.
2649
2650 *) Исправление: директива proxy_pass не работала с IP-адресами без
2651 явного указания порта; ошибка появилась в 1.3.10.
2652
2653 *) Исправление: на старте или во время переконфигурации происходил
2654 segmentation fault, если директива keepalive была указана несколько
2655 раз в одном блоке upstream.
2656
2657 *) Исправление: параметр default директивы geo не определял значение по
2658 умолчанию для IPv6-адресов.
2659
2660
2661 Изменения в nginx 1.3.10 25.12.2012
2662
2663 *) Изменение: для указанных в конфигурационном файле доменных имён
2664 теперь используются не только IPv4, но и IPv6 адреса.
2665
2666 *) Изменение: теперь при использовании директивы include с маской на
2667 Unix-системах включаемые файлы сортируются в алфавитном порядке.
2668
2669 *) Изменение: директива add_header добавляет строки в ответы с кодом
2670 201.
2671
2672 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
2673 CIDR.
2674
2675 *) Добавление: параметры flush и gzip в директиве access_log.
2676
2677 *) Добавление: директива auth_basic поддерживает переменные.
2678
2679 *) Исправление: nginx в некоторых случаях не собирался с модулем
2680 ngx_http_perl_module.
2681
2682 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2683 если использовался модуль ngx_http_xslt_module.
2684
2685 *) Исправление: nginx мог не собираться на MacOSX.
2686 Спасибо Piotr Sikora.
2687
2688 *) Исправление: при использовании директивы limit_rate с большими
2689 значениями скорости на 32-битных системах ответ мог возвращаться не
2690 целиком.
2691 Спасибо Алексею Антропову.
2692
2693 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2694 если использовалась директива if.
2695 Спасибо Piotr Sikora.
2696
2697 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
2698 Request Entity Too Large".
2699
2700 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
2701 image_filter_sharpen могли наследоваться некорректно.
2702 Спасибо Ивану Боброву.
2703
2704 *) Исправление: при использовании директивы auth_basic под Linux могли
2705 возникать ошибки "crypt_r() failed".
2706
2707 *) Исправление: в обработке backup-серверов.
2708 Спасибо Thomas Chen.
2709
2710 *) Исправление: при проксировании HEAD-запросов мог возвращаться
2711 некорректный ответ, если использовалась директива gzip.
2712
2713
2714 Изменения в nginx 1.3.9 27.11.2012
2715
2716 *) Добавление: поддержка chunked transfer encoding при получении тела
2717 запроса.
2718
2719 *) Добавление: переменные $request_time и $msec теперь можно
2720 использовать не только в директиве log_format.
2721
2722 *) Исправление: cache manager и cache loader могли не запускаться, если
2723 использовалось более 512 listen-сокетов.
2724
2725 *) Исправление: в модуле ngx_http_dav_module.
2726
2727
2728 Изменения в nginx 1.3.8 30.10.2012
2729
2730 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
2731 Спасибо Михаилу Казанцеву и Eric O'Connor.
2732
2733 *) Добавление: переменные $bytes_sent, $connection и
2734 $connection_requests теперь можно использовать не только в директиве
2735 log_format.
2736 Спасибо Benjamin Grössing.
2737
2738 *) Добавление: параметр auto директивы worker_processes.
2739
2740 *) Исправление: сообщения "cache file ... has md5 collision".
2741
2742 *) Исправление: в модуле ngx_http_gunzip_filter_module.
2743
2744 *) Исправление: в директиве ssl_stapling.
2745
2746
2747 Изменения в nginx 1.3.7 02.10.2012
2748
2749 *) Добавление: поддержка OCSP stapling.
2750 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
2751
2752 *) Добавление: директива ssl_trusted_certificate.
2753
2754 *) Добавление: теперь resolver случайным образом меняет порядок
2755 возвращаемых закэшированных адресов.
2756 Спасибо Антону Жулину.
2757
2758 *) Исправление: совместимость с OpenSSL 0.9.7.
2759
2760
2761 Изменения в nginx 1.3.6 12.09.2012
2762
2763 *) Добавление: модуль ngx_http_gunzip_filter_module.
2764
2765 *) Добавление: директива memcached_gzip_flag.
2766
2767 *) Добавление: параметр always директивы gzip_static.
2768
2769 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
2770 Спасибо Charles Chen.
2771
2772 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
2773 использовался параметр --with-ipv6.
2774
2775
2776 Изменения в nginx 1.3.5 21.08.2012
2777
2778 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
2779 дорожки в форматах, отличных от H.264 и AAC.
2780
2781 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2782 если в директиве map в качестве значений использовались переменные.
2783
2784 *) Исправление: в рабочем процессе мог произойти segmentation fault при
2785 использовании директивы geo с параметром ranges, но без параметра
2786 default; ошибка появилась в 0.8.43.
2787 Спасибо Zhen Chen и Weibin Yao.
2788
2789 *) Исправление: в обработке параметра командной строки -p.
2790
2791 *) Исправление: в почтовом прокси-сервере.
2792
2793 *) Исправление: незначительных потенциальных ошибок.
2794 Спасибо Coverity.
2795
2796 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
2797 Спасибо HAYASHI Kentaro.
2798
2799
2800 Изменения в nginx 1.3.4 31.07.2012
2801
2802 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
2803 по умолчанию.
2804
2805 *) Добавление: поддержка компилятора Clang.
2806
2807 *) Исправление: могли создаваться лишние слушающие сокеты.
2808 Спасибо Роману Одайскому.
2809
2810 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
2811 рабочего процесса происходила ошибка.
2812 Спасибо Ricardo Villalobos Guevara.
2813
2814 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
2815 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
2816 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
2817 наследоваться некорректно.
2818
2819
2820 Изменения в nginx 1.3.3 10.07.2012
2821
2822 *) Добавление: поддержка entity tags и директива etag.
2823
2824 *) Исправление: при использовании директивы map с параметром hostnames
2825 не игнорировалась конечная точка в исходном значении.
2826
2827 *) Исправление: для обработки запроса мог использоваться неверный
2828 location, если переход в именованный location происходил после
2829 изменения URI с помощью директивы rewrite.
2830
2831
2832 Изменения в nginx 1.3.2 26.06.2012
2833
2834 *) Изменение: параметр single директивы keepalive теперь игнорируется.
2835
2836 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
2837 OpenSSL старее 1.0.0.
2838
2839 *) Добавление: директиву "ip_hash" теперь можно использовать для
2840 балансировки IPv6 клиентов.
2841
2842 *) Добавление: переменную $status теперь можно использовать не только в
2843 директиве log_format.
2844
2845 *) Исправление: при завершении рабочего процесса мог произойти
2846 segmentation fault, если использовалась директива resolver.
2847
2848 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2849 если использовался модуль ngx_http_mp4_module.
2850
2851 *) Исправление: в модуле ngx_http_mp4_module.
2852
2853 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2854 если использовались конфликтующие имена серверов с масками.
2855
2856 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
2857 сигналу SIGBUS.
2858
2859 *) Исправление: во время переконфигурации на HP-UX в лог записывался
2860 alert "sendmsg() failed (9: Bad file number)".
2861
2862
2863 Изменения в nginx 1.3.1 05.06.2012
2864
2865 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
2866 компонента URI и не разрешает URI, содержащие последовательность
2867 ":$".
2868 Спасибо Владимиру Кочеткову, Positive Research Center.
2869
2870 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
2871 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
2872
2873 *) Добавление: в директиве resolver теперь можно указывать порт и
2874 задавать IPv6-адреса DNS-серверов.
2875
2876 *) Добавление: директива least_conn в блоке upstream.
2877
2878 *) Добавление: при использовании директивы ip_hash теперь можно задавать
2879 веса серверов.
2880
2881 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2882 если использовалась директива image_filter; ошибка появилась в 1.3.0.
2883
2884 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
2885 появилась в 1.1.12.
2886
2887 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
2888 работать после переконфигурации.
2889 Спасибо Yichun Zhang.
2890
2891 *) Исправление: в модуле ngx_http_xslt_filter_module.
2892 Спасибо Kuramoto Eiji.
2893
2894 *) Исправление: утечки памяти при использовании переменной $geoip_org.
2895 Спасибо Денису Латыпову.
2896
2897 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
2898
2899
2900 Изменения в nginx 1.3.0 15.05.2012
2901
2902 *) Добавление: директива debug_connection теперь поддерживает
2903 IPv6-адреса и параметр "unix:".
2904
2905 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
2906 теперь поддерживают IPv6-адреса.
2907
2908 *) Добавление: директивы real_ip_recursive, geoip_proxy и
2909 geoip_proxy_recursive.
2910
2911 *) Добавление: параметр proxy_recursive директивы geo.
2912
2913 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2914 если использовалась директива resolver.
2915
2916 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2917 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
2918 и бэкенд возвращал некорректный ответ.
2919
2920 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2921 если использовалась директива rewrite и в новых аргументах запроса в
2922 строке замены использовались переменные.
2923
2924 *) Исправление: nginx мог нагружать процессор, если было достигнуто
2925 ограничение на количество открытых файлов.
2926
2927 *) Исправление: при использовании директивы proxy_next_upstream с
2928 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
2929 блоке upstream был хотя бы один сервер с флагом backup.
2930
2931 *) Исправление: при использовании директивы ip_hash установка параметра
2932 down директивы server могла приводить к ненужному перераспределению
2933 клиентов между бэкендами.
2934
2935 *) Исправление: утечки сокетов.
2936 Спасибо Yichun Zhang.
2937
2938 *) Исправление: в модуле ngx_http_fastcgi_module.
2939
2940
2941 Изменения в nginx 1.2.0 23.04.2012
2942
2943 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2944 если использовалась директива try_files; ошибка появилась в 1.1.19.
2945
2946 *) Исправление: ответ мог быть передан не полностью, если использовалось
2947 больше IOV_MAX буферов.
2948
2949 *) Исправление: в работе параметра crop директивы image_filter.
2950 Спасибо Maxim Bublis.
2951
2952
2953 Изменения в nginx 1.1.19 12.04.2012
2954
2955 *) Безопасность: при обработке специально созданного mp4 файла модулем
2956 ngx_http_mp4_module могли перезаписываться области памяти рабочего
2957 процесса, что могло приводить к выполнению произвольного кода
2958 (CVE-2012-2089).
2959 Спасибо Matthew Daley.
2960
2961 *) Исправление: nginx/Windows мог завершаться аварийно.
2962 Спасибо Vincent Lee.
2963
2964 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
2965 были помечены флагом backup.
2966
2967 *) Исправление: директивы allow и deny могли наследоваться некорректно,
2968 если в них использовались IPv6 адреса.
2969
2970 *) Исправление: директивы modern_browser и ancient_browser могли
2971 наследоваться некорректно.
2972
2973 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
2974
2975 *) Исправление: в модуле ngx_http_mp4_module.
2976
2977
2978 Изменения в nginx 1.1.18 28.03.2012
2979
2980 *) Изменение: теперь keepalive соединения не запрещены для Safari по
2981 умолчанию.
2982
2983 *) Добавление: переменная $connection_requests.
2984
2985 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
2986 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
2987
2988 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
2989
2990 *) Добавление: директивы xslt_param и xslt_string_param.
2991 Спасибо Samuel Behan.
2992
2993 *) Исправление: в configure.
2994 Спасибо Piotr Sikora.
2995
2996 *) Исправление: в модуле ngx_http_xslt_filter_module.
2997
2998 *) Исправление: nginx не собирался на Debian GNU/Hurd.
2999
3000
3001 Изменения в nginx 1.1.17 15.03.2012
3002
3003 *) Безопасность: содержимое ранее освобождённой памяти могло быть
3004 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
3005 Спасибо Matthew Daley.
3006
3007 *) Исправление: при использовании встроенного перла из SSI.
3008 Спасибо Matthew Daley.
3009
3010 *) Исправление: в модуле ngx_http_uwsgi_module.
3011
3012
3013 Изменения в nginx 1.1.16 29.02.2012
3014
3015 *) Изменение: ограничение на количество одновременных подзапросов
3016 поднято до 200.
3017
3018 *) Добавление: параметр from в директиве disable_symlinks.
3019
3020 *) Добавление: директивы return и error_page теперь могут использоваться
3021 для возврата перенаправлений с кодом 307.
3022
3023 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3024 если использовалась директива resolver и на глобальном уровне не была
3025 задана директива error_log.
3026 Спасибо Роману Арутюняну.
3027
3028 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3029 если использовались директивы "proxy_http_version 1.1" или
3030 "fastcgi_keep_conn on".
3031
3032 *) Исправление: утечек памяти.
3033 Спасибо Lanshun Zhou.
3034
3035 *) Исправление: в директиве disable_symlinks.
3036
3037 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
3038 некорректно; ошибка появилась в 1.0.1.
3039
3040 *) Исправление: nginx не собирался компилятором icc 12.1.
3041
3042 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
3043 1.1.15.
3044
3045
3046 Изменения в nginx 1.1.15 15.02.2012
3047
3048 *) Добавление: директива disable_symlinks.
3049
3050 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
3051
3052 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
3053 prematurely closed connection" вместо "upstream sent too big header".
3054 Спасибо Feibo Li.
3055
3056 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
3057 использовался параметр --with-openssl.
3058
3059 *) Исправление: количество внутренних перенаправлений в именованные
3060 location'ы не ограничивалось.
3061
3062 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
3063 ошибкам в модуле ngx_http_gzip_filter_module.
3064
3065 *) Исправление: при использовании директивы proxy_store с
3066 SSI-подзапросами временные файлы могли не удаляться.
3067
3068 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
3069 $args) возвращали старое пустое закэшированное значение.
3070
3071 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3072 если одновременно создавалось слишком много SSI-подзапросов; ошибка
3073 появилась в 0.7.25.
3074
3075
3076 Изменения в nginx 1.1.14 30.01.2012
3077
3078 *) Добавление: теперь можно указать несколько ограничений limit_req
3079 одновременно.
3080
3081 *) Исправление: в обработке ошибок при соединении с бэкендом.
3082 Спасибо Piotr Sikora.
3083
3084 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
3085
3086 *) Исправление: в инициализации библиотеки OpenSSL.
3087
3088 *) Исправление: директивы proxy_redirect могли наследоваться
3089 некорректно.
3090
3091 *) Исправление: утечки памяти при переконфигурации, если использовалась
3092 директива pcre_jit.
3093
3094
3095 Изменения в nginx 1.1.13 16.01.2012
3096
3097 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
3098
3099 *) Исправление: параметры директивы limit_req наследовались некорректно;
3100 ошибка появилась в 1.1.12.
3101
3102 *) Исправление: директива proxy_redirect некорректно обрабатывала
3103 заголовок Refresh при использовании регулярных выражений.
3104
3105 *) Исправление: директива proxy_cache_use_stale с параметром error не
3106 возвращала ответ из кэша, если все бэкенды были признаны
3107 неработающими.
3108
3109 *) Исправление: директива worker_cpu_affinity могла не работать.
3110
3111 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
3112 1.1.12.
3113
3114 *) Исправление: в модуле ngx_http_mp4_module.
3115
3116
3117 Изменения в nginx 1.1.12 26.12.2011
3118
3119 *) Изменение: после перенаправления запроса с помощью директивы
3120 error_page директива proxy_pass без URI теперь использует изменённый
3121 URI.
3122 Спасибо Lanshun Zhou.
3123
3124 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
3125 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
3126
3127 *) Добавление: директива pcre_jit.
3128
3129 *) Добавление: SSI команда if поддерживает выделения в регулярных
3130 выражениях.
3131
3132 *) Исправление: SSI команда if не работала внутри команды block.
3133
3134 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
3135 могли не работать.
3136
3137 *) Исправление: директива limit_rate не позволяла передавать на полной
3138 скорости, даже если был указан очень большой лимит.
3139
3140 *) Исправление: директива sendfile_max_chunk не работала, если
3141 использовалась директива limit_rate.
3142
3143 *) Исправление: если в директиве proxy_pass использовались переменные и
3144 не был указан URI, всегда использовался URI исходного запроса.
3145
3146 *) Исправление: после перенаправления запроса с помощью директивы
3147 try_files директива proxy_pass без URI могла использовать URI
3148 исходного запроса.
3149 Спасибо Lanshun Zhou.
3150
3151 *) Исправление: в модуле ngx_http_scgi_module.
3152
3153 *) Исправление: в модуле ngx_http_mp4_module.
3154
3155 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
3156
3157
3158 Изменения в nginx 1.1.11 12.12.2011
3159
3160 *) Добавление: параметр so_keepalive в директиве listen.
3161 Спасибо Всеволоду Стахову.
3162
3163 *) Добавление: параметр if_not_empty в директивах
3164 fastcgi/scgi/uwsgi_param.
3165
3166 *) Добавление: переменная $https.
3167
3168 *) Добавление: директива proxy_redirect поддерживает переменные в первом
3169 параметре.
3170
3171 *) Добавление: директива proxy_redirect поддерживает регулярные
3172 выражения.
3173
3174 *) Исправление: переменная $sent_http_cache_control могла содержать
3175 неверное значение при использовании директивы expires.
3176 Спасибо Yichun Zhang.
3177
3178 *) Исправление: директива read_ahead могла не работать при использовании
3179 совместно с try_files и open_file_cache.
3180
3181 *) Исправление: если в параметре inactive директивы proxy_cache_path
3182 было указано малое время, в рабочем процессе мог произойти
3183 segmentation fault.
3184
3185 *) Исправление: ответы из кэша могли зависать.
3186
3187
3188 Изменения в nginx 1.1.10 30.11.2011
3189
3190 *) Исправление: при использовании AIO на Linux в рабочем процессе
3191 происходил segmentation fault; ошибка появилась в 1.1.9.
3192
3193
3194 Изменения в nginx 1.1.9 28.11.2011
3195
3196 *) Изменение: теперь двойные кавычки экранируется при выводе
3197 SSI-командой echo.
3198 Спасибо Зауру Абасмирзоеву.
3199
3200 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
3201 используется TTL, возвращённый DNS-сервером.
3202 Спасибо Кириллу Коринскому.
3203
3204 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
3205 завершался аварийно.
3206
3207 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3208 если использовалось SNI; ошибка появилась в 1.1.2.
3209
3210 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
3211 Спасибо Александру Усову.
3212
3213 *) Исправление: сигнал SIGWINCH переставал работать после первого
3214 обновления исполняемого файла; ошибка появилась в 1.1.1.
3215
3216 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
3217 заголовку Content-Length, не кэширутся.
3218
3219 *) Исправление: в директиве scgi_param при использовании составных
3220 параметров.
3221
3222 *) Исправление: в методе epoll.
3223 Спасибо Yichun Zhang.
3224
3225 *) Исправление: в модуле ngx_http_flv_module.
3226 Спасибо Piotr Sikora.
3227
3228 *) Исправление: в модуле ngx_http_mp4_module.
3229
3230 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
3231 заголовке Host.
3232
3233 *) Исправление: директивы add_header и expires не работали для ответов с
3234 кодом 206, если запрос проксировался.
3235
3236 *) Исправление: nginx не собирался на FreeBSD 10.
3237
3238 *) Исправление: nginx не собирался на AIX.
3239
3240
3241 Изменения в nginx 1.1.8 14.11.2011
3242
3243 *) Изменение: модуль ngx_http_limit_zone_module переименован в
3244 ngx_http_limit_conn_module.
3245
3246 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
3247 новым синтаксисом.
3248
3249 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
3250 уровне.
3251
3252 *) Добавление: директива image_filter_sharpen.
3253
3254 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3255 если resolver получил большой DNS-ответ.
3256 Спасибо Ben Hawkes.
3257
3258 *) Исправление: в вычислении ключа для кэширования, если использовалась
3259 внутренняя реализация MD5; ошибка появилась в 1.0.4.
3260
3261 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3262 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
3263 или не передаваться при выключенном кэшировании, если кэширование
3264 было включено в другой части конфигурации.
3265
3266 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
3267 "Content-Length" в заголовке ответа, использовался аргумент start.
3268 Спасибо Piotr Sikora.
3269
3270
3271 Изменения в nginx 1.1.7 31.10.2011
3272
3273 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
3274 Спасибо Кириллу Коринскому.
3275
3276 *) Исправление: на старте или во время переконфигурации происходил
3277 segmentation fault, если директива ssl использовалась на уровне http
3278 и не был указан ssl_certificate.
3279
3280 *) Исправление: уменьшено потребление памяти при проксировании больших
3281 файлов, если они буферизировались на диск.
3282
3283 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3284 если использовалась директива "proxy_http_version 1.1".
3285
3286 *) Исправление: в директиве "expires @time".
3287
3288
3289 Изменения в nginx 1.1.6 17.10.2011
3290
3291 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
3292 именованный location контексты модулей очищаются.
3293 По запросу Yichun Zhang.
3294
3295 *) Изменение: теперь если сервер, описанный в блоке upstream, был
3296 признан неработающим, то после истечения fail_timeout на него будет
3297 отправлен только один запрос; сервер будет считаться работающим, если
3298 успешно ответит на этот запрос.
3299
3300 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
3301 \xXX.
3302
3303 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
3304 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
3305 X-Accel-Charset.
3306
3307 *) Добавление: уменьшение потребления памяти при использовании SSL.
3308
3309 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
3310 Спасибо Алексею Куцу.
3311
3312 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
3313 уровне server, применялись повторно, если для запроса не находилось
3314 ни одного location'а.
3315
3316 *) Исправление: при использовании "aio sendfile" могла происходить
3317 утечка сокетов.
3318
3319 *) Исправление: при использовании файлового AIO соединения с быстрыми
3320 клиентами могли быть закрыты по истечению send_timeout.
3321
3322 *) Исправление: в модуле ngx_http_autoindex_module.
3323
3324 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
3325 32-битных платформах.
3326
3327
3328 Изменения в nginx 1.1.5 05.10.2011
3329
3330 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
3331 Спасибо Peter Smit.
3332
3333 *) Исправление: при использовании proxy_cache_bypass могли быть
3334 закэшированы некэшируемые ответы.
3335 Спасибо John Ferlito.
3336
3337 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
3338 HTTP/1.1.
3339
3340 *) Исправление: закэшированные ответы с пустым телом возвращались
3341 некорректно; ошибка появилась в 0.8.31.
3342
3343 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
3344 некорректны; ошибка появилась в 0.8.32.
3345
3346 *) Исправление: в директиве return.
3347
3348 *) Исправление: при использовании директивы "ssl_session_cache builtin"
3349 происходил segmentation fault; ошибка появилась в 1.1.1.
3350
3351
3352 Изменения в nginx 1.1.4 20.09.2011
3353
3354 *) Добавление: модуль ngx_http_upstream_keepalive.
3355
3356 *) Добавление: директива proxy_http_version.
3357
3358 *) Добавление: директива fastcgi_keep_conn.
3359
3360 *) Добавление: директива worker_aio_requests.
3361
3362 *) Исправление: если nginx был собран с файловым AIO, он не мог
3363 запускаться на Linux без поддержки AIO.
3364
3365 *) Исправление: в обработке ошибок при работе с Linux AIO.
3366 Спасибо Hagai Avrahami.
3367
3368 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
3369
3370 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
3371 MP4-атом co64.
3372
3373
3374 Изменения в nginx 1.1.3 14.09.2011
3375
3376 *) Добавление: модуль ngx_http_mp4_module.
3377
3378 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
3379
3380 *) Исправление: open_file_cache не обновлял информацию о файле, если
3381 файл был изменён не атомарно.
3382
3383 *) Исправление: nginx не собирался на MacOSX 10.7.
3384
3385
3386 Изменения в nginx 1.1.2 05.09.2011
3387
3388 *) Изменение: теперь, если суммарный размер всех диапазонов больше
3389 размера исходного ответа, то nginx возвращает только исходный ответ,
3390 не обрабатывая диапазоны.
3391
3392 *) Добавление: директива max_ranges.
3393
3394 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
3395 ssl_prefer_server_cipher могли работать некорректно, если
3396 использовался SNI.
3397
3398 *) Исправление: в директивах proxy/fastcgi/scgi/
3399 uwsgi_ignore_client_abort.
3400
3401
3402 Изменения в nginx 1.1.1 22.08.2011
3403
3404 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
3405 число файлов, указанное в параметре load_files, либо работает не
3406 дольше времени, указанного в параметре loader_threshold.
3407
3408 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
3409
3410 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3411 на Solaris.
3412 Спасибо Денису Иванову.
3413
3414 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
3415
3416 *) Исправление: nginx не собирался на Linux 3.0.
3417
3418 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
3419 появилась в 1.1.0.
3420
3421 *) Исправление: обработка тела запроса могла быть неверной, если клиент
3422 использовал pipelining.
3423
3424 *) Исправление: в директиве request_body_in_single_buf.
3425
3426 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
3427 при использовании SSL-соединения с бэкендом.
3428
3429 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3430 были помечены флагом down.
3431
3432 *) Исправление: при переконфигурации мог произойти segmentation fault,
3433 если в предыдущей конфигурации был определён, но не использовался
3434 ssl_session_cache.
3435
3436 *) Исправление: при использовании большого количества backup-серверов в
3437 рабочем процессе мог произойти segmentation fault.
3438
3439 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
3440 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
3441 произойти segmentation fault; ошибка появилась в 0.8.40.
3442
3443
3444 Изменения в nginx 1.1.0 01.08.2011
3445
3446 *) Добавление: уменьшение времени работы загрузчика кэша.
3447
3448 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
3449 директив proxy/fastcgi/scgi/uwsgi_cache_path.
3450
3451 *) Добавление: уменьшение времени загрузки конфигураций с большим
3452 количеством HTTPS серверов.
3453
3454 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
3455 Спасибо Adrian Kotelba.
3456
3457 *) Добавление: директива lingering_close.
3458 Спасибо Максиму Дунину.
3459
3460 *) Исправление: закрытия соединения для pipelined-запросов.
3461 Спасибо Максиму Дунину.
3462
3463 *) Исправление: nginx не запрещал сжатие при получении значения
3464 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
3465
3466 *) Исправление: таймаута при небуферизированном проксировании.
3467 Спасибо Максиму Дунину.
3468
3469 *) Исправление: утечки памяти при использовании переменных в директиве
3470 proxy_pass при работе с бэкендом по HTTPS.
3471 Спасибо Максиму Дунину.
3472
3473 *) Исправление: в проверке параметра директивы proxy_pass, заданного
3474 переменными.
3475 Спасибо Lanshun Zhou.
3476
3477 *) Исправление: SSL не работал на QNX.
3478 Спасибо Максиму Дунину.
3479
3480 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
3481 --with-debug.
3482
3483
3484 Изменения в nginx 1.0.5 19.07.2011
3485
3486 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3487 "HIGH:!aNULL:!MD5".
3488 Спасибо Rob Stradling.
3489
3490 *) Добавление: директивы referer_hash_max_size и
3491 referer_hash_bucket_size.
3492 Спасибо Witold Filipczyk.
3493
3494 *) Добавление: переменная $uid_reset.
3495
3496 *) Исправление: при использовании кэширования в рабочем процессе мог
3497 произойти segmentation fault.
3498 Спасибо Lanshun Zhou.
3499
3500 *) Исправление: при использовании кэширования рабочие процессы могли
3501 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3502 Спасибо Максиму Дунину.
3503
3504 *) Исправление: сообщения "stalled cache updating".
3505 Спасибо Максиму Дунину.
3506
3507
3508 Изменения в nginx 1.0.4 01.06.2011
3509
3510 *) Изменение: теперь в регулярных выражениях в директиве map можно
3511 задать чувствительность к регистру с помощью префиксов "~" и "~*".
3512
3513 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3514 на Linux.
3515 Спасибо Денису Латыпову.
3516
3517 *) Исправление: сообщения "stalled cache updating".
3518
3519 *) Исправление: nginx не собирался с параметром
3520 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
3521
3522
3523 Изменения в nginx 1.0.3 25.05.2011
3524
3525 *) Добавление: директива auth_basic_user_file поддерживает шифрование
3526 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
3527 Спасибо Максиму Дунину.
3528
3529 *) Добавление: директива geoip_org и переменная $geoip_org.
3530 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
3531
3532 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
3533 поддерживают адреса IPv4, отображённые на IPv6 адреса.
3534
3535 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
3536 рабочем процессе происходил segmentation fault, если директивы access
3537 или deny были определены только для адресов IPv6; ошибка появилась в
3538 0.8.22.
3539
3540 *) Исправление: закэшированный ответ мог быть испорчен, если значения
3541 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
3542 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
3543
3544
3545 Изменения в nginx 1.0.2 10.05.2011
3546
3547 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
3548
3549 *) Исправление: в работе параметра rotate директивы image_filter.
3550 Спасибо Adam Bocim.
3551
3552 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
3553
3554
3555 Изменения в nginx 1.0.1 03.05.2011
3556
3557 *) Изменение: теперь директива split_clients использует алгоритм
3558 MurmurHash2 из-за лучшего распределения.
3559 Спасибо Олегу Мамонтову.
3560
3561 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
3562 ложными значениями.
3563 Спасибо Максиму Дунину.
3564
3565 *) Изменение: теперь по умолчанию nginx использует значение 511 для
3566 listen backlog на Linux.
3567
3568 *) Добавление: переменные $upstream_... можно использовать в SSI и
3569 перловом модулях.
3570
3571 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
3572 Спасибо Олегу Мамонтову.
3573
3574 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
3575 segmentation fault; ошибка появилась в 0.8.22.
3576 Спасибо Максиму Дунину.
3577
3578 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
3579
3580 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
3581 появилась в 0.9.3.
3582 Спасибо Dagobert Michelsen.
3583
3584 *) Исправление: переменная $request_time имела неверные значения, если
3585 использовались подзапросы; ошибка появилась в 0.8.47.
3586 Спасибо Игорю А. Валькову.
3587
3588
3589 Изменения в nginx 1.0.0 12.04.2011
3590
3591 *) Исправление: cache manager мог нагружать процессор после
3592 переконфигурации.
3593 Спасибо Максиму Дунину.
3594
3595 *) Исправление: директива "image_filter crop" неправильно работала в
3596 сочетании с "image_filter rotate 180".
3597
3598 *) Исправление: директива "satisfy any" запрещала выдачу
3599 пользовательской страницы для 401 кода.
3600
3601
3602 Изменения в nginx 0.9.7 04.04.2011
3603
3604 *) Добавление: теперь соединения в состоянии keepalive могут быть
3605 закрыты преждевременно, если у воркера нет свободных соединений.
3606 Спасибо Максиму Дунину.
3607
3608 *) Добавление: параметр rotate директивы image_filter.
3609 Спасибо Adam Bocim.
3610
3611 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
3612 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
3613 upstream.
3614
3615
3616 Изменения в nginx 0.9.6 21.03.2011
3617
3618 *) Добавление: директива map поддерживает регулярные выражения в
3619 качестве значения первого параметра.
3620
3621 *) Добавление: переменная $time_iso8601 для access_log.
3622 Спасибо Michael Lustfield.
3623
3624
3625 Изменения в nginx 0.9.5 21.02.2011
3626
3627 *) Изменение: теперь по умолчанию nginx использует значение -1 для
3628 listen backlog на Linux.
3629 Спасибо Андрею Нигматулину.
3630
3631 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
3632 Спасибо Денису Латыпову.
3633
3634 *) Исправление: исправление в умолчательной директиве proxy_redirect,
3635 если в директиве proxy_pass не был описан URI.
3636 Спасибо Максиму Дунину.
3637
3638 *) Исправление: директива error_page не работала с нестандартными кодами
3639 ошибок; ошибка появилась в 0.8.53.
3640 Спасибо Максиму Дунину.
3641
3642
3643 Изменения в nginx 0.9.4 21.01.2011
3644
3645 *) Добавление: директива server_name поддерживает переменную $hostname.
3646
3647 *) Добавление: 494 код для ошибки "Request Header Too Large".
3648
3649
3650 Изменения в nginx 0.9.3 13.12.2010
3651
3652 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
3653 то выделения в регулярных выражениях в директиве server_name не
3654 работали.
3655
3656 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
3657 0.9.0.
3658
3659
3660 Изменения в nginx 0.9.2 06.12.2010
3661
3662 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
3663 запроса клиента.
3664
3665 *) Изменение: использование accept(), если accept4() не реализован;
3666 ошибка появилась в 0.9.0.
3667
3668 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
3669
3670 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
3671 Спасибо Максиму Дунину.
3672
3673
3674 Изменения в nginx 0.9.1 30.11.2010
3675
3676 *) Исправление: директивы вида "return CODE message" не работали; ошибка
3677 появилась в 0.9.0.
3678
3679
3680 Изменения в nginx 0.9.0 29.11.2010
3681
3682 *) Добавление: директива keepalive_disable.
3683
3684 *) Добавление: директива map поддерживает переменные в качестве значения
3685 определяемой переменной.
3686
3687 *) Добавление: директива map поддерживает пустые строки в качестве
3688 значения первого параметра.
3689
3690 *) Добавление: директива map поддерживает выражения в первом параметре.
3691
3692 *) Добавление: страница руководства nginx(8).
3693 Спасибо Сергею Осокину.
3694
3695 *) Добавление: поддержка accept4() в Linux.
3696 Спасибо Simon Liu.
3697
3698 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
3699 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
3700
3701 *) Исправление: при использовании директивы auth_basic в рабочем
3702 процессе мог произойти segmentation fault.
3703 Спасибо Михаилу Лалетину.
3704
3705 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
3706 появилась в 0.8.42.
3707
3708
3709 Изменения в nginx 0.8.53 18.10.2010
3710
3711 *) Добавление: теперь директива error_page позволяет менять код статуса
3712 у редиректа.
3713
3714 *) Добавление: директива gzip_disable поддерживает специальную маску
3715 degradation.
3716
3717 *) Исправление: при использовании файлового AIO могла происходить утечка
3718 сокетов.
3719 Спасибо Максиму Дунину.
3720
3721 *) Исправление: если в первом сервере не была описана директива listen и
3722 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
3723 становился следующий сервер с директивой listen; ошибка появилась в
3724 0.8.21.
3725
3726
3727 Изменения в nginx 0.8.52 28.09.2010
3728
3729 *) Исправление: nginx использовал режим SSL для listen сокета, если для
3730 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
3731
3732
3733 Изменения в nginx 0.8.51 27.09.2010
3734
3735 *) Изменение: директива secure_link_expires упразднена.
3736
3737 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
3738 alert на error.
3739
3740 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
3741 несколько раз.
3742
3743
3744 Изменения в nginx 0.8.50 02.09.2010
3745
3746 *) Добавление: директивы secure_link, secure_link_md5 и
3747 secure_link_expires модуля ngx_http_secure_link_module.
3748
3749 *) Добавление: ключ -q.
3750 Спасибо Геннадию Махомеду.
3751
3752 *) Исправление: при использовании кэширования рабочие процессы и могли
3753 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3754
3755 *) Исправление: в директиве gzip_disable.
3756 Спасибо Derrick Petzold.
3757
3758 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
3759 reopen, reload процессу, запущенному в другой сессии.
3760
3761
3762 Изменения в nginx 0.8.49 09.08.2010
3763
3764 *) Добавление: директива image_filter_jpeg_quality поддерживает
3765 переменные.
3766
3767 *) Исправление: при использовании переменной $geoip_region_name в
3768 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3769 0.8.48.
3770
3771 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
3772 следующего запроса; ошибка появилась в 0.8.48.
3773
3774
3775 Изменения в nginx 0.8.48 03.08.2010
3776
3777 *) Изменение: теперь по умолчанию директива server_name имеет значение
3778 пустое имя "".
3779 Спасибо Геннадию Махомеду.
3780
3781 *) Изменение: теперь по умолчанию директива server_name_in_redirect
3782 имеет значение off.
3783
3784 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
3785 $geoip_region_name.
3786 Спасибо Christine McGonagle.
3787
3788 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
3789 scgi_pass не наследовались в блоки limit_except.
3790
3791 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
3792 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
3793 появилась в 0.8.46.
3794
3795 *) Исправление: директива fastcgi_split_path_info неверно использовала
3796 выделения, если в выделения попадала только часть URI.
3797 Спасибо Юрию Тарадаю и Frank Enderle.
3798
3799 *) Исправление: директива rewrite не экранировала символ ";" при
3800 копировании из URI в аргументы.
3801 Спасибо Daisuke Murase.
3802
3803 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
3804 если изображение было больше размера image_filter_buffer.
3805
3806
3807 Изменения в nginx 0.8.47 28.07.2010
3808
3809 *) Исправление: переменная $request_time имела неверные значения для
3810 подзапросов.
3811
3812 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
3813
3814 *) Исправление: если использовался параметр max_size, то cache manager
3815 мог зациклиться; ошибка появилась в 0.8.46.
3816
3817
3818 Изменения в nginx 0.8.46 19.07.2010
3819
3820 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
3821 и scgi_no_cache теперь влияют только на сохранение закэшированного
3822 ответа.
3823
3824 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
3825 uwsgi_cache_bypass и scgi_cache_bypass.
3826
3827 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
3828 ошибки работы с бэкендом: память освобождалась только по истечении
3829 времени неактивности или при недостатке памяти.
3830
3831
3832 Изменения в nginx 0.8.45 13.07.2010
3833
3834 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
3835 Спасибо Laurence Rowe.
3836
3837 *) Исправление: ответ SSI модуля мог передаваться не полностью после
3838 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
3839 Спасибо Максиму Дунину.
3840
3841 *) Исправление: директива listen не поддерживала параметр setfib=0.
3842
3843
3844 Изменения в nginx 0.8.44 05.07.2010
3845
3846 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
3847 заголовке которых есть строка "Set-Cookie".
3848
3849 *) Добавление: директива listen поддерживает параметр setfib.
3850 Спасибо Андрею Филонову.
3851
3852 *) Исправление: директива sub_filter могла изменять регистр букв при
3853 частичном совпадении.
3854
3855 *) Исправление: совместимость с HP/UX.
3856
3857 *) Исправление: совместимость с компилятором AIX xlC_r.
3858
3859 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
3860 запросы.
3861 Спасибо Miroslaw Jaworski.
3862
3863
3864 Изменения в nginx 0.8.43 30.06.2010
3865
3866 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
3867
3868 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
3869 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
3870 0.8.42.
3871
3872 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
3873 переконфигурации.
3874 Спасибо Максиму Дунину.
3875
3876 *) Исправление: переменную $uid_set можно использовать на любой стадии
3877 обработки запроса.
3878
3879
3880 Изменения в nginx 0.8.42 21.06.2010
3881
3882 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
3883 выражениями, если запрос полностью совпал с location'ом, заданным
3884 строкой префикса. Предыдущее поведение появилось в 0.7.1.
3885
3886 *) Добавление: модуль ngx_http_scgi_module.
3887 Спасибо Manlio Perillo.
3888
3889 *) Добавление: в директиве return можно добавлять текст ответа.
3890
3891
3892 Изменения в nginx 0.8.41 15.06.2010
3893
3894 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
3895 при запросе файла с неверной кодировкой UTF-8.
3896
3897 *) Изменение: теперь nginx разрешает использовать пробелы в строке
3898 запроса.
3899
3900 *) Исправление: директива proxy_redirect неправильно изменяла строку
3901 "Refresh" в заголовке ответа бэкенда.
3902 Спасибо Андрею Андрееву и Максиму Согину.
3903
3904 *) Исправление: nginx не поддерживал путь без имени хоста в строке
3905 "Destination" в заголовке запроса.
3906
3907
3908 Изменения в nginx 0.8.40 07.06.2010
3909
3910 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
3911 умолчанию.
3912 Спасибо Jose Antonio Vazquez Gonzalez.
3913
3914 *) Добавление: модуль ngx_http_uwsgi_module.
3915 Спасибо Roberto De Ioris.
3916
3917 *) Добавление: директива fastcgi_param со значением, начинающимся со
3918 строки "HTTP_", изменяет строку заголовка в запросе клиента.
3919
3920 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3921 заголовке запроса клиента передавались FastCGI-серверу при
3922 кэшировании.
3923
3924 *) Исправление: listen unix domain сокет нельзя было изменить во время
3925 переконфигурации.
3926 Спасибо Максиму Дунину.
3927
3928
3929 Изменения в nginx 0.8.39 31.05.2010
3930
3931 *) Исправление: наследуемая директива alias неправильно работала во
3932 вложенном location'е.
3933
3934 *) Исправление: в комбинации директив alias с переменными и try_files;
3935
3936 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
3937 время обновления без перерыва.
3938 Спасибо Максиму Дунину.
3939
3940
3941 Изменения в nginx 0.8.38 24.05.2010
3942
3943 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
3944
3945 *) Добавление: теперь при использовании переменной $scheme в директиве
3946 rewrite автоматически делается редирект.
3947 Спасибо Piotr Sikora.
3948
3949 *) Исправление: теперь задержки в директиве limit_req соответствует
3950 описанному алгоритму.
3951 Спасибо Максиму Дунину.
3952
3953 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
3954 перловом модулях.
3955
3956
3957 Изменения в nginx 0.8.37 17.05.2010
3958
3959 *) Добавление: модуль ngx_http_split_clients_module.
3960
3961 *) Добавление: директива map поддерживает ключи больше 255 символов.
3962
3963 *) Исправление: nginx игнорировал значения "private" и "no-store" в
3964 строке "Cache-Control" в заголовке ответа бэкенда.
3965
3966 *) Исправление: параметр stub в SSI-директиве include не использовался,
3967 если пустой ответ имел код 200.
3968
3969 *) Исправление: если проксированный или FastCGI запрос внутренне
3970 перенаправлялся в другой проксированный или FastCGI location, то в
3971 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3972 0.8.33.
3973 Спасибо Yichun Zhang.
3974
3975 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
3976 таймаута.
3977 Спасибо Alan Batie.
3978
3979
3980 Изменения в nginx 0.8.36 22.04.2010
3981
3982 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
3983 методы DELETE, COPY и MOVE для симлинков.
3984
3985 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
3986 основном запросе значения переменных $query_string, $arg_... и им
3987 подобных.
3988
3989 *) Исправление: значение переменной повторно экранировалось после
3990 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
3991
3992 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
3993 Спасибо Vicente Aguilar и Максиму Дунину.
3994
3995 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
3996 Спасибо Максиму Дунину.
3997
3998 *) Исправление: nginx не собирался с параметром --without-http-cache;
3999 ошибка появилась в 0.8.35.
4000
4001
4002 Изменения в nginx 0.8.35 01.04.2010
4003
4004 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
4005
4006 *) Добавление: директива chunked_transfer_encoding.
4007
4008 *) Исправление: символ "&" при копировании в аргументы в правилах
4009 rewrite не экранировался.
4010
4011 *) Исправление: nginx мог завершаться аварийно во время обработки
4012 сигнала или при использовании директивы timer_resolution на
4013 платформах, не поддерживающих методы kqueue или eventport.
4014 Спасибо George Xie и Максиму Дунину.
4015
4016 *) Исправление: если временные файлы и постоянное место хранения
4017 располагались на разных файловых системах, то у постоянных файлов
4018 время изменения было неверным.
4019 Спасибо Максиму Дунину.
4020
4021 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
4022 "memcached sent invalid trailer".
4023 Спасибо Максиму Дунину.
4024
4025 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
4026 текстов.
4027 Спасибо Максиму Дунину.
4028
4029 *) Исправление: в рабочем процессе происходил segmentation fault, если
4030 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
4031 появилась в 0.8.34.
4032 Спасибо Максиму Дунину.
4033
4034
4035 Изменения в nginx 0.8.34 03.03.2010
4036
4037 *) Исправление: nginx не поддерживал все шифры, используемые в
4038 клиентских сертификатах.
4039 Спасибо Иннокентию Еникееву.
4040
4041 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
4042 ответом было много вывода в stderr.
4043
4044 *) Исправление: nginx не поддерживал HTTPS-рефереры.
4045
4046 *) Исправление: nginx/Windows мог не находить файлы, если путь в
4047 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
4048
4049 *) Исправление: переменная $date_local выдавала неверное время, если
4050 использовался формат "%s".
4051 Спасибо Максиму Дунину.
4052
4053 *) Исправление: если ssl_session_cache не был установлен или установлен
4054 в none, то при проверке клиентского сертификаты могла происходить
4055 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
4056
4057 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
4058 диапазон включал в себя одну и более сетей размером /16 и не
4059 начинался на границе сети размером /16.
4060
4061 *) Исправление: блок, используемый в параметре stub в SSI-директиве
4062 include, выводился с MIME-типом "text/plain".
4063
4064 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
4065
4066
4067 Изменения в nginx 0.8.33 01.02.2010
4068
4069 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
4070 Спасибо Dan Crowley, Core Security Technologies.
4071
4072 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
4073 Спасибо Dan Crowley, Core Security Technologies.
4074
4075 *) Изменение: теперь keepalive соединения после запросов POST не
4076 запрещаются для MSIE 7.0+.
4077 Спасибо Adam Lounds.
4078
4079 *) Изменение: теперь keepalive соединения запрещены для Safari.
4080 Спасибо Joshua Sierles.
4081
4082 *) Исправление: если проксированный или FastCGI запрос внутренне
4083 перенаправлялся в другой проксированный или FastCGI location, то
4084 переменная $upstream_response_time могла иметь ненормально большое
4085 значение; ошибка появилась в 0.8.7.
4086
4087 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4088 отбрасывания тела запроса; ошибка появилась в 0.8.11.
4089
4090
4091 Изменения в nginx 0.8.32 11.01.2010
4092
4093 *) Исправление: ошибки при использовании кодировки UTF-8 в
4094 ngx_http_autoindex_module.
4095 Спасибо Максиму Дунину.
4096
4097 *) Исправление: именованные выделения в регулярных выражениях работали
4098 только для двух переменных.
4099 Спасибо Максиму Дунину.
4100
4101 *) Исправление: теперь в строке заголовка запроса "Host" используется
4102 имя "localhost", если в директиве auth_http указан unix domain сокет.
4103 Спасибо Максиму Дунину.
4104
4105 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
4106 ответов.
4107 Спасибо Julian Reich.
4108
4109 *) Исправление: если директива "expires modified" выставляла дату в
4110 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
4111 отрицательное число.
4112 Спасибо Алексею Капранову.
4113
4114
4115 Изменения в nginx 0.8.31 23.12.2009
4116
4117 *) Добавление: теперь директива error_page может перенаправлять ответы
4118 со статусом 301 и 302.
4119
4120 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
4121 $geoip_longitude.
4122 Спасибо Arvind Sundararajan.
4123
4124 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
4125 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
4126
4127 *) Исправление: nginx закрывал соединение при запросе закэшированного
4128 ответа с пустым телом.
4129 Спасибо Piotr Sikora.
4130
4131 *) Исправление: nginx мог не собираться gcc 4.x при использовании
4132 оптимизации -O2 и выше.
4133 Спасибо Максиму Дунину и Денису Латыпову.
4134
4135 *) Исправление: регулярные выражения в location всегда тестировались с
4136 учётом регистра; ошибка появилась в 0.8.25.
4137
4138 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
4139 проксируемого запроса была строка "If-None-Match".
4140 Спасибо Tim Dettrick и David Kostal.
4141
4142 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
4143 перезаписи уже существующего файла.
4144
4145
4146 Изменения в nginx 0.8.30 15.12.2009
4147
4148 *) Изменение: теперь по умолчанию размер буфера директивы
4149 large_client_header_buffers равен 8K.
4150 Спасибо Andrew Cholakian.
4151
4152 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
4153
4154 *) Исправление: nginx/Windows пытался дважды переименовать временный
4155 файл при перезаписи уже существующего файла.
4156
4157 *) Исправление: ошибки double free or corruption, возникающей, если имя
4158 хоста не было найдено; ошибка появилась в 0.8.22.
4159 Спасибо Константину Свисту.
4160
4161 *) Исправление: в использовании libatomic на некоторых платформах.
4162 Спасибо W-Mark Kubacki.
4163
4164
4165 Изменения в nginx 0.8.29 30.11.2009
4166
4167 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
4168 ответа "009".
4169
4170 *) Добавление: директивы addition_types, charset_types, gzip_types,
4171 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
4172
4173 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
4174 Спасибо W-Mark Kubacki.
4175
4176 *) Добавление: параметр --with-libatomic[=DIR] в configure.
4177 Спасибо W-Mark Kubacki.
4178
4179 *) Исправление: listen unix domain сокет имели ограниченные права
4180 доступа.
4181
4182 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
4183 обрабатывались.
4184
4185 *) Исправление: именованные выделения в регулярных выражениях, заданные
4186 как "?P<...>", не работали в директиве server_name.
4187 Спасибо Максиму Дунину.
4188
4189
4190 Изменения в nginx 0.8.28 23.11.2009
4191
4192 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
4193 появилась в 0.8.25.
4194
4195
4196 Изменения в nginx 0.8.27 17.11.2009
4197
4198 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
4199 появилась в 0.8.25.
4200
4201
4202 Изменения в nginx 0.8.26 16.11.2009
4203
4204 *) Исправление: ошибки при использовании выделений в директиве rewrite;
4205 ошибка появилась в 0.8.25.
4206
4207 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4208 появилась в 0.8.25.
4209
4210
4211 Изменения в nginx 0.8.25 16.11.2009
4212
4213 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
4214 не найдена с помощью метода $r->variable().
4215
4216 *) Добавление: модуль ngx_http_degradation_module.
4217
4218 *) Добавление: именованные выделения в регулярных выражениях.
4219
4220 *) Добавление: теперь при использовании переменных в директиве
4221 proxy_pass не требуется задавать URI.
4222
4223 *) Добавление: теперь директива msie_padding работает и для Chrome.
4224
4225 *) Исправление: в рабочем процессе происходил segmentation fault при
4226 недостатке памяти; ошибка появилась в 0.8.18.
4227
4228 *) Исправление: nginx передавал сжатые ответы клиентам, не
4229 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
4230 ошибка появилась в 0.8.16.
4231
4232
4233 Изменения в nginx 0.8.24 11.11.2009
4234
4235 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
4236 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
4237
4238 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4239 появилась в 0.8.23.
4240
4241 *) Исправление: параметр "unix:" в директиве set_real_ip_from
4242 неправильно наследовался с предыдущего уровня.
4243
4244 *) Исправление: в resolver'е при определении пустого имени.
4245
4246
4247 Изменения в nginx 0.8.23 11.11.2009
4248
4249 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
4250 Спасибо Максиму Дунину.
4251
4252 *) Исправление: listen unix domain сокет не наследовался во время
4253 обновления без перерыва.
4254
4255 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
4256 без ещё одной директивы с любым IP-адресом.
4257
4258 *) Исправление: segmentation fault и зацикливания в resolver'е.
4259
4260 *) Исправление: в resolver'е.
4261 Спасибо Артёму Бохану.
4262
4263
4264 Изменения в nginx 0.8.22 03.11.2009
4265
4266 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
4267
4268 *) Добавление: директивы access и deny поддерживают IPv6.
4269
4270 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
4271 заголовках запроса.
4272
4273 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
4274
4275 *) Исправление: nginx не удалял unix domain сокет после тестирования
4276 конфигурации.
4277
4278 *) Исправление: nginx удалял unix domain сокет во время обновления без
4279 перерыва.
4280
4281 *) Исправление: оператор "!-x" не работал.
4282 Спасибо Максиму Дунину.
4283
4284 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4285 использовании limit_rate в HTTPS сервере.
4286 Спасибо Максиму Дунину.
4287
4288 *) Исправление: при записи в лог переменной $limit_rate в рабочем
4289 процессе происходил segmentation fault.
4290 Спасибо Максиму Дунину.
4291
4292 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4293 если внутри блока server не было директивы listen; ошибка появилась в
4294 0.8.21.
4295
4296
4297 Изменения в nginx 0.8.21 26.10.2009
4298
4299 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
4300
4301 *) Добавление: директива listen модуля HTTP поддерживает unix domain
4302 сокеты.
4303 Спасибо Hongli Lai.
4304
4305 *) Добавление: параметр "default_server" в директиве listen.
4306
4307 *) Добавление: теперь параметр "default" не обязателен для установки
4308 параметров listen-сокета.
4309
4310 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
4311 платформах;
4312
4313 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4314
4315
4316 Изменения в nginx 0.8.20 14.10.2009
4317
4318 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4319 "HIGH:!ADH:!MD5".
4320
4321 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
4322 слэш для линков на каталоги; ошибка появилась в 0.7.15.
4323
4324 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
4325 --error-log-path; ошибка появилась в 0.7.53.
4326
4327 *) Исправление: nginx не считал запятую разделителем в строке
4328 "Cache-Control" в заголовке ответа бэкенда.
4329
4330 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
4331 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
4332 не имел достаточно прав для работы с каталогами верхнего уровня.
4333
4334 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
4335 FastCGI-сервера не скрывались при кэшировании, если не использовались
4336 директивы fastcgi_hide_header с любыми параметрами.
4337
4338 *) Исправление: nginx неверно считал размер кэша на диске.
4339
4340
4341 Изменения в nginx 0.8.19 06.10.2009
4342
4343 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
4344
4345 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4346 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
4347
4348 *) Исправление: директива limit_req не работала; ошибка появилась в
4349 0.8.18.
4350
4351
4352 Изменения в nginx 0.8.18 06.10.2009
4353
4354 *) Добавление: директива read_ahead.
4355
4356 *) Добавление: теперь можно использовать несколько директив
4357 perl_modules.
4358
4359 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
4360
4361 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
4362 bucket.
4363 Спасибо Максиму Дунину.
4364
4365 *) Исправление: nginx не работал на Linux/sparc.
4366 Спасибо Marcus Ramberg.
4367
4368 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
4369 ответе на запрос MKCOL.
4370 Спасибо Xie Zhenye.
4371
4372 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
4373 появилась в 0.8.11.
4374
4375 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4376
4377
4378 Изменения в nginx 0.8.17 28.09.2009
4379
4380 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
4381 в заголовке запроса.
4382
4383 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
4384
4385 *) Добавление: переменная $ssl_session_id.
4386
4387 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4388
4389
4390 Изменения в nginx 0.8.16 22.09.2009
4391
4392 *) Добавление: директива image_filter_transparency.
4393
4394 *) Исправление: директива "addition_types" была неверно названа
4395 "addtion_types".
4396
4397 *) Исправление: порчи кэша resolver'а.
4398 Спасибо Matthew Dempsky.
4399
4400 *) Исправление: утечки памяти в resolver'е.
4401 Спасибо Matthew Dempsky.
4402
4403 *) Исправление: неверная строка запроса в переменной $request
4404 записывалась в access_log только при использовании error_log на
4405 уровне info или debug.
4406
4407 *) Исправление: в поддержке альфа-канала PNG в модуле
4408 ngx_http_image_filter_module.
4409
4410 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
4411 заголовок ответа, если обе директивы gzip_static и gzip_vary были
4412 включены.
4413
4414 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
4415 nginx/Windows.
4416
4417 *) Исправление: ошибки при использовании post_action; ошибка появилась в
4418 0.8.11.
4419 Спасибо Игорю Артемьеву.
4420
4421
4422 Изменения в nginx 0.8.15 14.09.2009
4423
4424 *) Безопасность: при обработке специально созданного запроса в рабочем
4425 процессе мог произойти segmentation fault.
4426 Спасибо Chris Ries.
4427
4428 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
4429 .domain-some.tld, то имя .sub.domain.tld попадало под маску
4430 .domain.tld.
4431
4432 *) Исправление: в поддержке прозрачности в модуле
4433 ngx_http_image_filter_module.
4434
4435 *) Исправление: в файловом AIO.
4436
4437 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
4438 появилась в 0.8.11.
4439
4440 *) Исправление: ошибки при использовании встроенного перла; ошибка
4441 появилась в 0.8.11.
4442
4443
4444 Изменения в nginx 0.8.14 07.09.2009
4445
4446 *) Исправление: устаревший закэшированный запрос мог залипнуть в
4447 состоянии "UPDATING".
4448
4449 *) Исправление: при использовании error_log на уровне info или debug в
4450 рабочем процессе мог произойти segmentation fault.
4451 Спасибо Сергею Боченкову.
4452
4453 *) Исправление: ошибки при использовании встроенного перла; ошибка
4454 появилась в 0.8.11.
4455
4456 *) Исправление: директива error_page не перенаправляла ошибку 413;
4457 ошибка появилась в 0.6.10.
4458
4459
4460 Изменения в nginx 0.8.13 31.08.2009
4461
4462 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
4463
4464 *) Исправление: nginx не собирался без параметра --with-file-aio на
4465 FreeBSD; ошибка появилась в 0.8.12.
4466
4467
4468 Изменения в nginx 0.8.12 31.08.2009
4469
4470 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
4471
4472 *) Исправление: ошибки при использовании try_files; ошибка появилась в
4473 0.8.11.
4474
4475 *) Исправление: ошибки при использовании memcached; ошибка появилась в
4476 0.8.11.
4477
4478
4479 Изменения в nginx 0.8.11 28.08.2009
4480
4481 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
4482 для MSIE 6.0 SV1.
4483
4484 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
4485
4486 *) Добавление: директива directio_alignment.
4487
4488
4489 Изменения в nginx 0.8.10 24.08.2009
4490
4491 *) Исправление: утечек памяти при использовании базы GeoIP City.
4492
4493 *) Исправление: ошибки при копировании временных файлов в постоянное
4494 место хранения; ошибка появилась в 0.8.9.
4495
4496
4497 Изменения в nginx 0.8.9 17.08.2009
4498
4499 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
4500 процесс; это должно улучшить обработку больших кэшей.
4501
4502 *) Добавление: теперь временные файлы и постоянное место хранения могут
4503 располагаться на разных файловых системах.
4504
4505
4506 Изменения в nginx 0.8.8 10.08.2009
4507
4508 *) Исправление: в обработке заголовков ответа, разделённых в
4509 FastCGI-записях.
4510
4511 *) Исправление: если запрос обрабатывался в двух проксированных или
4512 FastCGI location'ах и в первом из них использовалось кэширование, то
4513 в рабочем процессе происходил segmentation fault; ошибка появилась в
4514 0.8.7.
4515
4516
4517 Изменения в nginx 0.8.7 27.07.2009
4518
4519 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
4520
4521 *) Изменение: параметр ask директивы ssl_verify_client изменён на
4522 параметр optional и теперь он проверяет клиентский сертификат, если
4523 он был предложен.
4524 Спасибо Brice Figureau.
4525
4526 *) Добавление: переменная $ssl_client_verify.
4527 Спасибо Brice Figureau.
4528
4529 *) Добавление: директива ssl_crl.
4530 Спасибо Brice Figureau.
4531
4532 *) Добавление: параметр proxy директивы geo.
4533
4534 *) Добавление: директива image_filter поддерживает переменные для
4535 задания размеров.
4536
4537 *) Исправление: использование переменной $ssl_client_cert портило
4538 память; ошибка появилась в 0.7.7.
4539 Спасибо Сергею Журавлёву.
4540
4541 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
4542 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
4543 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
4544 Спасибо Максиму Дунину.
4545
4546 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
4547 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
4548 Спасибо Максиму Дунину.
4549
4550 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
4551 ответы в подзапросах; ошибка появилась в 0.8.5.
4552
4553
4554 Изменения в nginx 0.8.6 20.07.2009
4555
4556 *) Добавление: модуль ngx_http_geoip_module.
4557
4558 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
4559 document" для правильного документа.
4560 Спасибо Kuramoto Eiji.
4561
4562 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
4563 location'ов, заданных регулярным выражением, теперь всегда делается
4564 сравнение без учёта регистра символов.
4565
4566 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
4567 Спасибо Hugo Leisink.
4568
4569 *) Исправление: имя файла указанного в --conf-path игнорировалось при
4570 установке; ошибка появилась в 0.6.6.
4571 Спасибо Максиму Дунину.
4572
4573
4574 Изменения в nginx 0.8.5 13.07.2009
4575
4576 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
4577
4578 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
4579 для неверных имени/пароля возвращалась 500-ая ошибка.
4580
4581 *) Исправление: ответы модуля ngx_http_perl_module не работали в
4582 подзапросах.
4583
4584 *) Исправление: в модуле ngx_http_limit_req_module.
4585 Спасибо Максиму Дунину.
4586
4587
4588 Изменения в nginx 0.8.4 22.06.2009
4589
4590 *) Исправление: nginx не собирался с параметром --without-http-cache;
4591 ошибка появилась в 0.8.3.
4592
4593
4594 Изменения в nginx 0.8.3 19.06.2009
4595
4596 *) Добавление: переменная $upstream_cache_status.
4597
4598 *) Исправление: nginx не собирался на MacOSX 10.6.
4599
4600 *) Исправление: nginx не собирался с параметром --without-http-cache;
4601 ошибка появилась в 0.8.2.
4602
4603 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
4604 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
4605 в рабочем процессе происходил segmentation fault.
4606 Спасибо Евгению Мычло.
4607
4608
4609 Изменения в nginx 0.8.2 15.06.2009
4610
4611 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
4612 на старте.
4613
4614 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
4615 долго; ошибка появилась в 0.7.4.
4616
4617
4618 Изменения в nginx 0.8.1 08.06.2009
4619
4620 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
4621 fastcgi_cache_use_stale.
4622
4623 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4624 заголовке запроса клиента передавались бэкенду при кэшировании, если
4625 не использовалась директива proxy_set_header с любыми параметрами.
4626
4627 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
4628 не скрывались при кэшировании, если не использовались директивы
4629 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
4630
4631 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
4632 GIF87a.
4633 Спасибо Денису Ильиных.
4634
4635 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
4636 появилась в 0.7.56.
4637
4638
4639 Изменения в nginx 0.8.0 02.06.2009
4640
4641 *) Добавление: директива keepalive_requests.
4642
4643 *) Добавление: директива limit_rate_after.
4644 Спасибо Ivan Debnar.
4645
4646 *) Исправление: XSLT-фильтр не работал в подзапросах.
4647
4648 *) Исправление: обработке относительных путей в nginx/Windows.
4649
4650 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
4651 fastcgi_cache в nginx/Windows.
4652
4653 *) Исправление: в обработке ошибок выделения памяти.
4654 Спасибо Максиму Дунину и Кириллу Коринскому.
4655
4656
4657 Изменения в nginx 0.7.59 25.05.2009
4658
4659 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
4660
4661 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
4662 Спасибо Максиму Дунину.
4663
4664 *) Исправление: при использовании переменной $request_body в рабочем
4665 процессе происходил segmentation fault, если в запросе не было тела;
4666 ошибка появилась в 0.7.58.
4667
4668 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
4669 ошибка появилась в 0.7.56.
4670
4671 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
4672 обрабатывались SSI-, charset- и gzip-фильтрами.
4673
4674 *) Исправление: директива charset не ставила кодировку для ответов
4675 модуля ngx_http_gzip_static_module.
4676
4677
4678 Изменения в nginx 0.7.58 18.05.2009
4679
4680 *) Добавление: директива listen почтового прокси-сервера поддерживает
4681 IPv6.
4682
4683 *) Добавление: директива image_filter_jpeg_quality.
4684
4685 *) Добавление: директива client_body_in_single_buffer.
4686
4687 *) Добавление: переменная $request_body.
4688
4689 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
4690 файлов, содержащих символ ":".
4691
4692 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
4693 0.7.53.
4694 Спасибо Денису Латыпову.
4695
4696
4697 Изменения в nginx 0.7.57 12.05.2009
4698
4699 *) Исправление: при перенаправлении ошибок модуля
4700 ngx_http_image_filter_module в именованный location в рабочем
4701 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
4702
4703
4704 Изменения в nginx 0.7.56 11.05.2009
4705
4706 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
4707 HTTP.
4708
4709 *) Исправление: в модуле ngx_http_image_filter_module.
4710
4711
4712 Изменения в nginx 0.7.55 06.05.2009
4713
4714 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
4715 fastcgi_cache_use_stale не работали.
4716
4717 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
4718 заголовка.
4719
4720 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
4721 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
4722
4723 *) Исправление: при использовании директивы debug_connection в рабочем
4724 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
4725
4726 *) Исправление: в сборке модуля ngx_http_image_filter_module.
4727
4728 *) Исправление: файлы больше 2G не передавались с использованием
4729 $r->sendfile.
4730 Спасибо Максиму Дунину.
4731
4732
4733 Изменения в nginx 0.7.54 01.05.2009
4734
4735 *) Добавление: модуль ngx_http_image_filter_module.
4736
4737 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
4738
4739 *) Исправление: при использовании переменных "open_file_cache_errors on"
4740 в рабочем процессе мог произойти segmentation fault; ошибка появилась
4741 в 0.7.53.
4742
4743 *) Исправление: директива "port_in_redirect off" не работала; ошибка
4744 появилась в 0.7.39.
4745
4746 *) Исправление: улучшение обработки ошибок метода select.
4747
4748 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
4749
4750 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
4751 ошибка появилась в 0.7.53.
4752
4753
4754 Изменения в nginx 0.7.53 27.04.2009
4755
4756 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
4757 самого начала работы.
4758
4759 *) Добавление: теперь ошибки и предупреждения при старте записываются в
4760 error_log и выводятся на stderr.
4761
4762 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
4763 как префикс каталог, в котором он был запущен.
4764
4765 *) Добавление: ключ -p.
4766
4767 *) Добавление: ключ -s на Unix-платформах.
4768
4769 *) Добавление: ключи -? и -h.
4770 Спасибо Jerome Loyet.
4771
4772 *) Добавление: теперь ключи можно задавать в сжатой форме.
4773
4774 *) Исправление: nginx/Windows не работал, если файл конфигурации был
4775 задан ключом -c.
4776
4777 *) Исправление: при использовании директив proxy_store, fastcgi_store,
4778 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
4779 Спасибо Максиму Дунину.
4780
4781 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
4782 почтового прокси-сервера передавалось неверное значение; ошибка
4783 появилась в 0.7.34.
4784 Спасибо Simon Lecaille.
4785
4786 *) Исправление: при логгировании на Linux не писались текстовые описания
4787 системных ошибок; ошибка появилась в 0.7.45.
4788
4789 *) Исправление: директива fastcgi_cache_min_uses не работала.
4790 Спасибо Андрею Воробьёву.
4791
4792
4793 Изменения в nginx 0.7.52 20.04.2009
4794
4795 *) Добавление: первая бинарная версия под Windows.
4796
4797 *) Исправление: корректная обработка метода HEAD при кэшировании.
4798
4799 *) Исправление: корректная обработка строк "If-Modified-Since",
4800 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
4801
4802 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
4803 заголовке ответа для закэшированных ответов.
4804
4805 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
4806 perl поддерживал потоки, то при выходе основного процесса могла
4807 выдаваться ошибка "panic: MUTEX_LOCK".
4808
4809 *) Исправление: nginx не собирался с параметром --without-http-cache;
4810 ошибка появилась в 0.7.48.
4811
4812 *) Исправление: nginx не собирался на платформах, отличных от i386,
4813 amd64, sparc и ppc; ошибка появилась в 0.7.42.
4814
4815
4816 Изменения в nginx 0.7.51 12.04.2009
4817
4818 *) Добавление: директива try_files поддерживает код ответа в последнем
4819 параметре.
4820
4821 *) Добавление: теперь в директиве return можно использовать любой код
4822 ответа.
4823
4824 *) Исправление: директива error_page делала внешний редирект без строки
4825 запроса; ошибка появилась в 0.7.44.
4826
4827 *) Исправление: если сервера слушали на нескольких явно описанных
4828 адресах, то виртуальные сервера могли не работать; ошибка появилась в
4829 0.7.39.
4830
4831
4832 Изменения в nginx 0.7.50 06.04.2009
4833
4834 *) Исправление: переменные $arg_... не работали; ошибка появилась в
4835 0.7.49.
4836
4837
4838 Изменения в nginx 0.7.49 06.04.2009
4839
4840 *) Исправление: при использовании переменных $arg_... в рабочем процессе
4841 мог произойти segmentation fault; ошибка появилась в 0.7.48.
4842
4843
4844 Изменения в nginx 0.7.48 06.04.2009
4845
4846 *) Добавление: директива proxy_cache_key.
4847
4848 *) Исправление: теперь nginx учитывает при кэшировании строки
4849 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
4850 бэкенда.
4851
4852 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
4853
4854 *) Исправление: директива fastcgi_cache_key не наследовалась.
4855
4856 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
4857 Спасибо Максиму Дунину.
4858
4859 *) Исправление: nginx не собирался с библиотекой uclibc.
4860 Спасибо Timothy Redaelli.
4861
4862 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
4863 в 0.7.46.
4864
4865
4866 Изменения в nginx 0.7.47 01.04.2009
4867
4868 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
4869 ошибка появилась в 0.7.46.
4870
4871 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
4872
4873 *) Исправление: если использовался параметр max_size, то cache manager
4874 мог удалить весь кэш; ошибка появилась в 0.7.46.
4875
4876 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
4877 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
4878 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
4879 в 0.7.46.
4880
4881 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4882 перенаправлении запроса проксированному или FastCGI-серверу с помощью
4883 error_page или try_files; ошибка появилась в 0.7.44.
4884
4885
4886 Изменения в nginx 0.7.46 30.03.2009
4887
4888 *) Исправление: архив предыдущего релиза был неверным.
4889
4890
4891 Изменения в nginx 0.7.45 30.03.2009
4892
4893 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
4894 задавать на разных уровнях.
4895
4896 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
4897
4898 *) Добавление: параметр max_size в директиве proxy_cache_path.
4899
4900 *) Добавление: предварительная поддержка кэширования в модуле
4901 ngx_http_fastcgi_module.
4902
4903 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
4904 указываются названия директивы и зоны.
4905
4906 *) Исправление: директива "add_header last-modified ''" не удаляла в
4907 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
4908
4909 *) Исправление: в директиве auth_basic_user_file не работал
4910 относительный путь, заданный строкой без переменных; ошибка появилась
4911 в 0.7.44.
4912 Спасибо Jerome Loyet.
4913
4914 *) Исправление: в директиве alias, заданной переменными без ссылок на
4915 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
4916
4917
4918 Изменения в nginx 0.7.44 23.03.2009
4919
4920 *) Добавление: предварительная поддержка кэширования в модуле
4921 ngx_http_proxy_module.
4922
4923 *) Добавление: параметр --with-pcre в configure.
4924
4925 *) Добавление: теперь директива try_files может быть использована на
4926 уровне server.
4927
4928 *) Исправление: директива try_files неправильно обрабатывала строку
4929 запроса в последнем параметре.
4930
4931 *) Исправление: директива try_files могла неверно тестировать каталоги.
4932
4933 *) Исправление: если для пары адрес:порт описан только один сервер, то
4934 выделения в регулярных выражениях в директиве server_name не
4935 работали.
4936
4937
4938 Изменения в nginx 0.7.43 18.03.2009
4939
4940 *) Исправление: запрос обрабатывался неверно, если директива root
4941 использовала переменные; ошибка появилась в 0.7.42.
4942
4943 *) Исправление: если сервер слушал на адресах типа "*", то значение
4944 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
4945
4946
4947 Изменения в nginx 0.7.42 16.03.2009
4948
4949 *) Изменение: ошибка "Invalid argument", возвращаемая
4950 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
4951
4952 *) Изменение: при отсутствии файла, указанного в директиве
4953 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
4954
4955 *) Добавление: директива auth_basic_user_file поддерживает переменные.
4956 Спасибо Кириллу Коринскому.
4957
4958 *) Добавление: директива listen поддерживает параметр ipv6only.
4959 Спасибо Zhang Hua.
4960
4961 *) Исправление: в директиве alias со ссылками на выделения в регулярных
4962 выражениях; ошибка появилась в 0.7.40.
4963
4964 *) Исправление: совместимость с Tru64 UNIX.
4965 Спасибо Dustin Marquess.
4966
4967 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
4968 в 0.7.41.
4969
4970
4971 Изменения в nginx 0.7.41 11.03.2009
4972
4973 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4974 если в server_name или location были выделения в регулярных
4975 выражениях; ошибка появилась в 0.7.40.
4976 Спасибо Владимиру Сопоту.
4977
4978
4979 Изменения в nginx 0.7.40 09.03.2009
4980
4981 *) Добавление: директива location поддерживает выделения в регулярных
4982 выражениях.
4983
4984 *) Добавление: директиву alias с ссылками на выделения в регулярных
4985 выражениях можно использовать внутри location'а, заданного регулярным
4986 выражением с выделениями.
4987
4988 *) Добавление: директива server_name поддерживает выделения в регулярных
4989 выражениях.
4990
4991 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
4992 слэш для каталогов на файловой системе XFS; ошибка появилась в
4993 0.7.15.
4994 Спасибо Дмитрию Кузьменко.
4995
4996
4997 Изменения в nginx 0.7.39 02.03.2009
4998
4999 *) Исправление: при включённом сжатии большие ответы с использованием
5000 SSI могли зависать; ошибка появилась в 0.7.28.
5001 Спасибо Артёму Бохану.
5002
5003 *) Исправление: при использовании коротких статических вариантов в
5004 директиве try_files в рабочем процессе мог произойти segmentation
5005 fault.
5006
5007
5008 Изменения в nginx 0.7.38 23.02.2009
5009
5010 *) Добавление: логгирование ошибок аутентификации.
5011
5012 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
5013 игнорировались после нечётного числа пустых строк.
5014 Спасибо Александру Загребину.
5015
5016 *) Исправление: при использовании длинного пути в unix domain сокете в
5017 главном процессе происходил segmentation fault; ошибка появилась в
5018 0.7.36.
5019
5020
5021 Изменения в nginx 0.7.37 21.02.2009
5022
5023 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
5024 появилась в 0.7.36.
5025
5026
5027 Изменения в nginx 0.7.36 21.02.2009
5028
5029 *) Добавление: предварительная поддержка IPv6; директива listen модуля
5030 HTTP поддерживает IPv6.
5031
5032 *) Исправление: переменная $ancient_browser не работала для браузеров,
5033 заданных директивами modern_browser.
5034
5035
5036 Изменения в nginx 0.7.35 16.02.2009
5037
5038 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
5039 асимметричных шифров.
5040 Спасибо Marcin Gozdalik.
5041
5042 *) Исправление: директива try_files выставляла MIME-type, исходя из
5043 расширения первоначального запроса.
5044
5045 *) Исправление: в директивах server_name, valid_referers и map
5046 неправильно обрабатывались имена вида "*domain.tld", если
5047 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
5048 ошибка появилась в 0.7.9.
5049
5050
5051 Изменения в nginx 0.7.34 10.02.2009
5052
5053 *) Добавление: параметр off в директиве if_modified_since.
5054
5055 *) Добавление: теперь после команды XCLIENT nginx посылает команду
5056 HELO/EHLO.
5057 Спасибо Максиму Дунину.
5058
5059 *) Добавление: поддержка Microsoft-специфичного режима
5060 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
5061 Спасибо Максиму Дунину.
5062
5063 *) Исправление: в директиве rewrite, возвращающей редирект, старые
5064 аргументы присоединялись к новым через символ "?" вместо "&";
5065 ошибка появилась в 0.1.18.
5066 Спасибо Максиму Дунину.
5067
5068 *) Исправление: nginx не собирался на AIX.
5069
5070
5071 Изменения в nginx 0.7.33 02.02.2009
5072
5073 *) Исправление: если на запрос с телом возвращался редирект, то ответ
5074 мог быть двойным при использовании методов epoll или rtsig.
5075 Спасибо Eden Li.
5076
5077 *) Исправление: для некоторых типов редиректов в переменной
5078 $sent_http_location было пустое значение.
5079
5080 *) Исправление: при использовании директивы resolver в SMTP
5081 прокси-сервере в рабочем процессе мог произойти segmentation fault.
5082
5083
5084 Изменения в nginx 0.7.32 26.01.2009
5085
5086 *) Добавление: теперь в директиве try_files можно явно указать проверку
5087 каталога.
5088
5089 *) Исправление: fastcgi_store не всегда сохранял файлы.
5090
5091 *) Исправление: в гео-диапазонах.
5092
5093 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
5094 если nginx был собран без отладки.
5095 Спасибо Андрею Квасову.
5096
5097
5098 Изменения в nginx 0.7.31 19.01.2009
5099
5100 *) Изменение: теперь директива try_files проверяет только файлы,
5101 игнорируя каталоги.
5102
5103 *) Добавление: директива fastcgi_split_path_info.
5104
5105 *) Исправления в поддержке строки "Expect" в заголовке запроса.
5106
5107 *) Исправления в гео-диапазонах.
5108
5109 *) Исправление: при отсутствии ответа ngx_http_memcached_module
5110 возвращал в теле ответа строку "END" вместо 404-ой страницы по
5111 умолчанию; ошибка появилась в 0.7.18.
5112 Спасибо Максиму Дунину.
5113
5114 *) Исправление: при проксировании SMTP nginx выдавал сообщение
5115 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
5116 Спасибо Максиму Дунину.
5117
5118
5119 Изменения в nginx 0.7.30 24.12.2008
5120
5121 *) Исправление: в рабочем процессе происходил segmentation fault, если в
5122 директивах fastcgi_pass или proxy_pass использовались переменные и
5123 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
5124
5125
5126 Изменения в nginx 0.7.29 24.12.2008
5127
5128 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
5129 переменные при использовании unix domain сокетов.
5130
5131 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
5132
5133 *) Исправление: ответ "100 Continue" выдавался для запросов версии
5134 HTTP/1.0;
5135 Спасибо Максиму Дунину.
5136
5137 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
5138 под Cygwin.
5139
5140
5141 Изменения в nginx 0.7.28 22.12.2008
5142
5143 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
5144
5145 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
5146 с 4 4k/8k на 32 4k или 16 8k.
5147
5148
5149 Изменения в nginx 0.7.27 15.12.2008
5150
5151 *) Добавление: директива try_files.
5152
5153 *) Добавление: директива fastcgi_pass поддерживает переменные.
5154
5155 *) Добавление: теперь директива geo может брать адрес из переменной.
5156 Спасибо Андрею Нигматулину.
5157
5158 *) Добавление: теперь модификатор location'а можно указывать без пробела
5159 перед названием.
5160
5161 *) Добавление: переменная $upstream_response_length.
5162
5163 *) Исправление: теперь директива add_header не добавляет пустое
5164 значение.
5165
5166 *) Исправление: при запросе файла нулевой длины nginx закрывал
5167 соединение, ничего не передав; ошибка появилась в 0.7.25.
5168
5169 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
5170 каталог.
5171
5172 *) Исправление: если в сервере не был описан ни один именованный
5173 location, но такой location использовался в директиве error_page, то
5174 в рабочем процессе происходил segmentation fault.
5175 Спасибо Сергею Боченкову.
5176
5177
5178 Изменения в nginx 0.7.26 08.12.2008
5179
5180 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
5181
5182
5183 Изменения в nginx 0.7.25 08.12.2008
5184
5185 *) Изменение: в обработке подзапросов.
5186
5187 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
5188 заголовке запроса.
5189
5190 *) Исправление: теперь директивы limit_req и limit_conn указывают
5191 причину запрета запроса.
5192
5193 *) Исправление: в параметре delete директивы geo.
5194
5195
5196 Изменения в nginx 0.7.24 01.12.2008
5197
5198 *) Добавление: директива if_modified_since.
5199
5200 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
5201 ответом сервер передавал много сообщений в stderr.
5202
5203 *) Исправление: переменные "$cookie_..." не работали в SSI and в
5204 перловом модуле.
5205
5206
5207 Изменения в nginx 0.7.23 27.11.2008
5208
5209 *) Добавление: параметры delete и ranges в директиве geo.
5210
5211 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
5212
5213 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
5214
5215
5216 Изменения в nginx 0.7.22 20.11.2008
5217
5218 *) Добавление: параметр none в директиве smtp_auth.
5219 Спасибо Максиму Дунину.
5220
5221 *) Добавление: переменные "$cookie_...".
5222
5223 *) Исправление: директива directio не работала с файловой системой XFS.
5224
5225 *) Исправление: resolver не понимал большие DNS-ответы.
5226 Спасибо Zyb.
5227
5228
5229 Изменения в nginx 0.7.21 11.11.2008
5230
5231 *) Изменения в модуле ngx_http_limit_req_module.
5232
5233 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
5234 Спасибо Денису Латыпову.
5235
5236 *) Изменение: совместимость с glibc 2.3.
5237 Спасибо Eric Benson и Максиму Дунину.
5238
5239 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
5240 ошибка появилась в 0.7.6.
5241
5242
5243 Изменения в nginx 0.7.20 10.11.2008
5244
5245 *) Изменения в модуле ngx_http_gzip_filter_module.
5246
5247 *) Добавление: модуль ngx_http_limit_req_module.
5248
5249 *) Исправление: на платформах sparc и ppc рабочие процессы могли
5250 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
5251 Спасибо Максиму Дунину.
5252
5253 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
5254 работали; ошибка появилась в 0.7.12.
5255
5256 *) Исправление: при использовании HTTPS запросы могли завершаться с
5257 ошибкой "bad write retry".
5258
5259 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
5260 location'ов с именами меньше 3 символов.
5261
5262 *) Исправление: переменная $server_addr могла не иметь значения.
5263
5264
5265 Изменения в nginx 0.7.19 13.10.2008
5266
5267 *) Исправление: обновление номера версии.
5268
5269
5270 Изменения в nginx 0.7.18 13.10.2008
5271
5272 *) Изменение: директива underscores_in_headers; теперь nginx по
5273 умолчанию не разрешает подчёркивания в именах строк в заголовке
5274 запроса клиента.
5275
5276 *) Добавление: модуль ngx_http_secure_link_module.
5277
5278 *) Добавление: директива real_ip_header поддерживает любой заголовок.
5279
5280 *) Добавление: директива log_subrequest.
5281
5282 *) Добавление: переменная $realpath_root.
5283
5284 *) Добавление: параметры http_502 и http_504 в директиве
5285 proxy_next_upstream.
5286
5287 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
5288 fastcgi_next_upstream не работал.
5289
5290 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
5291 для запросов HEAD.
5292
5293 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
5294
5295
5296 Изменения в nginx 0.7.17 15.09.2008
5297
5298 *) Добавление: директива directio теперь работает на Linux.
5299
5300 *) Добавление: переменная $pid.
5301
5302 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
5303 при использовании open_file_cache.
5304
5305 *) Исправление: access_log с переменными не работал на Linux; ошибка
5306 появилась в 0.7.7.
5307
5308 *) Исправление: модуль ngx_http_charset_module не понимал название
5309 кодировки в кавычках, полученное от бэкенда.
5310
5311
5312 Изменения в nginx 0.7.16 08.09.2008
5313
5314 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
5315 появилась в 0.7.15.
5316
5317
5318 Изменения в nginx 0.7.15 08.09.2008
5319
5320 *) Добавление: модуль ngx_http_random_index_module.
5321
5322 *) Добавление: директива directio оптимизирована для запросов файлов,
5323 начинающихся с произвольной позиции.
5324
5325 *) Добавление: директива directio при необходимости запрещает
5326 использование sendfile.
5327
5328 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
5329 заголовке запроса клиента.
5330
5331
5332 Изменения в nginx 0.7.14 01.09.2008
5333
5334 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
5335 имеют значений по умолчанию.
5336
5337 *) Добавление: директива listen поддерживает параметр ssl.
5338
5339 *) Добавление: теперь при переконфигурации nginx учитывает изменение
5340 временной зоны на FreeBSD и Linux.
5341
5342 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
5343 прочие, не устанавливались, если сервером по умолчанию был не первый
5344 сервер.
5345
5346 *) Исправление: при использовании в качестве аргументов части URI,
5347 выделенного с помощью директивы rewrite, эти аргументы не
5348 экранировались.
5349
5350 *) Исправление: улучшения тестирования правильности конфигурационного
5351 файла.
5352
5353
5354 Изменения в nginx 0.7.13 26.08.2008
5355
5356 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
5357 в 0.7.12.
5358
5359
5360 Изменения в nginx 0.7.12 26.08.2008
5361
5362 *) Добавление: директива server_name поддерживает пустое имя "".
5363
5364 *) Добавление: директива gzip_disable поддерживает специальную маску
5365 msie6.
5366
5367 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
5368 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
5369 Спасибо Максиму Дунину.
5370
5371 *) Исправление: при перенаправлении запроса с помощью директивы
5372 error_page терялось тело запроса.
5373
5374 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
5375 директивы error_page возвращался полный ответ.
5376
5377 *) Исправление: метод $r->header_in() не возвращал значения строк
5378 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
5379 появилась в 0.7.0.
5380
5381
5382 Изменения в nginx 0.7.11 18.08.2008
5383
5384 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
5385 MIME-типом text/css.
5386
5387 *) Добавление: теперь nginx возвращает код 405 для метода POST при
5388 запросе статического файла, только если файл существует.
5389
5390 *) Добавление: директива proxy_ssl_session_reuse.
5391
5392 *) Исправление: после перенаправления запроса с помощью
5393 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
5394 оригинальный запрос.
5395
5396 *) Исправление: если у каталога были права доступа только на поиск
5397 файлов и первый индексный файл отсутствовал, то nginx возвращал
5398 ошибку 500.
5399
5400 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
5401 0.7.1.
5402
5403
5404 Изменения в nginx 0.7.10 13.08.2008
5405
5406 *) Исправление: ошибок в директивах addition_types, charset_types,
5407 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
5408 появились в 0.7.9.
5409
5410 *) Исправление: рекурсивной error_page для 500 ошибки.
5411
5412 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
5413 не для всего keepalive соединения, а для каждого запроса по этому
5414 соединению.
5415
5416
5417 Изменения в nginx 0.7.9 12.08.2008
5418
5419 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
5420 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
5421 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
5422
5423 *) Добавление: директивы charset_types и addition_types.
5424
5425 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
5426 используют хэш.
5427
5428 *) Добавление: модуль ngx_cpp_test_module.
5429
5430 *) Добавление: директива expires поддерживает суточное время.
5431
5432 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
5433 Спасибо Денису Латыпову и Максиму Дунину.
5434
5435 *) Исправление: директива log_not_found не работала при поиске индексных
5436 файлов.
5437
5438 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
5439 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
5440
5441 *) Исправление: если в директивах server_name, valid_referers и map
5442 использовалась маска вида "*.domain.tld" и при этом полное имя вида
5443 "domain.tld" не было описано, то это имя попадало под маску; ошибка
5444 появилась в 0.3.18.
5445
5446
5447 Изменения в nginx 0.7.8 04.08.2008
5448
5449 *) Добавление: модуль ngx_http_xslt_module.
5450
5451 *) Добавление: переменные "$arg_...".
5452
5453 *) Добавление: поддержка directio в Solaris.
5454 Спасибо Ivan Debnar.
5455
5456 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
5457 в заголовке ответа без строки статуса, то nginx использует код
5458 статуса 302.
5459 Спасибо Максиму Дунину.
5460
5461
5462 Изменения в nginx 0.7.7 30.07.2008
5463
5464 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
5465 временной.
5466
5467 *) Изменение: значением переменной $ssl_client_cert теперь является
5468 сертификат, перед каждой строкой которого, кроме первой, вставляется
5469 символ табуляции; неизменённый сертификат доступен через переменную
5470 $ssl_client_raw_cert.
5471
5472 *) Добавление: параметр ask директивы ssl_verify_client.
5473
5474 *) Добавление: улучшения в обработке byte-range.
5475 Спасибо Максиму Дунину.
5476
5477 *) Добавление: директива directio.
5478 Спасибо Jiang Hong.
5479
5480 *) Добавление: поддержка sendfile() в MacOSX 10.5.
5481
5482 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
5483 делается сравнение без учёта регистра символов; однако, сравнение
5484 ограничено только однобайтными locale'ями.
5485
5486 *) Исправление: соединения почтового прокси-сервера зависали в режиме
5487 SSL, если использовались методы select, poll или /dev/poll.
5488
5489 *) Исправление: ошибки при использовании кодировки UTF-8 в
5490 ngx_http_autoindex_module.
5491
5492
5493 Изменения в nginx 0.7.6 07.07.2008
5494
5495 *) Исправление: теперь при использовании переменных в директиве
5496 access_log всегда проверяется существовании root'а для запроса.
5497
5498 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
5499 значений в аргументах запроса.
5500
5501
5502 Изменения в nginx 0.7.5 01.07.2008
5503
5504 *) Исправления в поддержке переменных в директиве access_log; ошибки
5505 появились в 0.7.4.
5506
5507 *) Исправление: nginx не собирался с параметром
5508 --without-http_gzip_module; ошибка появилась в 0.7.3.
5509 Спасибо Кириллу Коринскому.
5510
5511 *) Исправление: при совместном использовании sub_filter и SSI ответы
5512 могли передаваться неверно.
5513
5514
5515 Изменения в nginx 0.7.4 30.06.2008
5516
5517 *) Добавление: директива access_log поддерживает переменные.
5518
5519 *) Добавление: директива open_log_file_cache.
5520
5521 *) Добавление: ключ -g.
5522
5523 *) Добавление: поддержка строки "Expect" в заголовке запроса.
5524
5525 *) Исправление: большие включения в SSI могли передавались не полностью.
5526
5527
5528 Изменения в nginx 0.7.3 23.06.2008
5529
5530 *) Изменение: MIME-тип для расширения rss изменён на
5531 "application/rss+xml".
5532
5533 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
5534 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
5535
5536 *) Добавление: теперь при использовании протокола "https://" в директиве
5537 rewrite автоматически делается редирект.
5538
5539 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
5540 ошибка появилась в 0.6.9.
5541
5542
5543 Изменения в nginx 0.7.2 16.06.2008
5544
5545 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
5546
5547 *) Добавление: директива ssl_dhparam.
5548
5549 *) Добавление: переменная $ssl_client_cert.
5550 Спасибо Manlio Perillo.
5551
5552 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
5553 искал новый location; ошибка появилась в 0.7.1.
5554 Спасибо Максиму Дунину.
5555
5556 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5557 в 0.7.1.
5558
5559 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
5560 nginx не добавлял аргументы из оригинального запроса.
5561
5562
5563 Изменения в nginx 0.7.1 26.05.2008
5564
5565 *) Изменение: теперь поиск location'а делается с помощью дерева.
5566
5567 *) Изменение: директива optimize_server_names упразднена в связи с
5568 появлением директивы server_name_in_redirect.
5569
5570 *) Изменение: некоторые давно устаревшие директивы больше не
5571 поддерживаются.
5572
5573 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
5574 параметр используется по умолчанию.
5575 Спасибо Rob Mueller.
5576
5577 *) Исправление: рабочие процессы могли не реагировать на сигналы
5578 переконфигурации и ротации логов.
5579
5580 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
5581 Спасибо Roxis.
5582
5583
5584 Изменения в nginx 0.7.0 19.05.2008
5585
5586 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
5587 записываются в виде \xXX.
5588 Спасибо Максиму Дунину.
5589
5590 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
5591 запроса.
5592
5593 *) Добавление: директива expires поддерживает флаг modified.
5594
5595 *) Добавление: переменные $uid_got и $uid_set можно использовать на
5596 любой стадии обработки запроса.
5597
5598 *) Добавление: переменная $hostname.
5599 Спасибо Андрею Нигматулину.
5600
5601 *) Добавление: поддержка DESTDIR.
5602 Спасибо Todd A. Fisher и Andras Voroskoi.
5603
5604 *) Исправление: при использовании keepalive на Linux в рабочем процессе
5605 мог произойти segmentation fault.
5606
5607
5608 Изменения в nginx 0.6.31 12.05.2008
5609
5610 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
5611 заголовка ответа была в конце записи FastCGI; ошибка появилась в
5612 0.6.2.
5613 Спасибо Сергею Серову.
5614
5615 *) Исправление: при удалении файла и использовании директивы
5616 open_file_cache_errors off в рабочем процессе мог произойти
5617 segmentation fault.
5618
5619
5620 Изменения в nginx 0.6.30 29.04.2008
5621
5622 *) Изменение: теперь, если маске, заданной в директиве include, не
5623 соответствует ни один файл, то nginx не выдаёт ошибку.
5624
5625 *) Добавление: теперь время в директивах можно задавать без пробела,
5626 например, "1h50m".
5627
5628 *) Исправление: утечек памяти, если директива ssl_verify_client имела
5629 значение on.
5630 Спасибо Chavelle Vincent.
5631
5632 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
5633 вывод.
5634
5635 *) Исправление: директива error_page не воспринимала параметры в
5636 перенаправляемом URI.
5637
5638 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
5639 в бинарном режиме.
5640
5641 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
5642 0.6.15.
5643
5644
5645 Изменения в nginx 0.6.29 18.03.2008
5646
5647 *) Добавление: модуль ngx_google_perftools_module.
5648
5649 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
5650 платформах; ошибка появилась в 0.6.27.
5651
5652
5653 Изменения в nginx 0.6.28 13.03.2008
5654
5655 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
5656
5657
5658 Изменения в nginx 0.6.27 12.03.2008
5659
5660 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
5661 rtsig.
5662
5663 *) Изменение: теперь при перенаправлении запроса в именованный location
5664 с помощью директивы error_page метод запроса не изменяется.
5665
5666 *) Добавление: директивы resolver и resolver_timeout в SMTP
5667 прокси-сервере.
5668
5669 *) Добавление: директива post_action поддерживает именованные
5670 location'ы.
5671
5672 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5673 proxy, FastCGI или memcached в именованный location со статическим
5674 обработчиком в рабочем процессе происходил segmentation fault.
5675
5676 *) Исправление: браузеры не повторяли SSL handshake, если при первом
5677 handshake не оказалось правильного клиентского сертификата.
5678 Спасибо Александру Инюхину.
5679
5680 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
5681 error_page без изменения кода ошибки nginx пытался выделить очень
5682 много памяти.
5683
5684 *) Исправление: утечки памяти в долгоживущих небуфферизированных
5685 соединениях.
5686
5687 *) Исправление: утечки памяти в resolver'е.
5688
5689 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5690 proxy в другой location с обработчиком proxy в рабочем процессе
5691 происходил segmentation fault.
5692
5693 *) Исправление: ошибки в кэшировании переменных $proxy_host и
5694 $proxy_port.
5695 Спасибо Сергею Боченкову.
5696
5697 *) Исправление: директива proxy_pass с переменными использовала порт,
5698 описанной в другой директиве proxy_pass без переменных, но с таким же
5699 именем хоста.
5700 Спасибо Сергею Боченкову.
5701
5702 *) Исправление: во время переконфигурации на некоторых 64-битном
5703 платформах в лог записывался alert "sendmsg() failed (9: Bad file
5704 descriptor)".
5705
5706 *) Исправление: при повторном использовании в SSI пустого block'а в
5707 качестве заглушки в рабочем процессе происходил segmentation fault.
5708
5709 *) Исправление: ошибки при копировании части URI, содержащего
5710 экранированные символы, в аргументы.
5711
5712
5713 Изменения в nginx 0.6.26 11.02.2008
5714
5715 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
5716 ответа.
5717
5718 *) Исправление: при использовании большого значения в директиве expires
5719 в рабочем процессе происходил segmentation fault.
5720 Спасибо Joaquin Cuenca Abela.
5721
5722 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
5723 Спасибо Геннадию Махомеду.
5724
5725 *) Исправление: в проксированных подзапросах и подзапросах к
5726 FastCGI-серверу вместо метода GET использовался оригинальный метод
5727 клиента.
5728
5729 *) Исправление: утечки сокетов в режиме HTTPS при использовании
5730 отложенного accept'а.
5731 Спасибо Ben Maurer.
5732
5733 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
5734 (SSL: )"; ошибка появилась в 0.6.23.
5735
5736 *) Исправление: при использовании HTTPS запросы могли завершаться с
5737 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
5738
5739
5740 Изменения в nginx 0.6.25 08.01.2008
5741
5742 *) Изменение: вместо специального параметра "*" в директиве server_name
5743 теперь используется директива server_name_in_redirect.
5744
5745 *) Изменение: в качестве основного имени в директиве server_name теперь
5746 можно использовать имена с масками и регулярными выражениями.
5747
5748 *) Изменение: директива satisfy_any заменена директивой satisfy.
5749
5750 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
5751 нагружать процессор при запуске под Linux OpenVZ.
5752
5753 *) Добавление: директива min_delete_depth.
5754
5755 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
5756
5757 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
5758 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
5759
5760 *) Исправление: утечки сокетов в режиме HTTPS при использовании
5761 отложенного accept'а.
5762 Спасибо Ben Maurer.
5763
5764 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5765 в 0.6.23.
5766
5767
5768 Изменения в nginx 0.6.24 27.12.2007
5769
5770 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
5771 segmentation fault; ошибка появилась в 0.6.23.
5772
5773
5774 Изменения в nginx 0.6.23 27.12.2007
5775
5776 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
5777 параметр используется по умолчанию.
5778
5779 *) Изменение: директива open_file_cache_retest переименована в
5780 open_file_cache_valid.
5781
5782 *) Добавление: директива open_file_cache_min_uses.
5783
5784 *) Добавление: модуль ngx_http_gzip_static_module.
5785
5786 *) Добавление: директива gzip_disable.
5787
5788 *) Добавление: директиву memcached_pass можно использовать внутри блока
5789 if.
5790
5791 *) Исправление: если внутри одного location'а использовались директивы
5792 "memcached_pass" и "if", то в рабочем процессе происходил
5793 segmentation fault.
5794
5795 *) Исправление: если при использовании директивы satisfy_any on" были
5796 заданы директивы не всех модулей доступа, то заданные директивы не
5797 проверялись.
5798
5799 *) Исправление: параметры, заданные регулярным выражением в директиве
5800 valid_referers, не наследовалась с предыдущего уровня.
5801
5802 *) Исправление: директива post_action не работала, если запрос
5803 завершался с кодом 499.
5804
5805 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
5806 Спасибо Ben Maurer.
5807
5808 *) Исправление: STARTTLS в режиме SMTP не работал.
5809 Спасибо Олегу Мотиенко.
5810
5811 *) Исправление: при использовании HTTPS запросы могли завершаться с
5812 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
5813
5814
5815 Изменения в nginx 0.6.22 19.12.2007
5816
5817 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
5818 значения, скопированные в память, выделенную perl'ом.
5819
5820 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
5821 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
5822 время переконфигурации основной процесс аварийно выходил; ошибка
5823 появилась в 0.5.9.
5824 Спасибо Борису Жмурову.
5825
5826 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
5827 неверные результаты выделения в регулярных выражениях.
5828
5829 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
5830 у которого небольшое тело запроса было уже полностью получено, то в
5831 рабочем процессе происходил segmentation fault.
5832
5833 *) Исправление: large_client_header_buffers не освобождались перед
5834 переходом в состояние keep-alive.
5835 Спасибо Олександру Штепе.
5836
5837 *) Исправление: в переменной $upstream_addr не записывался последний
5838 адрес; ошибка появилась в 0.6.18.
5839
5840 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
5841 теперь она возвращает ошибку 502, которую можно направить на
5842 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
5843
5844 *) Исправление: при использовании директивы fastcgi_catch_stderr в
5845 основном процессе происходил segmentation fault; ошибка появилась в
5846 0.6.10.
5847 Спасибо Manlio Perillo.
5848
5849
5850 Изменения в nginx 0.6.21 03.12.2007
5851
5852 *) Изменение: если в значениях переменных директивы proxy_pass
5853 используются только IP-адреса, то указывать resolver не нужно.
5854
5855 *) Исправление: при использовании директивы proxy_pass c URI-частью в
5856 рабочем процессе мог произойти segmentation fault; ошибка появилась в
5857 0.6.19.
5858
5859 *) Исправление: если resolver использовался на платформах, не
5860 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
5861 response".
5862 Спасибо Андрею Нигматулину.
5863
5864 *) Исправление: При использовании переменной $server_protocol в
5865 FastCGI-параметрах и запросе, длина которого была близка к значению
5866 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
5867 the request record is too big".
5868
5869 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
5870 nginx возвращал обычный ответ.
5871
5872
5873 Изменения в nginx 0.6.20 28.11.2007
5874
5875 *) Исправление: при использовании директивы proxy_pass c URI-частью в
5876 рабочем процессе мог произойти segmentation fault; ошибка появилась в
5877 0.6.19.
5878
5879
5880 Изменения в nginx 0.6.19 27.11.2007
5881
5882 *) Исправление: версия 0.6.18 не собиралась.
5883
5884
5885 Изменения в nginx 0.6.18 27.11.2007
5886
5887 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
5888 процесса добавляет микросекунды на время старта.
5889
5890 *) Изменение: в error_log теперь записывается полная строка запроса
5891 вместо только URI.
5892
5893 *) Добавление: директива proxy_pass поддерживает переменные.
5894
5895 *) Добавление: директивы resolver и resolver_timeout.
5896
5897 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
5898 заголовке ответа строку "Last-Modified".
5899
5900 *) Исправление: директива limit_rate не позволяла передавать на полной
5901 скорости, даже если был указан очень большой лимит.
5902
5903
5904 Изменения в nginx 0.6.17 15.11.2007
5905
5906 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
5907 Спасибо Александру Инюхину.
5908
5909 *) Исправление: при использовании директивы msie_refresh повторно
5910 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
5911
5912 *) Исправление: директива autoindex не работала при использовании "alias
5913 /".
5914
5915 *) Исправление: при использовании подзапросов в рабочем процессе мог
5916 произойти segmentation fault.
5917
5918 *) Исправление: при использовании SSL и gzip большие ответы могли
5919 передаваться не полностью.
5920
5921 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
5922 то переменная $status была равна 0.
5923
5924
5925 Изменения в nginx 0.6.16 29.10.2007
5926
5927 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
5928 Спасибо Илье Новикову.
5929
5930 *) Исправление: если в директиве error_page использовался символ "?", то
5931 он экранировался при проксировании запроса; ошибка появилась в
5932 0.6.11.
5933
5934 *) Исправление: совместимость с mget.
5935
5936
5937 Изменения в nginx 0.6.15 22.10.2007
5938
5939 *) Добавление: совместимость с Cygwin.
5940 Спасибо Владимиру Кутакову.
5941
5942 *) Добавление: директива merge_slashes.
5943
5944 *) Добавление: директива gzip_vary.
5945
5946 *) Добавление: директива server_tokens.
5947
5948 *) Исправление: nginx не раскодировал URI в команде SSI include.
5949
5950 *) Исправление: при использовании переменной в директивах charset или
5951 source_charset на старте или во время переконфигурации происходил
5952 segmentation fault,
5953
5954 *) Исправление: nginx возвращал ошибку 400 на запросы вида
5955 "GET http://www.domain.com HTTP/1.0".
5956 Спасибо James Oakley.
5957
5958 *) Исправление: после перенаправления запроса с телом запроса с помощью
5959 директивы error_page nginx пытался снова прочитать тело запроса;
5960 ошибка появилась в 0.6.7.
5961
5962 *) Исправление: в рабочем процессе происходил segmentation fault, если у
5963 сервера, обрабатывающему запрос, не был явно определён server_name;
5964 ошибка появилась в 0.6.7.
5965
5966
5967 Изменения в nginx 0.6.14 15.10.2007
5968
5969 *) Изменение: теперь по умолчанию команда SSI echo использует
5970 кодирование entity.
5971
5972 *) Добавление: параметр encoding в команде SSI echo.
5973
5974 *) Добавление: директиву access_log можно использовать внутри блока
5975 limit_except.
5976
5977 *) Исправление: если все сервера апстрима оказывались недоступными, то
5978 до восстановления работоспособности у всех серверов вес становился
5979 равным одному; ошибка появилась в 0.6.6.
5980
5981 *) Исправление: при использовании переменных $date_local и $date_gmt вне
5982 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
5983 segmentation fault.
5984
5985 *) Исправление: при использовании включённом отладочном логе в рабочем
5986 процессе мог произойти segmentation fault.
5987 Спасибо Андрею Нигматулину.
5988
5989 *) Исправление: ngx_http_memcached_module не устанавливал
5990 $upstream_response_time.
5991 Спасибо Максиму Дунину.
5992
5993 *) Исправление: рабочий процесс мог зациклиться при использовании
5994 memcached.
5995
5996 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
5997 строке "Connection" в заголовке запроса только, если они были в
5998 нижнем регистре; ошибка появилась в 0.6.11.
5999
6000 *) Исправление: sub_filter не работал с пустой строкой замены.
6001
6002 *) Исправление: в парсинге sub_filter.
6003
6004
6005 Изменения в nginx 0.6.13 24.09.2007
6006
6007 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
6008 использовался autoindex
6009 Спасибо Arkadiusz Patyk.
6010
6011
6012 Изменения в nginx 0.6.12 21.09.2007
6013
6014 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
6015 и smtp.
6016
6017 *) Добавление: параметры конфигурации --without-mail_pop3_module,
6018 --without-mail_imap_module и --without-mail_smtp_module.
6019
6020 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
6021 ngx_mail_smtp_module.
6022
6023 *) Исправление: wildcard в конце имени сервера не работали; ошибка
6024 появилась в 0.6.9.
6025
6026 *) Исправление: при использовании разделяемой библиотеки PCRE,
6027 расположенной в нестандартном месте, nginx не запускался на Solaris.
6028
6029 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
6030 скрывали строки заголовка ответа с именем больше 32 символов.
6031 Спасибо Manlio Perillo.
6032
6033
6034 Изменения в nginx 0.6.11 11.09.2007
6035
6036 *) Исправление: счётчик активных соединений всегда рос при использовании
6037 почтового прокси-сервера.
6038
6039 *) Исправление: если бэкенд возвращал только заголовок ответа при
6040 небуферизированном проксировании, то nginx закрывал соединение с
6041 бэкендом по таймауту.
6042
6043 *) Исправление: nginx не поддерживал несколько строк "Connection" в
6044 заголовке запроса.
6045
6046 *) Исправление: если в сервере апстрима был задан max_fails, то после
6047 первой же неудачной попытки вес сервера навсегда становился равным
6048 одному; ошибка появилась в 0.6.6.
6049
6050
6051 Изменения в nginx 0.6.10 03.09.2007
6052
6053 *) Добавление: директивы open_file_cache, open_file_cache_retest и
6054 open_file_cache_errors.
6055
6056 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
6057
6058 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
6059 методе $r->send_http_header(), не добавлялась кодировка, указанная в
6060 директиве charset.
6061
6062 *) Исправление: при использовании метода /dev/poll в рабочем процессе
6063 мог произойти segmentation fault.
6064
6065
6066 Изменения в nginx 0.6.9 28.08.2007
6067
6068 *) Исправление: рабочий процесс мог зациклиться при использовании
6069 протокола HTTPS; ошибка появилась в 0.6.7.
6070
6071 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
6072 не запускался при использовании wildcard в конце имени сервера.
6073
6074 *) Исправление: директива ip_hash могла неверно помечать сервера как
6075 нерабочие.
6076
6077 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
6078
6079
6080 Изменения в nginx 0.6.8 20.08.2007
6081
6082 *) Изменение: теперь nginx пытается установить директивы
6083 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
6084 worker_rlimit_sigpending без привилегий root'а.
6085
6086 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
6087 запроса серверу аутентификации почтового прокси-сервера.
6088
6089 *) Изменение: теперь nginx экранирует символ "%" в переменной
6090 $memcached_key.
6091
6092 *) Исправление: при указании относительного пути к конфигурационному
6093 файлу в качестве параметра ключа -c nginx определял путь относительно
6094 конфигурационного префикса; ошибка появилась в 0.6.6.
6095
6096 *) Исправление: nginx не работал на FreeBSD/sparc64.
6097
6098
6099 Изменения в nginx 0.6.7 15.08.2007
6100
6101 *) Изменение: теперь пути, указанные в директивах include,
6102 auth_basic_user_file, perl_modules, ssl_certificate,
6103 ssl_certificate_key и ssl_client_certificate, определяются
6104 относительно каталога конфигурационного файла nginx.conf, а не
6105 относительно префикса.
6106
6107 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
6108
6109 *) Изменение: для обновления на лету версий 0.1.x создан специальный
6110 сценарий make upgrade1.
6111
6112 *) Добавление: директивы server_name и valid_referers поддерживают
6113 регулярные выражения.
6114
6115 *) Добавление: директива server в блоке upstream поддерживает параметр
6116 backup.
6117
6118 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6119 $r->discard_request_body.
6120
6121 *) Добавление: директива "add_header Last-Modified ..." меняет строку
6122 "Last-Modified" в заголовке ответа.
6123
6124 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
6125 отличным от 200, и после этого запроса соединение переходило в
6126 состояние keep-alive, то на следующий запрос nginx возвращал 400.
6127
6128 *) Исправление: если в директиве auth_http был задан неправильный адрес,
6129 то в рабочем процессе происходил segmentation fault.
6130
6131 *) Исправление: теперь по умолчанию nginx использует значение 511 для
6132 listen backlog на всех платформах, кроме FreeBSD.
6133 Спасибо Jiang Hong.
6134
6135 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
6136 upstream был помечен как down; ошибка появилась в 0.6.6.
6137
6138 *) Исправление: sendfilev() в Solaris теперь не используется при
6139 передаче тела запроса FastCGI-серверу через unix domain сокет.
6140
6141
6142 Изменения в nginx 0.6.6 30.07.2007
6143
6144 *) Добавление: параметр --sysconfdir=PATH в configure.
6145
6146 *) Добавление: именованные location'ы.
6147
6148 *) Добавление: переменную $args можно устанавливать с помощью set.
6149
6150 *) Добавление: переменная $is_args.
6151
6152 *) Исправление: равномерное распределение запросов к апстримам с
6153 большими весами.
6154
6155 *) Исправление: если клиент в почтовом прокси-сервере закрывал
6156 соединение, то nginx мог не закрывать соединение с бэкендом.
6157
6158 *) Исправление: при использовании одного хоста в качестве бэкендов для
6159 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
6160 только один порт - 80 или 443.
6161
6162 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
6163 более ранними версиями; ошибка появилась в 0.6.4.
6164
6165
6166 Изменения в nginx 0.6.5 23.07.2007
6167
6168 *) Добавление: переменная $nginx_version.
6169 Спасибо Николаю Гречуху.
6170
6171 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
6172 IMAP.
6173 Спасибо Максиму Дунину.
6174
6175 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
6176 SMTP.
6177 Спасибо Максиму Дунину.
6178
6179 *) Исправление: теперь nginx экранирует пробел в переменной
6180 $memcached_key.
6181
6182 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
6183 Спасибо Jiang Hong.
6184
6185 *) Исправление: незначительных потенциальных ошибок.
6186 Спасибо Coverity's Scan.
6187
6188
6189 Изменения в nginx 0.6.4 17.07.2007
6190
6191 *) Безопасность: при использовании директивы msie_refresh был возможен
6192 XSS.
6193 Спасибо Максиму Богуку.
6194
6195 *) Изменение: директивы proxy_store и fastcgi_store изменены.
6196
6197 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
6198
6199 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6200 Studio.
6201 Спасибо Андрею Нигматулину.
6202
6203 *) Изменение: обход ошибки в Sun Studio 12.
6204 Спасибо Jiang Hong.
6205
6206
6207 Изменения в nginx 0.6.3 12.07.2007
6208
6209 *) Добавление: директивы proxy_store и fastcgi_store.
6210
6211 *) Исправление: при использовании директивы auth_http_header в рабочем
6212 процессе мог произойти segmentation fault.
6213 Спасибо Максиму Дунину.
6214
6215 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
6216 не был разрешён, то в рабочем процессе происходил segmentation fault.
6217
6218 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
6219 в рабочем процессе мог произойти segmentation fault.
6220
6221 *) Исправление: в рабочем процессе мог произойти segmentation fault,
6222 если использовался метод eventport.
6223
6224 *) Исправление: директивы proxy_ignore_client_abort и
6225 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
6226
6227
6228 Изменения в nginx 0.6.2 09.07.2007
6229
6230 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
6231 nginx передавал клиенту мусор в таких заголовках.
6232
6233
6234 Изменения в nginx 0.6.1 17.06.2007
6235
6236 *) Исправление: в парсинге SSI.
6237
6238 *) Исправление: при использовании удалённого подзапроса в SSI
6239 последующий подзапрос локального файла мог отдаваться клиенту в
6240 неверном порядке.
6241
6242 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
6243 передавались не полностью.
6244
6245 *) Исправление: значение perl'овой переменной $$ модуля
6246 ngx_http_perl_module было равно номеру главного процесса.
6247
6248
6249 Изменения в nginx 0.6.0 14.06.2007
6250
6251 *) Добавление: директивы "server_name", "map", and "valid_referers"
6252 поддерживают маски вида "www.example.*".
6253
6254
6255 Изменения в nginx 0.5.25 11.06.2007
6256
6257 *) Исправление: nginx не собирался с параметром
6258 --without-http_rewrite_module; ошибка появилась в 0.5.24.
6259
6260
6261 Изменения в nginx 0.5.24 06.06.2007
6262
6263 *) Безопасность: директива ssl_verify_client не работала, если запрос
6264 выполнялся по протоколу HTTP/0.9.
6265
6266 *) Исправление: при использовании сжатия часть ответа могла передаваться
6267 несжатой; ошибка появилась в 0.5.23.
6268
6269
6270 Изменения в nginx 0.5.23 04.06.2007
6271
6272 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
6273 Server Name Indication.
6274
6275 *) Добавление: директива fastcgi_catch_stderr.
6276 Спасибо Николаю Гречуху, проект OWOX.
6277
6278 *) Исправление: на Линуксе в основном процессе происходил segmentation
6279 fault, если два виртуальных сервера должны bind()ится к
6280 пересекающимся портам.
6281
6282 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6283 perl поддерживал потоки, то во время второй переконфигурации
6284 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
6285
6286 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6287
6288
6289 Изменения в nginx 0.5.22 29.05.2007
6290
6291 *) Исправление: большое тело запроса могло не передаваться бэкенду;
6292 ошибка появилась в 0.5.21.
6293
6294
6295 Изменения в nginx 0.5.21 28.05.2007
6296
6297 *) Исправление: если внутри сервера описано больше примерно десяти
6298 location'ов, то location'ы, заданные с помощью регулярного выражения,
6299 могли выполняться не в том, порядке, в каком они описаны.
6300
6301 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
6302 если 33-тий по счёту или последующий бэкенд упал.
6303 Спасибо Антону Поварову.
6304
6305 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
6306 произойти bus error.
6307 Спасибо Андрею Нигматулину.
6308
6309 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6310
6311
6312 Изменения в nginx 0.5.20 07.05.2007
6313
6314 *) Добавление: директива sendfile_max_chunk.
6315
6316 *) Добавление: переменные "$http_...", "$sent_http_..." и
6317 "$upstream_http_..." можно менять директивой set.
6318
6319 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
6320 рабочем процессе мог произойти segmentation fault.
6321
6322 *) Исправление: завершающая строка multipart range ответа передавалась
6323 неверно.
6324 Спасибо Evan Miller.
6325
6326 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6327 Studio.
6328 Спасибо Андрею Нигматулину.
6329
6330 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
6331 Спасибо Андрею Нигматулину.
6332
6333
6334 Изменения в nginx 0.5.19 24.04.2007
6335
6336 *) Изменение: значение переменной $request_time теперь записывается с
6337 точностью до миллисекунд.
6338
6339 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
6340 переименован в $r->flush.
6341
6342 *) Добавление: переменная $upstream_addr.
6343
6344 *) Добавление: директивы proxy_headers_hash_max_size и
6345 proxy_headers_hash_bucket_size.
6346 Спасибо Володымыру Костырко.
6347
6348 *) Исправление: при использовании sendfile и limit_rate на 64-битных
6349 платформах нельзя было передавать файлы больше 2G.
6350
6351 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
6352 было передавать файлы больше 2G.
6353
6354
6355 Изменения в nginx 0.5.18 19.04.2007
6356
6357 *) Добавление: модуль ngx_http_sub_filter_module.
6358
6359 *) Добавление: переменные "$upstream_http_...".
6360
6361 *) Добавление: теперь переменные $upstream_status и
6362 $upstream_response_time содержат данные о всех обращениях к
6363 апстримам, сделанным до X-Accel-Redirect.
6364
6365 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6366 perl не поддерживал multiplicity, то после первой переконфигурации и
6367 после получения любого сигнала в основном процессе происходил
6368 segmentation fault; ошибка появилась в 0.5.9.
6369
6370 *) Исправление: если perl не поддерживал multiplicity, то после
6371 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
6372
6373
6374 Изменения в nginx 0.5.17 02.04.2007
6375
6376 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
6377
6378 *) Добавление: теперь nginx поддерживает директиву include внутри блока
6379 types.
6380
6381 *) Исправление: использование переменной $document_root в директиве root
6382 и alias запрещено: оно вызывало рекурсивное переполнение стека.
6383
6384 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6385
6386 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
6387 $uri) возвращали старое закэшированное значение.
6388
6389
6390 Изменения в nginx 0.5.16 26.03.2007
6391
6392 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
6393 использовалась сеть класса С.
6394 Спасибо Павлу Ярковому.
6395
6396 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
6397 был указан charset и строка завершалась символом ";", то в рабочем
6398 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
6399
6400 *) Исправление: ошибки "[alert] zero size buf" при работе с
6401 FastCGI-сервером, если тело запроса, записанное во временный файл,
6402 было кратно 32K.
6403
6404 *) Исправление: nginx не собирался на Solaris без параметра
6405 --with-debug; ошибка появилась в 0.5.15.
6406
6407
6408 Изменения в nginx 0.5.15 19.03.2007
6409
6410 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
6411 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и
6412 xclient.
6413 Спасибо Антону Южанинову и Максиму Дунину.
6414
6415 *) Добавление: теперь keep-alive соединения закрываются сразу же по
6416 получении сигнала переконфигурации.
6417
6418 *) Изменение: директивы imap и auth переименованы соответственно в mail
6419 и pop3_auth.
6420
6421 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
6422 был разрешён метод APOP, то в рабочем процессе происходил
6423 segmentation fault.
6424
6425 *) Исправление: при использовании директивы starttls only в протоколе
6426 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
6427
6428 *) Исправление: рабочие процессы не выходили после переконфигурации и не
6429 переоткрывали логи, если использовался метод eventport.
6430
6431 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
6432 зациклиться.
6433
6434 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
6435 используются методы eventport или /dev/poll.
6436
6437
6438 Изменения в nginx 0.5.14 23.02.2007
6439
6440 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
6441 конфигурационного файла.
6442
6443
6444 Изменения в nginx 0.5.13 19.02.2007
6445
6446 *) Добавление: методы COPY и MOVE.
6447
6448 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
6449 запросов, переданных по keep-alive соединению.
6450
6451 *) Исправление: nginx не работал на 64-битном big-endian Linux.
6452 Спасибо Андрею Нигматулину.
6453
6454 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
6455 теперь сразу закрывает соединение, а не по таймауту.
6456
6457 *) Исправление: если при использовании метода epoll клиент закрывал
6458 преждевременно соединение со своей стороны, то nginx закрывал это
6459 соединение только по истечении таймаута на передачу.
6460
6461 *) Исправление: nginx не собирался на платформах, отличных от i386,
6462 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6463
6464
6465 Изменения в nginx 0.5.12 12.02.2007
6466
6467 *) Исправление: nginx не собирался на платформах, отличных от i386,
6468 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6469
6470 *) Исправление: при использовании временных файлов в время работы с
6471 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
6472 ошибка появилась в 0.5.8.
6473
6474 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
6475 то в рабочем процессе мог произойти segmentation fault.
6476
6477 *) Исправление: ngx_http_perl_module не собирался на Solaris.
6478
6479
6480 Изменения в nginx 0.5.11 05.02.2007
6481
6482 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
6483 Спасибо Chris McGrath.
6484
6485 *) Исправление: ответ был неверным, если запрашивалось несколько
6486 диапазонов; ошибка появилась в 0.5.6.
6487
6488 *) Исправление: директива create_full_put_path не могла создавать
6489 промежуточные каталоги, если не была установлена директива
6490 dav_access.
6491 Спасибо Evan Miller.
6492
6493 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
6494 записываться код "0".
6495
6496 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6497 произойти segmentation fault.
6498
6499
6500 Изменения в nginx 0.5.10 26.01.2007
6501
6502 *) Исправление: во время обновления исполняемого файла новый процесс не
6503 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
6504
6505 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6506 произойти segmentation fault; ошибка появилась в 0.5.1.
6507
6508
6509 Изменения в nginx 0.5.9 25.01.2007
6510
6511 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
6512 использует значение переменной $memcached_key.
6513
6514 *) Добавление: переменная $memcached_key.
6515
6516 *) Добавление: параметр clean в директиве client_body_in_file_only.
6517
6518 *) Добавление: директива env.
6519
6520 *) Добавление: директива sendfile работает внутри блока if.
6521
6522 *) Добавление: теперь при ошибке записи в access_log nginx записывает
6523 сообщение в error_log, но не чаще одного раза в минуту.
6524
6525 *) Исправление: директива "access_log off" не всегда запрещала запись в
6526 лог.
6527
6528
6529 Изменения в nginx 0.5.8 19.01.2007
6530
6531 *) Исправление: если использовалась директива
6532 "client_body_in_file_only on" и тело запроса было небольшое, то мог
6533 произойти segmentation fault.
6534
6535 *) Исправление: происходил segmentation fault, если использовались
6536 директивы "client_body_in_file_only on" и
6537 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
6538 делался переход к следующему бэкенду.
6539
6540 *) Исправление: если при использовании директивы "proxy_buffering off"
6541 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
6542 заданному директивой send_timeout; ошибка появилась в 0.4.7.
6543
6544 *) Исправление: если при использовании метода epoll клиент закрывал
6545 преждевременно соединение со своей стороны, то nginx закрывал это
6546 соединение только по истечении таймаута на передачу.
6547
6548 *) Исправление: ошибки "[alert] zero size buf" при работе с
6549 FastCGI-сервером.
6550
6551 *) Исправление ошибок в директиве limit_zone.
6552
6553
6554 Изменения в nginx 0.5.7 15.01.2007
6555
6556 *) Добавление: оптимизация использования памяти в ssl_session_cache.
6557
6558 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
6559
6560 *) Исправление: на старте или во время переконфигурации происходил
6561 segmentation fault, если директивы ssl_session_cache или limit_zone
6562 использовались на 64-битных платформах.
6563
6564 *) Исправление: при использовании директив add_before_body или
6565 add_after_body происходил segmentation fault, если в заголовке ответа
6566 нет строки "Content-Type".
6567
6568 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
6569 потоков.
6570 Спасибо Дену Иванову.
6571
6572 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
6573
6574
6575 Изменения в nginx 0.5.6 09.01.2007
6576
6577 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
6578 кроме GET, HEAD и POST.
6579
6580 *) Добавление: модуль ngx_http_limit_zone_module.
6581
6582 *) Добавление: переменная $binary_remote_addr.
6583
6584 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
6585 ngx_imap_ssl_module.
6586
6587 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
6588
6589 *) Исправление: при использовании $r->sendfile() byte-ranges
6590 передавались неверно.
6591
6592
6593 Изменения в nginx 0.5.5 24.12.2006
6594
6595 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
6596
6597 *) Добавление: ключ -V.
6598
6599 *) Добавление: директива worker_rlimit_core поддерживает указание
6600 размера в K, M и G.
6601
6602 *) Исправление: модуль nginx.pm теперь может устанавливаться
6603 непривилегированным пользователем.
6604
6605 *) Исправление: при использовании методов $r->request_body или
6606 $r->request_body_file мог произойти segmentation fault.
6607
6608 *) Исправление: ошибок, специфичных для платформы ppc.
6609
6610
6611 Изменения в nginx 0.5.4 15.12.2006
6612
6613 *) Добавление: директиву perl можно использовать внутри блока
6614 limit_except.
6615
6616 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
6617 заголовке запроса для метода DELETE.
6618
6619 *) Исправление: при использовании одного параметра в директиве
6620 dav_access nginx мог сообщить об ошибке в конфигурации.
6621
6622 *) Исправление: при использовании переменной $host мог произойти
6623 segmentation fault; ошибка появилась в 0.4.14.
6624
6625
6626 Изменения в nginx 0.5.3 13.12.2006
6627
6628 *) Добавление: модуль ngx_http_perl_module поддерживает методы
6629 $r->status, $r->log_error и $r->sleep.
6630
6631 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
6632 конфигурации nginx'а.
6633
6634 *) Исправление: метод $r->has_request_body не работал.
6635
6636
6637 Изменения в nginx 0.5.2 11.12.2006
6638
6639 *) Исправление: если в директивах proxy_pass использовалось имя,
6640 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
6641 ошибка появилась в 0.5.1.
6642
6643
6644 Изменения в nginx 0.5.1 11.12.2006
6645
6646 *) Исправление: директива post_action могла не работать после неудачного
6647 завершения запроса.
6648
6649 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
6650 Спасибо Bron Gondwana.
6651
6652 *) Исправление: при указании в директиве fastcgi_pass имени описанного
6653 upstream'а выдавалось сообщение "no port in upstream"; ошибка
6654 появилась в 0.5.0.
6655
6656 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6657 использовались одинаковых имена серверов, но с разными портами, то
6658 эти директивы использовали первый описанный порт; ошибка появилась в
6659 0.5.0.
6660
6661 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6662 использовались unix domain сокеты, то эти директивы использовали
6663 первый описанный сокет; ошибка появилась в 0.5.0.
6664
6665 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
6666 если он был указан в последней строке файла паролей и после пароля не
6667 было перевода строки, возврата каретки или символа ":".
6668
6669 *) Исправление: переменная $upstream_response_time могла быть равна
6670 "0.000", хотя время обработки было больше 1 миллисекунды.
6671
6672
6673 Изменения в nginx 0.5.0 04.12.2006
6674
6675 *) Изменение: параметры в виде "%name" в директиве log_format больше не
6676 поддерживаются.
6677
6678 *) Изменение: директивы proxy_upstream_max_fails,
6679 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
6680 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
6681 memcached_upstream_fail_timeout больше не поддерживаются.
6682
6683 *) Добавление: директива server в блоке upstream поддерживает параметры
6684 max_fails, fail_timeout и down.
6685
6686 *) Добавление: директива ip_hash в блоке upstream.
6687
6688 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа
6689 сервера аутентификации IMAP/POP3 прокси.
6690
6691 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
6692 появилась в 0.4.14.
6693
6694
6695 Изменения в nginx 0.4.14 27.11.2006
6696
6697 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
6698
6699 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
6700 Linux и NetBSD.
6701
6702 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
6703 поддержкой потоков; ошибка появилась в 0.3.38.
6704
6705 *) Исправление: ngx_http_perl_module не работал корректно, если перл
6706 вызывался рекурсивно.
6707
6708 *) Исправление: nginx игнорировал имя сервера в строке запроса.
6709
6710 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
6711 процесс мог зациклиться.
6712
6713 *) Исправление: при изменении системного времени переменная
6714 $upstream_response_time могла быть отрицательной.
6715
6716 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
6717 прокси не передавался параметр Auth-Login-Attempt.
6718
6719 *) Исправление: при ошибке соединения с сервером аутентификации
6720 IMAP/POP3 прокси мог произойти segmentation fault.
6721
6722
6723 Изменения в nginx 0.4.13 15.11.2006
6724
6725 *) Добавление: директиву proxy_pass можно использовать внутри блока
6726 limit_except.
6727
6728 *) Добавление: директива limit_except поддерживает все WebDAV методы.
6729
6730 *) Исправление: при использовании директивы add_before_body без
6731 директивы add_after_body ответ передавался не полностью.
6732
6733 *) Исправление: большое тело запроса не принималось, если использовались
6734 метод epoll и deferred accept().
6735
6736 *) Исправление: для ответов модуля ngx_http_autoindex_module не
6737 выставлялась кодировка; ошибка появилась в 0.3.50.
6738
6739 *) Исправление: ошибки "[alert] zero size buf" при работе с
6740 FastCGI-сервером;
6741
6742 *) Исправление: параметр конфигурации --group= игнорировался.
6743 Спасибо Thomas Moschny.
6744
6745 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
6746 в 0.3.50.
6747
6748
6749 Изменения в nginx 0.4.12 31.10.2006
6750
6751 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6752 $r->variable.
6753
6754 *) Исправление: при включении в ответ большого статического файла с
6755 помощью SSI ответ мог передаваться не полностью.
6756
6757 *) Исправление: nginx не убирал "#fragment" в URI.
6758
6759
6760 Изменения в nginx 0.4.11 25.10.2006
6761
6762 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
6763
6764 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6765 $r->allow_ranges.
6766
6767 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
6768 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
6769
6770
6771 Изменения в nginx 0.4.10 23.10.2006
6772
6773 *) Добавление: POP3 прокси поддерживает APOP.
6774
6775 *) Исправление: при использовании методов select, poll и /dev/poll во
6776 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
6777 нагружал процессор.
6778
6779 *) Исправление: при использовании переменной $server_addr в директиве
6780 map мог произойти segmentation fault.
6781
6782 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
6783 для полных ответов; ошибка появилась в 0.4.7.
6784
6785 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
6786 0.4.9.
6787
6788
6789 Изменения в nginx 0.4.9 13.10.2006
6790
6791 *) Добавление: параметр set в команде SSI include.
6792
6793 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
6794 модуля nginx.pm.
6795
6796
6797 Изменения в nginx 0.4.8 11.10.2006
6798
6799 *) Исправление: если до команды SSI include с параметром wait
6800 выполнялась ещё одна команда SSI include, то параметр wait мог не
6801 работать.
6802
6803 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
6804 полных ответов.
6805 Спасибо Алексею Ковырину.
6806
6807
6808 Изменения в nginx 0.4.7 10.10.2006
6809
6810 *) Добавление: модуль ngx_http_flv_module.
6811
6812 *) Добавление: переменная $request_body_file.
6813
6814 *) Добавление: директивы charset и source_charset поддерживают
6815 переменные.
6816
6817 *) Исправление: если до команды SSI include с параметром wait
6818 выполнялась ещё одна команда SSI include, то параметр wait мог не
6819 работать.
6820
6821 *) Исправление: при использовании директивы "proxy_buffering off" или
6822 при работе с memcached соединения могли не закрываться по таймауту.
6823
6824 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
6825 amd64, sparc64 и ppc64.
6826
6827
6828 Изменения в nginx 0.4.6 06.10.2006
6829
6830 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
6831 amd64, sparc64 и ppc64.
6832
6833 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
6834 chunk'ами, если длина ответа в методе
6835 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
6836
6837 *) Исправление: после перенаправления ошибки с помощью директивы
6838 error_page любая директива модуля ngx_http_rewrite_module возвращала
6839 эту ошибку; ошибка появилась в 0.4.4.
6840
6841
6842 Изменения в nginx 0.4.5 02.10.2006
6843
6844 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
6845 в 0.4.4.
6846
6847
6848 Изменения в nginx 0.4.4 02.10.2006
6849
6850 *) Добавление: переменная $scheme.
6851
6852 *) Добавление: директива expires поддерживает параметр max.
6853
6854 *) Добавление: директива include поддерживает маску "*".
6855 Спасибо Jonathan Dance.
6856
6857 *) Исправление: директива return всегда изменяла код ответа,
6858 перенаправленного директивой error_page.
6859
6860 *) Исправление: происходил segmentation fault, если в методе PUT
6861 передавалось тело нулевой длины.
6862
6863 *) Исправление: при использовании переменных в директиве proxy_redirect
6864 редирект изменялся неверно.
6865
6866
6867 Изменения в nginx 0.4.3 26.09.2006
6868
6869 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
6870 error_page.
6871
6872 *) Добавление: поддержка Solaris 10 event ports.
6873
6874 *) Добавление: модуль ngx_http_browser_module.
6875
6876 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
6877 помощью директивы error_page мог произойти segmentation fault.
6878
6879 *) Исправление: происходил segmentation fault, если в директиве
6880 proxy_pass использовался unix domain сокет; ошибка появилась в
6881 0.3.47.
6882
6883 *) Исправление: SSI не работал с ответами memcached и
6884 небуферизированными проксированными ответами.
6885
6886 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
6887
6888
6889 Изменения в nginx 0.4.2 14.09.2006
6890
6891 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
6892 появилась в 0.4.1.
6893
6894
6895 Изменения в nginx 0.4.1 14.09.2006
6896
6897 *) Исправление: совместимость с DragonFlyBSD.
6898 Спасибо Павлу Назарову.
6899
6900 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
6901 файлов больше 2G.
6902
6903 *) Добавление: теперь на Linux nginx для статических запросов использует
6904 флаг O_NOATIME.
6905 Спасибо Yusuf Goolamabbas.
6906
6907
6908 Изменения в nginx 0.4.0 30.08.2006
6909
6910 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
6911 фазы init module в фазу HTTP postconfiguration.
6912
6913 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
6914 считывается заранее: нужно явно инициировать чтение с помощью метода
6915 $r->has_request_body.
6916
6917 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
6918 DECLINED.
6919
6920 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
6921 заголовка "Date" для метода PUT.
6922
6923 *) Добавление: директива ssi работает внутри блока if.
6924
6925 *) Исправление: происходил segmentation fault, если в директиве index
6926 использовалась переменные и при этом первое имя индексного файла было
6927 без переменных; ошибка появилась в 0.1.29.
6928
6929
6930 Изменения в nginx 0.3.61 28.08.2006
6931
6932 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
6933
6934 *) Добавление: директива msie_refresh.
6935
6936 *) Добавление: директива recursive_error_pages.
6937
6938 *) Исправление: директива rewrite возвращала неправильный редирект, если
6939 редирект включал в себя выделенные закодированные символы из
6940 оригинального URI.
6941
6942
6943 Изменения в nginx 0.3.60 18.08.2006
6944
6945 *) Исправление: во время перенаправления ошибки рабочий процесс мог
6946 зациклиться; ошибка появилась в 0.3.59.
6947
6948
6949 Изменения в nginx 0.3.59 16.08.2006
6950
6951 *) Добавление: теперь можно делать несколько перенаправлений через
6952 директиву error_page.
6953
6954 *) Исправление: директива dav_access не поддерживала три параметра.
6955
6956 *) Исправление: директива error_page не изменяла строку "Content-Type"
6957 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
6958 в 0.3.58.
6959
6960
6961 Изменения в nginx 0.3.58 14.08.2006
6962
6963 *) Добавление: директива error_page поддерживает переменные.
6964
6965 *) Изменение: теперь на Linux используется интерфейс procfs вместо
6966 sysctl.
6967
6968 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
6969 "Content-Type" наследуется из первоначального ответа.
6970
6971 *) Исправление: директива error_page не перенаправляла ошибку 413.
6972
6973 *) Исправление: завершающий "?" не удалял старые аргументы, если в
6974 переписанном URI не было новых аргументов.
6975
6976 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
6977
6978
6979 Изменения в nginx 0.3.57 09.08.2006
6980
6981 *) Добавление: переменная $ssl_client_serial.
6982
6983 *) Исправление: в операторе "!-e" в директиве if.
6984 Спасибо Андриану Буданцову.
6985
6986 *) Исправление: при проверке клиентского сертификата nginx не передавал
6987 клиенту информацию о требуемых сертификатах.
6988
6989 *) Исправление: переменная $document_root не поддерживала переменные в
6990 директиве root.
6991
6992
6993 Изменения в nginx 0.3.56 04.08.2006
6994
6995 *) Добавление: директива dav_access.
6996
6997 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
6998 "!-e", "-x" и "!-x".
6999
7000 *) Исправление: при записи в access_log некоторых передаваемых клиенту
7001 строк заголовков происходил segmentation fault, если запрос возвращал
7002 редирект.
7003
7004
7005 Изменения в nginx 0.3.55 28.07.2006
7006
7007 *) Добавление: параметр stub в команде SSI include.
7008
7009 *) Добавление: команда SSI block.
7010
7011 *) Добавление: скрипт unicode2nginx добавлен в contrib.
7012
7013 *) Исправление: если root был задан только переменной, то корень
7014 задавался относительно префикса сервера.
7015
7016 *) Исправление: если в запросе был "//" или "/.", и после этого
7017 закодированные символы в виде "%XX", то проксируемый запрос
7018 передавался незакодированным.
7019
7020 *) Исправление: метод $r->header_in("Cookie") модуля
7021 ngx_http_perl_module теперь возвращает все строки "Cookie" в
7022 заголовке запроса.
7023
7024 *) Исправление: происходил segmentation fault, если использовался
7025 "client_body_in_file_only on" и делался переход к следующему бэкенду.
7026
7027 *) Исправление: при некоторых условиях во время переконфигурации коды
7028 символов внутри директивы charset_map могли считаться неверными;
7029 ошибка появилась в 0.3.50.
7030
7031
7032 Изменения в nginx 0.3.54 11.07.2006
7033
7034 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
7035
7036 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
7037 memcached_next_upstream поддерживают параметр off.
7038
7039 *) Добавление: директива debug_connection поддерживает запись адресов в
7040 формате CIDR.
7041
7042 *) Исправление: при перекодировании ответа проксированного сервера или
7043 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
7044 полностью.
7045
7046 *) Исправление: переменная $upstream_response_time содержала время
7047 только первого обращения к бэкенду.
7048
7049 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
7050 в 0.3.53.
7051
7052
7053 Изменения в nginx 0.3.53 07.07.2006
7054
7055 *) Изменение: директива add_header добавляет строки в ответы с кодом
7056 204, 301 и 302.
7057
7058 *) Добавление: директива server в блоке upstream поддерживает параметр
7059 weight.
7060
7061 *) Добавление: директива server_name поддерживает маску "*".
7062
7063 *) Добавление: nginx поддерживает тело запроса больше 2G.
7064
7065 *) Исправление: если при использовании "satisfy_any on" клиент успешно
7066 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
7067 forbidden by rule".
7068
7069 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
7070 409.
7071
7072 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
7073 ошибку, nginx продолжал проксирование.
7074
7075
7076 Изменения в nginx 0.3.52 03.07.2006
7077
7078 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
7079 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
7080 ошибку 405.
7081
7082 *) Исправление: при использовании ограничения скорости рабочий процесс
7083 мог зациклиться; ошибка появилась в 0.3.37.
7084
7085 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
7086 "unknown charset", даже если перекодировка не требовалась; ошибка
7087 появилась в 0.3.50.
7088
7089 *) Исправление: если в результате запроса PUT возвращался код 409, то
7090 временный файл не удалялся.
7091
7092
7093 Изменения в nginx 0.3.51 30.06.2006
7094
7095 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
7096 ошибка появилась в 0.3.50.
7097
7098
7099 Изменения в nginx 0.3.50 28.06.2006
7100
7101 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
7102 переименованы соответственно в proxy_intercept_errors и
7103 fastcgi_intercept_errors.
7104
7105 *) Добавление: модуль ngx_http_charset_module поддерживает
7106 перекодирование из однобайтных кодировок в UTF-8 и обратно.
7107
7108 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7109 "X-Accel-Charset" в ответе бэкенда.
7110
7111 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
7112 только если также использовался символ "$".
7113
7114 *) Исправление: при некоторых условиях в SSI после вставки могла быть
7115 добавлена строка "<!--".
7116
7117 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
7118 то при использовании небуферизированного проксировании не закрывалось
7119 соединение с клиентом.
7120
7121
7122 Изменения в nginx 0.3.49 31.05.2006
7123
7124 *) Исправление: в директиве set.
7125
7126 *) Исправление: при включении в ssi двух и более подзапросов,
7127 обрабатываемых через FastCGI, вместо вывода второго и остальных
7128 подзапросов в ответ включался вывод первого подзапроса.
7129
7130
7131 Изменения в nginx 0.3.48 29.05.2006
7132
7133 *) Изменение: теперь модуль ngx_http_charset_module работает для
7134 подзапросов, в ответах которых нет строки заголовка "Content-Type".
7135
7136 *) Исправление: если в директиве proxy_pass не было URI, то директива
7137 "proxy_redirect default" добавляла в переписанный редирект в начало
7138 лишний слэш.
7139
7140 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
7141 GET, теперь это делается только для редиректов, выполняемых с помощью
7142 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
7143 0.3.42.
7144
7145 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
7146 с поддержкой потоков; ошибка появилась в 0.3.46.
7147
7148
7149 Изменения в nginx 0.3.47 23.05.2006
7150
7151 *) Добавление: директива upstream.
7152
7153 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
7154 всегда убирается.
7155
7156
7157 Изменения в nginx 0.3.46 11.05.2006
7158
7159 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
7160 fastcgi_hide_header и fastcgi_pass_header.
7161
7162 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
7163 proxy_pass_server упразднены.
7164
7165 *) Добавление: в режиме прокси поддерживается строка заголовка
7166 "X-Accel-Buffering" в ответе бэкенда.
7167
7168 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
7169 ngx_http_perl_module.
7170
7171
7172 Изменения в nginx 0.3.45 06.05.2006
7173
7174 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
7175 ssl_client_certificate.
7176
7177 *) Изменение: теперь переменная $request_method возвращает метод только
7178 основного запроса.
7179
7180 *) Изменение: в таблице перекодировки koi-win изменены коды символа
7181 &deg;.
7182
7183 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
7184 номера.
7185
7186 *) Исправление: если nginx распределял запросы на несколько машин, то
7187 при падении одной из них запросы, предназначенные для этой машины,
7188 перенаправлялись только на одну машину вместо того, чтобы равномерно
7189 распределяться между остальными.
7190
7191
7192 Изменения в nginx 0.3.44 04.05.2006
7193
7194 *) Добавление: параметр wait в команде SSI include.
7195
7196 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
7197 белорусские символы.
7198
7199 *) Исправление: в SSI.
7200
7201
7202 Изменения в nginx 0.3.43 26.04.2006
7203
7204 *) Исправление: в SSI.
7205
7206
7207 Изменения в nginx 0.3.42 26.04.2006
7208
7209 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
7210
7211 *) Исправление: ошибки при использовании в директиве rewrite одного и
7212 того же выделения более одного раза.
7213
7214 *) Исправление: в лог не записывались переменные
7215 $sent_http_content_type, $sent_http_content_length,
7216 $sent_http_last_modified, $sent_http_connection,
7217 $sent_http_keep_alive и $sent_http_transfer_encoding.
7218
7219 *) Исправление: переменная $sent_http_cache_control возвращала
7220 содержимое только одной строки "Cache-Control" в заголовке ответа.
7221
7222
7223 Изменения в nginx 0.3.41 21.04.2006
7224
7225 *) Добавление: ключ -v.
7226
7227 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
7228 segmentation fault.
7229
7230 *) Исправление: в обработке FastCGI.
7231
7232 *) Исправление: если путь к перловым модулям не был указан с помощью
7233 --with-perl_modules_path=PATH или директивы perl_modules, то на
7234 старте происходил segmentation fault.
7235
7236
7237 Изменения в nginx 0.3.40 19.04.2006
7238
7239 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
7240
7241 *) Добавление: директива create_full_put_path.
7242
7243 *) Добавление: переменная $limit_rate.
7244
7245
7246 Изменения в nginx 0.3.39 17.04.2006
7247
7248 *) Добавление: директива uninitialized_variable_warn; уровень
7249 логгирования сообщения о неинициализированной переменной понижен с
7250 уровня alert на warn.
7251
7252 *) Добавление: директива override_charset.
7253
7254 *) Изменение: при использовании неизвестной переменной в SSI-командах
7255 echo и if expr='$name' теперь не записывается в лог сообщение о
7256 неизвестной переменной.
7257
7258 *) Исправление: счётчик активных соединений рос при превышении лимита
7259 соединений, заданного директивой worker_connections; ошибка появилась
7260 в 0.2.0.
7261
7262 *) Исправление: при некоторых условия ограничение скорости соединения
7263 могло не работать; ошибка появилась в 0.3.38.
7264
7265
7266 Изменения в nginx 0.3.38 14.04.2006
7267
7268 *) Добавление: модуль ngx_http_dav_module.
7269
7270 *) Изменение: оптимизация модуля ngx_http_perl_module.
7271 Спасибо Сергею Скворцову.
7272
7273 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7274 $r->request_body_file.
7275
7276 *) Добавление: директива client_body_in_file_only.
7277
7278 *) Изменение: теперь при переполнении диска nginx пытается писать
7279 access_log'и только раз в секунду.
7280 Спасибо Антону Южанинову и Максиму Дунину.
7281
7282 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
7283 при значениях больше 100 Kbyte/s.
7284 Спасибо ForJest.
7285
7286 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
7287 символы "\r" и "\n" в логине и пароле в закодированном виде.
7288 Спасибо Максиму Дунину.
7289
7290
7291 Изменения в nginx 0.3.37 07.04.2006
7292
7293 *) Добавление: директива limit_except.
7294
7295 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
7296 "!-f".
7297
7298 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7299 $r->request_body.
7300
7301 *) Исправление: в модуле ngx_http_addition_filter_module.
7302
7303
7304 Изменения в nginx 0.3.36 05.04.2006
7305
7306 *) Добавление: модуль ngx_http_addition_filter_module.
7307
7308 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
7309 внутри блока if.
7310
7311 *) Добавление: директивы proxy_ignore_client_abort и
7312 fastcgi_ignore_client_abort.
7313
7314 *) Добавление: переменная $request_completion.
7315
7316 *) Добавление: модуль ngx_http_perl_module поддерживает методы
7317 $r->request_method и $r->remote_addr.
7318
7319 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
7320
7321 *) Исправление: строка "\/" в начале выражения команды if модуля
7322 ngx_http_ssi_module воспринималась неверно.
7323
7324 *) Исправление: в использовании регулярных выражениях в команде if
7325 модуля ngx_http_ssi_module.
7326
7327 *) Исправление: при задании относительного пути в директивах
7328 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
7329 perl_modules использовался каталог относительно текущего каталога, а
7330 не относительно префикса сервера.
7331
7332
7333 Изменения в nginx 0.3.35 22.03.2006
7334
7335 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
7336 для первой директивы listen; ошибка появилась в 0.3.31.
7337
7338 *) Исправление: в директиве proxy_pass без URI при использовании в
7339 подзапросе.
7340
7341
7342 Изменения в nginx 0.3.34 21.03.2006
7343
7344 *) Добавление: директива add_header поддерживает переменные.
7345
7346
7347 Изменения в nginx 0.3.33 15.03.2006
7348
7349 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
7350 fastcgi_next_upstream.
7351
7352 *) Исправление: ngx_http_perl_module не работал со встроенным в
7353 конфигурационный файл кодом, если он не начинался сразу же с "sub".
7354
7355 *) Исправление: в директиве post_action.
7356
7357
7358 Изменения в nginx 0.3.32 11.03.2006
7359
7360 *) Исправление: удаление отладочного логгирования на старте и при
7361 переконфигурации; ошибка появилась в 0.3.31.
7362
7363
7364 Изменения в nginx 0.3.31 10.03.2006
7365
7366 *) Изменение: теперь nginx передаёт неверные ответы проксированного
7367 бэкенда.
7368
7369 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
7370
7371 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
7372
7373 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
7374 64-битном ядре MacOSX.
7375 Спасибо Андрею Нигматулину.
7376
7377 *) Исправление: если внутри одного сервера описаны несколько директив
7378 listen, слушающих на разных адресах, то имена серверов вида
7379 "*.domain.tld" работали только для первого адреса; ошибка появилась в
7380 0.3.18.
7381
7382 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7383 не передавались запросы с телом, записанным во временный файл.
7384
7385 *) Исправление: совместимость с perl 5.8.8.
7386
7387
7388 Изменения в nginx 0.3.30 22.02.2006
7389
7390 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
7391 с уровня crit.
7392
7393 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
7394 ngx_http_ssi_filter_module.
7395
7396 *) Исправление: nginx не собирался на i386 платформе, если использовался
7397 PIC; ошибка появилась в 0.3.27.
7398
7399
7400 Изменения в nginx 0.3.29 20.02.2006
7401
7402 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
7403 FastCGI передаёт большое количество предупреждений перед ответом.
7404
7405 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
7406 строка заголовка "Transfer-Encoding: chunked".
7407
7408 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
7409 передавал полные строки заголовка ответа в отдельных FastCGI записях.
7410
7411 *) Исправление: если в директиве post_action был указан проксируемый
7412 URI, то он выполнялся только после успешного завершения запроса.
7413
7414
7415 Изменения в nginx 0.3.28 16.02.2006
7416
7417 *) Добавление: директива restrict_host_names упразднена.
7418
7419 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
7420
7421 *) Исправление: при некоторых условиях проксированное соединение с
7422 клиентом завершалось преждевременно.
7423 Спасибо Владимиру Шутову.
7424
7425 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
7426 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
7427
7428 *) Исправление: директива post_action работала только после успешного
7429 завершения запроса.
7430
7431 *) Исправление: тело проксированного ответа, создаваемого директивой
7432 post_action, передавалось клиенту.
7433
7434
7435 Изменения в nginx 0.3.27 08.02.2006
7436
7437 *) Изменение: директивы variables_hash_max_size и
7438 variables_hash_bucket_size.
7439
7440 *) Добавление: переменная $body_bytes_sent доступна не только в
7441 директиве log_format.
7442
7443 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
7444
7445 *) Добавление: определение размера строки кэша распространённых
7446 процессоров при старте.
7447
7448 *) Добавление: директива accept_mutex теперь поддерживается посредством
7449 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
7450
7451 *) Добавление: директива lock_file и параметр автоконфигурации
7452 --with-lock-path=PATH.
7453
7454 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7455 не передавались запросы с телом.
7456
7457
7458 Изменения в nginx 0.3.26 03.02.2006
7459
7460 *) Изменение: директива optimize_host_names переименована в
7461 optimize_server_names.
7462
7463 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
7464 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
7465
7466
7467 Изменения в nginx 0.3.25 01.02.2006
7468
7469 *) Исправление: при неверной конфигурации на старте или во время
7470 переконфигурации происходил segmentation fault; ошибка появилась в
7471 0.3.24.
7472
7473
7474 Изменения в nginx 0.3.24 01.02.2006
7475
7476 *) Изменение: обход ошибки в kqueue во FreeBSD.
7477
7478 *) Исправление: ответ, создаваемый директивой post_action, теперь не
7479 передаётся клиенту.
7480
7481 *) Исправление: при использовании большого количества лог-файлов
7482 происходила утечка памяти.
7483
7484 *) Исправление: внутри одного location работала только первая директива
7485 proxy_redirect.
7486
7487 *) Исправление: на 64-битных платформах при старте мог произойти
7488 segmentation fault, если использовалось большое количество имён в
7489 директивах server_name; ошибка появилась в 0.3.18.
7490
7491
7492 Изменения в nginx 0.3.23 24.01.2006
7493
7494 *) Добавление: директива optimize_host_names.
7495
7496 *) Исправление: ошибки при использовании переменных в директивах path и
7497 alias.
7498
7499 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
7500 Linux и Solaris.
7501
7502
7503 Изменения в nginx 0.3.22 17.01.2006
7504
7505 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
7506 и $r->unescape.
7507
7508 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
7509 упразднён.
7510
7511 *) Исправление: если в директиве valid_referers указаны только none или
7512 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
7513
7514
7515 Изменения в nginx 0.3.21 16.01.2006
7516
7517 *) Добавление: модуль ngx_http_perl_module.
7518
7519 *) Изменение: директива valid_referers разрешает использовать рефереры
7520 совсем без URI.
7521
7522
7523 Изменения в nginx 0.3.20 11.01.2006
7524
7525 *) Исправление: ошибки в обработке SSI.
7526
7527 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
7528 виде /uri?args.
7529
7530
7531 Изменения в nginx 0.3.19 28.12.2005
7532
7533 *) Добавление: директивы path и alias поддерживают переменные.
7534
7535 *) Изменение: теперь директива valid_referers опять учитывает URI.
7536
7537 *) Исправление: ошибки в обработке SSI.
7538
7539
7540 Изменения в nginx 0.3.18 26.12.2005
7541
7542 *) Добавление: директива server_names поддерживает имена вида
7543 ".domain.tld".
7544
7545 *) Добавление: директива server_names использует хэш для имён вида
7546 "*.domain.tld" и более эффективный хэш для обычных имён.
7547
7548 *) Изменение: директивы server_names_hash_max_size и
7549 server_names_hash_bucket_size.
7550
7551 *) Изменение: директивы server_names_hash и server_names_hash_threshold
7552 упразднены.
7553
7554 *) Добавление: директива valid_referers использует хэш для имён сайтов.
7555
7556 *) Изменение: теперь директива valid_referers проверяет только имена
7557 сайтов без учёта URI.
7558
7559 *) Исправление: некоторые имена вида ".domain.tld" неверно
7560 обрабатывались модулем ngx_http_map_module.
7561
7562 *) Исправление: если конфигурационного файла не было, то происходил
7563 segmentation fault; ошибка появилась в 0.3.12.
7564
7565 *) Исправление: на 64-битных платформах при старте мог произойти
7566 segmentation fault; ошибка появилась в 0.3.16.
7567
7568
7569 Изменения в nginx 0.3.17 18.12.2005
7570
7571 *) Изменение: на Linux configure теперь проверяет наличие epoll и
7572 sendfile64() в ядре.
7573
7574 *) Добавление: директива map поддерживает доменные имена в формате
7575 ".domain.tld".
7576
7577 *) Исправление: во время SSL handshake не иcпользовались таймауты;
7578 ошибка появилась в 0.2.4.
7579
7580 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
7581
7582 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7583 по умолчанию использовался порт 80.
7584
7585
7586 Изменения в nginx 0.3.16 16.12.2005
7587
7588 *) Добавление: модуль ngx_http_map_module.
7589
7590 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
7591
7592 *) Добавление: директива ssi_value_length.
7593
7594 *) Добавление: директива worker_rlimit_core.
7595
7596 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
7597 Pentium 4 номер соединения в логах всегда был равен 1.
7598
7599 *) Исправление: команда config timefmt в SSI задавала неверный формат
7600 времени.
7601
7602 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
7603 использовании SSL соединений; ошибка появилась в 0.3.13.
7604 Спасибо Rob Mueller.
7605
7606 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
7607 ошибка появилась в 0.3.13.
7608
7609
7610 Изменения в nginx 0.3.15 07.12.2005
7611
7612 *) Добавление: новой код 444 в директиве return для закрытия соединения.
7613
7614 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
7615
7616 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
7617 соединений только при плавном выходе и включённой директиве
7618 debug_points.
7619
7620
7621 Изменения в nginx 0.3.14 05.12.2005
7622
7623 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
7624 в 0.3.13.
7625
7626
7627 Изменения в nginx 0.3.13 05.12.2005
7628
7629 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
7630
7631 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
7632 /dev/poll.
7633
7634 *) Исправление: ошибки в обработке SSI.
7635
7636 *) Исправление: sendfilev() в Solaris теперь не используется при
7637 передаче тела запроса FastCGI-серверу через unix domain сокет.
7638
7639 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
7640 появилась в 0.3.11.
7641
7642
7643 Изменения в nginx 0.3.12 26.11.2005
7644
7645 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
7646 то при использовании директивы "satisfy_any on" директивы доступа и
7647 аутентификации не работали. Модуль ngx_http_realip_module не
7648 собирался и не собирается по умолчанию.
7649
7650 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
7651
7652 *) Изменение: директивы proxy_header_buffer_size и
7653 fastcgi_header_buffer_size переименованы соответственно в
7654 proxy_buffer_size и fastcgi_buffer_size.
7655
7656 *) Добавление: модуль ngx_http_memcached_module.
7657
7658 *) Добавление: директива proxy_buffering.
7659
7660 *) Исправление: изменение в работе с accept mutex при использовании
7661 метода rtsig; ошибка появилась в 0.3.0.
7662
7663 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
7664 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
7665
7666 *) Исправление: при наследовании директивы auth_basic с уровня http в
7667 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
7668 "Basic realm".
7669
7670 *) Исправление: если в директиве access_log был явно указан формат
7671 combined, то в лог записывались пустые строки; ошибка появилась в
7672 0.3.8.
7673
7674 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
7675 Solaris.
7676
7677 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
7678 в кавычках и закрывающую скобку.
7679
7680
7681 Изменения в nginx 0.3.11 15.11.2005
7682
7683 *) Исправление: nginx не передавал при проксировании тело запроса и
7684 строки заголовка клиента; ошибка появилась в 0.3.10.
7685
7686
7687 Изменения в nginx 0.3.10 15.11.2005
7688
7689 *) Изменение: директива valid_referers и переменная $invalid_referer
7690 перенесены из модуля ngx_http_rewrite_module в новый модуль
7691 ngx_http_referer_module.
7692
7693 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
7694 "$body_bytes_sent".
7695
7696 *) Добавление: переменные "$sent_http_...".
7697
7698 *) Добавление: директива if поддерживает операции "=" и "!=".
7699
7700 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
7701
7702 *) Добавление: директива proxy_set_body.
7703
7704 *) Добавление: директива post_action.
7705
7706 *) Добавление: модуль ngx_http_empty_gif_module.
7707
7708 *) Добавление: директива worker_cpu_affinity для Linux.
7709
7710 *) Исправление: директива rewrite не раскодировала символы в редиректах
7711 в URI, теперь символы раскодируются, кроме символов %00-%25 и
7712 %7F-%FF.
7713
7714 *) Исправление: nginx не собирался компилятором icc 9.0.
7715
7716 *) Исправление: если для статического файла нулевого размера был
7717 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
7718
7719
7720 Изменения в nginx 0.3.9 10.11.2005
7721
7722 *) Исправление: nginx считал небезопасными URI, в которых между двумя
7723 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
7724
7725
7726 Изменения в nginx 0.3.8 09.11.2005
7727
7728 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
7729 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
7730 наличие путей "/../" и нулей.
7731
7732 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
7733 строке "Authorization" в заголовке запроса.
7734
7735 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
7736 и ngx_imap_ssl_module.
7737
7738 *) Добавление: директива auth_http_header модуля
7739 ngx_imap_auth_http_module.
7740
7741 *) Добавление: директива add_header.
7742
7743 *) Добавление: модуль ngx_http_realip_module.
7744
7745 *) Добавление: новые переменные для использования в директиве
7746 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
7747 $uri, $request_time, $request_length, $upstream_status,
7748 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
7749 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
7750 упразднены.
7751
7752 *) Изменение: в директиве "if" ложными значениями переменных теперь
7753 являются пустая строка "" и строки, начинающиеся на "0".
7754
7755 *) Исправление: при работает с проксированными или FastCGI-серверами
7756 nginx мог оставлять открытыми соединения и временные файлы с
7757 запросами клиентов.
7758
7759 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
7760 плавном выходе.
7761
7762 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
7763 запрос проксировался в location, заданном регулярным выражением, то
7764 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
7765
7766 *) Исправление: директива expires не удаляла уже установленную строку
7767 заголовка "Expires".
7768
7769 *) Исправление: при использовании метода rtsig и нескольких рабочих
7770 процессах nginx мог перестать принимать запросы.
7771
7772 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
7773 "\'".
7774
7775 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
7776 при использовании сжатия ответ передавался не до конца или не
7777 передавался вообще.
7778
7779
7780 Изменения в nginx 0.3.7 27.10.2005
7781
7782 *) Добавление: директива access_log поддерживает параметр buffer=.
7783
7784 *) Исправление: nginx не собирался на платформах, отличных от i386,
7785 amd64, sparc и ppc; ошибка появилась в 0.3.2.
7786
7787
7788 Изменения в nginx 0.3.6 24.10.2005
7789
7790 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
7791 пустой логин.
7792
7793 *) Добавление: директива log_format поддерживает переменные в виде
7794 $name.
7795
7796 *) Исправление: если хотя бы в одном сервере не было описано ни одной
7797 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
7798 0.3.3.
7799
7800 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
7801 использовался порт 80.
7802
7803
7804 Изменения в nginx 0.3.5 21.10.2005
7805
7806 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
7807 мог произойти segmentation fault; ошибка появилась в 0.2.2.
7808
7809 *) Исправление: accept mutex не работал, все соединения обрабатывались
7810 одним рабочим процессом; ошибка появилась в 0.3.3.
7811
7812 *) Исправление: при использовании метода rtsig и директивы
7813 timer_resolution не работали таймауты.
7814
7815
7816 Изменения в nginx 0.3.4 19.10.2005
7817
7818 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
7819 появилась в 0.3.3.
7820
7821
7822 Изменения в nginx 0.3.3 19.10.2005
7823
7824 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
7825 "backlog" и "accept_filter".
7826
7827 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
7828
7829 *) Изменение: параметр лога $msec теперь не требует дополнительного
7830 системного вызова gettimeofday().
7831
7832 *) Добавление: ключ -t теперь проверяет директивы listen.
7833
7834 *) Исправление: если в директиве listen был указан неверный адрес, то
7835 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
7836
7837 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
7838 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
7839
7840 *) Добавление: директива timer_resolution.
7841
7842 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
7843
7844 *) Исправление: временный файл с телом запроса клиента теперь удаляется
7845 сразу после того, как клиенту передан заголовок ответа.
7846
7847 *) Исправление: совместимость с OpenSSL 0.9.6.
7848
7849 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
7850 относительными.
7851
7852 *) Исправление: директива ssl_prefer_server_ciphers не работала для
7853 модуля ngx_imap_ssl_module.
7854
7855 *) Исправление: директива ssl_protocols позволяла задать только один
7856 протокол.
7857
7858
7859 Изменения в nginx 0.3.2 12.10.2005
7860
7861 *) Добавление: поддержка Sun Studio 10 C compiler.
7862
7863 *) Добавление: директивы proxy_upstream_max_fails,
7864 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
7865 fastcgi_upstream_fail_timeout.
7866
7867
7868 Изменения в nginx 0.3.1 10.10.2005
7869
7870 *) Исправление: во время переполнения очереди сигналов при использовании
7871 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
7872
7873 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
7874
7875
7876 Изменения в nginx 0.3.0 07.10.2005
7877
7878 *) Изменение: убрано десятидневное ограничение времени работы рабочего
7879 процесса. Ограничение было введено из-за переполнения миллисекундных
7880 таймеров.
7881
7882
7883 Изменения в nginx 0.2.6 05.10.2005
7884
7885 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
7886 бэкенду при использовании распределения нагрузки.
7887
7888 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
7889 запрос теперь передаётся, если в директиве proxy_pass отсутствует
7890 URI.
7891
7892 *) Добавление: директива error_page поддерживает редиректы и позволяет
7893 более гибко менять код ошибки.
7894
7895 *) Изменение: в проксированных подзапросах теперь игнорируется
7896 переданный charset.
7897
7898 *) Исправление: если после изменения URI в блоке if для запроса не
7899 находилась новая конфигурация, то правила модуля
7900 ngx_http_rewrite_module выполнялись снова.
7901
7902 *) Исправление: если директива set устанавливала переменную модуля
7903 ngx_http_geo_module в какой-либо части конфигурации, то эта
7904 переменная не была доступна в других частях конфигурации и выдавалась
7905 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
7906
7907
7908 Изменения в nginx 0.2.5 04.10.2005
7909
7910 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
7911 теперь выдаёт предупреждение и изменяет старое значение.
7912
7913 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
7914
7915 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
7916 команде include.
7917
7918 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
7919 значений переменных в выражениях команды if.
7920
7921
7922 Изменения в nginx 0.2.4 03.10.2005
7923
7924 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
7925 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
7926 if.
7927
7928 *) Исправление: ошибки при проксировании location без слэша в конце;
7929 ошибка появилась в 0.1.44.
7930
7931 *) Исправление: при использовании метода rtsig мог произойти
7932 segmentation fault; ошибка появилась в 0.2.0.
7933
7934
7935 Изменения в nginx 0.2.3 30.09.2005
7936
7937 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
7938 появилась в 0.2.2.
7939
7940
7941 Изменения в nginx 0.2.2 30.09.2005
7942
7943 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
7944
7945 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
7946 директивой set.
7947
7948 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
7949 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
7950
7951 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
7952 длинных имён файлов;
7953
7954 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
7955 файлы, начинающиеся на точку.
7956
7957 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
7958 привести также к закрытию другого соединения.
7959 Спасибо Rob Mueller.
7960
7961 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
7962 HTTPS.
7963
7964
7965 Изменения в nginx 0.2.1 23.09.2005
7966
7967 *) Исправление: если все бэкенды, используемые для балансировки
7968 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
7969 nginx мог зациклится; ошибка появилась в 0.2.0.
7970
7971
7972 Изменения в nginx 0.2.0 23.09.2005
7973
7974 *) Изменились имена pid-файлов, используемые во время обновления
7975 исполняемого файла. Ручное переименование теперь не нужно. Старый
7976 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
7977 запускает новый исполняемый файл. Новый основной процесс создаёт
7978 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
7979 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
7980 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
7981 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
7982 0.2.0 - используют pid-файл без суффиксов.
7983
7984 *) Изменение: директива worker_connections, новое название директивы
7985 connections; директива теперь задаёт максимальное число соединений, а
7986 не максимально возможный номер дескриптора для сокета.
7987
7988 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
7989 рабочего процесса.
7990
7991 *) Добавление: директива satisfy_any.
7992
7993 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
7994 не работают для подзапросов.
7995
7996 *) Добавление: директивы worker_rlimit_nofile и
7997 worker_rlimit_sigpending.
7998
7999 *) Исправление: если все бэкенды, используемые для балансировки
8000 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8001 nginx не обращался к ним в течение 60 секунд.
8002
8003 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
8004 Спасибо Rob Mueller.
8005
8006 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
8007
8008 *) Исправление: ошибки при использовании SSI и сжатия.
8009
8010 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
8011 "Expires" и "Cache-Control".
8012 Спасибо Александру Кукушкину.
8013
8014
8015 Изменения в nginx 0.1.45 08.09.2005
8016
8017 *) Изменение: директива ssl_engine упразднена в модуле
8018 ngx_http_ssl_module и перенесена на глобальный уровень.
8019
8020 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
8021 передавались через SSL соединение.
8022
8023 *) Разные исправления в IMAP/POP3 прокси.
8024
8025
8026 Изменения в nginx 0.1.44 06.09.2005
8027
8028 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
8029
8030 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
8031
8032 *) Добавление: директива userid_mark.
8033
8034 *) Добавление: значение переменной $remote_user определяется независимо
8035 от того, используется ли авторизация или нет.
8036
8037
8038 Изменения в nginx 0.1.43 30.08.2005
8039
8040 *) Добавление: listen(2) backlog в директиве listen можно менять по
8041 сигналу -HUP.
8042
8043 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
8044
8045 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
8046 серверу.
8047
8048 *) Исправление: если в ответе проксированного сервера или FastCGI
8049 сервера была строка "Cache-Control", то при использовании директивы
8050 expires происходил segmentation fault или рабочий процесс мог
8051 зациклится; в режиме прокси ошибка появилась в 0.1.29.
8052
8053
8054 Изменения в nginx 0.1.42 23.08.2005
8055
8056 *) Исправление: если URI запроса получался нулевой длины после обработки
8057 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
8058 происходил segmentation fault или bus error.
8059
8060 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
8061 появилась в 0.1.38.
8062
8063
8064 Изменения в nginx 0.1.41 25.07.2005
8065
8066 *) Исправление: если переменная использовалась в файле конфигурации, то
8067 она не могла использоваться в SSI.
8068
8069
8070 Изменения в nginx 0.1.40 22.07.2005
8071
8072 *) Исправление: если клиент слал очень длинную строку заголовка, то в
8073 логе не помещалась информация, связанная с этим запросом.
8074
8075 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
8076 строка "Set-Cookie"; ошибка появилась в 0.1.39.
8077
8078 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
8079 строка "Content-Disposition".
8080
8081 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
8082 на которых он слушал.
8083
8084 *) Исправление: после обновления исполняемого файла на лету на Linux и
8085 Solaris название процесса в команде ps становилось короче.
8086
8087
8088 Изменения в nginx 0.1.39 14.07.2005
8089
8090 *) Изменения в модуле ngx_http_charset_module: директива default_charset
8091 упразднена; директива charset задаёт кодировку ответа; директива
8092 source_charset задаёт только исходную кодировку.
8093
8094 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
8095 не передавалась строка заголовка "WWW-Authenticate".
8096
8097 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
8098 могли закрыть соединение до того, как что-нибудь было передано
8099 клиенту; ошибка появилась в 0.1.38.
8100
8101 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
8102
8103 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
8104 URI в команде include virtual.
8105
8106 *) Исправление: если в строке заголовка ответа бэкенда была строка
8107 "Location", которую nginx не должен был изменять, то в ответе
8108 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
8109
8110 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
8111 ngx_http_fastcgi_module не наследовались с уровня server на уровень
8112 location; ошибка появилась в 0.1.29.
8113
8114 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
8115 сертификатов.
8116
8117 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8118 длинных имён файлов; ошибка появилась в 0.1.38.
8119
8120 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
8121 стадии login.
8122
8123
8124 Изменения в nginx 0.1.38 08.07.2005
8125
8126 *) Добавление: директива limit_rate поддерживается в режиме прокси и
8127 FastCGI.
8128
8129 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8130 "X-Accel-Limit-Rate" в ответе бэкенда.
8131
8132 *) Добавление: директива break.
8133
8134 *) Добавление: директива log_not_found.
8135
8136 *) Исправление: при перенаправлении запроса с помощью строки заголовка
8137 "X-Accel-Redirect" не изменялся код ответа.
8138
8139 *) Исправление: переменные, установленные директивой set не могли
8140 использоваться в SSI.
8141
8142 *) Исправление: при включении в SSI более одного удалённого подзапроса
8143 мог произойти segmentation fault.
8144
8145 *) Исправление: если статусная строка в ответе бэкенда передавалась в
8146 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
8147 0.1.29.
8148
8149 *) Добавление: директива ssi_types.
8150
8151 *) Добавление: директива autoindex_exact_size.
8152
8153 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
8154 имена файлов в UTF-8.
8155
8156 *) Добавление: IMAP/POP3 прокси.
8157
8158
8159 Изменения в nginx 0.1.37 23.06.2005
8160
8161 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
8162
8163 *) Исправление: при включении большого количества вставок или нескольких
8164 больших вставок с помощью SSI ответ мог передаваться не полностью.
8165
8166 *) Исправление: если все бэкенды возвращали ответ 404, то при
8167 использовании параметра http_404 в директивах proxy_next_upstream или
8168 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
8169
8170
8171 Изменения в nginx 0.1.36 15.06.2005
8172
8173 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host",
8174 "Connection", "Content-Length" и "Authorization", то nginx теперь
8175 выдаёт ошибку 400.
8176
8177 *) Изменение: директива post_accept_timeout упразднена.
8178
8179 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
8180 listen.
8181
8182 *) Добавление: поддержка accept фильтров во FreeBSD.
8183
8184 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
8185
8186 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
8187 файлов в UTF-8.
8188
8189 *) Исправление: после добавления новый лог-файл ротация этого лога по
8190 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
8191 раза по сигналу -HUP.
8192
8193
8194 Изменения в nginx 0.1.35 07.06.2005
8195
8196 *) Добавление: директива working_directory.
8197
8198 *) Добавление: директива port_in_redirect.
8199
8200 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
8201 то происходил segmentation fault; ошибка появилась в 0.1.29.
8202
8203 *) Исправление: если было сконфигурировано более 10 серверов или в
8204 сервере не описана директива "listen", то при запуске мог произойти
8205 segmentation fault.
8206
8207 *) Исправление: если ответ не помещался во временный файл, то мог
8208 произойти segmentation fault.
8209
8210 *) Исправление: nginx возвращал ошибку 400 на запросы вида
8211 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
8212
8213
8214 Изменения в nginx 0.1.34 26.05.2005
8215
8216 *) Исправление: при включении больших ответов с помощью SSI рабочий
8217 процесс мог зациклиться.
8218
8219 *) Исправление: переменные, устанавливаемые директивой "set", не были
8220 доступны в SSI.
8221
8222 *) Добавление: директива autoindex_localtime.
8223
8224 *) Исправление: пустое значение в директиве proxy_set_header запрещает
8225 передачу заголовка.
8226
8227
8228 Изменения в nginx 0.1.33 23.05.2005
8229
8230 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
8231 появилась в 0.1.29.
8232
8233 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
8234 вызывали bus fault при запуске.
8235
8236 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
8237 HTTP.
8238
8239 *) Исправление: если директива rewrite использовала выделения внутри
8240 директивы if, то возвращалась ошибка 500.
8241
8242
8243 Изменения в nginx 0.1.32 19.05.2005
8244
8245 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
8246 передавались аргументы; ошибка появилась в 0.1.29.
8247
8248 *) Добавление: директива if поддерживает выделения в регулярных
8249 выражениях.
8250
8251 *) Добавление: директива set поддерживает переменные и выделения из
8252 регулярных выражений.
8253
8254 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8255 "X-Accel-Redirect" в ответе бэкенда.
8256
8257
8258 Изменения в nginx 0.1.31 16.05.2005
8259
8260 *) Исправление: при использовании SSL ответ мог передаваться не до
8261 конца.
8262
8263 *) Исправление: ошибки при обработке SSI в ответе, полученного от
8264 FastCGI-сервера.
8265
8266 *) Исправление: ошибки при использовании SSI и сжатия.
8267
8268 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
8269 появилась в 0.1.30.
8270
8271
8272 Изменения в nginx 0.1.30 14.05.2005
8273
8274 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
8275
8276 *) Исправление: при использовании SSL ответ мог передаваться не до
8277 конца.
8278
8279 *) Исправление: если длина части ответа, полученного за один раз от
8280 проксируемого или FastCGI сервера была равна 500 байт, то nginx
8281 возвращал код ответа 500; в режиме прокси ошибка появилась только в
8282 0.1.29.
8283
8284 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
8285 параметрами.
8286
8287 *) Добавление: директива return может возвращать код ответа 204.
8288
8289 *) Добавление: директива ignore_invalid_headers.
8290
8291
8292 Изменения в nginx 0.1.29 12.05.2005
8293
8294 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
8295 virtual.
8296
8297 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
8298 вида 'if expr="$NAME"' и команды else и endif. Допускается только
8299 один уровень вложенности.
8300
8301 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
8302 DATE_LOCAL и DATE_GMT и команду config timefmt.
8303
8304 *) Добавление: директива ssi_ignore_recycled_buffers.
8305
8306 *) Исправление: если переменная QUERY_STRING не была определена, то в
8307 команде echo не ставилось значение по умолчанию.
8308
8309 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
8310
8311 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
8312 proxy_pass_request_body и proxy_method.
8313
8314 *) Добавление: директива proxy_set_header. Директива proxy_x_var
8315 упразднена и должна быть заменена директивой proxy_set_header.
8316
8317 *) Изменение: директива proxy_preserve_host упразднена и должна быть
8318 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
8319 off" или директивой "proxy_set_header Host $host:$proxy_port" и
8320 соответствующими ей директивами proxy_redirect.
8321
8322 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
8323 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
8324
8325 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
8326 быть заменена директивой
8327 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
8328
8329 *) Изменение: директива proxy_set_x_url упразднена и должна быть
8330 заменена директивой
8331 "proxy_set_header X-URL http://$host:$server_port$request_uri".
8332
8333 *) Добавление: директива fastcgi_param.
8334
8335 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
8336 упразднены и должны быть замены директивами fastcgi_param.
8337
8338 *) Добавление: директива index может использовать переменные.
8339
8340 *) Добавление: директива index может быть указана на уровне http и
8341 server.
8342
8343 *) Изменение: только последний параметр в директиве index может быть
8344 абсолютным.
8345
8346 *) Добавление: в директиве rewrite могут использоваться переменные.
8347
8348 *) Добавление: директива internal.
8349
8350 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
8351 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
8352 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
8353
8354 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
8355 клиента и ответа бэкенда.
8356
8357 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
8358 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
8359
8360 *) Исправление: если бэкенд передавал неверную строку в заголовке
8361 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
8362
8363 *) Исправление: при использовании отказоустойчивой конфигурации в
8364 FastCGI мог происходить segmentation fault.
8365
8366 *) Исправление: директива expires не удаляла уже установленные строки
8367 заголовка "Expires" и "Cache-Control".
8368
8369 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
8370 запроса "Host".
8371
8372 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
8373
8374 *) Исправление: директива rewrite неверно работала, если в запросе
8375 присутствовали аргументы.
8376
8377 *) Исправление: nginx не собирался на MacOS X.
8378
8379
8380 Изменения в nginx 0.1.28 08.04.2005
8381
8382 *) Исправление: при проксировании больших файлов nginx сильно нагружал
8383 процессор.
8384
8385 *) Исправление: nginx не собирался gcc 4.0 на Linux.
8386
8387
8388 Изменения в nginx 0.1.27 28.03.2005
8389
8390 *) Добавление: параметр blocked в директиве valid_referers.
8391
8392 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
8393 уровне info, в лог также записывается имя сервера и строки заголовка
8394 запроса "Host" и "Referer".
8395
8396 *) Изменение: при записи ошибок в лог записывается также строка
8397 заголовка запроса "Host".
8398
8399 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
8400 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
8401
8402 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
8403 параметр конфигурации --without-ngx_http_auth_basic_module.
8404
8405
8406 Изменения в nginx 0.1.26 22.03.2005
8407
8408 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
8409 игнорируется и записываются в error_log на уровне info.
8410
8411 *) Изменение: при записи ошибок в лог записывается также имя сервера,
8412 при обращении к которому произошла ошибка.
8413
8414 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
8415 и auth_basic_user_file.
8416
8417
8418 Изменения в nginx 0.1.25 19.03.2005
8419
8420 *) Исправление: nginx не работал на Linux parisc.
8421
8422 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
8423 sysctl kern.ipc.somaxconn слишком большое.
8424
8425 *) Исправление: если модуль ngx_http_index_module делал внутреннее
8426 перенаправление запроса в модули ngx_http_proxy_module или
8427 ngx_http_fastcgi_module, то файл индекса не закрывался после
8428 обслуживания запроса.
8429
8430 *) Добавление: директива proxy_pass может использоваться в location,
8431 заданных регулярным выражением.
8432
8433 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
8434 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
8435
8436 *) Исправление: nginx очень медленно запускался при большом количестве
8437 адресов и использовании текстовых значений в директиве geo.
8438
8439 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
8440 Прежний вариант без "$" пока работает, но вскоре будет убран.
8441
8442 *) Добавление: параметр лога "%{VARIABLE}v".
8443
8444 *) Добавление: директива "set $name value".
8445
8446 *) Исправление: совместимость с gcc 4.0.
8447
8448 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
8449
8450
8451 Изменения в nginx 0.1.24 04.03.2005
8452
8453 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
8454 QUERY_STRING и DOCUMENT_URI.
8455
8456 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
8457 на существующий каталог, если этот каталог был указан как alias.
8458
8459 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
8460 при больших ответах.
8461
8462 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
8463 правильным referrer'ом.
8464
8465
8466 Изменения в nginx 0.1.23 01.03.2005
8467
8468 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
8469 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
8470 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
8471
8472 *) Добавление: параметр лога %request_time.
8473
8474 *) Добавление: если запрос пришёл без строки заголовка "Host", то
8475 директива proxy_preserve_host устанавливает в качестве этого
8476 заголовка первое имя сервера из директивы server_name.
8477
8478 *) Исправление: nginx не собирался на платформах, отличных от i386,
8479 amd64, sparc и ppc; ошибка появилась в 0.1.22.
8480
8481 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
8482 информацию не о символическом линке, а о файле или каталоге, на
8483 который он указывает.
8484
8485 *) Исправление: если клиенту ничего не передавалось, то параметр
8486 %apache_length записывал в лог отрицательную длину заголовка ответа.
8487
8488
8489 Изменения в nginx 0.1.22 22.02.2005
8490
8491 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8492 статистику для обработанных соединений, если использовалось
8493 проксирование или FastCGI-сервер.
8494
8495 *) Исправление: на Linux и Solaris установочные пути были неверно
8496 заключены в кавычки; ошибка появилась в 0.1.21.
8497
8498
8499 Изменения в nginx 0.1.21 22.02.2005
8500
8501 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8502 статистику при использовании метода rtsig или при использовании
8503 нескольких рабочих процессов на SMP машине.
8504
8505 *) Исправление: nginx не собирался компилятором icc под Линуксом или
8506 если библиотека zlib-1.2.x собиралась из исходных текстов.
8507
8508 *) Исправление: nginx не собирался под NetBSD 2.0.
8509
8510
8511 Изменения в nginx 0.1.20 17.02.2005
8512
8513 *) Добавление: новые параметры script_filename и remote_port в директиве
8514 fastcgi_params.
8515
8516 *) Исправление: неправильно обрабатывался поток stderr от
8517 FastCGI-сервера.
8518
8519
8520 Изменения в nginx 0.1.19 16.02.2005
8521
8522 *) Исправление: если в запросе есть нуль, то для локальных запросов
8523 теперь возвращается ошибка 404.
8524
8525 *) Исправление: nginx не собирался под NetBSD 2.0.
8526
8527 *) Исправление: во время чтения тела запроса клиента в SSL соединении
8528 мог произойти таймаут.
8529
8530
8531 Изменения в nginx 0.1.18 09.02.2005
8532
8533 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
8534 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
8535
8536 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
8537 наследовались.
8538
8539 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
8540 присоединялись к URI через символ "&" вместо "?".
8541
8542 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
8543 включённом файле игнорировались.
8544
8545 *) Добавление: модуль ngx_http_stub_status_module.
8546
8547 *) Исправление: неизвестный формат лог-файла в директиве access_log
8548 вызывал segmentation fault.
8549
8550 *) Добавление: новый параметр document_root в директиве fastcgi_params.
8551
8552 *) Добавление: директива fastcgi_redirect_errors.
8553
8554 *) Добавление: новый модификатор break в директиве rewrite позволяет
8555 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
8556 для запроса.
8557
8558
8559 Изменения в nginx 0.1.17 03.02.2005
8560
8561 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
8562 можно делать редиректы, возвращать коды ошибок и проверять переменные
8563 и рефереры. Эти директивы можно использовать внутри location.
8564 Директива redirect упразднена.
8565
8566 *) Добавление: модуль ngx_http_geo_module.
8567
8568 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
8569
8570 *) Исправление: конфигурация location с модификатором "=" могла
8571 использоваться в другом location.
8572
8573 *) Исправление: правильный тип ответа выставлялся только для запросов, у
8574 которых в расширении были только маленькие буквы.
8575
8576 *) Исправление: если для location установлен proxy_pass или
8577 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
8578 на статическую страницу, то происходил segmentation fault.
8579
8580 *) Исправление: если в проксированном ответе в заголовке "Location"
8581 передавался относительный URL, то к нему добавлялось имя хоста и
8582 слэш; ошибка появилась в 0.1.14.
8583
8584 *) Исправление: на Linux в лог не записывался текст системной ошибки.
8585
8586
8587 Изменения в nginx 0.1.16 25.01.2005
8588
8589 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
8590 выдавался завершающий chunk.
8591
8592 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
8593 директива keepalive_timeout запрещала использование keep-alive.
8594
8595 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
8596 segmentation fault.
8597
8598 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
8599 до конца.
8600
8601 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
8602 для TCP сокетов, не используются для unix domain сокетов.
8603
8604 *) Добавление: директива rewrite поддерживает перезаписывание
8605 аргументов.
8606
8607 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
8608 возвращался ответ 400; ошибка появилась в 0.1.14.
8609
8610
8611 Изменения в nginx 0.1.15 19.01.2005
8612
8613 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
8614 segmentation fault.
8615
8616 *) Исправление: корректная обработка регулярного выражения, в котором
8617 число выделенных частей не совпадает с числом подстановок.
8618
8619 *) Добавление: location, который передаётся FastCGI-серверу, может быть
8620 задан с помощью регулярного выражения.
8621
8622 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
8623 аргументами и в том виде, в котором был получен от клиента.
8624
8625 *) Исправление: для использования регулярных выражений в location нужно
8626 было собирать nginx вместе с ngx_http_rewrite_module.
8627
8628 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
8629 директивы "proxy_preserve_host on" в заголовке "Host" указывался
8630 также порт 80; ошибка появилась в 0.1.14.
8631
8632 *) Исправление: если задать одинаковые пути в параметрах
8633 автоконфигурации --http-client-body-temp-path=PATH и
8634 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
8635 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
8636
8637
8638 Изменения в nginx 0.1.14 18.01.2005
8639
8640 *) Добавление: параметры автоконфигурации
8641 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
8642 --http-fastcgi-temp-path=PATH
8643
8644 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
8645 клиента, задаётся директивой client_body_temp_path, по умолчанию
8646 <prefix>/client_body_temp.
8647
8648 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
8649 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
8650 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
8651 fastcgi_header_buffer_size, fastcgi_buffers,
8652 fastcgi_busy_buffers_size, fastcgi_temp_path,
8653 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
8654 fastcgi_next_upstream и fastcgi_x_powered_by.
8655
8656 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
8657 0.1.3.
8658
8659 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
8660 после имени хоста.
8661
8662 *) Изменение: если в URI встречался символ %3F, то он считался началом
8663 строки аргументов.
8664
8665 *) Добавление: поддержка unix domain сокетов в модуле
8666 ngx_http_proxy_module.
8667
8668 *) Добавление: директивы ssl_engine и ssl_ciphers.
8669 Спасибо Сергею Скворцову за SSL-акселератор.
8670
8671
8672 Изменения в nginx 0.1.13 21.12.2004
8673
8674 *) Добавление: директивы server_names_hash и
8675 server_names_hash_threshold.
8676
8677 *) Исправление: имена *.domain.tld в директиве server_name не работали.
8678
8679 *) Исправление: параметр лога %request_length записывал неверную длину.
8680
8681
8682 Изменения в nginx 0.1.12 06.12.2004
8683
8684 *) Добавление: параметр лога %request_length.
8685
8686 *) Исправление: при использовании /dev/poll, select и poll на
8687 платформах, где возможны ложные срабатывания указанных методов, могли
8688 быть длительные задержки при обработке запроса по keep-alive
8689 соединению. Наблюдалось по крайней мере на Solaris с использованием
8690 /dev/poll.
8691
8692 *) Исправление: директива send_lowat игнорируется на Linux, так как
8693 Linux не поддерживает опцию SO_SNDLOWAT.
8694
8695
8696 Изменения в nginx 0.1.11 02.12.2004
8697
8698 *) Добавление: директива worker_priority.
8699
8700 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
8701 влияют на передачу ответа.
8702
8703 *) Исправление: nginx не вызывал initgroups().
8704 Спасибо Андрею Ситникову и Андрею Нигматулину.
8705
8706 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
8707 байтах.
8708
8709 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
8710 каталоге есть битый symlink.
8711
8712 *) Исправление: файлы больше 4G не передавались с использованием
8713 sendfile.
8714
8715 *) Исправление: если бэкенд резолвился в несколько адресов и при
8716 ожидании от него ответа происходила ошибка, то процесс зацикливался.
8717
8718 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
8719 завершиться с сообщением "unknown cycle".
8720
8721 *) Исправление: ошибки "close() channel failed".
8722
8723 *) Исправление: автоматическое определение групп nobody и nogroup.
8724
8725 *) Исправление: директива send_lowat не работала на Linux.
8726
8727 *) Исправление: если в конфигурации не было раздела events, то
8728 происходил segmentation fault.
8729
8730 *) Исправление: nginx не собирался под OpenBSD.
8731
8732 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
8733
8734
8735 Изменения в nginx 0.1.10 26.11.2004
8736
8737 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
8738 или "%XX", то терялся последний символ в строке запроса; ошибка
8739 появилась в 0.1.9.
8740
8741 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
8742 не работало.
8743
8744
8745 Изменения в nginx 0.1.9 25.11.2004
8746
8747 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
8748 проксируемый запрос передавался без аргументов.
8749
8750 *) Исправление: при сжатии больших ответов иногда они передавались не
8751 полностью.
8752
8753 *) Исправление: не передавались файлы больше 2G на Linux,
8754 неподдерживающем sendfile64().
8755
8756 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
8757 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
8758
8759
8760 Изменения в nginx 0.1.8 20.11.2004
8761
8762 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8763 длинных имён файлов.
8764
8765 *) Добавление: модификатор "^~" в директиве location.
8766
8767 *) Добавление: директива proxy_max_temp_file_size.
8768
8769
8770 Изменения в nginx 0.1.7 12.11.2004
8771
8772 *) Исправление: при использовании sendfile, если передаваемый файл
8773 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
8774 появилась в 0.1.5.
8775
8776
8777 Изменения в nginx 0.1.6 11.11.2004
8778
8779 *) Исправление: при некоторых комбинациях директив location c
8780 регулярными выражениями использовалась конфигурация не из того
8781 location.
8782
8783
8784 Изменения в nginx 0.1.5 11.11.2004
8785
8786 *) Исправление: на Solaris и Linux могло быть очень много сообщений
8787 "recvmsg() returned not enough data".
8788
8789 *) Исправление: в режиме прокси без использования sendfile на Solaris
8790 возникала ошибка "writev() failed (22: Invalid argument)". На других
8791 платформах, не поддерживающих sendfile, процесс зацикливался.
8792
8793 *) Исправление: при использовании sendfile в режиме прокси на Solaris
8794 возникал segmentation fault.
8795
8796 *) Исправление: segmentation fault на Solaris.
8797
8798 *) Исправление: обновление исполняемого файла на лету не работало на
8799 Linux.
8800
8801 *) Исправление: в списке файлов, выдаваемом модулем
8802 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
8803 знаки процента.
8804
8805 *) Изменение: уменьшение операций копирования.
8806
8807 *) Добавление: директива userid_p3p.
8808
8809
8810 Изменения в nginx 0.1.4 26.10.2004
8811
8812 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
8813
8814
8815 Изменения в nginx 0.1.3 25.10.2004
8816
8817 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
8818
8819 *) Добавление: директива proxy_set_x_url.
8820
8821 *) Исправление: модуль проксировании мог привести к зацикливанию, если
8822 не использовался sendfile.
8823
8824
8825 Изменения в nginx 0.1.2 21.10.2004
8826
8827 *) Добавление: параметры --user=USER, --group=GROUP и
8828 --with-ld-opt=OPTIONS в configure.
8829
8830 *) Добавление: директива server_name поддерживает *.domain.tld.
8831
8832 *) Исправление: улучшена переносимость на неизвестные платформы.
8833
8834 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
8835 файл указан в командной строке; ошибка появилась в 0.1.1.
8836
8837 *) Исправление: модуль проксировании мог привести к зацикливанию, если
8838 не использовался sendfile.
8839
8840 *) Исправление: при использовании sendfile текст ответа не
8841 перекодировался согласно директивам модуля charset; ошибка появилась
8842 в 0.1.1.
8843
8844 *) Исправление: очень редкая ошибка при обработке kqueue.
8845
8846 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
8847 проксировании.
8848
8849
8850 Изменения в nginx 0.1.1 11.10.2004
8851
8852 *) Добавление: директива gzip_types.
8853
8854 *) Добавление: директива tcp_nodelay.
8855
8856 *) Добавление: директива send_lowat работает не только на платформах,
8857 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
8858 SO_SNDLOWAT.
8859
8860 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
8861
8862 *) Исправление: ошибка при переписывании заголовка "Location" при
8863 проксировании.
8864
8865 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
8866 зацикливанию.
8867
8868 *) Исправление: ошибки в модуле /dev/poll.
8869
8870 *) Исправление: при проксировании и использовании временных файлов
8871 ответы портились.
8872
8873 *) Исправление: бэкенду передавались запросы с неперекодированными
8874 символами.
8875
8876 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
8877 обязательно использовать параметр --with-poll_module.
8878
8879
8880 Изменения в nginx 0.1.0 04.10.2004
8881
8882 *) Первая публично доступная версия.
8883