comparison text/ru/CHANGES.ru-1.18 @ 2529:8cc141e0460f

nginx-1.18.0
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 21 Apr 2020 17:38:08 +0300
parents text/ru/CHANGES.ru@d60376fec8a1
children
comparison
equal deleted inserted replaced
2528:cb25aefb6b8b 2529:8cc141e0460f
1
2 Изменения в nginx 1.18.0 21.04.2020
3
4 *) Стабильная ветка 1.18.x.
5
6
7 Изменения в nginx 1.17.10 14.04.2020
8
9 *) Добавление: директива auth_delay.
10
11
12 Изменения в nginx 1.17.9 03.03.2020
13
14 *) Изменение: теперь nginx не разрешает несколько строк "Host" в
15 заголовке запроса.
16
17 *) Исправление: nginx игнорировал дополнительные строки
18 "Transfer-Encoding" в заголовке запроса.
19
20 *) Исправление: утечки сокетов при использовании HTTP/2.
21
22 *) Исправление: в рабочем процессе мог произойти segmentation fault,
23 если использовался OCSP stapling.
24
25 *) Исправление: в модуле ngx_http_mp4_module.
26
27 *) Исправление: при перенаправлении ошибок с кодом 494 с помощью
28 директивы error_page nginx возвращал ответ с кодом 494 вместо 400.
29
30 *) Исправление: утечки сокетов при использовании подзапросов в модуле
31 njs и директивы aio.
32
33
34 Изменения в nginx 1.17.8 21.01.2020
35
36 *) Добавление: директива grpc_pass поддерживает переменные.
37
38 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
39 произойти таймаут; ошибка появилась в 1.17.5.
40
41 *) Исправление: в директиве debug_points при использовании HTTP/2.
42 Спасибо Даниилу Бондареву.
43
44
45 Изменения в nginx 1.17.7 24.12.2019
46
47 *) Исправление: на старте или во время переконфигурации мог произойти
48 segmentation fault, если в конфигурации использовалась директива
49 rewrite с пустой строкой замены.
50
51 *) Исправление: в рабочем процессе мог произойти segmentation fault,
52 если директива break использовалась совместно с директивой alias или
53 директивой proxy_pass с URI.
54
55 *) Исправление: строка Location заголовка ответа могла содержать мусор,
56 если URI запроса был изменён на URI, содержащий нулевой символ.
57
58 *) Исправление: при возврате перенаправлений с помощью директивы
59 error_page запросы с телом обрабатывались некорректно; ошибка
60 появилась в 0.7.12.
61
62 *) Исправление: утечки сокетов при использовании HTTP/2.
63
64 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
65 произойти таймаут; ошибка появилась в 1.17.5.
66
67 *) Исправление: в модуле ngx_http_dav_module.
68
69
70 Изменения в nginx 1.17.6 19.11.2019
71
72 *) Добавление: переменные $proxy_protocol_server_addr и
73 $proxy_protocol_server_port.
74
75 *) Добавление: директива limit_conn_dry_run.
76
77 *) Добавление: переменные $limit_req_status и $limit_conn_status.
78
79
80 Изменения в nginx 1.17.5 22.10.2019
81
82 *) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
83 доступен, чтобы избежать чтения из быстрого соединения в течение
84 долгого времени.
85
86 *) Исправление: неполные закодированные символы в конце URI запроса
87 игнорировались.
88
89 *) Исправление: "/." и "/.." в конце URI запроса не нормализовывались.
90
91 *) Исправление: в директиве merge_slashes.
92
93 *) Исправление: в директиве ignore_invalid_headers.
94 Спасибо Alan Kemp.
95
96 *) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее.
97
98
99 Изменения в nginx 1.17.4 24.09.2019
100
101 *) Изменение: улучшено детектирование некорректного поведения клиентов в
102 HTTP/2.
103
104 *) Изменение: в обработке непрочитанного тела запроса при возврате
105 ошибок в HTTP/2.
106
107 *) Исправление: директива worker_shutdown_timeout могла не работать при
108 использовании HTTP/2.
109
110 *) Исправление: при использовании HTTP/2 и директивы
111 proxy_request_buffering в рабочем процессе мог произойти segmentation
112 fault.
113
114 *) Исправление: на Windows при использовании SSL уровень записи в лог
115 ошибки ECONNABORTED был "crit" вместо "error".
116
117 *) Исправление: nginx игнорировал лишние данные при использовании
118 chunked transfer encoding.
119
120 *) Исправление: если использовалась директива return и при чтении тела
121 запроса возникала ошибка, nginx всегда возвращал ошибку 500.
122
123 *) Исправление: в обработке ошибок выделения памяти.
124
125
126 Изменения в nginx 1.17.3 13.08.2019
127
128 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
129 потребление памяти и ресурсов процессора (CVE-2019-9511,
130 CVE-2019-9513, CVE-2019-9516).
131
132 *) Исправление: при использовании сжатия в логах могли появляться
133 сообщения "zero size buf"; ошибка появилась в 1.17.2.
134
135 *) Исправление: при использовании директивы resolver в SMTP
136 прокси-сервере в рабочем процессе мог произойти segmentation fault.
137
138
139 Изменения в nginx 1.17.2 23.07.2019
140
141 *) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4.
142 Спасибо Илье Леошкевичу.
143
144 *) Изменение: метод $r->internal_redirect() встроенного перла теперь
145 ожидает закодированный URI.
146
147 *) Добавление: теперь с помощью метода $r->internal_redirect()
148 встроенного перла можно перейти в именованный location.
149
150 *) Исправление: в обработке ошибок во встроенном перле.
151
152 *) Исправление: на старте или во время переконфигурации мог произойти
153 segmentation fault, если в конфигурации использовалось значение hash
154 bucket size больше 64 килобайт.
155
156 *) Исправление: при использовании методов обработки соединений select,
157 poll и /dev/poll nginx мог нагружать процессор во время
158 небуферизованного проксирования и при проксировании
159 WebSocket-соединений.
160
161 *) Исправление: в модуле ngx_http_xslt_filter_module.
162
163 *) Исправление: в модуле ngx_http_ssi_filter_module.
164
165
166 Изменения в nginx 1.17.1 25.06.2019
167
168 *) Добавление: директива limit_req_dry_run.
169
170 *) Добавление: при использовании директивы hash в блоке upstream пустой
171 ключ хэширования теперь приводит к переключению на round-robin
172 балансировку.
173 Спасибо Niklas Keller.
174
175 *) Исправление: в рабочем процессе мог произойти segmentation fault,
176 если использовалось кэширование и директива image_filter, а ошибки с
177 кодом 415 перенаправлялись с помощью директивы error_page; ошибка
178 появилась в 1.11.10.
179
180 *) Исправление: в рабочем процессе мог произойти segmentation fault,
181 если использовался встроенный перл; ошибка появилась в 1.7.3.
182
183
184 Изменения в nginx 1.17.0 21.05.2019
185
186 *) Добавление: директивы limit_rate и limit_rate_after поддерживают
187 переменные.
188
189 *) Добавление: директивы proxy_upload_rate и proxy_download_rate в
190 модуле stream поддерживают переменные.
191
192 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8.
193
194 *) Изменение: теперь postpone-фильтр собирается всегда.
195
196 *) Исправление: директива include не работала в блоках if и
197 limit_except.
198
199 *) Исправление: в обработке byte ranges.
200
201
202 Изменения в nginx 1.15.12 16.04.2019
203
204 *) Исправление: в рабочем процессе мог произойти segmentation fault,
205 если в директивах ssl_certificate или ssl_certificate_key
206 использовались переменные и был включён OCSP stapling.
207
208
209 Изменения в nginx 1.15.11 09.04.2019
210
211 *) Исправление: в директиве ssl_stapling_file на Windows.
212
213
214 Изменения в nginx 1.15.10 26.03.2019
215
216 *) Изменение: теперь при использовании имени хоста в директиве listen
217 nginx создаёт listen-сокеты для всех адресов, соответствующих этому
218 имени (ранее использовался только первый адрес).
219
220 *) Добавление: диапазоны портов в директиве listen.
221
222 *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
223 из переменных.
224
225 *) Изменение: переменная $ssl_server_name могла быть пустой при
226 использовании OpenSSL 1.1.1.
227
228 *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
229 ошибка появилась в 1.15.9.
230
231
232 Изменения в nginx 1.15.9 26.02.2019
233
234 *) Добавление: директивы ssl_certificate и ssl_certificate_key
235 поддерживают переменные.
236
237 *) Добавление: метод poll теперь доступен на Windows при использовании
238 Windows Vista и новее.
239
240 *) Исправление: если при использовании метода select на Windows
241 происходила ошибка при установлении соединения с бэкендом, nginx
242 ожидал истечения таймаута на установление соединения.
243
244 *) Исправление: директивы proxy_upload_rate и proxy_download_rate в
245 модуле stream работали некорректно при проксировании UDP-пакетов.
246
247
248 Изменения в nginx 1.15.8 25.12.2018
249
250 *) Добавление: переменная $upstream_bytes_sent.
251 Спасибо Piotr Sikora.
252
253 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
254 Спасибо Геннадию Махомеду.
255
256 *) Исправление: в директиве proxy_cache_background_update.
257
258 *) Исправление: в директиве geo при использовании unix domain
259 listen-сокетов.
260
261 *) Изменение: при использовании директивы ssl_early_data с OpenSSL в
262 логах могли появляться сообщения "ignoring stale global SSL error ...
263 bad length".
264
265 *) Исправление: в nginx/Windows.
266
267 *) Исправление: в модуле ngx_http_autoindex_module на 32-битных
268 платформах.
269
270
271 Изменения в nginx 1.15.7 27.11.2018
272
273 *) Добавление: директива proxy_requests в модуле stream.
274
275 *) Добавление: параметр "delay" директивы "limit_req".
276 Спасибо Владиславу Шабанову и Петру Щучкину.
277
278 *) Исправление: утечки памяти в случае ошибок при переконфигурации.
279
280 *) Исправление: в переменных $upstream_response_time,
281 $upstream_connect_time и $upstream_header_time.
282
283 *) Исправление: в рабочем процессе мог произойти segmentation fault,
284 если использовался модуль ngx_http_mp4_module на 32-битных
285 платформах.
286
287
288 Изменения в nginx 1.15.6 06.11.2018
289
290 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
291 потреблению памяти (CVE-2018-16843) и ресурсов процессора
292 (CVE-2018-16844).
293
294 *) Безопасность: при обработке специально созданного mp4-файла модулем
295 ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
296 отправлено клиенту (CVE-2018-16845).
297
298 *) Добавление: директивы proxy_socket_keepalive,
299 fastcgi_socket_keepalive, grpc_socket_keepalive,
300 memcached_socket_keepalive, scgi_socket_keepalive и
301 uwsgi_socket_keepalive.
302
303 *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
304 OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.
305
306 *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
307 количество памяти.
308
309
310 Изменения в nginx 1.15.5 02.10.2018
311
312 *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
313 процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.
314
315 *) Исправление: незначительных потенциальных ошибок.
316
317
318 Изменения в nginx 1.15.4 25.09.2018
319
320 *) Добавление: теперь директиву ssl_early_data можно использовать с
321 OpenSSL.
322
323 *) Исправление: в модуле ngx_http_uwsgi_module.
324 Спасибо Chris Caputo.
325
326 *) Исправление: соединения к некоторым gRPC-бэкендам могли не
327 кэшироваться при использовании директивы keepalive.
328
329 *) Исправление: при использовании директивы error_page для
330 перенаправления ошибок, возникающих на ранних этапах обработки
331 запроса, в частности ошибок с кодом 400, могла происходить утечка
332 сокетов.
333
334 *) Исправление: директива return при возврате ошибок не изменяла код
335 ответа, если запрос был перенаправлен с помощью директивы error_page.
336
337 *) Исправление: стандартные сообщения об ошибках и ответы модуля
338 ngx_http_autoindex_module содержали атрибут bgcolor, что могло
339 приводить к их некорректному отображению при использовании
340 пользовательских настроек цветов в браузерах.
341 Спасибо Nova DasSarma.
342
343 *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
344 "no suitable signature algorithm" понижен с уровня crit до info.
345
346
347 Изменения в nginx 1.15.3 28.08.2018
348
349 *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.
350
351 *) Добавление: директива ssl_early_data, сейчас доступна при
352 использовании BoringSSL.
353
354 *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
355 upstream.
356
357 *) Исправление: модуль ngx_http_dav_module при копировании файла поверх
358 существующего файла с помощью метода COPY не обнулял целевой файл.
359
360 *) Исправление: модуль ngx_http_dav_module при перемещении файла между
361 файловыми системами с помощью метода MOVE устанавливал нулевые права
362 доступа на результирующий файл и не сохранял время изменения файла.
363
364 *) Исправление: модуль ngx_http_dav_module при копировании файла с
365 помощью метода COPY для результирующего файла использовал права
366 доступа по умолчанию.
367
368 *) Изменение: некоторые клиенты могли не работать при использовании
369 HTTP/2; ошибка появилась в 1.13.5.
370
371 *) Исправление: nginx не собирался с LibreSSL 2.8.0.
372
373
374 Изменения в nginx 1.15.2 24.07.2018
375
376 *) Добавление: переменная $ssl_preread_protocol в модуле
377 ngx_stream_ssl_preread_module.
378
379 *) Добавление: теперь при использовании директивы
380 reset_timedout_connection nginx сбрасывает соединения, закрываемые с
381 кодом 444.
382
383 *) Изменение: уровень логгирования ошибок SSL "http request", "https
384 proxy request", "unsupported protocol" и "version too low" понижен с
385 уровня crit до info.
386
387 *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
388 первой попытке отправки происходила ошибка.
389
390 *) Исправление: параметр reuseport директивы listen игнорировался, если
391 количество рабочих процессов было задано после директивы listen.
392
393 *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
394 ssl_prefer_server_ciphers нельзя было выключить в виртуальном
395 сервере, если она была включена в сервере по умолчанию.
396
397 *) Исправление: повторное использование SSL-сессий к бэкендам не
398 работало с протоколом TLS 1.3.
399
400
401 Изменения в nginx 1.15.1 03.07.2018
402
403 *) Добавление: директива random в блоке upstream.
404
405 *) Добавление: улучшена производительность при использовании директив
406 hash и ip_hash совместно с директивой zone.
407
408 *) Добавление: параметр reuseport директивы listen теперь использует
409 SO_REUSEPORT_LB на FreeBSD 12.
410
411 *) Исправление: HTTP/2 server push не работал, если SSL терминировался
412 прокси-сервером перед nginx'ом.
413
414 *) Исправление: директива tcp_nopush всегда использовалась для
415 соединений к бэкендам.
416
417 *) Исправление: при отправке сохранённого на диск тела запроса на
418 gRPC-бэкенд могли возникать ошибки.
419
420
421 Изменения в nginx 1.15.0 05.06.2018
422
423 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
424 следует использовать параметр ssl директивы listen.
425
426 *) Изменение: теперь при использовании директивы listen с параметром ssl
427 nginx определяет отсутствие SSL-сертификатов при тестировании
428 конфигурации.
429
430 *) Добавление: теперь модуль stream умеет обрабатывать несколько
431 входящих UDP-пакетов от клиента в рамках одной сессии.
432
433 *) Исправление: в директиве proxy_cache_valid можно было указать
434 некорректный код ответа.
435
436 *) Исправление: nginx не собирался gcc 8.1.
437
438 *) Исправление: логгирование в syslog останавливалось при изменении
439 локального IP-адреса.
440
441 *) Исправление: nginx не собирался компилятором clang, если был
442 установлен CUDA SDK; ошибка появилась в 1.13.8.
443
444 *) Исправление: при использовании unix domain listen-сокетов на FreeBSD
445 в процессе обновления исполняемого файла в логе могли появляться
446 сообщения "getsockopt(TCP_FASTOPEN) ... failed".
447
448 *) Исправление: nginx не собирался на Fedora 28 Linux.
449
450 *) Исправление: при использовании директивы limit_req заданная скорость
451 обработки запросов могла не соблюдаться.
452
453 *) Исправление: в обработке адресов клиентов при использовании unix
454 domain listen-сокетов для работы с датаграммами на Linux.
455
456 *) Исправление: в обработке ошибок выделения памяти.
457
458
459 Изменения в nginx 1.13.12 10.04.2018
460
461 *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
462 могли неожиданно закрываться.
463
464
465 Изменения в nginx 1.13.11 03.04.2018
466
467 *) Добавление: параметр proxy_protocol директивы listen теперь
468 поддерживает протокол PROXY версии 2.
469
470 *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.
471
472 *) Исправление: в параметрах http_404, http_500 и им подобных директивы
473 proxy_next_upstream.
474
475
476 Изменения в nginx 1.13.10 20.03.2018
477
478 *) Добавление: теперь параметр set в SSI-директиве include позволяет
479 сохранять в переменную любые ответы; максимальный размер ответа
480 задаётся директивой subrequest_output_buffer_size.
481
482 *) Добавление: теперь nginx использует вызов
483 clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
484 избежать некорректного срабатывания таймаутов при изменениях
485 системного времени.
486
487 *) Добавление: параметр "escape=none" директивы log_format.
488 Спасибо Johannes Baiter и Calin Don.
489
490 *) Добавление: переменная $ssl_preread_alpn_protocols в модуле
491 ngx_stream_ssl_preread_module.
492
493 *) Добавление: модуль ngx_http_grpc_module.
494
495 *) Исправление: в обработке ошибок выделения памяти в директиве geo.
496
497 *) Исправление: при использовании переменных в директиве
498 auth_basic_user_file в лог мог выводиться символ '\0'.
499 Спасибо Вадиму Филимонову.
500
501
502 Изменения в nginx 1.13.9 20.02.2018
503
504 *) Добавление: поддержка HTTP/2 server push; директивы http2_push и
505 http2_push_preload.
506
507 *) Исправление: при использовании кэша в логах могли появляться
508 сообщения "header already sent"; ошибка появилась в 1.9.13.
509
510 *) Исправление: при использовании директивы ssl_verify_client в рабочем
511 процессе мог произойти segmentation fault, если в виртуальном сервере
512 не был указан SSL-сертификат.
513
514 *) Исправление: в модуле ngx_http_v2_module.
515
516 *) Исправление: в модуле ngx_http_dav_module.
517
518
519 Изменения в nginx 1.13.8 26.12.2017
520
521 *) Добавление: теперь при использовании параметра transparent директив
522 proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
523 nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
524 процессах.
525
526 *) Добавление: улучшения в определении размера строки кэша процессора.
527 Спасибо Debayan Ghosh.
528
529 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
530 Спасибо Геннадию Махомеду.
531
532 *) Исправление: процедура обновления исполняемого файла не работала,
533 если после завершения родительского процесса новым родительским
534 процессом nginx'а становился процесс с PID, отличным от 1.
535
536 *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
537 запросы с телом.
538
539 *) Исправление: в директиве proxy_limit_rate при использовании с
540 директивой keepalive.
541
542 *) Исправление: при использовании "proxy_buffering off" часть ответа
543 могла буферизироваться, если клиентское соединение использовало SSL.
544 Спасибо Patryk Lesiewicz.
545
546 *) Исправление: в директиве proxy_cache_background_update.
547
548 *) Исправление: переменную вида "${name}" с именем в фигурных скобках
549 нельзя было использовать в начале параметра не заключив весь параметр
550 в кавычки.
551
552
553 Изменения в nginx 1.13.7 21.11.2017
554
555 *) Исправление: в переменной $upstream_status.
556
557 *) Исправление: в рабочем процессе мог произойти segmentation fault,
558 если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
559
560 *) Исправление: если при переконфигурации изменялся размер зоны
561 разделяемой памяти и переконфигурация завершалась неудачно, то в
562 главном процессе происходил segmentation fault.
563
564 *) Исправление: в модуле ngx_http_fastcgi_module.
565
566 *) Исправление: nginx возвращал ошибку 500, если в директиве
567 xslt_stylesheet были заданы параметры без использования переменных.
568
569 *) Изменение: при использовании варианта библиотеки zlib от Intel в лог
570 писались сообщения "gzip filter failed to use preallocated memory".
571
572 *) Исправление: директива worker_shutdown_timeout не работала при
573 использовании почтового прокси-сервера и при проксировании
574 WebSocket-соединений.
575
576
577 Изменения в nginx 1.13.6 10.10.2017
578
579 *) Исправление: при использовании директивы ssl_preread в модуле stream
580 не работало переключение на следующий бэкенд.
581
582 *) Исправление: в модуле ngx_http_v2_module.
583 Спасибо Piotr Sikora.
584
585 *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
586 платформах с 64-битным time_t.
587
588 *) Исправление: в обработке дат до 1970 года и после 10000 года.
589
590 *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
591 бэкендов не логгировались или логгировались на уровне info вместо
592 error.
593
594 *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
595 не указав в логе причину.
596
597 *) Исправление: в обработке повреждённых файлов кэша.
598
599 *) Исправление: при кэшировании ошибок, перехваченных error_page, не
600 учитывались заголовки управления кэшированием.
601
602 *) Исправление: при использовании HTTP/2 тело запроса могло быть
603 повреждено.
604
605 *) Исправление: в обработке адресов клиентов при использовании unix
606 domain сокетов.
607
608 *) Исправление: при использовании директивы "hash ... consistent" в
609 блоке upstream nginx нагружал процессор, если использовались большие
610 веса и все или почти все бэкенды были недоступны.
611
612
613 Изменения в nginx 1.13.5 05.09.2017
614
615 *) Добавление: переменная $ssl_client_escaped_cert.
616
617 *) Исправление: директива ssl_session_ticket_key и параметр include
618 директивы geo не работали на Windows.
619
620 *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
621 помощью нескольких диапазонов возвращалась некорректная длина ответа.
622
623 *) Исправление: директива "expires modified" и обработка строки If-Range
624 заголовка запроса не учитывали время последнего изменения ответа,
625 если использовалось проксирование без кэширования.
626
627
628 Изменения в nginx 1.13.4 08.08.2017
629
630 *) Добавление: модуль ngx_http_mirror_module.
631
632 *) Исправление: клиентские соединения могли сбрасываться при
633 тестировании конфигурации, если использовался параметр reuseport
634 директивы listen на Linux.
635
636 *) Исправление: тело запроса могло быть недоступно в подзапросах, если
637 оно было сохранено в файл и использовалось проксирование.
638
639 *) Исправление: очистка кэша по max_size не работала на Windows.
640
641 *) Исправление: любое выделение разделяемой памяти на Windows требовало
642 4096 байт памяти.
643
644 *) Исправление: при использовании директивы zone в блоке upstream на
645 Windows рабочий процесс мог завершаться аварийно.
646
647
648 Изменения в nginx 1.13.3 11.07.2017
649
650 *) Безопасность: специально созданный запрос мог вызвать целочисленное
651 переполнение в range-фильтре и последующую некорректную обработку
652 запрошенных диапазонов, что потенциально могло привести к утечке
653 конфиденциальной информации (CVE-2017-7529).
654
655
656 Изменения в nginx 1.13.2 27.06.2017
657
658 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из
659 пустого файла nginx возвращает ответ 200 вместо 416.
660
661 *) Добавление: директива add_trailer.
662 Спасибо Piotr Sikora.
663
664 *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
665 в 1.13.0.
666
667 *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
668 Спасибо Orgad Shaneh.
669
670 *) Исправление: при использовании SSI с большим количеством подзапросов
671 и proxy_pass с переменными в рабочем процессе мог произойти
672 segmentation fault.
673
674 *) Исправление: в модуле ngx_http_v2_module.
675 Спасибо Piotr Sikora.
676
677
678 Изменения в nginx 1.13.1 30.05.2017
679
680 *) Добавление: теперь в качестве параметра директивы set_real_ip_from
681 можно указывать имя хоста.
682
683 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
684
685 *) Добавление: директива worker_cpu_affinity теперь работает на
686 DragonFly BSD.
687 Спасибо Sepherosa Ziehau.
688
689 *) Исправление: SSL renegotiation в соединениях к бэкендам не работал
690 при использовании OpenSSL до 1.1.0.
691
692 *) Изменение: nginx не собирался с Oracle Developer Studio 12.5.
693
694 *) Изменение: теперь cache manager пропускает заблокированные записи при
695 очистке кэша по max_size.
696
697 *) Исправление: клиентские SSL-соединения сразу закрывались, если
698 использовался отложенный accept и параметр proxy_protocol директивы
699 listen.
700
701 *) Исправление: в директиве proxy_cache_background_update.
702
703 *) Изменение: теперь директива tcp_nodelay устанавливает опцию
704 TCP_NODELAY перед SSL handshake.
705
706
707 Изменения в nginx 1.13.0 25.04.2017
708
709 *) Изменение: теперь SSL renegotiation допускается в соединениях к
710 бэкендам.
711
712 *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
713 прокси-сервере и модуле stream.
714
715 *) Добавление: директивы return и error_page теперь могут использоваться
716 для возврата перенаправлений с кодом 308.
717 Спасибо Simon Leblanc.
718
719 *) Добавление: параметр TLSv1.3 в директиве ssl_protocols.
720
721 *) Добавление: при логгировании сигналов теперь указывается PID
722 отправившего сигнал процесса.
723
724 *) Исправление: в обработке ошибок выделения памяти.
725
726 *) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
727 исходящий адрес ответного UDP-пакета мог отличаться от адреса
728 назначения исходного пакета.
729
730
731 Изменения в nginx 1.11.13 04.04.2017
732
733 *) Добавление: параметр http_429 в директивах proxy_next_upstream,
734 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
735 Спасибо Piotr Sikora.
736
737 *) Исправление: в обработке ошибок выделения памяти.
738
739 *) Исправление: при использовании директив sendfile и timer_resolution
740 на Linux запросы могли зависать.
741
742 *) Исправление: при использовании с подзапросами директив sendfile и
743 aio_write запросы могли зависать.
744
745 *) Исправление: в модуле ngx_http_v2_module.
746 Спасибо Piotr Sikora.
747
748 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
749 произойти segmentation fault.
750
751 *) Исправление: запросы могли зависать при использовании с подзапросами
752 директив limit_rate, sendfile_max_chunk, limit_req или метода
753 $r->sleep() встроенного перла.
754
755 *) Исправление: в модуле ngx_http_slice_module.
756
757
758 Изменения в nginx 1.11.12 24.03.2017
759
760 *) Исправление: nginx мог нагружать процессор; ошибка появилась в
761 1.11.11.
762
763
764 Изменения в nginx 1.11.11 21.03.2017
765
766 *) Добавление: директива worker_shutdown_timeout.
767
768 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
769 Спасибо Wei-Ko Kao.
770
771 *) Исправление: при попытке установить переменную $limit_rate в пустую
772 строку в рабочем процессе мог произойти segmentation fault.
773
774 *) Исправление: директивы proxy_cache_background_update,
775 fastcgi_cache_background_update, scgi_cache_background_update и
776 uwsgi_cache_background_update могли работать некорректно, если
777 использовалась директива if.
778
779 *) Исправление: в рабочем процессе мог произойти segmentation fault,
780 если количество large_client_header_buffers в виртуальном сервере
781 отличалось от такового в сервере по умолчанию.
782
783 *) Исправление: в почтовом прокси-сервере.
784
785
786 Изменения в nginx 1.11.10 14.02.2017
787
788 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные
789 ответы будут загружены заново.
790
791 *) Добавление: поддержка расширений stale-while-revalidate и
792 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда.
793
794 *) Добавление: директивы proxy_cache_background_update,
795 fastcgi_cache_background_update, scgi_cache_background_update и
796 uwsgi_cache_background_update.
797
798 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary
799 заголовка длиной до 128 символов (вместо 42 символов в предыдущих
800 версиях).
801
802 *) Добавление: параметр build директивы server_tokens.
803 Спасибо Tom Thorogood.
804
805 *) Исправление: при обработке запросов со строкой "Expect: 100-continue"
806 в заголовке запроса в логах могли появляться сообщения "[crit]
807 SSL_write() failed".
808
809 *) Исправление: модуль ngx_http_slice_module не работал в именованных
810 location'ах.
811
812 *) Исправление: при использовании AIO после перенаправления запроса с
813 помощью X-Accel-Redirect в рабочем процессе мог произойти
814 segmentation fault.
815
816 *) Исправление: уменьшено потребление памяти для долгоживущих запросов,
817 использующих сжатие.
818
819
820 Изменения в nginx 1.11.9 24.01.2017
821
822 *) Исправление: при использовании модуля stream nginx мог нагружать
823 процессор; ошибка появилась в 1.11.5.
824
825 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере
826 можно было использовать, даже если он не был разрешён в конфигурации.
827
828 *) Исправление: при использовании директивы ssl_verify_client модуля
829 stream в рабочем процессе мог произойти segmentation fault.
830
831 *) Исправление: директива ssl_verify_client модуля stream могла не
832 работать.
833
834 *) Исправление: при исчерпании рабочим процессом свободных соединений
835 keepalive-соединения могли закрываться излишне агрессивно.
836 Спасибо Joel Cunningham.
837
838 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS
839 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8.
840
841 *) Исправление: при использовании директивы aio_write ответ мог
842 сохраняться в кэш не полностью.
843
844 *) Исправление: при использовании директивы aio_write могла происходить
845 утечка сокетов.
846
847
848 Изменения в nginx 1.11.8 27.12.2016
849
850 *) Добавление: директива absolute_redirect.
851
852 *) Добавление: параметр escape директивы log_format.
853
854 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream.
855
856 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование
857 TLS session tickets с помощью AES256 при использовании с 80-байтными
858 ключами.
859
860 *) Добавление: поддержка vim-commentary в скриптах для vim.
861 Спасибо Armin Grodon.
862
863 *) Исправление: рекурсия при получении значений переменных не
864 ограничивалась.
865
866 *) Исправление: в модуле ngx_stream_ssl_preread_module.
867
868 *) Исправление: если сервер, описанный в блоке upstream в модуле stream,
869 был признан неработающим, то после истечения fail_timeout он
870 признавался работающим только после завершения тестового соединения;
871 теперь достаточно, чтобы соединение было успешно установлено.
872
873 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio.
874
875 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0.
876
877
878 Изменения в nginx 1.11.7 13.12.2016
879
880 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки
881 проверки клиентского сертификата содержит строку с описанием ошибки,
882 например, "FAILED:certificate has expired".
883
884 *) Добавление: переменные $ssl_ciphers, $ssl_curves,
885 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
886
887 *) Добавление: параметр volatile директивы map.
888
889 *) Исправление: при сборке динамических модулей не учитывались заданные
890 для модуля зависимости.
891
892 *) Исправление: при использовании HTTP/2 и директив limit_req или
893 auth_request тело запроса могло быть повреждено; ошибка появилась в
894 1.11.0.
895
896 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
897 произойти segmentation fault; ошибка появилась в 1.11.3.
898
899 *) Исправление: в модуле ngx_http_mp4_module.
900 Спасибо Congcong Hu.
901
902 *) Исправление: в модуле ngx_http_perl_module.
903
904
905 Изменения в nginx 1.11.6 15.11.2016
906
907 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn
908 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом
909 формате доступны через переменные $ssl_client_s_dn_legacy и
910 $ssl_client_i_dn_legacy.
911
912 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь
913 располагаются не в отдельном подкаталоге для временных файлов, а в
914 том же подкаталоге, что и соответствующие файлы в кэше.
915
916 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом
917 прокси-сервере.
918 Спасибо Robert Norris.
919
920 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module.
921
922 *) Добавление: директива proxy_method поддерживает переменные.
923 Спасибо Дмитрию Лазуркину.
924
925 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module.
926
927 *) Добавление: директивы proxy_cache_max_range_offset,
928 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и
929 uwsgi_cache_max_range_offset.
930
931 *) Исправление: плавное завершение старых рабочих процессов могло
932 занимать бесконечное время при использовании HTTP/2.
933
934 *) Исправление: в модуле ngx_http_mp4_module.
935
936 *) Исправление: при проксировании WebSocket-соединений и включённом
937 кэшировании в логах могли появляться сообщения "ignore long locked
938 inactive cache entry".
939
940 *) Исправление: если во время SSL handshake с бэкендом происходил
941 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502
942 вместо 504.
943
944
945 Изменения в nginx 1.11.5 11.10.2016
946
947 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6
948 теперь собирается автоматически.
949
950 *) Изменение: теперь, если в блоке upstream не оказалось доступных
951 серверов, nginx не сбрасывает статистику ошибок всех серверов, как
952 делал ранее, а ожидает истечения fail_timeout.
953
954 *) Добавление: модуль ngx_stream_ssl_preread_module.
955
956 *) Добавление: директива server в блоке upstream поддерживает параметр
957 max_conns.
958
959 *) Добавление: параметр configure --with-compat.
960
961 *) Добавление: параметры manager_files, manager_threshold и
962 manager_sleep директив proxy_cache_path, fastcgi_cache_path,
963 scgi_cache_path и uwsgi_cache_path.
964
965 *) Исправление: при сборке perl-модуля не использовались флаги, заданные
966 с помощью параметра configure --with-ld-opt.
967
968 *) Исправление: в директиве add_after_body при использовании совместно с
969 директивой sub_filter.
970
971 *) Исправление: в переменной $realip_remote_addr.
972
973 *) Исправление: директивы dav_access, proxy_store_access,
974 fastcgi_store_access, scgi_store_access и uwsgi_store_access
975 игнорировали права, заданные для пользователя.
976
977 *) Исправление: unix domain listen-сокеты могли не наследоваться при
978 обновлении исполняемого файла на Linux.
979
980 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в
981 HTTP-методе.
982
983
984 Изменения в nginx 1.11.4 13.09.2016
985
986 *) Добавление: переменная $upstream_bytes_received.
987
988 *) Добавление: переменные $bytes_received, $session_time, $protocol,
989 $status, $upstream_addr, $upstream_bytes_sent,
990 $upstream_bytes_received, $upstream_connect_time,
991 $upstream_first_byte_time и $upstream_session_time в модуле stream.
992
993 *) Добавление: модуль ngx_stream_log_module.
994
995 *) Добавление: параметр proxy_protocol в директиве listen, переменные
996 $proxy_protocol_addr и $proxy_protocol_port в модуле stream.
997
998 *) Добавление: модуль ngx_stream_realip_module.
999
1000 *) Исправление: nginx не собирался с модулем stream и модулем
1001 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка
1002 появилась в 1.11.3.
1003
1004 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
1005 ошибка появилась в 1.11.2.
1006
1007 *) Исправление: в параметре ranges директивы geo.
1008
1009 *) Исправление: при использовании директив "aio threads" и sendfile мог
1010 возвращаться некорректный ответ; ошибка появилась в 1.9.13.
1011
1012
1013 Изменения в nginx 1.11.3 26.07.2016
1014
1015 *) Изменение: теперь accept_mutex по умолчанию выключен.
1016
1017 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux.
1018
1019 *) Добавление: модуль ngx_stream_geo_module.
1020
1021 *) Добавление: модуль ngx_stream_geoip_module.
1022
1023 *) Добавление: модуль ngx_stream_split_clients_module.
1024
1025 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream
1026 поддерживают переменные.
1027
1028 *) Исправление: утечки сокетов при использовании HTTP/2.
1029
1030 *) Исправление: в configure.
1031 Спасибо Piotr Sikora.
1032
1033
1034 Изменения в nginx 1.11.2 05.07.2016
1035
1036 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и
1037 SHA1; параметры configure --with-md5 и --with-sha1 упразднены.
1038
1039 *) Добавление: поддержка переменных в модуле stream.
1040
1041 *) Добавление: модуль ngx_stream_map_module.
1042
1043 *) Добавление: модуль ngx_stream_return_module.
1044
1045 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind,
1046 scgi_bind и uwsgi_bind теперь можно указывать порт.
1047
1048 *) Добавление: теперь nginx использует опцию сокета
1049 IP_BIND_ADDRESS_NO_PORT, если она доступна.
1050
1051 *) Исправление: при использовании HTTP/2 и директивы
1052 proxy_request_buffering в рабочем процессе мог произойти segmentation
1053 fault.
1054
1055 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на
1056 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
1057 если у запроса не было тела.
1058
1059 *) Исправление: при использовании HTTP/2 в логах могли появляться
1060 сообщения "http request count is zero".
1061
1062 *) Исправление: при использовании директивы sub_filter могло
1063 буферизироваться больше данных, чем это необходимо; проблема
1064 появилась в 1.9.4.
1065
1066
1067 Изменения в nginx 1.11.1 31.05.2016
1068
1069 *) Безопасность: при записи тела специально созданного запроса во
1070 временный файл в рабочем процессе мог происходить segmentation fault
1071 (CVE-2016-4450); ошибка появилась в 1.3.9.
1072
1073
1074 Изменения в nginx 1.11.0 24.05.2016
1075
1076 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind,
1077 memcached_bind, scgi_bind и uwsgi_bind.
1078
1079 *) Добавление: переменная $request_id.
1080
1081 *) Добавление: директива map поддерживает комбинации нескольких
1082 переменных в качестве результирующих значений.
1083
1084 *) Добавление: теперь при использовании метода epoll nginx проверяет,
1085 поддерживает ли ядро события EPOLLRDHUP, и соответственно
1086 оптимизирует обработку соединений.
1087
1088 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь
1089 можно указывать несколько раз для загрузки сертификатов разных типов
1090 (например, RSA и ECDSA).
1091
1092 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью
1093 директивы ssl_ecdh_curve теперь можно задать список кривых; по
1094 умолчанию используется встроенный в OpenSSL список кривых.
1095
1096 *) Изменение: для использования DHE-шифров теперь надо явно задавать
1097 файл параметров с помощью директивы ssl_dhparam.
1098
1099 *) Добавление: переменная $proxy_protocol_port.
1100
1101 *) Добавление: переменная $realip_remote_port в модуле
1102 ngx_http_realip_module.
1103
1104 *) Добавление: модуль ngx_http_realip_module теперь позволяет
1105 устанавливать не только адрес, но и порт клиента.
1106
1107 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от
1108 согласованного в процессе SSL handshake, теперь возвращается ответ
1109 "421 Misdirected Request"; это улучшает совместимость с некоторыми
1110 HTTP/2-клиентами в случае использования клиентских сертификатов.
1111
1112 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
1113 директива http2_body_preread_size позволяет указать размер буфера,
1114 который будет использоваться до того, как nginx начнёт читать тело.
1115
1116 *) Исправление: при использовании директивы proxy_cache_bypass не
1117 обновлялись закэшированные ошибочные ответы.
1118
1119
1120 Изменения в nginx 1.9.15 19.04.2016
1121
1122 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли
1123 возникать ошибки "recv() failed".
1124
1125 *) Исправление: при использовании HTTP/2 и директив limit_req или
1126 auth_request при чтении тела запроса мог произойти таймаут или ошибка
1127 "client violated flow control"; ошибка появилась в 1.9.14.
1128
1129 *) Изменение: при использовании HTTP/2 ответ мог не показываться
1130 некоторыми браузерами, если тело запроса было прочитано не целиком;
1131 ошибка появилась в 1.9.14.
1132
1133 *) Исправление: при использовании директивы "aio threads" соединения
1134 могли зависать.
1135 Спасибо Mindaugas Rasiukevicius.
1136
1137
1138 Изменения в nginx 1.9.14 05.04.2016
1139
1140 *) Добавление: совместимость с OpenSSL 1.1.0.
1141
1142 *) Добавление: директивы proxy_request_buffering,
1143 fastcgi_request_buffering, scgi_request_buffering и
1144 uwsgi_request_buffering теперь работают при использовании HTTP/2.
1145
1146 *) Исправление: при использовании HTTP/2 в логах могли появляться
1147 сообщения "zero size buf in output".
1148
1149 *) Исправление: при использовании HTTP/2 директива client_max_body_size
1150 могла работать неверно.
1151
1152 *) Исправление: незначительных ошибок логгирования.
1153
1154
1155 Изменения в nginx 1.9.13 29.03.2016
1156
1157 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по
1158 умолчанию не передаются на другой сервер, если запрос уже был
1159 отправлен на бэкенд; параметр non_idempotent директивы
1160 proxy_next_upstream явно разрешает повторять такие запросы.
1161
1162 *) Добавление: модуль ngx_http_perl_module теперь можно собрать
1163 динамически.
1164
1165 *) Добавление: поддержка UDP в модуле stream.
1166
1167 *) Добавление: директива aio_write.
1168
1169 *) Добавление: теперь cache manager следит за количеством элементов в
1170 кэше и старается не допускать переполнений зоны разделяемой памяти.
1171
1172 *) Исправление: при использовании директив sendfile и aio с подзапросами
1173 в логах могли появляться сообщения "task already active" и "second
1174 aio post".
1175
1176 *) Исправление: при использовании кэширования в логах могли появляться
1177 сообщения "zero size buf in output", если клиент закрывал соединение
1178 преждевременно.
1179
1180 *) Исправление: при использовании кэширования соединения с клиентами
1181 могли закрываться без необходимости.
1182 Спасибо Justin Li.
1183
1184 *) Исправление: nginx мог нагружать процессор при использовании
1185 директивы sendfile на Linux и Solaris, если отправляемый файл был
1186 изменён в процессе отправки.
1187
1188 *) Исправление: при использовании директив sendfile и "aio threads"
1189 соединения могли зависать.
1190
1191 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и
1192 uwsgi_pass при использовании переменных.
1193 Спасибо Piotr Sikora.
1194
1195 *) Исправление: в модуле ngx_http_sub_filter_module.
1196
1197 *) Исправление: если в закэшированном соединении к бэкенду происходила
1198 ошибка, запрос передавался на другой сервер без учёта директивы
1199 proxy_next_upstream.
1200
1201 *) Исправление: ошибки "CreateFile() failed" при создании временных
1202 файлов на Windows.
1203
1204
1205 Изменения в nginx 1.9.12 24.02.2016
1206
1207 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2.
1208 Спасибо Владу Краснову.
1209
1210 *) Добавление: директива worker_cpu_affinity теперь поддерживает более
1211 64 процессоров.
1212
1213 *) Исправление: совместимость со сторонними модулями на C++; ошибка
1214 появилась в 1.9.11.
1215 Спасибо Piotr Sikora.
1216
1217 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка
1218 появилась в 1.9.11.
1219
1220 *) Исправление: директива "add_header ... always" с пустым значением не
1221 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag.
1222
1223 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться
1224 сообщения "called a function you should not call" и "shutdown while
1225 in init".
1226
1227 *) Исправление: ошибочные заголовки могли логгироваться некорректно.
1228
1229 *) Исправление: утечки сокетов при использовании HTTP/2.
1230
1231 *) Исправление: в модуле ngx_http_v2_module.
1232
1233
1234 Изменения в nginx 1.9.11 09.02.2016
1235
1236 *) Добавление: теперь resolver поддерживает TCP.
1237
1238 *) Добавление: динамические модули.
1239
1240 *) Исправление: при использовании HTTP/2 переменная $request_length не
1241 учитывала размер заголовков запроса.
1242
1243 *) Исправление: в модуле ngx_http_v2_module.
1244
1245
1246 Изменения в nginx 1.9.10 26.01.2016
1247
1248 *) Безопасность: при использовании директивы resolver во время обработки
1249 ответов DNS-сервера могло происходить разыменование некорректного
1250 адреса, что позволяло атакующему, имеющему возможность подделывать
1251 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
1252 процессе (CVE-2016-0742).
1253
1254 *) Безопасность: при использовании директивы resolver во время обработки
1255 CNAME-записей могло произойти обращение к ранее освобождённой памяти,
1256 что позволяло атакующему, имеющему возможность инициировать
1257 преобразование произвольных имён в адреса, вызвать segmentation fault
1258 в рабочем процессе, а также потенциально могло иметь другие
1259 последствия (CVE-2016-0746).
1260
1261 *) Безопасность: при использовании директивы resolver во время обработки
1262 CNAME-записей не во всех случаях проверялось ограничение на
1263 максимальное количество записей в цепочке, что позволяло атакующему,
1264 имеющему возможность инициировать преобразование произвольных имён в
1265 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
1266 (CVE-2016-0747).
1267
1268 *) Добавление: параметр auto директивы worker_cpu_affinity.
1269
1270 *) Исправление: параметр proxy_protocol директивы listen не работал с
1271 IPv6 listen-сокетами.
1272
1273 *) Исправление: при использовании директивы keepalive соединения к
1274 бэкендам могли кэшироваться некорректно.
1275
1276 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
1277 при проксировании использовался HTTP-метод оригинального запроса.
1278
1279
1280 Изменения в nginx 1.9.9 09.12.2015
1281
1282 *) Исправление: проксирование в unix domain сокеты не работало при
1283 использовании переменных; ошибка появилась в 1.9.8.
1284
1285
1286 Изменения в nginx 1.9.8 08.12.2015
1287
1288 *) Добавление: поддержка pwritev().
1289
1290 *) Добавление: директива include в блоке upstream.
1291
1292 *) Добавление: модуль ngx_http_slice_module.
1293
1294 *) Исправление: при использовании LibreSSL в рабочем процессе мог
1295 произойти segmentation fault; ошибка появилась в 1.9.6.
1296
1297 *) Исправление: nginx мог не собираться на OS X.
1298
1299
1300 Изменения в nginx 1.9.7 17.11.2015
1301
1302 *) Добавление: параметр nohostname логгирования в syslog.
1303
1304 *) Добавление: директива proxy_cache_convert_head.
1305
1306 *) Добавление: переменная $realip_remote_addr в модуле
1307 ngx_http_realip_module.
1308
1309 *) Исправление: директива expires могла не срабатывать при использовании
1310 переменных.
1311
1312 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1313 произойти segmentation fault; ошибка появилась в 1.9.6.
1314
1315 *) Исправление: если nginx был собран с модулем ngx_http_v2_module,
1316 протокол HTTP/2 мог быть использован клиентом, даже если не был
1317 указан параметр http2 директивы listen.
1318
1319 *) Исправление: в модуле ngx_http_v2_module.
1320
1321
1322 Изменения в nginx 1.9.6 27.10.2015
1323
1324 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1325 произойти segmentation fault.
1326 Спасибо Piotr Sikora и Denis Andzakovic.
1327
1328 *) Исправление: при использовании HTTP/2 переменная $server_protocol
1329 была пустой.
1330
1331 *) Исправление: SSL-соединения к бэкендам в модуле stream могли
1332 неожиданно завершаться по таймауту.
1333
1334 *) Исправление: при использовании различных настроек ssl_session_cache в
1335 разных виртуальных серверах в рабочем процессе мог произойти
1336 segmentation fault.
1337
1338 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась
1339 в 1.9.4.
1340 Спасибо Kouhei Sutou.
1341
1342 *) Исправление: при использовании директивы timer_resolution на Windows
1343 время не обновлялось.
1344
1345 *) Незначительные исправления и улучшения.
1346 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
1347
1348
1349 Изменения в nginx 1.9.5 22.09.2015
1350
1351 *) Добавление: модуль ngx_http_v2_module (заменяет модуль
1352 ngx_http_spdy_module).
1353 Спасибо Dropbox и Automattic за спонсирование разработки.
1354
1355 *) Изменение: теперь по умолчанию директива output_buffers использует
1356 два буфера.
1357
1358 *) Изменение: теперь nginx ограничивает максимальную вложенность
1359 подзапросов, а не количество одновременных подзапросов.
1360
1361 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ
1362 полностью.
1363 Спасибо Геннадию Махомеду и Сергею Брестеру.
1364
1365 *) Исправление: при использовании кэша в логах могли появляться
1366 сообщения "header already sent"; ошибка появилась в 1.7.5.
1367
1368 *) Исправление: при использовании CephFS и директивы timer_resolution на
1369 Linux в логах могли появляться сообщения "writev() failed (4:
1370 Interrupted system call)".
1371
1372 *) Исправление: в обработке ошибок конфигурации.
1373 Спасибо Markus Linnala.
1374
1375 *) Исправление: при использовании директивы sub_filter на уровне http в
1376 рабочем процессе происходил segmentation fault; ошибка появилась в
1377 1.9.4.
1378
1379
1380 Изменения в nginx 1.9.4 18.08.2015
1381
1382 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer
1383 в модуле stream заменены директивой proxy_buffer_size.
1384
1385 *) Добавление: директива tcp_nodelay в модуле stream.
1386
1387 *) Добавление: теперь можно указать несколько директив sub_filter
1388 одновременно.
1389
1390 *) Добавление: директива sub_filter поддерживает переменные в строке
1391 поиска.
1392
1393 *) Изменение: тестирование конфигурации могло не работать под Linux
1394 OpenVZ.
1395 Спасибо Геннадию Махомеду.
1396
1397 *) Исправление: после переконфигурации старые рабочие процессы могли
1398 сильно нагружать процессор при больших значениях worker_connections.
1399
1400 *) Исправление: при совместном использовании директив try_files и alias
1401 внутри location'а, заданного регулярным выражением, в рабочем
1402 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
1403
1404 *) Исправление: директива try_files внутри вложенного location'а,
1405 заданного регулярным выражением, работала неправильно, если во
1406 внешнем location'е использовалась директива alias.
1407
1408 *) Исправление: в обработке ошибок при построении хэш-таблиц.
1409
1410 *) Исправление: nginx не собирался с Visual Studio 2015.
1411
1412
1413 Изменения в nginx 1.9.3 14.07.2015
1414
1415 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.
1416
1417 *) Добавление: ограничение количества соединений в модуле stream.
1418
1419 *) Добавление: ограничение скорости в модуле stream.
1420
1421 *) Исправление: директива zone в блоке upstream не работала на Windows.
1422
1423 *) Исправление: совместимость с LibreSSL в модуле stream.
1424 Спасибо Piotr Sikora.
1425
1426 *) Исправление: в параметре --builddir в configure.
1427 Спасибо Piotr Sikora.
1428
1429 *) Исправление: директива ssl_stapling_file не работала; ошибка
1430 появилась в 1.9.2.
1431 Спасибо Faidon Liambotis и Brandon Black.
1432
1433 *) Исправление: при использовании директивы ssl_stapling в рабочем
1434 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
1435 Спасибо Matthew Baldwin.
1436
1437
1438 Изменения в nginx 1.9.2 16.06.2015
1439
1440 *) Добавление: параметр backlog директивы listen в почтовом
1441 прокси-сервере и модуле stream.
1442
1443 *) Добавление: директивы allow и deny в модуле stream.
1444
1445 *) Добавление: директива proxy_bind в модуле stream.
1446
1447 *) Добавление: директива proxy_protocol в модуле stream.
1448
1449 *) Добавление: ключ -T.
1450
1451 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
1452 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
1453 uwsgi_params.
1454
1455 *) Исправление: параметр reuseport директивы listen в модуле stream не
1456 работал.
1457
1458 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
1459 OCSP-ответ.
1460
1461
1462 Изменения в nginx 1.9.1 26.05.2015
1463
1464 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён.
1465
1466 *) Изменение: некоторые давно устаревшие директивы больше не
1467 поддерживаются.
1468
1469 *) Добавление: параметр reuseport директивы listen.
1470 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
1471
1472 *) Добавление: переменная $upstream_connect_time.
1473
1474 *) Исправление: в директиве hash на big-endian платформах.
1475
1476 *) Исправление: nginx мог не запускаться на некоторых старых версиях
1477 Linux; ошибка появилась в 1.7.11.
1478
1479 *) Исправление: в парсинге IP-адресов.
1480 Спасибо Сергею Половко.
1481
1482
1483 Изменения в nginx 1.9.0 28.04.2015
1484
1485 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше
1486 не поддерживаются.
1487
1488 *) Добавление: директива zone в блоке upstream.
1489
1490 *) Добавление: модуль stream.
1491
1492 *) Добавление: поддержка byte ranges для ответов модуля
1493 ngx_http_memcached_module.
1494 Спасибо Martin Mlynář.
1495
1496 *) Добавление: разделяемую память теперь можно использовать на версиях
1497 Windows с рандомизацией адресного пространства.
1498 Спасибо Сергею Брестеру.
1499
1500 *) Добавление: директиву error_log теперь можно использовать на уровнях
1501 mail и server в почтовом прокси-сервере.
1502
1503 *) Исправление: параметр proxy_protocol директивы listen не работал,
1504 если не был указан в первой директиве listen для данного
1505 listen-сокета.
1506
1507
1508 Изменения в nginx 1.7.12 07.04.2015
1509
1510 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
1511 с бэкендами.
1512
1513 *) Добавление: теперь потоки могут использоваться для чтения заголовков
1514 файлов в кэше.
1515
1516 *) Исправление: в директиве proxy_request_buffering.
1517
1518 *) Исправление: при использовании потоков на Linux в рабочем процессе
1519 мог произойти segmentation fault.
1520
1521 *) Исправление: в обработке ошибок при использовании директивы
1522 ssl_stapling.
1523 Спасибо Filipe da Silva.
1524
1525 *) Исправление: в модуле ngx_http_spdy_module.
1526
1527
1528 Изменения в nginx 1.7.11 24.03.2015
1529
1530 *) Изменение: параметр sendfile директивы aio более не нужен; теперь
1531 nginx автоматически использует AIO для подгрузки данных для sendfile,
1532 если одновременно используются директивы aio и sendfile.
1533
1534 *) Добавление: экспериментальная поддержка потоков.
1535
1536 *) Добавление: директивы proxy_request_buffering,
1537 fastcgi_request_buffering, scgi_request_buffering и
1538 uwsgi_request_buffering.
1539
1540 *) Добавление: экспериментальное API для обработки тела запроса.
1541
1542 *) Добавление: проверка клиентских SSL-сертификатов в почтовом
1543 прокси-сервере.
1544 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
1545
1546 *) Добавление: уменьшение времени запуска при использовании директивы
1547 "hash ... consistent" в блоке upstream.
1548 Спасибо Wai Keen Woon.
1549
1550 *) Добавление: отладочное логгирование в кольцевой буфер в памяти.
1551
1552 *) Исправление: в обработке хэш-таблиц.
1553 Спасибо Chris West.
1554
1555 *) Исправление: в директиве proxy_cache_revalidate.
1556
1557 *) Исправление: SSL-соединения могли зависать, если использовался
1558 отложенный accept или параметр proxy_protocol директивы listen.
1559 Спасибо James Hamlin.
1560
1561 *) Исправление: переменная $upstream_response_time могла содержать
1562 неверное значение при использовании директивы image_filter.
1563
1564 *) Исправление: в обработке целочисленных переполнений.
1565 Спасибо Régis Leroy.
1566
1567 *) Исправление: при использовании LibreSSL было невозможно включить
1568 поддержку SSLv3.
1569
1570 *) Исправление: при использовании LibreSSL в логах появлялись сообщения
1571 "ignoring stale global SSL error ... called a function you should not
1572 call".
1573
1574 *) Исправление: сертификаты, указанные в директивах
1575 ssl_client_certificate и ssl_trusted_certificate, использовались для
1576 автоматического построения цепочек сертификатов.
1577
1578
1579 Изменения в nginx 1.7.10 10.02.2015
1580
1581 *) Добавление: параметр use_temp_path директив proxy_cache_path,
1582 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
1583
1584 *) Добавление: переменная $upstream_header_time.
1585
1586 *) Изменение: теперь при переполнении диска nginx пытается писать
1587 error_log'и только раз в секунду.
1588
1589 *) Исправление: директива try_files при тестировании каталогов не
1590 игнорировала обычные файлы.
1591 Спасибо Damien Tournoud.
1592
1593 *) Исправление: при использовании директивы sendfile на OS X возникали
1594 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8.
1595
1596 *) Исправление: в лог могли писаться сообщения "sem_post() failed".
1597
1598 *) Исправление: nginx не собирался с musl libc.
1599 Спасибо James Taylor.
1600
1601 *) Исправление: nginx не собирался на Tru64 UNIX.
1602 Спасибо Goetz T. Fischer.
1603
1604
1605 Изменения в nginx 1.7.9 23.12.2014
1606
1607 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
1608 uwsgi_cache поддерживают переменные.
1609
1610 *) Добавление: директива expires поддерживает переменные.
1611
1612 *) Добавление: возможность загрузки секретных ключей с аппаратных
1613 устройств с помощью OpenSSL engines.
1614 Спасибо Дмитрию Пичулину.
1615
1616 *) Добавление: директива autoindex_format.
1617
1618 *) Исправление: ревалидация элементов кэша теперь используется только
1619 для ответов с кодами 200 и 206.
1620 Спасибо Piotr Sikora.
1621
1622 *) Исправление: строка "TE" заголовка запроса клиента передавалась на
1623 бэкенд при проксировании.
1624
1625 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
1626 uwsgi_pass могли неправильно работать внутри блоков if и
1627 limit_except.
1628
1629 *) Исправление: директива proxy_store с параметром "on" игнорировалась,
1630 если на предыдущем уровне использовалась директива proxy_store с явно
1631 заданным путём к файлам.
1632
1633 *) Исправление: nginx не собирался с BoringSSL.
1634 Спасибо Lukas Tribus.
1635
1636
1637 Изменения в nginx 1.7.8 02.12.2014
1638
1639 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им
1640 подобные в заголовке запроса клиента передаются бэкенду при
1641 включённом кэшировании, если nginx заранее знает, что не будет
1642 кэшировать ответ (например, при использовании proxy_cache_min_uses).
1643
1644 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
1645 отправляет запрос на бэкенд без кэширования; новые директивы
1646 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
1647 uwsgi_cache_lock_age позволяют указать, через какое время блокировка
1648 будет принудительно снята и будет сделана ещё одна попытка
1649 закэшировать ответ.
1650
1651 *) Изменение: директива log_format теперь может использоваться только на
1652 уровне http.
1653
1654 *) Добавление: директивы proxy_ssl_certificate,
1655 proxy_ssl_certificate_key, proxy_ssl_password_file,
1656 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
1657 uwsgi_ssl_password_file.
1658 Спасибо Piotr Sikora.
1659
1660 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
1661 именованный location.
1662 Спасибо Toshikuni Fukaya.
1663
1664 *) Добавление: теперь директива tcp_nodelay работает для
1665 SPDY-соединений.
1666
1667 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
1668 Спасибо Peter Wu.
1669
1670 *) Исправление: nginx игнорировал значение "s-maxage" в строке
1671 "Cache-Control" в заголовке ответа бэкенда.
1672 Спасибо Piotr Sikora.
1673
1674 *) Исправление: в модуле ngx_http_spdy_module.
1675 Спасибо Piotr Sikora.
1676
1677 *) Исправление: в директиве ssl_password_file при использовании OpenSSL
1678 0.9.8zc, 1.0.0o, 1.0.1j.
1679
1680 *) Исправление: при использовании директивы post_action в лог писались
1681 сообщения "header already sent"; ошибка появилась в nginx 1.5.4.
1682
1683 *) Исправление: при использовании директивы "postpone_output 0" с
1684 SSI-подзапросами в лог могли писаться сообщения "the http output
1685 chain is empty".
1686
1687 *) Исправление: в директиве proxy_cache_lock при использовании
1688 SSI-подзапросов.
1689 Спасибо Yichun Zhang.
1690
1691
1692 Изменения в nginx 1.7.7 28.10.2014
1693
1694 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
1695 заголовке ответа бэкенда.
1696
1697 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
1698 scgi_force_ranges и uwsgi_force_ranges.
1699
1700 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
1701 scgi_limit_rate и uwsgi_limit_rate.
1702
1703 *) Добавление: параметр Vary директив proxy_ignore_headers,
1704 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.
1705
1706 *) Исправление: последняя часть ответа, полученного от бэкенда при
1707 небуферизированном проксировании, могла не отправляться клиенту, если
1708 использовались директивы gzip или gunzip.
1709
1710 *) Исправление: в директиве proxy_cache_revalidate.
1711 Спасибо Piotr Sikora.
1712
1713 *) Исправление: в обработке ошибок.
1714 Спасибо Yichun Zhang и Даниилу Бондареву.
1715
1716 *) Исправление: в директивах proxy_next_upstream_tries и
1717 proxy_next_upstream_timeout.
1718 Спасибо Feng Gu.
1719
1720 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
1721 Спасибо Kouhei Sutou.
1722
1723
1724 Изменения в nginx 1.7.6 30.09.2014
1725
1726 *) Изменение: устаревшая директива limit_zone больше не поддерживается.
1727
1728 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
1729 можно использовать комбинации нескольких переменных.
1730
1731 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
1732 запроса могло передаваться неправильно.
1733
1734 *) Исправление: в логгировании в syslog.
1735
1736
1737 Изменения в nginx 1.7.5 16.09.2014
1738
1739 *) Безопасность: при использовании общего для нескольких блоков server
1740 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
1741 session tickets было возможно повторно использовать SSL-сессию в
1742 контексте другого блока server (CVE-2014-3616).
1743 Спасибо Antoine Delignat-Lavaud.
1744
1745 *) Изменение: директиву stub_status теперь можно указывать без
1746 параметров.
1747
1748 *) Добавление: параметр always директивы add_header.
1749
1750 *) Добавление: директивы proxy_next_upstream_tries,
1751 proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
1752 fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
1753 memcached_next_upstream_timeout, scgi_next_upstream_tries,
1754 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
1755 uwsgi_next_upstream_timeout.
1756
1757 *) Исправление: в параметре if директивы access_log.
1758
1759 *) Исправление: в модуле ngx_http_perl_module.
1760 Спасибо Piotr Sikora.
1761
1762 *) Исправление: директива listen почтового прокси-сервера не позволяла
1763 указать более двух параметров.
1764
1765 *) Исправление: директива sub_filter не работала с заменяемой строкой из
1766 одного символа.
1767
1768 *) Исправление: запросы могли зависать, если использовался resolver и в
1769 процессе обращения к DNS-серверу происходил таймаут.
1770
1771 *) Исправление: в модуле ngx_http_spdy_module при использовании
1772 совместно с AIO.
1773
1774 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1775 если с помощью директивы set изменялись переменные "$http_...",
1776 "$sent_http_..." или "$upstream_http_...".
1777
1778 *) Исправление: в обработке ошибок выделения памяти.
1779 Спасибо Markus Linnala и Feng Gu.
1780
1781
1782 Изменения в nginx 1.7.4 05.08.2014
1783
1784 *) Безопасность: pipelined-команды не отбрасывались после команды
1785 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
1786 1.5.6.
1787 Спасибо Chris Boulton.
1788
1789 *) Изменение: экранирование символов в URI теперь использует
1790 шестнадцатеричные цифры в верхнем регистре.
1791 Спасибо Piotr Sikora.
1792
1793 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
1794 Спасибо Piotr Sikora.
1795
1796 *) Исправление: запросы могли зависать, если использовался resolver и
1797 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.
1798
1799 *) Исправление: в модуле ngx_http_spdy_module.
1800 Спасибо Piotr Sikora.
1801
1802 *) Исправление: переменная $uri могла содержать мусор при возврате
1803 ошибок с кодом 400.
1804 Спасибо Сергею Боброву.
1805
1806 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле
1807 ngx_http_dav_module.
1808 Спасибо Feng Gu.
1809
1810 *) Исправление: при логгировании ошибок в syslog мог происходить
1811 segmentation fault; ошибка появилась в 1.7.1.
1812
1813 *) Исправление: переменные $geoip_latitude, $geoip_longitude,
1814 $geoip_dma_code и $geoip_area_code могли не работать.
1815 Спасибо Yichun Zhang.
1816
1817 *) Исправление: в обработке ошибок выделения памяти.
1818 Спасибо Tatsuhiko Kubo и Piotr Sikora.
1819
1820
1821 Изменения в nginx 1.7.3 08.07.2014
1822
1823 *) Добавление: weak entity tags теперь не удаляются при изменениях
1824 ответа, а strong entity tags преобразуются в weak.
1825
1826 *) Добавление: ревалидация элементов кэша теперь, если это возможно,
1827 использует заголовок If-None-Match.
1828
1829 *) Добавление: директива ssl_password_file.
1830
1831 *) Исправление: при возврате ответа из кэша заголовок запроса
1832 If-None-Match игнорировался, если в ответе не было заголовка
1833 Last-Modified.
1834
1835 *) Исправление: сообщения "peer closed connection in SSL handshake" при
1836 соединении с бэкендами логгировались на уровне info вместо error.
1837
1838 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows.
1839
1840 *) Исправление: SPDY-соединения могли неожиданно закрываться, если
1841 использовалось кэширование.
1842
1843
1844 Изменения в nginx 1.7.2 17.06.2014
1845
1846 *) Добавление: директива hash в блоке upstream.
1847
1848 *) Добавление: дефрагментация свободных блоков разделяемой памяти.
1849 Спасибо Wandenberg Peixoto и Yichun Zhang.
1850
1851 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1852 если использовалось значение access_log по умолчанию; ошибка
1853 появилась в 1.7.0.
1854 Спасибо Piotr Sikora.
1855
1856 *) Исправление: завершающий слэш ошибочно удалялся из последнего
1857 параметра директивы try_files.
1858
1859 *) Исправление: nginx мог не собираться на OS X.
1860
1861 *) Исправление: в модуле ngx_http_spdy_module.
1862
1863
1864 Изменения в nginx 1.7.1 27.05.2014
1865
1866 *) Добавление: переменные "$upstream_cookie_...".
1867
1868 *) Добавление: переменная $ssl_client_fingerprint.
1869
1870 *) Добавление: директивы error_log и access_log теперь поддерживают
1871 логгирование в syslog.
1872
1873 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
1874 соединении.
1875
1876 *) Исправление: утечки памяти при использовании директивы
1877 "ssl_stapling".
1878 Спасибо Filipe da Silva.
1879
1880 *) Исправление: директива alias внутри location'а, заданного регулярным
1881 выражением, работала неправильно, если использовались директивы if
1882 или limit_except.
1883
1884 *) Исправление: директива charset не ставила кодировку для сжатых
1885 ответов бэкендов.
1886
1887 *) Исправление: директива proxy_pass без URI могла использовать
1888 оригинальный запрос после установки переменной $args.
1889 Спасибо Yichun Zhang.
1890
1891 *) Исправление: в работе параметра none директивы smtp_auth; ошибка
1892 появилась в 1.5.6.
1893 Спасибо Святославу Никольскому.
1894
1895 *) Исправление: при совместном использовании sub_filter и SSI ответы
1896 могли передаваться неверно.
1897
1898 *) Исправление: nginx не собирался с параметром --with-file-aio на
1899 Linux/aarch64.
1900
1901
1902 Изменения в nginx 1.7.0 24.04.2014
1903
1904 *) Добавление: проверка SSL-сертификатов бэкендов.
1905
1906 *) Добавление: поддержка SNI при работе с бэкендами по SSL.
1907
1908 *) Добавление: переменная $ssl_server_name.
1909
1910 *) Добавление: параметр if директивы access_log.
1911
1912
1913 Изменения в nginx 1.5.13 08.04.2014
1914
1915 *) Изменение: улучшена обработка хэш-таблиц; в директивах
1916 variables_hash_max_size и types_hash_bucket_size значения по
1917 умолчанию изменены на 1024 и 64 соответственно.
1918
1919 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
1920
1921 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
1922 сохранении ответов в кэш.
1923
1924 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
1925 failed: no memory" при использовании разделяемой памяти в
1926 ssl_session_cache и в модуле ngx_http_limit_req_module.
1927
1928 *) Исправление: директива underscores_in_headers не разрешала
1929 подчёркивание в первом символе заголовка.
1930 Спасибо Piotr Sikora.
1931
1932 *) Исправление: cache manager мог нагружать процессор при выходе в
1933 nginx/Windows.
1934
1935 *) Исправление: при использовании ssl_session_cache с параметром shared
1936 рабочий процесс nginx/Windows завершался аварийно.
1937
1938 *) Исправление: в модуле ngx_http_spdy_module.
1939
1940
1941 Изменения в nginx 1.5.12 18.03.2014
1942
1943 *) Безопасность: при обработке специально созданного запроса модулем
1944 ngx_http_spdy_module могло происходить переполнение буфера в рабочем
1945 процессе, что потенциально могло приводить к выполнению произвольного
1946 кода (CVE-2014-0133).
1947 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
1948 Buenos Aires, Argentina.
1949
1950 *) Добавление: параметр proxy_protocol в директивах listen и
1951 real_ip_header, переменная $proxy_protocol_addr.
1952
1953 *) Исправление: в директиве fastcgi_next_upstream.
1954 Спасибо Lucas Molas.
1955
1956
1957 Изменения в nginx 1.5.11 04.03.2014
1958
1959 *) Безопасность: при обработке специально созданного запроса модулем
1960 ngx_http_spdy_module на 32-битных платформах могла повреждаться
1961 память рабочего процесса, что потенциально могло приводить к
1962 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
1963 1.5.10.
1964 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
1965 Buenos Aires, Argentina.
1966
1967 *) Добавление: переменная $ssl_session_reused.
1968
1969 *) Исправление: директива client_max_body_size могла не работать при
1970 чтении тела запроса с использованием chunked transfer encoding;
1971 ошибка появилась в 1.3.9.
1972 Спасибо Lucas Molas.
1973
1974 *) Исправление: при проксировании WebSocket-соединений в рабочем
1975 процессе мог произойти segmentation fault.
1976
1977 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1978 если использовался модуль ngx_http_spdy_module на 32-битных
1979 платформах; ошибка появилась в 1.5.10.
1980
1981 *) Исправление: значение переменной $upstream_status могло быть
1982 неверным, если использовались директивы proxy_cache_use_stale или
1983 proxy_cache_revalidate.
1984 Спасибо Piotr Sikora.
1985
1986 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1987 если ошибки с кодом 400 с помощью директивы error_page
1988 перенаправлялись в именованный location.
1989
1990 *) Исправление: nginx/Windows не собирался с Visual Studio 2013.
1991
1992
1993 Изменения в nginx 1.5.10 04.02.2014
1994
1995 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол
1996 SPDY 3.1.
1997 Спасибо Automattic и MaxCDN за спонсирование разработки.
1998
1999 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
2000 имеющие меньшую длину, чем запрошенная перемотка.
2001
2002 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2003 если переменная $ssl_session_id использовалась при логгировании;
2004 ошибка появилась в 1.5.9.
2005
2006 *) Исправление: переменные $date_local и $date_gmt использовали неверный
2007 формат вне модуля ngx_http_ssi_filter_module.
2008
2009 *) Исправление: клиентские соединения могли сразу закрываться, если
2010 использовался отложенный accept; ошибка появилась в 1.3.15.
2011
2012 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
2013 записывались в лог в процессе обновления исполняемого файла на Linux;
2014 ошибка появилась в 1.5.8.
2015 Спасибо Piotr Sikora.
2016
2017
2018 Изменения в nginx 1.5.9 22.01.2014
2019
2020 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
2021 закодированный URI.
2022
2023 *) Добавление: директива ssl_buffer_size.
2024
2025 *) Добавление: директиву limit_rate теперь можно использовать для
2026 ограничения скорости передачи ответов клиенту в SPDY-соединениях.
2027
2028 *) Добавление: директива spdy_chunk_size.
2029
2030 *) Добавление: директива ssl_session_tickets.
2031 Спасибо Dirkjan Bussink.
2032
2033 *) Исправление: переменная $ssl_session_id содержала всю сессию в
2034 сериализованном виде вместо её идентификатора.
2035 Спасибо Ivan Ristić.
2036
2037 *) Исправление: nginx неправильно обрабатывал закодированный символ "?"
2038 в команде SSI include.
2039
2040 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
2041 при обработке методов COPY и MOVE.
2042
2043 *) Исправление: resolver не понимал доменные имена с точкой в конце.
2044 Спасибо Yichun Zhang.
2045
2046 *) Исправление: при проксировании в логах могли появляться сообщения
2047 "zero size buf in output"; ошибка появилась в 1.3.9.
2048
2049 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2050 если использовался модуль ngx_http_spdy_module.
2051
2052 *) Исправление: при использовании методов обработки соединений select,
2053 poll и /dev/poll проксируемые WebSocket-соединения могли зависать
2054 сразу после открытия.
2055
2056 *) Исправление: директива xclient почтового прокси-сервера некорректно
2057 передавала IPv6-адреса.
2058
2059
2060 Изменения в nginx 1.5.8 17.12.2013
2061
2062 *) Добавление: теперь resolver поддерживает IPv6.
2063
2064 *) Добавление: директива listen поддерживает параметр fastopen.
2065 Спасибо Mathew Rodley.
2066
2067 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
2068 Спасибо Roberto De Ioris.
2069
2070 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
2071 Спасибо Evan Miller.
2072
2073 *) Исправление: при чтении тела запроса с использованием chunked
2074 transfer encoding по SSL-соединению мог произойти таймаут.
2075
2076 *) Исправление: директива master_process работала неправильно в
2077 nginx/Windows.
2078
2079 *) Исправление: параметр setfib директивы listen мог не работать.
2080
2081 *) Исправление: в модуле ngx_http_spdy_module.
2082
2083
2084 Изменения в nginx 1.5.7 19.11.2013
2085
2086 *) Безопасность: символ, следующий за незакодированным пробелом в строке
2087 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
2088 в 0.8.41.
2089 Спасибо Ivan Fratric из Google Security Team.
2090
2091 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии
2092 пароля понижен с уровня error до info.
2093
2094 *) Добавление: директивы proxy_cache_revalidate,
2095 fastcgi_cache_revalidate, scgi_cache_revalidate и
2096 uwsgi_cache_revalidate.
2097
2098 *) Добавление: директива ssl_session_ticket_key.
2099 Спасибо Piotr Sikora.
2100
2101 *) Исправление: директива "add_header Cache-Control ''" добавляла строку
2102 заголовка ответа "Cache-Control" с пустым значением.
2103
2104 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
2105 401 при использовании директив auth_request и auth_basic.
2106 Спасибо Jan Marc Hoffmann.
2107
2108 *) Исправление: параметры accept_filter и deferred директивы listen
2109 игнорировались для listen-сокетов, создаваемых в процессе обновления
2110 исполняемого файла.
2111 Спасибо Piotr Sikora.
2112
2113 *) Исправление: часть данных, полученных от бэкенда при
2114 небуферизированном проксировании, могла не отправляться клиенту
2115 сразу, если использовались директивы gzip или gunzip.
2116 Спасибо Yichun Zhang.
2117
2118 *) Исправление: в обработке ошибок в модуле
2119 ngx_http_gunzip_filter_module.
2120
2121 *) Исправление: ответы могли зависать, если использовался модуль
2122 ngx_http_spdy_module и директива auth_request.
2123
2124 *) Исправление: утечки памяти в nginx/Windows.
2125
2126
2127 Изменения в nginx 1.5.6 01.10.2013
2128
2129 *) Добавление: директива fastcgi_buffering.
2130
2131 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
2132 Спасибо Piotr Sikora.
2133
2134 *) Добавление: оптимизация SSL handshake при использовании длинных
2135 цепочек сертификатов.
2136
2137 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
2138
2139 *) Исправление: в модуле ngx_http_auth_basic_module при использовании
2140 метода шифрования паролей "$apr1$".
2141 Спасибо Markus Linnala.
2142
2143 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
2144 мог использоваться неверный location, если для задания location'ов
2145 использовались символы разных регистров.
2146
2147 *) Исправление: автоматическое перенаправление с добавлением
2148 завершающего слэша для проксированных location'ов могло не работать.
2149
2150 *) Исправление: в почтовом прокси-сервере.
2151
2152 *) Исправление: в модуле ngx_http_spdy_module.
2153
2154
2155 Изменения в nginx 1.5.5 17.09.2013
2156
2157 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
2158 определить протокол не удалось.
2159
2160 *) Добавление: директива disable_symlinks теперь использует O_PATH на
2161 Linux.
2162
2163 *) Добавление: для определения того, что клиент закрыл соединение, при
2164 использовании метода epoll теперь используются события EPOLLRDHUP.
2165
2166 *) Исправление: в директиве valid_referers при использовании параметра
2167 server_names.
2168
2169 *) Исправление: переменная $request_time не работала в nginx/Windows.
2170
2171 *) Исправление: в директиве image_filter.
2172 Спасибо Lanshun Zhou.
2173
2174 *) Исправление: совместимость с OpenSSL 1.0.1f.
2175 Спасибо Piotr Sikora.
2176
2177
2178 Изменения в nginx 1.5.4 27.08.2013
2179
2180 *) Изменение: MIME-тип для расширения js изменён на
2181 "application/javascript"; значение по умолчанию директивы
2182 charset_types изменено соответственно.
2183
2184 *) Изменение: теперь директива image_filter с параметром size возвращает
2185 ответ с MIME-типом "application/json".
2186
2187 *) Добавление: модуль ngx_http_auth_request_module.
2188
2189 *) Исправление: на старте или во время переконфигурации мог произойти
2190 segmentation fault, если использовалась директива try_files с пустым
2191 параметром.
2192
2193 *) Исправление: утечки памяти при использовании в директивах root и
2194 auth_basic_user_file относительных путей, заданных с помощью
2195 переменных.
2196
2197 *) Исправление: директива valid_referers неправильно выполняла
2198 регулярные выражения, если заголовок Referer начинался с "https://".
2199 Спасибо Liangbin Li.
2200
2201 *) Исправление: ответы могли зависать, если использовались подзапросы и
2202 при обработке подзапроса происходила ошибка во время SSL handshake с
2203 бэкендом.
2204 Спасибо Aviram Cohen.
2205
2206 *) Исправление: в модуле ngx_http_autoindex_module.
2207
2208 *) Исправление: в модуле ngx_http_spdy_module.
2209
2210
2211 Изменения в nginx 1.5.3 30.07.2013
2212
2213 *) Изменение во внутреннем API: теперь при небуферизированной работе с
2214 бэкендами u->length по умолчанию устанавливается в -1.
2215
2216 *) Изменение: теперь при получении неполного ответа от бэкенда nginx
2217 отправляет полученную часть ответа, после чего закрывает соединение с
2218 клиентом.
2219
2220 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2221 если использовался модуль ngx_http_spdy_module и директива
2222 client_body_in_file_only.
2223
2224 *) Исправление: параметр so_keepalive директивы listen мог работать
2225 некорректно на DragonFlyBSD.
2226 Спасибо Sepherosa Ziehau.
2227
2228 *) Исправление: в модуле ngx_http_xslt_filter_module.
2229
2230 *) Исправление: в модуле ngx_http_sub_filter_module.
2231
2232
2233 Изменения в nginx 1.5.2 02.07.2013
2234
2235 *) Добавление: теперь можно использовать несколько директив error_log.
2236
2237 *) Исправление: метод $r->header_in() встроенного перла не возвращал
2238 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
2239 ошибка появилась в 1.3.14.
2240
2241 *) Исправление: в модуле ngx_http_spdy_module.
2242 Спасибо Jim Radford.
2243
2244 *) Исправление: nginx не собирался на Linux при использовании x32 ABI.
2245 Спасибо Сергею Иванцову.
2246
2247
2248 Изменения в nginx 1.5.1 04.06.2013
2249
2250 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
2251 xslt_last_modified.
2252 Спасибо Алексею Колпакову.
2253
2254 *) Добавление: параметр http_403 в директивах proxy_next_upstream,
2255 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
2256
2257 *) Добавление: директивы allow и deny теперь поддерживают unix domain
2258 сокеты.
2259
2260 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
2261 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
2262
2263 *) Исправление: в директиве proxy_set_body.
2264 Спасибо Lanshun Zhou.
2265
2266 *) Исправление: в директиве lingering_time.
2267 Спасибо Lanshun Zhou.
2268
2269 *) Исправление: параметр fail_timeout директивы server в блоке upstream
2270 мог не работать, если использовался параметр max_fails; ошибка
2271 появилась в 1.3.0.
2272
2273 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2274 если использовалась директива ssl_stapling.
2275 Спасибо Piotr Sikora.
2276
2277 *) Исправление: в почтовом прокси-сервере.
2278 Спасибо Filipe Da Silva.
2279
2280 *) Исправление: nginx/Windows мог перестать принимать соединения, если
2281 использовалось несколько рабочих процессов.
2282
2283
2284 Изменения в nginx 1.5.0 07.05.2013
2285
2286 *) Безопасность: при обработке специально созданного запроса мог
2287 перезаписываться стек рабочего процесса, что могло приводить к
2288 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
2289 1.3.9.
2290 Спасибо Greg MacManus, iSIGHT Partners Labs.
2291
2292
2293 Изменения в nginx 1.4.0 24.04.2013
2294
2295 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2296 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
2297
2298 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
2299 ошибка появилась в 1.3.9.
2300
2301
2302 Изменения в nginx 1.3.16 16.04.2013
2303
2304 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2305 если использовались подзапросы; ошибка появилась в 1.3.9.
2306
2307 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
2308 WebSocket-соединений в unix domain сокет.
2309
2310 *) Исправление: переменная $upstream_response_length возвращала значение
2311 "0", если не использовалась буферизация.
2312 Спасибо Piotr Sikora.
2313
2314 *) Исправление: в методах обработки соединений eventport и /dev/poll.
2315
2316
2317 Изменения в nginx 1.3.15 26.03.2013
2318
2319 *) Изменение: открытие и закрытие соединения без отправки в нём
2320 каких-либо данных больше не записывается в access_log с кодом ошибки
2321 400.
2322
2323 *) Добавление: модуль ngx_http_spdy_module.
2324 Спасибо Automattic за спонсирование разработки.
2325
2326 *) Добавление: директивы limit_req_status и limit_conn_status.
2327 Спасибо Nick Marden.
2328
2329 *) Добавление: директива image_filter_interlace.
2330 Спасибо Ивану Боброву.
2331
2332 *) Добавление: переменная $connections_waiting в модуле
2333 ngx_http_stub_status_module.
2334
2335 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
2336
2337 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
2338 могло передаваться неправильно; ошибка появилась в 1.3.9.
2339 Спасибо Piotr Sikora.
2340
2341 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2342 1.3.9.
2343
2344 *) Исправление: ответы могли зависать, если использовались подзапросы и
2345 при обработке подзапроса происходила DNS-ошибка.
2346 Спасибо Lanshun Zhou.
2347
2348 *) Исправление: в процедуре учёта использования бэкендов.
2349
2350
2351 Изменения в nginx 1.3.14 05.03.2013
2352
2353 *) Добавление: переменные $connections_active, $connections_reading и
2354 $connections_writing в модуле ngx_http_stub_status_module.
2355
2356 *) Добавление: поддержка WebSocket-соединений в модулях
2357 ngx_http_uwsgi_module и ngx_http_scgi_module.
2358
2359 *) Исправление: в обработке виртуальных серверов при использовании SNI.
2360
2361 *) Исправление: при использовании директивы "ssl_session_cache shared"
2362 новые сессии могли не сохраняться, если заканчивалось место в
2363 разделяемой памяти.
2364 Спасибо Piotr Sikora.
2365
2366 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
2367 неправильно.
2368 Спасибо Neal Poole за спонсирование разработки.
2369
2370 *) Исправление: в модуле ngx_http_mp4_module.
2371 Спасибо Gernot Vormayr.
2372
2373
2374 Изменения в nginx 1.3.13 19.02.2013
2375
2376 *) Изменение: теперь для сборки по умолчанию используется компилятор с
2377 именем "cc".
2378
2379 *) Добавление: поддержка проксирования WebSocket-соединений.
2380 Спасибо Apcera и CloudBees за спонсирование разработки.
2381
2382 *) Добавление: директива auth_basic_user_file поддерживает шифрование
2383 паролей методом "{SHA}".
2384 Спасибо Louis Opter.
2385
2386
2387 Изменения в nginx 1.3.12 05.02.2013
2388
2389 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
2390 scgi_bind и uwsgi_bind поддерживают переменные.
2391
2392 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
2393 $time_local теперь можно использовать не только в директиве
2394 log_format.
2395 Спасибо Kiril Kalchev.
2396
2397 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
2398 Спасибо Gregor Kališnik.
2399
2400 *) Исправление: директива proxy_method работала неверно, если была
2401 указана на уровне http.
2402
2403 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2404 если использовался resolver и метод poll.
2405
2406 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
2407 бэкендом при использовании методов обработки соединений select, poll
2408 и /dev/poll.
2409
2410 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
2411
2412 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2413 1.3.9.
2414
2415 *) Исправление: в директиве fastcgi_keep_conn.
2416
2417
2418 Изменения в nginx 1.3.11 10.01.2013
2419
2420 *) Исправление: при записи в лог мог происходить segmentation fault;
2421 ошибка появилась в 1.3.10.
2422
2423 *) Исправление: директива proxy_pass не работала с IP-адресами без
2424 явного указания порта; ошибка появилась в 1.3.10.
2425
2426 *) Исправление: на старте или во время переконфигурации происходил
2427 segmentation fault, если директива keepalive была указана несколько
2428 раз в одном блоке upstream.
2429
2430 *) Исправление: параметр default директивы geo не определял значение по
2431 умолчанию для IPv6-адресов.
2432
2433
2434 Изменения в nginx 1.3.10 25.12.2012
2435
2436 *) Изменение: для указанных в конфигурационном файле доменных имён
2437 теперь используются не только IPv4, но и IPv6 адреса.
2438
2439 *) Изменение: теперь при использовании директивы include с маской на
2440 Unix-системах включаемые файлы сортируются в алфавитном порядке.
2441
2442 *) Изменение: директива add_header добавляет строки в ответы с кодом
2443 201.
2444
2445 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
2446 CIDR.
2447
2448 *) Добавление: параметры flush и gzip в директиве access_log.
2449
2450 *) Добавление: директива auth_basic поддерживает переменные.
2451
2452 *) Исправление: nginx в некоторых случаях не собирался с модулем
2453 ngx_http_perl_module.
2454
2455 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2456 если использовался модуль ngx_http_xslt_module.
2457
2458 *) Исправление: nginx мог не собираться на MacOSX.
2459 Спасибо Piotr Sikora.
2460
2461 *) Исправление: при использовании директивы limit_rate с большими
2462 значениями скорости на 32-битных системах ответ мог возвращаться не
2463 целиком.
2464 Спасибо Алексею Антропову.
2465
2466 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2467 если использовалась директива if.
2468 Спасибо Piotr Sikora.
2469
2470 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
2471 Request Entity Too Large".
2472
2473 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
2474 image_filter_sharpen могли наследоваться некорректно.
2475 Спасибо Ивану Боброву.
2476
2477 *) Исправление: при использовании директивы auth_basic под Linux могли
2478 возникать ошибки "crypt_r() failed".
2479
2480 *) Исправление: в обработке backup-серверов.
2481 Спасибо Thomas Chen.
2482
2483 *) Исправление: при проксировании HEAD-запросов мог возвращаться
2484 некорректный ответ, если использовалась директива gzip.
2485
2486
2487 Изменения в nginx 1.3.9 27.11.2012
2488
2489 *) Добавление: поддержка chunked transfer encoding при получении тела
2490 запроса.
2491
2492 *) Добавление: переменные $request_time и $msec теперь можно
2493 использовать не только в директиве log_format.
2494
2495 *) Исправление: cache manager и cache loader могли не запускаться, если
2496 использовалось более 512 listen-сокетов.
2497
2498 *) Исправление: в модуле ngx_http_dav_module.
2499
2500
2501 Изменения в nginx 1.3.8 30.10.2012
2502
2503 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
2504 Спасибо Михаилу Казанцеву и Eric O'Connor.
2505
2506 *) Добавление: переменные $bytes_sent, $connection и
2507 $connection_requests теперь можно использовать не только в директиве
2508 log_format.
2509 Спасибо Benjamin Grössing.
2510
2511 *) Добавление: параметр auto директивы worker_processes.
2512
2513 *) Исправление: сообщения "cache file ... has md5 collision".
2514
2515 *) Исправление: в модуле ngx_http_gunzip_filter_module.
2516
2517 *) Исправление: в директиве ssl_stapling.
2518
2519
2520 Изменения в nginx 1.3.7 02.10.2012
2521
2522 *) Добавление: поддержка OCSP stapling.
2523 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
2524
2525 *) Добавление: директива ssl_trusted_certificate.
2526
2527 *) Добавление: теперь resolver случайным образом меняет порядок
2528 возвращаемых закэшированных адресов.
2529 Спасибо Антону Жулину.
2530
2531 *) Исправление: совместимость с OpenSSL 0.9.7.
2532
2533
2534 Изменения в nginx 1.3.6 12.09.2012
2535
2536 *) Добавление: модуль ngx_http_gunzip_filter_module.
2537
2538 *) Добавление: директива memcached_gzip_flag.
2539
2540 *) Добавление: параметр always директивы gzip_static.
2541
2542 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
2543 Спасибо Charles Chen.
2544
2545 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
2546 использовался параметр --with-ipv6.
2547
2548
2549 Изменения в nginx 1.3.5 21.08.2012
2550
2551 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
2552 дорожки в форматах, отличных от H.264 и AAC.
2553
2554 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2555 если в директиве map в качестве значений использовались переменные.
2556
2557 *) Исправление: в рабочем процессе мог произойти segmentation fault при
2558 использовании директивы geo с параметром ranges, но без параметра
2559 default; ошибка появилась в 0.8.43.
2560 Спасибо Zhen Chen и Weibin Yao.
2561
2562 *) Исправление: в обработке параметра командной строки -p.
2563
2564 *) Исправление: в почтовом прокси-сервере.
2565
2566 *) Исправление: незначительных потенциальных ошибок.
2567 Спасибо Coverity.
2568
2569 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
2570 Спасибо HAYASHI Kentaro.
2571
2572
2573 Изменения в nginx 1.3.4 31.07.2012
2574
2575 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
2576 по умолчанию.
2577
2578 *) Добавление: поддержка компилятора Clang.
2579
2580 *) Исправление: могли создаваться лишние слушающие сокеты.
2581 Спасибо Роману Одайскому.
2582
2583 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
2584 рабочего процесса происходила ошибка.
2585 Спасибо Ricardo Villalobos Guevara.
2586
2587 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
2588 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
2589 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
2590 наследоваться некорректно.
2591
2592
2593 Изменения в nginx 1.3.3 10.07.2012
2594
2595 *) Добавление: поддержка entity tags и директива etag.
2596
2597 *) Исправление: при использовании директивы map с параметром hostnames
2598 не игнорировалась конечная точка в исходном значении.
2599
2600 *) Исправление: для обработки запроса мог использоваться неверный
2601 location, если переход в именованный location происходил после
2602 изменения URI с помощью директивы rewrite.
2603
2604
2605 Изменения в nginx 1.3.2 26.06.2012
2606
2607 *) Изменение: параметр single директивы keepalive теперь игнорируется.
2608
2609 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
2610 OpenSSL старее 1.0.0.
2611
2612 *) Добавление: директиву "ip_hash" теперь можно использовать для
2613 балансировки IPv6 клиентов.
2614
2615 *) Добавление: переменную $status теперь можно использовать не только в
2616 директиве log_format.
2617
2618 *) Исправление: при завершении рабочего процесса мог произойти
2619 segmentation fault, если использовалась директива resolver.
2620
2621 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2622 если использовался модуль ngx_http_mp4_module.
2623
2624 *) Исправление: в модуле ngx_http_mp4_module.
2625
2626 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2627 если использовались конфликтующие имена серверов с масками.
2628
2629 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
2630 сигналу SIGBUS.
2631
2632 *) Исправление: во время переконфигурации на HP-UX в лог записывался
2633 alert "sendmsg() failed (9: Bad file number)".
2634
2635
2636 Изменения в nginx 1.3.1 05.06.2012
2637
2638 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
2639 компонента URI и не разрешает URI, содержащие последовательность
2640 ":$".
2641 Спасибо Владимиру Кочеткову, Positive Research Center.
2642
2643 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
2644 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
2645
2646 *) Добавление: в директиве resolver теперь можно указывать порт и
2647 задавать IPv6-адреса DNS-серверов.
2648
2649 *) Добавление: директива least_conn в блоке upstream.
2650
2651 *) Добавление: при использовании директивы ip_hash теперь можно задавать
2652 веса серверов.
2653
2654 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2655 если использовалась директива image_filter; ошибка появилась в 1.3.0.
2656
2657 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
2658 появилась в 1.1.12.
2659
2660 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
2661 работать после переконфигурации.
2662 Спасибо Yichun Zhang.
2663
2664 *) Исправление: в модуле ngx_http_xslt_filter_module.
2665 Спасибо Kuramoto Eiji.
2666
2667 *) Исправление: утечки памяти при использовании переменной $geoip_org.
2668 Спасибо Денису Латыпову.
2669
2670 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
2671
2672
2673 Изменения в nginx 1.3.0 15.05.2012
2674
2675 *) Добавление: директива debug_connection теперь поддерживает
2676 IPv6-адреса и параметр "unix:".
2677
2678 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
2679 теперь поддерживают IPv6-адреса.
2680
2681 *) Добавление: директивы real_ip_recursive, geoip_proxy и
2682 geoip_proxy_recursive.
2683
2684 *) Добавление: параметр proxy_recursive директивы geo.
2685
2686 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2687 если использовалась директива resolver.
2688
2689 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2690 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
2691 и бэкенд возвращал некорректный ответ.
2692
2693 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2694 если использовалась директива rewrite и в новых аргументах запроса в
2695 строке замены использовались переменные.
2696
2697 *) Исправление: nginx мог нагружать процессор, если было достигнуто
2698 ограничение на количество открытых файлов.
2699
2700 *) Исправление: при использовании директивы proxy_next_upstream с
2701 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
2702 блоке upstream был хотя бы один сервер с флагом backup.
2703
2704 *) Исправление: при использовании директивы ip_hash установка параметра
2705 down директивы server могла приводить к ненужному перераспределению
2706 клиентов между бэкендами.
2707
2708 *) Исправление: утечки сокетов.
2709 Спасибо Yichun Zhang.
2710
2711 *) Исправление: в модуле ngx_http_fastcgi_module.
2712
2713
2714 Изменения в nginx 1.2.0 23.04.2012
2715
2716 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2717 если использовалась директива try_files; ошибка появилась в 1.1.19.
2718
2719 *) Исправление: ответ мог быть передан не полностью, если использовалось
2720 больше IOV_MAX буферов.
2721
2722 *) Исправление: в работе параметра crop директивы image_filter.
2723 Спасибо Maxim Bublis.
2724
2725
2726 Изменения в nginx 1.1.19 12.04.2012
2727
2728 *) Безопасность: при обработке специально созданного mp4 файла модулем
2729 ngx_http_mp4_module могли перезаписываться области памяти рабочего
2730 процесса, что могло приводить к выполнению произвольного кода
2731 (CVE-2012-2089).
2732 Спасибо Matthew Daley.
2733
2734 *) Исправление: nginx/Windows мог завершаться аварийно.
2735 Спасибо Vincent Lee.
2736
2737 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
2738 были помечены флагом backup.
2739
2740 *) Исправление: директивы allow и deny могли наследоваться некорректно,
2741 если в них использовались IPv6 адреса.
2742
2743 *) Исправление: директивы modern_browser и ancient_browser могли
2744 наследоваться некорректно.
2745
2746 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
2747
2748 *) Исправление: в модуле ngx_http_mp4_module.
2749
2750
2751 Изменения в nginx 1.1.18 28.03.2012
2752
2753 *) Изменение: теперь keepalive соединения не запрещены для Safari по
2754 умолчанию.
2755
2756 *) Добавление: переменная $connection_requests.
2757
2758 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
2759 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
2760
2761 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
2762
2763 *) Добавление: директивы xslt_param и xslt_string_param.
2764 Спасибо Samuel Behan.
2765
2766 *) Исправление: в configure.
2767 Спасибо Piotr Sikora.
2768
2769 *) Исправление: в модуле ngx_http_xslt_filter_module.
2770
2771 *) Исправление: nginx не собирался на Debian GNU/Hurd.
2772
2773
2774 Изменения в nginx 1.1.17 15.03.2012
2775
2776 *) Безопасность: содержимое ранее освобождённой памяти могло быть
2777 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
2778 Спасибо Matthew Daley.
2779
2780 *) Исправление: при использовании встроенного перла из SSI.
2781 Спасибо Matthew Daley.
2782
2783 *) Исправление: в модуле ngx_http_uwsgi_module.
2784
2785
2786 Изменения в nginx 1.1.16 29.02.2012
2787
2788 *) Изменение: ограничение на количество одновременных подзапросов
2789 поднято до 200.
2790
2791 *) Добавление: параметр from в директиве disable_symlinks.
2792
2793 *) Добавление: директивы return и error_page теперь могут использоваться
2794 для возврата перенаправлений с кодом 307.
2795
2796 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2797 если использовалась директива resolver и на глобальном уровне не была
2798 задана директива error_log.
2799 Спасибо Роману Арутюняну.
2800
2801 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2802 если использовались директивы "proxy_http_version 1.1" или
2803 "fastcgi_keep_conn on".
2804
2805 *) Исправление: утечек памяти.
2806 Спасибо Lanshun Zhou.
2807
2808 *) Исправление: в директиве disable_symlinks.
2809
2810 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
2811 некорректно; ошибка появилась в 1.0.1.
2812
2813 *) Исправление: nginx не собирался компилятором icc 12.1.
2814
2815 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
2816 1.1.15.
2817
2818
2819 Изменения в nginx 1.1.15 15.02.2012
2820
2821 *) Добавление: директива disable_symlinks.
2822
2823 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
2824
2825 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
2826 prematurely closed connection" вместо "upstream sent too big header".
2827 Спасибо Feibo Li.
2828
2829 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2830 использовался параметр --with-openssl.
2831
2832 *) Исправление: количество внутренних перенаправлений в именованные
2833 location'ы не ограничивалось.
2834
2835 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
2836 ошибкам в модуле ngx_http_gzip_filter_module.
2837
2838 *) Исправление: при использовании директивы proxy_store с
2839 SSI-подзапросами временные файлы могли не удаляться.
2840
2841 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
2842 $args) возвращали старое пустое закэшированное значение.
2843
2844 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2845 если одновременно создавалось слишком много SSI-подзапросов; ошибка
2846 появилась в 0.7.25.
2847
2848
2849 Изменения в nginx 1.1.14 30.01.2012
2850
2851 *) Добавление: теперь можно указать несколько ограничений limit_req
2852 одновременно.
2853
2854 *) Исправление: в обработке ошибок при соединении с бэкендом.
2855 Спасибо Piotr Sikora.
2856
2857 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
2858
2859 *) Исправление: в инициализации библиотеки OpenSSL.
2860
2861 *) Исправление: директивы proxy_redirect могли наследоваться
2862 некорректно.
2863
2864 *) Исправление: утечки памяти при переконфигурации, если использовалась
2865 директива pcre_jit.
2866
2867
2868 Изменения в nginx 1.1.13 16.01.2012
2869
2870 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
2871
2872 *) Исправление: параметры директивы limit_req наследовались некорректно;
2873 ошибка появилась в 1.1.12.
2874
2875 *) Исправление: директива proxy_redirect некорректно обрабатывала
2876 заголовок Refresh при использовании регулярных выражений.
2877
2878 *) Исправление: директива proxy_cache_use_stale с параметром error не
2879 возвращала ответ из кэша, если все бэкенды были признаны
2880 неработающими.
2881
2882 *) Исправление: директива worker_cpu_affinity могла не работать.
2883
2884 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
2885 1.1.12.
2886
2887 *) Исправление: в модуле ngx_http_mp4_module.
2888
2889
2890 Изменения в nginx 1.1.12 26.12.2011
2891
2892 *) Изменение: после перенаправления запроса с помощью директивы
2893 error_page директива proxy_pass без URI теперь использует изменённый
2894 URI.
2895 Спасибо Lanshun Zhou.
2896
2897 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
2898 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
2899
2900 *) Добавление: директива pcre_jit.
2901
2902 *) Добавление: SSI команда if поддерживает выделения в регулярных
2903 выражениях.
2904
2905 *) Исправление: SSI команда if не работала внутри команды block.
2906
2907 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
2908 могли не работать.
2909
2910 *) Исправление: директива limit_rate не позволяла передавать на полной
2911 скорости, даже если был указан очень большой лимит.
2912
2913 *) Исправление: директива sendfile_max_chunk не работала, если
2914 использовалась директива limit_rate.
2915
2916 *) Исправление: если в директиве proxy_pass использовались переменные и
2917 не был указан URI, всегда использовался URI исходного запроса.
2918
2919 *) Исправление: после перенаправления запроса с помощью директивы
2920 try_files директива proxy_pass без URI могла использовать URI
2921 исходного запроса.
2922 Спасибо Lanshun Zhou.
2923
2924 *) Исправление: в модуле ngx_http_scgi_module.
2925
2926 *) Исправление: в модуле ngx_http_mp4_module.
2927
2928 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
2929
2930
2931 Изменения в nginx 1.1.11 12.12.2011
2932
2933 *) Добавление: параметр so_keepalive в директиве listen.
2934 Спасибо Всеволоду Стахову.
2935
2936 *) Добавление: параметр if_not_empty в директивах
2937 fastcgi/scgi/uwsgi_param.
2938
2939 *) Добавление: переменная $https.
2940
2941 *) Добавление: директива proxy_redirect поддерживает переменные в первом
2942 параметре.
2943
2944 *) Добавление: директива proxy_redirect поддерживает регулярные
2945 выражения.
2946
2947 *) Исправление: переменная $sent_http_cache_control могла содержать
2948 неверное значение при использовании директивы expires.
2949 Спасибо Yichun Zhang.
2950
2951 *) Исправление: директива read_ahead могла не работать при использовании
2952 совместно с try_files и open_file_cache.
2953
2954 *) Исправление: если в параметре inactive директивы proxy_cache_path
2955 было указано малое время, в рабочем процессе мог произойти
2956 segmentation fault.
2957
2958 *) Исправление: ответы из кэша могли зависать.
2959
2960
2961 Изменения в nginx 1.1.10 30.11.2011
2962
2963 *) Исправление: при использовании AIO на Linux в рабочем процессе
2964 происходил segmentation fault; ошибка появилась в 1.1.9.
2965
2966
2967 Изменения в nginx 1.1.9 28.11.2011
2968
2969 *) Изменение: теперь двойные кавычки экранируется при выводе
2970 SSI-командой echo.
2971 Спасибо Зауру Абасмирзоеву.
2972
2973 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
2974 используется TTL, возвращённый DNS-сервером.
2975 Спасибо Кириллу Коринскому.
2976
2977 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
2978 завершался аварийно.
2979
2980 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2981 если использовалось SNI; ошибка появилась в 1.1.2.
2982
2983 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
2984 Спасибо Александру Усову.
2985
2986 *) Исправление: сигнал SIGWINCH переставал работать после первого
2987 обновления исполняемого файла; ошибка появилась в 1.1.1.
2988
2989 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
2990 заголовку Content-Length, не кэширутся.
2991
2992 *) Исправление: в директиве scgi_param при использовании составных
2993 параметров.
2994
2995 *) Исправление: в методе epoll.
2996 Спасибо Yichun Zhang.
2997
2998 *) Исправление: в модуле ngx_http_flv_module.
2999 Спасибо Piotr Sikora.
3000
3001 *) Исправление: в модуле ngx_http_mp4_module.
3002
3003 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
3004 заголовке Host.
3005
3006 *) Исправление: директивы add_header и expires не работали для ответов с
3007 кодом 206, если запрос проксировался.
3008
3009 *) Исправление: nginx не собирался на FreeBSD 10.
3010
3011 *) Исправление: nginx не собирался на AIX.
3012
3013
3014 Изменения в nginx 1.1.8 14.11.2011
3015
3016 *) Изменение: модуль ngx_http_limit_zone_module переименован в
3017 ngx_http_limit_conn_module.
3018
3019 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
3020 новым синтаксисом.
3021
3022 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
3023 уровне.
3024
3025 *) Добавление: директива image_filter_sharpen.
3026
3027 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3028 если resolver получил большой DNS-ответ.
3029 Спасибо Ben Hawkes.
3030
3031 *) Исправление: в вычислении ключа для кэширования, если использовалась
3032 внутренняя реализация MD5; ошибка появилась в 1.0.4.
3033
3034 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3035 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
3036 или не передаваться при выключенном кэшировании, если кэширование
3037 было включено в другой части конфигурации.
3038
3039 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
3040 "Content-Length" в заголовке ответа, использовался аргумент start.
3041 Спасибо Piotr Sikora.
3042
3043
3044 Изменения в nginx 1.1.7 31.10.2011
3045
3046 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
3047 Спасибо Кириллу Коринскому.
3048
3049 *) Исправление: на старте или во время переконфигурации происходил
3050 segmentation fault, если директива ssl использовалась на уровне http
3051 и не был указан ssl_certificate.
3052
3053 *) Исправление: уменьшено потребление памяти при проксировании больших
3054 файлов, если они буферизировались на диск.
3055
3056 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3057 если использовалась директива "proxy_http_version 1.1".
3058
3059 *) Исправление: в директиве "expires @time".
3060
3061
3062 Изменения в nginx 1.1.6 17.10.2011
3063
3064 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
3065 именованный location контексты модулей очищаются.
3066 По запросу Yichun Zhang.
3067
3068 *) Изменение: теперь если сервер, описанный в блоке upstream, был
3069 признан неработающим, то после истечения fail_timeout на него будет
3070 отправлен только один запрос; сервер будет считаться работающим, если
3071 успешно ответит на этот запрос.
3072
3073 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
3074 \xXX.
3075
3076 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
3077 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
3078 X-Accel-Charset.
3079
3080 *) Добавление: уменьшение потребления памяти при использовании SSL.
3081
3082 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
3083 Спасибо Алексею Куцу.
3084
3085 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
3086 уровне server, применялись повторно, если для запроса не находилось
3087 ни одного location'а.
3088
3089 *) Исправление: при использовании "aio sendfile" могла происходить
3090 утечка сокетов.
3091
3092 *) Исправление: при использовании файлового AIO соединения с быстрыми
3093 клиентами могли быть закрыты по истечению send_timeout.
3094
3095 *) Исправление: в модуле ngx_http_autoindex_module.
3096
3097 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
3098 32-битных платформах.
3099
3100
3101 Изменения в nginx 1.1.5 05.10.2011
3102
3103 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
3104 Спасибо Peter Smit.
3105
3106 *) Исправление: при использовании proxy_cache_bypass могли быть
3107 закэшированы некэшируемые ответы.
3108 Спасибо John Ferlito.
3109
3110 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
3111 HTTP/1.1.
3112
3113 *) Исправление: закэшированные ответы с пустым телом возвращались
3114 некорректно; ошибка появилась в 0.8.31.
3115
3116 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
3117 некорректны; ошибка появилась в 0.8.32.
3118
3119 *) Исправление: в директиве return.
3120
3121 *) Исправление: при использовании директивы "ssl_session_cache builtin"
3122 происходил segmentation fault; ошибка появилась в 1.1.1.
3123
3124
3125 Изменения в nginx 1.1.4 20.09.2011
3126
3127 *) Добавление: модуль ngx_http_upstream_keepalive.
3128
3129 *) Добавление: директива proxy_http_version.
3130
3131 *) Добавление: директива fastcgi_keep_conn.
3132
3133 *) Добавление: директива worker_aio_requests.
3134
3135 *) Исправление: если nginx был собран с файловым AIO, он не мог
3136 запускаться на Linux без поддержки AIO.
3137
3138 *) Исправление: в обработке ошибок при работе с Linux AIO.
3139 Спасибо Hagai Avrahami.
3140
3141 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
3142
3143 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
3144 MP4-атом co64.
3145
3146
3147 Изменения в nginx 1.1.3 14.09.2011
3148
3149 *) Добавление: модуль ngx_http_mp4_module.
3150
3151 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
3152
3153 *) Исправление: open_file_cache не обновлял информацию о файле, если
3154 файл был изменён не атомарно.
3155
3156 *) Исправление: nginx не собирался на MacOSX 10.7.
3157
3158
3159 Изменения в nginx 1.1.2 05.09.2011
3160
3161 *) Изменение: теперь, если суммарный размер всех диапазонов больше
3162 размера исходного ответа, то nginx возвращает только исходный ответ,
3163 не обрабатывая диапазоны.
3164
3165 *) Добавление: директива max_ranges.
3166
3167 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
3168 ssl_prefer_server_cipher могли работать некорректно, если
3169 использовался SNI.
3170
3171 *) Исправление: в директивах proxy/fastcgi/scgi/
3172 uwsgi_ignore_client_abort.
3173
3174
3175 Изменения в nginx 1.1.1 22.08.2011
3176
3177 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
3178 число файлов, указанное в параметре load_files, либо работает не
3179 дольше времени, указанного в параметре loader_threshold.
3180
3181 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
3182
3183 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3184 на Solaris.
3185 Спасибо Денису Иванову.
3186
3187 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
3188
3189 *) Исправление: nginx не собирался на Linux 3.0.
3190
3191 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
3192 появилась в 1.1.0.
3193
3194 *) Исправление: обработка тела запроса могла быть неверной, если клиент
3195 использовал pipelining.
3196
3197 *) Исправление: в директиве request_body_in_single_buf.
3198
3199 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
3200 при использовании SSL-соединения с бэкендом.
3201
3202 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3203 были помечены флагом down.
3204
3205 *) Исправление: при переконфигурации мог произойти segmentation fault,
3206 если в предыдущей конфигурации был определён, но не использовался
3207 ssl_session_cache.
3208
3209 *) Исправление: при использовании большого количества backup-серверов в
3210 рабочем процессе мог произойти segmentation fault.
3211
3212 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
3213 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
3214 произойти segmentation fault; ошибка появилась в 0.8.40.
3215
3216
3217 Изменения в nginx 1.1.0 01.08.2011
3218
3219 *) Добавление: уменьшение времени работы загрузчика кэша.
3220
3221 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
3222 директив proxy/fastcgi/scgi/uwsgi_cache_path.
3223
3224 *) Добавление: уменьшение времени загрузки конфигураций с большим
3225 количеством HTTPS серверов.
3226
3227 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
3228 Спасибо Adrian Kotelba.
3229
3230 *) Добавление: директива lingering_close.
3231 Спасибо Максиму Дунину.
3232
3233 *) Исправление: закрытия соединения для pipelined-запросов.
3234 Спасибо Максиму Дунину.
3235
3236 *) Исправление: nginx не запрещал сжатие при получении значения
3237 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
3238
3239 *) Исправление: таймаута при небуферизированном проксировании.
3240 Спасибо Максиму Дунину.
3241
3242 *) Исправление: утечки памяти при использовании переменных в директиве
3243 proxy_pass при работе с бэкендом по HTTPS.
3244 Спасибо Максиму Дунину.
3245
3246 *) Исправление: в проверке параметра директивы proxy_pass, заданного
3247 переменными.
3248 Спасибо Lanshun Zhou.
3249
3250 *) Исправление: SSL не работал на QNX.
3251 Спасибо Максиму Дунину.
3252
3253 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
3254 --with-debug.
3255
3256
3257 Изменения в nginx 1.0.5 19.07.2011
3258
3259 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3260 "HIGH:!aNULL:!MD5".
3261 Спасибо Rob Stradling.
3262
3263 *) Добавление: директивы referer_hash_max_size и
3264 referer_hash_bucket_size.
3265 Спасибо Witold Filipczyk.
3266
3267 *) Добавление: переменная $uid_reset.
3268
3269 *) Исправление: при использовании кэширования в рабочем процессе мог
3270 произойти segmentation fault.
3271 Спасибо Lanshun Zhou.
3272
3273 *) Исправление: при использовании кэширования рабочие процессы могли
3274 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3275 Спасибо Максиму Дунину.
3276
3277 *) Исправление: сообщения "stalled cache updating".
3278 Спасибо Максиму Дунину.
3279
3280
3281 Изменения в nginx 1.0.4 01.06.2011
3282
3283 *) Изменение: теперь в регулярных выражениях в директиве map можно
3284 задать чувствительность к регистру с помощью префиксов "~" и "~*".
3285
3286 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3287 на Linux.
3288 Спасибо Денису Латыпову.
3289
3290 *) Исправление: сообщения "stalled cache updating".
3291
3292 *) Исправление: nginx не собирался с параметром
3293 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
3294
3295
3296 Изменения в nginx 1.0.3 25.05.2011
3297
3298 *) Добавление: директива auth_basic_user_file поддерживает шифрование
3299 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
3300 Спасибо Максиму Дунину.
3301
3302 *) Добавление: директива geoip_org и переменная $geoip_org.
3303 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
3304
3305 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
3306 поддерживают адреса IPv4, отображённые на IPv6 адреса.
3307
3308 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
3309 рабочем процессе происходил segmentation fault, если директивы access
3310 или deny были определены только для адресов IPv6; ошибка появилась в
3311 0.8.22.
3312
3313 *) Исправление: закэшированный ответ мог быть испорчен, если значения
3314 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
3315 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
3316
3317
3318 Изменения в nginx 1.0.2 10.05.2011
3319
3320 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
3321
3322 *) Исправление: в работе параметра rotate директивы image_filter.
3323 Спасибо Adam Bocim.
3324
3325 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
3326
3327
3328 Изменения в nginx 1.0.1 03.05.2011
3329
3330 *) Изменение: теперь директива split_clients использует алгоритм
3331 MurmurHash2 из-за лучшего распределения.
3332 Спасибо Олегу Мамонтову.
3333
3334 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
3335 ложными значениями.
3336 Спасибо Максиму Дунину.
3337
3338 *) Изменение: теперь по умолчанию nginx использует значение 511 для
3339 listen backlog на Linux.
3340
3341 *) Добавление: переменные $upstream_... можно использовать в SSI и
3342 перловом модулях.
3343
3344 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
3345 Спасибо Олегу Мамонтову.
3346
3347 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
3348 segmentation fault; ошибка появилась в 0.8.22.
3349 Спасибо Максиму Дунину.
3350
3351 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
3352
3353 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
3354 появилась в 0.9.3.
3355 Спасибо Dagobert Michelsen.
3356
3357 *) Исправление: переменная $request_time имела неверные значения, если
3358 использовались подзапросы; ошибка появилась в 0.8.47.
3359 Спасибо Игорю А. Валькову.
3360
3361
3362 Изменения в nginx 1.0.0 12.04.2011
3363
3364 *) Исправление: cache manager мог нагружать процессор после
3365 переконфигурации.
3366 Спасибо Максиму Дунину.
3367
3368 *) Исправление: директива "image_filter crop" неправильно работала в
3369 сочетании с "image_filter rotate 180".
3370
3371 *) Исправление: директива "satisfy any" запрещала выдачу
3372 пользовательской страницы для 401 кода.
3373
3374
3375 Изменения в nginx 0.9.7 04.04.2011
3376
3377 *) Добавление: теперь соединения в состоянии keepalive могут быть
3378 закрыты преждевременно, если у воркера нет свободных соединений.
3379 Спасибо Максиму Дунину.
3380
3381 *) Добавление: параметр rotate директивы image_filter.
3382 Спасибо Adam Bocim.
3383
3384 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
3385 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
3386 upstream.
3387
3388
3389 Изменения в nginx 0.9.6 21.03.2011
3390
3391 *) Добавление: директива map поддерживает регулярные выражения в
3392 качестве значения первого параметра.
3393
3394 *) Добавление: переменная $time_iso8601 для access_log.
3395 Спасибо Michael Lustfield.
3396
3397
3398 Изменения в nginx 0.9.5 21.02.2011
3399
3400 *) Изменение: теперь по умолчанию nginx использует значение -1 для
3401 listen backlog на Linux.
3402 Спасибо Андрею Нигматулину.
3403
3404 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
3405 Спасибо Денису Латыпову.
3406
3407 *) Исправление: исправление в умолчательной директиве proxy_redirect,
3408 если в директиве proxy_pass не был описан URI.
3409 Спасибо Максиму Дунину.
3410
3411 *) Исправление: директива error_page не работала с нестандартными кодами
3412 ошибок; ошибка появилась в 0.8.53.
3413 Спасибо Максиму Дунину.
3414
3415
3416 Изменения в nginx 0.9.4 21.01.2011
3417
3418 *) Добавление: директива server_name поддерживает переменную $hostname.
3419
3420 *) Добавление: 494 код для ошибки "Request Header Too Large".
3421
3422
3423 Изменения в nginx 0.9.3 13.12.2010
3424
3425 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
3426 то выделения в регулярных выражениях в директиве server_name не
3427 работали.
3428
3429 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
3430 0.9.0.
3431
3432
3433 Изменения в nginx 0.9.2 06.12.2010
3434
3435 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
3436 запроса клиента.
3437
3438 *) Изменение: использование accept(), если accept4() не реализован;
3439 ошибка появилась в 0.9.0.
3440
3441 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
3442
3443 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
3444 Спасибо Максиму Дунину.
3445
3446
3447 Изменения в nginx 0.9.1 30.11.2010
3448
3449 *) Исправление: директивы вида "return CODE message" не работали; ошибка
3450 появилась в 0.9.0.
3451
3452
3453 Изменения в nginx 0.9.0 29.11.2010
3454
3455 *) Добавление: директива keepalive_disable.
3456
3457 *) Добавление: директива map поддерживает переменные в качестве значения
3458 определяемой переменной.
3459
3460 *) Добавление: директива map поддерживает пустые строки в качестве
3461 значения первого параметра.
3462
3463 *) Добавление: директива map поддерживает выражения в первом параметре.
3464
3465 *) Добавление: страница руководства nginx(8).
3466 Спасибо Сергею Осокину.
3467
3468 *) Добавление: поддержка accept4() в Linux.
3469 Спасибо Simon Liu.
3470
3471 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
3472 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
3473
3474 *) Исправление: при использовании директивы auth_basic в рабочем
3475 процессе мог произойти segmentation fault.
3476 Спасибо Михаилу Лалетину.
3477
3478 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
3479 появилась в 0.8.42.
3480
3481
3482 Изменения в nginx 0.8.53 18.10.2010
3483
3484 *) Добавление: теперь директива error_page позволяет менять код статуса
3485 у редиректа.
3486
3487 *) Добавление: директива gzip_disable поддерживает специальную маску
3488 degradation.
3489
3490 *) Исправление: при использовании файлового AIO могла происходить утечка
3491 сокетов.
3492 Спасибо Максиму Дунину.
3493
3494 *) Исправление: если в первом сервере не была описана директива listen и
3495 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
3496 становился следующий сервер с директивой listen; ошибка появилась в
3497 0.8.21.
3498
3499
3500 Изменения в nginx 0.8.52 28.09.2010
3501
3502 *) Исправление: nginx использовал режим SSL для listen сокета, если для
3503 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
3504
3505
3506 Изменения в nginx 0.8.51 27.09.2010
3507
3508 *) Изменение: директива secure_link_expires упразднена.
3509
3510 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
3511 alert на error.
3512
3513 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
3514 несколько раз.
3515
3516
3517 Изменения в nginx 0.8.50 02.09.2010
3518
3519 *) Добавление: директивы secure_link, secure_link_md5 и
3520 secure_link_expires модуля ngx_http_secure_link_module.
3521
3522 *) Добавление: ключ -q.
3523 Спасибо Геннадию Махомеду.
3524
3525 *) Исправление: при использовании кэширования рабочие процессы и могли
3526 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3527
3528 *) Исправление: в директиве gzip_disable.
3529 Спасибо Derrick Petzold.
3530
3531 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
3532 reopen, reload процессу, запущенному в другой сессии.
3533
3534
3535 Изменения в nginx 0.8.49 09.08.2010
3536
3537 *) Добавление: директива image_filter_jpeg_quality поддерживает
3538 переменные.
3539
3540 *) Исправление: при использовании переменной $geoip_region_name в
3541 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3542 0.8.48.
3543
3544 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
3545 следующего запроса; ошибка появилась в 0.8.48.
3546
3547
3548 Изменения в nginx 0.8.48 03.08.2010
3549
3550 *) Изменение: теперь по умолчанию директива server_name имеет значение
3551 пустое имя "".
3552 Спасибо Геннадию Махомеду.
3553
3554 *) Изменение: теперь по умолчанию директива server_name_in_redirect
3555 имеет значение off.
3556
3557 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
3558 $geoip_region_name.
3559 Спасибо Christine McGonagle.
3560
3561 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
3562 scgi_pass не наследовались в блоки limit_except.
3563
3564 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
3565 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
3566 появилась в 0.8.46.
3567
3568 *) Исправление: директива fastcgi_split_path_info неверно использовала
3569 выделения, если в выделения попадала только часть URI.
3570 Спасибо Юрию Тарадаю и Frank Enderle.
3571
3572 *) Исправление: директива rewrite не экранировала символ ";" при
3573 копировании из URI в аргументы.
3574 Спасибо Daisuke Murase.
3575
3576 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
3577 если изображение было больше размера image_filter_buffer.
3578
3579
3580 Изменения в nginx 0.8.47 28.07.2010
3581
3582 *) Исправление: переменная $request_time имела неверные значения для
3583 подзапросов.
3584
3585 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
3586
3587 *) Исправление: если использовался параметр max_size, то cache manager
3588 мог зациклиться; ошибка появилась в 0.8.46.
3589
3590
3591 Изменения в nginx 0.8.46 19.07.2010
3592
3593 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
3594 и scgi_no_cache теперь влияют только на сохранение закэшированного
3595 ответа.
3596
3597 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
3598 uwsgi_cache_bypass и scgi_cache_bypass.
3599
3600 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
3601 ошибки работы с бэкендом: память освобождалась только по истечении
3602 времени неактивности или при недостатке памяти.
3603
3604
3605 Изменения в nginx 0.8.45 13.07.2010
3606
3607 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
3608 Спасибо Laurence Rowe.
3609
3610 *) Исправление: ответ SSI модуля мог передаваться не полностью после
3611 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
3612 Спасибо Максиму Дунину.
3613
3614 *) Исправление: директива listen не поддерживала параметр setfib=0.
3615
3616
3617 Изменения в nginx 0.8.44 05.07.2010
3618
3619 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
3620 заголовке которых есть строка "Set-Cookie".
3621
3622 *) Добавление: директива listen поддерживает параметр setfib.
3623 Спасибо Андрею Филонову.
3624
3625 *) Исправление: директива sub_filter могла изменять регистр букв при
3626 частичном совпадении.
3627
3628 *) Исправление: совместимость с HP/UX.
3629
3630 *) Исправление: совместимость с компилятором AIX xlC_r.
3631
3632 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
3633 запросы.
3634 Спасибо Miroslaw Jaworski.
3635
3636
3637 Изменения в nginx 0.8.43 30.06.2010
3638
3639 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
3640
3641 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
3642 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
3643 0.8.42.
3644
3645 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
3646 переконфигурации.
3647 Спасибо Максиму Дунину.
3648
3649 *) Исправление: переменную $uid_set можно использовать на любой стадии
3650 обработки запроса.
3651
3652
3653 Изменения в nginx 0.8.42 21.06.2010
3654
3655 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
3656 выражениями, если запрос полностью совпал с location'ом, заданным
3657 строкой префикса. Предыдущее поведение появилось в 0.7.1.
3658
3659 *) Добавление: модуль ngx_http_scgi_module.
3660 Спасибо Manlio Perillo.
3661
3662 *) Добавление: в директиве return можно добавлять текст ответа.
3663
3664
3665 Изменения в nginx 0.8.41 15.06.2010
3666
3667 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
3668 при запросе файла с неверной кодировкой UTF-8.
3669
3670 *) Изменение: теперь nginx разрешает использовать пробелы в строке
3671 запроса.
3672
3673 *) Исправление: директива proxy_redirect неправильно изменяла строку
3674 "Refresh" в заголовке ответа бэкенда.
3675 Спасибо Андрею Андрееву и Максиму Согину.
3676
3677 *) Исправление: nginx не поддерживал путь без имени хоста в строке
3678 "Destination" в заголовке запроса.
3679
3680
3681 Изменения в nginx 0.8.40 07.06.2010
3682
3683 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
3684 умолчанию.
3685 Спасибо Jose Antonio Vazquez Gonzalez.
3686
3687 *) Добавление: модуль ngx_http_uwsgi_module.
3688 Спасибо Roberto De Ioris.
3689
3690 *) Добавление: директива fastcgi_param со значением, начинающимся со
3691 строки "HTTP_", изменяет строку заголовка в запросе клиента.
3692
3693 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3694 заголовке запроса клиента передавались FastCGI-серверу при
3695 кэшировании.
3696
3697 *) Исправление: listen unix domain сокет нельзя было изменить во время
3698 переконфигурации.
3699 Спасибо Максиму Дунину.
3700
3701
3702 Изменения в nginx 0.8.39 31.05.2010
3703
3704 *) Исправление: наследуемая директива alias неправильно работала во
3705 вложенном location'е.
3706
3707 *) Исправление: в комбинации директив alias с переменными и try_files;
3708
3709 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
3710 время обновления без перерыва.
3711 Спасибо Максиму Дунину.
3712
3713
3714 Изменения в nginx 0.8.38 24.05.2010
3715
3716 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
3717
3718 *) Добавление: теперь при использовании переменной $scheme в директиве
3719 rewrite автоматически делается редирект.
3720 Спасибо Piotr Sikora.
3721
3722 *) Исправление: теперь задержки в директиве limit_req соответствует
3723 описанному алгоритму.
3724 Спасибо Максиму Дунину.
3725
3726 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
3727 перловом модулях.
3728
3729
3730 Изменения в nginx 0.8.37 17.05.2010
3731
3732 *) Добавление: модуль ngx_http_split_clients_module.
3733
3734 *) Добавление: директива map поддерживает ключи больше 255 символов.
3735
3736 *) Исправление: nginx игнорировал значения "private" и "no-store" в
3737 строке "Cache-Control" в заголовке ответа бэкенда.
3738
3739 *) Исправление: параметр stub в SSI-директиве include не использовался,
3740 если пустой ответ имел код 200.
3741
3742 *) Исправление: если проксированный или FastCGI запрос внутренне
3743 перенаправлялся в другой проксированный или FastCGI location, то в
3744 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3745 0.8.33.
3746 Спасибо Yichun Zhang.
3747
3748 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
3749 таймаута.
3750 Спасибо Alan Batie.
3751
3752
3753 Изменения в nginx 0.8.36 22.04.2010
3754
3755 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
3756 методы DELETE, COPY и MOVE для симлинков.
3757
3758 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
3759 основном запросе значения переменных $query_string, $arg_... и им
3760 подобных.
3761
3762 *) Исправление: значение переменной повторно экранировалось после
3763 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
3764
3765 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
3766 Спасибо Vicente Aguilar и Максиму Дунину.
3767
3768 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
3769 Спасибо Максиму Дунину.
3770
3771 *) Исправление: nginx не собирался с параметром --without-http-cache;
3772 ошибка появилась в 0.8.35.
3773
3774
3775 Изменения в nginx 0.8.35 01.04.2010
3776
3777 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
3778
3779 *) Добавление: директива chunked_transfer_encoding.
3780
3781 *) Исправление: символ "&" при копировании в аргументы в правилах
3782 rewrite не экранировался.
3783
3784 *) Исправление: nginx мог завершаться аварийно во время обработки
3785 сигнала или при использовании директивы timer_resolution на
3786 платформах, не поддерживающих методы kqueue или eventport.
3787 Спасибо George Xie и Максиму Дунину.
3788
3789 *) Исправление: если временные файлы и постоянное место хранения
3790 располагались на разных файловых системах, то у постоянных файлов
3791 время изменения было неверным.
3792 Спасибо Максиму Дунину.
3793
3794 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
3795 "memcached sent invalid trailer".
3796 Спасибо Максиму Дунину.
3797
3798 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
3799 текстов.
3800 Спасибо Максиму Дунину.
3801
3802 *) Исправление: в рабочем процессе происходил segmentation fault, если
3803 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
3804 появилась в 0.8.34.
3805 Спасибо Максиму Дунину.
3806
3807
3808 Изменения в nginx 0.8.34 03.03.2010
3809
3810 *) Исправление: nginx не поддерживал все шифры, используемые в
3811 клиентских сертификатах.
3812 Спасибо Иннокентию Еникееву.
3813
3814 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
3815 ответом было много вывода в stderr.
3816
3817 *) Исправление: nginx не поддерживал HTTPS-рефереры.
3818
3819 *) Исправление: nginx/Windows мог не находить файлы, если путь в
3820 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
3821
3822 *) Исправление: переменная $date_local выдавала неверное время, если
3823 использовался формат "%s".
3824 Спасибо Максиму Дунину.
3825
3826 *) Исправление: если ssl_session_cache не был установлен или установлен
3827 в none, то при проверке клиентского сертификаты могла происходить
3828 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
3829
3830 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
3831 диапазон включал в себя одну и более сетей размером /16 и не
3832 начинался на границе сети размером /16.
3833
3834 *) Исправление: блок, используемый в параметре stub в SSI-директиве
3835 include, выводился с MIME-типом "text/plain".
3836
3837 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
3838
3839
3840 Изменения в nginx 0.8.33 01.02.2010
3841
3842 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
3843 Спасибо Dan Crowley, Core Security Technologies.
3844
3845 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
3846 Спасибо Dan Crowley, Core Security Technologies.
3847
3848 *) Изменение: теперь keepalive соединения после запросов POST не
3849 запрещаются для MSIE 7.0+.
3850 Спасибо Adam Lounds.
3851
3852 *) Изменение: теперь keepalive соединения запрещены для Safari.
3853 Спасибо Joshua Sierles.
3854
3855 *) Исправление: если проксированный или FastCGI запрос внутренне
3856 перенаправлялся в другой проксированный или FastCGI location, то
3857 переменная $upstream_response_time могла иметь ненормально большое
3858 значение; ошибка появилась в 0.8.7.
3859
3860 *) Исправление: в рабочем процессе мог произойти segmentation fault при
3861 отбрасывания тела запроса; ошибка появилась в 0.8.11.
3862
3863
3864 Изменения в nginx 0.8.32 11.01.2010
3865
3866 *) Исправление: ошибки при использовании кодировки UTF-8 в
3867 ngx_http_autoindex_module.
3868 Спасибо Максиму Дунину.
3869
3870 *) Исправление: именованные выделения в регулярных выражениях работали
3871 только для двух переменных.
3872 Спасибо Максиму Дунину.
3873
3874 *) Исправление: теперь в строке заголовка запроса "Host" используется
3875 имя "localhost", если в директиве auth_http указан unix domain сокет.
3876 Спасибо Максиму Дунину.
3877
3878 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
3879 ответов.
3880 Спасибо Julian Reich.
3881
3882 *) Исправление: если директива "expires modified" выставляла дату в
3883 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
3884 отрицательное число.
3885 Спасибо Алексею Капранову.
3886
3887
3888 Изменения в nginx 0.8.31 23.12.2009
3889
3890 *) Добавление: теперь директива error_page может перенаправлять ответы
3891 со статусом 301 и 302.
3892
3893 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
3894 $geoip_longitude.
3895 Спасибо Arvind Sundararajan.
3896
3897 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
3898 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
3899
3900 *) Исправление: nginx закрывал соединение при запросе закэшированного
3901 ответа с пустым телом.
3902 Спасибо Piotr Sikora.
3903
3904 *) Исправление: nginx мог не собираться gcc 4.x при использовании
3905 оптимизации -O2 и выше.
3906 Спасибо Максиму Дунину и Денису Латыпову.
3907
3908 *) Исправление: регулярные выражения в location всегда тестировались с
3909 учётом регистра; ошибка появилась в 0.8.25.
3910
3911 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
3912 проксируемого запроса была строка "If-None-Match".
3913 Спасибо Tim Dettrick и David Kostal.
3914
3915 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
3916 перезаписи уже существующего файла.
3917
3918
3919 Изменения в nginx 0.8.30 15.12.2009
3920
3921 *) Изменение: теперь по умолчанию размер буфера директивы
3922 large_client_header_buffers равен 8K.
3923 Спасибо Andrew Cholakian.
3924
3925 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
3926
3927 *) Исправление: nginx/Windows пытался дважды переименовать временный
3928 файл при перезаписи уже существующего файла.
3929
3930 *) Исправление: ошибки double free or corruption, возникающей, если имя
3931 хоста не было найдено; ошибка появилась в 0.8.22.
3932 Спасибо Константину Свисту.
3933
3934 *) Исправление: в использовании libatomic на некоторых платформах.
3935 Спасибо W-Mark Kubacki.
3936
3937
3938 Изменения в nginx 0.8.29 30.11.2009
3939
3940 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
3941 ответа "009".
3942
3943 *) Добавление: директивы addition_types, charset_types, gzip_types,
3944 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
3945
3946 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
3947 Спасибо W-Mark Kubacki.
3948
3949 *) Добавление: параметр --with-libatomic[=DIR] в configure.
3950 Спасибо W-Mark Kubacki.
3951
3952 *) Исправление: listen unix domain сокет имели ограниченные права
3953 доступа.
3954
3955 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
3956 обрабатывались.
3957
3958 *) Исправление: именованные выделения в регулярных выражениях, заданные
3959 как "?P<...>", не работали в директиве server_name.
3960 Спасибо Максиму Дунину.
3961
3962
3963 Изменения в nginx 0.8.28 23.11.2009
3964
3965 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
3966 появилась в 0.8.25.
3967
3968
3969 Изменения в nginx 0.8.27 17.11.2009
3970
3971 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
3972 появилась в 0.8.25.
3973
3974
3975 Изменения в nginx 0.8.26 16.11.2009
3976
3977 *) Исправление: ошибки при использовании выделений в директиве rewrite;
3978 ошибка появилась в 0.8.25.
3979
3980 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
3981 появилась в 0.8.25.
3982
3983
3984 Изменения в nginx 0.8.25 16.11.2009
3985
3986 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
3987 не найдена с помощью метода $r->variable().
3988
3989 *) Добавление: модуль ngx_http_degradation_module.
3990
3991 *) Добавление: именованные выделения в регулярных выражениях.
3992
3993 *) Добавление: теперь при использовании переменных в директиве
3994 proxy_pass не требуется задавать URI.
3995
3996 *) Добавление: теперь директива msie_padding работает и для Chrome.
3997
3998 *) Исправление: в рабочем процессе происходил segmentation fault при
3999 недостатке памяти; ошибка появилась в 0.8.18.
4000
4001 *) Исправление: nginx передавал сжатые ответы клиентам, не
4002 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
4003 ошибка появилась в 0.8.16.
4004
4005
4006 Изменения в nginx 0.8.24 11.11.2009
4007
4008 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
4009 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
4010
4011 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4012 появилась в 0.8.23.
4013
4014 *) Исправление: параметр "unix:" в директиве set_real_ip_from
4015 неправильно наследовался с предыдущего уровня.
4016
4017 *) Исправление: в resolver'е при определении пустого имени.
4018
4019
4020 Изменения в nginx 0.8.23 11.11.2009
4021
4022 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
4023 Спасибо Максиму Дунину.
4024
4025 *) Исправление: listen unix domain сокет не наследовался во время
4026 обновления без перерыва.
4027
4028 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
4029 без ещё одной директивы с любым IP-адресом.
4030
4031 *) Исправление: segmentation fault и зацикливания в resolver'е.
4032
4033 *) Исправление: в resolver'е.
4034 Спасибо Артёму Бохану.
4035
4036
4037 Изменения в nginx 0.8.22 03.11.2009
4038
4039 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
4040
4041 *) Добавление: директивы access и deny поддерживают IPv6.
4042
4043 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
4044 заголовках запроса.
4045
4046 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
4047
4048 *) Исправление: nginx не удалял unix domain сокет после тестирования
4049 конфигурации.
4050
4051 *) Исправление: nginx удалял unix domain сокет во время обновления без
4052 перерыва.
4053
4054 *) Исправление: оператор "!-x" не работал.
4055 Спасибо Максиму Дунину.
4056
4057 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4058 использовании limit_rate в HTTPS сервере.
4059 Спасибо Максиму Дунину.
4060
4061 *) Исправление: при записи в лог переменной $limit_rate в рабочем
4062 процессе происходил segmentation fault.
4063 Спасибо Максиму Дунину.
4064
4065 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4066 если внутри блока server не было директивы listen; ошибка появилась в
4067 0.8.21.
4068
4069
4070 Изменения в nginx 0.8.21 26.10.2009
4071
4072 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
4073
4074 *) Добавление: директива listen модуля HTTP поддерживает unix domain
4075 сокеты.
4076 Спасибо Hongli Lai.
4077
4078 *) Добавление: параметр "default_server" в директиве listen.
4079
4080 *) Добавление: теперь параметр "default" не обязателен для установки
4081 параметров listen-сокета.
4082
4083 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
4084 платформах;
4085
4086 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4087
4088
4089 Изменения в nginx 0.8.20 14.10.2009
4090
4091 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4092 "HIGH:!ADH:!MD5".
4093
4094 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
4095 слэш для линков на каталоги; ошибка появилась в 0.7.15.
4096
4097 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
4098 --error-log-path; ошибка появилась в 0.7.53.
4099
4100 *) Исправление: nginx не считал запятую разделителем в строке
4101 "Cache-Control" в заголовке ответа бэкенда.
4102
4103 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
4104 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
4105 не имел достаточно прав для работы с каталогами верхнего уровня.
4106
4107 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
4108 FastCGI-сервера не скрывались при кэшировании, если не использовались
4109 директивы fastcgi_hide_header с любыми параметрами.
4110
4111 *) Исправление: nginx неверно считал размер кэша на диске.
4112
4113
4114 Изменения в nginx 0.8.19 06.10.2009
4115
4116 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
4117
4118 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4119 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
4120
4121 *) Исправление: директива limit_req не работала; ошибка появилась в
4122 0.8.18.
4123
4124
4125 Изменения в nginx 0.8.18 06.10.2009
4126
4127 *) Добавление: директива read_ahead.
4128
4129 *) Добавление: теперь можно использовать несколько директив
4130 perl_modules.
4131
4132 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
4133
4134 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
4135 bucket.
4136 Спасибо Максиму Дунину.
4137
4138 *) Исправление: nginx не работал на Linux/sparc.
4139 Спасибо Marcus Ramberg.
4140
4141 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
4142 ответе на запрос MKCOL.
4143 Спасибо Xie Zhenye.
4144
4145 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
4146 появилась в 0.8.11.
4147
4148 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4149
4150
4151 Изменения в nginx 0.8.17 28.09.2009
4152
4153 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
4154 в заголовке запроса.
4155
4156 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
4157
4158 *) Добавление: переменная $ssl_session_id.
4159
4160 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4161
4162
4163 Изменения в nginx 0.8.16 22.09.2009
4164
4165 *) Добавление: директива image_filter_transparency.
4166
4167 *) Исправление: директива "addition_types" была неверно названа
4168 "addtion_types".
4169
4170 *) Исправление: порчи кэша resolver'а.
4171 Спасибо Matthew Dempsky.
4172
4173 *) Исправление: утечки памяти в resolver'е.
4174 Спасибо Matthew Dempsky.
4175
4176 *) Исправление: неверная строка запроса в переменной $request
4177 записывалась в access_log только при использовании error_log на
4178 уровне info или debug.
4179
4180 *) Исправление: в поддержке альфа-канала PNG в модуле
4181 ngx_http_image_filter_module.
4182
4183 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
4184 заголовок ответа, если обе директивы gzip_static и gzip_vary были
4185 включены.
4186
4187 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
4188 nginx/Windows.
4189
4190 *) Исправление: ошибки при использовании post_action; ошибка появилась в
4191 0.8.11.
4192 Спасибо Игорю Артемьеву.
4193
4194
4195 Изменения в nginx 0.8.15 14.09.2009
4196
4197 *) Безопасность: при обработке специально созданного запроса в рабочем
4198 процессе мог произойти segmentation fault.
4199 Спасибо Chris Ries.
4200
4201 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
4202 .domain-some.tld, то имя .sub.domain.tld попадало под маску
4203 .domain.tld.
4204
4205 *) Исправление: в поддержке прозрачности в модуле
4206 ngx_http_image_filter_module.
4207
4208 *) Исправление: в файловом AIO.
4209
4210 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
4211 появилась в 0.8.11.
4212
4213 *) Исправление: ошибки при использовании встроенного перла; ошибка
4214 появилась в 0.8.11.
4215
4216
4217 Изменения в nginx 0.8.14 07.09.2009
4218
4219 *) Исправление: устаревший закэшированный запрос мог залипнуть в
4220 состоянии "UPDATING".
4221
4222 *) Исправление: при использовании error_log на уровне info или debug в
4223 рабочем процессе мог произойти segmentation fault.
4224 Спасибо Сергею Боченкову.
4225
4226 *) Исправление: ошибки при использовании встроенного перла; ошибка
4227 появилась в 0.8.11.
4228
4229 *) Исправление: директива error_page не перенаправляла ошибку 413;
4230 ошибка появилась в 0.6.10.
4231
4232
4233 Изменения в nginx 0.8.13 31.08.2009
4234
4235 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
4236
4237 *) Исправление: nginx не собирался без параметра --with-file-aio на
4238 FreeBSD; ошибка появилась в 0.8.12.
4239
4240
4241 Изменения в nginx 0.8.12 31.08.2009
4242
4243 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
4244
4245 *) Исправление: ошибки при использовании try_files; ошибка появилась в
4246 0.8.11.
4247
4248 *) Исправление: ошибки при использовании memcached; ошибка появилась в
4249 0.8.11.
4250
4251
4252 Изменения в nginx 0.8.11 28.08.2009
4253
4254 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
4255 для MSIE 6.0 SV1.
4256
4257 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
4258
4259 *) Добавление: директива directio_alignment.
4260
4261
4262 Изменения в nginx 0.8.10 24.08.2009
4263
4264 *) Исправление: утечек памяти при использовании базы GeoIP City.
4265
4266 *) Исправление: ошибки при копировании временных файлов в постоянное
4267 место хранения; ошибка появилась в 0.8.9.
4268
4269
4270 Изменения в nginx 0.8.9 17.08.2009
4271
4272 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
4273 процесс; это должно улучшить обработку больших кэшей.
4274
4275 *) Добавление: теперь временные файлы и постоянное место хранения могут
4276 располагаться на разных файловых системах.
4277
4278
4279 Изменения в nginx 0.8.8 10.08.2009
4280
4281 *) Исправление: в обработке заголовков ответа, разделённых в
4282 FastCGI-записях.
4283
4284 *) Исправление: если запрос обрабатывался в двух проксированных или
4285 FastCGI location'ах и в первом из них использовалось кэширование, то
4286 в рабочем процессе происходил segmentation fault; ошибка появилась в
4287 0.8.7.
4288
4289
4290 Изменения в nginx 0.8.7 27.07.2009
4291
4292 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
4293
4294 *) Изменение: параметр ask директивы ssl_verify_client изменён на
4295 параметр optional и теперь он проверяет клиентский сертификат, если
4296 он был предложен.
4297 Спасибо Brice Figureau.
4298
4299 *) Добавление: переменная $ssl_client_verify.
4300 Спасибо Brice Figureau.
4301
4302 *) Добавление: директива ssl_crl.
4303 Спасибо Brice Figureau.
4304
4305 *) Добавление: параметр proxy директивы geo.
4306
4307 *) Добавление: директива image_filter поддерживает переменные для
4308 задания размеров.
4309
4310 *) Исправление: использование переменной $ssl_client_cert портило
4311 память; ошибка появилась в 0.7.7.
4312 Спасибо Сергею Журавлёву.
4313
4314 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
4315 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
4316 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
4317 Спасибо Максиму Дунину.
4318
4319 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
4320 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
4321 Спасибо Максиму Дунину.
4322
4323 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
4324 ответы в подзапросах; ошибка появилась в 0.8.5.
4325
4326
4327 Изменения в nginx 0.8.6 20.07.2009
4328
4329 *) Добавление: модуль ngx_http_geoip_module.
4330
4331 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
4332 document" для правильного документа.
4333 Спасибо Kuramoto Eiji.
4334
4335 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
4336 location'ов, заданных регулярным выражением, теперь всегда делается
4337 сравнение без учёта регистра символов.
4338
4339 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
4340 Спасибо Hugo Leisink.
4341
4342 *) Исправление: имя файла указанного в --conf-path игнорировалось при
4343 установке; ошибка появилась в 0.6.6.
4344 Спасибо Максиму Дунину.
4345
4346
4347 Изменения в nginx 0.8.5 13.07.2009
4348
4349 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
4350
4351 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
4352 для неверных имени/пароля возвращалась 500-ая ошибка.
4353
4354 *) Исправление: ответы модуля ngx_http_perl_module не работали в
4355 подзапросах.
4356
4357 *) Исправление: в модуле ngx_http_limit_req_module.
4358 Спасибо Максиму Дунину.
4359
4360
4361 Изменения в nginx 0.8.4 22.06.2009
4362
4363 *) Исправление: nginx не собирался с параметром --without-http-cache;
4364 ошибка появилась в 0.8.3.
4365
4366
4367 Изменения в nginx 0.8.3 19.06.2009
4368
4369 *) Добавление: переменная $upstream_cache_status.
4370
4371 *) Исправление: nginx не собирался на MacOSX 10.6.
4372
4373 *) Исправление: nginx не собирался с параметром --without-http-cache;
4374 ошибка появилась в 0.8.2.
4375
4376 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
4377 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
4378 в рабочем процессе происходил segmentation fault.
4379 Спасибо Евгению Мычло.
4380
4381
4382 Изменения в nginx 0.8.2 15.06.2009
4383
4384 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
4385 на старте.
4386
4387 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
4388 долго; ошибка появилась в 0.7.4.
4389
4390
4391 Изменения в nginx 0.8.1 08.06.2009
4392
4393 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
4394 fastcgi_cache_use_stale.
4395
4396 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4397 заголовке запроса клиента передавались бэкенду при кэшировании, если
4398 не использовалась директива proxy_set_header с любыми параметрами.
4399
4400 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
4401 не скрывались при кэшировании, если не использовались директивы
4402 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
4403
4404 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
4405 GIF87a.
4406 Спасибо Денису Ильиных.
4407
4408 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
4409 появилась в 0.7.56.
4410
4411
4412 Изменения в nginx 0.8.0 02.06.2009
4413
4414 *) Добавление: директива keepalive_requests.
4415
4416 *) Добавление: директива limit_rate_after.
4417 Спасибо Ivan Debnar.
4418
4419 *) Исправление: XSLT-фильтр не работал в подзапросах.
4420
4421 *) Исправление: обработке относительных путей в nginx/Windows.
4422
4423 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
4424 fastcgi_cache в nginx/Windows.
4425
4426 *) Исправление: в обработке ошибок выделения памяти.
4427 Спасибо Максиму Дунину и Кириллу Коринскому.
4428
4429
4430 Изменения в nginx 0.7.59 25.05.2009
4431
4432 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
4433
4434 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
4435 Спасибо Максиму Дунину.
4436
4437 *) Исправление: при использовании переменной $request_body в рабочем
4438 процессе происходил segmentation fault, если в запросе не было тела;
4439 ошибка появилась в 0.7.58.
4440
4441 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
4442 ошибка появилась в 0.7.56.
4443
4444 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
4445 обрабатывались SSI-, charset- и gzip-фильтрами.
4446
4447 *) Исправление: директива charset не ставила кодировку для ответов
4448 модуля ngx_http_gzip_static_module.
4449
4450
4451 Изменения в nginx 0.7.58 18.05.2009
4452
4453 *) Добавление: директива listen почтового прокси-сервера поддерживает
4454 IPv6.
4455
4456 *) Добавление: директива image_filter_jpeg_quality.
4457
4458 *) Добавление: директива client_body_in_single_buffer.
4459
4460 *) Добавление: переменная $request_body.
4461
4462 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
4463 файлов, содержащих символ ":".
4464
4465 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
4466 0.7.53.
4467 Спасибо Денису Латыпову.
4468
4469
4470 Изменения в nginx 0.7.57 12.05.2009
4471
4472 *) Исправление: при перенаправлении ошибок модуля
4473 ngx_http_image_filter_module в именованный location в рабочем
4474 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
4475
4476
4477 Изменения в nginx 0.7.56 11.05.2009
4478
4479 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
4480 HTTP.
4481
4482 *) Исправление: в модуле ngx_http_image_filter_module.
4483
4484
4485 Изменения в nginx 0.7.55 06.05.2009
4486
4487 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
4488 fastcgi_cache_use_stale не работали.
4489
4490 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
4491 заголовка.
4492
4493 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
4494 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
4495
4496 *) Исправление: при использовании директивы debug_connection в рабочем
4497 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
4498
4499 *) Исправление: в сборке модуля ngx_http_image_filter_module.
4500
4501 *) Исправление: файлы больше 2G не передавались с использованием
4502 $r->sendfile.
4503 Спасибо Максиму Дунину.
4504
4505
4506 Изменения в nginx 0.7.54 01.05.2009
4507
4508 *) Добавление: модуль ngx_http_image_filter_module.
4509
4510 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
4511
4512 *) Исправление: при использовании переменных "open_file_cache_errors on"
4513 в рабочем процессе мог произойти segmentation fault; ошибка появилась
4514 в 0.7.53.
4515
4516 *) Исправление: директива "port_in_redirect off" не работала; ошибка
4517 появилась в 0.7.39.
4518
4519 *) Исправление: улучшение обработки ошибок метода select.
4520
4521 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
4522
4523 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
4524 ошибка появилась в 0.7.53.
4525
4526
4527 Изменения в nginx 0.7.53 27.04.2009
4528
4529 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
4530 самого начала работы.
4531
4532 *) Добавление: теперь ошибки и предупреждения при старте записываются в
4533 error_log и выводятся на stderr.
4534
4535 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
4536 как префикс каталог, в котором он был запущен.
4537
4538 *) Добавление: ключ -p.
4539
4540 *) Добавление: ключ -s на Unix-платформах.
4541
4542 *) Добавление: ключи -? и -h.
4543 Спасибо Jerome Loyet.
4544
4545 *) Добавление: теперь ключи можно задавать в сжатой форме.
4546
4547 *) Исправление: nginx/Windows не работал, если файл конфигурации был
4548 задан ключом -c.
4549
4550 *) Исправление: при использовании директив proxy_store, fastcgi_store,
4551 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
4552 Спасибо Максиму Дунину.
4553
4554 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
4555 почтового прокси-сервера передавалось неверное значение; ошибка
4556 появилась в 0.7.34.
4557 Спасибо Simon Lecaille.
4558
4559 *) Исправление: при логгировании на Linux не писались текстовые описания
4560 системных ошибок; ошибка появилась в 0.7.45.
4561
4562 *) Исправление: директива fastcgi_cache_min_uses не работала.
4563 Спасибо Андрею Воробьёву.
4564
4565
4566 Изменения в nginx 0.7.52 20.04.2009
4567
4568 *) Добавление: первая бинарная версия под Windows.
4569
4570 *) Исправление: корректная обработка метода HEAD при кэшировании.
4571
4572 *) Исправление: корректная обработка строк "If-Modified-Since",
4573 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
4574
4575 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
4576 заголовке ответа для закэшированных ответов.
4577
4578 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
4579 perl поддерживал потоки, то при выходе основного процесса могла
4580 выдаваться ошибка "panic: MUTEX_LOCK".
4581
4582 *) Исправление: nginx не собирался с параметром --without-http-cache;
4583 ошибка появилась в 0.7.48.
4584
4585 *) Исправление: nginx не собирался на платформах, отличных от i386,
4586 amd64, sparc и ppc; ошибка появилась в 0.7.42.
4587
4588
4589 Изменения в nginx 0.7.51 12.04.2009
4590
4591 *) Добавление: директива try_files поддерживает код ответа в последнем
4592 параметре.
4593
4594 *) Добавление: теперь в директиве return можно использовать любой код
4595 ответа.
4596
4597 *) Исправление: директива error_page делала внешний редирект без строки
4598 запроса; ошибка появилась в 0.7.44.
4599
4600 *) Исправление: если сервера слушали на нескольких явно описанных
4601 адресах, то виртуальные сервера могли не работать; ошибка появилась в
4602 0.7.39.
4603
4604
4605 Изменения в nginx 0.7.50 06.04.2009
4606
4607 *) Исправление: переменные $arg_... не работали; ошибка появилась в
4608 0.7.49.
4609
4610
4611 Изменения в nginx 0.7.49 06.04.2009
4612
4613 *) Исправление: при использовании переменных $arg_... в рабочем процессе
4614 мог произойти segmentation fault; ошибка появилась в 0.7.48.
4615
4616
4617 Изменения в nginx 0.7.48 06.04.2009
4618
4619 *) Добавление: директива proxy_cache_key.
4620
4621 *) Исправление: теперь nginx учитывает при кэшировании строки
4622 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
4623 бэкенда.
4624
4625 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
4626
4627 *) Исправление: директива fastcgi_cache_key не наследовалась.
4628
4629 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
4630 Спасибо Максиму Дунину.
4631
4632 *) Исправление: nginx не собирался с библиотекой uclibc.
4633 Спасибо Timothy Redaelli.
4634
4635 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
4636 в 0.7.46.
4637
4638
4639 Изменения в nginx 0.7.47 01.04.2009
4640
4641 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
4642 ошибка появилась в 0.7.46.
4643
4644 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
4645
4646 *) Исправление: если использовался параметр max_size, то cache manager
4647 мог удалить весь кэш; ошибка появилась в 0.7.46.
4648
4649 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
4650 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
4651 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
4652 в 0.7.46.
4653
4654 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4655 перенаправлении запроса проксированному или FastCGI-серверу с помощью
4656 error_page или try_files; ошибка появилась в 0.7.44.
4657
4658
4659 Изменения в nginx 0.7.46 30.03.2009
4660
4661 *) Исправление: архив предыдущего релиза был неверным.
4662
4663
4664 Изменения в nginx 0.7.45 30.03.2009
4665
4666 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
4667 задавать на разных уровнях.
4668
4669 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
4670
4671 *) Добавление: параметр max_size в директиве proxy_cache_path.
4672
4673 *) Добавление: предварительная поддержка кэширования в модуле
4674 ngx_http_fastcgi_module.
4675
4676 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
4677 указываются названия директивы и зоны.
4678
4679 *) Исправление: директива "add_header last-modified ''" не удаляла в
4680 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
4681
4682 *) Исправление: в директиве auth_basic_user_file не работал
4683 относительный путь, заданный строкой без переменных; ошибка появилась
4684 в 0.7.44.
4685 Спасибо Jerome Loyet.
4686
4687 *) Исправление: в директиве alias, заданной переменными без ссылок на
4688 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
4689
4690
4691 Изменения в nginx 0.7.44 23.03.2009
4692
4693 *) Добавление: предварительная поддержка кэширования в модуле
4694 ngx_http_proxy_module.
4695
4696 *) Добавление: параметр --with-pcre в configure.
4697
4698 *) Добавление: теперь директива try_files может быть использована на
4699 уровне server.
4700
4701 *) Исправление: директива try_files неправильно обрабатывала строку
4702 запроса в последнем параметре.
4703
4704 *) Исправление: директива try_files могла неверно тестировать каталоги.
4705
4706 *) Исправление: если для пары адрес:порт описан только один сервер, то
4707 выделения в регулярных выражениях в директиве server_name не
4708 работали.
4709
4710
4711 Изменения в nginx 0.7.43 18.03.2009
4712
4713 *) Исправление: запрос обрабатывался неверно, если директива root
4714 использовала переменные; ошибка появилась в 0.7.42.
4715
4716 *) Исправление: если сервер слушал на адресах типа "*", то значение
4717 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
4718
4719
4720 Изменения в nginx 0.7.42 16.03.2009
4721
4722 *) Изменение: ошибка "Invalid argument", возвращаемая
4723 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
4724
4725 *) Изменение: при отсутствии файла, указанного в директиве
4726 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
4727
4728 *) Добавление: директива auth_basic_user_file поддерживает переменные.
4729 Спасибо Кириллу Коринскому.
4730
4731 *) Добавление: директива listen поддерживает параметр ipv6only.
4732 Спасибо Zhang Hua.
4733
4734 *) Исправление: в директиве alias со ссылками на выделения в регулярных
4735 выражениях; ошибка появилась в 0.7.40.
4736
4737 *) Исправление: совместимость с Tru64 UNIX.
4738 Спасибо Dustin Marquess.
4739
4740 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
4741 в 0.7.41.
4742
4743
4744 Изменения в nginx 0.7.41 11.03.2009
4745
4746 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4747 если в server_name или location были выделения в регулярных
4748 выражениях; ошибка появилась в 0.7.40.
4749 Спасибо Владимиру Сопоту.
4750
4751
4752 Изменения в nginx 0.7.40 09.03.2009
4753
4754 *) Добавление: директива location поддерживает выделения в регулярных
4755 выражениях.
4756
4757 *) Добавление: директиву alias с ссылками на выделения в регулярных
4758 выражениях можно использовать внутри location'а, заданного регулярным
4759 выражением с выделениями.
4760
4761 *) Добавление: директива server_name поддерживает выделения в регулярных
4762 выражениях.
4763
4764 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
4765 слэш для каталогов на файловой системе XFS; ошибка появилась в
4766 0.7.15.
4767 Спасибо Дмитрию Кузьменко.
4768
4769
4770 Изменения в nginx 0.7.39 02.03.2009
4771
4772 *) Исправление: при включённом сжатии большие ответы с использованием
4773 SSI могли зависать; ошибка появилась в 0.7.28.
4774 Спасибо Артёму Бохану.
4775
4776 *) Исправление: при использовании коротких статических вариантов в
4777 директиве try_files в рабочем процессе мог произойти segmentation
4778 fault.
4779
4780
4781 Изменения в nginx 0.7.38 23.02.2009
4782
4783 *) Добавление: логгирование ошибок аутентификации.
4784
4785 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
4786 игнорировались после нечётного числа пустых строк.
4787 Спасибо Александру Загребину.
4788
4789 *) Исправление: при использовании длинного пути в unix domain сокете в
4790 главном процессе происходил segmentation fault; ошибка появилась в
4791 0.7.36.
4792
4793
4794 Изменения в nginx 0.7.37 21.02.2009
4795
4796 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
4797 появилась в 0.7.36.
4798
4799
4800 Изменения в nginx 0.7.36 21.02.2009
4801
4802 *) Добавление: предварительная поддержка IPv6; директива listen модуля
4803 HTTP поддерживает IPv6.
4804
4805 *) Исправление: переменная $ancient_browser не работала для браузеров,
4806 заданных директивами modern_browser.
4807
4808
4809 Изменения в nginx 0.7.35 16.02.2009
4810
4811 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
4812 асимметричных шифров.
4813 Спасибо Marcin Gozdalik.
4814
4815 *) Исправление: директива try_files выставляла MIME-type, исходя из
4816 расширения первоначального запроса.
4817
4818 *) Исправление: в директивах server_name, valid_referers и map
4819 неправильно обрабатывались имена вида "*domain.tld", если
4820 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
4821 ошибка появилась в 0.7.9.
4822
4823
4824 Изменения в nginx 0.7.34 10.02.2009
4825
4826 *) Добавление: параметр off в директиве if_modified_since.
4827
4828 *) Добавление: теперь после команды XCLIENT nginx посылает команду
4829 HELO/EHLO.
4830 Спасибо Максиму Дунину.
4831
4832 *) Добавление: поддержка Microsoft-специфичного режима
4833 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
4834 Спасибо Максиму Дунину.
4835
4836 *) Исправление: в директиве rewrite, возвращающей редирект, старые
4837 аргументы присоединялись к новым через символ "?" вместо "&";
4838 ошибка появилась в 0.1.18.
4839 Спасибо Максиму Дунину.
4840
4841 *) Исправление: nginx не собирался на AIX.
4842
4843
4844 Изменения в nginx 0.7.33 02.02.2009
4845
4846 *) Исправление: если на запрос с телом возвращался редирект, то ответ
4847 мог быть двойным при использовании методов epoll или rtsig.
4848 Спасибо Eden Li.
4849
4850 *) Исправление: для некоторых типов редиректов в переменной
4851 $sent_http_location было пустое значение.
4852
4853 *) Исправление: при использовании директивы resolver в SMTP
4854 прокси-сервере в рабочем процессе мог произойти segmentation fault.
4855
4856
4857 Изменения в nginx 0.7.32 26.01.2009
4858
4859 *) Добавление: теперь в директиве try_files можно явно указать проверку
4860 каталога.
4861
4862 *) Исправление: fastcgi_store не всегда сохранял файлы.
4863
4864 *) Исправление: в гео-диапазонах.
4865
4866 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
4867 если nginx был собран без отладки.
4868 Спасибо Андрею Квасову.
4869
4870
4871 Изменения в nginx 0.7.31 19.01.2009
4872
4873 *) Изменение: теперь директива try_files проверяет только файлы,
4874 игнорируя каталоги.
4875
4876 *) Добавление: директива fastcgi_split_path_info.
4877
4878 *) Исправления в поддержке строки "Expect" в заголовке запроса.
4879
4880 *) Исправления в гео-диапазонах.
4881
4882 *) Исправление: при отсутствии ответа ngx_http_memcached_module
4883 возвращал в теле ответа строку "END" вместо 404-ой страницы по
4884 умолчанию; ошибка появилась в 0.7.18.
4885 Спасибо Максиму Дунину.
4886
4887 *) Исправление: при проксировании SMTP nginx выдавал сообщение
4888 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
4889 Спасибо Максиму Дунину.
4890
4891
4892 Изменения в nginx 0.7.30 24.12.2008
4893
4894 *) Исправление: в рабочем процессе происходил segmentation fault, если в
4895 директивах fastcgi_pass или proxy_pass использовались переменные и
4896 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
4897
4898
4899 Изменения в nginx 0.7.29 24.12.2008
4900
4901 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
4902 переменные при использовании unix domain сокетов.
4903
4904 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
4905
4906 *) Исправление: ответ "100 Continue" выдавался для запросов версии
4907 HTTP/1.0;
4908 Спасибо Максиму Дунину.
4909
4910 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
4911 под Cygwin.
4912
4913
4914 Изменения в nginx 0.7.28 22.12.2008
4915
4916 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
4917
4918 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
4919 с 4 4k/8k на 32 4k или 16 8k.
4920
4921
4922 Изменения в nginx 0.7.27 15.12.2008
4923
4924 *) Добавление: директива try_files.
4925
4926 *) Добавление: директива fastcgi_pass поддерживает переменные.
4927
4928 *) Добавление: теперь директива geo может брать адрес из переменной.
4929 Спасибо Андрею Нигматулину.
4930
4931 *) Добавление: теперь модификатор location'а можно указывать без пробела
4932 перед названием.
4933
4934 *) Добавление: переменная $upstream_response_length.
4935
4936 *) Исправление: теперь директива add_header не добавляет пустое
4937 значение.
4938
4939 *) Исправление: при запросе файла нулевой длины nginx закрывал
4940 соединение, ничего не передав; ошибка появилась в 0.7.25.
4941
4942 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
4943 каталог.
4944
4945 *) Исправление: если в сервере не был описан ни один именованный
4946 location, но такой location использовался в директиве error_page, то
4947 в рабочем процессе происходил segmentation fault.
4948 Спасибо Сергею Боченкову.
4949
4950
4951 Изменения в nginx 0.7.26 08.12.2008
4952
4953 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
4954
4955
4956 Изменения в nginx 0.7.25 08.12.2008
4957
4958 *) Изменение: в обработке подзапросов.
4959
4960 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
4961 заголовке запроса.
4962
4963 *) Исправление: теперь директивы limit_req и limit_conn указывают
4964 причину запрета запроса.
4965
4966 *) Исправление: в параметре delete директивы geo.
4967
4968
4969 Изменения в nginx 0.7.24 01.12.2008
4970
4971 *) Добавление: директива if_modified_since.
4972
4973 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
4974 ответом сервер передавал много сообщений в stderr.
4975
4976 *) Исправление: переменные "$cookie_..." не работали в SSI and в
4977 перловом модуле.
4978
4979
4980 Изменения в nginx 0.7.23 27.11.2008
4981
4982 *) Добавление: параметры delete и ranges в директиве geo.
4983
4984 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
4985
4986 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
4987
4988
4989 Изменения в nginx 0.7.22 20.11.2008
4990
4991 *) Добавление: параметр none в директиве smtp_auth.
4992 Спасибо Максиму Дунину.
4993
4994 *) Добавление: переменные "$cookie_...".
4995
4996 *) Исправление: директива directio не работала с файловой системой XFS.
4997
4998 *) Исправление: resolver не понимал большие DNS-ответы.
4999 Спасибо Zyb.
5000
5001
5002 Изменения в nginx 0.7.21 11.11.2008
5003
5004 *) Изменения в модуле ngx_http_limit_req_module.
5005
5006 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
5007 Спасибо Денису Латыпову.
5008
5009 *) Изменение: совместимость с glibc 2.3.
5010 Спасибо Eric Benson и Максиму Дунину.
5011
5012 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
5013 ошибка появилась в 0.7.6.
5014
5015
5016 Изменения в nginx 0.7.20 10.11.2008
5017
5018 *) Изменения в модуле ngx_http_gzip_filter_module.
5019
5020 *) Добавление: модуль ngx_http_limit_req_module.
5021
5022 *) Исправление: на платформах sparc и ppc рабочие процессы могли
5023 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
5024 Спасибо Максиму Дунину.
5025
5026 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
5027 работали; ошибка появилась в 0.7.12.
5028
5029 *) Исправление: при использовании HTTPS запросы могли завершаться с
5030 ошибкой "bad write retry".
5031
5032 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
5033 location'ов с именами меньше 3 символов.
5034
5035 *) Исправление: переменная $server_addr могла не иметь значения.
5036
5037
5038 Изменения в nginx 0.7.19 13.10.2008
5039
5040 *) Исправление: обновление номера версии.
5041
5042
5043 Изменения в nginx 0.7.18 13.10.2008
5044
5045 *) Изменение: директива underscores_in_headers; теперь nginx по
5046 умолчанию не разрешает подчёркивания в именах строк в заголовке
5047 запроса клиента.
5048
5049 *) Добавление: модуль ngx_http_secure_link_module.
5050
5051 *) Добавление: директива real_ip_header поддерживает любой заголовок.
5052
5053 *) Добавление: директива log_subrequest.
5054
5055 *) Добавление: переменная $realpath_root.
5056
5057 *) Добавление: параметры http_502 и http_504 в директиве
5058 proxy_next_upstream.
5059
5060 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
5061 fastcgi_next_upstream не работал.
5062
5063 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
5064 для запросов HEAD.
5065
5066 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
5067
5068
5069 Изменения в nginx 0.7.17 15.09.2008
5070
5071 *) Добавление: директива directio теперь работает на Linux.
5072
5073 *) Добавление: переменная $pid.
5074
5075 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
5076 при использовании open_file_cache.
5077
5078 *) Исправление: access_log с переменными не работал на Linux; ошибка
5079 появилась в 0.7.7.
5080
5081 *) Исправление: модуль ngx_http_charset_module не понимал название
5082 кодировки в кавычках, полученное от бэкенда.
5083
5084
5085 Изменения в nginx 0.7.16 08.09.2008
5086
5087 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
5088 появилась в 0.7.15.
5089
5090
5091 Изменения в nginx 0.7.15 08.09.2008
5092
5093 *) Добавление: модуль ngx_http_random_index_module.
5094
5095 *) Добавление: директива directio оптимизирована для запросов файлов,
5096 начинающихся с произвольной позиции.
5097
5098 *) Добавление: директива directio при необходимости запрещает
5099 использование sendfile.
5100
5101 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
5102 заголовке запроса клиента.
5103
5104
5105 Изменения в nginx 0.7.14 01.09.2008
5106
5107 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
5108 имеют значений по умолчанию.
5109
5110 *) Добавление: директива listen поддерживает параметр ssl.
5111
5112 *) Добавление: теперь при переконфигурации nginx учитывает изменение
5113 временной зоны на FreeBSD и Linux.
5114
5115 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
5116 прочие, не устанавливались, если сервером по умолчанию был не первый
5117 сервер.
5118
5119 *) Исправление: при использовании в качестве аргументов части URI,
5120 выделенного с помощью директивы rewrite, эти аргументы не
5121 экранировались.
5122
5123 *) Исправление: улучшения тестирования правильности конфигурационного
5124 файла.
5125
5126
5127 Изменения в nginx 0.7.13 26.08.2008
5128
5129 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
5130 в 0.7.12.
5131
5132
5133 Изменения в nginx 0.7.12 26.08.2008
5134
5135 *) Добавление: директива server_name поддерживает пустое имя "".
5136
5137 *) Добавление: директива gzip_disable поддерживает специальную маску
5138 msie6.
5139
5140 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
5141 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
5142 Спасибо Максиму Дунину.
5143
5144 *) Исправление: при перенаправлении запроса с помощью директивы
5145 error_page терялось тело запроса.
5146
5147 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
5148 директивы error_page возвращался полный ответ.
5149
5150 *) Исправление: метод $r->header_in() не возвращал значения строк
5151 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
5152 появилась в 0.7.0.
5153
5154
5155 Изменения в nginx 0.7.11 18.08.2008
5156
5157 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
5158 MIME-типом text/css.
5159
5160 *) Добавление: теперь nginx возвращает код 405 для метода POST при
5161 запросе статического файла, только если файл существует.
5162
5163 *) Добавление: директива proxy_ssl_session_reuse.
5164
5165 *) Исправление: после перенаправления запроса с помощью
5166 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
5167 оригинальный запрос.
5168
5169 *) Исправление: если у каталога были права доступа только на поиск
5170 файлов и первый индексный файл отсутствовал, то nginx возвращал
5171 ошибку 500.
5172
5173 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
5174 0.7.1.
5175
5176
5177 Изменения в nginx 0.7.10 13.08.2008
5178
5179 *) Исправление: ошибок в директивах addition_types, charset_types,
5180 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
5181 появились в 0.7.9.
5182
5183 *) Исправление: рекурсивной error_page для 500 ошибки.
5184
5185 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
5186 не для всего keepalive соединения, а для каждого запроса по этому
5187 соединению.
5188
5189
5190 Изменения в nginx 0.7.9 12.08.2008
5191
5192 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
5193 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
5194 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
5195
5196 *) Добавление: директивы charset_types и addition_types.
5197
5198 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
5199 используют хэш.
5200
5201 *) Добавление: модуль ngx_cpp_test_module.
5202
5203 *) Добавление: директива expires поддерживает суточное время.
5204
5205 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
5206 Спасибо Денису Латыпову и Максиму Дунину.
5207
5208 *) Исправление: директива log_not_found не работала при поиске индексных
5209 файлов.
5210
5211 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
5212 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
5213
5214 *) Исправление: если в директивах server_name, valid_referers и map
5215 использовалась маска вида "*.domain.tld" и при этом полное имя вида
5216 "domain.tld" не было описано, то это имя попадало под маску; ошибка
5217 появилась в 0.3.18.
5218
5219
5220 Изменения в nginx 0.7.8 04.08.2008
5221
5222 *) Добавление: модуль ngx_http_xslt_module.
5223
5224 *) Добавление: переменные "$arg_...".
5225
5226 *) Добавление: поддержка directio в Solaris.
5227 Спасибо Ivan Debnar.
5228
5229 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
5230 в заголовке ответа без строки статуса, то nginx использует код
5231 статуса 302.
5232 Спасибо Максиму Дунину.
5233
5234
5235 Изменения в nginx 0.7.7 30.07.2008
5236
5237 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
5238 временной.
5239
5240 *) Изменение: значением переменной $ssl_client_cert теперь является
5241 сертификат, перед каждой строкой которого, кроме первой, вставляется
5242 символ табуляции; неизменённый сертификат доступен через переменную
5243 $ssl_client_raw_cert.
5244
5245 *) Добавление: параметр ask директивы ssl_verify_client.
5246
5247 *) Добавление: улучшения в обработке byte-range.
5248 Спасибо Максиму Дунину.
5249
5250 *) Добавление: директива directio.
5251 Спасибо Jiang Hong.
5252
5253 *) Добавление: поддержка sendfile() в MacOSX 10.5.
5254
5255 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
5256 делается сравнение без учёта регистра символов; однако, сравнение
5257 ограничено только однобайтными locale'ями.
5258
5259 *) Исправление: соединения почтового прокси-сервера зависали в режиме
5260 SSL, если использовались методы select, poll или /dev/poll.
5261
5262 *) Исправление: ошибки при использовании кодировки UTF-8 в
5263 ngx_http_autoindex_module.
5264
5265
5266 Изменения в nginx 0.7.6 07.07.2008
5267
5268 *) Исправление: теперь при использовании переменных в директиве
5269 access_log всегда проверяется существовании root'а для запроса.
5270
5271 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
5272 значений в аргументах запроса.
5273
5274
5275 Изменения в nginx 0.7.5 01.07.2008
5276
5277 *) Исправления в поддержке переменных в директиве access_log; ошибки
5278 появились в 0.7.4.
5279
5280 *) Исправление: nginx не собирался с параметром
5281 --without-http_gzip_module; ошибка появилась в 0.7.3.
5282 Спасибо Кириллу Коринскому.
5283
5284 *) Исправление: при совместном использовании sub_filter и SSI ответы
5285 могли передаваться неверно.
5286
5287
5288 Изменения в nginx 0.7.4 30.06.2008
5289
5290 *) Добавление: директива access_log поддерживает переменные.
5291
5292 *) Добавление: директива open_log_file_cache.
5293
5294 *) Добавление: ключ -g.
5295
5296 *) Добавление: поддержка строки "Expect" в заголовке запроса.
5297
5298 *) Исправление: большие включения в SSI могли передавались не полностью.
5299
5300
5301 Изменения в nginx 0.7.3 23.06.2008
5302
5303 *) Изменение: MIME-тип для расширения rss изменён на
5304 "application/rss+xml".
5305
5306 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
5307 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
5308
5309 *) Добавление: теперь при использовании протокола "https://" в директиве
5310 rewrite автоматически делается редирект.
5311
5312 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
5313 ошибка появилась в 0.6.9.
5314
5315
5316 Изменения в nginx 0.7.2 16.06.2008
5317
5318 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
5319
5320 *) Добавление: директива ssl_dhparam.
5321
5322 *) Добавление: переменная $ssl_client_cert.
5323 Спасибо Manlio Perillo.
5324
5325 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
5326 искал новый location; ошибка появилась в 0.7.1.
5327 Спасибо Максиму Дунину.
5328
5329 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5330 в 0.7.1.
5331
5332 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
5333 nginx не добавлял аргументы из оригинального запроса.
5334
5335
5336 Изменения в nginx 0.7.1 26.05.2008
5337
5338 *) Изменение: теперь поиск location'а делается с помощью дерева.
5339
5340 *) Изменение: директива optimize_server_names упразднена в связи с
5341 появлением директивы server_name_in_redirect.
5342
5343 *) Изменение: некоторые давно устаревшие директивы больше не
5344 поддерживаются.
5345
5346 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
5347 параметр используется по умолчанию.
5348 Спасибо Rob Mueller.
5349
5350 *) Исправление: рабочие процессы могли не реагировать на сигналы
5351 переконфигурации и ротации логов.
5352
5353 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
5354 Спасибо Roxis.
5355
5356
5357 Изменения в nginx 0.7.0 19.05.2008
5358
5359 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
5360 записываются в виде \xXX.
5361 Спасибо Максиму Дунину.
5362
5363 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
5364 запроса.
5365
5366 *) Добавление: директива expires поддерживает флаг modified.
5367
5368 *) Добавление: переменные $uid_got и $uid_set можно использовать на
5369 любой стадии обработки запроса.
5370
5371 *) Добавление: переменная $hostname.
5372 Спасибо Андрею Нигматулину.
5373
5374 *) Добавление: поддержка DESTDIR.
5375 Спасибо Todd A. Fisher и Andras Voroskoi.
5376
5377 *) Исправление: при использовании keepalive на Linux в рабочем процессе
5378 мог произойти segmentation fault.
5379
5380
5381 Изменения в nginx 0.6.31 12.05.2008
5382
5383 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
5384 заголовка ответа была в конце записи FastCGI; ошибка появилась в
5385 0.6.2.
5386 Спасибо Сергею Серову.
5387
5388 *) Исправление: при удалении файла и использовании директивы
5389 open_file_cache_errors off в рабочем процессе мог произойти
5390 segmentation fault.
5391
5392
5393 Изменения в nginx 0.6.30 29.04.2008
5394
5395 *) Изменение: теперь, если маске, заданной в директиве include, не
5396 соответствует ни один файл, то nginx не выдаёт ошибку.
5397
5398 *) Добавление: теперь время в директивах можно задавать без пробела,
5399 например, "1h50m".
5400
5401 *) Исправление: утечек памяти, если директива ssl_verify_client имела
5402 значение on.
5403 Спасибо Chavelle Vincent.
5404
5405 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
5406 вывод.
5407
5408 *) Исправление: директива error_page не воспринимала параметры в
5409 перенаправляемом URI.
5410
5411 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
5412 в бинарном режиме.
5413
5414 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
5415 0.6.15.
5416
5417
5418 Изменения в nginx 0.6.29 18.03.2008
5419
5420 *) Добавление: модуль ngx_google_perftools_module.
5421
5422 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
5423 платформах; ошибка появилась в 0.6.27.
5424
5425
5426 Изменения в nginx 0.6.28 13.03.2008
5427
5428 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
5429
5430
5431 Изменения в nginx 0.6.27 12.03.2008
5432
5433 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
5434 rtsig.
5435
5436 *) Изменение: теперь при перенаправлении запроса в именованный location
5437 с помощью директивы error_page метод запроса не изменяется.
5438
5439 *) Добавление: директивы resolver и resolver_timeout в SMTP
5440 прокси-сервере.
5441
5442 *) Добавление: директива post_action поддерживает именованные
5443 location'ы.
5444
5445 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5446 proxy, FastCGI или memcached в именованный location со статическим
5447 обработчиком в рабочем процессе происходил segmentation fault.
5448
5449 *) Исправление: браузеры не повторяли SSL handshake, если при первом
5450 handshake не оказалось правильного клиентского сертификата.
5451 Спасибо Александру Инюхину.
5452
5453 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
5454 error_page без изменения кода ошибки nginx пытался выделить очень
5455 много памяти.
5456
5457 *) Исправление: утечки памяти в долгоживущих небуфферизированных
5458 соединениях.
5459
5460 *) Исправление: утечки памяти в resolver'е.
5461
5462 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5463 proxy в другой location с обработчиком proxy в рабочем процессе
5464 происходил segmentation fault.
5465
5466 *) Исправление: ошибки в кэшировании переменных $proxy_host и
5467 $proxy_port.
5468 Спасибо Сергею Боченкову.
5469
5470 *) Исправление: директива proxy_pass с переменными использовала порт,
5471 описанной в другой директиве proxy_pass без переменных, но с таким же
5472 именем хоста.
5473 Спасибо Сергею Боченкову.
5474
5475 *) Исправление: во время переконфигурации на некоторых 64-битном
5476 платформах в лог записывался alert "sendmsg() failed (9: Bad file
5477 descriptor)".
5478
5479 *) Исправление: при повторном использовании в SSI пустого block'а в
5480 качестве заглушки в рабочем процессе происходил segmentation fault.
5481
5482 *) Исправление: ошибки при копировании части URI, содержащего
5483 экранированные символы, в аргументы.
5484
5485
5486 Изменения в nginx 0.6.26 11.02.2008
5487
5488 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
5489 ответа.
5490
5491 *) Исправление: при использовании большого значения в директиве expires
5492 в рабочем процессе происходил segmentation fault.
5493 Спасибо Joaquin Cuenca Abela.
5494
5495 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
5496 Спасибо Геннадию Махомеду.
5497
5498 *) Исправление: в проксированных подзапросах и подзапросах к
5499 FastCGI-серверу вместо метода GET использовался оригинальный метод
5500 клиента.
5501
5502 *) Исправление: утечки сокетов в режиме HTTPS при использовании
5503 отложенного accept'а.
5504 Спасибо Ben Maurer.
5505
5506 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
5507 (SSL: )"; ошибка появилась в 0.6.23.
5508
5509 *) Исправление: при использовании HTTPS запросы могли завершаться с
5510 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
5511
5512
5513 Изменения в nginx 0.6.25 08.01.2008
5514
5515 *) Изменение: вместо специального параметра "*" в директиве server_name
5516 теперь используется директива server_name_in_redirect.
5517
5518 *) Изменение: в качестве основного имени в директиве server_name теперь
5519 можно использовать имена с масками и регулярными выражениями.
5520
5521 *) Изменение: директива satisfy_any заменена директивой satisfy.
5522
5523 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
5524 нагружать процессор при запуске под Linux OpenVZ.
5525
5526 *) Добавление: директива min_delete_depth.
5527
5528 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
5529
5530 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
5531 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
5532
5533 *) Исправление: утечки сокетов в режиме HTTPS при использовании
5534 отложенного accept'а.
5535 Спасибо Ben Maurer.
5536
5537 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5538 в 0.6.23.
5539
5540
5541 Изменения в nginx 0.6.24 27.12.2007
5542
5543 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
5544 segmentation fault; ошибка появилась в 0.6.23.
5545
5546
5547 Изменения в nginx 0.6.23 27.12.2007
5548
5549 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
5550 параметр используется по умолчанию.
5551
5552 *) Изменение: директива open_file_cache_retest переименована в
5553 open_file_cache_valid.
5554
5555 *) Добавление: директива open_file_cache_min_uses.
5556
5557 *) Добавление: модуль ngx_http_gzip_static_module.
5558
5559 *) Добавление: директива gzip_disable.
5560
5561 *) Добавление: директиву memcached_pass можно использовать внутри блока
5562 if.
5563
5564 *) Исправление: если внутри одного location'а использовались директивы
5565 "memcached_pass" и "if", то в рабочем процессе происходил
5566 segmentation fault.
5567
5568 *) Исправление: если при использовании директивы satisfy_any on" были
5569 заданы директивы не всех модулей доступа, то заданные директивы не
5570 проверялись.
5571
5572 *) Исправление: параметры, заданные регулярным выражением в директиве
5573 valid_referers, не наследовалась с предыдущего уровня.
5574
5575 *) Исправление: директива post_action не работала, если запрос
5576 завершался с кодом 499.
5577
5578 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
5579 Спасибо Ben Maurer.
5580
5581 *) Исправление: STARTTLS в режиме SMTP не работал.
5582 Спасибо Олегу Мотиенко.
5583
5584 *) Исправление: при использовании HTTPS запросы могли завершаться с
5585 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
5586
5587
5588 Изменения в nginx 0.6.22 19.12.2007
5589
5590 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
5591 значения, скопированные в память, выделенную perl'ом.
5592
5593 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
5594 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
5595 время переконфигурации основной процесс аварийно выходил; ошибка
5596 появилась в 0.5.9.
5597 Спасибо Борису Жмурову.
5598
5599 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
5600 неверные результаты выделения в регулярных выражениях.
5601
5602 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
5603 у которого небольшое тело запроса было уже полностью получено, то в
5604 рабочем процессе происходил segmentation fault.
5605
5606 *) Исправление: large_client_header_buffers не освобождались перед
5607 переходом в состояние keep-alive.
5608 Спасибо Олександру Штепе.
5609
5610 *) Исправление: в переменной $upstream_addr не записывался последний
5611 адрес; ошибка появилась в 0.6.18.
5612
5613 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
5614 теперь она возвращает ошибку 502, которую можно направить на
5615 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
5616
5617 *) Исправление: при использовании директивы fastcgi_catch_stderr в
5618 основном процессе происходил segmentation fault; ошибка появилась в
5619 0.6.10.
5620 Спасибо Manlio Perillo.
5621
5622
5623 Изменения в nginx 0.6.21 03.12.2007
5624
5625 *) Изменение: если в значениях переменных директивы proxy_pass
5626 используются только IP-адреса, то указывать resolver не нужно.
5627
5628 *) Исправление: при использовании директивы proxy_pass c URI-частью в
5629 рабочем процессе мог произойти segmentation fault; ошибка появилась в
5630 0.6.19.
5631
5632 *) Исправление: если resolver использовался на платформах, не
5633 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
5634 response".
5635 Спасибо Андрею Нигматулину.
5636
5637 *) Исправление: При использовании переменной $server_protocol в
5638 FastCGI-параметрах и запросе, длина которого была близка к значению
5639 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
5640 the request record is too big".
5641
5642 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
5643 nginx возвращал обычный ответ.
5644
5645
5646 Изменения в nginx 0.6.20 28.11.2007
5647
5648 *) Исправление: при использовании директивы proxy_pass c URI-частью в
5649 рабочем процессе мог произойти segmentation fault; ошибка появилась в
5650 0.6.19.
5651
5652
5653 Изменения в nginx 0.6.19 27.11.2007
5654
5655 *) Исправление: версия 0.6.18 не собиралась.
5656
5657
5658 Изменения в nginx 0.6.18 27.11.2007
5659
5660 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
5661 процесса добавляет микросекунды на время старта.
5662
5663 *) Изменение: в error_log теперь записывается полная строка запроса
5664 вместо только URI.
5665
5666 *) Добавление: директива proxy_pass поддерживает переменные.
5667
5668 *) Добавление: директивы resolver и resolver_timeout.
5669
5670 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
5671 заголовке ответа строку "Last-Modified".
5672
5673 *) Исправление: директива limit_rate не позволяла передавать на полной
5674 скорости, даже если был указан очень большой лимит.
5675
5676
5677 Изменения в nginx 0.6.17 15.11.2007
5678
5679 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
5680 Спасибо Александру Инюхину.
5681
5682 *) Исправление: при использовании директивы msie_refresh повторно
5683 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
5684
5685 *) Исправление: директива autoindex не работала при использовании "alias
5686 /".
5687
5688 *) Исправление: при использовании подзапросов в рабочем процессе мог
5689 произойти segmentation fault.
5690
5691 *) Исправление: при использовании SSL и gzip большие ответы могли
5692 передаваться не полностью.
5693
5694 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
5695 то переменная $status была равна 0.
5696
5697
5698 Изменения в nginx 0.6.16 29.10.2007
5699
5700 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
5701 Спасибо Илье Новикову.
5702
5703 *) Исправление: если в директиве error_page использовался символ "?", то
5704 он экранировался при проксировании запроса; ошибка появилась в
5705 0.6.11.
5706
5707 *) Исправление: совместимость с mget.
5708
5709
5710 Изменения в nginx 0.6.15 22.10.2007
5711
5712 *) Добавление: совместимость с Cygwin.
5713 Спасибо Владимиру Кутакову.
5714
5715 *) Добавление: директива merge_slashes.
5716
5717 *) Добавление: директива gzip_vary.
5718
5719 *) Добавление: директива server_tokens.
5720
5721 *) Исправление: nginx не раскодировал URI в команде SSI include.
5722
5723 *) Исправление: при использовании переменной в директивах charset или
5724 source_charset на старте или во время переконфигурации происходил
5725 segmentation fault,
5726
5727 *) Исправление: nginx возвращал ошибку 400 на запросы вида
5728 "GET http://www.domain.com HTTP/1.0".
5729 Спасибо James Oakley.
5730
5731 *) Исправление: после перенаправления запроса с телом запроса с помощью
5732 директивы error_page nginx пытался снова прочитать тело запроса;
5733 ошибка появилась в 0.6.7.
5734
5735 *) Исправление: в рабочем процессе происходил segmentation fault, если у
5736 сервера, обрабатывающему запрос, не был явно определён server_name;
5737 ошибка появилась в 0.6.7.
5738
5739
5740 Изменения в nginx 0.6.14 15.10.2007
5741
5742 *) Изменение: теперь по умолчанию команда SSI echo использует
5743 кодирование entity.
5744
5745 *) Добавление: параметр encoding в команде SSI echo.
5746
5747 *) Добавление: директиву access_log можно использовать внутри блока
5748 limit_except.
5749
5750 *) Исправление: если все сервера апстрима оказывались недоступными, то
5751 до восстановления работоспособности у всех серверов вес становился
5752 равным одному; ошибка появилась в 0.6.6.
5753
5754 *) Исправление: при использовании переменных $date_local и $date_gmt вне
5755 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
5756 segmentation fault.
5757
5758 *) Исправление: при использовании включённом отладочном логе в рабочем
5759 процессе мог произойти segmentation fault.
5760 Спасибо Андрею Нигматулину.
5761
5762 *) Исправление: ngx_http_memcached_module не устанавливал
5763 $upstream_response_time.
5764 Спасибо Максиму Дунину.
5765
5766 *) Исправление: рабочий процесс мог зациклиться при использовании
5767 memcached.
5768
5769 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
5770 строке "Connection" в заголовке запроса только, если они были в
5771 нижнем регистре; ошибка появилась в 0.6.11.
5772
5773 *) Исправление: sub_filter не работал с пустой строкой замены.
5774
5775 *) Исправление: в парсинге sub_filter.
5776
5777
5778 Изменения в nginx 0.6.13 24.09.2007
5779
5780 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
5781 использовался autoindex
5782 Спасибо Arkadiusz Patyk.
5783
5784
5785 Изменения в nginx 0.6.12 21.09.2007
5786
5787 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
5788 и smtp.
5789
5790 *) Добавление: параметры конфигурации --without-mail_pop3_module,
5791 --without-mail_imap_module и --without-mail_smtp_module.
5792
5793 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
5794 ngx_mail_smtp_module.
5795
5796 *) Исправление: wildcard в конце имени сервера не работали; ошибка
5797 появилась в 0.6.9.
5798
5799 *) Исправление: при использовании разделяемой библиотеки PCRE,
5800 расположенной в нестандартном месте, nginx не запускался на Solaris.
5801
5802 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
5803 скрывали строки заголовка ответа с именем больше 32 символов.
5804 Спасибо Manlio Perillo.
5805
5806
5807 Изменения в nginx 0.6.11 11.09.2007
5808
5809 *) Исправление: счётчик активных соединений всегда рос при использовании
5810 почтового прокси-сервера.
5811
5812 *) Исправление: если бэкенд возвращал только заголовок ответа при
5813 небуферизированном проксировании, то nginx закрывал соединение с
5814 бэкендом по таймауту.
5815
5816 *) Исправление: nginx не поддерживал несколько строк "Connection" в
5817 заголовке запроса.
5818
5819 *) Исправление: если в сервере апстрима был задан max_fails, то после
5820 первой же неудачной попытки вес сервера навсегда становился равным
5821 одному; ошибка появилась в 0.6.6.
5822
5823
5824 Изменения в nginx 0.6.10 03.09.2007
5825
5826 *) Добавление: директивы open_file_cache, open_file_cache_retest и
5827 open_file_cache_errors.
5828
5829 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
5830
5831 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
5832 методе $r->send_http_header(), не добавлялась кодировка, указанная в
5833 директиве charset.
5834
5835 *) Исправление: при использовании метода /dev/poll в рабочем процессе
5836 мог произойти segmentation fault.
5837
5838
5839 Изменения в nginx 0.6.9 28.08.2007
5840
5841 *) Исправление: рабочий процесс мог зациклиться при использовании
5842 протокола HTTPS; ошибка появилась в 0.6.7.
5843
5844 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
5845 не запускался при использовании wildcard в конце имени сервера.
5846
5847 *) Исправление: директива ip_hash могла неверно помечать сервера как
5848 нерабочие.
5849
5850 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
5851
5852
5853 Изменения в nginx 0.6.8 20.08.2007
5854
5855 *) Изменение: теперь nginx пытается установить директивы
5856 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
5857 worker_rlimit_sigpending без привилегий root'а.
5858
5859 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
5860 запроса серверу аутентификации почтового прокси-сервера.
5861
5862 *) Изменение: теперь nginx экранирует символ "%" в переменной
5863 $memcached_key.
5864
5865 *) Исправление: при указании относительного пути к конфигурационному
5866 файлу в качестве параметра ключа -c nginx определял путь относительно
5867 конфигурационного префикса; ошибка появилась в 0.6.6.
5868
5869 *) Исправление: nginx не работал на FreeBSD/sparc64.
5870
5871
5872 Изменения в nginx 0.6.7 15.08.2007
5873
5874 *) Изменение: теперь пути, указанные в директивах include,
5875 auth_basic_user_file, perl_modules, ssl_certificate,
5876 ssl_certificate_key и ssl_client_certificate, определяются
5877 относительно каталога конфигурационного файла nginx.conf, а не
5878 относительно префикса.
5879
5880 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
5881
5882 *) Изменение: для обновления на лету версий 0.1.x создан специальный
5883 сценарий make upgrade1.
5884
5885 *) Добавление: директивы server_name и valid_referers поддерживают
5886 регулярные выражения.
5887
5888 *) Добавление: директива server в блоке upstream поддерживает параметр
5889 backup.
5890
5891 *) Добавление: модуль ngx_http_perl_module поддерживает метод
5892 $r->discard_request_body.
5893
5894 *) Добавление: директива "add_header Last-Modified ..." меняет строку
5895 "Last-Modified" в заголовке ответа.
5896
5897 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
5898 отличным от 200, и после этого запроса соединение переходило в
5899 состояние keep-alive, то на следующий запрос nginx возвращал 400.
5900
5901 *) Исправление: если в директиве auth_http был задан неправильный адрес,
5902 то в рабочем процессе происходил segmentation fault.
5903
5904 *) Исправление: теперь по умолчанию nginx использует значение 511 для
5905 listen backlog на всех платформах, кроме FreeBSD.
5906 Спасибо Jiang Hong.
5907
5908 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
5909 upstream был помечен как down; ошибка появилась в 0.6.6.
5910
5911 *) Исправление: sendfilev() в Solaris теперь не используется при
5912 передаче тела запроса FastCGI-серверу через unix domain сокет.
5913
5914
5915 Изменения в nginx 0.6.6 30.07.2007
5916
5917 *) Добавление: параметр --sysconfdir=PATH в configure.
5918
5919 *) Добавление: именованные location'ы.
5920
5921 *) Добавление: переменную $args можно устанавливать с помощью set.
5922
5923 *) Добавление: переменная $is_args.
5924
5925 *) Исправление: равномерное распределение запросов к апстримам с
5926 большими весами.
5927
5928 *) Исправление: если клиент в почтовом прокси-сервере закрывал
5929 соединение, то nginx мог не закрывать соединение с бэкендом.
5930
5931 *) Исправление: при использовании одного хоста в качестве бэкендов для
5932 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
5933 только один порт - 80 или 443.
5934
5935 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
5936 более ранними версиями; ошибка появилась в 0.6.4.
5937
5938
5939 Изменения в nginx 0.6.5 23.07.2007
5940
5941 *) Добавление: переменная $nginx_version.
5942 Спасибо Николаю Гречуху.
5943
5944 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
5945 IMAP.
5946 Спасибо Максиму Дунину.
5947
5948 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
5949 SMTP.
5950 Спасибо Максиму Дунину.
5951
5952 *) Исправление: теперь nginx экранирует пробел в переменной
5953 $memcached_key.
5954
5955 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
5956 Спасибо Jiang Hong.
5957
5958 *) Исправление: незначительных потенциальных ошибок.
5959 Спасибо Coverity's Scan.
5960
5961
5962 Изменения в nginx 0.6.4 17.07.2007
5963
5964 *) Безопасность: при использовании директивы msie_refresh был возможен
5965 XSS.
5966 Спасибо Максиму Богуку.
5967
5968 *) Изменение: директивы proxy_store и fastcgi_store изменены.
5969
5970 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
5971
5972 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
5973 Studio.
5974 Спасибо Андрею Нигматулину.
5975
5976 *) Изменение: обход ошибки в Sun Studio 12.
5977 Спасибо Jiang Hong.
5978
5979
5980 Изменения в nginx 0.6.3 12.07.2007
5981
5982 *) Добавление: директивы proxy_store и fastcgi_store.
5983
5984 *) Исправление: при использовании директивы auth_http_header в рабочем
5985 процессе мог произойти segmentation fault.
5986 Спасибо Максиму Дунину.
5987
5988 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
5989 не был разрешён, то в рабочем процессе происходил segmentation fault.
5990
5991 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
5992 в рабочем процессе мог произойти segmentation fault.
5993
5994 *) Исправление: в рабочем процессе мог произойти segmentation fault,
5995 если использовался метод eventport.
5996
5997 *) Исправление: директивы proxy_ignore_client_abort и
5998 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
5999
6000
6001 Изменения в nginx 0.6.2 09.07.2007
6002
6003 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
6004 nginx передавал клиенту мусор в таких заголовках.
6005
6006
6007 Изменения в nginx 0.6.1 17.06.2007
6008
6009 *) Исправление: в парсинге SSI.
6010
6011 *) Исправление: при использовании удалённого подзапроса в SSI
6012 последующий подзапрос локального файла мог отдаваться клиенту в
6013 неверном порядке.
6014
6015 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
6016 передавались не полностью.
6017
6018 *) Исправление: значение perl'овой переменной $$ модуля
6019 ngx_http_perl_module было равно номеру главного процесса.
6020
6021
6022 Изменения в nginx 0.6.0 14.06.2007
6023
6024 *) Добавление: директивы "server_name", "map", and "valid_referers"
6025 поддерживают маски вида "www.example.*".
6026
6027
6028 Изменения в nginx 0.5.25 11.06.2007
6029
6030 *) Исправление: nginx не собирался с параметром
6031 --without-http_rewrite_module; ошибка появилась в 0.5.24.
6032
6033
6034 Изменения в nginx 0.5.24 06.06.2007
6035
6036 *) Безопасность: директива ssl_verify_client не работала, если запрос
6037 выполнялся по протоколу HTTP/0.9.
6038
6039 *) Исправление: при использовании сжатия часть ответа могла передаваться
6040 несжатой; ошибка появилась в 0.5.23.
6041
6042
6043 Изменения в nginx 0.5.23 04.06.2007
6044
6045 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
6046 Server Name Indication.
6047
6048 *) Добавление: директива fastcgi_catch_stderr.
6049 Спасибо Николаю Гречуху, проект OWOX.
6050
6051 *) Исправление: на Линуксе в основном процессе происходил segmentation
6052 fault, если два виртуальных сервера должны bind()ится к
6053 пересекающимся портам.
6054
6055 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6056 perl поддерживал потоки, то во время второй переконфигурации
6057 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
6058
6059 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6060
6061
6062 Изменения в nginx 0.5.22 29.05.2007
6063
6064 *) Исправление: большое тело запроса могло не передаваться бэкенду;
6065 ошибка появилась в 0.5.21.
6066
6067
6068 Изменения в nginx 0.5.21 28.05.2007
6069
6070 *) Исправление: если внутри сервера описано больше примерно десяти
6071 location'ов, то location'ы, заданные с помощью регулярного выражения,
6072 могли выполняться не в том, порядке, в каком они описаны.
6073
6074 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
6075 если 33-тий по счёту или последующий бэкенд упал.
6076 Спасибо Антону Поварову.
6077
6078 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
6079 произойти bus error.
6080 Спасибо Андрею Нигматулину.
6081
6082 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6083
6084
6085 Изменения в nginx 0.5.20 07.05.2007
6086
6087 *) Добавление: директива sendfile_max_chunk.
6088
6089 *) Добавление: переменные "$http_...", "$sent_http_..." и
6090 "$upstream_http_..." можно менять директивой set.
6091
6092 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
6093 рабочем процессе мог произойти segmentation fault.
6094
6095 *) Исправление: завершающая строка multipart range ответа передавалась
6096 неверно.
6097 Спасибо Evan Miller.
6098
6099 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6100 Studio.
6101 Спасибо Андрею Нигматулину.
6102
6103 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
6104 Спасибо Андрею Нигматулину.
6105
6106
6107 Изменения в nginx 0.5.19 24.04.2007
6108
6109 *) Изменение: значение переменной $request_time теперь записывается с
6110 точностью до миллисекунд.
6111
6112 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
6113 переименован в $r->flush.
6114
6115 *) Добавление: переменная $upstream_addr.
6116
6117 *) Добавление: директивы proxy_headers_hash_max_size и
6118 proxy_headers_hash_bucket_size.
6119 Спасибо Володымыру Костырко.
6120
6121 *) Исправление: при использовании sendfile и limit_rate на 64-битных
6122 платформах нельзя было передавать файлы больше 2G.
6123
6124 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
6125 было передавать файлы больше 2G.
6126
6127
6128 Изменения в nginx 0.5.18 19.04.2007
6129
6130 *) Добавление: модуль ngx_http_sub_filter_module.
6131
6132 *) Добавление: переменные "$upstream_http_...".
6133
6134 *) Добавление: теперь переменные $upstream_status и
6135 $upstream_response_time содержат данные о всех обращениях к
6136 апстримам, сделанным до X-Accel-Redirect.
6137
6138 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6139 perl не поддерживал multiplicity, то после первой переконфигурации и
6140 после получения любого сигнала в основном процессе происходил
6141 segmentation fault; ошибка появилась в 0.5.9.
6142
6143 *) Исправление: если perl не поддерживал multiplicity, то после
6144 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
6145
6146
6147 Изменения в nginx 0.5.17 02.04.2007
6148
6149 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
6150
6151 *) Добавление: теперь nginx поддерживает директиву include внутри блока
6152 types.
6153
6154 *) Исправление: использование переменной $document_root в директиве root
6155 и alias запрещено: оно вызывало рекурсивное переполнение стека.
6156
6157 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6158
6159 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
6160 $uri) возвращали старое закэшированное значение.
6161
6162
6163 Изменения в nginx 0.5.16 26.03.2007
6164
6165 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
6166 использовалась сеть класса С.
6167 Спасибо Павлу Ярковому.
6168
6169 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
6170 был указан charset и строка завершалась символом ";", то в рабочем
6171 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
6172
6173 *) Исправление: ошибки "[alert] zero size buf" при работе с
6174 FastCGI-сервером, если тело запроса, записанное во временный файл,
6175 было кратно 32K.
6176
6177 *) Исправление: nginx не собирался на Solaris без параметра
6178 --with-debug; ошибка появилась в 0.5.15.
6179
6180
6181 Изменения в nginx 0.5.15 19.03.2007
6182
6183 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
6184 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и
6185 xclient.
6186 Спасибо Антону Южанинову и Максиму Дунину.
6187
6188 *) Добавление: теперь keep-alive соединения закрываются сразу же по
6189 получении сигнала переконфигурации.
6190
6191 *) Изменение: директивы imap и auth переименованы соответственно в mail
6192 и pop3_auth.
6193
6194 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
6195 был разрешён метод APOP, то в рабочем процессе происходил
6196 segmentation fault.
6197
6198 *) Исправление: при использовании директивы starttls only в протоколе
6199 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
6200
6201 *) Исправление: рабочие процессы не выходили после переконфигурации и не
6202 переоткрывали логи, если использовался метод eventport.
6203
6204 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
6205 зациклиться.
6206
6207 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
6208 используются методы eventport или /dev/poll.
6209
6210
6211 Изменения в nginx 0.5.14 23.02.2007
6212
6213 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
6214 конфигурационного файла.
6215
6216
6217 Изменения в nginx 0.5.13 19.02.2007
6218
6219 *) Добавление: методы COPY и MOVE.
6220
6221 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
6222 запросов, переданных по keep-alive соединению.
6223
6224 *) Исправление: nginx не работал на 64-битном big-endian Linux.
6225 Спасибо Андрею Нигматулину.
6226
6227 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
6228 теперь сразу закрывает соединение, а не по таймауту.
6229
6230 *) Исправление: если при использовании метода epoll клиент закрывал
6231 преждевременно соединение со своей стороны, то nginx закрывал это
6232 соединение только по истечении таймаута на передачу.
6233
6234 *) Исправление: nginx не собирался на платформах, отличных от i386,
6235 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6236
6237
6238 Изменения в nginx 0.5.12 12.02.2007
6239
6240 *) Исправление: nginx не собирался на платформах, отличных от i386,
6241 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6242
6243 *) Исправление: при использовании временных файлов в время работы с
6244 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
6245 ошибка появилась в 0.5.8.
6246
6247 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
6248 то в рабочем процессе мог произойти segmentation fault.
6249
6250 *) Исправление: ngx_http_perl_module не собирался на Solaris.
6251
6252
6253 Изменения в nginx 0.5.11 05.02.2007
6254
6255 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
6256 Спасибо Chris McGrath.
6257
6258 *) Исправление: ответ был неверным, если запрашивалось несколько
6259 диапазонов; ошибка появилась в 0.5.6.
6260
6261 *) Исправление: директива create_full_put_path не могла создавать
6262 промежуточные каталоги, если не была установлена директива
6263 dav_access.
6264 Спасибо Evan Miller.
6265
6266 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
6267 записываться код "0".
6268
6269 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6270 произойти segmentation fault.
6271
6272
6273 Изменения в nginx 0.5.10 26.01.2007
6274
6275 *) Исправление: во время обновления исполняемого файла новый процесс не
6276 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
6277
6278 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6279 произойти segmentation fault; ошибка появилась в 0.5.1.
6280
6281
6282 Изменения в nginx 0.5.9 25.01.2007
6283
6284 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
6285 использует значение переменной $memcached_key.
6286
6287 *) Добавление: переменная $memcached_key.
6288
6289 *) Добавление: параметр clean в директиве client_body_in_file_only.
6290
6291 *) Добавление: директива env.
6292
6293 *) Добавление: директива sendfile работает внутри блока if.
6294
6295 *) Добавление: теперь при ошибке записи в access_log nginx записывает
6296 сообщение в error_log, но не чаще одного раза в минуту.
6297
6298 *) Исправление: директива "access_log off" не всегда запрещала запись в
6299 лог.
6300
6301
6302 Изменения в nginx 0.5.8 19.01.2007
6303
6304 *) Исправление: если использовалась директива
6305 "client_body_in_file_only on" и тело запроса было небольшое, то мог
6306 произойти segmentation fault.
6307
6308 *) Исправление: происходил segmentation fault, если использовались
6309 директивы "client_body_in_file_only on" и
6310 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
6311 делался переход к следующему бэкенду.
6312
6313 *) Исправление: если при использовании директивы "proxy_buffering off"
6314 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
6315 заданному директивой send_timeout; ошибка появилась в 0.4.7.
6316
6317 *) Исправление: если при использовании метода epoll клиент закрывал
6318 преждевременно соединение со своей стороны, то nginx закрывал это
6319 соединение только по истечении таймаута на передачу.
6320
6321 *) Исправление: ошибки "[alert] zero size buf" при работе с
6322 FastCGI-сервером.
6323
6324 *) Исправление ошибок в директиве limit_zone.
6325
6326
6327 Изменения в nginx 0.5.7 15.01.2007
6328
6329 *) Добавление: оптимизация использования памяти в ssl_session_cache.
6330
6331 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
6332
6333 *) Исправление: на старте или во время переконфигурации происходил
6334 segmentation fault, если директивы ssl_session_cache или limit_zone
6335 использовались на 64-битных платформах.
6336
6337 *) Исправление: при использовании директив add_before_body или
6338 add_after_body происходил segmentation fault, если в заголовке ответа
6339 нет строки "Content-Type".
6340
6341 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
6342 потоков.
6343 Спасибо Дену Иванову.
6344
6345 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
6346
6347
6348 Изменения в nginx 0.5.6 09.01.2007
6349
6350 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
6351 кроме GET, HEAD и POST.
6352
6353 *) Добавление: модуль ngx_http_limit_zone_module.
6354
6355 *) Добавление: переменная $binary_remote_addr.
6356
6357 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
6358 ngx_imap_ssl_module.
6359
6360 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
6361
6362 *) Исправление: при использовании $r->sendfile() byte-ranges
6363 передавались неверно.
6364
6365
6366 Изменения в nginx 0.5.5 24.12.2006
6367
6368 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
6369
6370 *) Добавление: ключ -V.
6371
6372 *) Добавление: директива worker_rlimit_core поддерживает указание
6373 размера в K, M и G.
6374
6375 *) Исправление: модуль nginx.pm теперь может устанавливаться
6376 непривилегированным пользователем.
6377
6378 *) Исправление: при использовании методов $r->request_body или
6379 $r->request_body_file мог произойти segmentation fault.
6380
6381 *) Исправление: ошибок, специфичных для платформы ppc.
6382
6383
6384 Изменения в nginx 0.5.4 15.12.2006
6385
6386 *) Добавление: директиву perl можно использовать внутри блока
6387 limit_except.
6388
6389 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
6390 заголовке запроса для метода DELETE.
6391
6392 *) Исправление: при использовании одного параметра в директиве
6393 dav_access nginx мог сообщить об ошибке в конфигурации.
6394
6395 *) Исправление: при использовании переменной $host мог произойти
6396 segmentation fault; ошибка появилась в 0.4.14.
6397
6398
6399 Изменения в nginx 0.5.3 13.12.2006
6400
6401 *) Добавление: модуль ngx_http_perl_module поддерживает методы
6402 $r->status, $r->log_error и $r->sleep.
6403
6404 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
6405 конфигурации nginx'а.
6406
6407 *) Исправление: метод $r->has_request_body не работал.
6408
6409
6410 Изменения в nginx 0.5.2 11.12.2006
6411
6412 *) Исправление: если в директивах proxy_pass использовалось имя,
6413 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
6414 ошибка появилась в 0.5.1.
6415
6416
6417 Изменения в nginx 0.5.1 11.12.2006
6418
6419 *) Исправление: директива post_action могла не работать после неудачного
6420 завершения запроса.
6421
6422 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
6423 Спасибо Bron Gondwana.
6424
6425 *) Исправление: при указании в директиве fastcgi_pass имени описанного
6426 upstream'а выдавалось сообщение "no port in upstream"; ошибка
6427 появилась в 0.5.0.
6428
6429 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6430 использовались одинаковых имена серверов, но с разными портами, то
6431 эти директивы использовали первый описанный порт; ошибка появилась в
6432 0.5.0.
6433
6434 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6435 использовались unix domain сокеты, то эти директивы использовали
6436 первый описанный сокет; ошибка появилась в 0.5.0.
6437
6438 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
6439 если он был указан в последней строке файла паролей и после пароля не
6440 было перевода строки, возврата каретки или символа ":".
6441
6442 *) Исправление: переменная $upstream_response_time могла быть равна
6443 "0.000", хотя время обработки было больше 1 миллисекунды.
6444
6445
6446 Изменения в nginx 0.5.0 04.12.2006
6447
6448 *) Изменение: параметры в виде "%name" в директиве log_format больше не
6449 поддерживаются.
6450
6451 *) Изменение: директивы proxy_upstream_max_fails,
6452 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
6453 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
6454 memcached_upstream_fail_timeout больше не поддерживаются.
6455
6456 *) Добавление: директива server в блоке upstream поддерживает параметры
6457 max_fails, fail_timeout и down.
6458
6459 *) Добавление: директива ip_hash в блоке upstream.
6460
6461 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа
6462 сервера аутентификации IMAP/POP3 прокси.
6463
6464 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
6465 появилась в 0.4.14.
6466
6467
6468 Изменения в nginx 0.4.14 27.11.2006
6469
6470 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
6471
6472 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
6473 Linux и NetBSD.
6474
6475 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
6476 поддержкой потоков; ошибка появилась в 0.3.38.
6477
6478 *) Исправление: ngx_http_perl_module не работал корректно, если перл
6479 вызывался рекурсивно.
6480
6481 *) Исправление: nginx игнорировал имя сервера в строке запроса.
6482
6483 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
6484 процесс мог зациклиться.
6485
6486 *) Исправление: при изменении системного времени переменная
6487 $upstream_response_time могла быть отрицательной.
6488
6489 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
6490 прокси не передавался параметр Auth-Login-Attempt.
6491
6492 *) Исправление: при ошибке соединения с сервером аутентификации
6493 IMAP/POP3 прокси мог произойти segmentation fault.
6494
6495
6496 Изменения в nginx 0.4.13 15.11.2006
6497
6498 *) Добавление: директиву proxy_pass можно использовать внутри блока
6499 limit_except.
6500
6501 *) Добавление: директива limit_except поддерживает все WebDAV методы.
6502
6503 *) Исправление: при использовании директивы add_before_body без
6504 директивы add_after_body ответ передавался не полностью.
6505
6506 *) Исправление: большое тело запроса не принималось, если использовались
6507 метод epoll и deferred accept().
6508
6509 *) Исправление: для ответов модуля ngx_http_autoindex_module не
6510 выставлялась кодировка; ошибка появилась в 0.3.50.
6511
6512 *) Исправление: ошибки "[alert] zero size buf" при работе с
6513 FastCGI-сервером;
6514
6515 *) Исправление: параметр конфигурации --group= игнорировался.
6516 Спасибо Thomas Moschny.
6517
6518 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
6519 в 0.3.50.
6520
6521
6522 Изменения в nginx 0.4.12 31.10.2006
6523
6524 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6525 $r->variable.
6526
6527 *) Исправление: при включении в ответ большого статического файла с
6528 помощью SSI ответ мог передаваться не полностью.
6529
6530 *) Исправление: nginx не убирал "#fragment" в URI.
6531
6532
6533 Изменения в nginx 0.4.11 25.10.2006
6534
6535 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
6536
6537 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6538 $r->allow_ranges.
6539
6540 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
6541 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
6542
6543
6544 Изменения в nginx 0.4.10 23.10.2006
6545
6546 *) Добавление: POP3 прокси поддерживает APOP.
6547
6548 *) Исправление: при использовании методов select, poll и /dev/poll во
6549 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
6550 нагружал процессор.
6551
6552 *) Исправление: при использовании переменной $server_addr в директиве
6553 map мог произойти segmentation fault.
6554
6555 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
6556 для полных ответов; ошибка появилась в 0.4.7.
6557
6558 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
6559 0.4.9.
6560
6561
6562 Изменения в nginx 0.4.9 13.10.2006
6563
6564 *) Добавление: параметр set в команде SSI include.
6565
6566 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
6567 модуля nginx.pm.
6568
6569
6570 Изменения в nginx 0.4.8 11.10.2006
6571
6572 *) Исправление: если до команды SSI include с параметром wait
6573 выполнялась ещё одна команда SSI include, то параметр wait мог не
6574 работать.
6575
6576 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
6577 полных ответов.
6578 Спасибо Алексею Ковырину.
6579
6580
6581 Изменения в nginx 0.4.7 10.10.2006
6582
6583 *) Добавление: модуль ngx_http_flv_module.
6584
6585 *) Добавление: переменная $request_body_file.
6586
6587 *) Добавление: директивы charset и source_charset поддерживают
6588 переменные.
6589
6590 *) Исправление: если до команды SSI include с параметром wait
6591 выполнялась ещё одна команда SSI include, то параметр wait мог не
6592 работать.
6593
6594 *) Исправление: при использовании директивы "proxy_buffering off" или
6595 при работе с memcached соединения могли не закрываться по таймауту.
6596
6597 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
6598 amd64, sparc64 и ppc64.
6599
6600
6601 Изменения в nginx 0.4.6 06.10.2006
6602
6603 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
6604 amd64, sparc64 и ppc64.
6605
6606 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
6607 chunk'ами, если длина ответа в методе
6608 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
6609
6610 *) Исправление: после перенаправления ошибки с помощью директивы
6611 error_page любая директива модуля ngx_http_rewrite_module возвращала
6612 эту ошибку; ошибка появилась в 0.4.4.
6613
6614
6615 Изменения в nginx 0.4.5 02.10.2006
6616
6617 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
6618 в 0.4.4.
6619
6620
6621 Изменения в nginx 0.4.4 02.10.2006
6622
6623 *) Добавление: переменная $scheme.
6624
6625 *) Добавление: директива expires поддерживает параметр max.
6626
6627 *) Добавление: директива include поддерживает маску "*".
6628 Спасибо Jonathan Dance.
6629
6630 *) Исправление: директива return всегда изменяла код ответа,
6631 перенаправленного директивой error_page.
6632
6633 *) Исправление: происходил segmentation fault, если в методе PUT
6634 передавалось тело нулевой длины.
6635
6636 *) Исправление: при использовании переменных в директиве proxy_redirect
6637 редирект изменялся неверно.
6638
6639
6640 Изменения в nginx 0.4.3 26.09.2006
6641
6642 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
6643 error_page.
6644
6645 *) Добавление: поддержка Solaris 10 event ports.
6646
6647 *) Добавление: модуль ngx_http_browser_module.
6648
6649 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
6650 помощью директивы error_page мог произойти segmentation fault.
6651
6652 *) Исправление: происходил segmentation fault, если в директиве
6653 proxy_pass использовался unix domain сокет; ошибка появилась в
6654 0.3.47.
6655
6656 *) Исправление: SSI не работал с ответами memcached и
6657 небуферизированными проксированными ответами.
6658
6659 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
6660
6661
6662 Изменения в nginx 0.4.2 14.09.2006
6663
6664 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
6665 появилась в 0.4.1.
6666
6667
6668 Изменения в nginx 0.4.1 14.09.2006
6669
6670 *) Исправление: совместимость с DragonFlyBSD.
6671 Спасибо Павлу Назарову.
6672
6673 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
6674 файлов больше 2G.
6675
6676 *) Добавление: теперь на Linux nginx для статических запросов использует
6677 флаг O_NOATIME.
6678 Спасибо Yusuf Goolamabbas.
6679
6680
6681 Изменения в nginx 0.4.0 30.08.2006
6682
6683 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
6684 фазы init module в фазу HTTP postconfiguration.
6685
6686 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
6687 считывается заранее: нужно явно инициировать чтение с помощью метода
6688 $r->has_request_body.
6689
6690 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
6691 DECLINED.
6692
6693 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
6694 заголовка "Date" для метода PUT.
6695
6696 *) Добавление: директива ssi работает внутри блока if.
6697
6698 *) Исправление: происходил segmentation fault, если в директиве index
6699 использовалась переменные и при этом первое имя индексного файла было
6700 без переменных; ошибка появилась в 0.1.29.
6701
6702
6703 Изменения в nginx 0.3.61 28.08.2006
6704
6705 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
6706
6707 *) Добавление: директива msie_refresh.
6708
6709 *) Добавление: директива recursive_error_pages.
6710
6711 *) Исправление: директива rewrite возвращала неправильный редирект, если
6712 редирект включал в себя выделенные закодированные символы из
6713 оригинального URI.
6714
6715
6716 Изменения в nginx 0.3.60 18.08.2006
6717
6718 *) Исправление: во время перенаправления ошибки рабочий процесс мог
6719 зациклиться; ошибка появилась в 0.3.59.
6720
6721
6722 Изменения в nginx 0.3.59 16.08.2006
6723
6724 *) Добавление: теперь можно делать несколько перенаправлений через
6725 директиву error_page.
6726
6727 *) Исправление: директива dav_access не поддерживала три параметра.
6728
6729 *) Исправление: директива error_page не изменяла строку "Content-Type"
6730 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
6731 в 0.3.58.
6732
6733
6734 Изменения в nginx 0.3.58 14.08.2006
6735
6736 *) Добавление: директива error_page поддерживает переменные.
6737
6738 *) Изменение: теперь на Linux используется интерфейс procfs вместо
6739 sysctl.
6740
6741 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
6742 "Content-Type" наследуется из первоначального ответа.
6743
6744 *) Исправление: директива error_page не перенаправляла ошибку 413.
6745
6746 *) Исправление: завершающий "?" не удалял старые аргументы, если в
6747 переписанном URI не было новых аргументов.
6748
6749 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
6750
6751
6752 Изменения в nginx 0.3.57 09.08.2006
6753
6754 *) Добавление: переменная $ssl_client_serial.
6755
6756 *) Исправление: в операторе "!-e" в директиве if.
6757 Спасибо Андриану Буданцову.
6758
6759 *) Исправление: при проверке клиентского сертификата nginx не передавал
6760 клиенту информацию о требуемых сертификатах.
6761
6762 *) Исправление: переменная $document_root не поддерживала переменные в
6763 директиве root.
6764
6765
6766 Изменения в nginx 0.3.56 04.08.2006
6767
6768 *) Добавление: директива dav_access.
6769
6770 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
6771 "!-e", "-x" и "!-x".
6772
6773 *) Исправление: при записи в access_log некоторых передаваемых клиенту
6774 строк заголовков происходил segmentation fault, если запрос возвращал
6775 редирект.
6776
6777
6778 Изменения в nginx 0.3.55 28.07.2006
6779
6780 *) Добавление: параметр stub в команде SSI include.
6781
6782 *) Добавление: команда SSI block.
6783
6784 *) Добавление: скрипт unicode2nginx добавлен в contrib.
6785
6786 *) Исправление: если root был задан только переменной, то корень
6787 задавался относительно префикса сервера.
6788
6789 *) Исправление: если в запросе был "//" или "/.", и после этого
6790 закодированные символы в виде "%XX", то проксируемый запрос
6791 передавался незакодированным.
6792
6793 *) Исправление: метод $r->header_in("Cookie") модуля
6794 ngx_http_perl_module теперь возвращает все строки "Cookie" в
6795 заголовке запроса.
6796
6797 *) Исправление: происходил segmentation fault, если использовался
6798 "client_body_in_file_only on" и делался переход к следующему бэкенду.
6799
6800 *) Исправление: при некоторых условиях во время переконфигурации коды
6801 символов внутри директивы charset_map могли считаться неверными;
6802 ошибка появилась в 0.3.50.
6803
6804
6805 Изменения в nginx 0.3.54 11.07.2006
6806
6807 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
6808
6809 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
6810 memcached_next_upstream поддерживают параметр off.
6811
6812 *) Добавление: директива debug_connection поддерживает запись адресов в
6813 формате CIDR.
6814
6815 *) Исправление: при перекодировании ответа проксированного сервера или
6816 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
6817 полностью.
6818
6819 *) Исправление: переменная $upstream_response_time содержала время
6820 только первого обращения к бэкенду.
6821
6822 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
6823 в 0.3.53.
6824
6825
6826 Изменения в nginx 0.3.53 07.07.2006
6827
6828 *) Изменение: директива add_header добавляет строки в ответы с кодом
6829 204, 301 и 302.
6830
6831 *) Добавление: директива server в блоке upstream поддерживает параметр
6832 weight.
6833
6834 *) Добавление: директива server_name поддерживает маску "*".
6835
6836 *) Добавление: nginx поддерживает тело запроса больше 2G.
6837
6838 *) Исправление: если при использовании "satisfy_any on" клиент успешно
6839 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
6840 forbidden by rule".
6841
6842 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
6843 409.
6844
6845 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
6846 ошибку, nginx продолжал проксирование.
6847
6848
6849 Изменения в nginx 0.3.52 03.07.2006
6850
6851 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
6852 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
6853 ошибку 405.
6854
6855 *) Исправление: при использовании ограничения скорости рабочий процесс
6856 мог зациклиться; ошибка появилась в 0.3.37.
6857
6858 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
6859 "unknown charset", даже если перекодировка не требовалась; ошибка
6860 появилась в 0.3.50.
6861
6862 *) Исправление: если в результате запроса PUT возвращался код 409, то
6863 временный файл не удалялся.
6864
6865
6866 Изменения в nginx 0.3.51 30.06.2006
6867
6868 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
6869 ошибка появилась в 0.3.50.
6870
6871
6872 Изменения в nginx 0.3.50 28.06.2006
6873
6874 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
6875 переименованы соответственно в proxy_intercept_errors и
6876 fastcgi_intercept_errors.
6877
6878 *) Добавление: модуль ngx_http_charset_module поддерживает
6879 перекодирование из однобайтных кодировок в UTF-8 и обратно.
6880
6881 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
6882 "X-Accel-Charset" в ответе бэкенда.
6883
6884 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
6885 только если также использовался символ "$".
6886
6887 *) Исправление: при некоторых условиях в SSI после вставки могла быть
6888 добавлена строка "<!--".
6889
6890 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
6891 то при использовании небуферизированного проксировании не закрывалось
6892 соединение с клиентом.
6893
6894
6895 Изменения в nginx 0.3.49 31.05.2006
6896
6897 *) Исправление: в директиве set.
6898
6899 *) Исправление: при включении в ssi двух и более подзапросов,
6900 обрабатываемых через FastCGI, вместо вывода второго и остальных
6901 подзапросов в ответ включался вывод первого подзапроса.
6902
6903
6904 Изменения в nginx 0.3.48 29.05.2006
6905
6906 *) Изменение: теперь модуль ngx_http_charset_module работает для
6907 подзапросов, в ответах которых нет строки заголовка "Content-Type".
6908
6909 *) Исправление: если в директиве proxy_pass не было URI, то директива
6910 "proxy_redirect default" добавляла в переписанный редирект в начало
6911 лишний слэш.
6912
6913 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
6914 GET, теперь это делается только для редиректов, выполняемых с помощью
6915 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
6916 0.3.42.
6917
6918 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
6919 с поддержкой потоков; ошибка появилась в 0.3.46.
6920
6921
6922 Изменения в nginx 0.3.47 23.05.2006
6923
6924 *) Добавление: директива upstream.
6925
6926 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
6927 всегда убирается.
6928
6929
6930 Изменения в nginx 0.3.46 11.05.2006
6931
6932 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
6933 fastcgi_hide_header и fastcgi_pass_header.
6934
6935 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
6936 proxy_pass_server упразднены.
6937
6938 *) Добавление: в режиме прокси поддерживается строка заголовка
6939 "X-Accel-Buffering" в ответе бэкенда.
6940
6941 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
6942 ngx_http_perl_module.
6943
6944
6945 Изменения в nginx 0.3.45 06.05.2006
6946
6947 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
6948 ssl_client_certificate.
6949
6950 *) Изменение: теперь переменная $request_method возвращает метод только
6951 основного запроса.
6952
6953 *) Изменение: в таблице перекодировки koi-win изменены коды символа
6954 &deg;.
6955
6956 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
6957 номера.
6958
6959 *) Исправление: если nginx распределял запросы на несколько машин, то
6960 при падении одной из них запросы, предназначенные для этой машины,
6961 перенаправлялись только на одну машину вместо того, чтобы равномерно
6962 распределяться между остальными.
6963
6964
6965 Изменения в nginx 0.3.44 04.05.2006
6966
6967 *) Добавление: параметр wait в команде SSI include.
6968
6969 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
6970 белорусские символы.
6971
6972 *) Исправление: в SSI.
6973
6974
6975 Изменения в nginx 0.3.43 26.04.2006
6976
6977 *) Исправление: в SSI.
6978
6979
6980 Изменения в nginx 0.3.42 26.04.2006
6981
6982 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
6983
6984 *) Исправление: ошибки при использовании в директиве rewrite одного и
6985 того же выделения более одного раза.
6986
6987 *) Исправление: в лог не записывались переменные
6988 $sent_http_content_type, $sent_http_content_length,
6989 $sent_http_last_modified, $sent_http_connection,
6990 $sent_http_keep_alive и $sent_http_transfer_encoding.
6991
6992 *) Исправление: переменная $sent_http_cache_control возвращала
6993 содержимое только одной строки "Cache-Control" в заголовке ответа.
6994
6995
6996 Изменения в nginx 0.3.41 21.04.2006
6997
6998 *) Добавление: ключ -v.
6999
7000 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
7001 segmentation fault.
7002
7003 *) Исправление: в обработке FastCGI.
7004
7005 *) Исправление: если путь к перловым модулям не был указан с помощью
7006 --with-perl_modules_path=PATH или директивы perl_modules, то на
7007 старте происходил segmentation fault.
7008
7009
7010 Изменения в nginx 0.3.40 19.04.2006
7011
7012 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
7013
7014 *) Добавление: директива create_full_put_path.
7015
7016 *) Добавление: переменная $limit_rate.
7017
7018
7019 Изменения в nginx 0.3.39 17.04.2006
7020
7021 *) Добавление: директива uninitialized_variable_warn; уровень
7022 логгирования сообщения о неинициализированной переменной понижен с
7023 уровня alert на warn.
7024
7025 *) Добавление: директива override_charset.
7026
7027 *) Изменение: при использовании неизвестной переменной в SSI-командах
7028 echo и if expr='$name' теперь не записывается в лог сообщение о
7029 неизвестной переменной.
7030
7031 *) Исправление: счётчик активных соединений рос при превышении лимита
7032 соединений, заданного директивой worker_connections; ошибка появилась
7033 в 0.2.0.
7034
7035 *) Исправление: при некоторых условия ограничение скорости соединения
7036 могло не работать; ошибка появилась в 0.3.38.
7037
7038
7039 Изменения в nginx 0.3.38 14.04.2006
7040
7041 *) Добавление: модуль ngx_http_dav_module.
7042
7043 *) Изменение: оптимизация модуля ngx_http_perl_module.
7044 Спасибо Сергею Скворцову.
7045
7046 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7047 $r->request_body_file.
7048
7049 *) Добавление: директива client_body_in_file_only.
7050
7051 *) Изменение: теперь при переполнении диска nginx пытается писать
7052 access_log'и только раз в секунду.
7053 Спасибо Антону Южанинову и Максиму Дунину.
7054
7055 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
7056 при значениях больше 100 Kbyte/s.
7057 Спасибо ForJest.
7058
7059 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
7060 символы "\r" и "\n" в логине и пароле в закодированном виде.
7061 Спасибо Максиму Дунину.
7062
7063
7064 Изменения в nginx 0.3.37 07.04.2006
7065
7066 *) Добавление: директива limit_except.
7067
7068 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
7069 "!-f".
7070
7071 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7072 $r->request_body.
7073
7074 *) Исправление: в модуле ngx_http_addition_filter_module.
7075
7076
7077 Изменения в nginx 0.3.36 05.04.2006
7078
7079 *) Добавление: модуль ngx_http_addition_filter_module.
7080
7081 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
7082 внутри блока if.
7083
7084 *) Добавление: директивы proxy_ignore_client_abort и
7085 fastcgi_ignore_client_abort.
7086
7087 *) Добавление: переменная $request_completion.
7088
7089 *) Добавление: модуль ngx_http_perl_module поддерживает методы
7090 $r->request_method и $r->remote_addr.
7091
7092 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
7093
7094 *) Исправление: строка "\/" в начале выражения команды if модуля
7095 ngx_http_ssi_module воспринималась неверно.
7096
7097 *) Исправление: в использовании регулярных выражениях в команде if
7098 модуля ngx_http_ssi_module.
7099
7100 *) Исправление: при задании относительного пути в директивах
7101 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
7102 perl_modules использовался каталог относительно текущего каталога, а
7103 не относительно префикса сервера.
7104
7105
7106 Изменения в nginx 0.3.35 22.03.2006
7107
7108 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
7109 для первой директивы listen; ошибка появилась в 0.3.31.
7110
7111 *) Исправление: в директиве proxy_pass без URI при использовании в
7112 подзапросе.
7113
7114
7115 Изменения в nginx 0.3.34 21.03.2006
7116
7117 *) Добавление: директива add_header поддерживает переменные.
7118
7119
7120 Изменения в nginx 0.3.33 15.03.2006
7121
7122 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
7123 fastcgi_next_upstream.
7124
7125 *) Исправление: ngx_http_perl_module не работал со встроенным в
7126 конфигурационный файл кодом, если он не начинался сразу же с "sub".
7127
7128 *) Исправление: в директиве post_action.
7129
7130
7131 Изменения в nginx 0.3.32 11.03.2006
7132
7133 *) Исправление: удаление отладочного логгирования на старте и при
7134 переконфигурации; ошибка появилась в 0.3.31.
7135
7136
7137 Изменения в nginx 0.3.31 10.03.2006
7138
7139 *) Изменение: теперь nginx передаёт неверные ответы проксированного
7140 бэкенда.
7141
7142 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
7143
7144 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
7145
7146 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
7147 64-битном ядре MacOSX.
7148 Спасибо Андрею Нигматулину.
7149
7150 *) Исправление: если внутри одного сервера описаны несколько директив
7151 listen, слушающих на разных адресах, то имена серверов вида
7152 "*.domain.tld" работали только для первого адреса; ошибка появилась в
7153 0.3.18.
7154
7155 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7156 не передавались запросы с телом, записанным во временный файл.
7157
7158 *) Исправление: совместимость с perl 5.8.8.
7159
7160
7161 Изменения в nginx 0.3.30 22.02.2006
7162
7163 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
7164 с уровня crit.
7165
7166 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
7167 ngx_http_ssi_filter_module.
7168
7169 *) Исправление: nginx не собирался на i386 платформе, если использовался
7170 PIC; ошибка появилась в 0.3.27.
7171
7172
7173 Изменения в nginx 0.3.29 20.02.2006
7174
7175 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
7176 FastCGI передаёт большое количество предупреждений перед ответом.
7177
7178 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
7179 строка заголовка "Transfer-Encoding: chunked".
7180
7181 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
7182 передавал полные строки заголовка ответа в отдельных FastCGI записях.
7183
7184 *) Исправление: если в директиве post_action был указан проксируемый
7185 URI, то он выполнялся только после успешного завершения запроса.
7186
7187
7188 Изменения в nginx 0.3.28 16.02.2006
7189
7190 *) Добавление: директива restrict_host_names упразднена.
7191
7192 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
7193
7194 *) Исправление: при некоторых условиях проксированное соединение с
7195 клиентом завершалось преждевременно.
7196 Спасибо Владимиру Шутову.
7197
7198 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
7199 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
7200
7201 *) Исправление: директива post_action работала только после успешного
7202 завершения запроса.
7203
7204 *) Исправление: тело проксированного ответа, создаваемого директивой
7205 post_action, передавалось клиенту.
7206
7207
7208 Изменения в nginx 0.3.27 08.02.2006
7209
7210 *) Изменение: директивы variables_hash_max_size и
7211 variables_hash_bucket_size.
7212
7213 *) Добавление: переменная $body_bytes_sent доступна не только в
7214 директиве log_format.
7215
7216 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
7217
7218 *) Добавление: определение размера строки кэша распространённых
7219 процессоров при старте.
7220
7221 *) Добавление: директива accept_mutex теперь поддерживается посредством
7222 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
7223
7224 *) Добавление: директива lock_file и параметр автоконфигурации
7225 --with-lock-path=PATH.
7226
7227 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7228 не передавались запросы с телом.
7229
7230
7231 Изменения в nginx 0.3.26 03.02.2006
7232
7233 *) Изменение: директива optimize_host_names переименована в
7234 optimize_server_names.
7235
7236 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
7237 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
7238
7239
7240 Изменения в nginx 0.3.25 01.02.2006
7241
7242 *) Исправление: при неверной конфигурации на старте или во время
7243 переконфигурации происходил segmentation fault; ошибка появилась в
7244 0.3.24.
7245
7246
7247 Изменения в nginx 0.3.24 01.02.2006
7248
7249 *) Изменение: обход ошибки в kqueue во FreeBSD.
7250
7251 *) Исправление: ответ, создаваемый директивой post_action, теперь не
7252 передаётся клиенту.
7253
7254 *) Исправление: при использовании большого количества лог-файлов
7255 происходила утечка памяти.
7256
7257 *) Исправление: внутри одного location работала только первая директива
7258 proxy_redirect.
7259
7260 *) Исправление: на 64-битных платформах при старте мог произойти
7261 segmentation fault, если использовалось большое количество имён в
7262 директивах server_name; ошибка появилась в 0.3.18.
7263
7264
7265 Изменения в nginx 0.3.23 24.01.2006
7266
7267 *) Добавление: директива optimize_host_names.
7268
7269 *) Исправление: ошибки при использовании переменных в директивах path и
7270 alias.
7271
7272 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
7273 Linux и Solaris.
7274
7275
7276 Изменения в nginx 0.3.22 17.01.2006
7277
7278 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
7279 и $r->unescape.
7280
7281 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
7282 упразднён.
7283
7284 *) Исправление: если в директиве valid_referers указаны только none или
7285 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
7286
7287
7288 Изменения в nginx 0.3.21 16.01.2006
7289
7290 *) Добавление: модуль ngx_http_perl_module.
7291
7292 *) Изменение: директива valid_referers разрешает использовать рефереры
7293 совсем без URI.
7294
7295
7296 Изменения в nginx 0.3.20 11.01.2006
7297
7298 *) Исправление: ошибки в обработке SSI.
7299
7300 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
7301 виде /uri?args.
7302
7303
7304 Изменения в nginx 0.3.19 28.12.2005
7305
7306 *) Добавление: директивы path и alias поддерживают переменные.
7307
7308 *) Изменение: теперь директива valid_referers опять учитывает URI.
7309
7310 *) Исправление: ошибки в обработке SSI.
7311
7312
7313 Изменения в nginx 0.3.18 26.12.2005
7314
7315 *) Добавление: директива server_names поддерживает имена вида
7316 ".domain.tld".
7317
7318 *) Добавление: директива server_names использует хэш для имён вида
7319 "*.domain.tld" и более эффективный хэш для обычных имён.
7320
7321 *) Изменение: директивы server_names_hash_max_size и
7322 server_names_hash_bucket_size.
7323
7324 *) Изменение: директивы server_names_hash и server_names_hash_threshold
7325 упразднены.
7326
7327 *) Добавление: директива valid_referers использует хэш для имён сайтов.
7328
7329 *) Изменение: теперь директива valid_referers проверяет только имена
7330 сайтов без учёта URI.
7331
7332 *) Исправление: некоторые имена вида ".domain.tld" неверно
7333 обрабатывались модулем ngx_http_map_module.
7334
7335 *) Исправление: если конфигурационного файла не было, то происходил
7336 segmentation fault; ошибка появилась в 0.3.12.
7337
7338 *) Исправление: на 64-битных платформах при старте мог произойти
7339 segmentation fault; ошибка появилась в 0.3.16.
7340
7341
7342 Изменения в nginx 0.3.17 18.12.2005
7343
7344 *) Изменение: на Linux configure теперь проверяет наличие epoll и
7345 sendfile64() в ядре.
7346
7347 *) Добавление: директива map поддерживает доменные имена в формате
7348 ".domain.tld".
7349
7350 *) Исправление: во время SSL handshake не иcпользовались таймауты;
7351 ошибка появилась в 0.2.4.
7352
7353 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
7354
7355 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7356 по умолчанию использовался порт 80.
7357
7358
7359 Изменения в nginx 0.3.16 16.12.2005
7360
7361 *) Добавление: модуль ngx_http_map_module.
7362
7363 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
7364
7365 *) Добавление: директива ssi_value_length.
7366
7367 *) Добавление: директива worker_rlimit_core.
7368
7369 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
7370 Pentium 4 номер соединения в логах всегда был равен 1.
7371
7372 *) Исправление: команда config timefmt в SSI задавала неверный формат
7373 времени.
7374
7375 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
7376 использовании SSL соединений; ошибка появилась в 0.3.13.
7377 Спасибо Rob Mueller.
7378
7379 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
7380 ошибка появилась в 0.3.13.
7381
7382
7383 Изменения в nginx 0.3.15 07.12.2005
7384
7385 *) Добавление: новой код 444 в директиве return для закрытия соединения.
7386
7387 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
7388
7389 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
7390 соединений только при плавном выходе и включённой директиве
7391 debug_points.
7392
7393
7394 Изменения в nginx 0.3.14 05.12.2005
7395
7396 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
7397 в 0.3.13.
7398
7399
7400 Изменения в nginx 0.3.13 05.12.2005
7401
7402 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
7403
7404 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
7405 /dev/poll.
7406
7407 *) Исправление: ошибки в обработке SSI.
7408
7409 *) Исправление: sendfilev() в Solaris теперь не используется при
7410 передаче тела запроса FastCGI-серверу через unix domain сокет.
7411
7412 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
7413 появилась в 0.3.11.
7414
7415
7416 Изменения в nginx 0.3.12 26.11.2005
7417
7418 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
7419 то при использовании директивы "satisfy_any on" директивы доступа и
7420 аутентификации не работали. Модуль ngx_http_realip_module не
7421 собирался и не собирается по умолчанию.
7422
7423 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
7424
7425 *) Изменение: директивы proxy_header_buffer_size и
7426 fastcgi_header_buffer_size переименованы соответственно в
7427 proxy_buffer_size и fastcgi_buffer_size.
7428
7429 *) Добавление: модуль ngx_http_memcached_module.
7430
7431 *) Добавление: директива proxy_buffering.
7432
7433 *) Исправление: изменение в работе с accept mutex при использовании
7434 метода rtsig; ошибка появилась в 0.3.0.
7435
7436 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
7437 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
7438
7439 *) Исправление: при наследовании директивы auth_basic с уровня http в
7440 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
7441 "Basic realm".
7442
7443 *) Исправление: если в директиве access_log был явно указан формат
7444 combined, то в лог записывались пустые строки; ошибка появилась в
7445 0.3.8.
7446
7447 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
7448 Solaris.
7449
7450 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
7451 в кавычках и закрывающую скобку.
7452
7453
7454 Изменения в nginx 0.3.11 15.11.2005
7455
7456 *) Исправление: nginx не передавал при проксировании тело запроса и
7457 строки заголовка клиента; ошибка появилась в 0.3.10.
7458
7459
7460 Изменения в nginx 0.3.10 15.11.2005
7461
7462 *) Изменение: директива valid_referers и переменная $invalid_referer
7463 перенесены из модуля ngx_http_rewrite_module в новый модуль
7464 ngx_http_referer_module.
7465
7466 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
7467 "$body_bytes_sent".
7468
7469 *) Добавление: переменные "$sent_http_...".
7470
7471 *) Добавление: директива if поддерживает операции "=" и "!=".
7472
7473 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
7474
7475 *) Добавление: директива proxy_set_body.
7476
7477 *) Добавление: директива post_action.
7478
7479 *) Добавление: модуль ngx_http_empty_gif_module.
7480
7481 *) Добавление: директива worker_cpu_affinity для Linux.
7482
7483 *) Исправление: директива rewrite не раскодировала символы в редиректах
7484 в URI, теперь символы раскодируются, кроме символов %00-%25 и
7485 %7F-%FF.
7486
7487 *) Исправление: nginx не собирался компилятором icc 9.0.
7488
7489 *) Исправление: если для статического файла нулевого размера был
7490 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
7491
7492
7493 Изменения в nginx 0.3.9 10.11.2005
7494
7495 *) Исправление: nginx считал небезопасными URI, в которых между двумя
7496 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
7497
7498
7499 Изменения в nginx 0.3.8 09.11.2005
7500
7501 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
7502 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
7503 наличие путей "/../" и нулей.
7504
7505 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
7506 строке "Authorization" в заголовке запроса.
7507
7508 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
7509 и ngx_imap_ssl_module.
7510
7511 *) Добавление: директива auth_http_header модуля
7512 ngx_imap_auth_http_module.
7513
7514 *) Добавление: директива add_header.
7515
7516 *) Добавление: модуль ngx_http_realip_module.
7517
7518 *) Добавление: новые переменные для использования в директиве
7519 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
7520 $uri, $request_time, $request_length, $upstream_status,
7521 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
7522 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
7523 упразднены.
7524
7525 *) Изменение: в директиве "if" ложными значениями переменных теперь
7526 являются пустая строка "" и строки, начинающиеся на "0".
7527
7528 *) Исправление: при работает с проксированными или FastCGI-серверами
7529 nginx мог оставлять открытыми соединения и временные файлы с
7530 запросами клиентов.
7531
7532 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
7533 плавном выходе.
7534
7535 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
7536 запрос проксировался в location, заданном регулярным выражением, то
7537 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
7538
7539 *) Исправление: директива expires не удаляла уже установленную строку
7540 заголовка "Expires".
7541
7542 *) Исправление: при использовании метода rtsig и нескольких рабочих
7543 процессах nginx мог перестать принимать запросы.
7544
7545 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
7546 "\'".
7547
7548 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
7549 при использовании сжатия ответ передавался не до конца или не
7550 передавался вообще.
7551
7552
7553 Изменения в nginx 0.3.7 27.10.2005
7554
7555 *) Добавление: директива access_log поддерживает параметр buffer=.
7556
7557 *) Исправление: nginx не собирался на платформах, отличных от i386,
7558 amd64, sparc и ppc; ошибка появилась в 0.3.2.
7559
7560
7561 Изменения в nginx 0.3.6 24.10.2005
7562
7563 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
7564 пустой логин.
7565
7566 *) Добавление: директива log_format поддерживает переменные в виде
7567 $name.
7568
7569 *) Исправление: если хотя бы в одном сервере не было описано ни одной
7570 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
7571 0.3.3.
7572
7573 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
7574 использовался порт 80.
7575
7576
7577 Изменения в nginx 0.3.5 21.10.2005
7578
7579 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
7580 мог произойти segmentation fault; ошибка появилась в 0.2.2.
7581
7582 *) Исправление: accept mutex не работал, все соединения обрабатывались
7583 одним рабочим процессом; ошибка появилась в 0.3.3.
7584
7585 *) Исправление: при использовании метода rtsig и директивы
7586 timer_resolution не работали таймауты.
7587
7588
7589 Изменения в nginx 0.3.4 19.10.2005
7590
7591 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
7592 появилась в 0.3.3.
7593
7594
7595 Изменения в nginx 0.3.3 19.10.2005
7596
7597 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
7598 "backlog" и "accept_filter".
7599
7600 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
7601
7602 *) Изменение: параметр лога $msec теперь не требует дополнительного
7603 системного вызова gettimeofday().
7604
7605 *) Добавление: ключ -t теперь проверяет директивы listen.
7606
7607 *) Исправление: если в директиве listen был указан неверный адрес, то
7608 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
7609
7610 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
7611 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
7612
7613 *) Добавление: директива timer_resolution.
7614
7615 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
7616
7617 *) Исправление: временный файл с телом запроса клиента теперь удаляется
7618 сразу после того, как клиенту передан заголовок ответа.
7619
7620 *) Исправление: совместимость с OpenSSL 0.9.6.
7621
7622 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
7623 относительными.
7624
7625 *) Исправление: директива ssl_prefer_server_ciphers не работала для
7626 модуля ngx_imap_ssl_module.
7627
7628 *) Исправление: директива ssl_protocols позволяла задать только один
7629 протокол.
7630
7631
7632 Изменения в nginx 0.3.2 12.10.2005
7633
7634 *) Добавление: поддержка Sun Studio 10 C compiler.
7635
7636 *) Добавление: директивы proxy_upstream_max_fails,
7637 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
7638 fastcgi_upstream_fail_timeout.
7639
7640
7641 Изменения в nginx 0.3.1 10.10.2005
7642
7643 *) Исправление: во время переполнения очереди сигналов при использовании
7644 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
7645
7646 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
7647
7648
7649 Изменения в nginx 0.3.0 07.10.2005
7650
7651 *) Изменение: убрано десятидневное ограничение времени работы рабочего
7652 процесса. Ограничение было введено из-за переполнения миллисекундных
7653 таймеров.
7654
7655
7656 Изменения в nginx 0.2.6 05.10.2005
7657
7658 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
7659 бэкенду при использовании распределения нагрузки.
7660
7661 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
7662 запрос теперь передаётся, если в директиве proxy_pass отсутствует
7663 URI.
7664
7665 *) Добавление: директива error_page поддерживает редиректы и позволяет
7666 более гибко менять код ошибки.
7667
7668 *) Изменение: в проксированных подзапросах теперь игнорируется
7669 переданный charset.
7670
7671 *) Исправление: если после изменения URI в блоке if для запроса не
7672 находилась новая конфигурация, то правила модуля
7673 ngx_http_rewrite_module выполнялись снова.
7674
7675 *) Исправление: если директива set устанавливала переменную модуля
7676 ngx_http_geo_module в какой-либо части конфигурации, то эта
7677 переменная не была доступна в других частях конфигурации и выдавалась
7678 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
7679
7680
7681 Изменения в nginx 0.2.5 04.10.2005
7682
7683 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
7684 теперь выдаёт предупреждение и изменяет старое значение.
7685
7686 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
7687
7688 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
7689 команде include.
7690
7691 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
7692 значений переменных в выражениях команды if.
7693
7694
7695 Изменения в nginx 0.2.4 03.10.2005
7696
7697 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
7698 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
7699 if.
7700
7701 *) Исправление: ошибки при проксировании location без слэша в конце;
7702 ошибка появилась в 0.1.44.
7703
7704 *) Исправление: при использовании метода rtsig мог произойти
7705 segmentation fault; ошибка появилась в 0.2.0.
7706
7707
7708 Изменения в nginx 0.2.3 30.09.2005
7709
7710 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
7711 появилась в 0.2.2.
7712
7713
7714 Изменения в nginx 0.2.2 30.09.2005
7715
7716 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
7717
7718 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
7719 директивой set.
7720
7721 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
7722 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
7723
7724 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
7725 длинных имён файлов;
7726
7727 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
7728 файлы, начинающиеся на точку.
7729
7730 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
7731 привести также к закрытию другого соединения.
7732 Спасибо Rob Mueller.
7733
7734 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
7735 HTTPS.
7736
7737
7738 Изменения в nginx 0.2.1 23.09.2005
7739
7740 *) Исправление: если все бэкенды, используемые для балансировки
7741 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
7742 nginx мог зациклится; ошибка появилась в 0.2.0.
7743
7744
7745 Изменения в nginx 0.2.0 23.09.2005
7746
7747 *) Изменились имена pid-файлов, используемые во время обновления
7748 исполняемого файла. Ручное переименование теперь не нужно. Старый
7749 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
7750 запускает новый исполняемый файл. Новый основной процесс создаёт
7751 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
7752 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
7753 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
7754 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
7755 0.2.0 - используют pid-файл без суффиксов.
7756
7757 *) Изменение: директива worker_connections, новое название директивы
7758 connections; директива теперь задаёт максимальное число соединений, а
7759 не максимально возможный номер дескриптора для сокета.
7760
7761 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
7762 рабочего процесса.
7763
7764 *) Добавление: директива satisfy_any.
7765
7766 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
7767 не работают для подзапросов.
7768
7769 *) Добавление: директивы worker_rlimit_nofile и
7770 worker_rlimit_sigpending.
7771
7772 *) Исправление: если все бэкенды, используемые для балансировки
7773 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
7774 nginx не обращался к ним в течение 60 секунд.
7775
7776 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
7777 Спасибо Rob Mueller.
7778
7779 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
7780
7781 *) Исправление: ошибки при использовании SSI и сжатия.
7782
7783 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
7784 "Expires" и "Cache-Control".
7785 Спасибо Александру Кукушкину.
7786
7787
7788 Изменения в nginx 0.1.45 08.09.2005
7789
7790 *) Изменение: директива ssl_engine упразднена в модуле
7791 ngx_http_ssl_module и перенесена на глобальный уровень.
7792
7793 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
7794 передавались через SSL соединение.
7795
7796 *) Разные исправления в IMAP/POP3 прокси.
7797
7798
7799 Изменения в nginx 0.1.44 06.09.2005
7800
7801 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
7802
7803 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
7804
7805 *) Добавление: директива userid_mark.
7806
7807 *) Добавление: значение переменной $remote_user определяется независимо
7808 от того, используется ли авторизация или нет.
7809
7810
7811 Изменения в nginx 0.1.43 30.08.2005
7812
7813 *) Добавление: listen(2) backlog в директиве listen можно менять по
7814 сигналу -HUP.
7815
7816 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
7817
7818 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
7819 серверу.
7820
7821 *) Исправление: если в ответе проксированного сервера или FastCGI
7822 сервера была строка "Cache-Control", то при использовании директивы
7823 expires происходил segmentation fault или рабочий процесс мог
7824 зациклится; в режиме прокси ошибка появилась в 0.1.29.
7825
7826
7827 Изменения в nginx 0.1.42 23.08.2005
7828
7829 *) Исправление: если URI запроса получался нулевой длины после обработки
7830 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
7831 происходил segmentation fault или bus error.
7832
7833 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
7834 появилась в 0.1.38.
7835
7836
7837 Изменения в nginx 0.1.41 25.07.2005
7838
7839 *) Исправление: если переменная использовалась в файле конфигурации, то
7840 она не могла использоваться в SSI.
7841
7842
7843 Изменения в nginx 0.1.40 22.07.2005
7844
7845 *) Исправление: если клиент слал очень длинную строку заголовка, то в
7846 логе не помещалась информация, связанная с этим запросом.
7847
7848 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
7849 строка "Set-Cookie"; ошибка появилась в 0.1.39.
7850
7851 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
7852 строка "Content-Disposition".
7853
7854 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
7855 на которых он слушал.
7856
7857 *) Исправление: после обновления исполняемого файла на лету на Linux и
7858 Solaris название процесса в команде ps становилось короче.
7859
7860
7861 Изменения в nginx 0.1.39 14.07.2005
7862
7863 *) Изменения в модуле ngx_http_charset_module: директива default_charset
7864 упразднена; директива charset задаёт кодировку ответа; директива
7865 source_charset задаёт только исходную кодировку.
7866
7867 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
7868 не передавалась строка заголовка "WWW-Authenticate".
7869
7870 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
7871 могли закрыть соединение до того, как что-нибудь было передано
7872 клиенту; ошибка появилась в 0.1.38.
7873
7874 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
7875
7876 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
7877 URI в команде include virtual.
7878
7879 *) Исправление: если в строке заголовка ответа бэкенда была строка
7880 "Location", которую nginx не должен был изменять, то в ответе
7881 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
7882
7883 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
7884 ngx_http_fastcgi_module не наследовались с уровня server на уровень
7885 location; ошибка появилась в 0.1.29.
7886
7887 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
7888 сертификатов.
7889
7890 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
7891 длинных имён файлов; ошибка появилась в 0.1.38.
7892
7893 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
7894 стадии login.
7895
7896
7897 Изменения в nginx 0.1.38 08.07.2005
7898
7899 *) Добавление: директива limit_rate поддерживается в режиме прокси и
7900 FastCGI.
7901
7902 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7903 "X-Accel-Limit-Rate" в ответе бэкенда.
7904
7905 *) Добавление: директива break.
7906
7907 *) Добавление: директива log_not_found.
7908
7909 *) Исправление: при перенаправлении запроса с помощью строки заголовка
7910 "X-Accel-Redirect" не изменялся код ответа.
7911
7912 *) Исправление: переменные, установленные директивой set не могли
7913 использоваться в SSI.
7914
7915 *) Исправление: при включении в SSI более одного удалённого подзапроса
7916 мог произойти segmentation fault.
7917
7918 *) Исправление: если статусная строка в ответе бэкенда передавалась в
7919 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
7920 0.1.29.
7921
7922 *) Добавление: директива ssi_types.
7923
7924 *) Добавление: директива autoindex_exact_size.
7925
7926 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
7927 имена файлов в UTF-8.
7928
7929 *) Добавление: IMAP/POP3 прокси.
7930
7931
7932 Изменения в nginx 0.1.37 23.06.2005
7933
7934 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
7935
7936 *) Исправление: при включении большого количества вставок или нескольких
7937 больших вставок с помощью SSI ответ мог передаваться не полностью.
7938
7939 *) Исправление: если все бэкенды возвращали ответ 404, то при
7940 использовании параметра http_404 в директивах proxy_next_upstream или
7941 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
7942
7943
7944 Изменения в nginx 0.1.36 15.06.2005
7945
7946 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host",
7947 "Connection", "Content-Length" и "Authorization", то nginx теперь
7948 выдаёт ошибку 400.
7949
7950 *) Изменение: директива post_accept_timeout упразднена.
7951
7952 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
7953 listen.
7954
7955 *) Добавление: поддержка accept фильтров во FreeBSD.
7956
7957 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
7958
7959 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
7960 файлов в UTF-8.
7961
7962 *) Исправление: после добавления новый лог-файл ротация этого лога по
7963 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
7964 раза по сигналу -HUP.
7965
7966
7967 Изменения в nginx 0.1.35 07.06.2005
7968
7969 *) Добавление: директива working_directory.
7970
7971 *) Добавление: директива port_in_redirect.
7972
7973 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
7974 то происходил segmentation fault; ошибка появилась в 0.1.29.
7975
7976 *) Исправление: если было сконфигурировано более 10 серверов или в
7977 сервере не описана директива "listen", то при запуске мог произойти
7978 segmentation fault.
7979
7980 *) Исправление: если ответ не помещался во временный файл, то мог
7981 произойти segmentation fault.
7982
7983 *) Исправление: nginx возвращал ошибку 400 на запросы вида
7984 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
7985
7986
7987 Изменения в nginx 0.1.34 26.05.2005
7988
7989 *) Исправление: при включении больших ответов с помощью SSI рабочий
7990 процесс мог зациклиться.
7991
7992 *) Исправление: переменные, устанавливаемые директивой "set", не были
7993 доступны в SSI.
7994
7995 *) Добавление: директива autoindex_localtime.
7996
7997 *) Исправление: пустое значение в директиве proxy_set_header запрещает
7998 передачу заголовка.
7999
8000
8001 Изменения в nginx 0.1.33 23.05.2005
8002
8003 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
8004 появилась в 0.1.29.
8005
8006 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
8007 вызывали bus fault при запуске.
8008
8009 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
8010 HTTP.
8011
8012 *) Исправление: если директива rewrite использовала выделения внутри
8013 директивы if, то возвращалась ошибка 500.
8014
8015
8016 Изменения в nginx 0.1.32 19.05.2005
8017
8018 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
8019 передавались аргументы; ошибка появилась в 0.1.29.
8020
8021 *) Добавление: директива if поддерживает выделения в регулярных
8022 выражениях.
8023
8024 *) Добавление: директива set поддерживает переменные и выделения из
8025 регулярных выражений.
8026
8027 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8028 "X-Accel-Redirect" в ответе бэкенда.
8029
8030
8031 Изменения в nginx 0.1.31 16.05.2005
8032
8033 *) Исправление: при использовании SSL ответ мог передаваться не до
8034 конца.
8035
8036 *) Исправление: ошибки при обработке SSI в ответе, полученного от
8037 FastCGI-сервера.
8038
8039 *) Исправление: ошибки при использовании SSI и сжатия.
8040
8041 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
8042 появилась в 0.1.30.
8043
8044
8045 Изменения в nginx 0.1.30 14.05.2005
8046
8047 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
8048
8049 *) Исправление: при использовании SSL ответ мог передаваться не до
8050 конца.
8051
8052 *) Исправление: если длина части ответа, полученного за один раз от
8053 проксируемого или FastCGI сервера была равна 500 байт, то nginx
8054 возвращал код ответа 500; в режиме прокси ошибка появилась только в
8055 0.1.29.
8056
8057 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
8058 параметрами.
8059
8060 *) Добавление: директива return может возвращать код ответа 204.
8061
8062 *) Добавление: директива ignore_invalid_headers.
8063
8064
8065 Изменения в nginx 0.1.29 12.05.2005
8066
8067 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
8068 virtual.
8069
8070 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
8071 вида 'if expr="$NAME"' и команды else и endif. Допускается только
8072 один уровень вложенности.
8073
8074 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
8075 DATE_LOCAL и DATE_GMT и команду config timefmt.
8076
8077 *) Добавление: директива ssi_ignore_recycled_buffers.
8078
8079 *) Исправление: если переменная QUERY_STRING не была определена, то в
8080 команде echo не ставилось значение по умолчанию.
8081
8082 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
8083
8084 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
8085 proxy_pass_request_body и proxy_method.
8086
8087 *) Добавление: директива proxy_set_header. Директива proxy_x_var
8088 упразднена и должна быть заменена директивой proxy_set_header.
8089
8090 *) Изменение: директива proxy_preserve_host упразднена и должна быть
8091 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
8092 off" или директивой "proxy_set_header Host $host:$proxy_port" и
8093 соответствующими ей директивами proxy_redirect.
8094
8095 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
8096 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
8097
8098 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
8099 быть заменена директивой
8100 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
8101
8102 *) Изменение: директива proxy_set_x_url упразднена и должна быть
8103 заменена директивой
8104 "proxy_set_header X-URL http://$host:$server_port$request_uri".
8105
8106 *) Добавление: директива fastcgi_param.
8107
8108 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
8109 упразднены и должны быть замены директивами fastcgi_param.
8110
8111 *) Добавление: директива index может использовать переменные.
8112
8113 *) Добавление: директива index может быть указана на уровне http и
8114 server.
8115
8116 *) Изменение: только последний параметр в директиве index может быть
8117 абсолютным.
8118
8119 *) Добавление: в директиве rewrite могут использоваться переменные.
8120
8121 *) Добавление: директива internal.
8122
8123 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
8124 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
8125 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
8126
8127 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
8128 клиента и ответа бэкенда.
8129
8130 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
8131 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
8132
8133 *) Исправление: если бэкенд передавал неверную строку в заголовке
8134 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
8135
8136 *) Исправление: при использовании отказоустойчивой конфигурации в
8137 FastCGI мог происходить segmentation fault.
8138
8139 *) Исправление: директива expires не удаляла уже установленные строки
8140 заголовка "Expires" и "Cache-Control".
8141
8142 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
8143 запроса "Host".
8144
8145 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
8146
8147 *) Исправление: директива rewrite неверно работала, если в запросе
8148 присутствовали аргументы.
8149
8150 *) Исправление: nginx не собирался на MacOS X.
8151
8152
8153 Изменения в nginx 0.1.28 08.04.2005
8154
8155 *) Исправление: при проксировании больших файлов nginx сильно нагружал
8156 процессор.
8157
8158 *) Исправление: nginx не собирался gcc 4.0 на Linux.
8159
8160
8161 Изменения в nginx 0.1.27 28.03.2005
8162
8163 *) Добавление: параметр blocked в директиве valid_referers.
8164
8165 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
8166 уровне info, в лог также записывается имя сервера и строки заголовка
8167 запроса "Host" и "Referer".
8168
8169 *) Изменение: при записи ошибок в лог записывается также строка
8170 заголовка запроса "Host".
8171
8172 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
8173 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
8174
8175 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
8176 параметр конфигурации --without-ngx_http_auth_basic_module.
8177
8178
8179 Изменения в nginx 0.1.26 22.03.2005
8180
8181 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
8182 игнорируется и записываются в error_log на уровне info.
8183
8184 *) Изменение: при записи ошибок в лог записывается также имя сервера,
8185 при обращении к которому произошла ошибка.
8186
8187 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
8188 и auth_basic_user_file.
8189
8190
8191 Изменения в nginx 0.1.25 19.03.2005
8192
8193 *) Исправление: nginx не работал на Linux parisc.
8194
8195 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
8196 sysctl kern.ipc.somaxconn слишком большое.
8197
8198 *) Исправление: если модуль ngx_http_index_module делал внутреннее
8199 перенаправление запроса в модули ngx_http_proxy_module или
8200 ngx_http_fastcgi_module, то файл индекса не закрывался после
8201 обслуживания запроса.
8202
8203 *) Добавление: директива proxy_pass может использоваться в location,
8204 заданных регулярным выражением.
8205
8206 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
8207 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
8208
8209 *) Исправление: nginx очень медленно запускался при большом количестве
8210 адресов и использовании текстовых значений в директиве geo.
8211
8212 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
8213 Прежний вариант без "$" пока работает, но вскоре будет убран.
8214
8215 *) Добавление: параметр лога "%{VARIABLE}v".
8216
8217 *) Добавление: директива "set $name value".
8218
8219 *) Исправление: совместимость с gcc 4.0.
8220
8221 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
8222
8223
8224 Изменения в nginx 0.1.24 04.03.2005
8225
8226 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
8227 QUERY_STRING и DOCUMENT_URI.
8228
8229 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
8230 на существующий каталог, если этот каталог был указан как alias.
8231
8232 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
8233 при больших ответах.
8234
8235 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
8236 правильным referrer'ом.
8237
8238
8239 Изменения в nginx 0.1.23 01.03.2005
8240
8241 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
8242 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
8243 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
8244
8245 *) Добавление: параметр лога %request_time.
8246
8247 *) Добавление: если запрос пришёл без строки заголовка "Host", то
8248 директива proxy_preserve_host устанавливает в качестве этого
8249 заголовка первое имя сервера из директивы server_name.
8250
8251 *) Исправление: nginx не собирался на платформах, отличных от i386,
8252 amd64, sparc и ppc; ошибка появилась в 0.1.22.
8253
8254 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
8255 информацию не о символическом линке, а о файле или каталоге, на
8256 который он указывает.
8257
8258 *) Исправление: если клиенту ничего не передавалось, то параметр
8259 %apache_length записывал в лог отрицательную длину заголовка ответа.
8260
8261
8262 Изменения в nginx 0.1.22 22.02.2005
8263
8264 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8265 статистику для обработанных соединений, если использовалось
8266 проксирование или FastCGI-сервер.
8267
8268 *) Исправление: на Linux и Solaris установочные пути были неверно
8269 заключены в кавычки; ошибка появилась в 0.1.21.
8270
8271
8272 Изменения в nginx 0.1.21 22.02.2005
8273
8274 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8275 статистику при использовании метода rtsig или при использовании
8276 нескольких рабочих процессов на SMP машине.
8277
8278 *) Исправление: nginx не собирался компилятором icc под Линуксом или
8279 если библиотека zlib-1.2.x собиралась из исходных текстов.
8280
8281 *) Исправление: nginx не собирался под NetBSD 2.0.
8282
8283
8284 Изменения в nginx 0.1.20 17.02.2005
8285
8286 *) Добавление: новые параметры script_filename и remote_port в директиве
8287 fastcgi_params.
8288
8289 *) Исправление: неправильно обрабатывался поток stderr от
8290 FastCGI-сервера.
8291
8292
8293 Изменения в nginx 0.1.19 16.02.2005
8294
8295 *) Исправление: если в запросе есть нуль, то для локальных запросов
8296 теперь возвращается ошибка 404.
8297
8298 *) Исправление: nginx не собирался под NetBSD 2.0.
8299
8300 *) Исправление: во время чтения тела запроса клиента в SSL соединении
8301 мог произойти таймаут.
8302
8303
8304 Изменения в nginx 0.1.18 09.02.2005
8305
8306 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
8307 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
8308
8309 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
8310 наследовались.
8311
8312 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
8313 присоединялись к URI через символ "&" вместо "?".
8314
8315 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
8316 включённом файле игнорировались.
8317
8318 *) Добавление: модуль ngx_http_stub_status_module.
8319
8320 *) Исправление: неизвестный формат лог-файла в директиве access_log
8321 вызывал segmentation fault.
8322
8323 *) Добавление: новый параметр document_root в директиве fastcgi_params.
8324
8325 *) Добавление: директива fastcgi_redirect_errors.
8326
8327 *) Добавление: новый модификатор break в директиве rewrite позволяет
8328 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
8329 для запроса.
8330
8331
8332 Изменения в nginx 0.1.17 03.02.2005
8333
8334 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
8335 можно делать редиректы, возвращать коды ошибок и проверять переменные
8336 и рефереры. Эти директивы можно использовать внутри location.
8337 Директива redirect упразднена.
8338
8339 *) Добавление: модуль ngx_http_geo_module.
8340
8341 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
8342
8343 *) Исправление: конфигурация location с модификатором "=" могла
8344 использоваться в другом location.
8345
8346 *) Исправление: правильный тип ответа выставлялся только для запросов, у
8347 которых в расширении были только маленькие буквы.
8348
8349 *) Исправление: если для location установлен proxy_pass или
8350 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
8351 на статическую страницу, то происходил segmentation fault.
8352
8353 *) Исправление: если в проксированном ответе в заголовке "Location"
8354 передавался относительный URL, то к нему добавлялось имя хоста и
8355 слэш; ошибка появилась в 0.1.14.
8356
8357 *) Исправление: на Linux в лог не записывался текст системной ошибки.
8358
8359
8360 Изменения в nginx 0.1.16 25.01.2005
8361
8362 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
8363 выдавался завершающий chunk.
8364
8365 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
8366 директива keepalive_timeout запрещала использование keep-alive.
8367
8368 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
8369 segmentation fault.
8370
8371 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
8372 до конца.
8373
8374 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
8375 для TCP сокетов, не используются для unix domain сокетов.
8376
8377 *) Добавление: директива rewrite поддерживает перезаписывание
8378 аргументов.
8379
8380 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
8381 возвращался ответ 400; ошибка появилась в 0.1.14.
8382
8383
8384 Изменения в nginx 0.1.15 19.01.2005
8385
8386 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
8387 segmentation fault.
8388
8389 *) Исправление: корректная обработка регулярного выражения, в котором
8390 число выделенных частей не совпадает с числом подстановок.
8391
8392 *) Добавление: location, который передаётся FastCGI-серверу, может быть
8393 задан с помощью регулярного выражения.
8394
8395 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
8396 аргументами и в том виде, в котором был получен от клиента.
8397
8398 *) Исправление: для использования регулярных выражений в location нужно
8399 было собирать nginx вместе с ngx_http_rewrite_module.
8400
8401 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
8402 директивы "proxy_preserve_host on" в заголовке "Host" указывался
8403 также порт 80; ошибка появилась в 0.1.14.
8404
8405 *) Исправление: если задать одинаковые пути в параметрах
8406 автоконфигурации --http-client-body-temp-path=PATH и
8407 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
8408 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
8409
8410
8411 Изменения в nginx 0.1.14 18.01.2005
8412
8413 *) Добавление: параметры автоконфигурации
8414 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
8415 --http-fastcgi-temp-path=PATH
8416
8417 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
8418 клиента, задаётся директивой client_body_temp_path, по умолчанию
8419 <prefix>/client_body_temp.
8420
8421 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
8422 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
8423 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
8424 fastcgi_header_buffer_size, fastcgi_buffers,
8425 fastcgi_busy_buffers_size, fastcgi_temp_path,
8426 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
8427 fastcgi_next_upstream и fastcgi_x_powered_by.
8428
8429 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
8430 0.1.3.
8431
8432 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
8433 после имени хоста.
8434
8435 *) Изменение: если в URI встречался символ %3F, то он считался началом
8436 строки аргументов.
8437
8438 *) Добавление: поддержка unix domain сокетов в модуле
8439 ngx_http_proxy_module.
8440
8441 *) Добавление: директивы ssl_engine и ssl_ciphers.
8442 Спасибо Сергею Скворцову за SSL-акселератор.
8443
8444
8445 Изменения в nginx 0.1.13 21.12.2004
8446
8447 *) Добавление: директивы server_names_hash и
8448 server_names_hash_threshold.
8449
8450 *) Исправление: имена *.domain.tld в директиве server_name не работали.
8451
8452 *) Исправление: параметр лога %request_length записывал неверную длину.
8453
8454
8455 Изменения в nginx 0.1.12 06.12.2004
8456
8457 *) Добавление: параметр лога %request_length.
8458
8459 *) Исправление: при использовании /dev/poll, select и poll на
8460 платформах, где возможны ложные срабатывания указанных методов, могли
8461 быть длительные задержки при обработке запроса по keep-alive
8462 соединению. Наблюдалось по крайней мере на Solaris с использованием
8463 /dev/poll.
8464
8465 *) Исправление: директива send_lowat игнорируется на Linux, так как
8466 Linux не поддерживает опцию SO_SNDLOWAT.
8467
8468
8469 Изменения в nginx 0.1.11 02.12.2004
8470
8471 *) Добавление: директива worker_priority.
8472
8473 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
8474 влияют на передачу ответа.
8475
8476 *) Исправление: nginx не вызывал initgroups().
8477 Спасибо Андрею Ситникову и Андрею Нигматулину.
8478
8479 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
8480 байтах.
8481
8482 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
8483 каталоге есть битый symlink.
8484
8485 *) Исправление: файлы больше 4G не передавались с использованием
8486 sendfile.
8487
8488 *) Исправление: если бэкенд резолвился в несколько адресов и при
8489 ожидании от него ответа происходила ошибка, то процесс зацикливался.
8490
8491 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
8492 завершиться с сообщением "unknown cycle".
8493
8494 *) Исправление: ошибки "close() channel failed".
8495
8496 *) Исправление: автоматическое определение групп nobody и nogroup.
8497
8498 *) Исправление: директива send_lowat не работала на Linux.
8499
8500 *) Исправление: если в конфигурации не было раздела events, то
8501 происходил segmentation fault.
8502
8503 *) Исправление: nginx не собирался под OpenBSD.
8504
8505 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
8506
8507
8508 Изменения в nginx 0.1.10 26.11.2004
8509
8510 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
8511 или "%XX", то терялся последний символ в строке запроса; ошибка
8512 появилась в 0.1.9.
8513
8514 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
8515 не работало.
8516
8517
8518 Изменения в nginx 0.1.9 25.11.2004
8519
8520 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
8521 проксируемый запрос передавался без аргументов.
8522
8523 *) Исправление: при сжатии больших ответов иногда они передавались не
8524 полностью.
8525
8526 *) Исправление: не передавались файлы больше 2G на Linux,
8527 неподдерживающем sendfile64().
8528
8529 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
8530 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
8531
8532
8533 Изменения в nginx 0.1.8 20.11.2004
8534
8535 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8536 длинных имён файлов.
8537
8538 *) Добавление: модификатор "^~" в директиве location.
8539
8540 *) Добавление: директива proxy_max_temp_file_size.
8541
8542
8543 Изменения в nginx 0.1.7 12.11.2004
8544
8545 *) Исправление: при использовании sendfile, если передаваемый файл
8546 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
8547 появилась в 0.1.5.
8548
8549
8550 Изменения в nginx 0.1.6 11.11.2004
8551
8552 *) Исправление: при некоторых комбинациях директив location c
8553 регулярными выражениями использовалась конфигурация не из того
8554 location.
8555
8556
8557 Изменения в nginx 0.1.5 11.11.2004
8558
8559 *) Исправление: на Solaris и Linux могло быть очень много сообщений
8560 "recvmsg() returned not enough data".
8561
8562 *) Исправление: в режиме прокси без использования sendfile на Solaris
8563 возникала ошибка "writev() failed (22: Invalid argument)". На других
8564 платформах, не поддерживающих sendfile, процесс зацикливался.
8565
8566 *) Исправление: при использовании sendfile в режиме прокси на Solaris
8567 возникал segmentation fault.
8568
8569 *) Исправление: segmentation fault на Solaris.
8570
8571 *) Исправление: обновление исполняемого файла на лету не работало на
8572 Linux.
8573
8574 *) Исправление: в списке файлов, выдаваемом модулем
8575 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
8576 знаки процента.
8577
8578 *) Изменение: уменьшение операций копирования.
8579
8580 *) Добавление: директива userid_p3p.
8581
8582
8583 Изменения в nginx 0.1.4 26.10.2004
8584
8585 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
8586
8587
8588 Изменения в nginx 0.1.3 25.10.2004
8589
8590 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
8591
8592 *) Добавление: директива proxy_set_x_url.
8593
8594 *) Исправление: модуль проксировании мог привести к зацикливанию, если
8595 не использовался sendfile.
8596
8597
8598 Изменения в nginx 0.1.2 21.10.2004
8599
8600 *) Добавление: параметры --user=USER, --group=GROUP и
8601 --with-ld-opt=OPTIONS в configure.
8602
8603 *) Добавление: директива server_name поддерживает *.domain.tld.
8604
8605 *) Исправление: улучшена переносимость на неизвестные платформы.
8606
8607 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
8608 файл указан в командной строке; ошибка появилась в 0.1.1.
8609
8610 *) Исправление: модуль проксировании мог привести к зацикливанию, если
8611 не использовался sendfile.
8612
8613 *) Исправление: при использовании sendfile текст ответа не
8614 перекодировался согласно директивам модуля charset; ошибка появилась
8615 в 0.1.1.
8616
8617 *) Исправление: очень редкая ошибка при обработке kqueue.
8618
8619 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
8620 проксировании.
8621
8622
8623 Изменения в nginx 0.1.1 11.10.2004
8624
8625 *) Добавление: директива gzip_types.
8626
8627 *) Добавление: директива tcp_nodelay.
8628
8629 *) Добавление: директива send_lowat работает не только на платформах,
8630 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
8631 SO_SNDLOWAT.
8632
8633 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
8634
8635 *) Исправление: ошибка при переписывании заголовка "Location" при
8636 проксировании.
8637
8638 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
8639 зацикливанию.
8640
8641 *) Исправление: ошибки в модуле /dev/poll.
8642
8643 *) Исправление: при проксировании и использовании временных файлов
8644 ответы портились.
8645
8646 *) Исправление: бэкенду передавались запросы с неперекодированными
8647 символами.
8648
8649 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
8650 обязательно использовать параметр --with-poll_module.
8651
8652
8653 Изменения в nginx 0.1.0 04.10.2004
8654
8655 *) Первая публично доступная версия.
8656