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
8884