comparison text/ru/CHANGES.ru-1.16 @ 2376:16a066373701

nginx-1.16.0
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 23 Apr 2019 17:04:19 +0300
parents text/ru/CHANGES.ru@d16ca4d163c4
children eecb26e2c4ab
comparison
equal deleted inserted replaced
2375:085ea04e2b23 2376:16a066373701
1
2 Изменения в nginx 1.16.0 23.04.2019
3
4 *) Стабильная ветка 1.16.x.
5
6
7 Изменения в nginx 1.15.12 16.04.2019
8
9 *) Исправление: в рабочем процессе мог произойти segmentation fault,
10 если в директивах ssl_certificate или ssl_certificate_key
11 использовались переменные и был включён OCSP stapling.
12
13
14 Изменения в nginx 1.15.11 09.04.2019
15
16 *) Исправление: в директиве ssl_stapling_file на Windows.
17
18
19 Изменения в nginx 1.15.10 26.03.2019
20
21 *) Изменение: теперь при использовании имени хоста в директиве listen
22 nginx создаёт listen-сокеты для всех адресов, соответствующих этому
23 имени (ранее использовался только первый адрес).
24
25 *) Добавление: диапазоны портов в директиве listen.
26
27 *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
28 из переменных.
29
30 *) Изменение: переменная $ssl_server_name могла быть пустой при
31 использовании OpenSSL 1.1.1.
32
33 *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
34 ошибка появилась в 1.15.9.
35
36
37 Изменения в nginx 1.15.9 26.02.2019
38
39 *) Добавление: директивы ssl_certificate и ssl_certificate_key
40 поддерживают переменные.
41
42 *) Добавление: метод poll теперь доступен на Windows при использовании
43 Windows Vista и новее.
44
45 *) Исправление: если при использовании метода select на Windows
46 происходила ошибка при установлении соединения с бэкендом, nginx
47 ожидал истечения таймаута на установление соединения.
48
49 *) Исправление: директивы proxy_upload_rate и proxy_download_rate в
50 модуле stream работали некорректно при проксировании UDP-пакетов.
51
52
53 Изменения в nginx 1.15.8 25.12.2018
54
55 *) Добавление: переменная $upstream_bytes_sent.
56 Спасибо Piotr Sikora.
57
58 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
59 Спасибо Геннадию Махомеду.
60
61 *) Исправление: в директиве proxy_cache_background_update.
62
63 *) Исправление: в директиве geo при использовании unix domain
64 listen-сокетов.
65
66 *) Изменение: при использовании директивы ssl_early_data с OpenSSL в
67 логах могли появляться сообщения "ignoring stale global SSL error ...
68 bad length".
69
70 *) Исправление: в nginx/Windows.
71
72 *) Исправление: в модуле ngx_http_autoindex_module на 32-битных
73 платформах.
74
75
76 Изменения в nginx 1.15.7 27.11.2018
77
78 *) Добавление: директива proxy_requests в модуле stream.
79
80 *) Добавление: параметр "delay" директивы "limit_req".
81 Спасибо Владиславу Шабанову и Петру Щучкину.
82
83 *) Исправление: утечки памяти в случае ошибок при переконфигурации.
84
85 *) Исправление: в переменных $upstream_response_time,
86 $upstream_connect_time и $upstream_header_time.
87
88 *) Исправление: в рабочем процессе мог произойти segmentation fault,
89 если использовался модуль ngx_http_mp4_module на 32-битных
90 платформах.
91
92
93 Изменения в nginx 1.15.6 06.11.2018
94
95 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
96 потреблению памяти (CVE-2018-16843) и ресурсов процессора
97 (CVE-2018-16844).
98
99 *) Безопасность: при обработке специально созданного mp4-файла модулем
100 ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
101 отправлено клиенту (CVE-2018-16845).
102
103 *) Добавление: директивы proxy_socket_keepalive,
104 fastcgi_socket_keepalive, grpc_socket_keepalive,
105 memcached_socket_keepalive, scgi_socket_keepalive и
106 uwsgi_socket_keepalive.
107
108 *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
109 OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.
110
111 *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
112 количество памяти.
113
114
115 Изменения в nginx 1.15.5 02.10.2018
116
117 *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
118 процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.
119
120 *) Исправление: незначительных потенциальных ошибок.
121
122
123 Изменения в nginx 1.15.4 25.09.2018
124
125 *) Добавление: теперь директиву ssl_early_data можно использовать с
126 OpenSSL.
127
128 *) Исправление: в модуле ngx_http_uwsgi_module.
129 Спасибо Chris Caputo.
130
131 *) Исправление: соединения к некоторым gRPC-бэкендам могли не
132 кэшироваться при использовании директивы keepalive.
133
134 *) Исправление: при использовании директивы error_page для
135 перенаправления ошибок, возникающих на ранних этапах обработки
136 запроса, в частности ошибок с кодом 400, могла происходить утечка
137 сокетов.
138
139 *) Исправление: директива return при возврате ошибок не изменяла код
140 ответа, если запрос был перенаправлен с помощью директивы error_page.
141
142 *) Исправление: стандартные сообщения об ошибках и ответы модуля
143 ngx_http_autoindex_module содержали атрибут bgcolor, что могло
144 приводить к их некорректному отображению при использовании
145 пользовательских настроек цветов в браузерах.
146 Спасибо Nova DasSarma.
147
148 *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
149 "no suitable signature algorithm" понижен с уровня crit до info.
150
151
152 Изменения в nginx 1.15.3 28.08.2018
153
154 *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.
155
156 *) Добавление: директива ssl_early_data, сейчас доступна при
157 использовании BoringSSL.
158
159 *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
160 upstream.
161
162 *) Исправление: модуль ngx_http_dav_module при копировании файла поверх
163 существующего файла с помощью метода COPY не обнулял целевой файл.
164
165 *) Исправление: модуль ngx_http_dav_module при перемещении файла между
166 файловыми системами с помощью метода MOVE устанавливал нулевые права
167 доступа на результирующий файл и не сохранял время изменения файла.
168
169 *) Исправление: модуль ngx_http_dav_module при копировании файла с
170 помощью метода COPY для результирующего файла использовал права
171 доступа по умолчанию.
172
173 *) Изменение: некоторые клиенты могли не работать при использовании
174 HTTP/2; ошибка появилась в 1.13.5.
175
176 *) Исправление: nginx не собирался с LibreSSL 2.8.0.
177
178
179 Изменения в nginx 1.15.2 24.07.2018
180
181 *) Добавление: переменная $ssl_preread_protocol в модуле
182 ngx_stream_ssl_preread_module.
183
184 *) Добавление: теперь при использовании директивы
185 reset_timedout_connection nginx сбрасывает соединения, закрываемые с
186 кодом 444.
187
188 *) Изменение: уровень логгирования ошибок SSL "http request", "https
189 proxy request", "unsupported protocol" и "version too low" понижен с
190 уровня crit до info.
191
192 *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
193 первой попытке отправки происходила ошибка.
194
195 *) Исправление: параметр reuseport директивы listen игнорировался, если
196 количество рабочих процессов было задано после директивы listen.
197
198 *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
199 ssl_prefer_server_ciphers нельзя было выключить в виртуальном
200 сервере, если она была включена в сервере по умолчанию.
201
202 *) Исправление: повторное использование SSL-сессий к бэкендам не
203 работало с протоколом TLS 1.3.
204
205
206 Изменения в nginx 1.15.1 03.07.2018
207
208 *) Добавление: директива random в блоке upstream.
209
210 *) Добавление: улучшена производительность при использовании директив
211 hash и ip_hash совместно с директивой zone.
212
213 *) Добавление: параметр reuseport директивы listen теперь использует
214 SO_REUSEPORT_LB на FreeBSD 12.
215
216 *) Исправление: HTTP/2 server push не работал, если SSL терминировался
217 прокси-сервером перед nginx'ом.
218
219 *) Исправление: директива tcp_nopush всегда использовалась для
220 соединений к бэкендам.
221
222 *) Исправление: при отправке сохранённого на диск тела запроса на
223 gRPC-бэкенд могли возникать ошибки.
224
225
226 Изменения в nginx 1.15.0 05.06.2018
227
228 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
229 следует использовать параметр ssl директивы listen.
230
231 *) Изменение: теперь при использовании директивы listen с параметром ssl
232 nginx определяет отсутствие SSL-сертификатов при тестировании
233 конфигурации.
234
235 *) Добавление: теперь модуль stream умеет обрабатывать несколько
236 входящих UDP-пакетов от клиента в рамках одной сессии.
237
238 *) Исправление: в директиве proxy_cache_valid можно было указать
239 некорректный код ответа.
240
241 *) Исправление: nginx не собирался gcc 8.1.
242
243 *) Исправление: логгирование в syslog останавливалось при изменении
244 локального IP-адреса.
245
246 *) Исправление: nginx не собирался компилятором clang, если был
247 установлен CUDA SDK; ошибка появилась в 1.13.8.
248
249 *) Исправление: при использовании unix domain listen-сокетов на FreeBSD
250 в процессе обновления исполняемого файла в логе могли появляться
251 сообщения "getsockopt(TCP_FASTOPEN) ... failed".
252
253 *) Исправление: nginx не собирался на Fedora 28 Linux.
254
255 *) Исправление: при использовании директивы limit_req заданная скорость
256 обработки запросов могла не соблюдаться.
257
258 *) Исправление: в обработке адресов клиентов при использовании unix
259 domain listen-сокетов для работы с датаграммами на Linux.
260
261 *) Исправление: в обработке ошибок выделения памяти.
262
263
264 Изменения в nginx 1.13.12 10.04.2018
265
266 *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
267 могли неожиданно закрываться.
268
269
270 Изменения в nginx 1.13.11 03.04.2018
271
272 *) Добавление: параметр proxy_protocol директивы listen теперь
273 поддерживает протокол PROXY версии 2.
274
275 *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.
276
277 *) Исправление: в параметрах http_404, http_500 и им подобных директивы
278 proxy_next_upstream.
279
280
281 Изменения в nginx 1.13.10 20.03.2018
282
283 *) Добавление: теперь параметр set в SSI-директиве include позволяет
284 сохранять в переменную любые ответы; максимальный размер ответа
285 задаётся директивой subrequest_output_buffer_size.
286
287 *) Добавление: теперь nginx использует вызов
288 clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
289 избежать некорректного срабатывания таймаутов при изменениях
290 системного времени.
291
292 *) Добавление: параметр "escape=none" директивы log_format.
293 Спасибо Johannes Baiter и Calin Don.
294
295 *) Добавление: переменная $ssl_preread_alpn_protocols в модуле
296 ngx_stream_ssl_preread_module.
297
298 *) Добавление: модуль ngx_http_grpc_module.
299
300 *) Исправление: в обработке ошибок выделения памяти в директиве geo.
301
302 *) Исправление: при использовании переменных в директиве
303 auth_basic_user_file в лог мог выводиться символ '\0'.
304 Спасибо Вадиму Филимонову.
305
306
307 Изменения в nginx 1.13.9 20.02.2018
308
309 *) Добавление: поддержка HTTP/2 server push; директивы http2_push и
310 http2_push_preload.
311
312 *) Исправление: при использовании кэша в логах могли появляться
313 сообщения "header already sent"; ошибка появилась в 1.9.13.
314
315 *) Исправление: при использовании директивы ssl_verify_client в рабочем
316 процессе мог произойти segmentation fault, если в виртуальном сервере
317 не был указан SSL-сертификат.
318
319 *) Исправление: в модуле ngx_http_v2_module.
320
321 *) Исправление: в модуле ngx_http_dav_module.
322
323
324 Изменения в nginx 1.13.8 26.12.2017
325
326 *) Добавление: теперь при использовании параметра transparent директив
327 proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
328 nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
329 процессах.
330
331 *) Добавление: улучшения в определении размера строки кэша процессора.
332 Спасибо Debayan Ghosh.
333
334 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
335 Спасибо Геннадию Махомеду.
336
337 *) Исправление: процедура обновления исполняемого файла не работала,
338 если после завершения родительского процесса новым родительским
339 процессом nginx'а становился процесс с PID, отличным от 1.
340
341 *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
342 запросы с телом.
343
344 *) Исправление: в директиве proxy_limit_rate при использовании с
345 директивой keepalive.
346
347 *) Исправление: при использовании "proxy_buffering off" часть ответа
348 могла буферизироваться, если клиентское соединение использовало SSL.
349 Спасибо Patryk Lesiewicz.
350
351 *) Исправление: в директиве proxy_cache_background_update.
352
353 *) Исправление: переменную вида "${name}" с именем в фигурных скобках
354 нельзя было использовать в начале параметра не заключив весь параметр
355 в кавычки.
356
357
358 Изменения в nginx 1.13.7 21.11.2017
359
360 *) Исправление: в переменной $upstream_status.
361
362 *) Исправление: в рабочем процессе мог произойти segmentation fault,
363 если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
364
365 *) Исправление: если при переконфигурации изменялся размер зоны
366 разделяемой памяти и переконфигурация завершалась неудачно, то в
367 главном процессе происходил segmentation fault.
368
369 *) Исправление: в модуле ngx_http_fastcgi_module.
370
371 *) Исправление: nginx возвращал ошибку 500, если в директиве
372 xslt_stylesheet были заданы параметры без использования переменных.
373
374 *) Изменение: при использовании варианта библиотеки zlib от Intel в лог
375 писались сообщения "gzip filter failed to use preallocated memory".
376
377 *) Исправление: директива worker_shutdown_timeout не работала при
378 использовании почтового прокси-сервера и при проксировании
379 WebSocket-соединений.
380
381
382 Изменения в nginx 1.13.6 10.10.2017
383
384 *) Исправление: при использовании директивы ssl_preread в модуле stream
385 не работало переключение на следующий бэкенд.
386
387 *) Исправление: в модуле ngx_http_v2_module.
388 Спасибо Piotr Sikora.
389
390 *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
391 платформах с 64-битным time_t.
392
393 *) Исправление: в обработке дат до 1970 года и после 10000 года.
394
395 *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
396 бэкендов не логгировались или логгировались на уровне info вместо
397 error.
398
399 *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
400 не указав в логе причину.
401
402 *) Исправление: в обработке повреждённых файлов кэша.
403
404 *) Исправление: при кэшировании ошибок, перехваченных error_page, не
405 учитывались заголовки управления кэшированием.
406
407 *) Исправление: при использовании HTTP/2 тело запроса могло быть
408 повреждено.
409
410 *) Исправление: в обработке адресов клиентов при использовании unix
411 domain сокетов.
412
413 *) Исправление: при использовании директивы "hash ... consistent" в
414 блоке upstream nginx нагружал процессор, если использовались большие
415 веса и все или почти все бэкенды были недоступны.
416
417
418 Изменения в nginx 1.13.5 05.09.2017
419
420 *) Добавление: переменная $ssl_client_escaped_cert.
421
422 *) Исправление: директива ssl_session_ticket_key и параметр include
423 директивы geo не работали на Windows.
424
425 *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
426 помощью нескольких диапазонов возвращалась некорректная длина ответа.
427
428 *) Исправление: директива "expires modified" и обработка строки If-Range
429 заголовка запроса не учитывали время последнего изменения ответа,
430 если использовалось проксирование без кэширования.
431
432
433 Изменения в nginx 1.13.4 08.08.2017
434
435 *) Добавление: модуль ngx_http_mirror_module.
436
437 *) Исправление: клиентские соединения могли сбрасываться при
438 тестировании конфигурации, если использовался параметр reuseport
439 директивы listen на Linux.
440
441 *) Исправление: тело запроса могло быть недоступно в подзапросах, если
442 оно было сохранено в файл и использовалось проксирование.
443
444 *) Исправление: очистка кэша по max_size не работала на Windows.
445
446 *) Исправление: любое выделение разделяемой памяти на Windows требовало
447 4096 байт памяти.
448
449 *) Исправление: при использовании директивы zone в блоке upstream на
450 Windows рабочий процесс мог завершаться аварийно.
451
452
453 Изменения в nginx 1.13.3 11.07.2017
454
455 *) Безопасность: специально созданный запрос мог вызвать целочисленное
456 переполнение в range-фильтре и последующую некорректную обработку
457 запрошенных диапазонов, что потенциально могло привести к утечке
458 конфиденциальной информации (CVE-2017-7529).
459
460
461 Изменения в nginx 1.13.2 27.06.2017
462
463 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из
464 пустого файла nginx возвращает ответ 200 вместо 416.
465
466 *) Добавление: директива add_trailer.
467 Спасибо Piotr Sikora.
468
469 *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
470 в 1.13.0.
471
472 *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
473 Спасибо Orgad Shaneh.
474
475 *) Исправление: при использовании SSI с большим количеством подзапросов
476 и proxy_pass с переменными в рабочем процессе мог произойти
477 segmentation fault.
478
479 *) Исправление: в модуле ngx_http_v2_module.
480 Спасибо Piotr Sikora.
481
482
483 Изменения в nginx 1.13.1 30.05.2017
484
485 *) Добавление: теперь в качестве параметра директивы set_real_ip_from
486 можно указывать имя хоста.
487
488 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
489
490 *) Добавление: директива worker_cpu_affinity теперь работает на
491 DragonFly BSD.
492 Спасибо Sepherosa Ziehau.
493
494 *) Исправление: SSL renegotiation в соединениях к бэкендам не работал
495 при использовании OpenSSL до 1.1.0.
496
497 *) Изменение: nginx не собирался с Oracle Developer Studio 12.5.
498
499 *) Изменение: теперь cache manager пропускает заблокированные записи при
500 очистке кэша по max_size.
501
502 *) Исправление: клиентские SSL-соединения сразу закрывались, если
503 использовался отложенный accept и параметр proxy_protocol директивы
504 listen.
505
506 *) Исправление: в директиве proxy_cache_background_update.
507
508 *) Изменение: теперь директива tcp_nodelay устанавливает опцию
509 TCP_NODELAY перед SSL handshake.
510
511
512 Изменения в nginx 1.13.0 25.04.2017
513
514 *) Изменение: теперь SSL renegotiation допускается в соединениях к
515 бэкендам.
516
517 *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
518 прокси-сервере и модуле stream.
519
520 *) Добавление: директивы return и error_page теперь могут использоваться
521 для возврата перенаправлений с кодом 308.
522 Спасибо Simon Leblanc.
523
524 *) Добавление: параметр TLSv1.3 в директиве ssl_protocols.
525
526 *) Добавление: при логгировании сигналов теперь указывается PID
527 отправившего сигнал процесса.
528
529 *) Исправление: в обработке ошибок выделения памяти.
530
531 *) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
532 исходящий адрес ответного UDP-пакета мог отличаться от адреса
533 назначения исходного пакета.
534
535
536 Изменения в nginx 1.11.13 04.04.2017
537
538 *) Добавление: параметр http_429 в директивах proxy_next_upstream,
539 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
540 Спасибо Piotr Sikora.
541
542 *) Исправление: в обработке ошибок выделения памяти.
543
544 *) Исправление: при использовании директив sendfile и timer_resolution
545 на Linux запросы могли зависать.
546
547 *) Исправление: при использовании с подзапросами директив sendfile и
548 aio_write запросы могли зависать.
549
550 *) Исправление: в модуле ngx_http_v2_module.
551 Спасибо Piotr Sikora.
552
553 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
554 произойти segmentation fault.
555
556 *) Исправление: запросы могли зависать при использовании с подзапросами
557 директив limit_rate, sendfile_max_chunk, limit_req или метода
558 $r->sleep() встроенного перла.
559
560 *) Исправление: в модуле ngx_http_slice_module.
561
562
563 Изменения в nginx 1.11.12 24.03.2017
564
565 *) Исправление: nginx мог нагружать процессор; ошибка появилась в
566 1.11.11.
567
568
569 Изменения в nginx 1.11.11 21.03.2017
570
571 *) Добавление: директива worker_shutdown_timeout.
572
573 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
574 Спасибо Wei-Ko Kao.
575
576 *) Исправление: при попытке установить переменную $limit_rate в пустую
577 строку в рабочем процессе мог произойти segmentation fault.
578
579 *) Исправление: директивы proxy_cache_background_update,
580 fastcgi_cache_background_update, scgi_cache_background_update и
581 uwsgi_cache_background_update могли работать некорректно, если
582 использовалась директива if.
583
584 *) Исправление: в рабочем процессе мог произойти segmentation fault,
585 если количество large_client_header_buffers в виртуальном сервере
586 отличалось от такового в сервере по умолчанию.
587
588 *) Исправление: в почтовом прокси-сервере.
589
590
591 Изменения в nginx 1.11.10 14.02.2017
592
593 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные
594 ответы будут загружены заново.
595
596 *) Добавление: поддержка расширений stale-while-revalidate и
597 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда.
598
599 *) Добавление: директивы proxy_cache_background_update,
600 fastcgi_cache_background_update, scgi_cache_background_update и
601 uwsgi_cache_background_update.
602
603 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary
604 заголовка длиной до 128 символов (вместо 42 символов в предыдущих
605 версиях).
606
607 *) Добавление: параметр build директивы server_tokens.
608 Спасибо Tom Thorogood.
609
610 *) Исправление: при обработке запросов со строкой "Expect: 100-continue"
611 в заголовке запроса в логах могли появляться сообщения "[crit]
612 SSL_write() failed".
613
614 *) Исправление: модуль ngx_http_slice_module не работал в именованных
615 location'ах.
616
617 *) Исправление: при использовании AIO после перенаправления запроса с
618 помощью X-Accel-Redirect в рабочем процессе мог произойти
619 segmentation fault.
620
621 *) Исправление: уменьшено потребление памяти для долгоживущих запросов,
622 использующих сжатие.
623
624
625 Изменения в nginx 1.11.9 24.01.2017
626
627 *) Исправление: при использовании модуля stream nginx мог нагружать
628 процессор; ошибка появилась в 1.11.5.
629
630 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере
631 можно было использовать, даже если он не был разрешён в конфигурации.
632
633 *) Исправление: при использовании директивы ssl_verify_client модуля
634 stream в рабочем процессе мог произойти segmentation fault.
635
636 *) Исправление: директива ssl_verify_client модуля stream могла не
637 работать.
638
639 *) Исправление: при исчерпании рабочим процессом свободных соединений
640 keepalive-соединения могли закрываться излишне агрессивно.
641 Спасибо Joel Cunningham.
642
643 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS
644 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8.
645
646 *) Исправление: при использовании директивы aio_write ответ мог
647 сохраняться в кэш не полностью.
648
649 *) Исправление: при использовании директивы aio_write могла происходить
650 утечка сокетов.
651
652
653 Изменения в nginx 1.11.8 27.12.2016
654
655 *) Добавление: директива absolute_redirect.
656
657 *) Добавление: параметр escape директивы log_format.
658
659 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream.
660
661 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование
662 TLS session tickets с помощью AES256 при использовании с 80-байтными
663 ключами.
664
665 *) Добавление: поддержка vim-commentary в скриптах для vim.
666 Спасибо Armin Grodon.
667
668 *) Исправление: рекурсия при получении значений переменных не
669 ограничивалась.
670
671 *) Исправление: в модуле ngx_stream_ssl_preread_module.
672
673 *) Исправление: если сервер, описанный в блоке upstream в модуле stream,
674 был признан неработающим, то после истечения fail_timeout он
675 признавался работающим только после завершения тестового соединения;
676 теперь достаточно, чтобы соединение было успешно установлено.
677
678 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio.
679
680 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0.
681
682
683 Изменения в nginx 1.11.7 13.12.2016
684
685 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки
686 проверки клиентского сертификата содержит строку с описанием ошибки,
687 например, "FAILED:certificate has expired".
688
689 *) Добавление: переменные $ssl_ciphers, $ssl_curves,
690 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
691
692 *) Добавление: параметр volatile директивы map.
693
694 *) Исправление: при сборке динамических модулей не учитывались заданные
695 для модуля зависимости.
696
697 *) Исправление: при использовании HTTP/2 и директив limit_req или
698 auth_request тело запроса могло быть повреждено; ошибка появилась в
699 1.11.0.
700
701 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
702 произойти segmentation fault; ошибка появилась в 1.11.3.
703
704 *) Исправление: в модуле ngx_http_mp4_module.
705 Спасибо Congcong Hu.
706
707 *) Исправление: в модуле ngx_http_perl_module.
708
709
710 Изменения в nginx 1.11.6 15.11.2016
711
712 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn
713 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом
714 формате доступны через переменные $ssl_client_s_dn_legacy и
715 $ssl_client_i_dn_legacy.
716
717 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь
718 располагаются не в отдельном подкаталоге для временных файлов, а в
719 том же подкаталоге, что и соответствующие файлы в кэше.
720
721 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом
722 прокси-сервере.
723 Спасибо Robert Norris.
724
725 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module.
726
727 *) Добавление: директива proxy_method поддерживает переменные.
728 Спасибо Дмитрию Лазуркину.
729
730 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module.
731
732 *) Добавление: директивы proxy_cache_max_range_offset,
733 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и
734 uwsgi_cache_max_range_offset.
735
736 *) Исправление: плавное завершение старых рабочих процессов могло
737 занимать бесконечное время при использовании HTTP/2.
738
739 *) Исправление: в модуле ngx_http_mp4_module.
740
741 *) Исправление: при проксировании WebSocket-соединений и включённом
742 кэшировании в логах могли появляться сообщения "ignore long locked
743 inactive cache entry".
744
745 *) Исправление: если во время SSL handshake с бэкендом происходил
746 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502
747 вместо 504.
748
749
750 Изменения в nginx 1.11.5 11.10.2016
751
752 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6
753 теперь собирается автоматически.
754
755 *) Изменение: теперь, если в блоке upstream не оказалось доступных
756 серверов, nginx не сбрасывает статистику ошибок всех серверов, как
757 делал ранее, а ожидает истечения fail_timeout.
758
759 *) Добавление: модуль ngx_stream_ssl_preread_module.
760
761 *) Добавление: директива server в блоке upstream поддерживает параметр
762 max_conns.
763
764 *) Добавление: параметр configure --with-compat.
765
766 *) Добавление: параметры manager_files, manager_threshold и
767 manager_sleep директив proxy_cache_path, fastcgi_cache_path,
768 scgi_cache_path и uwsgi_cache_path.
769
770 *) Исправление: при сборке perl-модуля не использовались флаги, заданные
771 с помощью параметра configure --with-ld-opt.
772
773 *) Исправление: в директиве add_after_body при использовании совместно с
774 директивой sub_filter.
775
776 *) Исправление: в переменной $realip_remote_addr.
777
778 *) Исправление: директивы dav_access, proxy_store_access,
779 fastcgi_store_access, scgi_store_access и uwsgi_store_access
780 игнорировали права, заданные для пользователя.
781
782 *) Исправление: unix domain listen-сокеты могли не наследоваться при
783 обновлении исполняемого файла на Linux.
784
785 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в
786 HTTP-методе.
787
788
789 Изменения в nginx 1.11.4 13.09.2016
790
791 *) Добавление: переменная $upstream_bytes_received.
792
793 *) Добавление: переменные $bytes_received, $session_time, $protocol,
794 $status, $upstream_addr, $upstream_bytes_sent,
795 $upstream_bytes_received, $upstream_connect_time,
796 $upstream_first_byte_time и $upstream_session_time в модуле stream.
797
798 *) Добавление: модуль ngx_stream_log_module.
799
800 *) Добавление: параметр proxy_protocol в директиве listen, переменные
801 $proxy_protocol_addr и $proxy_protocol_port в модуле stream.
802
803 *) Добавление: модуль ngx_stream_realip_module.
804
805 *) Исправление: nginx не собирался с модулем stream и модулем
806 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка
807 появилась в 1.11.3.
808
809 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
810 ошибка появилась в 1.11.2.
811
812 *) Исправление: в параметре ranges директивы geo.
813
814 *) Исправление: при использовании директив "aio threads" и sendfile мог
815 возвращаться некорректный ответ; ошибка появилась в 1.9.13.
816
817
818 Изменения в nginx 1.11.3 26.07.2016
819
820 *) Изменение: теперь accept_mutex по умолчанию выключен.
821
822 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux.
823
824 *) Добавление: модуль ngx_stream_geo_module.
825
826 *) Добавление: модуль ngx_stream_geoip_module.
827
828 *) Добавление: модуль ngx_stream_split_clients_module.
829
830 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream
831 поддерживают переменные.
832
833 *) Исправление: утечки сокетов при использовании HTTP/2.
834
835 *) Исправление: в configure.
836 Спасибо Piotr Sikora.
837
838
839 Изменения в nginx 1.11.2 05.07.2016
840
841 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и
842 SHA1; параметры configure --with-md5 и --with-sha1 упразднены.
843
844 *) Добавление: поддержка переменных в модуле stream.
845
846 *) Добавление: модуль ngx_stream_map_module.
847
848 *) Добавление: модуль ngx_stream_return_module.
849
850 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind,
851 scgi_bind и uwsgi_bind теперь можно указывать порт.
852
853 *) Добавление: теперь nginx использует опцию сокета
854 IP_BIND_ADDRESS_NO_PORT, если она доступна.
855
856 *) Исправление: при использовании HTTP/2 и директивы
857 proxy_request_buffering в рабочем процессе мог произойти segmentation
858 fault.
859
860 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на
861 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
862 если у запроса не было тела.
863
864 *) Исправление: при использовании HTTP/2 в логах могли появляться
865 сообщения "http request count is zero".
866
867 *) Исправление: при использовании директивы sub_filter могло
868 буферизироваться больше данных, чем это необходимо; проблема
869 появилась в 1.9.4.
870
871
872 Изменения в nginx 1.11.1 31.05.2016
873
874 *) Безопасность: при записи тела специально созданного запроса во
875 временный файл в рабочем процессе мог происходить segmentation fault
876 (CVE-2016-4450); ошибка появилась в 1.3.9.
877
878
879 Изменения в nginx 1.11.0 24.05.2016
880
881 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind,
882 memcached_bind, scgi_bind и uwsgi_bind.
883
884 *) Добавление: переменная $request_id.
885
886 *) Добавление: директива map поддерживает комбинации нескольких
887 переменных в качестве результирующих значений.
888
889 *) Добавление: теперь при использовании метода epoll nginx проверяет,
890 поддерживает ли ядро события EPOLLRDHUP, и соответственно
891 оптимизирует обработку соединений.
892
893 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь
894 можно указывать несколько раз для загрузки сертификатов разных типов
895 (например, RSA и ECDSA).
896
897 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью
898 директивы ssl_ecdh_curve теперь можно задать список кривых; по
899 умолчанию используется встроенный в OpenSSL список кривых.
900
901 *) Изменение: для использования DHE-шифров теперь надо явно задавать
902 файл параметров с помощью директивы ssl_dhparam.
903
904 *) Добавление: переменная $proxy_protocol_port.
905
906 *) Добавление: переменная $realip_remote_port в модуле
907 ngx_http_realip_module.
908
909 *) Добавление: модуль ngx_http_realip_module теперь позволяет
910 устанавливать не только адрес, но и порт клиента.
911
912 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от
913 согласованного в процессе SSL handshake, теперь возвращается ответ
914 "421 Misdirected Request"; это улучшает совместимость с некоторыми
915 HTTP/2-клиентами в случае использования клиентских сертификатов.
916
917 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
918 директива http2_body_preread_size позволяет указать размер буфера,
919 который будет использоваться до того, как nginx начнёт читать тело.
920
921 *) Исправление: при использовании директивы proxy_cache_bypass не
922 обновлялись закэшированные ошибочные ответы.
923
924
925 Изменения в nginx 1.9.15 19.04.2016
926
927 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли
928 возникать ошибки "recv() failed".
929
930 *) Исправление: при использовании HTTP/2 и директив limit_req или
931 auth_request при чтении тела запроса мог произойти таймаут или ошибка
932 "client violated flow control"; ошибка появилась в 1.9.14.
933
934 *) Изменение: при использовании HTTP/2 ответ мог не показываться
935 некоторыми браузерами, если тело запроса было прочитано не целиком;
936 ошибка появилась в 1.9.14.
937
938 *) Исправление: при использовании директивы "aio threads" соединения
939 могли зависать.
940 Спасибо Mindaugas Rasiukevicius.
941
942
943 Изменения в nginx 1.9.14 05.04.2016
944
945 *) Добавление: совместимость с OpenSSL 1.1.0.
946
947 *) Добавление: директивы proxy_request_buffering,
948 fastcgi_request_buffering, scgi_request_buffering и
949 uwsgi_request_buffering теперь работают при использовании HTTP/2.
950
951 *) Исправление: при использовании HTTP/2 в логах могли появляться
952 сообщения "zero size buf in output".
953
954 *) Исправление: при использовании HTTP/2 директива client_max_body_size
955 могла работать неверно.
956
957 *) Исправление: незначительных ошибок логгирования.
958
959
960 Изменения в nginx 1.9.13 29.03.2016
961
962 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по
963 умолчанию не передаются на другой сервер, если запрос уже был
964 отправлен на бэкенд; параметр non_idempotent директивы
965 proxy_next_upstream явно разрешает повторять такие запросы.
966
967 *) Добавление: модуль ngx_http_perl_module теперь можно собрать
968 динамически.
969
970 *) Добавление: поддержка UDP в модуле stream.
971
972 *) Добавление: директива aio_write.
973
974 *) Добавление: теперь cache manager следит за количеством элементов в
975 кэше и старается не допускать переполнений зоны разделяемой памяти.
976
977 *) Исправление: при использовании директив sendfile и aio с подзапросами
978 в логах могли появляться сообщения "task already active" и "second
979 aio post".
980
981 *) Исправление: при использовании кэширования в логах могли появляться
982 сообщения "zero size buf in output", если клиент закрывал соединение
983 преждевременно.
984
985 *) Исправление: при использовании кэширования соединения с клиентами
986 могли закрываться без необходимости.
987 Спасибо Justin Li.
988
989 *) Исправление: nginx мог нагружать процессор при использовании
990 директивы sendfile на Linux и Solaris, если отправляемый файл был
991 изменён в процессе отправки.
992
993 *) Исправление: при использовании директив sendfile и "aio threads"
994 соединения могли зависать.
995
996 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и
997 uwsgi_pass при использовании переменных.
998 Спасибо Piotr Sikora.
999
1000 *) Исправление: в модуле ngx_http_sub_filter_module.
1001
1002 *) Исправление: если в закэшированном соединении к бэкенду происходила
1003 ошибка, запрос передавался на другой сервер без учёта директивы
1004 proxy_next_upstream.
1005
1006 *) Исправление: ошибки "CreateFile() failed" при создании временных
1007 файлов на Windows.
1008
1009
1010 Изменения в nginx 1.9.12 24.02.2016
1011
1012 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2.
1013 Спасибо Владу Краснову.
1014
1015 *) Добавление: директива worker_cpu_affinity теперь поддерживает более
1016 64 процессоров.
1017
1018 *) Исправление: совместимость со сторонними модулями на C++; ошибка
1019 появилась в 1.9.11.
1020 Спасибо Piotr Sikora.
1021
1022 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка
1023 появилась в 1.9.11.
1024
1025 *) Исправление: директива "add_header ... always" с пустым значением не
1026 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag.
1027
1028 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться
1029 сообщения "called a function you should not call" и "shutdown while
1030 in init".
1031
1032 *) Исправление: ошибочные заголовки могли логгироваться некорректно.
1033
1034 *) Исправление: утечки сокетов при использовании HTTP/2.
1035
1036 *) Исправление: в модуле ngx_http_v2_module.
1037
1038
1039 Изменения в nginx 1.9.11 09.02.2016
1040
1041 *) Добавление: теперь resolver поддерживает TCP.
1042
1043 *) Добавление: динамические модули.
1044
1045 *) Исправление: при использовании HTTP/2 переменная $request_length не
1046 учитывала размер заголовков запроса.
1047
1048 *) Исправление: в модуле ngx_http_v2_module.
1049
1050
1051 Изменения в nginx 1.9.10 26.01.2016
1052
1053 *) Безопасность: при использовании директивы resolver во время обработки
1054 ответов DNS-сервера могло происходить разыменование некорректного
1055 адреса, что позволяло атакующему, имеющему возможность подделывать
1056 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
1057 процессе (CVE-2016-0742).
1058
1059 *) Безопасность: при использовании директивы resolver во время обработки
1060 CNAME-записей могло произойти обращение к ранее освобождённой памяти,
1061 что позволяло атакующему, имеющему возможность инициировать
1062 преобразование произвольных имён в адреса, вызвать segmentation fault
1063 в рабочем процессе, а также потенциально могло иметь другие
1064 последствия (CVE-2016-0746).
1065
1066 *) Безопасность: при использовании директивы resolver во время обработки
1067 CNAME-записей не во всех случаях проверялось ограничение на
1068 максимальное количество записей в цепочке, что позволяло атакующему,
1069 имеющему возможность инициировать преобразование произвольных имён в
1070 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
1071 (CVE-2016-0747).
1072
1073 *) Добавление: параметр auto директивы worker_cpu_affinity.
1074
1075 *) Исправление: параметр proxy_protocol директивы listen не работал с
1076 IPv6 listen-сокетами.
1077
1078 *) Исправление: при использовании директивы keepalive соединения к
1079 бэкендам могли кэшироваться некорректно.
1080
1081 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
1082 при проксировании использовался HTTP-метод оригинального запроса.
1083
1084
1085 Изменения в nginx 1.9.9 09.12.2015
1086
1087 *) Исправление: проксирование в unix domain сокеты не работало при
1088 использовании переменных; ошибка появилась в 1.9.8.
1089
1090
1091 Изменения в nginx 1.9.8 08.12.2015
1092
1093 *) Добавление: поддержка pwritev().
1094
1095 *) Добавление: директива include в блоке upstream.
1096
1097 *) Добавление: модуль ngx_http_slice_module.
1098
1099 *) Исправление: при использовании LibreSSL в рабочем процессе мог
1100 произойти segmentation fault; ошибка появилась в 1.9.6.
1101
1102 *) Исправление: nginx мог не собираться на OS X.
1103
1104
1105 Изменения в nginx 1.9.7 17.11.2015
1106
1107 *) Добавление: параметр nohostname логгирования в syslog.
1108
1109 *) Добавление: директива proxy_cache_convert_head.
1110
1111 *) Добавление: переменная $realip_remote_addr в модуле
1112 ngx_http_realip_module.
1113
1114 *) Исправление: директива expires могла не срабатывать при использовании
1115 переменных.
1116
1117 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1118 произойти segmentation fault; ошибка появилась в 1.9.6.
1119
1120 *) Исправление: если nginx был собран с модулем ngx_http_v2_module,
1121 протокол HTTP/2 мог быть использован клиентом, даже если не был
1122 указан параметр http2 директивы listen.
1123
1124 *) Исправление: в модуле ngx_http_v2_module.
1125
1126
1127 Изменения в nginx 1.9.6 27.10.2015
1128
1129 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1130 произойти segmentation fault.
1131 Спасибо Piotr Sikora и Denis Andzakovic.
1132
1133 *) Исправление: при использовании HTTP/2 переменная $server_protocol
1134 была пустой.
1135
1136 *) Исправление: SSL-соединения к бэкендам в модуле stream могли
1137 неожиданно завершаться по таймауту.
1138
1139 *) Исправление: при использовании различных настроек ssl_session_cache в
1140 разных виртуальных серверах в рабочем процессе мог произойти
1141 segmentation fault.
1142
1143 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась
1144 в 1.9.4.
1145 Спасибо Kouhei Sutou.
1146
1147 *) Исправление: при использовании директивы timer_resolution на Windows
1148 время не обновлялось.
1149
1150 *) Незначительные исправления и улучшения.
1151 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
1152
1153
1154 Изменения в nginx 1.9.5 22.09.2015
1155
1156 *) Добавление: модуль ngx_http_v2_module (заменяет модуль
1157 ngx_http_spdy_module).
1158 Спасибо Dropbox и Automattic за спонсирование разработки.
1159
1160 *) Изменение: теперь по умолчанию директива output_buffers использует
1161 два буфера.
1162
1163 *) Изменение: теперь nginx ограничивает максимальную вложенность
1164 подзапросов, а не количество одновременных подзапросов.
1165
1166 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ
1167 полностью.
1168 Спасибо Геннадию Махомеду и Сергею Брестеру.
1169
1170 *) Исправление: при использовании кэша в логах могли появляться
1171 сообщения "header already sent"; ошибка появилась в 1.7.5.
1172
1173 *) Исправление: при использовании CephFS и директивы timer_resolution на
1174 Linux в логах могли появляться сообщения "writev() failed (4:
1175 Interrupted system call)".
1176
1177 *) Исправление: в обработке ошибок конфигурации.
1178 Спасибо Markus Linnala.
1179
1180 *) Исправление: при использовании директивы sub_filter на уровне http в
1181 рабочем процессе происходил segmentation fault; ошибка появилась в
1182 1.9.4.
1183
1184
1185 Изменения в nginx 1.9.4 18.08.2015
1186
1187 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer
1188 в модуле stream заменены директивой proxy_buffer_size.
1189
1190 *) Добавление: директива tcp_nodelay в модуле stream.
1191
1192 *) Добавление: теперь можно указать несколько директив sub_filter
1193 одновременно.
1194
1195 *) Добавление: директива sub_filter поддерживает переменные в строке
1196 поиска.
1197
1198 *) Изменение: тестирование конфигурации могло не работать под Linux
1199 OpenVZ.
1200 Спасибо Геннадию Махомеду.
1201
1202 *) Исправление: после переконфигурации старые рабочие процессы могли
1203 сильно нагружать процессор при больших значениях worker_connections.
1204
1205 *) Исправление: при совместном использовании директив try_files и alias
1206 внутри location'а, заданного регулярным выражением, в рабочем
1207 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
1208
1209 *) Исправление: директива try_files внутри вложенного location'а,
1210 заданного регулярным выражением, работала неправильно, если во
1211 внешнем location'е использовалась директива alias.
1212
1213 *) Исправление: в обработке ошибок при построении хэш-таблиц.
1214
1215 *) Исправление: nginx не собирался с Visual Studio 2015.
1216
1217
1218 Изменения в nginx 1.9.3 14.07.2015
1219
1220 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.
1221
1222 *) Добавление: ограничение количества соединений в модуле stream.
1223
1224 *) Добавление: ограничение скорости в модуле stream.
1225
1226 *) Исправление: директива zone в блоке upstream не работала на Windows.
1227
1228 *) Исправление: совместимость с LibreSSL в модуле stream.
1229 Спасибо Piotr Sikora.
1230
1231 *) Исправление: в параметре --builddir в configure.
1232 Спасибо Piotr Sikora.
1233
1234 *) Исправление: директива ssl_stapling_file не работала; ошибка
1235 появилась в 1.9.2.
1236 Спасибо Faidon Liambotis и Brandon Black.
1237
1238 *) Исправление: при использовании директивы ssl_stapling в рабочем
1239 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
1240 Спасибо Matthew Baldwin.
1241
1242
1243 Изменения в nginx 1.9.2 16.06.2015
1244
1245 *) Добавление: параметр backlog директивы listen в почтовом
1246 прокси-сервере и модуле stream.
1247
1248 *) Добавление: директивы allow и deny в модуле stream.
1249
1250 *) Добавление: директива proxy_bind в модуле stream.
1251
1252 *) Добавление: директива proxy_protocol в модуле stream.
1253
1254 *) Добавление: ключ -T.
1255
1256 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
1257 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
1258 uwsgi_params.
1259
1260 *) Исправление: параметр reuseport директивы listen в модуле stream не
1261 работал.
1262
1263 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
1264 OCSP-ответ.
1265
1266
1267 Изменения в nginx 1.9.1 26.05.2015
1268
1269 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён.
1270
1271 *) Изменение: некоторые давно устаревшие директивы больше не
1272 поддерживаются.
1273
1274 *) Добавление: параметр reuseport директивы listen.
1275 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
1276
1277 *) Добавление: переменная $upstream_connect_time.
1278
1279 *) Исправление: в директиве hash на big-endian платформах.
1280
1281 *) Исправление: nginx мог не запускаться на некоторых старых версиях
1282 Linux; ошибка появилась в 1.7.11.
1283
1284 *) Исправление: в парсинге IP-адресов.
1285 Спасибо Сергею Половко.
1286
1287
1288 Изменения в nginx 1.9.0 28.04.2015
1289
1290 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше
1291 не поддерживаются.
1292
1293 *) Добавление: директива zone в блоке upstream.
1294
1295 *) Добавление: модуль stream.
1296
1297 *) Добавление: поддержка byte ranges для ответов модуля
1298 ngx_http_memcached_module.
1299 Спасибо Martin Mlynář.
1300
1301 *) Добавление: разделяемую память теперь можно использовать на версиях
1302 Windows с рандомизацией адресного пространства.
1303 Спасибо Сергею Брестеру.
1304
1305 *) Добавление: директиву error_log теперь можно использовать на уровнях
1306 mail и server в почтовом прокси-сервере.
1307
1308 *) Исправление: параметр proxy_protocol директивы listen не работал,
1309 если не был указан в первой директиве listen для данного
1310 listen-сокета.
1311
1312
1313 Изменения в nginx 1.7.12 07.04.2015
1314
1315 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
1316 с бэкендами.
1317
1318 *) Добавление: теперь потоки могут использоваться для чтения заголовков
1319 файлов в кэше.
1320
1321 *) Исправление: в директиве proxy_request_buffering.
1322
1323 *) Исправление: при использовании потоков на Linux в рабочем процессе
1324 мог произойти segmentation fault.
1325
1326 *) Исправление: в обработке ошибок при использовании директивы
1327 ssl_stapling.
1328 Спасибо Filipe da Silva.
1329
1330 *) Исправление: в модуле ngx_http_spdy_module.
1331
1332
1333 Изменения в nginx 1.7.11 24.03.2015
1334
1335 *) Изменение: параметр sendfile директивы aio более не нужен; теперь
1336 nginx автоматически использует AIO для подгрузки данных для sendfile,
1337 если одновременно используются директивы aio и sendfile.
1338
1339 *) Добавление: экспериментальная поддержка потоков.
1340
1341 *) Добавление: директивы proxy_request_buffering,
1342 fastcgi_request_buffering, scgi_request_buffering и
1343 uwsgi_request_buffering.
1344
1345 *) Добавление: экспериментальное API для обработки тела запроса.
1346
1347 *) Добавление: проверка клиентских SSL-сертификатов в почтовом
1348 прокси-сервере.
1349 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
1350
1351 *) Добавление: уменьшение времени запуска при использовании директивы
1352 "hash ... consistent" в блоке upstream.
1353 Спасибо Wai Keen Woon.
1354
1355 *) Добавление: отладочное логгирование в кольцевой буфер в памяти.
1356
1357 *) Исправление: в обработке хэш-таблиц.
1358 Спасибо Chris West.
1359
1360 *) Исправление: в директиве proxy_cache_revalidate.
1361
1362 *) Исправление: SSL-соединения могли зависать, если использовался
1363 отложенный accept или параметр proxy_protocol директивы listen.
1364 Спасибо James Hamlin.
1365
1366 *) Исправление: переменная $upstream_response_time могла содержать
1367 неверное значение при использовании директивы image_filter.
1368
1369 *) Исправление: в обработке целочисленных переполнений.
1370 Спасибо Régis Leroy.
1371
1372 *) Исправление: при использовании LibreSSL было невозможно включить
1373 поддержку SSLv3.
1374
1375 *) Исправление: при использовании LibreSSL в логах появлялись сообщения
1376 "ignoring stale global SSL error ... called a function you should not
1377 call".
1378
1379 *) Исправление: сертификаты, указанные в директивах
1380 ssl_client_certificate и ssl_trusted_certificate, использовались для
1381 автоматического построения цепочек сертификатов.
1382
1383
1384 Изменения в nginx 1.7.10 10.02.2015
1385
1386 *) Добавление: параметр use_temp_path директив proxy_cache_path,
1387 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
1388
1389 *) Добавление: переменная $upstream_header_time.
1390
1391 *) Изменение: теперь при переполнении диска nginx пытается писать
1392 error_log'и только раз в секунду.
1393
1394 *) Исправление: директива try_files при тестировании каталогов не
1395 игнорировала обычные файлы.
1396 Спасибо Damien Tournoud.
1397
1398 *) Исправление: при использовании директивы sendfile на OS X возникали
1399 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8.
1400
1401 *) Исправление: в лог могли писаться сообщения "sem_post() failed".
1402
1403 *) Исправление: nginx не собирался с musl libc.
1404 Спасибо James Taylor.
1405
1406 *) Исправление: nginx не собирался на Tru64 UNIX.
1407 Спасибо Goetz T. Fischer.
1408
1409
1410 Изменения в nginx 1.7.9 23.12.2014
1411
1412 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
1413 uwsgi_cache поддерживают переменные.
1414
1415 *) Добавление: директива expires поддерживает переменные.
1416
1417 *) Добавление: возможность загрузки секретных ключей с аппаратных
1418 устройств с помощью OpenSSL engines.
1419 Спасибо Дмитрию Пичулину.
1420
1421 *) Добавление: директива autoindex_format.
1422
1423 *) Исправление: ревалидация элементов кэша теперь используется только
1424 для ответов с кодами 200 и 206.
1425 Спасибо Piotr Sikora.
1426
1427 *) Исправление: строка "TE" заголовка запроса клиента передавалась на
1428 бэкенд при проксировании.
1429
1430 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
1431 uwsgi_pass могли неправильно работать внутри блоков if и
1432 limit_except.
1433
1434 *) Исправление: директива proxy_store с параметром "on" игнорировалась,
1435 если на предыдущем уровне использовалась директива proxy_store с явно
1436 заданным путём к файлам.
1437
1438 *) Исправление: nginx не собирался с BoringSSL.
1439 Спасибо Lukas Tribus.
1440
1441
1442 Изменения в nginx 1.7.8 02.12.2014
1443
1444 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им
1445 подобные в заголовке запроса клиента передаются бэкенду при
1446 включённом кэшировании, если nginx заранее знает, что не будет
1447 кэшировать ответ (например, при использовании proxy_cache_min_uses).
1448
1449 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
1450 отправляет запрос на бэкенд без кэширования; новые директивы
1451 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
1452 uwsgi_cache_lock_age позволяют указать, через какое время блокировка
1453 будет принудительно снята и будет сделана ещё одна попытка
1454 закэшировать ответ.
1455
1456 *) Изменение: директива log_format теперь может использоваться только на
1457 уровне http.
1458
1459 *) Добавление: директивы proxy_ssl_certificate,
1460 proxy_ssl_certificate_key, proxy_ssl_password_file,
1461 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
1462 uwsgi_ssl_password_file.
1463 Спасибо Piotr Sikora.
1464
1465 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
1466 именованный location.
1467 Спасибо Toshikuni Fukaya.
1468
1469 *) Добавление: теперь директива tcp_nodelay работает для
1470 SPDY-соединений.
1471
1472 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
1473 Спасибо Peter Wu.
1474
1475 *) Исправление: nginx игнорировал значение "s-maxage" в строке
1476 "Cache-Control" в заголовке ответа бэкенда.
1477 Спасибо Piotr Sikora.
1478
1479 *) Исправление: в модуле ngx_http_spdy_module.
1480 Спасибо Piotr Sikora.
1481
1482 *) Исправление: в директиве ssl_password_file при использовании OpenSSL
1483 0.9.8zc, 1.0.0o, 1.0.1j.
1484
1485 *) Исправление: при использовании директивы post_action в лог писались
1486 сообщения "header already sent"; ошибка появилась в nginx 1.5.4.
1487
1488 *) Исправление: при использовании директивы "postpone_output 0" с
1489 SSI-подзапросами в лог могли писаться сообщения "the http output
1490 chain is empty".
1491
1492 *) Исправление: в директиве proxy_cache_lock при использовании
1493 SSI-подзапросов.
1494 Спасибо Yichun Zhang.
1495
1496
1497 Изменения в nginx 1.7.7 28.10.2014
1498
1499 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
1500 заголовке ответа бэкенда.
1501
1502 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
1503 scgi_force_ranges и uwsgi_force_ranges.
1504
1505 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
1506 scgi_limit_rate и uwsgi_limit_rate.
1507
1508 *) Добавление: параметр Vary директив proxy_ignore_headers,
1509 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.
1510
1511 *) Исправление: последняя часть ответа, полученного от бэкенда при
1512 небуферизированном проксировании, могла не отправляться клиенту, если
1513 использовались директивы gzip или gunzip.
1514
1515 *) Исправление: в директиве proxy_cache_revalidate.
1516 Спасибо Piotr Sikora.
1517
1518 *) Исправление: в обработке ошибок.
1519 Спасибо Yichun Zhang и Даниилу Бондареву.
1520
1521 *) Исправление: в директивах proxy_next_upstream_tries и
1522 proxy_next_upstream_timeout.
1523 Спасибо Feng Gu.
1524
1525 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
1526 Спасибо Kouhei Sutou.
1527
1528
1529 Изменения в nginx 1.7.6 30.09.2014
1530
1531 *) Изменение: устаревшая директива limit_zone больше не поддерживается.
1532
1533 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
1534 можно использовать комбинации нескольких переменных.
1535
1536 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
1537 запроса могло передаваться неправильно.
1538
1539 *) Исправление: в логгировании в syslog.
1540
1541
1542 Изменения в nginx 1.7.5 16.09.2014
1543
1544 *) Безопасность: при использовании общего для нескольких блоков server
1545 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
1546 session tickets было возможно повторно использовать SSL-сессию в
1547 контексте другого блока server (CVE-2014-3616).
1548 Спасибо Antoine Delignat-Lavaud.
1549
1550 *) Изменение: директиву stub_status теперь можно указывать без
1551 параметров.
1552
1553 *) Добавление: параметр always директивы add_header.
1554
1555 *) Добавление: директивы proxy_next_upstream_tries,
1556 proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
1557 fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
1558 memcached_next_upstream_timeout, scgi_next_upstream_tries,
1559 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
1560 uwsgi_next_upstream_timeout.
1561
1562 *) Исправление: в параметре if директивы access_log.
1563
1564 *) Исправление: в модуле ngx_http_perl_module.
1565 Спасибо Piotr Sikora.
1566
1567 *) Исправление: директива listen почтового прокси-сервера не позволяла
1568 указать более двух параметров.
1569
1570 *) Исправление: директива sub_filter не работала с заменяемой строкой из
1571 одного символа.
1572
1573 *) Исправление: запросы могли зависать, если использовался resolver и в
1574 процессе обращения к DNS-серверу происходил таймаут.
1575
1576 *) Исправление: в модуле ngx_http_spdy_module при использовании
1577 совместно с AIO.
1578
1579 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1580 если с помощью директивы set изменялись переменные "$http_...",
1581 "$sent_http_..." или "$upstream_http_...".
1582
1583 *) Исправление: в обработке ошибок выделения памяти.
1584 Спасибо Markus Linnala и Feng Gu.
1585
1586
1587 Изменения в nginx 1.7.4 05.08.2014
1588
1589 *) Безопасность: pipelined-команды не отбрасывались после команды
1590 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
1591 1.5.6.
1592 Спасибо Chris Boulton.
1593
1594 *) Изменение: экранирование символов в URI теперь использует
1595 шестнадцатеричные цифры в верхнем регистре.
1596 Спасибо Piotr Sikora.
1597
1598 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
1599 Спасибо Piotr Sikora.
1600
1601 *) Исправление: запросы могли зависать, если использовался resolver и
1602 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.
1603
1604 *) Исправление: в модуле ngx_http_spdy_module.
1605 Спасибо Piotr Sikora.
1606
1607 *) Исправление: переменная $uri могла содержать мусор при возврате
1608 ошибок с кодом 400.
1609 Спасибо Сергею Боброву.
1610
1611 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле
1612 ngx_http_dav_module.
1613 Спасибо Feng Gu.
1614
1615 *) Исправление: при логгировании ошибок в syslog мог происходить
1616 segmentation fault; ошибка появилась в 1.7.1.
1617
1618 *) Исправление: переменные $geoip_latitude, $geoip_longitude,
1619 $geoip_dma_code и $geoip_area_code могли не работать.
1620 Спасибо Yichun Zhang.
1621
1622 *) Исправление: в обработке ошибок выделения памяти.
1623 Спасибо Tatsuhiko Kubo и Piotr Sikora.
1624
1625
1626 Изменения в nginx 1.7.3 08.07.2014
1627
1628 *) Добавление: weak entity tags теперь не удаляются при изменениях
1629 ответа, а strong entity tags преобразуются в weak.
1630
1631 *) Добавление: ревалидация элементов кэша теперь, если это возможно,
1632 использует заголовок If-None-Match.
1633
1634 *) Добавление: директива ssl_password_file.
1635
1636 *) Исправление: при возврате ответа из кэша заголовок запроса
1637 If-None-Match игнорировался, если в ответе не было заголовка
1638 Last-Modified.
1639
1640 *) Исправление: сообщения "peer closed connection in SSL handshake" при
1641 соединении с бэкендами логгировались на уровне info вместо error.
1642
1643 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows.
1644
1645 *) Исправление: SPDY-соединения могли неожиданно закрываться, если
1646 использовалось кэширование.
1647
1648
1649 Изменения в nginx 1.7.2 17.06.2014
1650
1651 *) Добавление: директива hash в блоке upstream.
1652
1653 *) Добавление: дефрагментация свободных блоков разделяемой памяти.
1654 Спасибо Wandenberg Peixoto и Yichun Zhang.
1655
1656 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1657 если использовалось значение access_log по умолчанию; ошибка
1658 появилась в 1.7.0.
1659 Спасибо Piotr Sikora.
1660
1661 *) Исправление: завершающий слэш ошибочно удалялся из последнего
1662 параметра директивы try_files.
1663
1664 *) Исправление: nginx мог не собираться на OS X.
1665
1666 *) Исправление: в модуле ngx_http_spdy_module.
1667
1668
1669 Изменения в nginx 1.7.1 27.05.2014
1670
1671 *) Добавление: переменные "$upstream_cookie_...".
1672
1673 *) Добавление: переменная $ssl_client_fingerprint.
1674
1675 *) Добавление: директивы error_log и access_log теперь поддерживают
1676 логгирование в syslog.
1677
1678 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
1679 соединении.
1680
1681 *) Исправление: утечки памяти при использовании директивы
1682 "ssl_stapling".
1683 Спасибо Filipe da Silva.
1684
1685 *) Исправление: директива alias внутри location'а, заданного регулярным
1686 выражением, работала неправильно, если использовались директивы if
1687 или limit_except.
1688
1689 *) Исправление: директива charset не ставила кодировку для сжатых
1690 ответов бэкендов.
1691
1692 *) Исправление: директива proxy_pass без URI могла использовать
1693 оригинальный запрос после установки переменной $args.
1694 Спасибо Yichun Zhang.
1695
1696 *) Исправление: в работе параметра none директивы smtp_auth; ошибка
1697 появилась в 1.5.6.
1698 Спасибо Святославу Никольскому.
1699
1700 *) Исправление: при совместном использовании sub_filter и SSI ответы
1701 могли передаваться неверно.
1702
1703 *) Исправление: nginx не собирался с параметром --with-file-aio на
1704 Linux/aarch64.
1705
1706
1707 Изменения в nginx 1.7.0 24.04.2014
1708
1709 *) Добавление: проверка SSL-сертификатов бэкендов.
1710
1711 *) Добавление: поддержка SNI при работе с бэкендами по SSL.
1712
1713 *) Добавление: переменная $ssl_server_name.
1714
1715 *) Добавление: параметр if директивы access_log.
1716
1717
1718 Изменения в nginx 1.5.13 08.04.2014
1719
1720 *) Изменение: улучшена обработка хэш-таблиц; в директивах
1721 variables_hash_max_size и types_hash_bucket_size значения по
1722 умолчанию изменены на 1024 и 64 соответственно.
1723
1724 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
1725
1726 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
1727 сохранении ответов в кэш.
1728
1729 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
1730 failed: no memory" при использовании разделяемой памяти в
1731 ssl_session_cache и в модуле ngx_http_limit_req_module.
1732
1733 *) Исправление: директива underscores_in_headers не разрешала
1734 подчёркивание в первом символе заголовка.
1735 Спасибо Piotr Sikora.
1736
1737 *) Исправление: cache manager мог нагружать процессор при выходе в
1738 nginx/Windows.
1739
1740 *) Исправление: при использовании ssl_session_cache с параметром shared
1741 рабочий процесс nginx/Windows завершался аварийно.
1742
1743 *) Исправление: в модуле ngx_http_spdy_module.
1744
1745
1746 Изменения в nginx 1.5.12 18.03.2014
1747
1748 *) Безопасность: при обработке специально созданного запроса модулем
1749 ngx_http_spdy_module могло происходить переполнение буфера в рабочем
1750 процессе, что потенциально могло приводить к выполнению произвольного
1751 кода (CVE-2014-0133).
1752 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
1753 Buenos Aires, Argentina.
1754
1755 *) Добавление: параметр proxy_protocol в директивах listen и
1756 real_ip_header, переменная $proxy_protocol_addr.
1757
1758 *) Исправление: в директиве fastcgi_next_upstream.
1759 Спасибо Lucas Molas.
1760
1761
1762 Изменения в nginx 1.5.11 04.03.2014
1763
1764 *) Безопасность: при обработке специально созданного запроса модулем
1765 ngx_http_spdy_module на 32-битных платформах могла повреждаться
1766 память рабочего процесса, что потенциально могло приводить к
1767 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
1768 1.5.10.
1769 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
1770 Buenos Aires, Argentina.
1771
1772 *) Добавление: переменная $ssl_session_reused.
1773
1774 *) Исправление: директива client_max_body_size могла не работать при
1775 чтении тела запроса с использованием chunked transfer encoding;
1776 ошибка появилась в 1.3.9.
1777 Спасибо Lucas Molas.
1778
1779 *) Исправление: при проксировании WebSocket-соединений в рабочем
1780 процессе мог произойти segmentation fault.
1781
1782 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1783 если использовался модуль ngx_http_spdy_module на 32-битных
1784 платформах; ошибка появилась в 1.5.10.
1785
1786 *) Исправление: значение переменной $upstream_status могло быть
1787 неверным, если использовались директивы proxy_cache_use_stale или
1788 proxy_cache_revalidate.
1789 Спасибо Piotr Sikora.
1790
1791 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1792 если ошибки с кодом 400 с помощью директивы error_page
1793 перенаправлялись в именованный location.
1794
1795 *) Исправление: nginx/Windows не собирался с Visual Studio 2013.
1796
1797
1798 Изменения в nginx 1.5.10 04.02.2014
1799
1800 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол
1801 SPDY 3.1.
1802 Спасибо Automattic и MaxCDN за спонсирование разработки.
1803
1804 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
1805 имеющие меньшую длину, чем запрошенная перемотка.
1806
1807 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1808 если переменная $ssl_session_id использовалась при логгировании;
1809 ошибка появилась в 1.5.9.
1810
1811 *) Исправление: переменные $date_local и $date_gmt использовали неверный
1812 формат вне модуля ngx_http_ssi_filter_module.
1813
1814 *) Исправление: клиентские соединения могли сразу закрываться, если
1815 использовался отложенный accept; ошибка появилась в 1.3.15.
1816
1817 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
1818 записывались в лог в процессе обновления исполняемого файла на Linux;
1819 ошибка появилась в 1.5.8.
1820 Спасибо Piotr Sikora.
1821
1822
1823 Изменения в nginx 1.5.9 22.01.2014
1824
1825 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
1826 закодированный URI.
1827
1828 *) Добавление: директива ssl_buffer_size.
1829
1830 *) Добавление: директиву limit_rate теперь можно использовать для
1831 ограничения скорости передачи ответов клиенту в SPDY-соединениях.
1832
1833 *) Добавление: директива spdy_chunk_size.
1834
1835 *) Добавление: директива ssl_session_tickets.
1836 Спасибо Dirkjan Bussink.
1837
1838 *) Исправление: переменная $ssl_session_id содержала всю сессию в
1839 сериализованном виде вместо её идентификатора.
1840 Спасибо Ivan Ristić.
1841
1842 *) Исправление: nginx неправильно обрабатывал закодированный символ "?"
1843 в команде SSI include.
1844
1845 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
1846 при обработке методов COPY и MOVE.
1847
1848 *) Исправление: resolver не понимал доменные имена с точкой в конце.
1849 Спасибо Yichun Zhang.
1850
1851 *) Исправление: при проксировании в логах могли появляться сообщения
1852 "zero size buf in output"; ошибка появилась в 1.3.9.
1853
1854 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1855 если использовался модуль ngx_http_spdy_module.
1856
1857 *) Исправление: при использовании методов обработки соединений select,
1858 poll и /dev/poll проксируемые WebSocket-соединения могли зависать
1859 сразу после открытия.
1860
1861 *) Исправление: директива xclient почтового прокси-сервера некорректно
1862 передавала IPv6-адреса.
1863
1864
1865 Изменения в nginx 1.5.8 17.12.2013
1866
1867 *) Добавление: теперь resolver поддерживает IPv6.
1868
1869 *) Добавление: директива listen поддерживает параметр fastopen.
1870 Спасибо Mathew Rodley.
1871
1872 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
1873 Спасибо Roberto De Ioris.
1874
1875 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
1876 Спасибо Evan Miller.
1877
1878 *) Исправление: при чтении тела запроса с использованием chunked
1879 transfer encoding по SSL-соединению мог произойти таймаут.
1880
1881 *) Исправление: директива master_process работала неправильно в
1882 nginx/Windows.
1883
1884 *) Исправление: параметр setfib директивы listen мог не работать.
1885
1886 *) Исправление: в модуле ngx_http_spdy_module.
1887
1888
1889 Изменения в nginx 1.5.7 19.11.2013
1890
1891 *) Безопасность: символ, следующий за незакодированным пробелом в строке
1892 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
1893 в 0.8.41.
1894 Спасибо Ivan Fratric из Google Security Team.
1895
1896 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии
1897 пароля понижен с уровня error до info.
1898
1899 *) Добавление: директивы proxy_cache_revalidate,
1900 fastcgi_cache_revalidate, scgi_cache_revalidate и
1901 uwsgi_cache_revalidate.
1902
1903 *) Добавление: директива ssl_session_ticket_key.
1904 Спасибо Piotr Sikora.
1905
1906 *) Исправление: директива "add_header Cache-Control ''" добавляла строку
1907 заголовка ответа "Cache-Control" с пустым значением.
1908
1909 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
1910 401 при использовании директив auth_request и auth_basic.
1911 Спасибо Jan Marc Hoffmann.
1912
1913 *) Исправление: параметры accept_filter и deferred директивы listen
1914 игнорировались для listen-сокетов, создаваемых в процессе обновления
1915 исполняемого файла.
1916 Спасибо Piotr Sikora.
1917
1918 *) Исправление: часть данных, полученных от бэкенда при
1919 небуферизированном проксировании, могла не отправляться клиенту
1920 сразу, если использовались директивы gzip или gunzip.
1921 Спасибо Yichun Zhang.
1922
1923 *) Исправление: в обработке ошибок в модуле
1924 ngx_http_gunzip_filter_module.
1925
1926 *) Исправление: ответы могли зависать, если использовался модуль
1927 ngx_http_spdy_module и директива auth_request.
1928
1929 *) Исправление: утечки памяти в nginx/Windows.
1930
1931
1932 Изменения в nginx 1.5.6 01.10.2013
1933
1934 *) Добавление: директива fastcgi_buffering.
1935
1936 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
1937 Спасибо Piotr Sikora.
1938
1939 *) Добавление: оптимизация SSL handshake при использовании длинных
1940 цепочек сертификатов.
1941
1942 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
1943
1944 *) Исправление: в модуле ngx_http_auth_basic_module при использовании
1945 метода шифрования паролей "$apr1$".
1946 Спасибо Markus Linnala.
1947
1948 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
1949 мог использоваться неверный location, если для задания location'ов
1950 использовались символы разных регистров.
1951
1952 *) Исправление: автоматическое перенаправление с добавлением
1953 завершающего слэша для проксированных location'ов могло не работать.
1954
1955 *) Исправление: в почтовом прокси-сервере.
1956
1957 *) Исправление: в модуле ngx_http_spdy_module.
1958
1959
1960 Изменения в nginx 1.5.5 17.09.2013
1961
1962 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
1963 определить протокол не удалось.
1964
1965 *) Добавление: директива disable_symlinks теперь использует O_PATH на
1966 Linux.
1967
1968 *) Добавление: для определения того, что клиент закрыл соединение, при
1969 использовании метода epoll теперь используются события EPOLLRDHUP.
1970
1971 *) Исправление: в директиве valid_referers при использовании параметра
1972 server_names.
1973
1974 *) Исправление: переменная $request_time не работала в nginx/Windows.
1975
1976 *) Исправление: в директиве image_filter.
1977 Спасибо Lanshun Zhou.
1978
1979 *) Исправление: совместимость с OpenSSL 1.0.1f.
1980 Спасибо Piotr Sikora.
1981
1982
1983 Изменения в nginx 1.5.4 27.08.2013
1984
1985 *) Изменение: MIME-тип для расширения js изменён на
1986 "application/javascript"; значение по умолчанию директивы
1987 charset_types изменено соответственно.
1988
1989 *) Изменение: теперь директива image_filter с параметром size возвращает
1990 ответ с MIME-типом "application/json".
1991
1992 *) Добавление: модуль ngx_http_auth_request_module.
1993
1994 *) Исправление: на старте или во время переконфигурации мог произойти
1995 segmentation fault, если использовалась директива try_files с пустым
1996 параметром.
1997
1998 *) Исправление: утечки памяти при использовании в директивах root и
1999 auth_basic_user_file относительных путей, заданных с помощью
2000 переменных.
2001
2002 *) Исправление: директива valid_referers неправильно выполняла
2003 регулярные выражения, если заголовок Referer начинался с "https://".
2004 Спасибо Liangbin Li.
2005
2006 *) Исправление: ответы могли зависать, если использовались подзапросы и
2007 при обработке подзапроса происходила ошибка во время SSL handshake с
2008 бэкендом.
2009 Спасибо Aviram Cohen.
2010
2011 *) Исправление: в модуле ngx_http_autoindex_module.
2012
2013 *) Исправление: в модуле ngx_http_spdy_module.
2014
2015
2016 Изменения в nginx 1.5.3 30.07.2013
2017
2018 *) Изменение во внутреннем API: теперь при небуферизированной работе с
2019 бэкендами u->length по умолчанию устанавливается в -1.
2020
2021 *) Изменение: теперь при получении неполного ответа от бэкенда nginx
2022 отправляет полученную часть ответа, после чего закрывает соединение с
2023 клиентом.
2024
2025 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2026 если использовался модуль ngx_http_spdy_module и директива
2027 client_body_in_file_only.
2028
2029 *) Исправление: параметр so_keepalive директивы listen мог работать
2030 некорректно на DragonFlyBSD.
2031 Спасибо Sepherosa Ziehau.
2032
2033 *) Исправление: в модуле ngx_http_xslt_filter_module.
2034
2035 *) Исправление: в модуле ngx_http_sub_filter_module.
2036
2037
2038 Изменения в nginx 1.5.2 02.07.2013
2039
2040 *) Добавление: теперь можно использовать несколько директив error_log.
2041
2042 *) Исправление: метод $r->header_in() встроенного перла не возвращал
2043 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
2044 ошибка появилась в 1.3.14.
2045
2046 *) Исправление: в модуле ngx_http_spdy_module.
2047 Спасибо Jim Radford.
2048
2049 *) Исправление: nginx не собирался на Linux при использовании x32 ABI.
2050 Спасибо Сергею Иванцову.
2051
2052
2053 Изменения в nginx 1.5.1 04.06.2013
2054
2055 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
2056 xslt_last_modified.
2057 Спасибо Алексею Колпакову.
2058
2059 *) Добавление: параметр http_403 в директивах proxy_next_upstream,
2060 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
2061
2062 *) Добавление: директивы allow и deny теперь поддерживают unix domain
2063 сокеты.
2064
2065 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
2066 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
2067
2068 *) Исправление: в директиве proxy_set_body.
2069 Спасибо Lanshun Zhou.
2070
2071 *) Исправление: в директиве lingering_time.
2072 Спасибо Lanshun Zhou.
2073
2074 *) Исправление: параметр fail_timeout директивы server в блоке upstream
2075 мог не работать, если использовался параметр max_fails; ошибка
2076 появилась в 1.3.0.
2077
2078 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2079 если использовалась директива ssl_stapling.
2080 Спасибо Piotr Sikora.
2081
2082 *) Исправление: в почтовом прокси-сервере.
2083 Спасибо Filipe Da Silva.
2084
2085 *) Исправление: nginx/Windows мог перестать принимать соединения, если
2086 использовалось несколько рабочих процессов.
2087
2088
2089 Изменения в nginx 1.5.0 07.05.2013
2090
2091 *) Безопасность: при обработке специально созданного запроса мог
2092 перезаписываться стек рабочего процесса, что могло приводить к
2093 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
2094 1.3.9.
2095 Спасибо Greg MacManus, iSIGHT Partners Labs.
2096
2097
2098 Изменения в nginx 1.4.0 24.04.2013
2099
2100 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2101 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
2102
2103 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
2104 ошибка появилась в 1.3.9.
2105
2106
2107 Изменения в nginx 1.3.16 16.04.2013
2108
2109 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2110 если использовались подзапросы; ошибка появилась в 1.3.9.
2111
2112 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
2113 WebSocket-соединений в unix domain сокет.
2114
2115 *) Исправление: переменная $upstream_response_length возвращала значение
2116 "0", если не использовалась буферизация.
2117 Спасибо Piotr Sikora.
2118
2119 *) Исправление: в методах обработки соединений eventport и /dev/poll.
2120
2121
2122 Изменения в nginx 1.3.15 26.03.2013
2123
2124 *) Изменение: открытие и закрытие соединения без отправки в нём
2125 каких-либо данных больше не записывается в access_log с кодом ошибки
2126 400.
2127
2128 *) Добавление: модуль ngx_http_spdy_module.
2129 Спасибо Automattic за спонсирование разработки.
2130
2131 *) Добавление: директивы limit_req_status и limit_conn_status.
2132 Спасибо Nick Marden.
2133
2134 *) Добавление: директива image_filter_interlace.
2135 Спасибо Ивану Боброву.
2136
2137 *) Добавление: переменная $connections_waiting в модуле
2138 ngx_http_stub_status_module.
2139
2140 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
2141
2142 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
2143 могло передаваться неправильно; ошибка появилась в 1.3.9.
2144 Спасибо Piotr Sikora.
2145
2146 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2147 1.3.9.
2148
2149 *) Исправление: ответы могли зависать, если использовались подзапросы и
2150 при обработке подзапроса происходила DNS-ошибка.
2151 Спасибо Lanshun Zhou.
2152
2153 *) Исправление: в процедуре учёта использования бэкендов.
2154
2155
2156 Изменения в nginx 1.3.14 05.03.2013
2157
2158 *) Добавление: переменные $connections_active, $connections_reading и
2159 $connections_writing в модуле ngx_http_stub_status_module.
2160
2161 *) Добавление: поддержка WebSocket-соединений в модулях
2162 ngx_http_uwsgi_module и ngx_http_scgi_module.
2163
2164 *) Исправление: в обработке виртуальных серверов при использовании SNI.
2165
2166 *) Исправление: при использовании директивы "ssl_session_cache shared"
2167 новые сессии могли не сохраняться, если заканчивалось место в
2168 разделяемой памяти.
2169 Спасибо Piotr Sikora.
2170
2171 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
2172 неправильно.
2173 Спасибо Neal Poole за спонсирование разработки.
2174
2175 *) Исправление: в модуле ngx_http_mp4_module.
2176 Спасибо Gernot Vormayr.
2177
2178
2179 Изменения в nginx 1.3.13 19.02.2013
2180
2181 *) Изменение: теперь для сборки по умолчанию используется компилятор с
2182 именем "cc".
2183
2184 *) Добавление: поддержка проксирования WebSocket-соединений.
2185 Спасибо Apcera и CloudBees за спонсирование разработки.
2186
2187 *) Добавление: директива auth_basic_user_file поддерживает шифрование
2188 паролей методом "{SHA}".
2189 Спасибо Louis Opter.
2190
2191
2192 Изменения в nginx 1.3.12 05.02.2013
2193
2194 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
2195 scgi_bind и uwsgi_bind поддерживают переменные.
2196
2197 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
2198 $time_local теперь можно использовать не только в директиве
2199 log_format.
2200 Спасибо Kiril Kalchev.
2201
2202 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
2203 Спасибо Gregor Kališnik.
2204
2205 *) Исправление: директива proxy_method работала неверно, если была
2206 указана на уровне http.
2207
2208 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2209 если использовался resolver и метод poll.
2210
2211 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
2212 бэкендом при использовании методов обработки соединений select, poll
2213 и /dev/poll.
2214
2215 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
2216
2217 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2218 1.3.9.
2219
2220 *) Исправление: в директиве fastcgi_keep_conn.
2221
2222
2223 Изменения в nginx 1.3.11 10.01.2013
2224
2225 *) Исправление: при записи в лог мог происходить segmentation fault;
2226 ошибка появилась в 1.3.10.
2227
2228 *) Исправление: директива proxy_pass не работала с IP-адресами без
2229 явного указания порта; ошибка появилась в 1.3.10.
2230
2231 *) Исправление: на старте или во время переконфигурации происходил
2232 segmentation fault, если директива keepalive была указана несколько
2233 раз в одном блоке upstream.
2234
2235 *) Исправление: параметр default директивы geo не определял значение по
2236 умолчанию для IPv6-адресов.
2237
2238
2239 Изменения в nginx 1.3.10 25.12.2012
2240
2241 *) Изменение: для указанных в конфигурационном файле доменных имён
2242 теперь используются не только IPv4, но и IPv6 адреса.
2243
2244 *) Изменение: теперь при использовании директивы include с маской на
2245 Unix-системах включаемые файлы сортируются в алфавитном порядке.
2246
2247 *) Изменение: директива add_header добавляет строки в ответы с кодом
2248 201.
2249
2250 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
2251 CIDR.
2252
2253 *) Добавление: параметры flush и gzip в директиве access_log.
2254
2255 *) Добавление: директива auth_basic поддерживает переменные.
2256
2257 *) Исправление: nginx в некоторых случаях не собирался с модулем
2258 ngx_http_perl_module.
2259
2260 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2261 если использовался модуль ngx_http_xslt_module.
2262
2263 *) Исправление: nginx мог не собираться на MacOSX.
2264 Спасибо Piotr Sikora.
2265
2266 *) Исправление: при использовании директивы limit_rate с большими
2267 значениями скорости на 32-битных системах ответ мог возвращаться не
2268 целиком.
2269 Спасибо Алексею Антропову.
2270
2271 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2272 если использовалась директива if.
2273 Спасибо Piotr Sikora.
2274
2275 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
2276 Request Entity Too Large".
2277
2278 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
2279 image_filter_sharpen могли наследоваться некорректно.
2280 Спасибо Ивану Боброву.
2281
2282 *) Исправление: при использовании директивы auth_basic под Linux могли
2283 возникать ошибки "crypt_r() failed".
2284
2285 *) Исправление: в обработке backup-серверов.
2286 Спасибо Thomas Chen.
2287
2288 *) Исправление: при проксировании HEAD-запросов мог возвращаться
2289 некорректный ответ, если использовалась директива gzip.
2290
2291
2292 Изменения в nginx 1.3.9 27.11.2012
2293
2294 *) Добавление: поддержка chunked transfer encoding при получении тела
2295 запроса.
2296
2297 *) Добавление: переменные $request_time и $msec теперь можно
2298 использовать не только в директиве log_format.
2299
2300 *) Исправление: cache manager и cache loader могли не запускаться, если
2301 использовалось более 512 listen-сокетов.
2302
2303 *) Исправление: в модуле ngx_http_dav_module.
2304
2305
2306 Изменения в nginx 1.3.8 30.10.2012
2307
2308 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
2309 Спасибо Михаилу Казанцеву и Eric O'Connor.
2310
2311 *) Добавление: переменные $bytes_sent, $connection и
2312 $connection_requests теперь можно использовать не только в директиве
2313 log_format.
2314 Спасибо Benjamin Grössing.
2315
2316 *) Добавление: параметр auto директивы worker_processes.
2317
2318 *) Исправление: сообщения "cache file ... has md5 collision".
2319
2320 *) Исправление: в модуле ngx_http_gunzip_filter_module.
2321
2322 *) Исправление: в директиве ssl_stapling.
2323
2324
2325 Изменения в nginx 1.3.7 02.10.2012
2326
2327 *) Добавление: поддержка OCSP stapling.
2328 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
2329
2330 *) Добавление: директива ssl_trusted_certificate.
2331
2332 *) Добавление: теперь resolver случайным образом меняет порядок
2333 возвращаемых закэшированных адресов.
2334 Спасибо Антону Жулину.
2335
2336 *) Исправление: совместимость с OpenSSL 0.9.7.
2337
2338
2339 Изменения в nginx 1.3.6 12.09.2012
2340
2341 *) Добавление: модуль ngx_http_gunzip_filter_module.
2342
2343 *) Добавление: директива memcached_gzip_flag.
2344
2345 *) Добавление: параметр always директивы gzip_static.
2346
2347 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
2348 Спасибо Charles Chen.
2349
2350 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
2351 использовался параметр --with-ipv6.
2352
2353
2354 Изменения в nginx 1.3.5 21.08.2012
2355
2356 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
2357 дорожки в форматах, отличных от H.264 и AAC.
2358
2359 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2360 если в директиве map в качестве значений использовались переменные.
2361
2362 *) Исправление: в рабочем процессе мог произойти segmentation fault при
2363 использовании директивы geo с параметром ranges, но без параметра
2364 default; ошибка появилась в 0.8.43.
2365 Спасибо Zhen Chen и Weibin Yao.
2366
2367 *) Исправление: в обработке параметра командной строки -p.
2368
2369 *) Исправление: в почтовом прокси-сервере.
2370
2371 *) Исправление: незначительных потенциальных ошибок.
2372 Спасибо Coverity.
2373
2374 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
2375 Спасибо HAYASHI Kentaro.
2376
2377
2378 Изменения в nginx 1.3.4 31.07.2012
2379
2380 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
2381 по умолчанию.
2382
2383 *) Добавление: поддержка компилятора Clang.
2384
2385 *) Исправление: могли создаваться лишние слушающие сокеты.
2386 Спасибо Роману Одайскому.
2387
2388 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
2389 рабочего процесса происходила ошибка.
2390 Спасибо Ricardo Villalobos Guevara.
2391
2392 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
2393 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
2394 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
2395 наследоваться некорректно.
2396
2397
2398 Изменения в nginx 1.3.3 10.07.2012
2399
2400 *) Добавление: поддержка entity tags и директива etag.
2401
2402 *) Исправление: при использовании директивы map с параметром hostnames
2403 не игнорировалась конечная точка в исходном значении.
2404
2405 *) Исправление: для обработки запроса мог использоваться неверный
2406 location, если переход в именованный location происходил после
2407 изменения URI с помощью директивы rewrite.
2408
2409
2410 Изменения в nginx 1.3.2 26.06.2012
2411
2412 *) Изменение: параметр single директивы keepalive теперь игнорируется.
2413
2414 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
2415 OpenSSL старее 1.0.0.
2416
2417 *) Добавление: директиву "ip_hash" теперь можно использовать для
2418 балансировки IPv6 клиентов.
2419
2420 *) Добавление: переменную $status теперь можно использовать не только в
2421 директиве log_format.
2422
2423 *) Исправление: при завершении рабочего процесса мог произойти
2424 segmentation fault, если использовалась директива resolver.
2425
2426 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2427 если использовался модуль ngx_http_mp4_module.
2428
2429 *) Исправление: в модуле ngx_http_mp4_module.
2430
2431 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2432 если использовались конфликтующие имена серверов с масками.
2433
2434 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
2435 сигналу SIGBUS.
2436
2437 *) Исправление: во время переконфигурации на HP-UX в лог записывался
2438 alert "sendmsg() failed (9: Bad file number)".
2439
2440
2441 Изменения в nginx 1.3.1 05.06.2012
2442
2443 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
2444 компонента URI и не разрешает URI, содержащие последовательность
2445 ":$".
2446 Спасибо Владимиру Кочеткову, Positive Research Center.
2447
2448 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
2449 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
2450
2451 *) Добавление: в директиве resolver теперь можно указывать порт и
2452 задавать IPv6-адреса DNS-серверов.
2453
2454 *) Добавление: директива least_conn в блоке upstream.
2455
2456 *) Добавление: при использовании директивы ip_hash теперь можно задавать
2457 веса серверов.
2458
2459 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2460 если использовалась директива image_filter; ошибка появилась в 1.3.0.
2461
2462 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
2463 появилась в 1.1.12.
2464
2465 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
2466 работать после переконфигурации.
2467 Спасибо Yichun Zhang.
2468
2469 *) Исправление: в модуле ngx_http_xslt_filter_module.
2470 Спасибо Kuramoto Eiji.
2471
2472 *) Исправление: утечки памяти при использовании переменной $geoip_org.
2473 Спасибо Денису Латыпову.
2474
2475 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
2476
2477
2478 Изменения в nginx 1.3.0 15.05.2012
2479
2480 *) Добавление: директива debug_connection теперь поддерживает
2481 IPv6-адреса и параметр "unix:".
2482
2483 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
2484 теперь поддерживают IPv6-адреса.
2485
2486 *) Добавление: директивы real_ip_recursive, geoip_proxy и
2487 geoip_proxy_recursive.
2488
2489 *) Добавление: параметр proxy_recursive директивы geo.
2490
2491 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2492 если использовалась директива resolver.
2493
2494 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2495 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
2496 и бэкенд возвращал некорректный ответ.
2497
2498 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2499 если использовалась директива rewrite и в новых аргументах запроса в
2500 строке замены использовались переменные.
2501
2502 *) Исправление: nginx мог нагружать процессор, если было достигнуто
2503 ограничение на количество открытых файлов.
2504
2505 *) Исправление: при использовании директивы proxy_next_upstream с
2506 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
2507 блоке upstream был хотя бы один сервер с флагом backup.
2508
2509 *) Исправление: при использовании директивы ip_hash установка параметра
2510 down директивы server могла приводить к ненужному перераспределению
2511 клиентов между бэкендами.
2512
2513 *) Исправление: утечки сокетов.
2514 Спасибо Yichun Zhang.
2515
2516 *) Исправление: в модуле ngx_http_fastcgi_module.
2517
2518
2519 Изменения в nginx 1.2.0 23.04.2012
2520
2521 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2522 если использовалась директива try_files; ошибка появилась в 1.1.19.
2523
2524 *) Исправление: ответ мог быть передан не полностью, если использовалось
2525 больше IOV_MAX буферов.
2526
2527 *) Исправление: в работе параметра crop директивы image_filter.
2528 Спасибо Maxim Bublis.
2529
2530
2531 Изменения в nginx 1.1.19 12.04.2012
2532
2533 *) Безопасность: при обработке специально созданного mp4 файла модулем
2534 ngx_http_mp4_module могли перезаписываться области памяти рабочего
2535 процесса, что могло приводить к выполнению произвольного кода
2536 (CVE-2012-2089).
2537 Спасибо Matthew Daley.
2538
2539 *) Исправление: nginx/Windows мог завершаться аварийно.
2540 Спасибо Vincent Lee.
2541
2542 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
2543 были помечены флагом backup.
2544
2545 *) Исправление: директивы allow и deny могли наследоваться некорректно,
2546 если в них использовались IPv6 адреса.
2547
2548 *) Исправление: директивы modern_browser и ancient_browser могли
2549 наследоваться некорректно.
2550
2551 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
2552
2553 *) Исправление: в модуле ngx_http_mp4_module.
2554
2555
2556 Изменения в nginx 1.1.18 28.03.2012
2557
2558 *) Изменение: теперь keepalive соединения не запрещены для Safari по
2559 умолчанию.
2560
2561 *) Добавление: переменная $connection_requests.
2562
2563 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
2564 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
2565
2566 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
2567
2568 *) Добавление: директивы xslt_param и xslt_string_param.
2569 Спасибо Samuel Behan.
2570
2571 *) Исправление: в configure.
2572 Спасибо Piotr Sikora.
2573
2574 *) Исправление: в модуле ngx_http_xslt_filter_module.
2575
2576 *) Исправление: nginx не собирался на Debian GNU/Hurd.
2577
2578
2579 Изменения в nginx 1.1.17 15.03.2012
2580
2581 *) Безопасность: содержимое ранее освобождённой памяти могло быть
2582 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
2583 Спасибо Matthew Daley.
2584
2585 *) Исправление: при использовании встроенного перла из SSI.
2586 Спасибо Matthew Daley.
2587
2588 *) Исправление: в модуле ngx_http_uwsgi_module.
2589
2590
2591 Изменения в nginx 1.1.16 29.02.2012
2592
2593 *) Изменение: ограничение на количество одновременных подзапросов
2594 поднято до 200.
2595
2596 *) Добавление: параметр from в директиве disable_symlinks.
2597
2598 *) Добавление: директивы return и error_page теперь могут использоваться
2599 для возврата перенаправлений с кодом 307.
2600
2601 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2602 если использовалась директива resolver и на глобальном уровне не была
2603 задана директива error_log.
2604 Спасибо Роману Арутюняну.
2605
2606 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2607 если использовались директивы "proxy_http_version 1.1" или
2608 "fastcgi_keep_conn on".
2609
2610 *) Исправление: утечек памяти.
2611 Спасибо Lanshun Zhou.
2612
2613 *) Исправление: в директиве disable_symlinks.
2614
2615 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
2616 некорректно; ошибка появилась в 1.0.1.
2617
2618 *) Исправление: nginx не собирался компилятором icc 12.1.
2619
2620 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
2621 1.1.15.
2622
2623
2624 Изменения в nginx 1.1.15 15.02.2012
2625
2626 *) Добавление: директива disable_symlinks.
2627
2628 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
2629
2630 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
2631 prematurely closed connection" вместо "upstream sent too big header".
2632 Спасибо Feibo Li.
2633
2634 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2635 использовался параметр --with-openssl.
2636
2637 *) Исправление: количество внутренних перенаправлений в именованные
2638 location'ы не ограничивалось.
2639
2640 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
2641 ошибкам в модуле ngx_http_gzip_filter_module.
2642
2643 *) Исправление: при использовании директивы proxy_store с
2644 SSI-подзапросами временные файлы могли не удаляться.
2645
2646 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
2647 $args) возвращали старое пустое закэшированное значение.
2648
2649 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2650 если одновременно создавалось слишком много SSI-подзапросов; ошибка
2651 появилась в 0.7.25.
2652
2653
2654 Изменения в nginx 1.1.14 30.01.2012
2655
2656 *) Добавление: теперь можно указать несколько ограничений limit_req
2657 одновременно.
2658
2659 *) Исправление: в обработке ошибок при соединении с бэкендом.
2660 Спасибо Piotr Sikora.
2661
2662 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
2663
2664 *) Исправление: в инициализации библиотеки OpenSSL.
2665
2666 *) Исправление: директивы proxy_redirect могли наследоваться
2667 некорректно.
2668
2669 *) Исправление: утечки памяти при переконфигурации, если использовалась
2670 директива pcre_jit.
2671
2672
2673 Изменения в nginx 1.1.13 16.01.2012
2674
2675 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
2676
2677 *) Исправление: параметры директивы limit_req наследовались некорректно;
2678 ошибка появилась в 1.1.12.
2679
2680 *) Исправление: директива proxy_redirect некорректно обрабатывала
2681 заголовок Refresh при использовании регулярных выражений.
2682
2683 *) Исправление: директива proxy_cache_use_stale с параметром error не
2684 возвращала ответ из кэша, если все бэкенды были признаны
2685 неработающими.
2686
2687 *) Исправление: директива worker_cpu_affinity могла не работать.
2688
2689 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
2690 1.1.12.
2691
2692 *) Исправление: в модуле ngx_http_mp4_module.
2693
2694
2695 Изменения в nginx 1.1.12 26.12.2011
2696
2697 *) Изменение: после перенаправления запроса с помощью директивы
2698 error_page директива proxy_pass без URI теперь использует изменённый
2699 URI.
2700 Спасибо Lanshun Zhou.
2701
2702 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
2703 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
2704
2705 *) Добавление: директива pcre_jit.
2706
2707 *) Добавление: SSI команда if поддерживает выделения в регулярных
2708 выражениях.
2709
2710 *) Исправление: SSI команда if не работала внутри команды block.
2711
2712 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
2713 могли не работать.
2714
2715 *) Исправление: директива limit_rate не позволяла передавать на полной
2716 скорости, даже если был указан очень большой лимит.
2717
2718 *) Исправление: директива sendfile_max_chunk не работала, если
2719 использовалась директива limit_rate.
2720
2721 *) Исправление: если в директиве proxy_pass использовались переменные и
2722 не был указан URI, всегда использовался URI исходного запроса.
2723
2724 *) Исправление: после перенаправления запроса с помощью директивы
2725 try_files директива proxy_pass без URI могла использовать URI
2726 исходного запроса.
2727 Спасибо Lanshun Zhou.
2728
2729 *) Исправление: в модуле ngx_http_scgi_module.
2730
2731 *) Исправление: в модуле ngx_http_mp4_module.
2732
2733 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
2734
2735
2736 Изменения в nginx 1.1.11 12.12.2011
2737
2738 *) Добавление: параметр so_keepalive в директиве listen.
2739 Спасибо Всеволоду Стахову.
2740
2741 *) Добавление: параметр if_not_empty в директивах
2742 fastcgi/scgi/uwsgi_param.
2743
2744 *) Добавление: переменная $https.
2745
2746 *) Добавление: директива proxy_redirect поддерживает переменные в первом
2747 параметре.
2748
2749 *) Добавление: директива proxy_redirect поддерживает регулярные
2750 выражения.
2751
2752 *) Исправление: переменная $sent_http_cache_control могла содержать
2753 неверное значение при использовании директивы expires.
2754 Спасибо Yichun Zhang.
2755
2756 *) Исправление: директива read_ahead могла не работать при использовании
2757 совместно с try_files и open_file_cache.
2758
2759 *) Исправление: если в параметре inactive директивы proxy_cache_path
2760 было указано малое время, в рабочем процессе мог произойти
2761 segmentation fault.
2762
2763 *) Исправление: ответы из кэша могли зависать.
2764
2765
2766 Изменения в nginx 1.1.10 30.11.2011
2767
2768 *) Исправление: при использовании AIO на Linux в рабочем процессе
2769 происходил segmentation fault; ошибка появилась в 1.1.9.
2770
2771
2772 Изменения в nginx 1.1.9 28.11.2011
2773
2774 *) Изменение: теперь двойные кавычки экранируется при выводе
2775 SSI-командой echo.
2776 Спасибо Зауру Абасмирзоеву.
2777
2778 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
2779 используется TTL, возвращённый DNS-сервером.
2780 Спасибо Кириллу Коринскому.
2781
2782 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
2783 завершался аварийно.
2784
2785 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2786 если использовалось SNI; ошибка появилась в 1.1.2.
2787
2788 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
2789 Спасибо Александру Усову.
2790
2791 *) Исправление: сигнал SIGWINCH переставал работать после первого
2792 обновления исполняемого файла; ошибка появилась в 1.1.1.
2793
2794 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
2795 заголовку Content-Length, не кэширутся.
2796
2797 *) Исправление: в директиве scgi_param при использовании составных
2798 параметров.
2799
2800 *) Исправление: в методе epoll.
2801 Спасибо Yichun Zhang.
2802
2803 *) Исправление: в модуле ngx_http_flv_module.
2804 Спасибо Piotr Sikora.
2805
2806 *) Исправление: в модуле ngx_http_mp4_module.
2807
2808 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
2809 заголовке Host.
2810
2811 *) Исправление: директивы add_header и expires не работали для ответов с
2812 кодом 206, если запрос проксировался.
2813
2814 *) Исправление: nginx не собирался на FreeBSD 10.
2815
2816 *) Исправление: nginx не собирался на AIX.
2817
2818
2819 Изменения в nginx 1.1.8 14.11.2011
2820
2821 *) Изменение: модуль ngx_http_limit_zone_module переименован в
2822 ngx_http_limit_conn_module.
2823
2824 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
2825 новым синтаксисом.
2826
2827 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
2828 уровне.
2829
2830 *) Добавление: директива image_filter_sharpen.
2831
2832 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2833 если resolver получил большой DNS-ответ.
2834 Спасибо Ben Hawkes.
2835
2836 *) Исправление: в вычислении ключа для кэширования, если использовалась
2837 внутренняя реализация MD5; ошибка появилась в 1.0.4.
2838
2839 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
2840 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
2841 или не передаваться при выключенном кэшировании, если кэширование
2842 было включено в другой части конфигурации.
2843
2844 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
2845 "Content-Length" в заголовке ответа, использовался аргумент start.
2846 Спасибо Piotr Sikora.
2847
2848
2849 Изменения в nginx 1.1.7 31.10.2011
2850
2851 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
2852 Спасибо Кириллу Коринскому.
2853
2854 *) Исправление: на старте или во время переконфигурации происходил
2855 segmentation fault, если директива ssl использовалась на уровне http
2856 и не был указан ssl_certificate.
2857
2858 *) Исправление: уменьшено потребление памяти при проксировании больших
2859 файлов, если они буферизировались на диск.
2860
2861 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2862 если использовалась директива "proxy_http_version 1.1".
2863
2864 *) Исправление: в директиве "expires @time".
2865
2866
2867 Изменения в nginx 1.1.6 17.10.2011
2868
2869 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
2870 именованный location контексты модулей очищаются.
2871 По запросу Yichun Zhang.
2872
2873 *) Изменение: теперь если сервер, описанный в блоке upstream, был
2874 признан неработающим, то после истечения fail_timeout на него будет
2875 отправлен только один запрос; сервер будет считаться работающим, если
2876 успешно ответит на этот запрос.
2877
2878 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
2879 \xXX.
2880
2881 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
2882 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
2883 X-Accel-Charset.
2884
2885 *) Добавление: уменьшение потребления памяти при использовании SSL.
2886
2887 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
2888 Спасибо Алексею Куцу.
2889
2890 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
2891 уровне server, применялись повторно, если для запроса не находилось
2892 ни одного location'а.
2893
2894 *) Исправление: при использовании "aio sendfile" могла происходить
2895 утечка сокетов.
2896
2897 *) Исправление: при использовании файлового AIO соединения с быстрыми
2898 клиентами могли быть закрыты по истечению send_timeout.
2899
2900 *) Исправление: в модуле ngx_http_autoindex_module.
2901
2902 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
2903 32-битных платформах.
2904
2905
2906 Изменения в nginx 1.1.5 05.10.2011
2907
2908 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
2909 Спасибо Peter Smit.
2910
2911 *) Исправление: при использовании proxy_cache_bypass могли быть
2912 закэшированы некэшируемые ответы.
2913 Спасибо John Ferlito.
2914
2915 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
2916 HTTP/1.1.
2917
2918 *) Исправление: закэшированные ответы с пустым телом возвращались
2919 некорректно; ошибка появилась в 0.8.31.
2920
2921 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
2922 некорректны; ошибка появилась в 0.8.32.
2923
2924 *) Исправление: в директиве return.
2925
2926 *) Исправление: при использовании директивы "ssl_session_cache builtin"
2927 происходил segmentation fault; ошибка появилась в 1.1.1.
2928
2929
2930 Изменения в nginx 1.1.4 20.09.2011
2931
2932 *) Добавление: модуль ngx_http_upstream_keepalive.
2933
2934 *) Добавление: директива proxy_http_version.
2935
2936 *) Добавление: директива fastcgi_keep_conn.
2937
2938 *) Добавление: директива worker_aio_requests.
2939
2940 *) Исправление: если nginx был собран с файловым AIO, он не мог
2941 запускаться на Linux без поддержки AIO.
2942
2943 *) Исправление: в обработке ошибок при работе с Linux AIO.
2944 Спасибо Hagai Avrahami.
2945
2946 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
2947
2948 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
2949 MP4-атом co64.
2950
2951
2952 Изменения в nginx 1.1.3 14.09.2011
2953
2954 *) Добавление: модуль ngx_http_mp4_module.
2955
2956 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
2957
2958 *) Исправление: open_file_cache не обновлял информацию о файле, если
2959 файл был изменён не атомарно.
2960
2961 *) Исправление: nginx не собирался на MacOSX 10.7.
2962
2963
2964 Изменения в nginx 1.1.2 05.09.2011
2965
2966 *) Изменение: теперь, если суммарный размер всех диапазонов больше
2967 размера исходного ответа, то nginx возвращает только исходный ответ,
2968 не обрабатывая диапазоны.
2969
2970 *) Добавление: директива max_ranges.
2971
2972 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
2973 ssl_prefer_server_cipher могли работать некорректно, если
2974 использовался SNI.
2975
2976 *) Исправление: в директивах proxy/fastcgi/scgi/
2977 uwsgi_ignore_client_abort.
2978
2979
2980 Изменения в nginx 1.1.1 22.08.2011
2981
2982 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
2983 число файлов, указанное в параметре load_files, либо работает не
2984 дольше времени, указанного в параметре loader_threshold.
2985
2986 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
2987
2988 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
2989 на Solaris.
2990 Спасибо Денису Иванову.
2991
2992 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
2993
2994 *) Исправление: nginx не собирался на Linux 3.0.
2995
2996 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
2997 появилась в 1.1.0.
2998
2999 *) Исправление: обработка тела запроса могла быть неверной, если клиент
3000 использовал pipelining.
3001
3002 *) Исправление: в директиве request_body_in_single_buf.
3003
3004 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
3005 при использовании SSL-соединения с бэкендом.
3006
3007 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3008 были помечены флагом down.
3009
3010 *) Исправление: при переконфигурации мог произойти segmentation fault,
3011 если в предыдущей конфигурации был определён, но не использовался
3012 ssl_session_cache.
3013
3014 *) Исправление: при использовании большого количества backup-серверов в
3015 рабочем процессе мог произойти segmentation fault.
3016
3017 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
3018 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
3019 произойти segmentation fault; ошибка появилась в 0.8.40.
3020
3021
3022 Изменения в nginx 1.1.0 01.08.2011
3023
3024 *) Добавление: уменьшение времени работы загрузчика кэша.
3025
3026 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
3027 директив proxy/fastcgi/scgi/uwsgi_cache_path.
3028
3029 *) Добавление: уменьшение времени загрузки конфигураций с большим
3030 количеством HTTPS серверов.
3031
3032 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
3033 Спасибо Adrian Kotelba.
3034
3035 *) Добавление: директива lingering_close.
3036 Спасибо Максиму Дунину.
3037
3038 *) Исправление: закрытия соединения для pipelined-запросов.
3039 Спасибо Максиму Дунину.
3040
3041 *) Исправление: nginx не запрещал сжатие при получении значения
3042 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
3043
3044 *) Исправление: таймаута при небуферизированном проксировании.
3045 Спасибо Максиму Дунину.
3046
3047 *) Исправление: утечки памяти при использовании переменных в директиве
3048 proxy_pass при работе с бэкендом по HTTPS.
3049 Спасибо Максиму Дунину.
3050
3051 *) Исправление: в проверке параметра директивы proxy_pass, заданного
3052 переменными.
3053 Спасибо Lanshun Zhou.
3054
3055 *) Исправление: SSL не работал на QNX.
3056 Спасибо Максиму Дунину.
3057
3058 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
3059 --with-debug.
3060
3061
3062 Изменения в nginx 1.0.5 19.07.2011
3063
3064 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3065 "HIGH:!aNULL:!MD5".
3066 Спасибо Rob Stradling.
3067
3068 *) Добавление: директивы referer_hash_max_size и
3069 referer_hash_bucket_size.
3070 Спасибо Witold Filipczyk.
3071
3072 *) Добавление: переменная $uid_reset.
3073
3074 *) Исправление: при использовании кэширования в рабочем процессе мог
3075 произойти segmentation fault.
3076 Спасибо Lanshun Zhou.
3077
3078 *) Исправление: при использовании кэширования рабочие процессы могли
3079 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3080 Спасибо Максиму Дунину.
3081
3082 *) Исправление: сообщения "stalled cache updating".
3083 Спасибо Максиму Дунину.
3084
3085
3086 Изменения в nginx 1.0.4 01.06.2011
3087
3088 *) Изменение: теперь в регулярных выражениях в директиве map можно
3089 задать чувствительность к регистру с помощью префиксов "~" и "~*".
3090
3091 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3092 на Linux.
3093 Спасибо Денису Латыпову.
3094
3095 *) Исправление: сообщения "stalled cache updating".
3096
3097 *) Исправление: nginx не собирался с параметром
3098 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
3099
3100
3101 Изменения в nginx 1.0.3 25.05.2011
3102
3103 *) Добавление: директива auth_basic_user_file поддерживает шифрование
3104 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
3105 Спасибо Максиму Дунину.
3106
3107 *) Добавление: директива geoip_org и переменная $geoip_org.
3108 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
3109
3110 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
3111 поддерживают адреса IPv4, отображённые на IPv6 адреса.
3112
3113 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
3114 рабочем процессе происходил segmentation fault, если директивы access
3115 или deny были определены только для адресов IPv6; ошибка появилась в
3116 0.8.22.
3117
3118 *) Исправление: закэшированный ответ мог быть испорчен, если значения
3119 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
3120 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
3121
3122
3123 Изменения в nginx 1.0.2 10.05.2011
3124
3125 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
3126
3127 *) Исправление: в работе параметра rotate директивы image_filter.
3128 Спасибо Adam Bocim.
3129
3130 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
3131
3132
3133 Изменения в nginx 1.0.1 03.05.2011
3134
3135 *) Изменение: теперь директива split_clients использует алгоритм
3136 MurmurHash2 из-за лучшего распределения.
3137 Спасибо Олегу Мамонтову.
3138
3139 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
3140 ложными значениями.
3141 Спасибо Максиму Дунину.
3142
3143 *) Изменение: теперь по умолчанию nginx использует значение 511 для
3144 listen backlog на Linux.
3145
3146 *) Добавление: переменные $upstream_... можно использовать в SSI и
3147 перловом модулях.
3148
3149 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
3150 Спасибо Олегу Мамонтову.
3151
3152 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
3153 segmentation fault; ошибка появилась в 0.8.22.
3154 Спасибо Максиму Дунину.
3155
3156 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
3157
3158 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
3159 появилась в 0.9.3.
3160 Спасибо Dagobert Michelsen.
3161
3162 *) Исправление: переменная $request_time имела неверные значения, если
3163 использовались подзапросы; ошибка появилась в 0.8.47.
3164 Спасибо Игорю А. Валькову.
3165
3166
3167 Изменения в nginx 1.0.0 12.04.2011
3168
3169 *) Исправление: cache manager мог нагружать процессор после
3170 переконфигурации.
3171 Спасибо Максиму Дунину.
3172
3173 *) Исправление: директива "image_filter crop" неправильно работала в
3174 сочетании с "image_filter rotate 180".
3175
3176 *) Исправление: директива "satisfy any" запрещала выдачу
3177 пользовательской страницы для 401 кода.
3178
3179
3180 Изменения в nginx 0.9.7 04.04.2011
3181
3182 *) Добавление: теперь соединения в состоянии keepalive могут быть
3183 закрыты преждевременно, если у воркера нет свободных соединений.
3184 Спасибо Максиму Дунину.
3185
3186 *) Добавление: параметр rotate директивы image_filter.
3187 Спасибо Adam Bocim.
3188
3189 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
3190 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
3191 upstream.
3192
3193
3194 Изменения в nginx 0.9.6 21.03.2011
3195
3196 *) Добавление: директива map поддерживает регулярные выражения в
3197 качестве значения первого параметра.
3198
3199 *) Добавление: переменная $time_iso8601 для access_log.
3200 Спасибо Michael Lustfield.
3201
3202
3203 Изменения в nginx 0.9.5 21.02.2011
3204
3205 *) Изменение: теперь по умолчанию nginx использует значение -1 для
3206 listen backlog на Linux.
3207 Спасибо Андрею Нигматулину.
3208
3209 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
3210 Спасибо Денису Латыпову.
3211
3212 *) Исправление: исправление в умолчательной директиве proxy_redirect,
3213 если в директиве proxy_pass не был описан URI.
3214 Спасибо Максиму Дунину.
3215
3216 *) Исправление: директива error_page не работала с нестандартными кодами
3217 ошибок; ошибка появилась в 0.8.53.
3218 Спасибо Максиму Дунину.
3219
3220
3221 Изменения в nginx 0.9.4 21.01.2011
3222
3223 *) Добавление: директива server_name поддерживает переменную $hostname.
3224
3225 *) Добавление: 494 код для ошибки "Request Header Too Large".
3226
3227
3228 Изменения в nginx 0.9.3 13.12.2010
3229
3230 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
3231 то выделения в регулярных выражениях в директиве server_name не
3232 работали.
3233
3234 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
3235 0.9.0.
3236
3237
3238 Изменения в nginx 0.9.2 06.12.2010
3239
3240 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
3241 запроса клиента.
3242
3243 *) Изменение: использование accept(), если accept4() не реализован;
3244 ошибка появилась в 0.9.0.
3245
3246 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
3247
3248 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
3249 Спасибо Максиму Дунину.
3250
3251
3252 Изменения в nginx 0.9.1 30.11.2010
3253
3254 *) Исправление: директивы вида "return CODE message" не работали; ошибка
3255 появилась в 0.9.0.
3256
3257
3258 Изменения в nginx 0.9.0 29.11.2010
3259
3260 *) Добавление: директива keepalive_disable.
3261
3262 *) Добавление: директива map поддерживает переменные в качестве значения
3263 определяемой переменной.
3264
3265 *) Добавление: директива map поддерживает пустые строки в качестве
3266 значения первого параметра.
3267
3268 *) Добавление: директива map поддерживает выражения в первом параметре.
3269
3270 *) Добавление: страница руководства nginx(8).
3271 Спасибо Сергею Осокину.
3272
3273 *) Добавление: поддержка accept4() в Linux.
3274 Спасибо Simon Liu.
3275
3276 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
3277 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
3278
3279 *) Исправление: при использовании директивы auth_basic в рабочем
3280 процессе мог произойти segmentation fault.
3281 Спасибо Михаилу Лалетину.
3282
3283 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
3284 появилась в 0.8.42.
3285
3286
3287 Изменения в nginx 0.8.53 18.10.2010
3288
3289 *) Добавление: теперь директива error_page позволяет менять код статуса
3290 у редиректа.
3291
3292 *) Добавление: директива gzip_disable поддерживает специальную маску
3293 degradation.
3294
3295 *) Исправление: при использовании файлового AIO могла происходить утечка
3296 сокетов.
3297 Спасибо Максиму Дунину.
3298
3299 *) Исправление: если в первом сервере не была описана директива listen и
3300 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
3301 становился следующий сервер с директивой listen; ошибка появилась в
3302 0.8.21.
3303
3304
3305 Изменения в nginx 0.8.52 28.09.2010
3306
3307 *) Исправление: nginx использовал режим SSL для listen сокета, если для
3308 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
3309
3310
3311 Изменения в nginx 0.8.51 27.09.2010
3312
3313 *) Изменение: директива secure_link_expires упразднена.
3314
3315 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
3316 alert на error.
3317
3318 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
3319 несколько раз.
3320
3321
3322 Изменения в nginx 0.8.50 02.09.2010
3323
3324 *) Добавление: директивы secure_link, secure_link_md5 и
3325 secure_link_expires модуля ngx_http_secure_link_module.
3326
3327 *) Добавление: ключ -q.
3328 Спасибо Геннадию Махомеду.
3329
3330 *) Исправление: при использовании кэширования рабочие процессы и могли
3331 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3332
3333 *) Исправление: в директиве gzip_disable.
3334 Спасибо Derrick Petzold.
3335
3336 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
3337 reopen, reload процессу, запущенному в другой сессии.
3338
3339
3340 Изменения в nginx 0.8.49 09.08.2010
3341
3342 *) Добавление: директива image_filter_jpeg_quality поддерживает
3343 переменные.
3344
3345 *) Исправление: при использовании переменной $geoip_region_name в
3346 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3347 0.8.48.
3348
3349 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
3350 следующего запроса; ошибка появилась в 0.8.48.
3351
3352
3353 Изменения в nginx 0.8.48 03.08.2010
3354
3355 *) Изменение: теперь по умолчанию директива server_name имеет значение
3356 пустое имя "".
3357 Спасибо Геннадию Махомеду.
3358
3359 *) Изменение: теперь по умолчанию директива server_name_in_redirect
3360 имеет значение off.
3361
3362 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
3363 $geoip_region_name.
3364 Спасибо Christine McGonagle.
3365
3366 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
3367 scgi_pass не наследовались в блоки limit_except.
3368
3369 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
3370 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
3371 появилась в 0.8.46.
3372
3373 *) Исправление: директива fastcgi_split_path_info неверно использовала
3374 выделения, если в выделения попадала только часть URI.
3375 Спасибо Юрию Тарадаю и Frank Enderle.
3376
3377 *) Исправление: директива rewrite не экранировала символ ";" при
3378 копировании из URI в аргументы.
3379 Спасибо Daisuke Murase.
3380
3381 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
3382 если изображение было больше размера image_filter_buffer.
3383
3384
3385 Изменения в nginx 0.8.47 28.07.2010
3386
3387 *) Исправление: переменная $request_time имела неверные значения для
3388 подзапросов.
3389
3390 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
3391
3392 *) Исправление: если использовался параметр max_size, то cache manager
3393 мог зациклиться; ошибка появилась в 0.8.46.
3394
3395
3396 Изменения в nginx 0.8.46 19.07.2010
3397
3398 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
3399 и scgi_no_cache теперь влияют только на сохранение закэшированного
3400 ответа.
3401
3402 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
3403 uwsgi_cache_bypass и scgi_cache_bypass.
3404
3405 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
3406 ошибки работы с бэкендом: память освобождалась только по истечении
3407 времени неактивности или при недостатке памяти.
3408
3409
3410 Изменения в nginx 0.8.45 13.07.2010
3411
3412 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
3413 Спасибо Laurence Rowe.
3414
3415 *) Исправление: ответ SSI модуля мог передаваться не полностью после
3416 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
3417 Спасибо Максиму Дунину.
3418
3419 *) Исправление: директива listen не поддерживала параметр setfib=0.
3420
3421
3422 Изменения в nginx 0.8.44 05.07.2010
3423
3424 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
3425 заголовке которых есть строка "Set-Cookie".
3426
3427 *) Добавление: директива listen поддерживает параметр setfib.
3428 Спасибо Андрею Филонову.
3429
3430 *) Исправление: директива sub_filter могла изменять регистр букв при
3431 частичном совпадении.
3432
3433 *) Исправление: совместимость с HP/UX.
3434
3435 *) Исправление: совместимость с компилятором AIX xlC_r.
3436
3437 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
3438 запросы.
3439 Спасибо Miroslaw Jaworski.
3440
3441
3442 Изменения в nginx 0.8.43 30.06.2010
3443
3444 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
3445
3446 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
3447 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
3448 0.8.42.
3449
3450 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
3451 переконфигурации.
3452 Спасибо Максиму Дунину.
3453
3454 *) Исправление: переменную $uid_set можно использовать на любой стадии
3455 обработки запроса.
3456
3457
3458 Изменения в nginx 0.8.42 21.06.2010
3459
3460 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
3461 выражениями, если запрос полностью совпал с location'ом, заданным
3462 строкой префикса. Предыдущее поведение появилось в 0.7.1.
3463
3464 *) Добавление: модуль ngx_http_scgi_module.
3465 Спасибо Manlio Perillo.
3466
3467 *) Добавление: в директиве return можно добавлять текст ответа.
3468
3469
3470 Изменения в nginx 0.8.41 15.06.2010
3471
3472 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
3473 при запросе файла с неверной кодировкой UTF-8.
3474
3475 *) Изменение: теперь nginx разрешает использовать пробелы в строке
3476 запроса.
3477
3478 *) Исправление: директива proxy_redirect неправильно изменяла строку
3479 "Refresh" в заголовке ответа бэкенда.
3480 Спасибо Андрею Андрееву и Максиму Согину.
3481
3482 *) Исправление: nginx не поддерживал путь без имени хоста в строке
3483 "Destination" в заголовке запроса.
3484
3485
3486 Изменения в nginx 0.8.40 07.06.2010
3487
3488 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
3489 умолчанию.
3490 Спасибо Jose Antonio Vazquez Gonzalez.
3491
3492 *) Добавление: модуль ngx_http_uwsgi_module.
3493 Спасибо Roberto De Ioris.
3494
3495 *) Добавление: директива fastcgi_param со значением, начинающимся со
3496 строки "HTTP_", изменяет строку заголовка в запросе клиента.
3497
3498 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3499 заголовке запроса клиента передавались FastCGI-серверу при
3500 кэшировании.
3501
3502 *) Исправление: listen unix domain сокет нельзя было изменить во время
3503 переконфигурации.
3504 Спасибо Максиму Дунину.
3505
3506
3507 Изменения в nginx 0.8.39 31.05.2010
3508
3509 *) Исправление: наследуемая директива alias неправильно работала во
3510 вложенном location'е.
3511
3512 *) Исправление: в комбинации директив alias с переменными и try_files;
3513
3514 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
3515 время обновления без перерыва.
3516 Спасибо Максиму Дунину.
3517
3518
3519 Изменения в nginx 0.8.38 24.05.2010
3520
3521 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
3522
3523 *) Добавление: теперь при использовании переменной $scheme в директиве
3524 rewrite автоматически делается редирект.
3525 Спасибо Piotr Sikora.
3526
3527 *) Исправление: теперь задержки в директиве limit_req соответствует
3528 описанному алгоритму.
3529 Спасибо Максиму Дунину.
3530
3531 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
3532 перловом модулях.
3533
3534
3535 Изменения в nginx 0.8.37 17.05.2010
3536
3537 *) Добавление: модуль ngx_http_split_clients_module.
3538
3539 *) Добавление: директива map поддерживает ключи больше 255 символов.
3540
3541 *) Исправление: nginx игнорировал значения "private" и "no-store" в
3542 строке "Cache-Control" в заголовке ответа бэкенда.
3543
3544 *) Исправление: параметр stub в SSI-директиве include не использовался,
3545 если пустой ответ имел код 200.
3546
3547 *) Исправление: если проксированный или FastCGI запрос внутренне
3548 перенаправлялся в другой проксированный или FastCGI location, то в
3549 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3550 0.8.33.
3551 Спасибо Yichun Zhang.
3552
3553 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
3554 таймаута.
3555 Спасибо Alan Batie.
3556
3557
3558 Изменения в nginx 0.8.36 22.04.2010
3559
3560 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
3561 методы DELETE, COPY и MOVE для симлинков.
3562
3563 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
3564 основном запросе значения переменных $query_string, $arg_... и им
3565 подобных.
3566
3567 *) Исправление: значение переменной повторно экранировалось после
3568 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
3569
3570 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
3571 Спасибо Vicente Aguilar и Максиму Дунину.
3572
3573 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
3574 Спасибо Максиму Дунину.
3575
3576 *) Исправление: nginx не собирался с параметром --without-http-cache;
3577 ошибка появилась в 0.8.35.
3578
3579
3580 Изменения в nginx 0.8.35 01.04.2010
3581
3582 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
3583
3584 *) Добавление: директива chunked_transfer_encoding.
3585
3586 *) Исправление: символ "&" при копировании в аргументы в правилах
3587 rewrite не экранировался.
3588
3589 *) Исправление: nginx мог завершаться аварийно во время обработки
3590 сигнала или при использовании директивы timer_resolution на
3591 платформах, не поддерживающих методы kqueue или eventport.
3592 Спасибо George Xie и Максиму Дунину.
3593
3594 *) Исправление: если временные файлы и постоянное место хранения
3595 располагались на разных файловых системах, то у постоянных файлов
3596 время изменения было неверным.
3597 Спасибо Максиму Дунину.
3598
3599 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
3600 "memcached sent invalid trailer".
3601 Спасибо Максиму Дунину.
3602
3603 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
3604 текстов.
3605 Спасибо Максиму Дунину.
3606
3607 *) Исправление: в рабочем процессе происходил segmentation fault, если
3608 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
3609 появилась в 0.8.34.
3610 Спасибо Максиму Дунину.
3611
3612
3613 Изменения в nginx 0.8.34 03.03.2010
3614
3615 *) Исправление: nginx не поддерживал все шифры, используемые в
3616 клиентских сертификатах.
3617 Спасибо Иннокентию Еникееву.
3618
3619 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
3620 ответом было много вывода в stderr.
3621
3622 *) Исправление: nginx не поддерживал HTTPS-рефереры.
3623
3624 *) Исправление: nginx/Windows мог не находить файлы, если путь в
3625 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
3626
3627 *) Исправление: переменная $date_local выдавала неверное время, если
3628 использовался формат "%s".
3629 Спасибо Максиму Дунину.
3630
3631 *) Исправление: если ssl_session_cache не был установлен или установлен
3632 в none, то при проверке клиентского сертификаты могла происходить
3633 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
3634
3635 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
3636 диапазон включал в себя одну и более сетей размером /16 и не
3637 начинался на границе сети размером /16.
3638
3639 *) Исправление: блок, используемый в параметре stub в SSI-директиве
3640 include, выводился с MIME-типом "text/plain".
3641
3642 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
3643
3644
3645 Изменения в nginx 0.8.33 01.02.2010
3646
3647 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
3648 Спасибо Dan Crowley, Core Security Technologies.
3649
3650 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
3651 Спасибо Dan Crowley, Core Security Technologies.
3652
3653 *) Изменение: теперь keepalive соединения после запросов POST не
3654 запрещаются для MSIE 7.0+.
3655 Спасибо Adam Lounds.
3656
3657 *) Изменение: теперь keepalive соединения запрещены для Safari.
3658 Спасибо Joshua Sierles.
3659
3660 *) Исправление: если проксированный или FastCGI запрос внутренне
3661 перенаправлялся в другой проксированный или FastCGI location, то
3662 переменная $upstream_response_time могла иметь ненормально большое
3663 значение; ошибка появилась в 0.8.7.
3664
3665 *) Исправление: в рабочем процессе мог произойти segmentation fault при
3666 отбрасывания тела запроса; ошибка появилась в 0.8.11.
3667
3668
3669 Изменения в nginx 0.8.32 11.01.2010
3670
3671 *) Исправление: ошибки при использовании кодировки UTF-8 в
3672 ngx_http_autoindex_module.
3673 Спасибо Максиму Дунину.
3674
3675 *) Исправление: именованные выделения в регулярных выражениях работали
3676 только для двух переменных.
3677 Спасибо Максиму Дунину.
3678
3679 *) Исправление: теперь в строке заголовка запроса "Host" используется
3680 имя "localhost", если в директиве auth_http указан unix domain сокет.
3681 Спасибо Максиму Дунину.
3682
3683 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
3684 ответов.
3685 Спасибо Julian Reich.
3686
3687 *) Исправление: если директива "expires modified" выставляла дату в
3688 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
3689 отрицательное число.
3690 Спасибо Алексею Капранову.
3691
3692
3693 Изменения в nginx 0.8.31 23.12.2009
3694
3695 *) Добавление: теперь директива error_page может перенаправлять ответы
3696 со статусом 301 и 302.
3697
3698 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
3699 $geoip_longitude.
3700 Спасибо Arvind Sundararajan.
3701
3702 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
3703 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
3704
3705 *) Исправление: nginx закрывал соединение при запросе закэшированного
3706 ответа с пустым телом.
3707 Спасибо Piotr Sikora.
3708
3709 *) Исправление: nginx мог не собираться gcc 4.x при использовании
3710 оптимизации -O2 и выше.
3711 Спасибо Максиму Дунину и Денису Латыпову.
3712
3713 *) Исправление: регулярные выражения в location всегда тестировались с
3714 учётом регистра; ошибка появилась в 0.8.25.
3715
3716 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
3717 проксируемого запроса была строка "If-None-Match".
3718 Спасибо Tim Dettrick и David Kostal.
3719
3720 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
3721 перезаписи уже существующего файла.
3722
3723
3724 Изменения в nginx 0.8.30 15.12.2009
3725
3726 *) Изменение: теперь по умолчанию размер буфера директивы
3727 large_client_header_buffers равен 8K.
3728 Спасибо Andrew Cholakian.
3729
3730 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
3731
3732 *) Исправление: nginx/Windows пытался дважды переименовать временный
3733 файл при перезаписи уже существующего файла.
3734
3735 *) Исправление: ошибки double free or corruption, возникающей, если имя
3736 хоста не было найдено; ошибка появилась в 0.8.22.
3737 Спасибо Константину Свисту.
3738
3739 *) Исправление: в использовании libatomic на некоторых платформах.
3740 Спасибо W-Mark Kubacki.
3741
3742
3743 Изменения в nginx 0.8.29 30.11.2009
3744
3745 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
3746 ответа "009".
3747
3748 *) Добавление: директивы addition_types, charset_types, gzip_types,
3749 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
3750
3751 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
3752 Спасибо W-Mark Kubacki.
3753
3754 *) Добавление: параметр --with-libatomic[=DIR] в configure.
3755 Спасибо W-Mark Kubacki.
3756
3757 *) Исправление: listen unix domain сокет имели ограниченные права
3758 доступа.
3759
3760 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
3761 обрабатывались.
3762
3763 *) Исправление: именованные выделения в регулярных выражениях, заданные
3764 как "?P<...>", не работали в директиве server_name.
3765 Спасибо Максиму Дунину.
3766
3767
3768 Изменения в nginx 0.8.28 23.11.2009
3769
3770 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
3771 появилась в 0.8.25.
3772
3773
3774 Изменения в nginx 0.8.27 17.11.2009
3775
3776 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
3777 появилась в 0.8.25.
3778
3779
3780 Изменения в nginx 0.8.26 16.11.2009
3781
3782 *) Исправление: ошибки при использовании выделений в директиве rewrite;
3783 ошибка появилась в 0.8.25.
3784
3785 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
3786 появилась в 0.8.25.
3787
3788
3789 Изменения в nginx 0.8.25 16.11.2009
3790
3791 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
3792 не найдена с помощью метода $r->variable().
3793
3794 *) Добавление: модуль ngx_http_degradation_module.
3795
3796 *) Добавление: именованные выделения в регулярных выражениях.
3797
3798 *) Добавление: теперь при использовании переменных в директиве
3799 proxy_pass не требуется задавать URI.
3800
3801 *) Добавление: теперь директива msie_padding работает и для Chrome.
3802
3803 *) Исправление: в рабочем процессе происходил segmentation fault при
3804 недостатке памяти; ошибка появилась в 0.8.18.
3805
3806 *) Исправление: nginx передавал сжатые ответы клиентам, не
3807 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
3808 ошибка появилась в 0.8.16.
3809
3810
3811 Изменения в nginx 0.8.24 11.11.2009
3812
3813 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
3814 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
3815
3816 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
3817 появилась в 0.8.23.
3818
3819 *) Исправление: параметр "unix:" в директиве set_real_ip_from
3820 неправильно наследовался с предыдущего уровня.
3821
3822 *) Исправление: в resolver'е при определении пустого имени.
3823
3824
3825 Изменения в nginx 0.8.23 11.11.2009
3826
3827 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
3828 Спасибо Максиму Дунину.
3829
3830 *) Исправление: listen unix domain сокет не наследовался во время
3831 обновления без перерыва.
3832
3833 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
3834 без ещё одной директивы с любым IP-адресом.
3835
3836 *) Исправление: segmentation fault и зацикливания в resolver'е.
3837
3838 *) Исправление: в resolver'е.
3839 Спасибо Артёму Бохану.
3840
3841
3842 Изменения в nginx 0.8.22 03.11.2009
3843
3844 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
3845
3846 *) Добавление: директивы access и deny поддерживают IPv6.
3847
3848 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
3849 заголовках запроса.
3850
3851 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
3852
3853 *) Исправление: nginx не удалял unix domain сокет после тестирования
3854 конфигурации.
3855
3856 *) Исправление: nginx удалял unix domain сокет во время обновления без
3857 перерыва.
3858
3859 *) Исправление: оператор "!-x" не работал.
3860 Спасибо Максиму Дунину.
3861
3862 *) Исправление: в рабочем процессе мог произойти segmentation fault при
3863 использовании limit_rate в HTTPS сервере.
3864 Спасибо Максиму Дунину.
3865
3866 *) Исправление: при записи в лог переменной $limit_rate в рабочем
3867 процессе происходил segmentation fault.
3868 Спасибо Максиму Дунину.
3869
3870 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3871 если внутри блока server не было директивы listen; ошибка появилась в
3872 0.8.21.
3873
3874
3875 Изменения в nginx 0.8.21 26.10.2009
3876
3877 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
3878
3879 *) Добавление: директива listen модуля HTTP поддерживает unix domain
3880 сокеты.
3881 Спасибо Hongli Lai.
3882
3883 *) Добавление: параметр "default_server" в директиве listen.
3884
3885 *) Добавление: теперь параметр "default" не обязателен для установки
3886 параметров listen-сокета.
3887
3888 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
3889 платформах;
3890
3891 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
3892
3893
3894 Изменения в nginx 0.8.20 14.10.2009
3895
3896 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3897 "HIGH:!ADH:!MD5".
3898
3899 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
3900 слэш для линков на каталоги; ошибка появилась в 0.7.15.
3901
3902 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
3903 --error-log-path; ошибка появилась в 0.7.53.
3904
3905 *) Исправление: nginx не считал запятую разделителем в строке
3906 "Cache-Control" в заголовке ответа бэкенда.
3907
3908 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
3909 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
3910 не имел достаточно прав для работы с каталогами верхнего уровня.
3911
3912 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
3913 FastCGI-сервера не скрывались при кэшировании, если не использовались
3914 директивы fastcgi_hide_header с любыми параметрами.
3915
3916 *) Исправление: nginx неверно считал размер кэша на диске.
3917
3918
3919 Изменения в nginx 0.8.19 06.10.2009
3920
3921 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
3922
3923 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3924 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
3925
3926 *) Исправление: директива limit_req не работала; ошибка появилась в
3927 0.8.18.
3928
3929
3930 Изменения в nginx 0.8.18 06.10.2009
3931
3932 *) Добавление: директива read_ahead.
3933
3934 *) Добавление: теперь можно использовать несколько директив
3935 perl_modules.
3936
3937 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
3938
3939 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
3940 bucket.
3941 Спасибо Максиму Дунину.
3942
3943 *) Исправление: nginx не работал на Linux/sparc.
3944 Спасибо Marcus Ramberg.
3945
3946 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
3947 ответе на запрос MKCOL.
3948 Спасибо Xie Zhenye.
3949
3950 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
3951 появилась в 0.8.11.
3952
3953 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
3954
3955
3956 Изменения в nginx 0.8.17 28.09.2009
3957
3958 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
3959 в заголовке запроса.
3960
3961 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
3962
3963 *) Добавление: переменная $ssl_session_id.
3964
3965 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
3966
3967
3968 Изменения в nginx 0.8.16 22.09.2009
3969
3970 *) Добавление: директива image_filter_transparency.
3971
3972 *) Исправление: директива "addition_types" была неверно названа
3973 "addtion_types".
3974
3975 *) Исправление: порчи кэша resolver'а.
3976 Спасибо Matthew Dempsky.
3977
3978 *) Исправление: утечки памяти в resolver'е.
3979 Спасибо Matthew Dempsky.
3980
3981 *) Исправление: неверная строка запроса в переменной $request
3982 записывалась в access_log только при использовании error_log на
3983 уровне info или debug.
3984
3985 *) Исправление: в поддержке альфа-канала PNG в модуле
3986 ngx_http_image_filter_module.
3987
3988 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
3989 заголовок ответа, если обе директивы gzip_static и gzip_vary были
3990 включены.
3991
3992 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
3993 nginx/Windows.
3994
3995 *) Исправление: ошибки при использовании post_action; ошибка появилась в
3996 0.8.11.
3997 Спасибо Игорю Артемьеву.
3998
3999
4000 Изменения в nginx 0.8.15 14.09.2009
4001
4002 *) Безопасность: при обработке специально созданного запроса в рабочем
4003 процессе мог произойти segmentation fault.
4004 Спасибо Chris Ries.
4005
4006 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
4007 .domain-some.tld, то имя .sub.domain.tld попадало под маску
4008 .domain.tld.
4009
4010 *) Исправление: в поддержке прозрачности в модуле
4011 ngx_http_image_filter_module.
4012
4013 *) Исправление: в файловом AIO.
4014
4015 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
4016 появилась в 0.8.11.
4017
4018 *) Исправление: ошибки при использовании встроенного перла; ошибка
4019 появилась в 0.8.11.
4020
4021
4022 Изменения в nginx 0.8.14 07.09.2009
4023
4024 *) Исправление: устаревший закэшированный запрос мог залипнуть в
4025 состоянии "UPDATING".
4026
4027 *) Исправление: при использовании error_log на уровне info или debug в
4028 рабочем процессе мог произойти segmentation fault.
4029 Спасибо Сергею Боченкову.
4030
4031 *) Исправление: ошибки при использовании встроенного перла; ошибка
4032 появилась в 0.8.11.
4033
4034 *) Исправление: директива error_page не перенаправляла ошибку 413;
4035 ошибка появилась в 0.6.10.
4036
4037
4038 Изменения в nginx 0.8.13 31.08.2009
4039
4040 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
4041
4042 *) Исправление: nginx не собирался без параметра --with-file-aio на
4043 FreeBSD; ошибка появилась в 0.8.12.
4044
4045
4046 Изменения в nginx 0.8.12 31.08.2009
4047
4048 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
4049
4050 *) Исправление: ошибки при использовании try_files; ошибка появилась в
4051 0.8.11.
4052
4053 *) Исправление: ошибки при использовании memcached; ошибка появилась в
4054 0.8.11.
4055
4056
4057 Изменения в nginx 0.8.11 28.08.2009
4058
4059 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
4060 для MSIE 6.0 SV1.
4061
4062 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
4063
4064 *) Добавление: директива directio_alignment.
4065
4066
4067 Изменения в nginx 0.8.10 24.08.2009
4068
4069 *) Исправление: утечек памяти при использовании базы GeoIP City.
4070
4071 *) Исправление: ошибки при копировании временных файлов в постоянное
4072 место хранения; ошибка появилась в 0.8.9.
4073
4074
4075 Изменения в nginx 0.8.9 17.08.2009
4076
4077 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
4078 процесс; это должно улучшить обработку больших кэшей.
4079
4080 *) Добавление: теперь временные файлы и постоянное место хранения могут
4081 располагаться на разных файловых системах.
4082
4083
4084 Изменения в nginx 0.8.8 10.08.2009
4085
4086 *) Исправление: в обработке заголовков ответа, разделённых в
4087 FastCGI-записях.
4088
4089 *) Исправление: если запрос обрабатывался в двух проксированных или
4090 FastCGI location'ах и в первом из них использовалось кэширование, то
4091 в рабочем процессе происходил segmentation fault; ошибка появилась в
4092 0.8.7.
4093
4094
4095 Изменения в nginx 0.8.7 27.07.2009
4096
4097 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
4098
4099 *) Изменение: параметр ask директивы ssl_verify_client изменён на
4100 параметр optional и теперь он проверяет клиентский сертификат, если
4101 он был предложен.
4102 Спасибо Brice Figureau.
4103
4104 *) Добавление: переменная $ssl_client_verify.
4105 Спасибо Brice Figureau.
4106
4107 *) Добавление: директива ssl_crl.
4108 Спасибо Brice Figureau.
4109
4110 *) Добавление: параметр proxy директивы geo.
4111
4112 *) Добавление: директива image_filter поддерживает переменные для
4113 задания размеров.
4114
4115 *) Исправление: использование переменной $ssl_client_cert портило
4116 память; ошибка появилась в 0.7.7.
4117 Спасибо Сергею Журавлёву.
4118
4119 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
4120 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
4121 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
4122 Спасибо Максиму Дунину.
4123
4124 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
4125 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
4126 Спасибо Максиму Дунину.
4127
4128 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
4129 ответы в подзапросах; ошибка появилась в 0.8.5.
4130
4131
4132 Изменения в nginx 0.8.6 20.07.2009
4133
4134 *) Добавление: модуль ngx_http_geoip_module.
4135
4136 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
4137 document" для правильного документа.
4138 Спасибо Kuramoto Eiji.
4139
4140 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
4141 location'ов, заданных регулярным выражением, теперь всегда делается
4142 сравнение без учёта регистра символов.
4143
4144 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
4145 Спасибо Hugo Leisink.
4146
4147 *) Исправление: имя файла указанного в --conf-path игнорировалось при
4148 установке; ошибка появилась в 0.6.6.
4149 Спасибо Максиму Дунину.
4150
4151
4152 Изменения в nginx 0.8.5 13.07.2009
4153
4154 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
4155
4156 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
4157 для неверных имени/пароля возвращалась 500-ая ошибка.
4158
4159 *) Исправление: ответы модуля ngx_http_perl_module не работали в
4160 подзапросах.
4161
4162 *) Исправление: в модуле ngx_http_limit_req_module.
4163 Спасибо Максиму Дунину.
4164
4165
4166 Изменения в nginx 0.8.4 22.06.2009
4167
4168 *) Исправление: nginx не собирался с параметром --without-http-cache;
4169 ошибка появилась в 0.8.3.
4170
4171
4172 Изменения в nginx 0.8.3 19.06.2009
4173
4174 *) Добавление: переменная $upstream_cache_status.
4175
4176 *) Исправление: nginx не собирался на MacOSX 10.6.
4177
4178 *) Исправление: nginx не собирался с параметром --without-http-cache;
4179 ошибка появилась в 0.8.2.
4180
4181 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
4182 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
4183 в рабочем процессе происходил segmentation fault.
4184 Спасибо Евгению Мычло.
4185
4186
4187 Изменения в nginx 0.8.2 15.06.2009
4188
4189 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
4190 на старте.
4191
4192 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
4193 долго; ошибка появилась в 0.7.4.
4194
4195
4196 Изменения в nginx 0.8.1 08.06.2009
4197
4198 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
4199 fastcgi_cache_use_stale.
4200
4201 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4202 заголовке запроса клиента передавались бэкенду при кэшировании, если
4203 не использовалась директива proxy_set_header с любыми параметрами.
4204
4205 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
4206 не скрывались при кэшировании, если не использовались директивы
4207 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
4208
4209 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
4210 GIF87a.
4211 Спасибо Денису Ильиных.
4212
4213 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
4214 появилась в 0.7.56.
4215
4216
4217 Изменения в nginx 0.8.0 02.06.2009
4218
4219 *) Добавление: директива keepalive_requests.
4220
4221 *) Добавление: директива limit_rate_after.
4222 Спасибо Ivan Debnar.
4223
4224 *) Исправление: XSLT-фильтр не работал в подзапросах.
4225
4226 *) Исправление: обработке относительных путей в nginx/Windows.
4227
4228 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
4229 fastcgi_cache в nginx/Windows.
4230
4231 *) Исправление: в обработке ошибок выделения памяти.
4232 Спасибо Максиму Дунину и Кириллу Коринскому.
4233
4234
4235 Изменения в nginx 0.7.59 25.05.2009
4236
4237 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
4238
4239 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
4240 Спасибо Максиму Дунину.
4241
4242 *) Исправление: при использовании переменной $request_body в рабочем
4243 процессе происходил segmentation fault, если в запросе не было тела;
4244 ошибка появилась в 0.7.58.
4245
4246 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
4247 ошибка появилась в 0.7.56.
4248
4249 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
4250 обрабатывались SSI-, charset- и gzip-фильтрами.
4251
4252 *) Исправление: директива charset не ставила кодировку для ответов
4253 модуля ngx_http_gzip_static_module.
4254
4255
4256 Изменения в nginx 0.7.58 18.05.2009
4257
4258 *) Добавление: директива listen почтового прокси-сервера поддерживает
4259 IPv6.
4260
4261 *) Добавление: директива image_filter_jpeg_quality.
4262
4263 *) Добавление: директива client_body_in_single_buffer.
4264
4265 *) Добавление: переменная $request_body.
4266
4267 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
4268 файлов, содержащих символ ":".
4269
4270 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
4271 0.7.53.
4272 Спасибо Денису Латыпову.
4273
4274
4275 Изменения в nginx 0.7.57 12.05.2009
4276
4277 *) Исправление: при перенаправлении ошибок модуля
4278 ngx_http_image_filter_module в именованный location в рабочем
4279 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
4280
4281
4282 Изменения в nginx 0.7.56 11.05.2009
4283
4284 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
4285 HTTP.
4286
4287 *) Исправление: в модуле ngx_http_image_filter_module.
4288
4289
4290 Изменения в nginx 0.7.55 06.05.2009
4291
4292 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
4293 fastcgi_cache_use_stale не работали.
4294
4295 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
4296 заголовка.
4297
4298 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
4299 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
4300
4301 *) Исправление: при использовании директивы debug_connection в рабочем
4302 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
4303
4304 *) Исправление: в сборке модуля ngx_http_image_filter_module.
4305
4306 *) Исправление: файлы больше 2G не передавались с использованием
4307 $r->sendfile.
4308 Спасибо Максиму Дунину.
4309
4310
4311 Изменения в nginx 0.7.54 01.05.2009
4312
4313 *) Добавление: модуль ngx_http_image_filter_module.
4314
4315 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
4316
4317 *) Исправление: при использовании переменных "open_file_cache_errors on"
4318 в рабочем процессе мог произойти segmentation fault; ошибка появилась
4319 в 0.7.53.
4320
4321 *) Исправление: директива "port_in_redirect off" не работала; ошибка
4322 появилась в 0.7.39.
4323
4324 *) Исправление: улучшение обработки ошибок метода select.
4325
4326 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
4327
4328 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
4329 ошибка появилась в 0.7.53.
4330
4331
4332 Изменения в nginx 0.7.53 27.04.2009
4333
4334 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
4335 самого начала работы.
4336
4337 *) Добавление: теперь ошибки и предупреждения при старте записываются в
4338 error_log и выводятся на stderr.
4339
4340 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
4341 как префикс каталог, в котором он был запущен.
4342
4343 *) Добавление: ключ -p.
4344
4345 *) Добавление: ключ -s на Unix-платформах.
4346
4347 *) Добавление: ключи -? и -h.
4348 Спасибо Jerome Loyet.
4349
4350 *) Добавление: теперь ключи можно задавать в сжатой форме.
4351
4352 *) Исправление: nginx/Windows не работал, если файл конфигурации был
4353 задан ключом -c.
4354
4355 *) Исправление: при использовании директив proxy_store, fastcgi_store,
4356 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
4357 Спасибо Максиму Дунину.
4358
4359 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
4360 почтового прокси-сервера передавалось неверное значение; ошибка
4361 появилась в 0.7.34.
4362 Спасибо Simon Lecaille.
4363
4364 *) Исправление: при логгировании на Linux не писались текстовые описания
4365 системных ошибок; ошибка появилась в 0.7.45.
4366
4367 *) Исправление: директива fastcgi_cache_min_uses не работала.
4368 Спасибо Андрею Воробьёву.
4369
4370
4371 Изменения в nginx 0.7.52 20.04.2009
4372
4373 *) Добавление: первая бинарная версия под Windows.
4374
4375 *) Исправление: корректная обработка метода HEAD при кэшировании.
4376
4377 *) Исправление: корректная обработка строк "If-Modified-Since",
4378 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
4379
4380 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
4381 заголовке ответа для закэшированных ответов.
4382
4383 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
4384 perl поддерживал потоки, то при выходе основного процесса могла
4385 выдаваться ошибка "panic: MUTEX_LOCK".
4386
4387 *) Исправление: nginx не собирался с параметром --without-http-cache;
4388 ошибка появилась в 0.7.48.
4389
4390 *) Исправление: nginx не собирался на платформах, отличных от i386,
4391 amd64, sparc и ppc; ошибка появилась в 0.7.42.
4392
4393
4394 Изменения в nginx 0.7.51 12.04.2009
4395
4396 *) Добавление: директива try_files поддерживает код ответа в последнем
4397 параметре.
4398
4399 *) Добавление: теперь в директиве return можно использовать любой код
4400 ответа.
4401
4402 *) Исправление: директива error_page делала внешний редирект без строки
4403 запроса; ошибка появилась в 0.7.44.
4404
4405 *) Исправление: если сервера слушали на нескольких явно описанных
4406 адресах, то виртуальные сервера могли не работать; ошибка появилась в
4407 0.7.39.
4408
4409
4410 Изменения в nginx 0.7.50 06.04.2009
4411
4412 *) Исправление: переменные $arg_... не работали; ошибка появилась в
4413 0.7.49.
4414
4415
4416 Изменения в nginx 0.7.49 06.04.2009
4417
4418 *) Исправление: при использовании переменных $arg_... в рабочем процессе
4419 мог произойти segmentation fault; ошибка появилась в 0.7.48.
4420
4421
4422 Изменения в nginx 0.7.48 06.04.2009
4423
4424 *) Добавление: директива proxy_cache_key.
4425
4426 *) Исправление: теперь nginx учитывает при кэшировании строки
4427 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
4428 бэкенда.
4429
4430 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
4431
4432 *) Исправление: директива fastcgi_cache_key не наследовалась.
4433
4434 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
4435 Спасибо Максиму Дунину.
4436
4437 *) Исправление: nginx не собирался с библиотекой uclibc.
4438 Спасибо Timothy Redaelli.
4439
4440 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
4441 в 0.7.46.
4442
4443
4444 Изменения в nginx 0.7.47 01.04.2009
4445
4446 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
4447 ошибка появилась в 0.7.46.
4448
4449 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
4450
4451 *) Исправление: если использовался параметр max_size, то cache manager
4452 мог удалить весь кэш; ошибка появилась в 0.7.46.
4453
4454 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
4455 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
4456 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
4457 в 0.7.46.
4458
4459 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4460 перенаправлении запроса проксированному или FastCGI-серверу с помощью
4461 error_page или try_files; ошибка появилась в 0.7.44.
4462
4463
4464 Изменения в nginx 0.7.46 30.03.2009
4465
4466 *) Исправление: архив предыдущего релиза был неверным.
4467
4468
4469 Изменения в nginx 0.7.45 30.03.2009
4470
4471 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
4472 задавать на разных уровнях.
4473
4474 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
4475
4476 *) Добавление: параметр max_size в директиве proxy_cache_path.
4477
4478 *) Добавление: предварительная поддержка кэширования в модуле
4479 ngx_http_fastcgi_module.
4480
4481 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
4482 указываются названия директивы и зоны.
4483
4484 *) Исправление: директива "add_header last-modified ''" не удаляла в
4485 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
4486
4487 *) Исправление: в директиве auth_basic_user_file не работал
4488 относительный путь, заданный строкой без переменных; ошибка появилась
4489 в 0.7.44.
4490 Спасибо Jerome Loyet.
4491
4492 *) Исправление: в директиве alias, заданной переменными без ссылок на
4493 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
4494
4495
4496 Изменения в nginx 0.7.44 23.03.2009
4497
4498 *) Добавление: предварительная поддержка кэширования в модуле
4499 ngx_http_proxy_module.
4500
4501 *) Добавление: параметр --with-pcre в configure.
4502
4503 *) Добавление: теперь директива try_files может быть использована на
4504 уровне server.
4505
4506 *) Исправление: директива try_files неправильно обрабатывала строку
4507 запроса в последнем параметре.
4508
4509 *) Исправление: директива try_files могла неверно тестировать каталоги.
4510
4511 *) Исправление: если для пары адрес:порт описан только один сервер, то
4512 выделения в регулярных выражениях в директиве server_name не
4513 работали.
4514
4515
4516 Изменения в nginx 0.7.43 18.03.2009
4517
4518 *) Исправление: запрос обрабатывался неверно, если директива root
4519 использовала переменные; ошибка появилась в 0.7.42.
4520
4521 *) Исправление: если сервер слушал на адресах типа "*", то значение
4522 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
4523
4524
4525 Изменения в nginx 0.7.42 16.03.2009
4526
4527 *) Изменение: ошибка "Invalid argument", возвращаемая
4528 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
4529
4530 *) Изменение: при отсутствии файла, указанного в директиве
4531 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
4532
4533 *) Добавление: директива auth_basic_user_file поддерживает переменные.
4534 Спасибо Кириллу Коринскому.
4535
4536 *) Добавление: директива listen поддерживает параметр ipv6only.
4537 Спасибо Zhang Hua.
4538
4539 *) Исправление: в директиве alias со ссылками на выделения в регулярных
4540 выражениях; ошибка появилась в 0.7.40.
4541
4542 *) Исправление: совместимость с Tru64 UNIX.
4543 Спасибо Dustin Marquess.
4544
4545 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
4546 в 0.7.41.
4547
4548
4549 Изменения в nginx 0.7.41 11.03.2009
4550
4551 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4552 если в server_name или location были выделения в регулярных
4553 выражениях; ошибка появилась в 0.7.40.
4554 Спасибо Владимиру Сопоту.
4555
4556
4557 Изменения в nginx 0.7.40 09.03.2009
4558
4559 *) Добавление: директива location поддерживает выделения в регулярных
4560 выражениях.
4561
4562 *) Добавление: директиву alias с ссылками на выделения в регулярных
4563 выражениях можно использовать внутри location'а, заданного регулярным
4564 выражением с выделениями.
4565
4566 *) Добавление: директива server_name поддерживает выделения в регулярных
4567 выражениях.
4568
4569 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
4570 слэш для каталогов на файловой системе XFS; ошибка появилась в
4571 0.7.15.
4572 Спасибо Дмитрию Кузьменко.
4573
4574
4575 Изменения в nginx 0.7.39 02.03.2009
4576
4577 *) Исправление: при включённом сжатии большие ответы с использованием
4578 SSI могли зависать; ошибка появилась в 0.7.28.
4579 Спасибо Артёму Бохану.
4580
4581 *) Исправление: при использовании коротких статических вариантов в
4582 директиве try_files в рабочем процессе мог произойти segmentation
4583 fault.
4584
4585
4586 Изменения в nginx 0.7.38 23.02.2009
4587
4588 *) Добавление: логгирование ошибок аутентификации.
4589
4590 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
4591 игнорировались после нечётного числа пустых строк.
4592 Спасибо Александру Загребину.
4593
4594 *) Исправление: при использовании длинного пути в unix domain сокете в
4595 главном процессе происходил segmentation fault; ошибка появилась в
4596 0.7.36.
4597
4598
4599 Изменения в nginx 0.7.37 21.02.2009
4600
4601 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
4602 появилась в 0.7.36.
4603
4604
4605 Изменения в nginx 0.7.36 21.02.2009
4606
4607 *) Добавление: предварительная поддержка IPv6; директива listen модуля
4608 HTTP поддерживает IPv6.
4609
4610 *) Исправление: переменная $ancient_browser не работала для браузеров,
4611 заданных директивами modern_browser.
4612
4613
4614 Изменения в nginx 0.7.35 16.02.2009
4615
4616 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
4617 асимметричных шифров.
4618 Спасибо Marcin Gozdalik.
4619
4620 *) Исправление: директива try_files выставляла MIME-type, исходя из
4621 расширения первоначального запроса.
4622
4623 *) Исправление: в директивах server_name, valid_referers и map
4624 неправильно обрабатывались имена вида "*domain.tld", если
4625 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
4626 ошибка появилась в 0.7.9.
4627
4628
4629 Изменения в nginx 0.7.34 10.02.2009
4630
4631 *) Добавление: параметр off в директиве if_modified_since.
4632
4633 *) Добавление: теперь после команды XCLIENT nginx посылает команду
4634 HELO/EHLO.
4635 Спасибо Максиму Дунину.
4636
4637 *) Добавление: поддержка Microsoft-специфичного режима
4638 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
4639 Спасибо Максиму Дунину.
4640
4641 *) Исправление: в директиве rewrite, возвращающей редирект, старые
4642 аргументы присоединялись к новым через символ "?" вместо "&";
4643 ошибка появилась в 0.1.18.
4644 Спасибо Максиму Дунину.
4645
4646 *) Исправление: nginx не собирался на AIX.
4647
4648
4649 Изменения в nginx 0.7.33 02.02.2009
4650
4651 *) Исправление: если на запрос с телом возвращался редирект, то ответ
4652 мог быть двойным при использовании методов epoll или rtsig.
4653 Спасибо Eden Li.
4654
4655 *) Исправление: для некоторых типов редиректов в переменной
4656 $sent_http_location было пустое значение.
4657
4658 *) Исправление: при использовании директивы resolver в SMTP
4659 прокси-сервере в рабочем процессе мог произойти segmentation fault.
4660
4661
4662 Изменения в nginx 0.7.32 26.01.2009
4663
4664 *) Добавление: теперь в директиве try_files можно явно указать проверку
4665 каталога.
4666
4667 *) Исправление: fastcgi_store не всегда сохранял файлы.
4668
4669 *) Исправление: в гео-диапазонах.
4670
4671 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
4672 если nginx был собран без отладки.
4673 Спасибо Андрею Квасову.
4674
4675
4676 Изменения в nginx 0.7.31 19.01.2009
4677
4678 *) Изменение: теперь директива try_files проверяет только файлы,
4679 игнорируя каталоги.
4680
4681 *) Добавление: директива fastcgi_split_path_info.
4682
4683 *) Исправления в поддержке строки "Expect" в заголовке запроса.
4684
4685 *) Исправления в гео-диапазонах.
4686
4687 *) Исправление: при отсутствии ответа ngx_http_memcached_module
4688 возвращал в теле ответа строку "END" вместо 404-ой страницы по
4689 умолчанию; ошибка появилась в 0.7.18.
4690 Спасибо Максиму Дунину.
4691
4692 *) Исправление: при проксировании SMTP nginx выдавал сообщение
4693 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
4694 Спасибо Максиму Дунину.
4695
4696
4697 Изменения в nginx 0.7.30 24.12.2008
4698
4699 *) Исправление: в рабочем процессе происходил segmentation fault, если в
4700 директивах fastcgi_pass или proxy_pass использовались переменные и
4701 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
4702
4703
4704 Изменения в nginx 0.7.29 24.12.2008
4705
4706 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
4707 переменные при использовании unix domain сокетов.
4708
4709 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
4710
4711 *) Исправление: ответ "100 Continue" выдавался для запросов версии
4712 HTTP/1.0;
4713 Спасибо Максиму Дунину.
4714
4715 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
4716 под Cygwin.
4717
4718
4719 Изменения в nginx 0.7.28 22.12.2008
4720
4721 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
4722
4723 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
4724 с 4 4k/8k на 32 4k или 16 8k.
4725
4726
4727 Изменения в nginx 0.7.27 15.12.2008
4728
4729 *) Добавление: директива try_files.
4730
4731 *) Добавление: директива fastcgi_pass поддерживает переменные.
4732
4733 *) Добавление: теперь директива geo может брать адрес из переменной.
4734 Спасибо Андрею Нигматулину.
4735
4736 *) Добавление: теперь модификатор location'а можно указывать без пробела
4737 перед названием.
4738
4739 *) Добавление: переменная $upstream_response_length.
4740
4741 *) Исправление: теперь директива add_header не добавляет пустое
4742 значение.
4743
4744 *) Исправление: при запросе файла нулевой длины nginx закрывал
4745 соединение, ничего не передав; ошибка появилась в 0.7.25.
4746
4747 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
4748 каталог.
4749
4750 *) Исправление: если в сервере не был описан ни один именованный
4751 location, но такой location использовался в директиве error_page, то
4752 в рабочем процессе происходил segmentation fault.
4753 Спасибо Сергею Боченкову.
4754
4755
4756 Изменения в nginx 0.7.26 08.12.2008
4757
4758 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
4759
4760
4761 Изменения в nginx 0.7.25 08.12.2008
4762
4763 *) Изменение: в обработке подзапросов.
4764
4765 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
4766 заголовке запроса.
4767
4768 *) Исправление: теперь директивы limit_req и limit_conn указывают
4769 причину запрета запроса.
4770
4771 *) Исправление: в параметре delete директивы geo.
4772
4773
4774 Изменения в nginx 0.7.24 01.12.2008
4775
4776 *) Добавление: директива if_modified_since.
4777
4778 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
4779 ответом сервер передавал много сообщений в stderr.
4780
4781 *) Исправление: переменные "$cookie_..." не работали в SSI and в
4782 перловом модуле.
4783
4784
4785 Изменения в nginx 0.7.23 27.11.2008
4786
4787 *) Добавление: параметры delete и ranges в директиве geo.
4788
4789 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
4790
4791 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
4792
4793
4794 Изменения в nginx 0.7.22 20.11.2008
4795
4796 *) Добавление: параметр none в директиве smtp_auth.
4797 Спасибо Максиму Дунину.
4798
4799 *) Добавление: переменные "$cookie_...".
4800
4801 *) Исправление: директива directio не работала с файловой системой XFS.
4802
4803 *) Исправление: resolver не понимал большие DNS-ответы.
4804 Спасибо Zyb.
4805
4806
4807 Изменения в nginx 0.7.21 11.11.2008
4808
4809 *) Изменения в модуле ngx_http_limit_req_module.
4810
4811 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
4812 Спасибо Денису Латыпову.
4813
4814 *) Изменение: совместимость с glibc 2.3.
4815 Спасибо Eric Benson и Максиму Дунину.
4816
4817 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
4818 ошибка появилась в 0.7.6.
4819
4820
4821 Изменения в nginx 0.7.20 10.11.2008
4822
4823 *) Изменения в модуле ngx_http_gzip_filter_module.
4824
4825 *) Добавление: модуль ngx_http_limit_req_module.
4826
4827 *) Исправление: на платформах sparc и ppc рабочие процессы могли
4828 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
4829 Спасибо Максиму Дунину.
4830
4831 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
4832 работали; ошибка появилась в 0.7.12.
4833
4834 *) Исправление: при использовании HTTPS запросы могли завершаться с
4835 ошибкой "bad write retry".
4836
4837 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
4838 location'ов с именами меньше 3 символов.
4839
4840 *) Исправление: переменная $server_addr могла не иметь значения.
4841
4842
4843 Изменения в nginx 0.7.19 13.10.2008
4844
4845 *) Исправление: обновление номера версии.
4846
4847
4848 Изменения в nginx 0.7.18 13.10.2008
4849
4850 *) Изменение: директива underscores_in_headers; теперь nginx по
4851 умолчанию не разрешает подчёркивания в именах строк в заголовке
4852 запроса клиента.
4853
4854 *) Добавление: модуль ngx_http_secure_link_module.
4855
4856 *) Добавление: директива real_ip_header поддерживает любой заголовок.
4857
4858 *) Добавление: директива log_subrequest.
4859
4860 *) Добавление: переменная $realpath_root.
4861
4862 *) Добавление: параметры http_502 и http_504 в директиве
4863 proxy_next_upstream.
4864
4865 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
4866 fastcgi_next_upstream не работал.
4867
4868 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
4869 для запросов HEAD.
4870
4871 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
4872
4873
4874 Изменения в nginx 0.7.17 15.09.2008
4875
4876 *) Добавление: директива directio теперь работает на Linux.
4877
4878 *) Добавление: переменная $pid.
4879
4880 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
4881 при использовании open_file_cache.
4882
4883 *) Исправление: access_log с переменными не работал на Linux; ошибка
4884 появилась в 0.7.7.
4885
4886 *) Исправление: модуль ngx_http_charset_module не понимал название
4887 кодировки в кавычках, полученное от бэкенда.
4888
4889
4890 Изменения в nginx 0.7.16 08.09.2008
4891
4892 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
4893 появилась в 0.7.15.
4894
4895
4896 Изменения в nginx 0.7.15 08.09.2008
4897
4898 *) Добавление: модуль ngx_http_random_index_module.
4899
4900 *) Добавление: директива directio оптимизирована для запросов файлов,
4901 начинающихся с произвольной позиции.
4902
4903 *) Добавление: директива directio при необходимости запрещает
4904 использование sendfile.
4905
4906 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
4907 заголовке запроса клиента.
4908
4909
4910 Изменения в nginx 0.7.14 01.09.2008
4911
4912 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
4913 имеют значений по умолчанию.
4914
4915 *) Добавление: директива listen поддерживает параметр ssl.
4916
4917 *) Добавление: теперь при переконфигурации nginx учитывает изменение
4918 временной зоны на FreeBSD и Linux.
4919
4920 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
4921 прочие, не устанавливались, если сервером по умолчанию был не первый
4922 сервер.
4923
4924 *) Исправление: при использовании в качестве аргументов части URI,
4925 выделенного с помощью директивы rewrite, эти аргументы не
4926 экранировались.
4927
4928 *) Исправление: улучшения тестирования правильности конфигурационного
4929 файла.
4930
4931
4932 Изменения в nginx 0.7.13 26.08.2008
4933
4934 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
4935 в 0.7.12.
4936
4937
4938 Изменения в nginx 0.7.12 26.08.2008
4939
4940 *) Добавление: директива server_name поддерживает пустое имя "".
4941
4942 *) Добавление: директива gzip_disable поддерживает специальную маску
4943 msie6.
4944
4945 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
4946 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
4947 Спасибо Максиму Дунину.
4948
4949 *) Исправление: при перенаправлении запроса с помощью директивы
4950 error_page терялось тело запроса.
4951
4952 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
4953 директивы error_page возвращался полный ответ.
4954
4955 *) Исправление: метод $r->header_in() не возвращал значения строк
4956 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
4957 появилась в 0.7.0.
4958
4959
4960 Изменения в nginx 0.7.11 18.08.2008
4961
4962 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
4963 MIME-типом text/css.
4964
4965 *) Добавление: теперь nginx возвращает код 405 для метода POST при
4966 запросе статического файла, только если файл существует.
4967
4968 *) Добавление: директива proxy_ssl_session_reuse.
4969
4970 *) Исправление: после перенаправления запроса с помощью
4971 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
4972 оригинальный запрос.
4973
4974 *) Исправление: если у каталога были права доступа только на поиск
4975 файлов и первый индексный файл отсутствовал, то nginx возвращал
4976 ошибку 500.
4977
4978 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
4979 0.7.1.
4980
4981
4982 Изменения в nginx 0.7.10 13.08.2008
4983
4984 *) Исправление: ошибок в директивах addition_types, charset_types,
4985 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
4986 появились в 0.7.9.
4987
4988 *) Исправление: рекурсивной error_page для 500 ошибки.
4989
4990 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
4991 не для всего keepalive соединения, а для каждого запроса по этому
4992 соединению.
4993
4994
4995 Изменения в nginx 0.7.9 12.08.2008
4996
4997 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
4998 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
4999 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
5000
5001 *) Добавление: директивы charset_types и addition_types.
5002
5003 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
5004 используют хэш.
5005
5006 *) Добавление: модуль ngx_cpp_test_module.
5007
5008 *) Добавление: директива expires поддерживает суточное время.
5009
5010 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
5011 Спасибо Денису Латыпову и Максиму Дунину.
5012
5013 *) Исправление: директива log_not_found не работала при поиске индексных
5014 файлов.
5015
5016 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
5017 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
5018
5019 *) Исправление: если в директивах server_name, valid_referers и map
5020 использовалась маска вида "*.domain.tld" и при этом полное имя вида
5021 "domain.tld" не было описано, то это имя попадало под маску; ошибка
5022 появилась в 0.3.18.
5023
5024
5025 Изменения в nginx 0.7.8 04.08.2008
5026
5027 *) Добавление: модуль ngx_http_xslt_module.
5028
5029 *) Добавление: переменные "$arg_...".
5030
5031 *) Добавление: поддержка directio в Solaris.
5032 Спасибо Ivan Debnar.
5033
5034 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
5035 в заголовке ответа без строки статуса, то nginx использует код
5036 статуса 302.
5037 Спасибо Максиму Дунину.
5038
5039
5040 Изменения в nginx 0.7.7 30.07.2008
5041
5042 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
5043 временной.
5044
5045 *) Изменение: значением переменной $ssl_client_cert теперь является
5046 сертификат, перед каждой строкой которого, кроме первой, вставляется
5047 символ табуляции; неизменённый сертификат доступен через переменную
5048 $ssl_client_raw_cert.
5049
5050 *) Добавление: параметр ask директивы ssl_verify_client.
5051
5052 *) Добавление: улучшения в обработке byte-range.
5053 Спасибо Максиму Дунину.
5054
5055 *) Добавление: директива directio.
5056 Спасибо Jiang Hong.
5057
5058 *) Добавление: поддержка sendfile() в MacOSX 10.5.
5059
5060 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
5061 делается сравнение без учёта регистра символов; однако, сравнение
5062 ограничено только однобайтными locale'ями.
5063
5064 *) Исправление: соединения почтового прокси-сервера зависали в режиме
5065 SSL, если использовались методы select, poll или /dev/poll.
5066
5067 *) Исправление: ошибки при использовании кодировки UTF-8 в
5068 ngx_http_autoindex_module.
5069
5070
5071 Изменения в nginx 0.7.6 07.07.2008
5072
5073 *) Исправление: теперь при использовании переменных в директиве
5074 access_log всегда проверяется существовании root'а для запроса.
5075
5076 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
5077 значений в аргументах запроса.
5078
5079
5080 Изменения в nginx 0.7.5 01.07.2008
5081
5082 *) Исправления в поддержке переменных в директиве access_log; ошибки
5083 появились в 0.7.4.
5084
5085 *) Исправление: nginx не собирался с параметром
5086 --without-http_gzip_module; ошибка появилась в 0.7.3.
5087 Спасибо Кириллу Коринскому.
5088
5089 *) Исправление: при совместном использовании sub_filter и SSI ответы
5090 могли передаваться неверно.
5091
5092
5093 Изменения в nginx 0.7.4 30.06.2008
5094
5095 *) Добавление: директива access_log поддерживает переменные.
5096
5097 *) Добавление: директива open_log_file_cache.
5098
5099 *) Добавление: ключ -g.
5100
5101 *) Добавление: поддержка строки "Expect" в заголовке запроса.
5102
5103 *) Исправление: большие включения в SSI могли передавались не полностью.
5104
5105
5106 Изменения в nginx 0.7.3 23.06.2008
5107
5108 *) Изменение: MIME-тип для расширения rss изменён на
5109 "application/rss+xml".
5110
5111 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
5112 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
5113
5114 *) Добавление: теперь при использовании протокола "https://" в директиве
5115 rewrite автоматически делается редирект.
5116
5117 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
5118 ошибка появилась в 0.6.9.
5119
5120
5121 Изменения в nginx 0.7.2 16.06.2008
5122
5123 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
5124
5125 *) Добавление: директива ssl_dhparam.
5126
5127 *) Добавление: переменная $ssl_client_cert.
5128 Спасибо Manlio Perillo.
5129
5130 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
5131 искал новый location; ошибка появилась в 0.7.1.
5132 Спасибо Максиму Дунину.
5133
5134 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5135 в 0.7.1.
5136
5137 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
5138 nginx не добавлял аргументы из оригинального запроса.
5139
5140
5141 Изменения в nginx 0.7.1 26.05.2008
5142
5143 *) Изменение: теперь поиск location'а делается с помощью дерева.
5144
5145 *) Изменение: директива optimize_server_names упразднена в связи с
5146 появлением директивы server_name_in_redirect.
5147
5148 *) Изменение: некоторые давно устаревшие директивы больше не
5149 поддерживаются.
5150
5151 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
5152 параметр используется по умолчанию.
5153 Спасибо Rob Mueller.
5154
5155 *) Исправление: рабочие процессы могли не реагировать на сигналы
5156 переконфигурации и ротации логов.
5157
5158 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
5159 Спасибо Roxis.
5160
5161
5162 Изменения в nginx 0.7.0 19.05.2008
5163
5164 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
5165 записываются в виде \xXX.
5166 Спасибо Максиму Дунину.
5167
5168 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
5169 запроса.
5170
5171 *) Добавление: директива expires поддерживает флаг modified.
5172
5173 *) Добавление: переменные $uid_got и $uid_set можно использовать на
5174 любой стадии обработки запроса.
5175
5176 *) Добавление: переменная $hostname.
5177 Спасибо Андрею Нигматулину.
5178
5179 *) Добавление: поддержка DESTDIR.
5180 Спасибо Todd A. Fisher и Andras Voroskoi.
5181
5182 *) Исправление: при использовании keepalive на Linux в рабочем процессе
5183 мог произойти segmentation fault.
5184
5185
5186 Изменения в nginx 0.6.31 12.05.2008
5187
5188 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
5189 заголовка ответа была в конце записи FastCGI; ошибка появилась в
5190 0.6.2.
5191 Спасибо Сергею Серову.
5192
5193 *) Исправление: при удалении файла и использовании директивы
5194 open_file_cache_errors off в рабочем процессе мог произойти
5195 segmentation fault.
5196
5197
5198 Изменения в nginx 0.6.30 29.04.2008
5199
5200 *) Изменение: теперь, если маске, заданной в директиве include, не
5201 соответствует ни один файл, то nginx не выдаёт ошибку.
5202
5203 *) Добавление: теперь время в директивах можно задавать без пробела,
5204 например, "1h50m".
5205
5206 *) Исправление: утечек памяти, если директива ssl_verify_client имела
5207 значение on.
5208 Спасибо Chavelle Vincent.
5209
5210 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
5211 вывод.
5212
5213 *) Исправление: директива error_page не воспринимала параметры в
5214 перенаправляемом URI.
5215
5216 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
5217 в бинарном режиме.
5218
5219 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
5220 0.6.15.
5221
5222
5223 Изменения в nginx 0.6.29 18.03.2008
5224
5225 *) Добавление: модуль ngx_google_perftools_module.
5226
5227 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
5228 платформах; ошибка появилась в 0.6.27.
5229
5230
5231 Изменения в nginx 0.6.28 13.03.2008
5232
5233 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
5234
5235
5236 Изменения в nginx 0.6.27 12.03.2008
5237
5238 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
5239 rtsig.
5240
5241 *) Изменение: теперь при перенаправлении запроса в именованный location
5242 с помощью директивы error_page метод запроса не изменяется.
5243
5244 *) Добавление: директивы resolver и resolver_timeout в SMTP
5245 прокси-сервере.
5246
5247 *) Добавление: директива post_action поддерживает именованные
5248 location'ы.
5249
5250 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5251 proxy, FastCGI или memcached в именованный location со статическим
5252 обработчиком в рабочем процессе происходил segmentation fault.
5253
5254 *) Исправление: браузеры не повторяли SSL handshake, если при первом
5255 handshake не оказалось правильного клиентского сертификата.
5256 Спасибо Александру Инюхину.
5257
5258 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
5259 error_page без изменения кода ошибки nginx пытался выделить очень
5260 много памяти.
5261
5262 *) Исправление: утечки памяти в долгоживущих небуфферизированных
5263 соединениях.
5264
5265 *) Исправление: утечки памяти в resolver'е.
5266
5267 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5268 proxy в другой location с обработчиком proxy в рабочем процессе
5269 происходил segmentation fault.
5270
5271 *) Исправление: ошибки в кэшировании переменных $proxy_host и
5272 $proxy_port.
5273 Спасибо Сергею Боченкову.
5274
5275 *) Исправление: директива proxy_pass с переменными использовала порт,
5276 описанной в другой директиве proxy_pass без переменных, но с таким же
5277 именем хоста.
5278 Спасибо Сергею Боченкову.
5279
5280 *) Исправление: во время переконфигурации на некоторых 64-битном
5281 платформах в лог записывался alert "sendmsg() failed (9: Bad file
5282 descriptor)".
5283
5284 *) Исправление: при повторном использовании в SSI пустого block'а в
5285 качестве заглушки в рабочем процессе происходил segmentation fault.
5286
5287 *) Исправление: ошибки при копировании части URI, содержащего
5288 экранированные символы, в аргументы.
5289
5290
5291 Изменения в nginx 0.6.26 11.02.2008
5292
5293 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
5294 ответа.
5295
5296 *) Исправление: при использовании большого значения в директиве expires
5297 в рабочем процессе происходил segmentation fault.
5298 Спасибо Joaquin Cuenca Abela.
5299
5300 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
5301 Спасибо Геннадию Махомеду.
5302
5303 *) Исправление: в проксированных подзапросах и подзапросах к
5304 FastCGI-серверу вместо метода GET использовался оригинальный метод
5305 клиента.
5306
5307 *) Исправление: утечки сокетов в режиме HTTPS при использовании
5308 отложенного accept'а.
5309 Спасибо Ben Maurer.
5310
5311 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
5312 (SSL: )"; ошибка появилась в 0.6.23.
5313
5314 *) Исправление: при использовании HTTPS запросы могли завершаться с
5315 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
5316
5317
5318 Изменения в nginx 0.6.25 08.01.2008
5319
5320 *) Изменение: вместо специального параметра "*" в директиве server_name
5321 теперь используется директива server_name_in_redirect.
5322
5323 *) Изменение: в качестве основного имени в директиве server_name теперь
5324 можно использовать имена с масками и регулярными выражениями.
5325
5326 *) Изменение: директива satisfy_any заменена директивой satisfy.
5327
5328 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
5329 нагружать процессор при запуске под Linux OpenVZ.
5330
5331 *) Добавление: директива min_delete_depth.
5332
5333 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
5334
5335 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
5336 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
5337
5338 *) Исправление: утечки сокетов в режиме HTTPS при использовании
5339 отложенного accept'а.
5340 Спасибо Ben Maurer.
5341
5342 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5343 в 0.6.23.
5344
5345
5346 Изменения в nginx 0.6.24 27.12.2007
5347
5348 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
5349 segmentation fault; ошибка появилась в 0.6.23.
5350
5351
5352 Изменения в nginx 0.6.23 27.12.2007
5353
5354 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
5355 параметр используется по умолчанию.
5356
5357 *) Изменение: директива open_file_cache_retest переименована в
5358 open_file_cache_valid.
5359
5360 *) Добавление: директива open_file_cache_min_uses.
5361
5362 *) Добавление: модуль ngx_http_gzip_static_module.
5363
5364 *) Добавление: директива gzip_disable.
5365
5366 *) Добавление: директиву memcached_pass можно использовать внутри блока
5367 if.
5368
5369 *) Исправление: если внутри одного location'а использовались директивы
5370 "memcached_pass" и "if", то в рабочем процессе происходил
5371 segmentation fault.
5372
5373 *) Исправление: если при использовании директивы satisfy_any on" были
5374 заданы директивы не всех модулей доступа, то заданные директивы не
5375 проверялись.
5376
5377 *) Исправление: параметры, заданные регулярным выражением в директиве
5378 valid_referers, не наследовалась с предыдущего уровня.
5379
5380 *) Исправление: директива post_action не работала, если запрос
5381 завершался с кодом 499.
5382
5383 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
5384 Спасибо Ben Maurer.
5385
5386 *) Исправление: STARTTLS в режиме SMTP не работал.
5387 Спасибо Олегу Мотиенко.
5388
5389 *) Исправление: при использовании HTTPS запросы могли завершаться с
5390 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
5391
5392
5393 Изменения в nginx 0.6.22 19.12.2007
5394
5395 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
5396 значения, скопированные в память, выделенную perl'ом.
5397
5398 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
5399 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
5400 время переконфигурации основной процесс аварийно выходил; ошибка
5401 появилась в 0.5.9.
5402 Спасибо Борису Жмурову.
5403
5404 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
5405 неверные результаты выделения в регулярных выражениях.
5406
5407 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
5408 у которого небольшое тело запроса было уже полностью получено, то в
5409 рабочем процессе происходил segmentation fault.
5410
5411 *) Исправление: large_client_header_buffers не освобождались перед
5412 переходом в состояние keep-alive.
5413 Спасибо Олександру Штепе.
5414
5415 *) Исправление: в переменной $upstream_addr не записывался последний
5416 адрес; ошибка появилась в 0.6.18.
5417
5418 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
5419 теперь она возвращает ошибку 502, которую можно направить на
5420 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
5421
5422 *) Исправление: при использовании директивы fastcgi_catch_stderr в
5423 основном процессе происходил segmentation fault; ошибка появилась в
5424 0.6.10.
5425 Спасибо Manlio Perillo.
5426
5427
5428 Изменения в nginx 0.6.21 03.12.2007
5429
5430 *) Изменение: если в значениях переменных директивы proxy_pass
5431 используются только IP-адреса, то указывать resolver не нужно.
5432
5433 *) Исправление: при использовании директивы proxy_pass c URI-частью в
5434 рабочем процессе мог произойти segmentation fault; ошибка появилась в
5435 0.6.19.
5436
5437 *) Исправление: если resolver использовался на платформах, не
5438 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
5439 response".
5440 Спасибо Андрею Нигматулину.
5441
5442 *) Исправление: При использовании переменной $server_protocol в
5443 FastCGI-параметрах и запросе, длина которого была близка к значению
5444 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
5445 the request record is too big".
5446
5447 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
5448 nginx возвращал обычный ответ.
5449
5450
5451 Изменения в nginx 0.6.20 28.11.2007
5452
5453 *) Исправление: при использовании директивы proxy_pass c URI-частью в
5454 рабочем процессе мог произойти segmentation fault; ошибка появилась в
5455 0.6.19.
5456
5457
5458 Изменения в nginx 0.6.19 27.11.2007
5459
5460 *) Исправление: версия 0.6.18 не собиралась.
5461
5462
5463 Изменения в nginx 0.6.18 27.11.2007
5464
5465 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
5466 процесса добавляет микросекунды на время старта.
5467
5468 *) Изменение: в error_log теперь записывается полная строка запроса
5469 вместо только URI.
5470
5471 *) Добавление: директива proxy_pass поддерживает переменные.
5472
5473 *) Добавление: директивы resolver и resolver_timeout.
5474
5475 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
5476 заголовке ответа строку "Last-Modified".
5477
5478 *) Исправление: директива limit_rate не позволяла передавать на полной
5479 скорости, даже если был указан очень большой лимит.
5480
5481
5482 Изменения в nginx 0.6.17 15.11.2007
5483
5484 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
5485 Спасибо Александру Инюхину.
5486
5487 *) Исправление: при использовании директивы msie_refresh повторно
5488 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
5489
5490 *) Исправление: директива autoindex не работала при использовании "alias
5491 /".
5492
5493 *) Исправление: при использовании подзапросов в рабочем процессе мог
5494 произойти segmentation fault.
5495
5496 *) Исправление: при использовании SSL и gzip большие ответы могли
5497 передаваться не полностью.
5498
5499 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
5500 то переменная $status была равна 0.
5501
5502
5503 Изменения в nginx 0.6.16 29.10.2007
5504
5505 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
5506 Спасибо Илье Новикову.
5507
5508 *) Исправление: если в директиве error_page использовался символ "?", то
5509 он экранировался при проксировании запроса; ошибка появилась в
5510 0.6.11.
5511
5512 *) Исправление: совместимость с mget.
5513
5514
5515 Изменения в nginx 0.6.15 22.10.2007
5516
5517 *) Добавление: совместимость с Cygwin.
5518 Спасибо Владимиру Кутакову.
5519
5520 *) Добавление: директива merge_slashes.
5521
5522 *) Добавление: директива gzip_vary.
5523
5524 *) Добавление: директива server_tokens.
5525
5526 *) Исправление: nginx не раскодировал URI в команде SSI include.
5527
5528 *) Исправление: при использовании переменной в директивах charset или
5529 source_charset на старте или во время переконфигурации происходил
5530 segmentation fault,
5531
5532 *) Исправление: nginx возвращал ошибку 400 на запросы вида
5533 "GET http://www.domain.com HTTP/1.0".
5534 Спасибо James Oakley.
5535
5536 *) Исправление: после перенаправления запроса с телом запроса с помощью
5537 директивы error_page nginx пытался снова прочитать тело запроса;
5538 ошибка появилась в 0.6.7.
5539
5540 *) Исправление: в рабочем процессе происходил segmentation fault, если у
5541 сервера, обрабатывающему запрос, не был явно определён server_name;
5542 ошибка появилась в 0.6.7.
5543
5544
5545 Изменения в nginx 0.6.14 15.10.2007
5546
5547 *) Изменение: теперь по умолчанию команда SSI echo использует
5548 кодирование entity.
5549
5550 *) Добавление: параметр encoding в команде SSI echo.
5551
5552 *) Добавление: директиву access_log можно использовать внутри блока
5553 limit_except.
5554
5555 *) Исправление: если все сервера апстрима оказывались недоступными, то
5556 до восстановления работоспособности у всех серверов вес становился
5557 равным одному; ошибка появилась в 0.6.6.
5558
5559 *) Исправление: при использовании переменных $date_local и $date_gmt вне
5560 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
5561 segmentation fault.
5562
5563 *) Исправление: при использовании включённом отладочном логе в рабочем
5564 процессе мог произойти segmentation fault.
5565 Спасибо Андрею Нигматулину.
5566
5567 *) Исправление: ngx_http_memcached_module не устанавливал
5568 $upstream_response_time.
5569 Спасибо Максиму Дунину.
5570
5571 *) Исправление: рабочий процесс мог зациклиться при использовании
5572 memcached.
5573
5574 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
5575 строке "Connection" в заголовке запроса только, если они были в
5576 нижнем регистре; ошибка появилась в 0.6.11.
5577
5578 *) Исправление: sub_filter не работал с пустой строкой замены.
5579
5580 *) Исправление: в парсинге sub_filter.
5581
5582
5583 Изменения в nginx 0.6.13 24.09.2007
5584
5585 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
5586 использовался autoindex
5587 Спасибо Arkadiusz Patyk.
5588
5589
5590 Изменения в nginx 0.6.12 21.09.2007
5591
5592 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
5593 и smtp.
5594
5595 *) Добавление: параметры конфигурации --without-mail_pop3_module,
5596 --without-mail_imap_module и --without-mail_smtp_module.
5597
5598 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
5599 ngx_mail_smtp_module.
5600
5601 *) Исправление: wildcard в конце имени сервера не работали; ошибка
5602 появилась в 0.6.9.
5603
5604 *) Исправление: при использовании разделяемой библиотеки PCRE,
5605 расположенной в нестандартном месте, nginx не запускался на Solaris.
5606
5607 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
5608 скрывали строки заголовка ответа с именем больше 32 символов.
5609 Спасибо Manlio Perillo.
5610
5611
5612 Изменения в nginx 0.6.11 11.09.2007
5613
5614 *) Исправление: счётчик активных соединений всегда рос при использовании
5615 почтового прокси-сервера.
5616
5617 *) Исправление: если бэкенд возвращал только заголовок ответа при
5618 небуферизированном проксировании, то nginx закрывал соединение с
5619 бэкендом по таймауту.
5620
5621 *) Исправление: nginx не поддерживал несколько строк "Connection" в
5622 заголовке запроса.
5623
5624 *) Исправление: если в сервере апстрима был задан max_fails, то после
5625 первой же неудачной попытки вес сервера навсегда становился равным
5626 одному; ошибка появилась в 0.6.6.
5627
5628
5629 Изменения в nginx 0.6.10 03.09.2007
5630
5631 *) Добавление: директивы open_file_cache, open_file_cache_retest и
5632 open_file_cache_errors.
5633
5634 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
5635
5636 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
5637 методе $r->send_http_header(), не добавлялась кодировка, указанная в
5638 директиве charset.
5639
5640 *) Исправление: при использовании метода /dev/poll в рабочем процессе
5641 мог произойти segmentation fault.
5642
5643
5644 Изменения в nginx 0.6.9 28.08.2007
5645
5646 *) Исправление: рабочий процесс мог зациклиться при использовании
5647 протокола HTTPS; ошибка появилась в 0.6.7.
5648
5649 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
5650 не запускался при использовании wildcard в конце имени сервера.
5651
5652 *) Исправление: директива ip_hash могла неверно помечать сервера как
5653 нерабочие.
5654
5655 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
5656
5657
5658 Изменения в nginx 0.6.8 20.08.2007
5659
5660 *) Изменение: теперь nginx пытается установить директивы
5661 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
5662 worker_rlimit_sigpending без привилегий root'а.
5663
5664 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
5665 запроса серверу аутентификации почтового прокси-сервера.
5666
5667 *) Изменение: теперь nginx экранирует символ "%" в переменной
5668 $memcached_key.
5669
5670 *) Исправление: при указании относительного пути к конфигурационному
5671 файлу в качестве параметра ключа -c nginx определял путь относительно
5672 конфигурационного префикса; ошибка появилась в 0.6.6.
5673
5674 *) Исправление: nginx не работал на FreeBSD/sparc64.
5675
5676
5677 Изменения в nginx 0.6.7 15.08.2007
5678
5679 *) Изменение: теперь пути, указанные в директивах include,
5680 auth_basic_user_file, perl_modules, ssl_certificate,
5681 ssl_certificate_key и ssl_client_certificate, определяются
5682 относительно каталога конфигурационного файла nginx.conf, а не
5683 относительно префикса.
5684
5685 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
5686
5687 *) Изменение: для обновления на лету версий 0.1.x создан специальный
5688 сценарий make upgrade1.
5689
5690 *) Добавление: директивы server_name и valid_referers поддерживают
5691 регулярные выражения.
5692
5693 *) Добавление: директива server в блоке upstream поддерживает параметр
5694 backup.
5695
5696 *) Добавление: модуль ngx_http_perl_module поддерживает метод
5697 $r->discard_request_body.
5698
5699 *) Добавление: директива "add_header Last-Modified ..." меняет строку
5700 "Last-Modified" в заголовке ответа.
5701
5702 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
5703 отличным от 200, и после этого запроса соединение переходило в
5704 состояние keep-alive, то на следующий запрос nginx возвращал 400.
5705
5706 *) Исправление: если в директиве auth_http был задан неправильный адрес,
5707 то в рабочем процессе происходил segmentation fault.
5708
5709 *) Исправление: теперь по умолчанию nginx использует значение 511 для
5710 listen backlog на всех платформах, кроме FreeBSD.
5711 Спасибо Jiang Hong.
5712
5713 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
5714 upstream был помечен как down; ошибка появилась в 0.6.6.
5715
5716 *) Исправление: sendfilev() в Solaris теперь не используется при
5717 передаче тела запроса FastCGI-серверу через unix domain сокет.
5718
5719
5720 Изменения в nginx 0.6.6 30.07.2007
5721
5722 *) Добавление: параметр --sysconfdir=PATH в configure.
5723
5724 *) Добавление: именованные location'ы.
5725
5726 *) Добавление: переменную $args можно устанавливать с помощью set.
5727
5728 *) Добавление: переменная $is_args.
5729
5730 *) Исправление: равномерное распределение запросов к апстримам с
5731 большими весами.
5732
5733 *) Исправление: если клиент в почтовом прокси-сервере закрывал
5734 соединение, то nginx мог не закрывать соединение с бэкендом.
5735
5736 *) Исправление: при использовании одного хоста в качестве бэкендов для
5737 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
5738 только один порт - 80 или 443.
5739
5740 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
5741 более ранними версиями; ошибка появилась в 0.6.4.
5742
5743
5744 Изменения в nginx 0.6.5 23.07.2007
5745
5746 *) Добавление: переменная $nginx_version.
5747 Спасибо Николаю Гречуху.
5748
5749 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
5750 IMAP.
5751 Спасибо Максиму Дунину.
5752
5753 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
5754 SMTP.
5755 Спасибо Максиму Дунину.
5756
5757 *) Исправление: теперь nginx экранирует пробел в переменной
5758 $memcached_key.
5759
5760 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
5761 Спасибо Jiang Hong.
5762
5763 *) Исправление: незначительных потенциальных ошибок.
5764 Спасибо Coverity's Scan.
5765
5766
5767 Изменения в nginx 0.6.4 17.07.2007
5768
5769 *) Безопасность: при использовании директивы msie_refresh был возможен
5770 XSS.
5771 Спасибо Максиму Богуку.
5772
5773 *) Изменение: директивы proxy_store и fastcgi_store изменены.
5774
5775 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
5776
5777 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
5778 Studio.
5779 Спасибо Андрею Нигматулину.
5780
5781 *) Изменение: обход ошибки в Sun Studio 12.
5782 Спасибо Jiang Hong.
5783
5784
5785 Изменения в nginx 0.6.3 12.07.2007
5786
5787 *) Добавление: директивы proxy_store и fastcgi_store.
5788
5789 *) Исправление: при использовании директивы auth_http_header в рабочем
5790 процессе мог произойти segmentation fault.
5791 Спасибо Максиму Дунину.
5792
5793 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
5794 не был разрешён, то в рабочем процессе происходил segmentation fault.
5795
5796 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
5797 в рабочем процессе мог произойти segmentation fault.
5798
5799 *) Исправление: в рабочем процессе мог произойти segmentation fault,
5800 если использовался метод eventport.
5801
5802 *) Исправление: директивы proxy_ignore_client_abort и
5803 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
5804
5805
5806 Изменения в nginx 0.6.2 09.07.2007
5807
5808 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
5809 nginx передавал клиенту мусор в таких заголовках.
5810
5811
5812 Изменения в nginx 0.6.1 17.06.2007
5813
5814 *) Исправление: в парсинге SSI.
5815
5816 *) Исправление: при использовании удалённого подзапроса в SSI
5817 последующий подзапрос локального файла мог отдаваться клиенту в
5818 неверном порядке.
5819
5820 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
5821 передавались не полностью.
5822
5823 *) Исправление: значение perl'овой переменной $$ модуля
5824 ngx_http_perl_module было равно номеру главного процесса.
5825
5826
5827 Изменения в nginx 0.6.0 14.06.2007
5828
5829 *) Добавление: директивы "server_name", "map", and "valid_referers"
5830 поддерживают маски вида "www.example.*".
5831
5832
5833 Изменения в nginx 0.5.25 11.06.2007
5834
5835 *) Исправление: nginx не собирался с параметром
5836 --without-http_rewrite_module; ошибка появилась в 0.5.24.
5837
5838
5839 Изменения в nginx 0.5.24 06.06.2007
5840
5841 *) Безопасность: директива ssl_verify_client не работала, если запрос
5842 выполнялся по протоколу HTTP/0.9.
5843
5844 *) Исправление: при использовании сжатия часть ответа могла передаваться
5845 несжатой; ошибка появилась в 0.5.23.
5846
5847
5848 Изменения в nginx 0.5.23 04.06.2007
5849
5850 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
5851 Server Name Indication.
5852
5853 *) Добавление: директива fastcgi_catch_stderr.
5854 Спасибо Николаю Гречуху, проект OWOX.
5855
5856 *) Исправление: на Линуксе в основном процессе происходил segmentation
5857 fault, если два виртуальных сервера должны bind()ится к
5858 пересекающимся портам.
5859
5860 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
5861 perl поддерживал потоки, то во время второй переконфигурации
5862 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
5863
5864 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5865
5866
5867 Изменения в nginx 0.5.22 29.05.2007
5868
5869 *) Исправление: большое тело запроса могло не передаваться бэкенду;
5870 ошибка появилась в 0.5.21.
5871
5872
5873 Изменения в nginx 0.5.21 28.05.2007
5874
5875 *) Исправление: если внутри сервера описано больше примерно десяти
5876 location'ов, то location'ы, заданные с помощью регулярного выражения,
5877 могли выполняться не в том, порядке, в каком они описаны.
5878
5879 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
5880 если 33-тий по счёту или последующий бэкенд упал.
5881 Спасибо Антону Поварову.
5882
5883 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
5884 произойти bus error.
5885 Спасибо Андрею Нигматулину.
5886
5887 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5888
5889
5890 Изменения в nginx 0.5.20 07.05.2007
5891
5892 *) Добавление: директива sendfile_max_chunk.
5893
5894 *) Добавление: переменные "$http_...", "$sent_http_..." и
5895 "$upstream_http_..." можно менять директивой set.
5896
5897 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
5898 рабочем процессе мог произойти segmentation fault.
5899
5900 *) Исправление: завершающая строка multipart range ответа передавалась
5901 неверно.
5902 Спасибо Evan Miller.
5903
5904 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
5905 Studio.
5906 Спасибо Андрею Нигматулину.
5907
5908 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
5909 Спасибо Андрею Нигматулину.
5910
5911
5912 Изменения в nginx 0.5.19 24.04.2007
5913
5914 *) Изменение: значение переменной $request_time теперь записывается с
5915 точностью до миллисекунд.
5916
5917 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
5918 переименован в $r->flush.
5919
5920 *) Добавление: переменная $upstream_addr.
5921
5922 *) Добавление: директивы proxy_headers_hash_max_size и
5923 proxy_headers_hash_bucket_size.
5924 Спасибо Володымыру Костырко.
5925
5926 *) Исправление: при использовании sendfile и limit_rate на 64-битных
5927 платформах нельзя было передавать файлы больше 2G.
5928
5929 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
5930 было передавать файлы больше 2G.
5931
5932
5933 Изменения в nginx 0.5.18 19.04.2007
5934
5935 *) Добавление: модуль ngx_http_sub_filter_module.
5936
5937 *) Добавление: переменные "$upstream_http_...".
5938
5939 *) Добавление: теперь переменные $upstream_status и
5940 $upstream_response_time содержат данные о всех обращениях к
5941 апстримам, сделанным до X-Accel-Redirect.
5942
5943 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
5944 perl не поддерживал multiplicity, то после первой переконфигурации и
5945 после получения любого сигнала в основном процессе происходил
5946 segmentation fault; ошибка появилась в 0.5.9.
5947
5948 *) Исправление: если perl не поддерживал multiplicity, то после
5949 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
5950
5951
5952 Изменения в nginx 0.5.17 02.04.2007
5953
5954 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
5955
5956 *) Добавление: теперь nginx поддерживает директиву include внутри блока
5957 types.
5958
5959 *) Исправление: использование переменной $document_root в директиве root
5960 и alias запрещено: оно вызывало рекурсивное переполнение стека.
5961
5962 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5963
5964 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
5965 $uri) возвращали старое закэшированное значение.
5966
5967
5968 Изменения в nginx 0.5.16 26.03.2007
5969
5970 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
5971 использовалась сеть класса С.
5972 Спасибо Павлу Ярковому.
5973
5974 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
5975 был указан charset и строка завершалась символом ";", то в рабочем
5976 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
5977
5978 *) Исправление: ошибки "[alert] zero size buf" при работе с
5979 FastCGI-сервером, если тело запроса, записанное во временный файл,
5980 было кратно 32K.
5981
5982 *) Исправление: nginx не собирался на Solaris без параметра
5983 --with-debug; ошибка появилась в 0.5.15.
5984
5985
5986 Изменения в nginx 0.5.15 19.03.2007
5987
5988 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
5989 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и
5990 xclient.
5991 Спасибо Антону Южанинову и Максиму Дунину.
5992
5993 *) Добавление: теперь keep-alive соединения закрываются сразу же по
5994 получении сигнала переконфигурации.
5995
5996 *) Изменение: директивы imap и auth переименованы соответственно в mail
5997 и pop3_auth.
5998
5999 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
6000 был разрешён метод APOP, то в рабочем процессе происходил
6001 segmentation fault.
6002
6003 *) Исправление: при использовании директивы starttls only в протоколе
6004 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
6005
6006 *) Исправление: рабочие процессы не выходили после переконфигурации и не
6007 переоткрывали логи, если использовался метод eventport.
6008
6009 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
6010 зациклиться.
6011
6012 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
6013 используются методы eventport или /dev/poll.
6014
6015
6016 Изменения в nginx 0.5.14 23.02.2007
6017
6018 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
6019 конфигурационного файла.
6020
6021
6022 Изменения в nginx 0.5.13 19.02.2007
6023
6024 *) Добавление: методы COPY и MOVE.
6025
6026 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
6027 запросов, переданных по keep-alive соединению.
6028
6029 *) Исправление: nginx не работал на 64-битном big-endian Linux.
6030 Спасибо Андрею Нигматулину.
6031
6032 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
6033 теперь сразу закрывает соединение, а не по таймауту.
6034
6035 *) Исправление: если при использовании метода epoll клиент закрывал
6036 преждевременно соединение со своей стороны, то nginx закрывал это
6037 соединение только по истечении таймаута на передачу.
6038
6039 *) Исправление: nginx не собирался на платформах, отличных от i386,
6040 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6041
6042
6043 Изменения в nginx 0.5.12 12.02.2007
6044
6045 *) Исправление: nginx не собирался на платформах, отличных от i386,
6046 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6047
6048 *) Исправление: при использовании временных файлов в время работы с
6049 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
6050 ошибка появилась в 0.5.8.
6051
6052 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
6053 то в рабочем процессе мог произойти segmentation fault.
6054
6055 *) Исправление: ngx_http_perl_module не собирался на Solaris.
6056
6057
6058 Изменения в nginx 0.5.11 05.02.2007
6059
6060 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
6061 Спасибо Chris McGrath.
6062
6063 *) Исправление: ответ был неверным, если запрашивалось несколько
6064 диапазонов; ошибка появилась в 0.5.6.
6065
6066 *) Исправление: директива create_full_put_path не могла создавать
6067 промежуточные каталоги, если не была установлена директива
6068 dav_access.
6069 Спасибо Evan Miller.
6070
6071 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
6072 записываться код "0".
6073
6074 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6075 произойти segmentation fault.
6076
6077
6078 Изменения в nginx 0.5.10 26.01.2007
6079
6080 *) Исправление: во время обновления исполняемого файла новый процесс не
6081 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
6082
6083 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6084 произойти segmentation fault; ошибка появилась в 0.5.1.
6085
6086
6087 Изменения в nginx 0.5.9 25.01.2007
6088
6089 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
6090 использует значение переменной $memcached_key.
6091
6092 *) Добавление: переменная $memcached_key.
6093
6094 *) Добавление: параметр clean в директиве client_body_in_file_only.
6095
6096 *) Добавление: директива env.
6097
6098 *) Добавление: директива sendfile работает внутри блока if.
6099
6100 *) Добавление: теперь при ошибке записи в access_log nginx записывает
6101 сообщение в error_log, но не чаще одного раза в минуту.
6102
6103 *) Исправление: директива "access_log off" не всегда запрещала запись в
6104 лог.
6105
6106
6107 Изменения в nginx 0.5.8 19.01.2007
6108
6109 *) Исправление: если использовалась директива
6110 "client_body_in_file_only on" и тело запроса было небольшое, то мог
6111 произойти segmentation fault.
6112
6113 *) Исправление: происходил segmentation fault, если использовались
6114 директивы "client_body_in_file_only on" и
6115 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
6116 делался переход к следующему бэкенду.
6117
6118 *) Исправление: если при использовании директивы "proxy_buffering off"
6119 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
6120 заданному директивой send_timeout; ошибка появилась в 0.4.7.
6121
6122 *) Исправление: если при использовании метода epoll клиент закрывал
6123 преждевременно соединение со своей стороны, то nginx закрывал это
6124 соединение только по истечении таймаута на передачу.
6125
6126 *) Исправление: ошибки "[alert] zero size buf" при работе с
6127 FastCGI-сервером.
6128
6129 *) Исправление ошибок в директиве limit_zone.
6130
6131
6132 Изменения в nginx 0.5.7 15.01.2007
6133
6134 *) Добавление: оптимизация использования памяти в ssl_session_cache.
6135
6136 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
6137
6138 *) Исправление: на старте или во время переконфигурации происходил
6139 segmentation fault, если директивы ssl_session_cache или limit_zone
6140 использовались на 64-битных платформах.
6141
6142 *) Исправление: при использовании директив add_before_body или
6143 add_after_body происходил segmentation fault, если в заголовке ответа
6144 нет строки "Content-Type".
6145
6146 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
6147 потоков.
6148 Спасибо Дену Иванову.
6149
6150 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
6151
6152
6153 Изменения в nginx 0.5.6 09.01.2007
6154
6155 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
6156 кроме GET, HEAD и POST.
6157
6158 *) Добавление: модуль ngx_http_limit_zone_module.
6159
6160 *) Добавление: переменная $binary_remote_addr.
6161
6162 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
6163 ngx_imap_ssl_module.
6164
6165 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
6166
6167 *) Исправление: при использовании $r->sendfile() byte-ranges
6168 передавались неверно.
6169
6170
6171 Изменения в nginx 0.5.5 24.12.2006
6172
6173 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
6174
6175 *) Добавление: ключ -V.
6176
6177 *) Добавление: директива worker_rlimit_core поддерживает указание
6178 размера в K, M и G.
6179
6180 *) Исправление: модуль nginx.pm теперь может устанавливаться
6181 непривилегированным пользователем.
6182
6183 *) Исправление: при использовании методов $r->request_body или
6184 $r->request_body_file мог произойти segmentation fault.
6185
6186 *) Исправление: ошибок, специфичных для платформы ppc.
6187
6188
6189 Изменения в nginx 0.5.4 15.12.2006
6190
6191 *) Добавление: директиву perl можно использовать внутри блока
6192 limit_except.
6193
6194 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
6195 заголовке запроса для метода DELETE.
6196
6197 *) Исправление: при использовании одного параметра в директиве
6198 dav_access nginx мог сообщить об ошибке в конфигурации.
6199
6200 *) Исправление: при использовании переменной $host мог произойти
6201 segmentation fault; ошибка появилась в 0.4.14.
6202
6203
6204 Изменения в nginx 0.5.3 13.12.2006
6205
6206 *) Добавление: модуль ngx_http_perl_module поддерживает методы
6207 $r->status, $r->log_error и $r->sleep.
6208
6209 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
6210 конфигурации nginx'а.
6211
6212 *) Исправление: метод $r->has_request_body не работал.
6213
6214
6215 Изменения в nginx 0.5.2 11.12.2006
6216
6217 *) Исправление: если в директивах proxy_pass использовалось имя,
6218 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
6219 ошибка появилась в 0.5.1.
6220
6221
6222 Изменения в nginx 0.5.1 11.12.2006
6223
6224 *) Исправление: директива post_action могла не работать после неудачного
6225 завершения запроса.
6226
6227 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
6228 Спасибо Bron Gondwana.
6229
6230 *) Исправление: при указании в директиве fastcgi_pass имени описанного
6231 upstream'а выдавалось сообщение "no port in upstream"; ошибка
6232 появилась в 0.5.0.
6233
6234 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6235 использовались одинаковых имена серверов, но с разными портами, то
6236 эти директивы использовали первый описанный порт; ошибка появилась в
6237 0.5.0.
6238
6239 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6240 использовались unix domain сокеты, то эти директивы использовали
6241 первый описанный сокет; ошибка появилась в 0.5.0.
6242
6243 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
6244 если он был указан в последней строке файла паролей и после пароля не
6245 было перевода строки, возврата каретки или символа ":".
6246
6247 *) Исправление: переменная $upstream_response_time могла быть равна
6248 "0.000", хотя время обработки было больше 1 миллисекунды.
6249
6250
6251 Изменения в nginx 0.5.0 04.12.2006
6252
6253 *) Изменение: параметры в виде "%name" в директиве log_format больше не
6254 поддерживаются.
6255
6256 *) Изменение: директивы proxy_upstream_max_fails,
6257 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
6258 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
6259 memcached_upstream_fail_timeout больше не поддерживаются.
6260
6261 *) Добавление: директива server в блоке upstream поддерживает параметры
6262 max_fails, fail_timeout и down.
6263
6264 *) Добавление: директива ip_hash в блоке upstream.
6265
6266 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа
6267 сервера аутентификации IMAP/POP3 прокси.
6268
6269 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
6270 появилась в 0.4.14.
6271
6272
6273 Изменения в nginx 0.4.14 27.11.2006
6274
6275 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
6276
6277 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
6278 Linux и NetBSD.
6279
6280 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
6281 поддержкой потоков; ошибка появилась в 0.3.38.
6282
6283 *) Исправление: ngx_http_perl_module не работал корректно, если перл
6284 вызывался рекурсивно.
6285
6286 *) Исправление: nginx игнорировал имя сервера в строке запроса.
6287
6288 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
6289 процесс мог зациклиться.
6290
6291 *) Исправление: при изменении системного времени переменная
6292 $upstream_response_time могла быть отрицательной.
6293
6294 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
6295 прокси не передавался параметр Auth-Login-Attempt.
6296
6297 *) Исправление: при ошибке соединения с сервером аутентификации
6298 IMAP/POP3 прокси мог произойти segmentation fault.
6299
6300
6301 Изменения в nginx 0.4.13 15.11.2006
6302
6303 *) Добавление: директиву proxy_pass можно использовать внутри блока
6304 limit_except.
6305
6306 *) Добавление: директива limit_except поддерживает все WebDAV методы.
6307
6308 *) Исправление: при использовании директивы add_before_body без
6309 директивы add_after_body ответ передавался не полностью.
6310
6311 *) Исправление: большое тело запроса не принималось, если использовались
6312 метод epoll и deferred accept().
6313
6314 *) Исправление: для ответов модуля ngx_http_autoindex_module не
6315 выставлялась кодировка; ошибка появилась в 0.3.50.
6316
6317 *) Исправление: ошибки "[alert] zero size buf" при работе с
6318 FastCGI-сервером;
6319
6320 *) Исправление: параметр конфигурации --group= игнорировался.
6321 Спасибо Thomas Moschny.
6322
6323 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
6324 в 0.3.50.
6325
6326
6327 Изменения в nginx 0.4.12 31.10.2006
6328
6329 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6330 $r->variable.
6331
6332 *) Исправление: при включении в ответ большого статического файла с
6333 помощью SSI ответ мог передаваться не полностью.
6334
6335 *) Исправление: nginx не убирал "#fragment" в URI.
6336
6337
6338 Изменения в nginx 0.4.11 25.10.2006
6339
6340 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
6341
6342 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6343 $r->allow_ranges.
6344
6345 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
6346 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
6347
6348
6349 Изменения в nginx 0.4.10 23.10.2006
6350
6351 *) Добавление: POP3 прокси поддерживает APOP.
6352
6353 *) Исправление: при использовании методов select, poll и /dev/poll во
6354 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
6355 нагружал процессор.
6356
6357 *) Исправление: при использовании переменной $server_addr в директиве
6358 map мог произойти segmentation fault.
6359
6360 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
6361 для полных ответов; ошибка появилась в 0.4.7.
6362
6363 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
6364 0.4.9.
6365
6366
6367 Изменения в nginx 0.4.9 13.10.2006
6368
6369 *) Добавление: параметр set в команде SSI include.
6370
6371 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
6372 модуля nginx.pm.
6373
6374
6375 Изменения в nginx 0.4.8 11.10.2006
6376
6377 *) Исправление: если до команды SSI include с параметром wait
6378 выполнялась ещё одна команда SSI include, то параметр wait мог не
6379 работать.
6380
6381 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
6382 полных ответов.
6383 Спасибо Алексею Ковырину.
6384
6385
6386 Изменения в nginx 0.4.7 10.10.2006
6387
6388 *) Добавление: модуль ngx_http_flv_module.
6389
6390 *) Добавление: переменная $request_body_file.
6391
6392 *) Добавление: директивы charset и source_charset поддерживают
6393 переменные.
6394
6395 *) Исправление: если до команды SSI include с параметром wait
6396 выполнялась ещё одна команда SSI include, то параметр wait мог не
6397 работать.
6398
6399 *) Исправление: при использовании директивы "proxy_buffering off" или
6400 при работе с memcached соединения могли не закрываться по таймауту.
6401
6402 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
6403 amd64, sparc64 и ppc64.
6404
6405
6406 Изменения в nginx 0.4.6 06.10.2006
6407
6408 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
6409 amd64, sparc64 и ppc64.
6410
6411 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
6412 chunk'ами, если длина ответа в методе
6413 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
6414
6415 *) Исправление: после перенаправления ошибки с помощью директивы
6416 error_page любая директива модуля ngx_http_rewrite_module возвращала
6417 эту ошибку; ошибка появилась в 0.4.4.
6418
6419
6420 Изменения в nginx 0.4.5 02.10.2006
6421
6422 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
6423 в 0.4.4.
6424
6425
6426 Изменения в nginx 0.4.4 02.10.2006
6427
6428 *) Добавление: переменная $scheme.
6429
6430 *) Добавление: директива expires поддерживает параметр max.
6431
6432 *) Добавление: директива include поддерживает маску "*".
6433 Спасибо Jonathan Dance.
6434
6435 *) Исправление: директива return всегда изменяла код ответа,
6436 перенаправленного директивой error_page.
6437
6438 *) Исправление: происходил segmentation fault, если в методе PUT
6439 передавалось тело нулевой длины.
6440
6441 *) Исправление: при использовании переменных в директиве proxy_redirect
6442 редирект изменялся неверно.
6443
6444
6445 Изменения в nginx 0.4.3 26.09.2006
6446
6447 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
6448 error_page.
6449
6450 *) Добавление: поддержка Solaris 10 event ports.
6451
6452 *) Добавление: модуль ngx_http_browser_module.
6453
6454 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
6455 помощью директивы error_page мог произойти segmentation fault.
6456
6457 *) Исправление: происходил segmentation fault, если в директиве
6458 proxy_pass использовался unix domain сокет; ошибка появилась в
6459 0.3.47.
6460
6461 *) Исправление: SSI не работал с ответами memcached и
6462 небуферизированными проксированными ответами.
6463
6464 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
6465
6466
6467 Изменения в nginx 0.4.2 14.09.2006
6468
6469 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
6470 появилась в 0.4.1.
6471
6472
6473 Изменения в nginx 0.4.1 14.09.2006
6474
6475 *) Исправление: совместимость с DragonFlyBSD.
6476 Спасибо Павлу Назарову.
6477
6478 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
6479 файлов больше 2G.
6480
6481 *) Добавление: теперь на Linux nginx для статических запросов использует
6482 флаг O_NOATIME.
6483 Спасибо Yusuf Goolamabbas.
6484
6485
6486 Изменения в nginx 0.4.0 30.08.2006
6487
6488 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
6489 фазы init module в фазу HTTP postconfiguration.
6490
6491 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
6492 считывается заранее: нужно явно инициировать чтение с помощью метода
6493 $r->has_request_body.
6494
6495 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
6496 DECLINED.
6497
6498 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
6499 заголовка "Date" для метода PUT.
6500
6501 *) Добавление: директива ssi работает внутри блока if.
6502
6503 *) Исправление: происходил segmentation fault, если в директиве index
6504 использовалась переменные и при этом первое имя индексного файла было
6505 без переменных; ошибка появилась в 0.1.29.
6506
6507
6508 Изменения в nginx 0.3.61 28.08.2006
6509
6510 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
6511
6512 *) Добавление: директива msie_refresh.
6513
6514 *) Добавление: директива recursive_error_pages.
6515
6516 *) Исправление: директива rewrite возвращала неправильный редирект, если
6517 редирект включал в себя выделенные закодированные символы из
6518 оригинального URI.
6519
6520
6521 Изменения в nginx 0.3.60 18.08.2006
6522
6523 *) Исправление: во время перенаправления ошибки рабочий процесс мог
6524 зациклиться; ошибка появилась в 0.3.59.
6525
6526
6527 Изменения в nginx 0.3.59 16.08.2006
6528
6529 *) Добавление: теперь можно делать несколько перенаправлений через
6530 директиву error_page.
6531
6532 *) Исправление: директива dav_access не поддерживала три параметра.
6533
6534 *) Исправление: директива error_page не изменяла строку "Content-Type"
6535 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
6536 в 0.3.58.
6537
6538
6539 Изменения в nginx 0.3.58 14.08.2006
6540
6541 *) Добавление: директива error_page поддерживает переменные.
6542
6543 *) Изменение: теперь на Linux используется интерфейс procfs вместо
6544 sysctl.
6545
6546 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
6547 "Content-Type" наследуется из первоначального ответа.
6548
6549 *) Исправление: директива error_page не перенаправляла ошибку 413.
6550
6551 *) Исправление: завершающий "?" не удалял старые аргументы, если в
6552 переписанном URI не было новых аргументов.
6553
6554 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
6555
6556
6557 Изменения в nginx 0.3.57 09.08.2006
6558
6559 *) Добавление: переменная $ssl_client_serial.
6560
6561 *) Исправление: в операторе "!-e" в директиве if.
6562 Спасибо Андриану Буданцову.
6563
6564 *) Исправление: при проверке клиентского сертификата nginx не передавал
6565 клиенту информацию о требуемых сертификатах.
6566
6567 *) Исправление: переменная $document_root не поддерживала переменные в
6568 директиве root.
6569
6570
6571 Изменения в nginx 0.3.56 04.08.2006
6572
6573 *) Добавление: директива dav_access.
6574
6575 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
6576 "!-e", "-x" и "!-x".
6577
6578 *) Исправление: при записи в access_log некоторых передаваемых клиенту
6579 строк заголовков происходил segmentation fault, если запрос возвращал
6580 редирект.
6581
6582
6583 Изменения в nginx 0.3.55 28.07.2006
6584
6585 *) Добавление: параметр stub в команде SSI include.
6586
6587 *) Добавление: команда SSI block.
6588
6589 *) Добавление: скрипт unicode2nginx добавлен в contrib.
6590
6591 *) Исправление: если root был задан только переменной, то корень
6592 задавался относительно префикса сервера.
6593
6594 *) Исправление: если в запросе был "//" или "/.", и после этого
6595 закодированные символы в виде "%XX", то проксируемый запрос
6596 передавался незакодированным.
6597
6598 *) Исправление: метод $r->header_in("Cookie") модуля
6599 ngx_http_perl_module теперь возвращает все строки "Cookie" в
6600 заголовке запроса.
6601
6602 *) Исправление: происходил segmentation fault, если использовался
6603 "client_body_in_file_only on" и делался переход к следующему бэкенду.
6604
6605 *) Исправление: при некоторых условиях во время переконфигурации коды
6606 символов внутри директивы charset_map могли считаться неверными;
6607 ошибка появилась в 0.3.50.
6608
6609
6610 Изменения в nginx 0.3.54 11.07.2006
6611
6612 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
6613
6614 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
6615 memcached_next_upstream поддерживают параметр off.
6616
6617 *) Добавление: директива debug_connection поддерживает запись адресов в
6618 формате CIDR.
6619
6620 *) Исправление: при перекодировании ответа проксированного сервера или
6621 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
6622 полностью.
6623
6624 *) Исправление: переменная $upstream_response_time содержала время
6625 только первого обращения к бэкенду.
6626
6627 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
6628 в 0.3.53.
6629
6630
6631 Изменения в nginx 0.3.53 07.07.2006
6632
6633 *) Изменение: директива add_header добавляет строки в ответы с кодом
6634 204, 301 и 302.
6635
6636 *) Добавление: директива server в блоке upstream поддерживает параметр
6637 weight.
6638
6639 *) Добавление: директива server_name поддерживает маску "*".
6640
6641 *) Добавление: nginx поддерживает тело запроса больше 2G.
6642
6643 *) Исправление: если при использовании "satisfy_any on" клиент успешно
6644 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
6645 forbidden by rule".
6646
6647 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
6648 409.
6649
6650 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
6651 ошибку, nginx продолжал проксирование.
6652
6653
6654 Изменения в nginx 0.3.52 03.07.2006
6655
6656 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
6657 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
6658 ошибку 405.
6659
6660 *) Исправление: при использовании ограничения скорости рабочий процесс
6661 мог зациклиться; ошибка появилась в 0.3.37.
6662
6663 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
6664 "unknown charset", даже если перекодировка не требовалась; ошибка
6665 появилась в 0.3.50.
6666
6667 *) Исправление: если в результате запроса PUT возвращался код 409, то
6668 временный файл не удалялся.
6669
6670
6671 Изменения в nginx 0.3.51 30.06.2006
6672
6673 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
6674 ошибка появилась в 0.3.50.
6675
6676
6677 Изменения в nginx 0.3.50 28.06.2006
6678
6679 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
6680 переименованы соответственно в proxy_intercept_errors и
6681 fastcgi_intercept_errors.
6682
6683 *) Добавление: модуль ngx_http_charset_module поддерживает
6684 перекодирование из однобайтных кодировок в UTF-8 и обратно.
6685
6686 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
6687 "X-Accel-Charset" в ответе бэкенда.
6688
6689 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
6690 только если также использовался символ "$".
6691
6692 *) Исправление: при некоторых условиях в SSI после вставки могла быть
6693 добавлена строка "<!--".
6694
6695 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
6696 то при использовании небуферизированного проксировании не закрывалось
6697 соединение с клиентом.
6698
6699
6700 Изменения в nginx 0.3.49 31.05.2006
6701
6702 *) Исправление: в директиве set.
6703
6704 *) Исправление: при включении в ssi двух и более подзапросов,
6705 обрабатываемых через FastCGI, вместо вывода второго и остальных
6706 подзапросов в ответ включался вывод первого подзапроса.
6707
6708
6709 Изменения в nginx 0.3.48 29.05.2006
6710
6711 *) Изменение: теперь модуль ngx_http_charset_module работает для
6712 подзапросов, в ответах которых нет строки заголовка "Content-Type".
6713
6714 *) Исправление: если в директиве proxy_pass не было URI, то директива
6715 "proxy_redirect default" добавляла в переписанный редирект в начало
6716 лишний слэш.
6717
6718 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
6719 GET, теперь это делается только для редиректов, выполняемых с помощью
6720 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
6721 0.3.42.
6722
6723 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
6724 с поддержкой потоков; ошибка появилась в 0.3.46.
6725
6726
6727 Изменения в nginx 0.3.47 23.05.2006
6728
6729 *) Добавление: директива upstream.
6730
6731 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
6732 всегда убирается.
6733
6734
6735 Изменения в nginx 0.3.46 11.05.2006
6736
6737 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
6738 fastcgi_hide_header и fastcgi_pass_header.
6739
6740 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
6741 proxy_pass_server упразднены.
6742
6743 *) Добавление: в режиме прокси поддерживается строка заголовка
6744 "X-Accel-Buffering" в ответе бэкенда.
6745
6746 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
6747 ngx_http_perl_module.
6748
6749
6750 Изменения в nginx 0.3.45 06.05.2006
6751
6752 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
6753 ssl_client_certificate.
6754
6755 *) Изменение: теперь переменная $request_method возвращает метод только
6756 основного запроса.
6757
6758 *) Изменение: в таблице перекодировки koi-win изменены коды символа
6759 &deg;.
6760
6761 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
6762 номера.
6763
6764 *) Исправление: если nginx распределял запросы на несколько машин, то
6765 при падении одной из них запросы, предназначенные для этой машины,
6766 перенаправлялись только на одну машину вместо того, чтобы равномерно
6767 распределяться между остальными.
6768
6769
6770 Изменения в nginx 0.3.44 04.05.2006
6771
6772 *) Добавление: параметр wait в команде SSI include.
6773
6774 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
6775 белорусские символы.
6776
6777 *) Исправление: в SSI.
6778
6779
6780 Изменения в nginx 0.3.43 26.04.2006
6781
6782 *) Исправление: в SSI.
6783
6784
6785 Изменения в nginx 0.3.42 26.04.2006
6786
6787 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
6788
6789 *) Исправление: ошибки при использовании в директиве rewrite одного и
6790 того же выделения более одного раза.
6791
6792 *) Исправление: в лог не записывались переменные
6793 $sent_http_content_type, $sent_http_content_length,
6794 $sent_http_last_modified, $sent_http_connection,
6795 $sent_http_keep_alive и $sent_http_transfer_encoding.
6796
6797 *) Исправление: переменная $sent_http_cache_control возвращала
6798 содержимое только одной строки "Cache-Control" в заголовке ответа.
6799
6800
6801 Изменения в nginx 0.3.41 21.04.2006
6802
6803 *) Добавление: ключ -v.
6804
6805 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
6806 segmentation fault.
6807
6808 *) Исправление: в обработке FastCGI.
6809
6810 *) Исправление: если путь к перловым модулям не был указан с помощью
6811 --with-perl_modules_path=PATH или директивы perl_modules, то на
6812 старте происходил segmentation fault.
6813
6814
6815 Изменения в nginx 0.3.40 19.04.2006
6816
6817 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
6818
6819 *) Добавление: директива create_full_put_path.
6820
6821 *) Добавление: переменная $limit_rate.
6822
6823
6824 Изменения в nginx 0.3.39 17.04.2006
6825
6826 *) Добавление: директива uninitialized_variable_warn; уровень
6827 логгирования сообщения о неинициализированной переменной понижен с
6828 уровня alert на warn.
6829
6830 *) Добавление: директива override_charset.
6831
6832 *) Изменение: при использовании неизвестной переменной в SSI-командах
6833 echo и if expr='$name' теперь не записывается в лог сообщение о
6834 неизвестной переменной.
6835
6836 *) Исправление: счётчик активных соединений рос при превышении лимита
6837 соединений, заданного директивой worker_connections; ошибка появилась
6838 в 0.2.0.
6839
6840 *) Исправление: при некоторых условия ограничение скорости соединения
6841 могло не работать; ошибка появилась в 0.3.38.
6842
6843
6844 Изменения в nginx 0.3.38 14.04.2006
6845
6846 *) Добавление: модуль ngx_http_dav_module.
6847
6848 *) Изменение: оптимизация модуля ngx_http_perl_module.
6849 Спасибо Сергею Скворцову.
6850
6851 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6852 $r->request_body_file.
6853
6854 *) Добавление: директива client_body_in_file_only.
6855
6856 *) Изменение: теперь при переполнении диска nginx пытается писать
6857 access_log'и только раз в секунду.
6858 Спасибо Антону Южанинову и Максиму Дунину.
6859
6860 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
6861 при значениях больше 100 Kbyte/s.
6862 Спасибо ForJest.
6863
6864 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
6865 символы "\r" и "\n" в логине и пароле в закодированном виде.
6866 Спасибо Максиму Дунину.
6867
6868
6869 Изменения в nginx 0.3.37 07.04.2006
6870
6871 *) Добавление: директива limit_except.
6872
6873 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
6874 "!-f".
6875
6876 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6877 $r->request_body.
6878
6879 *) Исправление: в модуле ngx_http_addition_filter_module.
6880
6881
6882 Изменения в nginx 0.3.36 05.04.2006
6883
6884 *) Добавление: модуль ngx_http_addition_filter_module.
6885
6886 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
6887 внутри блока if.
6888
6889 *) Добавление: директивы proxy_ignore_client_abort и
6890 fastcgi_ignore_client_abort.
6891
6892 *) Добавление: переменная $request_completion.
6893
6894 *) Добавление: модуль ngx_http_perl_module поддерживает методы
6895 $r->request_method и $r->remote_addr.
6896
6897 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
6898
6899 *) Исправление: строка "\/" в начале выражения команды if модуля
6900 ngx_http_ssi_module воспринималась неверно.
6901
6902 *) Исправление: в использовании регулярных выражениях в команде if
6903 модуля ngx_http_ssi_module.
6904
6905 *) Исправление: при задании относительного пути в директивах
6906 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
6907 perl_modules использовался каталог относительно текущего каталога, а
6908 не относительно префикса сервера.
6909
6910
6911 Изменения в nginx 0.3.35 22.03.2006
6912
6913 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
6914 для первой директивы listen; ошибка появилась в 0.3.31.
6915
6916 *) Исправление: в директиве proxy_pass без URI при использовании в
6917 подзапросе.
6918
6919
6920 Изменения в nginx 0.3.34 21.03.2006
6921
6922 *) Добавление: директива add_header поддерживает переменные.
6923
6924
6925 Изменения в nginx 0.3.33 15.03.2006
6926
6927 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
6928 fastcgi_next_upstream.
6929
6930 *) Исправление: ngx_http_perl_module не работал со встроенным в
6931 конфигурационный файл кодом, если он не начинался сразу же с "sub".
6932
6933 *) Исправление: в директиве post_action.
6934
6935
6936 Изменения в nginx 0.3.32 11.03.2006
6937
6938 *) Исправление: удаление отладочного логгирования на старте и при
6939 переконфигурации; ошибка появилась в 0.3.31.
6940
6941
6942 Изменения в nginx 0.3.31 10.03.2006
6943
6944 *) Изменение: теперь nginx передаёт неверные ответы проксированного
6945 бэкенда.
6946
6947 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
6948
6949 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
6950
6951 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
6952 64-битном ядре MacOSX.
6953 Спасибо Андрею Нигматулину.
6954
6955 *) Исправление: если внутри одного сервера описаны несколько директив
6956 listen, слушающих на разных адресах, то имена серверов вида
6957 "*.domain.tld" работали только для первого адреса; ошибка появилась в
6958 0.3.18.
6959
6960 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
6961 не передавались запросы с телом, записанным во временный файл.
6962
6963 *) Исправление: совместимость с perl 5.8.8.
6964
6965
6966 Изменения в nginx 0.3.30 22.02.2006
6967
6968 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
6969 с уровня crit.
6970
6971 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
6972 ngx_http_ssi_filter_module.
6973
6974 *) Исправление: nginx не собирался на i386 платформе, если использовался
6975 PIC; ошибка появилась в 0.3.27.
6976
6977
6978 Изменения в nginx 0.3.29 20.02.2006
6979
6980 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
6981 FastCGI передаёт большое количество предупреждений перед ответом.
6982
6983 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
6984 строка заголовка "Transfer-Encoding: chunked".
6985
6986 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
6987 передавал полные строки заголовка ответа в отдельных FastCGI записях.
6988
6989 *) Исправление: если в директиве post_action был указан проксируемый
6990 URI, то он выполнялся только после успешного завершения запроса.
6991
6992
6993 Изменения в nginx 0.3.28 16.02.2006
6994
6995 *) Добавление: директива restrict_host_names упразднена.
6996
6997 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
6998
6999 *) Исправление: при некоторых условиях проксированное соединение с
7000 клиентом завершалось преждевременно.
7001 Спасибо Владимиру Шутову.
7002
7003 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
7004 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
7005
7006 *) Исправление: директива post_action работала только после успешного
7007 завершения запроса.
7008
7009 *) Исправление: тело проксированного ответа, создаваемого директивой
7010 post_action, передавалось клиенту.
7011
7012
7013 Изменения в nginx 0.3.27 08.02.2006
7014
7015 *) Изменение: директивы variables_hash_max_size и
7016 variables_hash_bucket_size.
7017
7018 *) Добавление: переменная $body_bytes_sent доступна не только в
7019 директиве log_format.
7020
7021 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
7022
7023 *) Добавление: определение размера строки кэша распространённых
7024 процессоров при старте.
7025
7026 *) Добавление: директива accept_mutex теперь поддерживается посредством
7027 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
7028
7029 *) Добавление: директива lock_file и параметр автоконфигурации
7030 --with-lock-path=PATH.
7031
7032 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7033 не передавались запросы с телом.
7034
7035
7036 Изменения в nginx 0.3.26 03.02.2006
7037
7038 *) Изменение: директива optimize_host_names переименована в
7039 optimize_server_names.
7040
7041 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
7042 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
7043
7044
7045 Изменения в nginx 0.3.25 01.02.2006
7046
7047 *) Исправление: при неверной конфигурации на старте или во время
7048 переконфигурации происходил segmentation fault; ошибка появилась в
7049 0.3.24.
7050
7051
7052 Изменения в nginx 0.3.24 01.02.2006
7053
7054 *) Изменение: обход ошибки в kqueue во FreeBSD.
7055
7056 *) Исправление: ответ, создаваемый директивой post_action, теперь не
7057 передаётся клиенту.
7058
7059 *) Исправление: при использовании большого количества лог-файлов
7060 происходила утечка памяти.
7061
7062 *) Исправление: внутри одного location работала только первая директива
7063 proxy_redirect.
7064
7065 *) Исправление: на 64-битных платформах при старте мог произойти
7066 segmentation fault, если использовалось большое количество имён в
7067 директивах server_name; ошибка появилась в 0.3.18.
7068
7069
7070 Изменения в nginx 0.3.23 24.01.2006
7071
7072 *) Добавление: директива optimize_host_names.
7073
7074 *) Исправление: ошибки при использовании переменных в директивах path и
7075 alias.
7076
7077 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
7078 Linux и Solaris.
7079
7080
7081 Изменения в nginx 0.3.22 17.01.2006
7082
7083 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
7084 и $r->unescape.
7085
7086 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
7087 упразднён.
7088
7089 *) Исправление: если в директиве valid_referers указаны только none или
7090 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
7091
7092
7093 Изменения в nginx 0.3.21 16.01.2006
7094
7095 *) Добавление: модуль ngx_http_perl_module.
7096
7097 *) Изменение: директива valid_referers разрешает использовать рефереры
7098 совсем без URI.
7099
7100
7101 Изменения в nginx 0.3.20 11.01.2006
7102
7103 *) Исправление: ошибки в обработке SSI.
7104
7105 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
7106 виде /uri?args.
7107
7108
7109 Изменения в nginx 0.3.19 28.12.2005
7110
7111 *) Добавление: директивы path и alias поддерживают переменные.
7112
7113 *) Изменение: теперь директива valid_referers опять учитывает URI.
7114
7115 *) Исправление: ошибки в обработке SSI.
7116
7117
7118 Изменения в nginx 0.3.18 26.12.2005
7119
7120 *) Добавление: директива server_names поддерживает имена вида
7121 ".domain.tld".
7122
7123 *) Добавление: директива server_names использует хэш для имён вида
7124 "*.domain.tld" и более эффективный хэш для обычных имён.
7125
7126 *) Изменение: директивы server_names_hash_max_size и
7127 server_names_hash_bucket_size.
7128
7129 *) Изменение: директивы server_names_hash и server_names_hash_threshold
7130 упразднены.
7131
7132 *) Добавление: директива valid_referers использует хэш для имён сайтов.
7133
7134 *) Изменение: теперь директива valid_referers проверяет только имена
7135 сайтов без учёта URI.
7136
7137 *) Исправление: некоторые имена вида ".domain.tld" неверно
7138 обрабатывались модулем ngx_http_map_module.
7139
7140 *) Исправление: если конфигурационного файла не было, то происходил
7141 segmentation fault; ошибка появилась в 0.3.12.
7142
7143 *) Исправление: на 64-битных платформах при старте мог произойти
7144 segmentation fault; ошибка появилась в 0.3.16.
7145
7146
7147 Изменения в nginx 0.3.17 18.12.2005
7148
7149 *) Изменение: на Linux configure теперь проверяет наличие epoll и
7150 sendfile64() в ядре.
7151
7152 *) Добавление: директива map поддерживает доменные имена в формате
7153 ".domain.tld".
7154
7155 *) Исправление: во время SSL handshake не иcпользовались таймауты;
7156 ошибка появилась в 0.2.4.
7157
7158 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
7159
7160 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7161 по умолчанию использовался порт 80.
7162
7163
7164 Изменения в nginx 0.3.16 16.12.2005
7165
7166 *) Добавление: модуль ngx_http_map_module.
7167
7168 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
7169
7170 *) Добавление: директива ssi_value_length.
7171
7172 *) Добавление: директива worker_rlimit_core.
7173
7174 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
7175 Pentium 4 номер соединения в логах всегда был равен 1.
7176
7177 *) Исправление: команда config timefmt в SSI задавала неверный формат
7178 времени.
7179
7180 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
7181 использовании SSL соединений; ошибка появилась в 0.3.13.
7182 Спасибо Rob Mueller.
7183
7184 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
7185 ошибка появилась в 0.3.13.
7186
7187
7188 Изменения в nginx 0.3.15 07.12.2005
7189
7190 *) Добавление: новой код 444 в директиве return для закрытия соединения.
7191
7192 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
7193
7194 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
7195 соединений только при плавном выходе и включённой директиве
7196 debug_points.
7197
7198
7199 Изменения в nginx 0.3.14 05.12.2005
7200
7201 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
7202 в 0.3.13.
7203
7204
7205 Изменения в nginx 0.3.13 05.12.2005
7206
7207 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
7208
7209 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
7210 /dev/poll.
7211
7212 *) Исправление: ошибки в обработке SSI.
7213
7214 *) Исправление: sendfilev() в Solaris теперь не используется при
7215 передаче тела запроса FastCGI-серверу через unix domain сокет.
7216
7217 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
7218 появилась в 0.3.11.
7219
7220
7221 Изменения в nginx 0.3.12 26.11.2005
7222
7223 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
7224 то при использовании директивы "satisfy_any on" директивы доступа и
7225 аутентификации не работали. Модуль ngx_http_realip_module не
7226 собирался и не собирается по умолчанию.
7227
7228 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
7229
7230 *) Изменение: директивы proxy_header_buffer_size и
7231 fastcgi_header_buffer_size переименованы соответственно в
7232 proxy_buffer_size и fastcgi_buffer_size.
7233
7234 *) Добавление: модуль ngx_http_memcached_module.
7235
7236 *) Добавление: директива proxy_buffering.
7237
7238 *) Исправление: изменение в работе с accept mutex при использовании
7239 метода rtsig; ошибка появилась в 0.3.0.
7240
7241 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
7242 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
7243
7244 *) Исправление: при наследовании директивы auth_basic с уровня http в
7245 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
7246 "Basic realm".
7247
7248 *) Исправление: если в директиве access_log был явно указан формат
7249 combined, то в лог записывались пустые строки; ошибка появилась в
7250 0.3.8.
7251
7252 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
7253 Solaris.
7254
7255 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
7256 в кавычках и закрывающую скобку.
7257
7258
7259 Изменения в nginx 0.3.11 15.11.2005
7260
7261 *) Исправление: nginx не передавал при проксировании тело запроса и
7262 строки заголовка клиента; ошибка появилась в 0.3.10.
7263
7264
7265 Изменения в nginx 0.3.10 15.11.2005
7266
7267 *) Изменение: директива valid_referers и переменная $invalid_referer
7268 перенесены из модуля ngx_http_rewrite_module в новый модуль
7269 ngx_http_referer_module.
7270
7271 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
7272 "$body_bytes_sent".
7273
7274 *) Добавление: переменные "$sent_http_...".
7275
7276 *) Добавление: директива if поддерживает операции "=" и "!=".
7277
7278 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
7279
7280 *) Добавление: директива proxy_set_body.
7281
7282 *) Добавление: директива post_action.
7283
7284 *) Добавление: модуль ngx_http_empty_gif_module.
7285
7286 *) Добавление: директива worker_cpu_affinity для Linux.
7287
7288 *) Исправление: директива rewrite не раскодировала символы в редиректах
7289 в URI, теперь символы раскодируются, кроме символов %00-%25 и
7290 %7F-%FF.
7291
7292 *) Исправление: nginx не собирался компилятором icc 9.0.
7293
7294 *) Исправление: если для статического файла нулевого размера был
7295 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
7296
7297
7298 Изменения в nginx 0.3.9 10.11.2005
7299
7300 *) Исправление: nginx считал небезопасными URI, в которых между двумя
7301 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
7302
7303
7304 Изменения в nginx 0.3.8 09.11.2005
7305
7306 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
7307 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
7308 наличие путей "/../" и нулей.
7309
7310 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
7311 строке "Authorization" в заголовке запроса.
7312
7313 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
7314 и ngx_imap_ssl_module.
7315
7316 *) Добавление: директива auth_http_header модуля
7317 ngx_imap_auth_http_module.
7318
7319 *) Добавление: директива add_header.
7320
7321 *) Добавление: модуль ngx_http_realip_module.
7322
7323 *) Добавление: новые переменные для использования в директиве
7324 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
7325 $uri, $request_time, $request_length, $upstream_status,
7326 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
7327 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
7328 упразднены.
7329
7330 *) Изменение: в директиве "if" ложными значениями переменных теперь
7331 являются пустая строка "" и строки, начинающиеся на "0".
7332
7333 *) Исправление: при работает с проксированными или FastCGI-серверами
7334 nginx мог оставлять открытыми соединения и временные файлы с
7335 запросами клиентов.
7336
7337 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
7338 плавном выходе.
7339
7340 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
7341 запрос проксировался в location, заданном регулярным выражением, то
7342 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
7343
7344 *) Исправление: директива expires не удаляла уже установленную строку
7345 заголовка "Expires".
7346
7347 *) Исправление: при использовании метода rtsig и нескольких рабочих
7348 процессах nginx мог перестать принимать запросы.
7349
7350 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
7351 "\'".
7352
7353 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
7354 при использовании сжатия ответ передавался не до конца или не
7355 передавался вообще.
7356
7357
7358 Изменения в nginx 0.3.7 27.10.2005
7359
7360 *) Добавление: директива access_log поддерживает параметр buffer=.
7361
7362 *) Исправление: nginx не собирался на платформах, отличных от i386,
7363 amd64, sparc и ppc; ошибка появилась в 0.3.2.
7364
7365
7366 Изменения в nginx 0.3.6 24.10.2005
7367
7368 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
7369 пустой логин.
7370
7371 *) Добавление: директива log_format поддерживает переменные в виде
7372 $name.
7373
7374 *) Исправление: если хотя бы в одном сервере не было описано ни одной
7375 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
7376 0.3.3.
7377
7378 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
7379 использовался порт 80.
7380
7381
7382 Изменения в nginx 0.3.5 21.10.2005
7383
7384 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
7385 мог произойти segmentation fault; ошибка появилась в 0.2.2.
7386
7387 *) Исправление: accept mutex не работал, все соединения обрабатывались
7388 одним рабочим процессом; ошибка появилась в 0.3.3.
7389
7390 *) Исправление: при использовании метода rtsig и директивы
7391 timer_resolution не работали таймауты.
7392
7393
7394 Изменения в nginx 0.3.4 19.10.2005
7395
7396 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
7397 появилась в 0.3.3.
7398
7399
7400 Изменения в nginx 0.3.3 19.10.2005
7401
7402 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
7403 "backlog" и "accept_filter".
7404
7405 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
7406
7407 *) Изменение: параметр лога $msec теперь не требует дополнительного
7408 системного вызова gettimeofday().
7409
7410 *) Добавление: ключ -t теперь проверяет директивы listen.
7411
7412 *) Исправление: если в директиве listen был указан неверный адрес, то
7413 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
7414
7415 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
7416 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
7417
7418 *) Добавление: директива timer_resolution.
7419
7420 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
7421
7422 *) Исправление: временный файл с телом запроса клиента теперь удаляется
7423 сразу после того, как клиенту передан заголовок ответа.
7424
7425 *) Исправление: совместимость с OpenSSL 0.9.6.
7426
7427 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
7428 относительными.
7429
7430 *) Исправление: директива ssl_prefer_server_ciphers не работала для
7431 модуля ngx_imap_ssl_module.
7432
7433 *) Исправление: директива ssl_protocols позволяла задать только один
7434 протокол.
7435
7436
7437 Изменения в nginx 0.3.2 12.10.2005
7438
7439 *) Добавление: поддержка Sun Studio 10 C compiler.
7440
7441 *) Добавление: директивы proxy_upstream_max_fails,
7442 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
7443 fastcgi_upstream_fail_timeout.
7444
7445
7446 Изменения в nginx 0.3.1 10.10.2005
7447
7448 *) Исправление: во время переполнения очереди сигналов при использовании
7449 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
7450
7451 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
7452
7453
7454 Изменения в nginx 0.3.0 07.10.2005
7455
7456 *) Изменение: убрано десятидневное ограничение времени работы рабочего
7457 процесса. Ограничение было введено из-за переполнения миллисекундных
7458 таймеров.
7459
7460
7461 Изменения в nginx 0.2.6 05.10.2005
7462
7463 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
7464 бэкенду при использовании распределения нагрузки.
7465
7466 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
7467 запрос теперь передаётся, если в директиве proxy_pass отсутствует
7468 URI.
7469
7470 *) Добавление: директива error_page поддерживает редиректы и позволяет
7471 более гибко менять код ошибки.
7472
7473 *) Изменение: в проксированных подзапросах теперь игнорируется
7474 переданный charset.
7475
7476 *) Исправление: если после изменения URI в блоке if для запроса не
7477 находилась новая конфигурация, то правила модуля
7478 ngx_http_rewrite_module выполнялись снова.
7479
7480 *) Исправление: если директива set устанавливала переменную модуля
7481 ngx_http_geo_module в какой-либо части конфигурации, то эта
7482 переменная не была доступна в других частях конфигурации и выдавалась
7483 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
7484
7485
7486 Изменения в nginx 0.2.5 04.10.2005
7487
7488 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
7489 теперь выдаёт предупреждение и изменяет старое значение.
7490
7491 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
7492
7493 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
7494 команде include.
7495
7496 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
7497 значений переменных в выражениях команды if.
7498
7499
7500 Изменения в nginx 0.2.4 03.10.2005
7501
7502 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
7503 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
7504 if.
7505
7506 *) Исправление: ошибки при проксировании location без слэша в конце;
7507 ошибка появилась в 0.1.44.
7508
7509 *) Исправление: при использовании метода rtsig мог произойти
7510 segmentation fault; ошибка появилась в 0.2.0.
7511
7512
7513 Изменения в nginx 0.2.3 30.09.2005
7514
7515 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
7516 появилась в 0.2.2.
7517
7518
7519 Изменения в nginx 0.2.2 30.09.2005
7520
7521 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
7522
7523 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
7524 директивой set.
7525
7526 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
7527 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
7528
7529 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
7530 длинных имён файлов;
7531
7532 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
7533 файлы, начинающиеся на точку.
7534
7535 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
7536 привести также к закрытию другого соединения.
7537 Спасибо Rob Mueller.
7538
7539 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
7540 HTTPS.
7541
7542
7543 Изменения в nginx 0.2.1 23.09.2005
7544
7545 *) Исправление: если все бэкенды, используемые для балансировки
7546 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
7547 nginx мог зациклится; ошибка появилась в 0.2.0.
7548
7549
7550 Изменения в nginx 0.2.0 23.09.2005
7551
7552 *) Изменились имена pid-файлов, используемые во время обновления
7553 исполняемого файла. Ручное переименование теперь не нужно. Старый
7554 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
7555 запускает новый исполняемый файл. Новый основной процесс создаёт
7556 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
7557 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
7558 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
7559 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
7560 0.2.0 - используют pid-файл без суффиксов.
7561
7562 *) Изменение: директива worker_connections, новое название директивы
7563 connections; директива теперь задаёт максимальное число соединений, а
7564 не максимально возможный номер дескриптора для сокета.
7565
7566 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
7567 рабочего процесса.
7568
7569 *) Добавление: директива satisfy_any.
7570
7571 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
7572 не работают для подзапросов.
7573
7574 *) Добавление: директивы worker_rlimit_nofile и
7575 worker_rlimit_sigpending.
7576
7577 *) Исправление: если все бэкенды, используемые для балансировки
7578 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
7579 nginx не обращался к ним в течение 60 секунд.
7580
7581 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
7582 Спасибо Rob Mueller.
7583
7584 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
7585
7586 *) Исправление: ошибки при использовании SSI и сжатия.
7587
7588 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
7589 "Expires" и "Cache-Control".
7590 Спасибо Александру Кукушкину.
7591
7592
7593 Изменения в nginx 0.1.45 08.09.2005
7594
7595 *) Изменение: директива ssl_engine упразднена в модуле
7596 ngx_http_ssl_module и перенесена на глобальный уровень.
7597
7598 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
7599 передавались через SSL соединение.
7600
7601 *) Разные исправления в IMAP/POP3 прокси.
7602
7603
7604 Изменения в nginx 0.1.44 06.09.2005
7605
7606 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
7607
7608 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
7609
7610 *) Добавление: директива userid_mark.
7611
7612 *) Добавление: значение переменной $remote_user определяется независимо
7613 от того, используется ли авторизация или нет.
7614
7615
7616 Изменения в nginx 0.1.43 30.08.2005
7617
7618 *) Добавление: listen(2) backlog в директиве listen можно менять по
7619 сигналу -HUP.
7620
7621 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
7622
7623 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
7624 серверу.
7625
7626 *) Исправление: если в ответе проксированного сервера или FastCGI
7627 сервера была строка "Cache-Control", то при использовании директивы
7628 expires происходил segmentation fault или рабочий процесс мог
7629 зациклится; в режиме прокси ошибка появилась в 0.1.29.
7630
7631
7632 Изменения в nginx 0.1.42 23.08.2005
7633
7634 *) Исправление: если URI запроса получался нулевой длины после обработки
7635 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
7636 происходил segmentation fault или bus error.
7637
7638 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
7639 появилась в 0.1.38.
7640
7641
7642 Изменения в nginx 0.1.41 25.07.2005
7643
7644 *) Исправление: если переменная использовалась в файле конфигурации, то
7645 она не могла использоваться в SSI.
7646
7647
7648 Изменения в nginx 0.1.40 22.07.2005
7649
7650 *) Исправление: если клиент слал очень длинную строку заголовка, то в
7651 логе не помещалась информация, связанная с этим запросом.
7652
7653 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
7654 строка "Set-Cookie"; ошибка появилась в 0.1.39.
7655
7656 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
7657 строка "Content-Disposition".
7658
7659 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
7660 на которых он слушал.
7661
7662 *) Исправление: после обновления исполняемого файла на лету на Linux и
7663 Solaris название процесса в команде ps становилось короче.
7664
7665
7666 Изменения в nginx 0.1.39 14.07.2005
7667
7668 *) Изменения в модуле ngx_http_charset_module: директива default_charset
7669 упразднена; директива charset задаёт кодировку ответа; директива
7670 source_charset задаёт только исходную кодировку.
7671
7672 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
7673 не передавалась строка заголовка "WWW-Authenticate".
7674
7675 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
7676 могли закрыть соединение до того, как что-нибудь было передано
7677 клиенту; ошибка появилась в 0.1.38.
7678
7679 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
7680
7681 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
7682 URI в команде include virtual.
7683
7684 *) Исправление: если в строке заголовка ответа бэкенда была строка
7685 "Location", которую nginx не должен был изменять, то в ответе
7686 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
7687
7688 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
7689 ngx_http_fastcgi_module не наследовались с уровня server на уровень
7690 location; ошибка появилась в 0.1.29.
7691
7692 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
7693 сертификатов.
7694
7695 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
7696 длинных имён файлов; ошибка появилась в 0.1.38.
7697
7698 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
7699 стадии login.
7700
7701
7702 Изменения в nginx 0.1.38 08.07.2005
7703
7704 *) Добавление: директива limit_rate поддерживается в режиме прокси и
7705 FastCGI.
7706
7707 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7708 "X-Accel-Limit-Rate" в ответе бэкенда.
7709
7710 *) Добавление: директива break.
7711
7712 *) Добавление: директива log_not_found.
7713
7714 *) Исправление: при перенаправлении запроса с помощью строки заголовка
7715 "X-Accel-Redirect" не изменялся код ответа.
7716
7717 *) Исправление: переменные, установленные директивой set не могли
7718 использоваться в SSI.
7719
7720 *) Исправление: при включении в SSI более одного удалённого подзапроса
7721 мог произойти segmentation fault.
7722
7723 *) Исправление: если статусная строка в ответе бэкенда передавалась в
7724 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
7725 0.1.29.
7726
7727 *) Добавление: директива ssi_types.
7728
7729 *) Добавление: директива autoindex_exact_size.
7730
7731 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
7732 имена файлов в UTF-8.
7733
7734 *) Добавление: IMAP/POP3 прокси.
7735
7736
7737 Изменения в nginx 0.1.37 23.06.2005
7738
7739 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
7740
7741 *) Исправление: при включении большого количества вставок или нескольких
7742 больших вставок с помощью SSI ответ мог передаваться не полностью.
7743
7744 *) Исправление: если все бэкенды возвращали ответ 404, то при
7745 использовании параметра http_404 в директивах proxy_next_upstream или
7746 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
7747
7748
7749 Изменения в nginx 0.1.36 15.06.2005
7750
7751 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host",
7752 "Connection", "Content-Length" и "Authorization", то nginx теперь
7753 выдаёт ошибку 400.
7754
7755 *) Изменение: директива post_accept_timeout упразднена.
7756
7757 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
7758 listen.
7759
7760 *) Добавление: поддержка accept фильтров во FreeBSD.
7761
7762 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
7763
7764 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
7765 файлов в UTF-8.
7766
7767 *) Исправление: после добавления новый лог-файл ротация этого лога по
7768 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
7769 раза по сигналу -HUP.
7770
7771
7772 Изменения в nginx 0.1.35 07.06.2005
7773
7774 *) Добавление: директива working_directory.
7775
7776 *) Добавление: директива port_in_redirect.
7777
7778 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
7779 то происходил segmentation fault; ошибка появилась в 0.1.29.
7780
7781 *) Исправление: если было сконфигурировано более 10 серверов или в
7782 сервере не описана директива "listen", то при запуске мог произойти
7783 segmentation fault.
7784
7785 *) Исправление: если ответ не помещался во временный файл, то мог
7786 произойти segmentation fault.
7787
7788 *) Исправление: nginx возвращал ошибку 400 на запросы вида
7789 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
7790
7791
7792 Изменения в nginx 0.1.34 26.05.2005
7793
7794 *) Исправление: при включении больших ответов с помощью SSI рабочий
7795 процесс мог зациклиться.
7796
7797 *) Исправление: переменные, устанавливаемые директивой "set", не были
7798 доступны в SSI.
7799
7800 *) Добавление: директива autoindex_localtime.
7801
7802 *) Исправление: пустое значение в директиве proxy_set_header запрещает
7803 передачу заголовка.
7804
7805
7806 Изменения в nginx 0.1.33 23.05.2005
7807
7808 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
7809 появилась в 0.1.29.
7810
7811 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
7812 вызывали bus fault при запуске.
7813
7814 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
7815 HTTP.
7816
7817 *) Исправление: если директива rewrite использовала выделения внутри
7818 директивы if, то возвращалась ошибка 500.
7819
7820
7821 Изменения в nginx 0.1.32 19.05.2005
7822
7823 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
7824 передавались аргументы; ошибка появилась в 0.1.29.
7825
7826 *) Добавление: директива if поддерживает выделения в регулярных
7827 выражениях.
7828
7829 *) Добавление: директива set поддерживает переменные и выделения из
7830 регулярных выражений.
7831
7832 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7833 "X-Accel-Redirect" в ответе бэкенда.
7834
7835
7836 Изменения в nginx 0.1.31 16.05.2005
7837
7838 *) Исправление: при использовании SSL ответ мог передаваться не до
7839 конца.
7840
7841 *) Исправление: ошибки при обработке SSI в ответе, полученного от
7842 FastCGI-сервера.
7843
7844 *) Исправление: ошибки при использовании SSI и сжатия.
7845
7846 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
7847 появилась в 0.1.30.
7848
7849
7850 Изменения в nginx 0.1.30 14.05.2005
7851
7852 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
7853
7854 *) Исправление: при использовании SSL ответ мог передаваться не до
7855 конца.
7856
7857 *) Исправление: если длина части ответа, полученного за один раз от
7858 проксируемого или FastCGI сервера была равна 500 байт, то nginx
7859 возвращал код ответа 500; в режиме прокси ошибка появилась только в
7860 0.1.29.
7861
7862 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
7863 параметрами.
7864
7865 *) Добавление: директива return может возвращать код ответа 204.
7866
7867 *) Добавление: директива ignore_invalid_headers.
7868
7869
7870 Изменения в nginx 0.1.29 12.05.2005
7871
7872 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
7873 virtual.
7874
7875 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
7876 вида 'if expr="$NAME"' и команды else и endif. Допускается только
7877 один уровень вложенности.
7878
7879 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
7880 DATE_LOCAL и DATE_GMT и команду config timefmt.
7881
7882 *) Добавление: директива ssi_ignore_recycled_buffers.
7883
7884 *) Исправление: если переменная QUERY_STRING не была определена, то в
7885 команде echo не ставилось значение по умолчанию.
7886
7887 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
7888
7889 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
7890 proxy_pass_request_body и proxy_method.
7891
7892 *) Добавление: директива proxy_set_header. Директива proxy_x_var
7893 упразднена и должна быть заменена директивой proxy_set_header.
7894
7895 *) Изменение: директива proxy_preserve_host упразднена и должна быть
7896 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
7897 off" или директивой "proxy_set_header Host $host:$proxy_port" и
7898 соответствующими ей директивами proxy_redirect.
7899
7900 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
7901 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
7902
7903 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
7904 быть заменена директивой
7905 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
7906
7907 *) Изменение: директива proxy_set_x_url упразднена и должна быть
7908 заменена директивой
7909 "proxy_set_header X-URL http://$host:$server_port$request_uri".
7910
7911 *) Добавление: директива fastcgi_param.
7912
7913 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
7914 упразднены и должны быть замены директивами fastcgi_param.
7915
7916 *) Добавление: директива index может использовать переменные.
7917
7918 *) Добавление: директива index может быть указана на уровне http и
7919 server.
7920
7921 *) Изменение: только последний параметр в директиве index может быть
7922 абсолютным.
7923
7924 *) Добавление: в директиве rewrite могут использоваться переменные.
7925
7926 *) Добавление: директива internal.
7927
7928 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
7929 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
7930 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
7931
7932 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
7933 клиента и ответа бэкенда.
7934
7935 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
7936 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
7937
7938 *) Исправление: если бэкенд передавал неверную строку в заголовке
7939 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
7940
7941 *) Исправление: при использовании отказоустойчивой конфигурации в
7942 FastCGI мог происходить segmentation fault.
7943
7944 *) Исправление: директива expires не удаляла уже установленные строки
7945 заголовка "Expires" и "Cache-Control".
7946
7947 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
7948 запроса "Host".
7949
7950 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
7951
7952 *) Исправление: директива rewrite неверно работала, если в запросе
7953 присутствовали аргументы.
7954
7955 *) Исправление: nginx не собирался на MacOS X.
7956
7957
7958 Изменения в nginx 0.1.28 08.04.2005
7959
7960 *) Исправление: при проксировании больших файлов nginx сильно нагружал
7961 процессор.
7962
7963 *) Исправление: nginx не собирался gcc 4.0 на Linux.
7964
7965
7966 Изменения в nginx 0.1.27 28.03.2005
7967
7968 *) Добавление: параметр blocked в директиве valid_referers.
7969
7970 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
7971 уровне info, в лог также записывается имя сервера и строки заголовка
7972 запроса "Host" и "Referer".
7973
7974 *) Изменение: при записи ошибок в лог записывается также строка
7975 заголовка запроса "Host".
7976
7977 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
7978 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
7979
7980 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
7981 параметр конфигурации --without-ngx_http_auth_basic_module.
7982
7983
7984 Изменения в nginx 0.1.26 22.03.2005
7985
7986 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
7987 игнорируется и записываются в error_log на уровне info.
7988
7989 *) Изменение: при записи ошибок в лог записывается также имя сервера,
7990 при обращении к которому произошла ошибка.
7991
7992 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
7993 и auth_basic_user_file.
7994
7995
7996 Изменения в nginx 0.1.25 19.03.2005
7997
7998 *) Исправление: nginx не работал на Linux parisc.
7999
8000 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
8001 sysctl kern.ipc.somaxconn слишком большое.
8002
8003 *) Исправление: если модуль ngx_http_index_module делал внутреннее
8004 перенаправление запроса в модули ngx_http_proxy_module или
8005 ngx_http_fastcgi_module, то файл индекса не закрывался после
8006 обслуживания запроса.
8007
8008 *) Добавление: директива proxy_pass может использоваться в location,
8009 заданных регулярным выражением.
8010
8011 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
8012 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
8013
8014 *) Исправление: nginx очень медленно запускался при большом количестве
8015 адресов и использовании текстовых значений в директиве geo.
8016
8017 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
8018 Прежний вариант без "$" пока работает, но вскоре будет убран.
8019
8020 *) Добавление: параметр лога "%{VARIABLE}v".
8021
8022 *) Добавление: директива "set $name value".
8023
8024 *) Исправление: совместимость с gcc 4.0.
8025
8026 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
8027
8028
8029 Изменения в nginx 0.1.24 04.03.2005
8030
8031 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
8032 QUERY_STRING и DOCUMENT_URI.
8033
8034 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
8035 на существующий каталог, если этот каталог был указан как alias.
8036
8037 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
8038 при больших ответах.
8039
8040 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
8041 правильным referrer'ом.
8042
8043
8044 Изменения в nginx 0.1.23 01.03.2005
8045
8046 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
8047 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
8048 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
8049
8050 *) Добавление: параметр лога %request_time.
8051
8052 *) Добавление: если запрос пришёл без строки заголовка "Host", то
8053 директива proxy_preserve_host устанавливает в качестве этого
8054 заголовка первое имя сервера из директивы server_name.
8055
8056 *) Исправление: nginx не собирался на платформах, отличных от i386,
8057 amd64, sparc и ppc; ошибка появилась в 0.1.22.
8058
8059 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
8060 информацию не о символическом линке, а о файле или каталоге, на
8061 который он указывает.
8062
8063 *) Исправление: если клиенту ничего не передавалось, то параметр
8064 %apache_length записывал в лог отрицательную длину заголовка ответа.
8065
8066
8067 Изменения в nginx 0.1.22 22.02.2005
8068
8069 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8070 статистику для обработанных соединений, если использовалось
8071 проксирование или FastCGI-сервер.
8072
8073 *) Исправление: на Linux и Solaris установочные пути были неверно
8074 заключены в кавычки; ошибка появилась в 0.1.21.
8075
8076
8077 Изменения в nginx 0.1.21 22.02.2005
8078
8079 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8080 статистику при использовании метода rtsig или при использовании
8081 нескольких рабочих процессов на SMP машине.
8082
8083 *) Исправление: nginx не собирался компилятором icc под Линуксом или
8084 если библиотека zlib-1.2.x собиралась из исходных текстов.
8085
8086 *) Исправление: nginx не собирался под NetBSD 2.0.
8087
8088
8089 Изменения в nginx 0.1.20 17.02.2005
8090
8091 *) Добавление: новые параметры script_filename и remote_port в директиве
8092 fastcgi_params.
8093
8094 *) Исправление: неправильно обрабатывался поток stderr от
8095 FastCGI-сервера.
8096
8097
8098 Изменения в nginx 0.1.19 16.02.2005
8099
8100 *) Исправление: если в запросе есть нуль, то для локальных запросов
8101 теперь возвращается ошибка 404.
8102
8103 *) Исправление: nginx не собирался под NetBSD 2.0.
8104
8105 *) Исправление: во время чтения тела запроса клиента в SSL соединении
8106 мог произойти таймаут.
8107
8108
8109 Изменения в nginx 0.1.18 09.02.2005
8110
8111 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
8112 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
8113
8114 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
8115 наследовались.
8116
8117 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
8118 присоединялись к URI через символ "&" вместо "?".
8119
8120 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
8121 включённом файле игнорировались.
8122
8123 *) Добавление: модуль ngx_http_stub_status_module.
8124
8125 *) Исправление: неизвестный формат лог-файла в директиве access_log
8126 вызывал segmentation fault.
8127
8128 *) Добавление: новый параметр document_root в директиве fastcgi_params.
8129
8130 *) Добавление: директива fastcgi_redirect_errors.
8131
8132 *) Добавление: новый модификатор break в директиве rewrite позволяет
8133 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
8134 для запроса.
8135
8136
8137 Изменения в nginx 0.1.17 03.02.2005
8138
8139 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
8140 можно делать редиректы, возвращать коды ошибок и проверять переменные
8141 и рефереры. Эти директивы можно использовать внутри location.
8142 Директива redirect упразднена.
8143
8144 *) Добавление: модуль ngx_http_geo_module.
8145
8146 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
8147
8148 *) Исправление: конфигурация location с модификатором "=" могла
8149 использоваться в другом location.
8150
8151 *) Исправление: правильный тип ответа выставлялся только для запросов, у
8152 которых в расширении были только маленькие буквы.
8153
8154 *) Исправление: если для location установлен proxy_pass или
8155 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
8156 на статическую страницу, то происходил segmentation fault.
8157
8158 *) Исправление: если в проксированном ответе в заголовке "Location"
8159 передавался относительный URL, то к нему добавлялось имя хоста и
8160 слэш; ошибка появилась в 0.1.14.
8161
8162 *) Исправление: на Linux в лог не записывался текст системной ошибки.
8163
8164
8165 Изменения в nginx 0.1.16 25.01.2005
8166
8167 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
8168 выдавался завершающий chunk.
8169
8170 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
8171 директива keepalive_timeout запрещала использование keep-alive.
8172
8173 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
8174 segmentation fault.
8175
8176 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
8177 до конца.
8178
8179 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
8180 для TCP сокетов, не используются для unix domain сокетов.
8181
8182 *) Добавление: директива rewrite поддерживает перезаписывание
8183 аргументов.
8184
8185 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
8186 возвращался ответ 400; ошибка появилась в 0.1.14.
8187
8188
8189 Изменения в nginx 0.1.15 19.01.2005
8190
8191 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
8192 segmentation fault.
8193
8194 *) Исправление: корректная обработка регулярного выражения, в котором
8195 число выделенных частей не совпадает с числом подстановок.
8196
8197 *) Добавление: location, который передаётся FastCGI-серверу, может быть
8198 задан с помощью регулярного выражения.
8199
8200 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
8201 аргументами и в том виде, в котором был получен от клиента.
8202
8203 *) Исправление: для использования регулярных выражений в location нужно
8204 было собирать nginx вместе с ngx_http_rewrite_module.
8205
8206 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
8207 директивы "proxy_preserve_host on" в заголовке "Host" указывался
8208 также порт 80; ошибка появилась в 0.1.14.
8209
8210 *) Исправление: если задать одинаковые пути в параметрах
8211 автоконфигурации --http-client-body-temp-path=PATH и
8212 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
8213 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
8214
8215
8216 Изменения в nginx 0.1.14 18.01.2005
8217
8218 *) Добавление: параметры автоконфигурации
8219 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
8220 --http-fastcgi-temp-path=PATH
8221
8222 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
8223 клиента, задаётся директивой client_body_temp_path, по умолчанию
8224 <prefix>/client_body_temp.
8225
8226 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
8227 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
8228 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
8229 fastcgi_header_buffer_size, fastcgi_buffers,
8230 fastcgi_busy_buffers_size, fastcgi_temp_path,
8231 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
8232 fastcgi_next_upstream и fastcgi_x_powered_by.
8233
8234 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
8235 0.1.3.
8236
8237 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
8238 после имени хоста.
8239
8240 *) Изменение: если в URI встречался символ %3F, то он считался началом
8241 строки аргументов.
8242
8243 *) Добавление: поддержка unix domain сокетов в модуле
8244 ngx_http_proxy_module.
8245
8246 *) Добавление: директивы ssl_engine и ssl_ciphers.
8247 Спасибо Сергею Скворцову за SSL-акселератор.
8248
8249
8250 Изменения в nginx 0.1.13 21.12.2004
8251
8252 *) Добавление: директивы server_names_hash и
8253 server_names_hash_threshold.
8254
8255 *) Исправление: имена *.domain.tld в директиве server_name не работали.
8256
8257 *) Исправление: параметр лога %request_length записывал неверную длину.
8258
8259
8260 Изменения в nginx 0.1.12 06.12.2004
8261
8262 *) Добавление: параметр лога %request_length.
8263
8264 *) Исправление: при использовании /dev/poll, select и poll на
8265 платформах, где возможны ложные срабатывания указанных методов, могли
8266 быть длительные задержки при обработке запроса по keep-alive
8267 соединению. Наблюдалось по крайней мере на Solaris с использованием
8268 /dev/poll.
8269
8270 *) Исправление: директива send_lowat игнорируется на Linux, так как
8271 Linux не поддерживает опцию SO_SNDLOWAT.
8272
8273
8274 Изменения в nginx 0.1.11 02.12.2004
8275
8276 *) Добавление: директива worker_priority.
8277
8278 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
8279 влияют на передачу ответа.
8280
8281 *) Исправление: nginx не вызывал initgroups().
8282 Спасибо Андрею Ситникову и Андрею Нигматулину.
8283
8284 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
8285 байтах.
8286
8287 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
8288 каталоге есть битый symlink.
8289
8290 *) Исправление: файлы больше 4G не передавались с использованием
8291 sendfile.
8292
8293 *) Исправление: если бэкенд резолвился в несколько адресов и при
8294 ожидании от него ответа происходила ошибка, то процесс зацикливался.
8295
8296 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
8297 завершиться с сообщением "unknown cycle".
8298
8299 *) Исправление: ошибки "close() channel failed".
8300
8301 *) Исправление: автоматическое определение групп nobody и nogroup.
8302
8303 *) Исправление: директива send_lowat не работала на Linux.
8304
8305 *) Исправление: если в конфигурации не было раздела events, то
8306 происходил segmentation fault.
8307
8308 *) Исправление: nginx не собирался под OpenBSD.
8309
8310 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
8311
8312
8313 Изменения в nginx 0.1.10 26.11.2004
8314
8315 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
8316 или "%XX", то терялся последний символ в строке запроса; ошибка
8317 появилась в 0.1.9.
8318
8319 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
8320 не работало.
8321
8322
8323 Изменения в nginx 0.1.9 25.11.2004
8324
8325 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
8326 проксируемый запрос передавался без аргументов.
8327
8328 *) Исправление: при сжатии больших ответов иногда они передавались не
8329 полностью.
8330
8331 *) Исправление: не передавались файлы больше 2G на Linux,
8332 неподдерживающем sendfile64().
8333
8334 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
8335 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
8336
8337
8338 Изменения в nginx 0.1.8 20.11.2004
8339
8340 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8341 длинных имён файлов.
8342
8343 *) Добавление: модификатор "^~" в директиве location.
8344
8345 *) Добавление: директива proxy_max_temp_file_size.
8346
8347
8348 Изменения в nginx 0.1.7 12.11.2004
8349
8350 *) Исправление: при использовании sendfile, если передаваемый файл
8351 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
8352 появилась в 0.1.5.
8353
8354
8355 Изменения в nginx 0.1.6 11.11.2004
8356
8357 *) Исправление: при некоторых комбинациях директив location c
8358 регулярными выражениями использовалась конфигурация не из того
8359 location.
8360
8361
8362 Изменения в nginx 0.1.5 11.11.2004
8363
8364 *) Исправление: на Solaris и Linux могло быть очень много сообщений
8365 "recvmsg() returned not enough data".
8366
8367 *) Исправление: в режиме прокси без использования sendfile на Solaris
8368 возникала ошибка "writev() failed (22: Invalid argument)". На других
8369 платформах, не поддерживающих sendfile, процесс зацикливался.
8370
8371 *) Исправление: при использовании sendfile в режиме прокси на Solaris
8372 возникал segmentation fault.
8373
8374 *) Исправление: segmentation fault на Solaris.
8375
8376 *) Исправление: обновление исполняемого файла на лету не работало на
8377 Linux.
8378
8379 *) Исправление: в списке файлов, выдаваемом модулем
8380 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
8381 знаки процента.
8382
8383 *) Изменение: уменьшение операций копирования.
8384
8385 *) Добавление: директива userid_p3p.
8386
8387
8388 Изменения в nginx 0.1.4 26.10.2004
8389
8390 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
8391
8392
8393 Изменения в nginx 0.1.3 25.10.2004
8394
8395 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
8396
8397 *) Добавление: директива proxy_set_x_url.
8398
8399 *) Исправление: модуль проксировании мог привести к зацикливанию, если
8400 не использовался sendfile.
8401
8402
8403 Изменения в nginx 0.1.2 21.10.2004
8404
8405 *) Добавление: параметры --user=USER, --group=GROUP и
8406 --with-ld-opt=OPTIONS в configure.
8407
8408 *) Добавление: директива server_name поддерживает *.domain.tld.
8409
8410 *) Исправление: улучшена переносимость на неизвестные платформы.
8411
8412 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
8413 файл указан в командной строке; ошибка появилась в 0.1.1.
8414
8415 *) Исправление: модуль проксировании мог привести к зацикливанию, если
8416 не использовался sendfile.
8417
8418 *) Исправление: при использовании sendfile текст ответа не
8419 перекодировался согласно директивам модуля charset; ошибка появилась
8420 в 0.1.1.
8421
8422 *) Исправление: очень редкая ошибка при обработке kqueue.
8423
8424 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
8425 проксировании.
8426
8427
8428 Изменения в nginx 0.1.1 11.10.2004
8429
8430 *) Добавление: директива gzip_types.
8431
8432 *) Добавление: директива tcp_nodelay.
8433
8434 *) Добавление: директива send_lowat работает не только на платформах,
8435 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
8436 SO_SNDLOWAT.
8437
8438 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
8439
8440 *) Исправление: ошибка при переписывании заголовка "Location" при
8441 проксировании.
8442
8443 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
8444 зацикливанию.
8445
8446 *) Исправление: ошибки в модуле /dev/poll.
8447
8448 *) Исправление: при проксировании и использовании временных файлов
8449 ответы портились.
8450
8451 *) Исправление: бэкенду передавались запросы с неперекодированными
8452 символами.
8453
8454 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
8455 обязательно использовать параметр --with-poll_module.
8456
8457
8458 Изменения в nginx 0.1.0 04.10.2004
8459
8460 *) Первая публично доступная версия.
8461