comparison text/ru/CHANGES.ru-1.12 @ 1961:dd4b6c564e10

nginx-1.12.0
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 12 Apr 2017 18:02:10 +0300
parents text/ru/CHANGES.ru@0cda46808207
children 18ff9016b82f
comparison
equal deleted inserted replaced
1960:9550ea66abdd 1961:dd4b6c564e10
1
2 Изменения в nginx 1.12.0 12.04.2017
3
4 *) Стабильная ветка 1.12.x.
5
6
7 Изменения в nginx 1.11.13 04.04.2017
8
9 *) Добавление: параметр http_429 в директивах proxy_next_upstream,
10 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
11 Спасибо Piotr Sikora.
12
13 *) Исправление: в обработке ошибок выделения памяти.
14
15 *) Исправление: при использовании директив sendfile и timer_resolution
16 на Linux запросы могли зависать.
17
18 *) Исправление: при использовании с подзапросами директив sendfile и
19 aio_write запросы могли зависать.
20
21 *) Исправление: в модуле ngx_http_v2_module.
22 Спасибо Piotr Sikora.
23
24 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
25 произойти segmentation fault.
26
27 *) Исправление: запросы могли зависать при использовании с подзапросами
28 директив limit_rate, sendfile_max_chunk, limit_req или метода
29 $r->sleep() встроенного перла.
30
31 *) Исправление: в модуле ngx_http_slice_module.
32
33
34 Изменения в nginx 1.11.12 24.03.2017
35
36 *) Исправление: nginx мог нагружать процессор; ошибка появилась в
37 1.11.11.
38
39
40 Изменения в nginx 1.11.11 21.03.2017
41
42 *) Добавление: директива worker_shutdown_timeout.
43
44 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
45 Спасибо Wei-Ko Kao.
46
47 *) Исправление: при попытке установить переменную $limit_rate в пустую
48 строку в рабочем процессе мог произойти segmentation fault.
49
50 *) Исправление: директивы proxy_cache_background_update,
51 fastcgi_cache_background_update, scgi_cache_background_update и
52 uwsgi_cache_background_update могли работать некорректно, если
53 использовалась директива if.
54
55 *) Исправление: в рабочем процессе мог произойти segmentation fault,
56 если количество large_client_header_buffers в виртуальном сервере
57 отличалось от такового в сервере по умолчанию.
58
59 *) Исправление: в почтовом прокси-сервере.
60
61
62 Изменения в nginx 1.11.10 14.02.2017
63
64 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные
65 ответы будут загружены заново.
66
67 *) Добавление: поддержка расширений stale-while-revalidate и
68 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда.
69
70 *) Добавление: директивы proxy_cache_background_update,
71 fastcgi_cache_background_update, scgi_cache_background_update и
72 uwsgi_cache_background_update.
73
74 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary
75 заголовка длиной до 128 символов (вместо 42 символов в предыдущих
76 версиях).
77
78 *) Добавление: параметр build директивы server_tokens.
79 Спасибо Tom Thorogood.
80
81 *) Исправление: при обработке запросов со строкой "Expect: 100-continue"
82 в заголовке запроса в логах могли появляться сообщения "[crit]
83 SSL_write() failed".
84
85 *) Исправление: модуль ngx_http_slice_module не работал в именованных
86 location'ах.
87
88 *) Исправление: при использовании AIO после перенаправления запроса с
89 помощью X-Accel-Redirect в рабочем процессе мог произойти
90 segmentation fault.
91
92 *) Исправление: уменьшено потребление памяти для долгоживущих запросов,
93 использующих сжатие.
94
95
96 Изменения в nginx 1.11.9 24.01.2017
97
98 *) Исправление: при использовании модуля stream nginx мог нагружать
99 процессор; ошибка появилась в 1.11.5.
100
101 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере
102 можно было использовать, даже если он не был разрешён в конфигурации.
103
104 *) Исправление: при использовании директивы ssl_verify_client модуля
105 stream в рабочем процессе мог произойти segmentation fault.
106
107 *) Исправление: директива ssl_verify_client модуля stream могла не
108 работать.
109
110 *) Исправление: при исчерпании рабочим процессом свободных соединений
111 keepalive-соединения могли закрываться излишне агрессивно.
112 Спасибо Joel Cunningham.
113
114 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS
115 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8.
116
117 *) Исправление: при использовании директивы aio_write ответ мог
118 сохраняться в кэш не полностью.
119
120 *) Исправление: при использовании директивы aio_write могла происходить
121 утечка сокетов.
122
123
124 Изменения в nginx 1.11.8 27.12.2016
125
126 *) Добавление: директива absolute_redirect.
127
128 *) Добавление: параметр escape директивы log_format.
129
130 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream.
131
132 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование
133 TLS session tickets с помощью AES256 при использовании с 80-байтными
134 ключами.
135
136 *) Добавление: поддержка vim-commentary в скриптах для vim.
137 Спасибо Armin Grodon.
138
139 *) Исправление: рекурсия при получении значений переменных не
140 ограничивалась.
141
142 *) Исправление: в модуле ngx_stream_ssl_preread_module.
143
144 *) Исправление: если сервер, описанный в блоке upstream в модуле stream,
145 был признан неработающим, то после истечения fail_timeout он
146 признавался работающим только после завершения тестового соединения;
147 теперь достаточно, чтобы соединение было успешно установлено.
148
149 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio.
150
151 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0.
152
153
154 Изменения в nginx 1.11.7 13.12.2016
155
156 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки
157 проверки клиентского сертификата содержит строку с описанием ошибки,
158 например, "FAILED:certificate has expired".
159
160 *) Добавление: переменные $ssl_ciphers, $ssl_curves,
161 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
162
163 *) Добавление: параметр volatile директивы map.
164
165 *) Исправление: при сборке динамических модулей не учитывались заданные
166 для модуля зависимости.
167
168 *) Исправление: при использовании HTTP/2 и директив limit_req или
169 auth_request тело запроса могло быть повреждено; ошибка появилась в
170 1.11.0.
171
172 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
173 произойти segmentation fault; ошибка появилась в 1.11.3.
174
175 *) Исправление: в модуле ngx_http_mp4_module.
176 Спасибо Congcong Hu.
177
178 *) Исправление: в модуле ngx_http_perl_module.
179
180
181 Изменения в nginx 1.11.6 15.11.2016
182
183 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn
184 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом
185 формате доступны через переменные $ssl_client_s_dn_legacy и
186 $ssl_client_i_dn_legacy.
187
188 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь
189 располагаются не в отдельном подкаталоге для временных файлов, а в
190 том же подкаталоге, что и соответствующие файлы в кэше.
191
192 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом
193 прокси-сервере.
194 Спасибо Robert Norris.
195
196 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module.
197
198 *) Добавление: директива proxy_method поддерживает переменные.
199 Спасибо Дмитрию Лазуркину.
200
201 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module.
202
203 *) Добавление: директивы proxy_cache_max_range_offset,
204 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и
205 uwsgi_cache_max_range_offset.
206
207 *) Исправление: плавное завершение старых рабочих процессов могло
208 занимать бесконечное время при использовании HTTP/2.
209
210 *) Исправление: в модуле ngx_http_mp4_module.
211
212 *) Исправление: при проксировании WebSocket-соединений и включённом
213 кэшировании в логах могли появляться сообщения "ignore long locked
214 inactive cache entry".
215
216 *) Исправление: если во время SSL handshake с бэкендом происходил
217 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502
218 вместо 504.
219
220
221 Изменения в nginx 1.11.5 11.10.2016
222
223 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6
224 теперь собирается автоматически.
225
226 *) Изменение: теперь, если в блоке upstream не оказалось доступных
227 серверов, nginx не сбрасывает статистику ошибок всех серверов, как
228 делал ранее, а ожидает истечения fail_timeout.
229
230 *) Добавление: модуль ngx_stream_ssl_preread_module.
231
232 *) Добавление: директива server в блоке upstream поддерживает параметр
233 max_conns.
234
235 *) Добавление: параметр configure --with-compat.
236
237 *) Добавление: параметры manager_files, manager_threshold и
238 manager_sleep директив proxy_cache_path, fastcgi_cache_path,
239 scgi_cache_path и uwsgi_cache_path.
240
241 *) Исправление: при сборке perl-модуля не использовались флаги, заданные
242 с помощью параметра configure --with-ld-opt.
243
244 *) Исправление: в директиве add_after_body при использовании совместно с
245 директивой sub_filter.
246
247 *) Исправление: в переменной $realip_remote_addr.
248
249 *) Исправление: директивы dav_access, proxy_store_access,
250 fastcgi_store_access, scgi_store_access и uwsgi_store_access
251 игнорировали права, заданные для пользователя.
252
253 *) Исправление: unix domain listen-сокеты могли не наследоваться при
254 обновлении исполняемого файла на Linux.
255
256 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в
257 HTTP-методе.
258
259
260 Изменения в nginx 1.11.4 13.09.2016
261
262 *) Добавление: переменная $upstream_bytes_received.
263
264 *) Добавление: переменные $bytes_received, $session_time, $protocol,
265 $status, $upstream_addr, $upstream_bytes_sent,
266 $upstream_bytes_received, $upstream_connect_time,
267 $upstream_first_byte_time и $upstream_session_time в модуле stream.
268
269 *) Добавление: модуль ngx_stream_log_module.
270
271 *) Добавление: параметр proxy_protocol в директиве listen, переменные
272 $proxy_protocol_addr и $proxy_protocol_port в модуле stream.
273
274 *) Добавление: модуль ngx_stream_realip_module.
275
276 *) Исправление: nginx не собирался с модулем stream и модулем
277 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка
278 появилась в 1.11.3.
279
280 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
281 ошибка появилась в 1.11.2.
282
283 *) Исправление: в параметре ranges директивы geo.
284
285 *) Исправление: при использовании директив "aio threads" и sendfile мог
286 возвращаться некорректный ответ; ошибка появилась в 1.9.13.
287
288
289 Изменения в nginx 1.11.3 26.07.2016
290
291 *) Изменение: теперь accept_mutex по умолчанию выключен.
292
293 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux.
294
295 *) Добавление: модуль ngx_stream_geo_module.
296
297 *) Добавление: модуль ngx_stream_geoip_module.
298
299 *) Добавление: модуль ngx_stream_split_clients_module.
300
301 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream
302 поддерживают переменные.
303
304 *) Исправление: утечки сокетов при использовании HTTP/2.
305
306 *) Исправление: в configure.
307 Спасибо Piotr Sikora.
308
309
310 Изменения в nginx 1.11.2 05.07.2016
311
312 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и
313 SHA1; параметры configure --with-md5 и --with-sha1 упразднены.
314
315 *) Добавление: поддержка переменных в модуле stream.
316
317 *) Добавление: модуль ngx_stream_map_module.
318
319 *) Добавление: модуль ngx_stream_return_module.
320
321 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind,
322 scgi_bind и uwsgi_bind теперь можно указывать порт.
323
324 *) Добавление: теперь nginx использует опцию сокета
325 IP_BIND_ADDRESS_NO_PORT, если она доступна.
326
327 *) Исправление: при использовании HTTP/2 и директивы
328 proxy_request_buffering в рабочем процессе мог произойти segmentation
329 fault.
330
331 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на
332 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
333 если у запроса не было тела.
334
335 *) Исправление: при использовании HTTP/2 в логах могли появляться
336 сообщения "http request count is zero".
337
338 *) Исправление: при использовании директивы sub_filter могло
339 буферизироваться больше данных, чем это необходимо; проблема
340 появилась в 1.9.4.
341
342
343 Изменения в nginx 1.11.1 31.05.2016
344
345 *) Безопасность: при записи тела специально созданного запроса во
346 временный файл в рабочем процессе мог происходить segmentation fault
347 (CVE-2016-4450); ошибка появилась в 1.3.9.
348
349
350 Изменения в nginx 1.11.0 24.05.2016
351
352 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind,
353 memcached_bind, scgi_bind и uwsgi_bind.
354
355 *) Добавление: переменная $request_id.
356
357 *) Добавление: директива map поддерживает комбинации нескольких
358 переменных в качестве результирующих значений.
359
360 *) Добавление: теперь при использовании метода epoll nginx проверяет,
361 поддерживает ли ядро события EPOLLRDHUP, и соответственно
362 оптимизирует обработку соединений.
363
364 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь
365 можно указывать несколько раз для загрузки сертификатов разных типов
366 (например, RSA и ECDSA).
367
368 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью
369 директивы ssl_ecdh_curve теперь можно задать список кривых; по
370 умолчанию используется встроенный в OpenSSL список кривых.
371
372 *) Изменение: для использования DHE-шифров теперь надо явно задавать
373 файл параметров с помощью директивы ssl_dhparam.
374
375 *) Добавление: переменная $proxy_protocol_port.
376
377 *) Добавление: переменная $realip_remote_port в модуле
378 ngx_http_realip_module.
379
380 *) Добавление: модуль ngx_http_realip_module теперь позволяет
381 устанавливать не только адрес, но и порт клиента.
382
383 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от
384 согласованного в процессе SSL handshake, теперь возвращается ответ
385 "421 Misdirected Request"; это улучшает совместимость с некоторыми
386 HTTP/2-клиентами в случае использования клиентских сертификатов.
387
388 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
389 директива http2_body_preread_size позволяет указать размер буфера,
390 который будет использоваться до того, как nginx начнёт читать тело.
391
392 *) Исправление: при использовании директивы proxy_cache_bypass не
393 обновлялись закэшированные ошибочные ответы.
394
395
396 Изменения в nginx 1.9.15 19.04.2016
397
398 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли
399 возникать ошибки "recv() failed".
400
401 *) Исправление: при использовании HTTP/2 и директив limit_req или
402 auth_request при чтении тела запроса мог произойти таймаут или ошибка
403 "client violated flow control"; ошибка появилась в 1.9.14.
404
405 *) Изменение: при использовании HTTP/2 ответ мог не показываться
406 некоторыми браузерами, если тело запроса было прочитано не целиком;
407 ошибка появилась в 1.9.14.
408
409 *) Исправление: при использовании директивы "aio threads" соединения
410 могли зависать.
411 Спасибо Mindaugas Rasiukevicius.
412
413
414 Изменения в nginx 1.9.14 05.04.2016
415
416 *) Добавление: совместимость с OpenSSL 1.1.0.
417
418 *) Добавление: директивы proxy_request_buffering,
419 fastcgi_request_buffering, scgi_request_buffering и
420 uwsgi_request_buffering теперь работают при использовании HTTP/2.
421
422 *) Исправление: при использовании HTTP/2 в логах могли появляться
423 сообщения "zero size buf in output".
424
425 *) Исправление: при использовании HTTP/2 директива client_max_body_size
426 могла работать неверно.
427
428 *) Исправление: незначительных ошибок логгирования.
429
430
431 Изменения в nginx 1.9.13 29.03.2016
432
433 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по
434 умолчанию не передаются на другой сервер, если запрос уже был
435 отправлен на бэкенд; параметр non_idempotent директивы
436 proxy_next_upstream явно разрешает повторять такие запросы.
437
438 *) Добавление: модуль ngx_http_perl_module теперь можно собрать
439 динамически.
440
441 *) Добавление: поддержка UDP в модуле stream.
442
443 *) Добавление: директива aio_write.
444
445 *) Добавление: теперь cache manager следит за количеством элементов в
446 кэше и старается не допускать переполнений зоны разделяемой памяти.
447
448 *) Исправление: при использовании директив sendfile и aio с подзапросами
449 в логах могли появляться сообщения "task already active" и "second
450 aio post".
451
452 *) Исправление: при использовании кэширования в логах могли появляться
453 сообщения "zero size buf in output", если клиент закрывал соединение
454 преждевременно.
455
456 *) Исправление: при использовании кэширования соединения с клиентами
457 могли закрываться без необходимости.
458 Спасибо Justin Li.
459
460 *) Исправление: nginx мог нагружать процессор при использовании
461 директивы sendfile на Linux и Solaris, если отправляемый файл был
462 изменён в процессе отправки.
463
464 *) Исправление: при использовании директив sendfile и "aio threads"
465 соединения могли зависать.
466
467 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и
468 uwsgi_pass при использовании переменных.
469 Спасибо Piotr Sikora.
470
471 *) Исправление: в модуле ngx_http_sub_filter_module.
472
473 *) Исправление: если в закэшированном соединении к бэкенду происходила
474 ошибка, запрос передавался на другой сервер без учёта директивы
475 proxy_next_upstream.
476
477 *) Исправление: ошибки "CreateFile() failed" при создании временных
478 файлов на Windows.
479
480
481 Изменения в nginx 1.9.12 24.02.2016
482
483 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2.
484 Спасибо Владу Краснову.
485
486 *) Добавление: директива worker_cpu_affinity теперь поддерживает более
487 64 процессоров.
488
489 *) Исправление: совместимость со сторонними модулями на C++; ошибка
490 появилась в 1.9.11.
491 Спасибо Piotr Sikora.
492
493 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка
494 появилась в 1.9.11.
495
496 *) Исправление: директива "add_header ... always" с пустым значением не
497 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag.
498
499 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться
500 сообщения "called a function you should not call" и "shutdown while
501 in init".
502
503 *) Исправление: ошибочные заголовки могли логгироваться некорректно.
504
505 *) Исправление: утечки сокетов при использовании HTTP/2.
506
507 *) Исправление: в модуле ngx_http_v2_module.
508
509
510 Изменения в nginx 1.9.11 09.02.2016
511
512 *) Добавление: теперь resolver поддерживает TCP.
513
514 *) Добавление: динамические модули.
515
516 *) Исправление: при использовании HTTP/2 переменная $request_length не
517 учитывала размер заголовков запроса.
518
519 *) Исправление: в модуле ngx_http_v2_module.
520
521
522 Изменения в nginx 1.9.10 26.01.2016
523
524 *) Безопасность: при использовании директивы resolver во время обработки
525 ответов DNS-сервера могло происходить разыменование некорректного
526 адреса, что позволяло атакующему, имеющему возможность подделывать
527 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
528 процессе (CVE-2016-0742).
529
530 *) Безопасность: при использовании директивы resolver во время обработки
531 CNAME-записей могло произойти обращение к ранее освобождённой памяти,
532 что позволяло атакующему, имеющему возможность инициировать
533 преобразование произвольных имён в адреса, вызвать segmentation fault
534 в рабочем процессе, а также потенциально могло иметь другие
535 последствия (CVE-2016-0746).
536
537 *) Безопасность: при использовании директивы resolver во время обработки
538 CNAME-записей не во всех случаях проверялось ограничение на
539 максимальное количество записей в цепочке, что позволяло атакующему,
540 имеющему возможность инициировать преобразование произвольных имён в
541 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
542 (CVE-2016-0747).
543
544 *) Добавление: параметр auto директивы worker_cpu_affinity.
545
546 *) Исправление: параметр proxy_protocol директивы listen не работал с
547 IPv6 listen-сокетами.
548
549 *) Исправление: при использовании директивы keepalive соединения к
550 бэкендам могли кэшироваться некорректно.
551
552 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
553 при проксировании использовался HTTP-метод оригинального запроса.
554
555
556 Изменения в nginx 1.9.9 09.12.2015
557
558 *) Исправление: проксирование в unix domain сокеты не работало при
559 использовании переменных; ошибка появилась в 1.9.8.
560
561
562 Изменения в nginx 1.9.8 08.12.2015
563
564 *) Добавление: поддержка pwritev().
565
566 *) Добавление: директива include в блоке upstream.
567
568 *) Добавление: модуль ngx_http_slice_module.
569
570 *) Исправление: при использовании LibreSSL в рабочем процессе мог
571 произойти segmentation fault; ошибка появилась в 1.9.6.
572
573 *) Исправление: nginx мог не собираться на OS X.
574
575
576 Изменения в nginx 1.9.7 17.11.2015
577
578 *) Добавление: параметр nohostname логгирования в syslog.
579
580 *) Добавление: директива proxy_cache_convert_head.
581
582 *) Добавление: переменная $realip_remote_addr в модуле
583 ngx_http_realip_module.
584
585 *) Исправление: директива expires могла не срабатывать при использовании
586 переменных.
587
588 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
589 произойти segmentation fault; ошибка появилась в 1.9.6.
590
591 *) Исправление: если nginx был собран с модулем ngx_http_v2_module,
592 протокол HTTP/2 мог быть использован клиентом, даже если не был
593 указан параметр http2 директивы listen.
594
595 *) Исправление: в модуле ngx_http_v2_module.
596
597
598 Изменения в nginx 1.9.6 27.10.2015
599
600 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
601 произойти segmentation fault.
602 Спасибо Piotr Sikora и Denis Andzakovic.
603
604 *) Исправление: при использовании HTTP/2 переменная $server_protocol
605 была пустой.
606
607 *) Исправление: SSL-соединения к бэкендам в модуле stream могли
608 неожиданно завершаться по таймауту.
609
610 *) Исправление: при использовании различных настроек ssl_session_cache в
611 разных виртуальных серверах в рабочем процессе мог произойти
612 segmentation fault.
613
614 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась
615 в 1.9.4.
616 Спасибо Kouhei Sutou.
617
618 *) Исправление: при использовании директивы timer_resolution на Windows
619 время не обновлялось.
620
621 *) Незначительные исправления и улучшения.
622 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
623
624
625 Изменения в nginx 1.9.5 22.09.2015
626
627 *) Добавление: модуль ngx_http_v2_module (заменяет модуль
628 ngx_http_spdy_module).
629 Спасибо Dropbox и Automattic за спонсирование разработки.
630
631 *) Изменение: теперь по умолчанию директива output_buffers использует
632 два буфера.
633
634 *) Изменение: теперь nginx ограничивает максимальную вложенность
635 подзапросов, а не количество одновременных подзапросов.
636
637 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ
638 полностью.
639 Спасибо Геннадию Махомеду и Сергею Брестеру.
640
641 *) Исправление: при использовании кэша в логах могли появляться
642 сообщения "header already sent"; ошибка появилась в 1.7.5.
643
644 *) Исправление: при использовании CephFS и директивы timer_resolution на
645 Linux в логах могли появляться сообщения "writev() failed (4:
646 Interrupted system call)".
647
648 *) Исправление: в обработке ошибок конфигурации.
649 Спасибо Markus Linnala.
650
651 *) Исправление: при использовании директивы sub_filter на уровне http в
652 рабочем процессе происходил segmentation fault; ошибка появилась в
653 1.9.4.
654
655
656 Изменения в nginx 1.9.4 18.08.2015
657
658 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer
659 в модуле stream заменены директивой proxy_buffer_size.
660
661 *) Добавление: директива tcp_nodelay в модуле stream.
662
663 *) Добавление: теперь можно указать несколько директив sub_filter
664 одновременно.
665
666 *) Добавление: директива sub_filter поддерживает переменные в строке
667 поиска.
668
669 *) Изменение: тестирование конфигурации могло не работать под Linux
670 OpenVZ.
671 Спасибо Геннадию Махомеду.
672
673 *) Исправление: после переконфигурации старые рабочие процессы могли
674 сильно нагружать процессор при больших значениях worker_connections.
675
676 *) Исправление: при совместном использовании директив try_files и alias
677 внутри location'а, заданного регулярным выражением, в рабочем
678 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
679
680 *) Исправление: директива try_files внутри вложенного location'а,
681 заданного регулярным выражением, работала неправильно, если во
682 внешнем location'е использовалась директива alias.
683
684 *) Исправление: в обработке ошибок при построении хэш-таблиц.
685
686 *) Исправление: nginx не собирался с Visual Studio 2015.
687
688
689 Изменения в nginx 1.9.3 14.07.2015
690
691 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.
692
693 *) Добавление: ограничение количества соединений в модуле stream.
694
695 *) Добавление: ограничение скорости в модуле stream.
696
697 *) Исправление: директива zone в блоке upstream не работала на Windows.
698
699 *) Исправление: совместимость с LibreSSL в модуле stream.
700 Спасибо Piotr Sikora.
701
702 *) Исправление: в параметре --builddir в configure.
703 Спасибо Piotr Sikora.
704
705 *) Исправление: директива ssl_stapling_file не работала; ошибка
706 появилась в 1.9.2.
707 Спасибо Faidon Liambotis и Brandon Black.
708
709 *) Исправление: при использовании директивы ssl_stapling в рабочем
710 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
711 Спасибо Matthew Baldwin.
712
713
714 Изменения в nginx 1.9.2 16.06.2015
715
716 *) Добавление: параметр backlog директивы listen в почтовом
717 прокси-сервере и модуле stream.
718
719 *) Добавление: директивы allow и deny в модуле stream.
720
721 *) Добавление: директива proxy_bind в модуле stream.
722
723 *) Добавление: директива proxy_protocol в модуле stream.
724
725 *) Добавление: ключ -T.
726
727 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
728 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
729 uwsgi_params.
730
731 *) Исправление: параметр reuseport директивы listen в модуле stream не
732 работал.
733
734 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
735 OCSP-ответ.
736
737
738 Изменения в nginx 1.9.1 26.05.2015
739
740 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён.
741
742 *) Изменение: некоторые давно устаревшие директивы больше не
743 поддерживаются.
744
745 *) Добавление: параметр reuseport директивы listen.
746 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
747
748 *) Добавление: переменная $upstream_connect_time.
749
750 *) Исправление: в директиве hash на big-endian платформах.
751
752 *) Исправление: nginx мог не запускаться на некоторых старых версиях
753 Linux; ошибка появилась в 1.7.11.
754
755 *) Исправление: в парсинге IP-адресов.
756 Спасибо Сергею Половко.
757
758
759 Изменения в nginx 1.9.0 28.04.2015
760
761 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше
762 не поддерживаются.
763
764 *) Добавление: директива zone в блоке upstream.
765
766 *) Добавление: модуль stream.
767
768 *) Добавление: поддержка byte ranges для ответов модуля
769 ngx_http_memcached_module.
770 Спасибо Martin Mlynář.
771
772 *) Добавление: разделяемую память теперь можно использовать на версиях
773 Windows с рандомизацией адресного пространства.
774 Спасибо Сергею Брестеру.
775
776 *) Добавление: директиву error_log теперь можно использовать на уровнях
777 mail и server в почтовом прокси-сервере.
778
779 *) Исправление: параметр proxy_protocol директивы listen не работал,
780 если не был указан в первой директиве listen для данного
781 listen-сокета.
782
783
784 Изменения в nginx 1.7.12 07.04.2015
785
786 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
787 с бэкендами.
788
789 *) Добавление: теперь потоки могут использоваться для чтения заголовков
790 файлов в кэше.
791
792 *) Исправление: в директиве proxy_request_buffering.
793
794 *) Исправление: при использовании потоков на Linux в рабочем процессе
795 мог произойти segmentation fault.
796
797 *) Исправление: в обработке ошибок при использовании директивы
798 ssl_stapling.
799 Спасибо Filipe da Silva.
800
801 *) Исправление: в модуле ngx_http_spdy_module.
802
803
804 Изменения в nginx 1.7.11 24.03.2015
805
806 *) Изменение: параметр sendfile директивы aio более не нужен; теперь
807 nginx автоматически использует AIO для подгрузки данных для sendfile,
808 если одновременно используются директивы aio и sendfile.
809
810 *) Добавление: экспериментальная поддержка потоков.
811
812 *) Добавление: директивы proxy_request_buffering,
813 fastcgi_request_buffering, scgi_request_buffering и
814 uwsgi_request_buffering.
815
816 *) Добавление: экспериментальное API для обработки тела запроса.
817
818 *) Добавление: проверка клиентских SSL-сертификатов в почтовом
819 прокси-сервере.
820 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
821
822 *) Добавление: уменьшение времени запуска при использовании директивы
823 "hash ... consistent" в блоке upstream.
824 Спасибо Wai Keen Woon.
825
826 *) Добавление: отладочное логгирование в кольцевой буфер в памяти.
827
828 *) Исправление: в обработке хэш-таблиц.
829 Спасибо Chris West.
830
831 *) Исправление: в директиве proxy_cache_revalidate.
832
833 *) Исправление: SSL-соединения могли зависать, если использовался
834 отложенный accept или параметр proxy_protocol директивы listen.
835 Спасибо James Hamlin.
836
837 *) Исправление: переменная $upstream_response_time могла содержать
838 неверное значение при использовании директивы image_filter.
839
840 *) Исправление: в обработке целочисленных переполнений.
841 Спасибо Régis Leroy.
842
843 *) Исправление: при использовании LibreSSL было невозможно включить
844 поддержку SSLv3.
845
846 *) Исправление: при использовании LibreSSL в логах появлялись сообщения
847 "ignoring stale global SSL error ... called a function you should not
848 call".
849
850 *) Исправление: сертификаты, указанные в директивах
851 ssl_client_certificate и ssl_trusted_certificate, использовались для
852 автоматического построения цепочек сертификатов.
853
854
855 Изменения в nginx 1.7.10 10.02.2015
856
857 *) Добавление: параметр use_temp_path директив proxy_cache_path,
858 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
859
860 *) Добавление: переменная $upstream_header_time.
861
862 *) Изменение: теперь при переполнении диска nginx пытается писать
863 error_log'и только раз в секунду.
864
865 *) Исправление: директива try_files при тестировании каталогов не
866 игнорировала обычные файлы.
867 Спасибо Damien Tournoud.
868
869 *) Исправление: при использовании директивы sendfile на OS X возникали
870 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8.
871
872 *) Исправление: в лог могли писаться сообщения "sem_post() failed".
873
874 *) Исправление: nginx не собирался с musl libc.
875 Спасибо James Taylor.
876
877 *) Исправление: nginx не собирался на Tru64 UNIX.
878 Спасибо Goetz T. Fischer.
879
880
881 Изменения в nginx 1.7.9 23.12.2014
882
883 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
884 uwsgi_cache поддерживают переменные.
885
886 *) Добавление: директива expires поддерживает переменные.
887
888 *) Добавление: возможность загрузки секретных ключей с аппаратных
889 устройств с помощью OpenSSL engines.
890 Спасибо Дмитрию Пичулину.
891
892 *) Добавление: директива autoindex_format.
893
894 *) Исправление: ревалидация элементов кэша теперь используется только
895 для ответов с кодами 200 и 206.
896 Спасибо Piotr Sikora.
897
898 *) Исправление: строка "TE" заголовка запроса клиента передавалась на
899 бэкенд при проксировании.
900
901 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
902 uwsgi_pass могли неправильно работать внутри блоков if и
903 limit_except.
904
905 *) Исправление: директива proxy_store с параметром "on" игнорировалась,
906 если на предыдущем уровне использовалась директива proxy_store с явно
907 заданным путём к файлам.
908
909 *) Исправление: nginx не собирался с BoringSSL.
910 Спасибо Lukas Tribus.
911
912
913 Изменения в nginx 1.7.8 02.12.2014
914
915 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им
916 подобные в заголовке запроса клиента передаются бэкенду при
917 включённом кэшировании, если nginx заранее знает, что не будет
918 кэшировать ответ (например, при использовании proxy_cache_min_uses).
919
920 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
921 отправляет запрос на бэкенд без кэширования; новые директивы
922 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
923 uwsgi_cache_lock_age позволяют указать, через какое время блокировка
924 будет принудительно снята и будет сделана ещё одна попытка
925 закэшировать ответ.
926
927 *) Изменение: директива log_format теперь может использоваться только на
928 уровне http.
929
930 *) Добавление: директивы proxy_ssl_certificate,
931 proxy_ssl_certificate_key, proxy_ssl_password_file,
932 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
933 uwsgi_ssl_password_file.
934 Спасибо Piotr Sikora.
935
936 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
937 именованный location.
938 Спасибо Toshikuni Fukaya.
939
940 *) Добавление: теперь директива tcp_nodelay работает для
941 SPDY-соединений.
942
943 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
944 Спасибо Peter Wu.
945
946 *) Исправление: nginx игнорировал значение "s-maxage" в строке
947 "Cache-Control" в заголовке ответа бэкенда.
948 Спасибо Piotr Sikora.
949
950 *) Исправление: в модуле ngx_http_spdy_module.
951 Спасибо Piotr Sikora.
952
953 *) Исправление: в директиве ssl_password_file при использовании OpenSSL
954 0.9.8zc, 1.0.0o, 1.0.1j.
955
956 *) Исправление: при использовании директивы post_action в лог писались
957 сообщения "header already sent"; ошибка появилась в nginx 1.5.4.
958
959 *) Исправление: при использовании директивы "postpone_output 0" с
960 SSI-подзапросами в лог могли писаться сообщения "the http output
961 chain is empty".
962
963 *) Исправление: в директиве proxy_cache_lock при использовании
964 SSI-подзапросов.
965 Спасибо Yichun Zhang.
966
967
968 Изменения в nginx 1.7.7 28.10.2014
969
970 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
971 заголовке ответа бэкенда.
972
973 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
974 scgi_force_ranges и uwsgi_force_ranges.
975
976 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
977 scgi_limit_rate и uwsgi_limit_rate.
978
979 *) Добавление: параметр Vary директив proxy_ignore_headers,
980 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.
981
982 *) Исправление: последняя часть ответа, полученного от бэкенда при
983 небуферизированном проксировании, могла не отправляться клиенту, если
984 использовались директивы gzip или gunzip.
985
986 *) Исправление: в директиве proxy_cache_revalidate.
987 Спасибо Piotr Sikora.
988
989 *) Исправление: в обработке ошибок.
990 Спасибо Yichun Zhang и Даниилу Бондареву.
991
992 *) Исправление: в директивах proxy_next_upstream_tries и
993 proxy_next_upstream_timeout.
994 Спасибо Feng Gu.
995
996 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
997 Спасибо Kouhei Sutou.
998
999
1000 Изменения в nginx 1.7.6 30.09.2014
1001
1002 *) Изменение: устаревшая директива limit_zone больше не поддерживается.
1003
1004 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
1005 можно использовать комбинации нескольких переменных.
1006
1007 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
1008 запроса могло передаваться неправильно.
1009
1010 *) Исправление: в логгировании в syslog.
1011
1012
1013 Изменения в nginx 1.7.5 16.09.2014
1014
1015 *) Безопасность: при использовании общего для нескольких блоков server
1016 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
1017 session tickets было возможно повторно использовать SSL-сессию в
1018 контексте другого блока server (CVE-2014-3616).
1019 Спасибо Antoine Delignat-Lavaud.
1020
1021 *) Изменение: директиву stub_status теперь можно указывать без
1022 параметров.
1023
1024 *) Добавление: параметр always директивы add_header.
1025
1026 *) Добавление: директивы proxy_next_upstream_tries,
1027 proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
1028 fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
1029 memcached_next_upstream_timeout, scgi_next_upstream_tries,
1030 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
1031 uwsgi_next_upstream_timeout.
1032
1033 *) Исправление: в параметре if директивы access_log.
1034
1035 *) Исправление: в модуле ngx_http_perl_module.
1036 Спасибо Piotr Sikora.
1037
1038 *) Исправление: директива listen почтового прокси-сервера не позволяла
1039 указать более двух параметров.
1040
1041 *) Исправление: директива sub_filter не работала с заменяемой строкой из
1042 одного символа.
1043
1044 *) Исправление: запросы могли зависать, если использовался resolver и в
1045 процессе обращения к DNS-серверу происходил таймаут.
1046
1047 *) Исправление: в модуле ngx_http_spdy_module при использовании
1048 совместно с AIO.
1049
1050 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1051 если с помощью директивы set изменялись переменные "$http_...",
1052 "$sent_http_..." или "$upstream_http_...".
1053
1054 *) Исправление: в обработке ошибок выделения памяти.
1055 Спасибо Markus Linnala и Feng Gu.
1056
1057
1058 Изменения в nginx 1.7.4 05.08.2014
1059
1060 *) Безопасность: pipelined-команды не отбрасывались после команды
1061 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
1062 1.5.6.
1063 Спасибо Chris Boulton.
1064
1065 *) Изменение: экранирование символов в URI теперь использует
1066 шестнадцатеричные цифры в верхнем регистре.
1067 Спасибо Piotr Sikora.
1068
1069 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
1070 Спасибо Piotr Sikora.
1071
1072 *) Исправление: запросы могли зависать, если использовался resolver и
1073 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.
1074
1075 *) Исправление: в модуле ngx_http_spdy_module.
1076 Спасибо Piotr Sikora.
1077
1078 *) Исправление: переменная $uri могла содержать мусор при возврате
1079 ошибок с кодом 400.
1080 Спасибо Сергею Боброву.
1081
1082 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле
1083 ngx_http_dav_module.
1084 Спасибо Feng Gu.
1085
1086 *) Исправление: при логгировании ошибок в syslog мог происходить
1087 segmentation fault; ошибка появилась в 1.7.1.
1088
1089 *) Исправление: переменные $geoip_latitude, $geoip_longitude,
1090 $geoip_dma_code и $geoip_area_code могли не работать.
1091 Спасибо Yichun Zhang.
1092
1093 *) Исправление: в обработке ошибок выделения памяти.
1094 Спасибо Tatsuhiko Kubo и Piotr Sikora.
1095
1096
1097 Изменения в nginx 1.7.3 08.07.2014
1098
1099 *) Добавление: weak entity tags теперь не удаляются при изменениях
1100 ответа, а strong entity tags преобразуются в weak.
1101
1102 *) Добавление: ревалидация элементов кэша теперь, если это возможно,
1103 использует заголовок If-None-Match.
1104
1105 *) Добавление: директива ssl_password_file.
1106
1107 *) Исправление: при возврате ответа из кэша заголовок запроса
1108 If-None-Match игнорировался, если в ответе не было заголовка
1109 Last-Modified.
1110
1111 *) Исправление: сообщения "peer closed connection in SSL handshake" при
1112 соединении с бэкендами логгировались на уровне info вместо error.
1113
1114 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows.
1115
1116 *) Исправление: SPDY-соединения могли неожиданно закрываться, если
1117 использовалось кэширование.
1118
1119
1120 Изменения в nginx 1.7.2 17.06.2014
1121
1122 *) Добавление: директива hash в блоке upstream.
1123
1124 *) Добавление: дефрагментация свободных блоков разделяемой памяти.
1125 Спасибо Wandenberg Peixoto и Yichun Zhang.
1126
1127 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1128 если использовалось значение access_log по умолчанию; ошибка
1129 появилась в 1.7.0.
1130 Спасибо Piotr Sikora.
1131
1132 *) Исправление: завершающий слэш ошибочно удалялся из последнего
1133 параметра директивы try_files.
1134
1135 *) Исправление: nginx мог не собираться на OS X.
1136
1137 *) Исправление: в модуле ngx_http_spdy_module.
1138
1139
1140 Изменения в nginx 1.7.1 27.05.2014
1141
1142 *) Добавление: переменные "$upstream_cookie_...".
1143
1144 *) Добавление: переменная $ssl_client_fingerprint.
1145
1146 *) Добавление: директивы error_log и access_log теперь поддерживают
1147 логгирование в syslog.
1148
1149 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
1150 соединении.
1151
1152 *) Исправление: утечки памяти при использовании директивы
1153 "ssl_stapling".
1154 Спасибо Filipe da Silva.
1155
1156 *) Исправление: директива alias внутри location'а, заданного регулярным
1157 выражением, работала неправильно, если использовались директивы if
1158 или limit_except.
1159
1160 *) Исправление: директива charset не ставила кодировку для сжатых
1161 ответов бэкендов.
1162
1163 *) Исправление: директива proxy_pass без URI могла использовать
1164 оригинальный запрос после установки переменной $args.
1165 Спасибо Yichun Zhang.
1166
1167 *) Исправление: в работе параметра none директивы smtp_auth; ошибка
1168 появилась в 1.5.6.
1169 Спасибо Святославу Никольскому.
1170
1171 *) Исправление: при совместном использовании sub_filter и SSI ответы
1172 могли передаваться неверно.
1173
1174 *) Исправление: nginx не собирался с параметром --with-file-aio на
1175 Linux/aarch64.
1176
1177
1178 Изменения в nginx 1.7.0 24.04.2014
1179
1180 *) Добавление: проверка SSL-сертификатов бэкендов.
1181
1182 *) Добавление: поддержка SNI при работе с бэкендами по SSL.
1183
1184 *) Добавление: переменная $ssl_server_name.
1185
1186 *) Добавление: параметр if директивы access_log.
1187
1188
1189 Изменения в nginx 1.5.13 08.04.2014
1190
1191 *) Изменение: улучшена обработка хэш-таблиц; в директивах
1192 variables_hash_max_size и types_hash_bucket_size значения по
1193 умолчанию изменены на 1024 и 64 соответственно.
1194
1195 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
1196
1197 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
1198 сохранении ответов в кэш.
1199
1200 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
1201 failed: no memory" при использовании разделяемой памяти в
1202 ssl_session_cache и в модуле ngx_http_limit_req_module.
1203
1204 *) Исправление: директива underscores_in_headers не разрешала
1205 подчёркивание в первом символе заголовка.
1206 Спасибо Piotr Sikora.
1207
1208 *) Исправление: cache manager мог нагружать процессор при выходе в
1209 nginx/Windows.
1210
1211 *) Исправление: при использовании ssl_session_cache с параметром shared
1212 рабочий процесс nginx/Windows завершался аварийно.
1213
1214 *) Исправление: в модуле ngx_http_spdy_module.
1215
1216
1217 Изменения в nginx 1.5.12 18.03.2014
1218
1219 *) Безопасность: при обработке специально созданного запроса модулем
1220 ngx_http_spdy_module могло происходить переполнение буфера в рабочем
1221 процессе, что потенциально могло приводить к выполнению произвольного
1222 кода (CVE-2014-0133).
1223 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
1224 Buenos Aires, Argentina.
1225
1226 *) Добавление: параметр proxy_protocol в директивах listen и
1227 real_ip_header, переменная $proxy_protocol_addr.
1228
1229 *) Исправление: в директиве fastcgi_next_upstream.
1230 Спасибо Lucas Molas.
1231
1232
1233 Изменения в nginx 1.5.11 04.03.2014
1234
1235 *) Безопасность: при обработке специально созданного запроса модулем
1236 ngx_http_spdy_module на 32-битных платформах могла повреждаться
1237 память рабочего процесса, что потенциально могло приводить к
1238 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
1239 1.5.10.
1240 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
1241 Buenos Aires, Argentina.
1242
1243 *) Добавление: переменная $ssl_session_reused.
1244
1245 *) Исправление: директива client_max_body_size могла не работать при
1246 чтении тела запроса с использованием chunked transfer encoding;
1247 ошибка появилась в 1.3.9.
1248 Спасибо Lucas Molas.
1249
1250 *) Исправление: при проксировании WebSocket-соединений в рабочем
1251 процессе мог произойти segmentation fault.
1252
1253 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1254 если использовался модуль ngx_http_spdy_module на 32-битных
1255 платформах; ошибка появилась в 1.5.10.
1256
1257 *) Исправление: значение переменной $upstream_status могло быть
1258 неверным, если использовались директивы proxy_cache_use_stale или
1259 proxy_cache_revalidate.
1260 Спасибо Piotr Sikora.
1261
1262 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1263 если ошибки с кодом 400 с помощью директивы error_page
1264 перенаправлялись в именованный location.
1265
1266 *) Исправление: nginx/Windows не собирался с Visual Studio 2013.
1267
1268
1269 Изменения в nginx 1.5.10 04.02.2014
1270
1271 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол
1272 SPDY 3.1.
1273 Спасибо Automattic и MaxCDN за спонсирование разработки.
1274
1275 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
1276 имеющие меньшую длину, чем запрошенная перемотка.
1277
1278 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1279 если переменная $ssl_session_id использовалась при логгировании;
1280 ошибка появилась в 1.5.9.
1281
1282 *) Исправление: переменные $date_local и $date_gmt использовали неверный
1283 формат вне модуля ngx_http_ssi_filter_module.
1284
1285 *) Исправление: клиентские соединения могли сразу закрываться, если
1286 использовался отложенный accept; ошибка появилась в 1.3.15.
1287
1288 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
1289 записывались в лог в процессе обновления исполняемого файла на Linux;
1290 ошибка появилась в 1.5.8.
1291 Спасибо Piotr Sikora.
1292
1293
1294 Изменения в nginx 1.5.9 22.01.2014
1295
1296 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
1297 закодированный URI.
1298
1299 *) Добавление: директива ssl_buffer_size.
1300
1301 *) Добавление: директиву limit_rate теперь можно использовать для
1302 ограничения скорости передачи ответов клиенту в SPDY-соединениях.
1303
1304 *) Добавление: директива spdy_chunk_size.
1305
1306 *) Добавление: директива ssl_session_tickets.
1307 Спасибо Dirkjan Bussink.
1308
1309 *) Исправление: переменная $ssl_session_id содержала всю сессию в
1310 сериализованном виде вместо её идентификатора.
1311 Спасибо Ivan Ristić.
1312
1313 *) Исправление: nginx неправильно обрабатывал закодированный символ "?"
1314 в команде SSI include.
1315
1316 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
1317 при обработке методов COPY и MOVE.
1318
1319 *) Исправление: resolver не понимал доменные имена с точкой в конце.
1320 Спасибо Yichun Zhang.
1321
1322 *) Исправление: при проксировании в логах могли появляться сообщения
1323 "zero size buf in output"; ошибка появилась в 1.3.9.
1324
1325 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1326 если использовался модуль ngx_http_spdy_module.
1327
1328 *) Исправление: при использовании методов обработки соединений select,
1329 poll и /dev/poll проксируемые WebSocket-соединения могли зависать
1330 сразу после открытия.
1331
1332 *) Исправление: директива xclient почтового прокси-сервера некорректно
1333 передавала IPv6-адреса.
1334
1335
1336 Изменения в nginx 1.5.8 17.12.2013
1337
1338 *) Добавление: теперь resolver поддерживает IPv6.
1339
1340 *) Добавление: директива listen поддерживает параметр fastopen.
1341 Спасибо Mathew Rodley.
1342
1343 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
1344 Спасибо Roberto De Ioris.
1345
1346 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
1347 Спасибо Evan Miller.
1348
1349 *) Исправление: при чтении тела запроса с использованием chunked
1350 transfer encoding по SSL-соединению мог произойти таймаут.
1351
1352 *) Исправление: директива master_process работала неправильно в
1353 nginx/Windows.
1354
1355 *) Исправление: параметр setfib директивы listen мог не работать.
1356
1357 *) Исправление: в модуле ngx_http_spdy_module.
1358
1359
1360 Изменения в nginx 1.5.7 19.11.2013
1361
1362 *) Безопасность: символ, следующий за незакодированным пробелом в строке
1363 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
1364 в 0.8.41.
1365 Спасибо Ivan Fratric из Google Security Team.
1366
1367 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии
1368 пароля понижен с уровня error до info.
1369
1370 *) Добавление: директивы proxy_cache_revalidate,
1371 fastcgi_cache_revalidate, scgi_cache_revalidate и
1372 uwsgi_cache_revalidate.
1373
1374 *) Добавление: директива ssl_session_ticket_key.
1375 Спасибо Piotr Sikora.
1376
1377 *) Исправление: директива "add_header Cache-Control ''" добавляла строку
1378 заголовка ответа "Cache-Control" с пустым значением.
1379
1380 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
1381 401 при использовании директив auth_request и auth_basic.
1382 Спасибо Jan Marc Hoffmann.
1383
1384 *) Исправление: параметры accept_filter и deferred директивы listen
1385 игнорировались для listen-сокетов, создаваемых в процессе обновления
1386 исполняемого файла.
1387 Спасибо Piotr Sikora.
1388
1389 *) Исправление: часть данных, полученных от бэкенда при
1390 небуферизированном проксировании, могла не отправляться клиенту
1391 сразу, если использовались директивы gzip или gunzip.
1392 Спасибо Yichun Zhang.
1393
1394 *) Исправление: в обработке ошибок в модуле
1395 ngx_http_gunzip_filter_module.
1396
1397 *) Исправление: ответы могли зависать, если использовался модуль
1398 ngx_http_spdy_module и директива auth_request.
1399
1400 *) Исправление: утечки памяти в nginx/Windows.
1401
1402
1403 Изменения в nginx 1.5.6 01.10.2013
1404
1405 *) Добавление: директива fastcgi_buffering.
1406
1407 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
1408 Спасибо Piotr Sikora.
1409
1410 *) Добавление: оптимизация SSL handshake при использовании длинных
1411 цепочек сертификатов.
1412
1413 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
1414
1415 *) Исправление: в модуле ngx_http_auth_basic_module при использовании
1416 метода шифрования паролей "$apr1$".
1417 Спасибо Markus Linnala.
1418
1419 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
1420 мог использоваться неверный location, если для задания location'ов
1421 использовались символы разных регистров.
1422
1423 *) Исправление: автоматическое перенаправление с добавлением
1424 завершающего слэша для проксированных location'ов могло не работать.
1425
1426 *) Исправление: в почтовом прокси-сервере.
1427
1428 *) Исправление: в модуле ngx_http_spdy_module.
1429
1430
1431 Изменения в nginx 1.5.5 17.09.2013
1432
1433 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
1434 определить протокол не удалось.
1435
1436 *) Добавление: директива disable_symlinks теперь использует O_PATH на
1437 Linux.
1438
1439 *) Добавление: для определения того, что клиент закрыл соединение, при
1440 использовании метода epoll теперь используются события EPOLLRDHUP.
1441
1442 *) Исправление: в директиве valid_referers при использовании параметра
1443 server_names.
1444
1445 *) Исправление: переменная $request_time не работала в nginx/Windows.
1446
1447 *) Исправление: в директиве image_filter.
1448 Спасибо Lanshun Zhou.
1449
1450 *) Исправление: совместимость с OpenSSL 1.0.1f.
1451 Спасибо Piotr Sikora.
1452
1453
1454 Изменения в nginx 1.5.4 27.08.2013
1455
1456 *) Изменение: MIME-тип для расширения js изменён на
1457 "application/javascript"; значение по умолчанию директивы
1458 charset_types изменено соответственно.
1459
1460 *) Изменение: теперь директива image_filter с параметром size возвращает
1461 ответ с MIME-типом "application/json".
1462
1463 *) Добавление: модуль ngx_http_auth_request_module.
1464
1465 *) Исправление: на старте или во время переконфигурации мог произойти
1466 segmentation fault, если использовалась директива try_files с пустым
1467 параметром.
1468
1469 *) Исправление: утечки памяти при использовании в директивах root и
1470 auth_basic_user_file относительных путей, заданных с помощью
1471 переменных.
1472
1473 *) Исправление: директива valid_referers неправильно выполняла
1474 регулярные выражения, если заголовок Referer начинался с "https://".
1475 Спасибо Liangbin Li.
1476
1477 *) Исправление: ответы могли зависать, если использовались подзапросы и
1478 при обработке подзапроса происходила ошибка во время SSL handshake с
1479 бэкендом.
1480 Спасибо Aviram Cohen.
1481
1482 *) Исправление: в модуле ngx_http_autoindex_module.
1483
1484 *) Исправление: в модуле ngx_http_spdy_module.
1485
1486
1487 Изменения в nginx 1.5.3 30.07.2013
1488
1489 *) Изменение во внутреннем API: теперь при небуферизированной работе с
1490 бэкендами u->length по умолчанию устанавливается в -1.
1491
1492 *) Изменение: теперь при получении неполного ответа от бэкенда nginx
1493 отправляет полученную часть ответа, после чего закрывает соединение с
1494 клиентом.
1495
1496 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1497 если использовался модуль ngx_http_spdy_module и директива
1498 client_body_in_file_only.
1499
1500 *) Исправление: параметр so_keepalive директивы listen мог работать
1501 некорректно на DragonFlyBSD.
1502 Спасибо Sepherosa Ziehau.
1503
1504 *) Исправление: в модуле ngx_http_xslt_filter_module.
1505
1506 *) Исправление: в модуле ngx_http_sub_filter_module.
1507
1508
1509 Изменения в nginx 1.5.2 02.07.2013
1510
1511 *) Добавление: теперь можно использовать несколько директив error_log.
1512
1513 *) Исправление: метод $r->header_in() встроенного перла не возвращал
1514 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
1515 ошибка появилась в 1.3.14.
1516
1517 *) Исправление: в модуле ngx_http_spdy_module.
1518 Спасибо Jim Radford.
1519
1520 *) Исправление: nginx не собирался на Linux при использовании x32 ABI.
1521 Спасибо Сергею Иванцову.
1522
1523
1524 Изменения в nginx 1.5.1 04.06.2013
1525
1526 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
1527 xslt_last_modified.
1528 Спасибо Алексею Колпакову.
1529
1530 *) Добавление: параметр http_403 в директивах proxy_next_upstream,
1531 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
1532
1533 *) Добавление: директивы allow и deny теперь поддерживают unix domain
1534 сокеты.
1535
1536 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
1537 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
1538
1539 *) Исправление: в директиве proxy_set_body.
1540 Спасибо Lanshun Zhou.
1541
1542 *) Исправление: в директиве lingering_time.
1543 Спасибо Lanshun Zhou.
1544
1545 *) Исправление: параметр fail_timeout директивы server в блоке upstream
1546 мог не работать, если использовался параметр max_fails; ошибка
1547 появилась в 1.3.0.
1548
1549 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1550 если использовалась директива ssl_stapling.
1551 Спасибо Piotr Sikora.
1552
1553 *) Исправление: в почтовом прокси-сервере.
1554 Спасибо Filipe Da Silva.
1555
1556 *) Исправление: nginx/Windows мог перестать принимать соединения, если
1557 использовалось несколько рабочих процессов.
1558
1559
1560 Изменения в nginx 1.5.0 07.05.2013
1561
1562 *) Безопасность: при обработке специально созданного запроса мог
1563 перезаписываться стек рабочего процесса, что могло приводить к
1564 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
1565 1.3.9.
1566 Спасибо Greg MacManus, iSIGHT Partners Labs.
1567
1568
1569 Изменения в nginx 1.4.0 24.04.2013
1570
1571 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
1572 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
1573
1574 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
1575 ошибка появилась в 1.3.9.
1576
1577
1578 Изменения в nginx 1.3.16 16.04.2013
1579
1580 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1581 если использовались подзапросы; ошибка появилась в 1.3.9.
1582
1583 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
1584 WebSocket-соединений в unix domain сокет.
1585
1586 *) Исправление: переменная $upstream_response_length возвращала значение
1587 "0", если не использовалась буферизация.
1588 Спасибо Piotr Sikora.
1589
1590 *) Исправление: в методах обработки соединений eventport и /dev/poll.
1591
1592
1593 Изменения в nginx 1.3.15 26.03.2013
1594
1595 *) Изменение: открытие и закрытие соединения без отправки в нём
1596 каких-либо данных больше не записывается в access_log с кодом ошибки
1597 400.
1598
1599 *) Добавление: модуль ngx_http_spdy_module.
1600 Спасибо Automattic за спонсирование разработки.
1601
1602 *) Добавление: директивы limit_req_status и limit_conn_status.
1603 Спасибо Nick Marden.
1604
1605 *) Добавление: директива image_filter_interlace.
1606 Спасибо Ивану Боброву.
1607
1608 *) Добавление: переменная $connections_waiting в модуле
1609 ngx_http_stub_status_module.
1610
1611 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
1612
1613 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
1614 могло передаваться неправильно; ошибка появилась в 1.3.9.
1615 Спасибо Piotr Sikora.
1616
1617 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
1618 1.3.9.
1619
1620 *) Исправление: ответы могли зависать, если использовались подзапросы и
1621 при обработке подзапроса происходила DNS-ошибка.
1622 Спасибо Lanshun Zhou.
1623
1624 *) Исправление: в процедуре учёта использования бэкендов.
1625
1626
1627 Изменения в nginx 1.3.14 05.03.2013
1628
1629 *) Добавление: переменные $connections_active, $connections_reading и
1630 $connections_writing в модуле ngx_http_stub_status_module.
1631
1632 *) Добавление: поддержка WebSocket-соединений в модулях
1633 ngx_http_uwsgi_module и ngx_http_scgi_module.
1634
1635 *) Исправление: в обработке виртуальных серверов при использовании SNI.
1636
1637 *) Исправление: при использовании директивы "ssl_session_cache shared"
1638 новые сессии могли не сохраняться, если заканчивалось место в
1639 разделяемой памяти.
1640 Спасибо Piotr Sikora.
1641
1642 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
1643 неправильно.
1644 Спасибо Neal Poole за спонсирование разработки.
1645
1646 *) Исправление: в модуле ngx_http_mp4_module.
1647 Спасибо Gernot Vormayr.
1648
1649
1650 Изменения в nginx 1.3.13 19.02.2013
1651
1652 *) Изменение: теперь для сборки по умолчанию используется компилятор с
1653 именем "cc".
1654
1655 *) Добавление: поддержка проксирования WebSocket-соединений.
1656 Спасибо Apcera и CloudBees за спонсирование разработки.
1657
1658 *) Добавление: директива auth_basic_user_file поддерживает шифрование
1659 паролей методом "{SHA}".
1660 Спасибо Louis Opter.
1661
1662
1663 Изменения в nginx 1.3.12 05.02.2013
1664
1665 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
1666 scgi_bind и uwsgi_bind поддерживают переменные.
1667
1668 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
1669 $time_local теперь можно использовать не только в директиве
1670 log_format.
1671 Спасибо Kiril Kalchev.
1672
1673 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
1674 Спасибо Gregor Kališnik.
1675
1676 *) Исправление: директива proxy_method работала неверно, если была
1677 указана на уровне http.
1678
1679 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1680 если использовался resolver и метод poll.
1681
1682 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
1683 бэкендом при использовании методов обработки соединений select, poll
1684 и /dev/poll.
1685
1686 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
1687
1688 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
1689 1.3.9.
1690
1691 *) Исправление: в директиве fastcgi_keep_conn.
1692
1693
1694 Изменения в nginx 1.3.11 10.01.2013
1695
1696 *) Исправление: при записи в лог мог происходить segmentation fault;
1697 ошибка появилась в 1.3.10.
1698
1699 *) Исправление: директива proxy_pass не работала с IP-адресами без
1700 явного указания порта; ошибка появилась в 1.3.10.
1701
1702 *) Исправление: на старте или во время переконфигурации происходил
1703 segmentation fault, если директива keepalive была указана несколько
1704 раз в одном блоке upstream.
1705
1706 *) Исправление: параметр default директивы geo не определял значение по
1707 умолчанию для IPv6-адресов.
1708
1709
1710 Изменения в nginx 1.3.10 25.12.2012
1711
1712 *) Изменение: для указанных в конфигурационном файле доменных имён
1713 теперь используются не только IPv4, но и IPv6 адреса.
1714
1715 *) Изменение: теперь при использовании директивы include с маской на
1716 Unix-системах включаемые файлы сортируются в алфавитном порядке.
1717
1718 *) Изменение: директива add_header добавляет строки в ответы с кодом
1719 201.
1720
1721 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
1722 CIDR.
1723
1724 *) Добавление: параметры flush и gzip в директиве access_log.
1725
1726 *) Добавление: директива auth_basic поддерживает переменные.
1727
1728 *) Исправление: nginx в некоторых случаях не собирался с модулем
1729 ngx_http_perl_module.
1730
1731 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1732 если использовался модуль ngx_http_xslt_module.
1733
1734 *) Исправление: nginx мог не собираться на MacOSX.
1735 Спасибо Piotr Sikora.
1736
1737 *) Исправление: при использовании директивы limit_rate с большими
1738 значениями скорости на 32-битных системах ответ мог возвращаться не
1739 целиком.
1740 Спасибо Алексею Антропову.
1741
1742 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1743 если использовалась директива if.
1744 Спасибо Piotr Sikora.
1745
1746 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
1747 Request Entity Too Large".
1748
1749 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
1750 image_filter_sharpen могли наследоваться некорректно.
1751 Спасибо Ивану Боброву.
1752
1753 *) Исправление: при использовании директивы auth_basic под Linux могли
1754 возникать ошибки "crypt_r() failed".
1755
1756 *) Исправление: в обработке backup-серверов.
1757 Спасибо Thomas Chen.
1758
1759 *) Исправление: при проксировании HEAD-запросов мог возвращаться
1760 некорректный ответ, если использовалась директива gzip.
1761
1762
1763 Изменения в nginx 1.3.9 27.11.2012
1764
1765 *) Добавление: поддержка chunked transfer encoding при получении тела
1766 запроса.
1767
1768 *) Добавление: переменные $request_time и $msec теперь можно
1769 использовать не только в директиве log_format.
1770
1771 *) Исправление: cache manager и cache loader могли не запускаться, если
1772 использовалось более 512 listen-сокетов.
1773
1774 *) Исправление: в модуле ngx_http_dav_module.
1775
1776
1777 Изменения в nginx 1.3.8 30.10.2012
1778
1779 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
1780 Спасибо Михаилу Казанцеву и Eric O'Connor.
1781
1782 *) Добавление: переменные $bytes_sent, $connection и
1783 $connection_requests теперь можно использовать не только в директиве
1784 log_format.
1785 Спасибо Benjamin Grössing.
1786
1787 *) Добавление: параметр auto директивы worker_processes.
1788
1789 *) Исправление: сообщения "cache file ... has md5 collision".
1790
1791 *) Исправление: в модуле ngx_http_gunzip_filter_module.
1792
1793 *) Исправление: в директиве ssl_stapling.
1794
1795
1796 Изменения в nginx 1.3.7 02.10.2012
1797
1798 *) Добавление: поддержка OCSP stapling.
1799 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
1800
1801 *) Добавление: директива ssl_trusted_certificate.
1802
1803 *) Добавление: теперь resolver случайным образом меняет порядок
1804 возвращаемых закэшированных адресов.
1805 Спасибо Антону Жулину.
1806
1807 *) Исправление: совместимость с OpenSSL 0.9.7.
1808
1809
1810 Изменения в nginx 1.3.6 12.09.2012
1811
1812 *) Добавление: модуль ngx_http_gunzip_filter_module.
1813
1814 *) Добавление: директива memcached_gzip_flag.
1815
1816 *) Добавление: параметр always директивы gzip_static.
1817
1818 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
1819 Спасибо Charles Chen.
1820
1821 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
1822 использовался параметр --with-ipv6.
1823
1824
1825 Изменения в nginx 1.3.5 21.08.2012
1826
1827 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
1828 дорожки в форматах, отличных от H.264 и AAC.
1829
1830 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1831 если в директиве map в качестве значений использовались переменные.
1832
1833 *) Исправление: в рабочем процессе мог произойти segmentation fault при
1834 использовании директивы geo с параметром ranges, но без параметра
1835 default; ошибка появилась в 0.8.43.
1836 Спасибо Zhen Chen и Weibin Yao.
1837
1838 *) Исправление: в обработке параметра командной строки -p.
1839
1840 *) Исправление: в почтовом прокси-сервере.
1841
1842 *) Исправление: незначительных потенциальных ошибок.
1843 Спасибо Coverity.
1844
1845 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
1846 Спасибо HAYASHI Kentaro.
1847
1848
1849 Изменения в nginx 1.3.4 31.07.2012
1850
1851 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
1852 по умолчанию.
1853
1854 *) Добавление: поддержка компилятора Clang.
1855
1856 *) Исправление: могли создаваться лишние слушающие сокеты.
1857 Спасибо Роману Одайскому.
1858
1859 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
1860 рабочего процесса происходила ошибка.
1861 Спасибо Ricardo Villalobos Guevara.
1862
1863 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
1864 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
1865 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
1866 наследоваться некорректно.
1867
1868
1869 Изменения в nginx 1.3.3 10.07.2012
1870
1871 *) Добавление: поддержка entity tags и директива etag.
1872
1873 *) Исправление: при использовании директивы map с параметром hostnames
1874 не игнорировалась конечная точка в исходном значении.
1875
1876 *) Исправление: для обработки запроса мог использоваться неверный
1877 location, если переход в именованный location происходил после
1878 изменения URI с помощью директивы rewrite.
1879
1880
1881 Изменения в nginx 1.3.2 26.06.2012
1882
1883 *) Изменение: параметр single директивы keepalive теперь игнорируется.
1884
1885 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
1886 OpenSSL старее 1.0.0.
1887
1888 *) Добавление: директиву "ip_hash" теперь можно использовать для
1889 балансировки IPv6 клиентов.
1890
1891 *) Добавление: переменную $status теперь можно использовать не только в
1892 директиве log_format.
1893
1894 *) Исправление: при завершении рабочего процесса мог произойти
1895 segmentation fault, если использовалась директива resolver.
1896
1897 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1898 если использовался модуль ngx_http_mp4_module.
1899
1900 *) Исправление: в модуле ngx_http_mp4_module.
1901
1902 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1903 если использовались конфликтующие имена серверов с масками.
1904
1905 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
1906 сигналу SIGBUS.
1907
1908 *) Исправление: во время переконфигурации на HP-UX в лог записывался
1909 alert "sendmsg() failed (9: Bad file number)".
1910
1911
1912 Изменения в nginx 1.3.1 05.06.2012
1913
1914 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
1915 компонента URI и не разрешает URI, содержащие последовательность
1916 ":$".
1917 Спасибо Владимиру Кочеткову, Positive Research Center.
1918
1919 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
1920 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
1921
1922 *) Добавление: в директиве resolver теперь можно указывать порт и
1923 задавать IPv6-адреса DNS-серверов.
1924
1925 *) Добавление: директива least_conn в блоке upstream.
1926
1927 *) Добавление: при использовании директивы ip_hash теперь можно задавать
1928 веса серверов.
1929
1930 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1931 если использовалась директива image_filter; ошибка появилась в 1.3.0.
1932
1933 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
1934 появилась в 1.1.12.
1935
1936 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
1937 работать после переконфигурации.
1938 Спасибо Yichun Zhang.
1939
1940 *) Исправление: в модуле ngx_http_xslt_filter_module.
1941 Спасибо Kuramoto Eiji.
1942
1943 *) Исправление: утечки памяти при использовании переменной $geoip_org.
1944 Спасибо Денису Латыпову.
1945
1946 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
1947
1948
1949 Изменения в nginx 1.3.0 15.05.2012
1950
1951 *) Добавление: директива debug_connection теперь поддерживает
1952 IPv6-адреса и параметр "unix:".
1953
1954 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
1955 теперь поддерживают IPv6-адреса.
1956
1957 *) Добавление: директивы real_ip_recursive, geoip_proxy и
1958 geoip_proxy_recursive.
1959
1960 *) Добавление: параметр proxy_recursive директивы geo.
1961
1962 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1963 если использовалась директива resolver.
1964
1965 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1966 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
1967 и бэкенд возвращал некорректный ответ.
1968
1969 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1970 если использовалась директива rewrite и в новых аргументах запроса в
1971 строке замены использовались переменные.
1972
1973 *) Исправление: nginx мог нагружать процессор, если было достигнуто
1974 ограничение на количество открытых файлов.
1975
1976 *) Исправление: при использовании директивы proxy_next_upstream с
1977 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
1978 блоке upstream был хотя бы один сервер с флагом backup.
1979
1980 *) Исправление: при использовании директивы ip_hash установка параметра
1981 down директивы server могла приводить к ненужному перераспределению
1982 клиентов между бэкендами.
1983
1984 *) Исправление: утечки сокетов.
1985 Спасибо Yichun Zhang.
1986
1987 *) Исправление: в модуле ngx_http_fastcgi_module.
1988
1989
1990 Изменения в nginx 1.2.0 23.04.2012
1991
1992 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1993 если использовалась директива try_files; ошибка появилась в 1.1.19.
1994
1995 *) Исправление: ответ мог быть передан не полностью, если использовалось
1996 больше IOV_MAX буферов.
1997
1998 *) Исправление: в работе параметра crop директивы image_filter.
1999 Спасибо Maxim Bublis.
2000
2001
2002 Изменения в nginx 1.1.19 12.04.2012
2003
2004 *) Безопасность: при обработке специально созданного mp4 файла модулем
2005 ngx_http_mp4_module могли перезаписываться области памяти рабочего
2006 процесса, что могло приводить к выполнению произвольного кода
2007 (CVE-2012-2089).
2008 Спасибо Matthew Daley.
2009
2010 *) Исправление: nginx/Windows мог завершаться аварийно.
2011 Спасибо Vincent Lee.
2012
2013 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
2014 были помечены флагом backup.
2015
2016 *) Исправление: директивы allow и deny могли наследоваться некорректно,
2017 если в них использовались IPv6 адреса.
2018
2019 *) Исправление: директивы modern_browser и ancient_browser могли
2020 наследоваться некорректно.
2021
2022 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
2023
2024 *) Исправление: в модуле ngx_http_mp4_module.
2025
2026
2027 Изменения в nginx 1.1.18 28.03.2012
2028
2029 *) Изменение: теперь keepalive соединения не запрещены для Safari по
2030 умолчанию.
2031
2032 *) Добавление: переменная $connection_requests.
2033
2034 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
2035 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
2036
2037 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
2038
2039 *) Добавление: директивы xslt_param и xslt_string_param.
2040 Спасибо Samuel Behan.
2041
2042 *) Исправление: в configure.
2043 Спасибо Piotr Sikora.
2044
2045 *) Исправление: в модуле ngx_http_xslt_filter_module.
2046
2047 *) Исправление: nginx не собирался на Debian GNU/Hurd.
2048
2049
2050 Изменения в nginx 1.1.17 15.03.2012
2051
2052 *) Безопасность: содержимое ранее освобождённой памяти могло быть
2053 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
2054 Спасибо Matthew Daley.
2055
2056 *) Исправление: при использовании встроенного перла из SSI.
2057 Спасибо Matthew Daley.
2058
2059 *) Исправление: в модуле ngx_http_uwsgi_module.
2060
2061
2062 Изменения в nginx 1.1.16 29.02.2012
2063
2064 *) Изменение: ограничение на количество одновременных подзапросов
2065 поднято до 200.
2066
2067 *) Добавление: параметр from в директиве disable_symlinks.
2068
2069 *) Добавление: директивы return и error_page теперь могут использоваться
2070 для возврата перенаправлений с кодом 307.
2071
2072 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2073 если использовалась директива resolver и на глобальном уровне не была
2074 задана директива error_log.
2075 Спасибо Роману Арутюняну.
2076
2077 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2078 если использовались директивы "proxy_http_version 1.1" или
2079 "fastcgi_keep_conn on".
2080
2081 *) Исправление: утечек памяти.
2082 Спасибо Lanshun Zhou.
2083
2084 *) Исправление: в директиве disable_symlinks.
2085
2086 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
2087 некорректно; ошибка появилась в 1.0.1.
2088
2089 *) Исправление: nginx не собирался компилятором icc 12.1.
2090
2091 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
2092 1.1.15.
2093
2094
2095 Изменения в nginx 1.1.15 15.02.2012
2096
2097 *) Добавление: директива disable_symlinks.
2098
2099 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
2100
2101 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
2102 prematurely closed connection" вместо "upstream sent too big header".
2103 Спасибо Feibo Li.
2104
2105 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2106 использовался параметр --with-openssl.
2107
2108 *) Исправление: количество внутренних перенаправлений в именованные
2109 location'ы не ограничивалось.
2110
2111 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
2112 ошибкам в модуле ngx_http_gzip_filter_module.
2113
2114 *) Исправление: при использовании директивы proxy_store с
2115 SSI-подзапросами временные файлы могли не удаляться.
2116
2117 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
2118 $args) возвращали старое пустое закэшированное значение.
2119
2120 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2121 если одновременно создавалось слишком много SSI-подзапросов; ошибка
2122 появилась в 0.7.25.
2123
2124
2125 Изменения в nginx 1.1.14 30.01.2012
2126
2127 *) Добавление: теперь можно указать несколько ограничений limit_req
2128 одновременно.
2129
2130 *) Исправление: в обработке ошибок при соединении с бэкендом.
2131 Спасибо Piotr Sikora.
2132
2133 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
2134
2135 *) Исправление: в инициализации библиотеки OpenSSL.
2136
2137 *) Исправление: директивы proxy_redirect могли наследоваться
2138 некорректно.
2139
2140 *) Исправление: утечки памяти при переконфигурации, если использовалась
2141 директива pcre_jit.
2142
2143
2144 Изменения в nginx 1.1.13 16.01.2012
2145
2146 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
2147
2148 *) Исправление: параметры директивы limit_req наследовались некорректно;
2149 ошибка появилась в 1.1.12.
2150
2151 *) Исправление: директива proxy_redirect некорректно обрабатывала
2152 заголовок Refresh при использовании регулярных выражений.
2153
2154 *) Исправление: директива proxy_cache_use_stale с параметром error не
2155 возвращала ответ из кэша, если все бэкенды были признаны
2156 неработающими.
2157
2158 *) Исправление: директива worker_cpu_affinity могла не работать.
2159
2160 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
2161 1.1.12.
2162
2163 *) Исправление: в модуле ngx_http_mp4_module.
2164
2165
2166 Изменения в nginx 1.1.12 26.12.2011
2167
2168 *) Изменение: после перенаправления запроса с помощью директивы
2169 error_page директива proxy_pass без URI теперь использует изменённый
2170 URI.
2171 Спасибо Lanshun Zhou.
2172
2173 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
2174 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
2175
2176 *) Добавление: директива pcre_jit.
2177
2178 *) Добавление: SSI команда if поддерживает выделения в регулярных
2179 выражениях.
2180
2181 *) Исправление: SSI команда if не работала внутри команды block.
2182
2183 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
2184 могли не работать.
2185
2186 *) Исправление: директива limit_rate не позволяла передавать на полной
2187 скорости, даже если был указан очень большой лимит.
2188
2189 *) Исправление: директива sendfile_max_chunk не работала, если
2190 использовалась директива limit_rate.
2191
2192 *) Исправление: если в директиве proxy_pass использовались переменные и
2193 не был указан URI, всегда использовался URI исходного запроса.
2194
2195 *) Исправление: после перенаправления запроса с помощью директивы
2196 try_files директива proxy_pass без URI могла использовать URI
2197 исходного запроса.
2198 Спасибо Lanshun Zhou.
2199
2200 *) Исправление: в модуле ngx_http_scgi_module.
2201
2202 *) Исправление: в модуле ngx_http_mp4_module.
2203
2204 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
2205
2206
2207 Изменения в nginx 1.1.11 12.12.2011
2208
2209 *) Добавление: параметр so_keepalive в директиве listen.
2210 Спасибо Всеволоду Стахову.
2211
2212 *) Добавление: параметр if_not_empty в директивах
2213 fastcgi/scgi/uwsgi_param.
2214
2215 *) Добавление: переменная $https.
2216
2217 *) Добавление: директива proxy_redirect поддерживает переменные в первом
2218 параметре.
2219
2220 *) Добавление: директива proxy_redirect поддерживает регулярные
2221 выражения.
2222
2223 *) Исправление: переменная $sent_http_cache_control могла содержать
2224 неверное значение при использовании директивы expires.
2225 Спасибо Yichun Zhang.
2226
2227 *) Исправление: директива read_ahead могла не работать при использовании
2228 совместно с try_files и open_file_cache.
2229
2230 *) Исправление: если в параметре inactive директивы proxy_cache_path
2231 было указано малое время, в рабочем процессе мог произойти
2232 segmentation fault.
2233
2234 *) Исправление: ответы из кэша могли зависать.
2235
2236
2237 Изменения в nginx 1.1.10 30.11.2011
2238
2239 *) Исправление: при использовании AIO на Linux в рабочем процессе
2240 происходил segmentation fault; ошибка появилась в 1.1.9.
2241
2242
2243 Изменения в nginx 1.1.9 28.11.2011
2244
2245 *) Изменение: теперь двойные кавычки экранируется при выводе
2246 SSI-командой echo.
2247 Спасибо Зауру Абасмирзоеву.
2248
2249 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
2250 используется TTL, возвращённый DNS-сервером.
2251 Спасибо Кириллу Коринскому.
2252
2253 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
2254 завершался аварийно.
2255
2256 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2257 если использовалось SNI; ошибка появилась в 1.1.2.
2258
2259 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
2260 Спасибо Александру Усову.
2261
2262 *) Исправление: сигнал SIGWINCH переставал работать после первого
2263 обновления исполняемого файла; ошибка появилась в 1.1.1.
2264
2265 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
2266 заголовку Content-Length, не кэширутся.
2267
2268 *) Исправление: в директиве scgi_param при использовании составных
2269 параметров.
2270
2271 *) Исправление: в методе epoll.
2272 Спасибо Yichun Zhang.
2273
2274 *) Исправление: в модуле ngx_http_flv_module.
2275 Спасибо Piotr Sikora.
2276
2277 *) Исправление: в модуле ngx_http_mp4_module.
2278
2279 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
2280 заголовке Host.
2281
2282 *) Исправление: директивы add_header и expires не работали для ответов с
2283 кодом 206, если запрос проксировался.
2284
2285 *) Исправление: nginx не собирался на FreeBSD 10.
2286
2287 *) Исправление: nginx не собирался на AIX.
2288
2289
2290 Изменения в nginx 1.1.8 14.11.2011
2291
2292 *) Изменение: модуль ngx_http_limit_zone_module переименован в
2293 ngx_http_limit_conn_module.
2294
2295 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
2296 новым синтаксисом.
2297
2298 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
2299 уровне.
2300
2301 *) Добавление: директива image_filter_sharpen.
2302
2303 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2304 если resolver получил большой DNS-ответ.
2305 Спасибо Ben Hawkes.
2306
2307 *) Исправление: в вычислении ключа для кэширования, если использовалась
2308 внутренняя реализация MD5; ошибка появилась в 1.0.4.
2309
2310 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
2311 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
2312 или не передаваться при выключенном кэшировании, если кэширование
2313 было включено в другой части конфигурации.
2314
2315 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
2316 "Content-Length" в заголовке ответа, использовался аргумент start.
2317 Спасибо Piotr Sikora.
2318
2319
2320 Изменения в nginx 1.1.7 31.10.2011
2321
2322 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
2323 Спасибо Кириллу Коринскому.
2324
2325 *) Исправление: на старте или во время переконфигурации происходил
2326 segmentation fault, если директива ssl использовалась на уровне http
2327 и не был указан ssl_certificate.
2328
2329 *) Исправление: уменьшено потребление памяти при проксировании больших
2330 файлов, если они буферизировались на диск.
2331
2332 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2333 если использовалась директива "proxy_http_version 1.1".
2334
2335 *) Исправление: в директиве "expires @time".
2336
2337
2338 Изменения в nginx 1.1.6 17.10.2011
2339
2340 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
2341 именованный location контексты модулей очищаются.
2342 По запросу Yichun Zhang.
2343
2344 *) Изменение: теперь если сервер, описанный в блоке upstream, был
2345 признан неработающим, то после истечения fail_timeout на него будет
2346 отправлен только один запрос; сервер будет считаться работающим, если
2347 успешно ответит на этот запрос.
2348
2349 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
2350 \xXX.
2351
2352 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
2353 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
2354 X-Accel-Charset.
2355
2356 *) Добавление: уменьшение потребления памяти при использовании SSL.
2357
2358 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
2359 Спасибо Алексею Куцу.
2360
2361 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
2362 уровне server, применялись повторно, если для запроса не находилось
2363 ни одного location'а.
2364
2365 *) Исправление: при использовании "aio sendfile" могла происходить
2366 утечка сокетов.
2367
2368 *) Исправление: при использовании файлового AIO соединения с быстрыми
2369 клиентами могли быть закрыты по истечению send_timeout.
2370
2371 *) Исправление: в модуле ngx_http_autoindex_module.
2372
2373 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
2374 32-битных платформах.
2375
2376
2377 Изменения в nginx 1.1.5 05.10.2011
2378
2379 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
2380 Спасибо Peter Smit.
2381
2382 *) Исправление: при использовании proxy_cache_bypass могли быть
2383 закэшированы некэшируемые ответы.
2384 Спасибо John Ferlito.
2385
2386 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
2387 HTTP/1.1.
2388
2389 *) Исправление: закэшированные ответы с пустым телом возвращались
2390 некорректно; ошибка появилась в 0.8.31.
2391
2392 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
2393 некорректны; ошибка появилась в 0.8.32.
2394
2395 *) Исправление: в директиве return.
2396
2397 *) Исправление: при использовании директивы "ssl_session_cache builtin"
2398 происходил segmentation fault; ошибка появилась в 1.1.1.
2399
2400
2401 Изменения в nginx 1.1.4 20.09.2011
2402
2403 *) Добавление: модуль ngx_http_upstream_keepalive.
2404
2405 *) Добавление: директива proxy_http_version.
2406
2407 *) Добавление: директива fastcgi_keep_conn.
2408
2409 *) Добавление: директива worker_aio_requests.
2410
2411 *) Исправление: если nginx был собран с файловым AIO, он не мог
2412 запускаться на Linux без поддержки AIO.
2413
2414 *) Исправление: в обработке ошибок при работе с Linux AIO.
2415 Спасибо Hagai Avrahami.
2416
2417 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
2418
2419 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
2420 MP4-атом co64.
2421
2422
2423 Изменения в nginx 1.1.3 14.09.2011
2424
2425 *) Добавление: модуль ngx_http_mp4_module.
2426
2427 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
2428
2429 *) Исправление: open_file_cache не обновлял информацию о файле, если
2430 файл был изменён не атомарно.
2431
2432 *) Исправление: nginx не собирался на MacOSX 10.7.
2433
2434
2435 Изменения в nginx 1.1.2 05.09.2011
2436
2437 *) Изменение: теперь, если суммарный размер всех диапазонов больше
2438 размера исходного ответа, то nginx возвращает только исходный ответ,
2439 не обрабатывая диапазоны.
2440
2441 *) Добавление: директива max_ranges.
2442
2443 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
2444 ssl_prefer_server_cipher могли работать некорректно, если
2445 использовался SNI.
2446
2447 *) Исправление: в директивах proxy/fastcgi/scgi/
2448 uwsgi_ignore_client_abort.
2449
2450
2451 Изменения в nginx 1.1.1 22.08.2011
2452
2453 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
2454 число файлов, указанное в параметре load_files, либо работает не
2455 дольше времени, указанного в параметре loader_threshold.
2456
2457 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
2458
2459 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
2460 на Solaris.
2461 Спасибо Денису Иванову.
2462
2463 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
2464
2465 *) Исправление: nginx не собирался на Linux 3.0.
2466
2467 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
2468 появилась в 1.1.0.
2469
2470 *) Исправление: обработка тела запроса могла быть неверной, если клиент
2471 использовал pipelining.
2472
2473 *) Исправление: в директиве request_body_in_single_buf.
2474
2475 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
2476 при использовании SSL-соединения с бэкендом.
2477
2478 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
2479 были помечены флагом down.
2480
2481 *) Исправление: при переконфигурации мог произойти segmentation fault,
2482 если в предыдущей конфигурации был определён, но не использовался
2483 ssl_session_cache.
2484
2485 *) Исправление: при использовании большого количества backup-серверов в
2486 рабочем процессе мог произойти segmentation fault.
2487
2488 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
2489 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
2490 произойти segmentation fault; ошибка появилась в 0.8.40.
2491
2492
2493 Изменения в nginx 1.1.0 01.08.2011
2494
2495 *) Добавление: уменьшение времени работы загрузчика кэша.
2496
2497 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
2498 директив proxy/fastcgi/scgi/uwsgi_cache_path.
2499
2500 *) Добавление: уменьшение времени загрузки конфигураций с большим
2501 количеством HTTPS серверов.
2502
2503 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
2504 Спасибо Adrian Kotelba.
2505
2506 *) Добавление: директива lingering_close.
2507 Спасибо Максиму Дунину.
2508
2509 *) Исправление: закрытия соединения для pipelined-запросов.
2510 Спасибо Максиму Дунину.
2511
2512 *) Исправление: nginx не запрещал сжатие при получении значения
2513 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
2514
2515 *) Исправление: таймаута при небуферизированном проксировании.
2516 Спасибо Максиму Дунину.
2517
2518 *) Исправление: утечки памяти при использовании переменных в директиве
2519 proxy_pass при работе с бэкендом по HTTPS.
2520 Спасибо Максиму Дунину.
2521
2522 *) Исправление: в проверке параметра директивы proxy_pass, заданного
2523 переменными.
2524 Спасибо Lanshun Zhou.
2525
2526 *) Исправление: SSL не работал на QNX.
2527 Спасибо Максиму Дунину.
2528
2529 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
2530 --with-debug.
2531
2532
2533 Изменения в nginx 1.0.5 19.07.2011
2534
2535 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
2536 "HIGH:!aNULL:!MD5".
2537 Спасибо Rob Stradling.
2538
2539 *) Добавление: директивы referer_hash_max_size и
2540 referer_hash_bucket_size.
2541 Спасибо Witold Filipczyk.
2542
2543 *) Добавление: переменная $uid_reset.
2544
2545 *) Исправление: при использовании кэширования в рабочем процессе мог
2546 произойти segmentation fault.
2547 Спасибо Lanshun Zhou.
2548
2549 *) Исправление: при использовании кэширования рабочие процессы могли
2550 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
2551 Спасибо Максиму Дунину.
2552
2553 *) Исправление: сообщения "stalled cache updating".
2554 Спасибо Максиму Дунину.
2555
2556
2557 Изменения в nginx 1.0.4 01.06.2011
2558
2559 *) Изменение: теперь в регулярных выражениях в директиве map можно
2560 задать чувствительность к регистру с помощью префиксов "~" и "~*".
2561
2562 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
2563 на Linux.
2564 Спасибо Денису Латыпову.
2565
2566 *) Исправление: сообщения "stalled cache updating".
2567
2568 *) Исправление: nginx не собирался с параметром
2569 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
2570
2571
2572 Изменения в nginx 1.0.3 25.05.2011
2573
2574 *) Добавление: директива auth_basic_user_file поддерживает шифрование
2575 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
2576 Спасибо Максиму Дунину.
2577
2578 *) Добавление: директива geoip_org и переменная $geoip_org.
2579 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
2580
2581 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
2582 поддерживают адреса IPv4, отображённые на IPv6 адреса.
2583
2584 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
2585 рабочем процессе происходил segmentation fault, если директивы access
2586 или deny были определены только для адресов IPv6; ошибка появилась в
2587 0.8.22.
2588
2589 *) Исправление: закэшированный ответ мог быть испорчен, если значения
2590 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
2591 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
2592
2593
2594 Изменения в nginx 1.0.2 10.05.2011
2595
2596 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
2597
2598 *) Исправление: в работе параметра rotate директивы image_filter.
2599 Спасибо Adam Bocim.
2600
2601 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
2602
2603
2604 Изменения в nginx 1.0.1 03.05.2011
2605
2606 *) Изменение: теперь директива split_clients использует алгоритм
2607 MurmurHash2 из-за лучшего распределения.
2608 Спасибо Олегу Мамонтову.
2609
2610 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
2611 ложными значениями.
2612 Спасибо Максиму Дунину.
2613
2614 *) Изменение: теперь по умолчанию nginx использует значение 511 для
2615 listen backlog на Linux.
2616
2617 *) Добавление: переменные $upstream_... можно использовать в SSI и
2618 перловом модулях.
2619
2620 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
2621 Спасибо Олегу Мамонтову.
2622
2623 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
2624 segmentation fault; ошибка появилась в 0.8.22.
2625 Спасибо Максиму Дунину.
2626
2627 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
2628
2629 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
2630 появилась в 0.9.3.
2631 Спасибо Dagobert Michelsen.
2632
2633 *) Исправление: переменная $request_time имела неверные значения, если
2634 использовались подзапросы; ошибка появилась в 0.8.47.
2635 Спасибо Игорю А. Валькову.
2636
2637
2638 Изменения в nginx 1.0.0 12.04.2011
2639
2640 *) Исправление: cache manager мог нагружать процессор после
2641 переконфигурации.
2642 Спасибо Максиму Дунину.
2643
2644 *) Исправление: директива "image_filter crop" неправильно работала в
2645 сочетании с "image_filter rotate 180".
2646
2647 *) Исправление: директива "satisfy any" запрещала выдачу
2648 пользовательской страницы для 401 кода.
2649
2650
2651 Изменения в nginx 0.9.7 04.04.2011
2652
2653 *) Добавление: теперь соединения в состоянии keepalive могут быть
2654 закрыты преждевременно, если у воркера нет свободных соединений.
2655 Спасибо Максиму Дунину.
2656
2657 *) Добавление: параметр rotate директивы image_filter.
2658 Спасибо Adam Bocim.
2659
2660 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
2661 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
2662 upstream.
2663
2664
2665 Изменения в nginx 0.9.6 21.03.2011
2666
2667 *) Добавление: директива map поддерживает регулярные выражения в
2668 качестве значения первого параметра.
2669
2670 *) Добавление: переменная $time_iso8601 для access_log.
2671 Спасибо Michael Lustfield.
2672
2673
2674 Изменения в nginx 0.9.5 21.02.2011
2675
2676 *) Изменение: теперь по умолчанию nginx использует значение -1 для
2677 listen backlog на Linux.
2678 Спасибо Андрею Нигматулину.
2679
2680 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
2681 Спасибо Денису Латыпову.
2682
2683 *) Исправление: исправление в умолчательной директиве proxy_redirect,
2684 если в директиве proxy_pass не был описан URI.
2685 Спасибо Максиму Дунину.
2686
2687 *) Исправление: директива error_page не работала с нестандартными кодами
2688 ошибок; ошибка появилась в 0.8.53.
2689 Спасибо Максиму Дунину.
2690
2691
2692 Изменения в nginx 0.9.4 21.01.2011
2693
2694 *) Добавление: директива server_name поддерживает переменную $hostname.
2695
2696 *) Добавление: 494 код для ошибки "Request Header Too Large".
2697
2698
2699 Изменения в nginx 0.9.3 13.12.2010
2700
2701 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
2702 то выделения в регулярных выражениях в директиве server_name не
2703 работали.
2704
2705 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
2706 0.9.0.
2707
2708
2709 Изменения в nginx 0.9.2 06.12.2010
2710
2711 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
2712 запроса клиента.
2713
2714 *) Изменение: использование accept(), если accept4() не реализован;
2715 ошибка появилась в 0.9.0.
2716
2717 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
2718
2719 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
2720 Спасибо Максиму Дунину.
2721
2722
2723 Изменения в nginx 0.9.1 30.11.2010
2724
2725 *) Исправление: директивы вида "return CODE message" не работали; ошибка
2726 появилась в 0.9.0.
2727
2728
2729 Изменения в nginx 0.9.0 29.11.2010
2730
2731 *) Добавление: директива keepalive_disable.
2732
2733 *) Добавление: директива map поддерживает переменные в качестве значения
2734 определяемой переменной.
2735
2736 *) Добавление: директива map поддерживает пустые строки в качестве
2737 значения первого параметра.
2738
2739 *) Добавление: директива map поддерживает выражения в первом параметре.
2740
2741 *) Добавление: страница руководства nginx(8).
2742 Спасибо Сергею Осокину.
2743
2744 *) Добавление: поддержка accept4() в Linux.
2745 Спасибо Simon Liu.
2746
2747 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
2748 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
2749
2750 *) Исправление: при использовании директивы auth_basic в рабочем
2751 процессе мог произойти segmentation fault.
2752 Спасибо Михаилу Лалетину.
2753
2754 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
2755 появилась в 0.8.42.
2756
2757
2758 Изменения в nginx 0.8.53 18.10.2010
2759
2760 *) Добавление: теперь директива error_page позволяет менять код статуса
2761 у редиректа.
2762
2763 *) Добавление: директива gzip_disable поддерживает специальную маску
2764 degradation.
2765
2766 *) Исправление: при использовании файлового AIO могла происходить утечка
2767 сокетов.
2768 Спасибо Максиму Дунину.
2769
2770 *) Исправление: если в первом сервере не была описана директива listen и
2771 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
2772 становился следующий сервер с директивой listen; ошибка появилась в
2773 0.8.21.
2774
2775
2776 Изменения в nginx 0.8.52 28.09.2010
2777
2778 *) Исправление: nginx использовал режим SSL для listen сокета, если для
2779 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
2780
2781
2782 Изменения в nginx 0.8.51 27.09.2010
2783
2784 *) Изменение: директива secure_link_expires упразднена.
2785
2786 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
2787 alert на error.
2788
2789 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
2790 несколько раз.
2791
2792
2793 Изменения в nginx 0.8.50 02.09.2010
2794
2795 *) Добавление: директивы secure_link, secure_link_md5 и
2796 secure_link_expires модуля ngx_http_secure_link_module.
2797
2798 *) Добавление: ключ -q.
2799 Спасибо Геннадию Махомеду.
2800
2801 *) Исправление: при использовании кэширования рабочие процессы и могли
2802 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
2803
2804 *) Исправление: в директиве gzip_disable.
2805 Спасибо Derrick Petzold.
2806
2807 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
2808 reopen, reload процессу, запущенному в другой сессии.
2809
2810
2811 Изменения в nginx 0.8.49 09.08.2010
2812
2813 *) Добавление: директива image_filter_jpeg_quality поддерживает
2814 переменные.
2815
2816 *) Исправление: при использовании переменной $geoip_region_name в
2817 рабочем процессе мог произойти segmentation fault; ошибка появилась в
2818 0.8.48.
2819
2820 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
2821 следующего запроса; ошибка появилась в 0.8.48.
2822
2823
2824 Изменения в nginx 0.8.48 03.08.2010
2825
2826 *) Изменение: теперь по умолчанию директива server_name имеет значение
2827 пустое имя "".
2828 Спасибо Геннадию Махомеду.
2829
2830 *) Изменение: теперь по умолчанию директива server_name_in_redirect
2831 имеет значение off.
2832
2833 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
2834 $geoip_region_name.
2835 Спасибо Christine McGonagle.
2836
2837 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
2838 scgi_pass не наследовались в блоки limit_except.
2839
2840 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
2841 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
2842 появилась в 0.8.46.
2843
2844 *) Исправление: директива fastcgi_split_path_info неверно использовала
2845 выделения, если в выделения попадала только часть URI.
2846 Спасибо Юрию Тарадаю и Frank Enderle.
2847
2848 *) Исправление: директива rewrite не экранировала символ ";" при
2849 копировании из URI в аргументы.
2850 Спасибо Daisuke Murase.
2851
2852 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
2853 если изображение было больше размера image_filter_buffer.
2854
2855
2856 Изменения в nginx 0.8.47 28.07.2010
2857
2858 *) Исправление: переменная $request_time имела неверные значения для
2859 подзапросов.
2860
2861 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
2862
2863 *) Исправление: если использовался параметр max_size, то cache manager
2864 мог зациклиться; ошибка появилась в 0.8.46.
2865
2866
2867 Изменения в nginx 0.8.46 19.07.2010
2868
2869 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
2870 и scgi_no_cache теперь влияют только на сохранение закэшированного
2871 ответа.
2872
2873 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
2874 uwsgi_cache_bypass и scgi_cache_bypass.
2875
2876 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
2877 ошибки работы с бэкендом: память освобождалась только по истечении
2878 времени неактивности или при недостатке памяти.
2879
2880
2881 Изменения в nginx 0.8.45 13.07.2010
2882
2883 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
2884 Спасибо Laurence Rowe.
2885
2886 *) Исправление: ответ SSI модуля мог передаваться не полностью после
2887 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
2888 Спасибо Максиму Дунину.
2889
2890 *) Исправление: директива listen не поддерживала параметр setfib=0.
2891
2892
2893 Изменения в nginx 0.8.44 05.07.2010
2894
2895 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
2896 заголовке которых есть строка "Set-Cookie".
2897
2898 *) Добавление: директива listen поддерживает параметр setfib.
2899 Спасибо Андрею Филонову.
2900
2901 *) Исправление: директива sub_filter могла изменять регистр букв при
2902 частичном совпадении.
2903
2904 *) Исправление: совместимость с HP/UX.
2905
2906 *) Исправление: совместимость с компилятором AIX xlC_r.
2907
2908 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
2909 запросы.
2910 Спасибо Miroslaw Jaworski.
2911
2912
2913 Изменения в nginx 0.8.43 30.06.2010
2914
2915 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
2916
2917 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
2918 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
2919 0.8.42.
2920
2921 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
2922 переконфигурации.
2923 Спасибо Максиму Дунину.
2924
2925 *) Исправление: переменную $uid_set можно использовать на любой стадии
2926 обработки запроса.
2927
2928
2929 Изменения в nginx 0.8.42 21.06.2010
2930
2931 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
2932 выражениями, если запрос полностью совпал с location'ом, заданным
2933 строкой префикса. Предыдущее поведение появилось в 0.7.1.
2934
2935 *) Добавление: модуль ngx_http_scgi_module.
2936 Спасибо Manlio Perillo.
2937
2938 *) Добавление: в директиве return можно добавлять текст ответа.
2939
2940
2941 Изменения в nginx 0.8.41 15.06.2010
2942
2943 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
2944 при запросе файла с неверной кодировкой UTF-8.
2945
2946 *) Изменение: теперь nginx разрешает использовать пробелы в строке
2947 запроса.
2948
2949 *) Исправление: директива proxy_redirect неправильно изменяла строку
2950 "Refresh" в заголовке ответа бэкенда.
2951 Спасибо Андрею Андрееву и Максиму Согину.
2952
2953 *) Исправление: nginx не поддерживал путь без имени хоста в строке
2954 "Destination" в заголовке запроса.
2955
2956
2957 Изменения в nginx 0.8.40 07.06.2010
2958
2959 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
2960 умолчанию.
2961 Спасибо Jose Antonio Vazquez Gonzalez.
2962
2963 *) Добавление: модуль ngx_http_uwsgi_module.
2964 Спасибо Roberto De Ioris.
2965
2966 *) Добавление: директива fastcgi_param со значением, начинающимся со
2967 строки "HTTP_", изменяет строку заголовка в запросе клиента.
2968
2969 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
2970 заголовке запроса клиента передавались FastCGI-серверу при
2971 кэшировании.
2972
2973 *) Исправление: listen unix domain сокет нельзя было изменить во время
2974 переконфигурации.
2975 Спасибо Максиму Дунину.
2976
2977
2978 Изменения в nginx 0.8.39 31.05.2010
2979
2980 *) Исправление: наследуемая директива alias неправильно работала во
2981 вложенном location'е.
2982
2983 *) Исправление: в комбинации директив alias с переменными и try_files;
2984
2985 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
2986 время обновления без перерыва.
2987 Спасибо Максиму Дунину.
2988
2989
2990 Изменения в nginx 0.8.38 24.05.2010
2991
2992 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
2993
2994 *) Добавление: теперь при использовании переменной $scheme в директиве
2995 rewrite автоматически делается редирект.
2996 Спасибо Piotr Sikora.
2997
2998 *) Исправление: теперь задержки в директиве limit_req соответствует
2999 описанному алгоритму.
3000 Спасибо Максиму Дунину.
3001
3002 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
3003 перловом модулях.
3004
3005
3006 Изменения в nginx 0.8.37 17.05.2010
3007
3008 *) Добавление: модуль ngx_http_split_clients_module.
3009
3010 *) Добавление: директива map поддерживает ключи больше 255 символов.
3011
3012 *) Исправление: nginx игнорировал значения "private" и "no-store" в
3013 строке "Cache-Control" в заголовке ответа бэкенда.
3014
3015 *) Исправление: параметр stub в SSI-директиве include не использовался,
3016 если пустой ответ имел код 200.
3017
3018 *) Исправление: если проксированный или FastCGI запрос внутренне
3019 перенаправлялся в другой проксированный или FastCGI location, то в
3020 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3021 0.8.33.
3022 Спасибо Yichun Zhang.
3023
3024 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
3025 таймаута.
3026 Спасибо Alan Batie.
3027
3028
3029 Изменения в nginx 0.8.36 22.04.2010
3030
3031 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
3032 методы DELETE, COPY и MOVE для симлинков.
3033
3034 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
3035 основном запросе значения переменных $query_string, $arg_... и им
3036 подобных.
3037
3038 *) Исправление: значение переменной повторно экранировалось после
3039 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
3040
3041 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
3042 Спасибо Vicente Aguilar и Максиму Дунину.
3043
3044 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
3045 Спасибо Максиму Дунину.
3046
3047 *) Исправление: nginx не собирался с параметром --without-http-cache;
3048 ошибка появилась в 0.8.35.
3049
3050
3051 Изменения в nginx 0.8.35 01.04.2010
3052
3053 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
3054
3055 *) Добавление: директива chunked_transfer_encoding.
3056
3057 *) Исправление: символ "&" при копировании в аргументы в правилах
3058 rewrite не экранировался.
3059
3060 *) Исправление: nginx мог завершаться аварийно во время обработки
3061 сигнала или при использовании директивы timer_resolution на
3062 платформах, не поддерживающих методы kqueue или eventport.
3063 Спасибо George Xie и Максиму Дунину.
3064
3065 *) Исправление: если временные файлы и постоянное место хранения
3066 располагались на разных файловых системах, то у постоянных файлов
3067 время изменения было неверным.
3068 Спасибо Максиму Дунину.
3069
3070 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
3071 "memcached sent invalid trailer".
3072 Спасибо Максиму Дунину.
3073
3074 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
3075 текстов.
3076 Спасибо Максиму Дунину.
3077
3078 *) Исправление: в рабочем процессе происходил segmentation fault, если
3079 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
3080 появилась в 0.8.34.
3081 Спасибо Максиму Дунину.
3082
3083
3084 Изменения в nginx 0.8.34 03.03.2010
3085
3086 *) Исправление: nginx не поддерживал все шифры, используемые в
3087 клиентских сертификатах.
3088 Спасибо Иннокентию Еникееву.
3089
3090 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
3091 ответом было много вывода в stderr.
3092
3093 *) Исправление: nginx не поддерживал HTTPS-рефереры.
3094
3095 *) Исправление: nginx/Windows мог не находить файлы, если путь в
3096 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
3097
3098 *) Исправление: переменная $date_local выдавала неверное время, если
3099 использовался формат "%s".
3100 Спасибо Максиму Дунину.
3101
3102 *) Исправление: если ssl_session_cache не был установлен или установлен
3103 в none, то при проверке клиентского сертификаты могла происходить
3104 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
3105
3106 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
3107 диапазон включал в себя одну и более сетей размером /16 и не
3108 начинался на границе сети размером /16.
3109
3110 *) Исправление: блок, используемый в параметре stub в SSI-директиве
3111 include, выводился с MIME-типом "text/plain".
3112
3113 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
3114
3115
3116 Изменения в nginx 0.8.33 01.02.2010
3117
3118 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
3119 Спасибо Dan Crowley, Core Security Technologies.
3120
3121 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
3122 Спасибо Dan Crowley, Core Security Technologies.
3123
3124 *) Изменение: теперь keepalive соединения после запросов POST не
3125 запрещаются для MSIE 7.0+.
3126 Спасибо Adam Lounds.
3127
3128 *) Изменение: теперь keepalive соединения запрещены для Safari.
3129 Спасибо Joshua Sierles.
3130
3131 *) Исправление: если проксированный или FastCGI запрос внутренне
3132 перенаправлялся в другой проксированный или FastCGI location, то
3133 переменная $upstream_response_time могла иметь ненормально большое
3134 значение; ошибка появилась в 0.8.7.
3135
3136 *) Исправление: в рабочем процессе мог произойти segmentation fault при
3137 отбрасывания тела запроса; ошибка появилась в 0.8.11.
3138
3139
3140 Изменения в nginx 0.8.32 11.01.2010
3141
3142 *) Исправление: ошибки при использовании кодировки UTF-8 в
3143 ngx_http_autoindex_module.
3144 Спасибо Максиму Дунину.
3145
3146 *) Исправление: именованные выделения в регулярных выражениях работали
3147 только для двух переменных.
3148 Спасибо Максиму Дунину.
3149
3150 *) Исправление: теперь в строке заголовка запроса "Host" используется
3151 имя "localhost", если в директиве auth_http указан unix domain сокет.
3152 Спасибо Максиму Дунину.
3153
3154 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
3155 ответов.
3156 Спасибо Julian Reich.
3157
3158 *) Исправление: если директива "expires modified" выставляла дату в
3159 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
3160 отрицательное число.
3161 Спасибо Алексею Капранову.
3162
3163
3164 Изменения в nginx 0.8.31 23.12.2009
3165
3166 *) Добавление: теперь директива error_page может перенаправлять ответы
3167 со статусом 301 и 302.
3168
3169 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
3170 $geoip_longitude.
3171 Спасибо Arvind Sundararajan.
3172
3173 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
3174 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
3175
3176 *) Исправление: nginx закрывал соединение при запросе закэшированного
3177 ответа с пустым телом.
3178 Спасибо Piotr Sikora.
3179
3180 *) Исправление: nginx мог не собираться gcc 4.x при использовании
3181 оптимизации -O2 и выше.
3182 Спасибо Максиму Дунину и Денису Латыпову.
3183
3184 *) Исправление: регулярные выражения в location всегда тестировались с
3185 учётом регистра; ошибка появилась в 0.8.25.
3186
3187 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
3188 проксируемого запроса была строка "If-None-Match".
3189 Спасибо Tim Dettrick и David Kostal.
3190
3191 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
3192 перезаписи уже существующего файла.
3193
3194
3195 Изменения в nginx 0.8.30 15.12.2009
3196
3197 *) Изменение: теперь по умолчанию размер буфера директивы
3198 large_client_header_buffers равен 8K.
3199 Спасибо Andrew Cholakian.
3200
3201 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
3202
3203 *) Исправление: nginx/Windows пытался дважды переименовать временный
3204 файл при перезаписи уже существующего файла.
3205
3206 *) Исправление: ошибки double free or corruption, возникающей, если имя
3207 хоста не было найдено; ошибка появилась в 0.8.22.
3208 Спасибо Константину Свисту.
3209
3210 *) Исправление: в использовании libatomic на некоторых платформах.
3211 Спасибо W-Mark Kubacki.
3212
3213
3214 Изменения в nginx 0.8.29 30.11.2009
3215
3216 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
3217 ответа "009".
3218
3219 *) Добавление: директивы addition_types, charset_types, gzip_types,
3220 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
3221
3222 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
3223 Спасибо W-Mark Kubacki.
3224
3225 *) Добавление: параметр --with-libatomic[=DIR] в configure.
3226 Спасибо W-Mark Kubacki.
3227
3228 *) Исправление: listen unix domain сокет имели ограниченные права
3229 доступа.
3230
3231 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
3232 обрабатывались.
3233
3234 *) Исправление: именованные выделения в регулярных выражениях, заданные
3235 как "?P<...>", не работали в директиве server_name.
3236 Спасибо Максиму Дунину.
3237
3238
3239 Изменения в nginx 0.8.28 23.11.2009
3240
3241 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
3242 появилась в 0.8.25.
3243
3244
3245 Изменения в nginx 0.8.27 17.11.2009
3246
3247 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
3248 появилась в 0.8.25.
3249
3250
3251 Изменения в nginx 0.8.26 16.11.2009
3252
3253 *) Исправление: ошибки при использовании выделений в директиве rewrite;
3254 ошибка появилась в 0.8.25.
3255
3256 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
3257 появилась в 0.8.25.
3258
3259
3260 Изменения в nginx 0.8.25 16.11.2009
3261
3262 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
3263 не найдена с помощью метода $r->variable().
3264
3265 *) Добавление: модуль ngx_http_degradation_module.
3266
3267 *) Добавление: именованные выделения в регулярных выражениях.
3268
3269 *) Добавление: теперь при использовании переменных в директиве
3270 proxy_pass не требуется задавать URI.
3271
3272 *) Добавление: теперь директива msie_padding работает и для Chrome.
3273
3274 *) Исправление: в рабочем процессе происходил segmentation fault при
3275 недостатке памяти; ошибка появилась в 0.8.18.
3276
3277 *) Исправление: nginx передавал сжатые ответы клиентам, не
3278 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
3279 ошибка появилась в 0.8.16.
3280
3281
3282 Изменения в nginx 0.8.24 11.11.2009
3283
3284 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
3285 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
3286
3287 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
3288 появилась в 0.8.23.
3289
3290 *) Исправление: параметр "unix:" в директиве set_real_ip_from
3291 неправильно наследовался с предыдущего уровня.
3292
3293 *) Исправление: в resolver'е при определении пустого имени.
3294
3295
3296 Изменения в nginx 0.8.23 11.11.2009
3297
3298 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
3299 Спасибо Максиму Дунину.
3300
3301 *) Исправление: listen unix domain сокет не наследовался во время
3302 обновления без перерыва.
3303
3304 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
3305 без ещё одной директивы с любым IP-адресом.
3306
3307 *) Исправление: segmentation fault и зацикливания в resolver'е.
3308
3309 *) Исправление: в resolver'е.
3310 Спасибо Артёму Бохану.
3311
3312
3313 Изменения в nginx 0.8.22 03.11.2009
3314
3315 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
3316
3317 *) Добавление: директивы access и deny поддерживают IPv6.
3318
3319 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
3320 заголовках запроса.
3321
3322 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
3323
3324 *) Исправление: nginx не удалял unix domain сокет после тестирования
3325 конфигурации.
3326
3327 *) Исправление: nginx удалял unix domain сокет во время обновления без
3328 перерыва.
3329
3330 *) Исправление: оператор "!-x" не работал.
3331 Спасибо Максиму Дунину.
3332
3333 *) Исправление: в рабочем процессе мог произойти segmentation fault при
3334 использовании limit_rate в HTTPS сервере.
3335 Спасибо Максиму Дунину.
3336
3337 *) Исправление: при записи в лог переменной $limit_rate в рабочем
3338 процессе происходил segmentation fault.
3339 Спасибо Максиму Дунину.
3340
3341 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3342 если внутри блока server не было директивы listen; ошибка появилась в
3343 0.8.21.
3344
3345
3346 Изменения в nginx 0.8.21 26.10.2009
3347
3348 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
3349
3350 *) Добавление: директива listen модуля HTTP поддерживает unix domain
3351 сокеты.
3352 Спасибо Hongli Lai.
3353
3354 *) Добавление: параметр "default_server" в директиве listen.
3355
3356 *) Добавление: теперь параметр "default" не обязателен для установки
3357 параметров listen-сокета.
3358
3359 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
3360 платформах;
3361
3362 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
3363
3364
3365 Изменения в nginx 0.8.20 14.10.2009
3366
3367 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3368 "HIGH:!ADH:!MD5".
3369
3370 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
3371 слэш для линков на каталоги; ошибка появилась в 0.7.15.
3372
3373 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
3374 --error-log-path; ошибка появилась в 0.7.53.
3375
3376 *) Исправление: nginx не считал запятую разделителем в строке
3377 "Cache-Control" в заголовке ответа бэкенда.
3378
3379 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
3380 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
3381 не имел достаточно прав для работы с каталогами верхнего уровня.
3382
3383 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
3384 FastCGI-сервера не скрывались при кэшировании, если не использовались
3385 директивы fastcgi_hide_header с любыми параметрами.
3386
3387 *) Исправление: nginx неверно считал размер кэша на диске.
3388
3389
3390 Изменения в nginx 0.8.19 06.10.2009
3391
3392 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
3393
3394 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3395 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
3396
3397 *) Исправление: директива limit_req не работала; ошибка появилась в
3398 0.8.18.
3399
3400
3401 Изменения в nginx 0.8.18 06.10.2009
3402
3403 *) Добавление: директива read_ahead.
3404
3405 *) Добавление: теперь можно использовать несколько директив
3406 perl_modules.
3407
3408 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
3409
3410 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
3411 bucket.
3412 Спасибо Максиму Дунину.
3413
3414 *) Исправление: nginx не работал на Linux/sparc.
3415 Спасибо Marcus Ramberg.
3416
3417 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
3418 ответе на запрос MKCOL.
3419 Спасибо Xie Zhenye.
3420
3421 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
3422 появилась в 0.8.11.
3423
3424 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
3425
3426
3427 Изменения в nginx 0.8.17 28.09.2009
3428
3429 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
3430 в заголовке запроса.
3431
3432 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
3433
3434 *) Добавление: переменная $ssl_session_id.
3435
3436 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
3437
3438
3439 Изменения в nginx 0.8.16 22.09.2009
3440
3441 *) Добавление: директива image_filter_transparency.
3442
3443 *) Исправление: директива "addition_types" была неверно названа
3444 "addtion_types".
3445
3446 *) Исправление: порчи кэша resolver'а.
3447 Спасибо Matthew Dempsky.
3448
3449 *) Исправление: утечки памяти в resolver'е.
3450 Спасибо Matthew Dempsky.
3451
3452 *) Исправление: неверная строка запроса в переменной $request
3453 записывалась в access_log только при использовании error_log на
3454 уровне info или debug.
3455
3456 *) Исправление: в поддержке альфа-канала PNG в модуле
3457 ngx_http_image_filter_module.
3458
3459 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
3460 заголовок ответа, если обе директивы gzip_static и gzip_vary были
3461 включены.
3462
3463 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
3464 nginx/Windows.
3465
3466 *) Исправление: ошибки при использовании post_action; ошибка появилась в
3467 0.8.11.
3468 Спасибо Игорю Артемьеву.
3469
3470
3471 Изменения в nginx 0.8.15 14.09.2009
3472
3473 *) Безопасность: при обработке специально созданного запроса в рабочем
3474 процессе мог произойти segmentation fault.
3475 Спасибо Chris Ries.
3476
3477 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
3478 .domain-some.tld, то имя .sub.domain.tld попадало под маску
3479 .domain.tld.
3480
3481 *) Исправление: в поддержке прозрачности в модуле
3482 ngx_http_image_filter_module.
3483
3484 *) Исправление: в файловом AIO.
3485
3486 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
3487 появилась в 0.8.11.
3488
3489 *) Исправление: ошибки при использовании встроенного перла; ошибка
3490 появилась в 0.8.11.
3491
3492
3493 Изменения в nginx 0.8.14 07.09.2009
3494
3495 *) Исправление: устаревший закэшированный запрос мог залипнуть в
3496 состоянии "UPDATING".
3497
3498 *) Исправление: при использовании error_log на уровне info или debug в
3499 рабочем процессе мог произойти segmentation fault.
3500 Спасибо Сергею Боченкову.
3501
3502 *) Исправление: ошибки при использовании встроенного перла; ошибка
3503 появилась в 0.8.11.
3504
3505 *) Исправление: директива error_page не перенаправляла ошибку 413;
3506 ошибка появилась в 0.6.10.
3507
3508
3509 Изменения в nginx 0.8.13 31.08.2009
3510
3511 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
3512
3513 *) Исправление: nginx не собирался без параметра --with-file-aio на
3514 FreeBSD; ошибка появилась в 0.8.12.
3515
3516
3517 Изменения в nginx 0.8.12 31.08.2009
3518
3519 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
3520
3521 *) Исправление: ошибки при использовании try_files; ошибка появилась в
3522 0.8.11.
3523
3524 *) Исправление: ошибки при использовании memcached; ошибка появилась в
3525 0.8.11.
3526
3527
3528 Изменения в nginx 0.8.11 28.08.2009
3529
3530 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
3531 для MSIE 6.0 SV1.
3532
3533 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
3534
3535 *) Добавление: директива directio_alignment.
3536
3537
3538 Изменения в nginx 0.8.10 24.08.2009
3539
3540 *) Исправление: утечек памяти при использовании базы GeoIP City.
3541
3542 *) Исправление: ошибки при копировании временных файлов в постоянное
3543 место хранения; ошибка появилась в 0.8.9.
3544
3545
3546 Изменения в nginx 0.8.9 17.08.2009
3547
3548 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
3549 процесс; это должно улучшить обработку больших кэшей.
3550
3551 *) Добавление: теперь временные файлы и постоянное место хранения могут
3552 располагаться на разных файловых системах.
3553
3554
3555 Изменения в nginx 0.8.8 10.08.2009
3556
3557 *) Исправление: в обработке заголовков ответа, разделённых в
3558 FastCGI-записях.
3559
3560 *) Исправление: если запрос обрабатывался в двух проксированных или
3561 FastCGI location'ах и в первом из них использовалось кэширование, то
3562 в рабочем процессе происходил segmentation fault; ошибка появилась в
3563 0.8.7.
3564
3565
3566 Изменения в nginx 0.8.7 27.07.2009
3567
3568 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
3569
3570 *) Изменение: параметр ask директивы ssl_verify_client изменён на
3571 параметр optional и теперь он проверяет клиентский сертификат, если
3572 он был предложен.
3573 Спасибо Brice Figureau.
3574
3575 *) Добавление: переменная $ssl_client_verify.
3576 Спасибо Brice Figureau.
3577
3578 *) Добавление: директива ssl_crl.
3579 Спасибо Brice Figureau.
3580
3581 *) Добавление: параметр proxy директивы geo.
3582
3583 *) Добавление: директива image_filter поддерживает переменные для
3584 задания размеров.
3585
3586 *) Исправление: использование переменной $ssl_client_cert портило
3587 память; ошибка появилась в 0.7.7.
3588 Спасибо Сергею Журавлёву.
3589
3590 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
3591 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
3592 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
3593 Спасибо Максиму Дунину.
3594
3595 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
3596 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
3597 Спасибо Максиму Дунину.
3598
3599 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
3600 ответы в подзапросах; ошибка появилась в 0.8.5.
3601
3602
3603 Изменения в nginx 0.8.6 20.07.2009
3604
3605 *) Добавление: модуль ngx_http_geoip_module.
3606
3607 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
3608 document" для правильного документа.
3609 Спасибо Kuramoto Eiji.
3610
3611 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
3612 location'ов, заданных регулярным выражением, теперь всегда делается
3613 сравнение без учёта регистра символов.
3614
3615 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
3616 Спасибо Hugo Leisink.
3617
3618 *) Исправление: имя файла указанного в --conf-path игнорировалось при
3619 установке; ошибка появилась в 0.6.6.
3620 Спасибо Максиму Дунину.
3621
3622
3623 Изменения в nginx 0.8.5 13.07.2009
3624
3625 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
3626
3627 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
3628 для неверных имени/пароля возвращалась 500-ая ошибка.
3629
3630 *) Исправление: ответы модуля ngx_http_perl_module не работали в
3631 подзапросах.
3632
3633 *) Исправление: в модуле ngx_http_limit_req_module.
3634 Спасибо Максиму Дунину.
3635
3636
3637 Изменения в nginx 0.8.4 22.06.2009
3638
3639 *) Исправление: nginx не собирался с параметром --without-http-cache;
3640 ошибка появилась в 0.8.3.
3641
3642
3643 Изменения в nginx 0.8.3 19.06.2009
3644
3645 *) Добавление: переменная $upstream_cache_status.
3646
3647 *) Исправление: nginx не собирался на MacOSX 10.6.
3648
3649 *) Исправление: nginx не собирался с параметром --without-http-cache;
3650 ошибка появилась в 0.8.2.
3651
3652 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
3653 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
3654 в рабочем процессе происходил segmentation fault.
3655 Спасибо Евгению Мычло.
3656
3657
3658 Изменения в nginx 0.8.2 15.06.2009
3659
3660 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
3661 на старте.
3662
3663 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
3664 долго; ошибка появилась в 0.7.4.
3665
3666
3667 Изменения в nginx 0.8.1 08.06.2009
3668
3669 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
3670 fastcgi_cache_use_stale.
3671
3672 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3673 заголовке запроса клиента передавались бэкенду при кэшировании, если
3674 не использовалась директива proxy_set_header с любыми параметрами.
3675
3676 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
3677 не скрывались при кэшировании, если не использовались директивы
3678 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
3679
3680 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
3681 GIF87a.
3682 Спасибо Денису Ильиных.
3683
3684 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
3685 появилась в 0.7.56.
3686
3687
3688 Изменения в nginx 0.8.0 02.06.2009
3689
3690 *) Добавление: директива keepalive_requests.
3691
3692 *) Добавление: директива limit_rate_after.
3693 Спасибо Ivan Debnar.
3694
3695 *) Исправление: XSLT-фильтр не работал в подзапросах.
3696
3697 *) Исправление: обработке относительных путей в nginx/Windows.
3698
3699 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
3700 fastcgi_cache в nginx/Windows.
3701
3702 *) Исправление: в обработке ошибок выделения памяти.
3703 Спасибо Максиму Дунину и Кириллу Коринскому.
3704
3705
3706 Изменения в nginx 0.7.59 25.05.2009
3707
3708 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
3709
3710 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
3711 Спасибо Максиму Дунину.
3712
3713 *) Исправление: при использовании переменной $request_body в рабочем
3714 процессе происходил segmentation fault, если в запросе не было тела;
3715 ошибка появилась в 0.7.58.
3716
3717 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
3718 ошибка появилась в 0.7.56.
3719
3720 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
3721 обрабатывались SSI-, charset- и gzip-фильтрами.
3722
3723 *) Исправление: директива charset не ставила кодировку для ответов
3724 модуля ngx_http_gzip_static_module.
3725
3726
3727 Изменения в nginx 0.7.58 18.05.2009
3728
3729 *) Добавление: директива listen почтового прокси-сервера поддерживает
3730 IPv6.
3731
3732 *) Добавление: директива image_filter_jpeg_quality.
3733
3734 *) Добавление: директива client_body_in_single_buffer.
3735
3736 *) Добавление: переменная $request_body.
3737
3738 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
3739 файлов, содержащих символ ":".
3740
3741 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
3742 0.7.53.
3743 Спасибо Денису Латыпову.
3744
3745
3746 Изменения в nginx 0.7.57 12.05.2009
3747
3748 *) Исправление: при перенаправлении ошибок модуля
3749 ngx_http_image_filter_module в именованный location в рабочем
3750 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
3751
3752
3753 Изменения в nginx 0.7.56 11.05.2009
3754
3755 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
3756 HTTP.
3757
3758 *) Исправление: в модуле ngx_http_image_filter_module.
3759
3760
3761 Изменения в nginx 0.7.55 06.05.2009
3762
3763 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
3764 fastcgi_cache_use_stale не работали.
3765
3766 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
3767 заголовка.
3768
3769 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
3770 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
3771
3772 *) Исправление: при использовании директивы debug_connection в рабочем
3773 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
3774
3775 *) Исправление: в сборке модуля ngx_http_image_filter_module.
3776
3777 *) Исправление: файлы больше 2G не передавались с использованием
3778 $r->sendfile.
3779 Спасибо Максиму Дунину.
3780
3781
3782 Изменения в nginx 0.7.54 01.05.2009
3783
3784 *) Добавление: модуль ngx_http_image_filter_module.
3785
3786 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
3787
3788 *) Исправление: при использовании переменных "open_file_cache_errors on"
3789 в рабочем процессе мог произойти segmentation fault; ошибка появилась
3790 в 0.7.53.
3791
3792 *) Исправление: директива "port_in_redirect off" не работала; ошибка
3793 появилась в 0.7.39.
3794
3795 *) Исправление: улучшение обработки ошибок метода select.
3796
3797 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
3798
3799 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
3800 ошибка появилась в 0.7.53.
3801
3802
3803 Изменения в nginx 0.7.53 27.04.2009
3804
3805 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
3806 самого начала работы.
3807
3808 *) Добавление: теперь ошибки и предупреждения при старте записываются в
3809 error_log и выводятся на stderr.
3810
3811 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
3812 как префикс каталог, в котором он был запущен.
3813
3814 *) Добавление: ключ -p.
3815
3816 *) Добавление: ключ -s на Unix-платформах.
3817
3818 *) Добавление: ключи -? и -h.
3819 Спасибо Jerome Loyet.
3820
3821 *) Добавление: теперь ключи можно задавать в сжатой форме.
3822
3823 *) Исправление: nginx/Windows не работал, если файл конфигурации был
3824 задан ключом -c.
3825
3826 *) Исправление: при использовании директив proxy_store, fastcgi_store,
3827 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
3828 Спасибо Максиму Дунину.
3829
3830 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
3831 почтового прокси-сервера передавалось неверное значение; ошибка
3832 появилась в 0.7.34.
3833 Спасибо Simon Lecaille.
3834
3835 *) Исправление: при логгировании на Linux не писались текстовые описания
3836 системных ошибок; ошибка появилась в 0.7.45.
3837
3838 *) Исправление: директива fastcgi_cache_min_uses не работала.
3839 Спасибо Андрею Воробьёву.
3840
3841
3842 Изменения в nginx 0.7.52 20.04.2009
3843
3844 *) Добавление: первая бинарная версия под Windows.
3845
3846 *) Исправление: корректная обработка метода HEAD при кэшировании.
3847
3848 *) Исправление: корректная обработка строк "If-Modified-Since",
3849 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
3850
3851 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
3852 заголовке ответа для закэшированных ответов.
3853
3854 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
3855 perl поддерживал потоки, то при выходе основного процесса могла
3856 выдаваться ошибка "panic: MUTEX_LOCK".
3857
3858 *) Исправление: nginx не собирался с параметром --without-http-cache;
3859 ошибка появилась в 0.7.48.
3860
3861 *) Исправление: nginx не собирался на платформах, отличных от i386,
3862 amd64, sparc и ppc; ошибка появилась в 0.7.42.
3863
3864
3865 Изменения в nginx 0.7.51 12.04.2009
3866
3867 *) Добавление: директива try_files поддерживает код ответа в последнем
3868 параметре.
3869
3870 *) Добавление: теперь в директиве return можно использовать любой код
3871 ответа.
3872
3873 *) Исправление: директива error_page делала внешний редирект без строки
3874 запроса; ошибка появилась в 0.7.44.
3875
3876 *) Исправление: если сервера слушали на нескольких явно описанных
3877 адресах, то виртуальные сервера могли не работать; ошибка появилась в
3878 0.7.39.
3879
3880
3881 Изменения в nginx 0.7.50 06.04.2009
3882
3883 *) Исправление: переменные $arg_... не работали; ошибка появилась в
3884 0.7.49.
3885
3886
3887 Изменения в nginx 0.7.49 06.04.2009
3888
3889 *) Исправление: при использовании переменных $arg_... в рабочем процессе
3890 мог произойти segmentation fault; ошибка появилась в 0.7.48.
3891
3892
3893 Изменения в nginx 0.7.48 06.04.2009
3894
3895 *) Добавление: директива proxy_cache_key.
3896
3897 *) Исправление: теперь nginx учитывает при кэшировании строки
3898 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
3899 бэкенда.
3900
3901 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
3902
3903 *) Исправление: директива fastcgi_cache_key не наследовалась.
3904
3905 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
3906 Спасибо Максиму Дунину.
3907
3908 *) Исправление: nginx не собирался с библиотекой uclibc.
3909 Спасибо Timothy Redaelli.
3910
3911 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
3912 в 0.7.46.
3913
3914
3915 Изменения в nginx 0.7.47 01.04.2009
3916
3917 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
3918 ошибка появилась в 0.7.46.
3919
3920 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
3921
3922 *) Исправление: если использовался параметр max_size, то cache manager
3923 мог удалить весь кэш; ошибка появилась в 0.7.46.
3924
3925 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
3926 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
3927 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
3928 в 0.7.46.
3929
3930 *) Исправление: в рабочем процессе мог произойти segmentation fault при
3931 перенаправлении запроса проксированному или FastCGI-серверу с помощью
3932 error_page или try_files; ошибка появилась в 0.7.44.
3933
3934
3935 Изменения в nginx 0.7.46 30.03.2009
3936
3937 *) Исправление: архив предыдущего релиза был неверным.
3938
3939
3940 Изменения в nginx 0.7.45 30.03.2009
3941
3942 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
3943 задавать на разных уровнях.
3944
3945 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
3946
3947 *) Добавление: параметр max_size в директиве proxy_cache_path.
3948
3949 *) Добавление: предварительная поддержка кэширования в модуле
3950 ngx_http_fastcgi_module.
3951
3952 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
3953 указываются названия директивы и зоны.
3954
3955 *) Исправление: директива "add_header last-modified ''" не удаляла в
3956 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
3957
3958 *) Исправление: в директиве auth_basic_user_file не работал
3959 относительный путь, заданный строкой без переменных; ошибка появилась
3960 в 0.7.44.
3961 Спасибо Jerome Loyet.
3962
3963 *) Исправление: в директиве alias, заданной переменными без ссылок на
3964 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
3965
3966
3967 Изменения в nginx 0.7.44 23.03.2009
3968
3969 *) Добавление: предварительная поддержка кэширования в модуле
3970 ngx_http_proxy_module.
3971
3972 *) Добавление: параметр --with-pcre в configure.
3973
3974 *) Добавление: теперь директива try_files может быть использована на
3975 уровне server.
3976
3977 *) Исправление: директива try_files неправильно обрабатывала строку
3978 запроса в последнем параметре.
3979
3980 *) Исправление: директива try_files могла неверно тестировать каталоги.
3981
3982 *) Исправление: если для пары адрес:порт описан только один сервер, то
3983 выделения в регулярных выражениях в директиве server_name не
3984 работали.
3985
3986
3987 Изменения в nginx 0.7.43 18.03.2009
3988
3989 *) Исправление: запрос обрабатывался неверно, если директива root
3990 использовала переменные; ошибка появилась в 0.7.42.
3991
3992 *) Исправление: если сервер слушал на адресах типа "*", то значение
3993 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
3994
3995
3996 Изменения в nginx 0.7.42 16.03.2009
3997
3998 *) Изменение: ошибка "Invalid argument", возвращаемая
3999 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
4000
4001 *) Изменение: при отсутствии файла, указанного в директиве
4002 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
4003
4004 *) Добавление: директива auth_basic_user_file поддерживает переменные.
4005 Спасибо Кириллу Коринскому.
4006
4007 *) Добавление: директива listen поддерживает параметр ipv6only.
4008 Спасибо Zhang Hua.
4009
4010 *) Исправление: в директиве alias со ссылками на выделения в регулярных
4011 выражениях; ошибка появилась в 0.7.40.
4012
4013 *) Исправление: совместимость с Tru64 UNIX.
4014 Спасибо Dustin Marquess.
4015
4016 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
4017 в 0.7.41.
4018
4019
4020 Изменения в nginx 0.7.41 11.03.2009
4021
4022 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4023 если в server_name или location были выделения в регулярных
4024 выражениях; ошибка появилась в 0.7.40.
4025 Спасибо Владимиру Сопоту.
4026
4027
4028 Изменения в nginx 0.7.40 09.03.2009
4029
4030 *) Добавление: директива location поддерживает выделения в регулярных
4031 выражениях.
4032
4033 *) Добавление: директиву alias с ссылками на выделения в регулярных
4034 выражениях можно использовать внутри location'а, заданного регулярным
4035 выражением с выделениями.
4036
4037 *) Добавление: директива server_name поддерживает выделения в регулярных
4038 выражениях.
4039
4040 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
4041 слэш для каталогов на файловой системе XFS; ошибка появилась в
4042 0.7.15.
4043 Спасибо Дмитрию Кузьменко.
4044
4045
4046 Изменения в nginx 0.7.39 02.03.2009
4047
4048 *) Исправление: при включённом сжатии большие ответы с использованием
4049 SSI могли зависать; ошибка появилась в 0.7.28.
4050 Спасибо Артёму Бохану.
4051
4052 *) Исправление: при использовании коротких статических вариантов в
4053 директиве try_files в рабочем процессе мог произойти segmentation
4054 fault.
4055
4056
4057 Изменения в nginx 0.7.38 23.02.2009
4058
4059 *) Добавление: логгирование ошибок аутентификации.
4060
4061 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
4062 игнорировались после нечётного числа пустых строк.
4063 Спасибо Александру Загребину.
4064
4065 *) Исправление: при использовании длинного пути в unix domain сокете в
4066 главном процессе происходил segmentation fault; ошибка появилась в
4067 0.7.36.
4068
4069
4070 Изменения в nginx 0.7.37 21.02.2009
4071
4072 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
4073 появилась в 0.7.36.
4074
4075
4076 Изменения в nginx 0.7.36 21.02.2009
4077
4078 *) Добавление: предварительная поддержка IPv6; директива listen модуля
4079 HTTP поддерживает IPv6.
4080
4081 *) Исправление: переменная $ancient_browser не работала для браузеров,
4082 заданных директивами modern_browser.
4083
4084
4085 Изменения в nginx 0.7.35 16.02.2009
4086
4087 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
4088 асимметричных шифров.
4089 Спасибо Marcin Gozdalik.
4090
4091 *) Исправление: директива try_files выставляла MIME-type, исходя из
4092 расширения первоначального запроса.
4093
4094 *) Исправление: в директивах server_name, valid_referers и map
4095 неправильно обрабатывались имена вида "*domain.tld", если
4096 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
4097 ошибка появилась в 0.7.9.
4098
4099
4100 Изменения в nginx 0.7.34 10.02.2009
4101
4102 *) Добавление: параметр off в директиве if_modified_since.
4103
4104 *) Добавление: теперь после команды XCLIENT nginx посылает команду
4105 HELO/EHLO.
4106 Спасибо Максиму Дунину.
4107
4108 *) Добавление: поддержка Microsoft-специфичного режима
4109 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
4110 Спасибо Максиму Дунину.
4111
4112 *) Исправление: в директиве rewrite, возвращающей редирект, старые
4113 аргументы присоединялись к новым через символ "?" вместо "&";
4114 ошибка появилась в 0.1.18.
4115 Спасибо Максиму Дунину.
4116
4117 *) Исправление: nginx не собирался на AIX.
4118
4119
4120 Изменения в nginx 0.7.33 02.02.2009
4121
4122 *) Исправление: если на запрос с телом возвращался редирект, то ответ
4123 мог быть двойным при использовании методов epoll или rtsig.
4124 Спасибо Eden Li.
4125
4126 *) Исправление: для некоторых типов редиректов в переменной
4127 $sent_http_location было пустое значение.
4128
4129 *) Исправление: при использовании директивы resolver в SMTP
4130 прокси-сервере в рабочем процессе мог произойти segmentation fault.
4131
4132
4133 Изменения в nginx 0.7.32 26.01.2009
4134
4135 *) Добавление: теперь в директиве try_files можно явно указать проверку
4136 каталога.
4137
4138 *) Исправление: fastcgi_store не всегда сохранял файлы.
4139
4140 *) Исправление: в гео-диапазонах.
4141
4142 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
4143 если nginx был собран без отладки.
4144 Спасибо Андрею Квасову.
4145
4146
4147 Изменения в nginx 0.7.31 19.01.2009
4148
4149 *) Изменение: теперь директива try_files проверяет только файлы,
4150 игнорируя каталоги.
4151
4152 *) Добавление: директива fastcgi_split_path_info.
4153
4154 *) Исправления в поддержке строки "Expect" в заголовке запроса.
4155
4156 *) Исправления в гео-диапазонах.
4157
4158 *) Исправление: при отсутствии ответа ngx_http_memcached_module
4159 возвращал в теле ответа строку "END" вместо 404-ой страницы по
4160 умолчанию; ошибка появилась в 0.7.18.
4161 Спасибо Максиму Дунину.
4162
4163 *) Исправление: при проксировании SMTP nginx выдавал сообщение
4164 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
4165 Спасибо Максиму Дунину.
4166
4167
4168 Изменения в nginx 0.7.30 24.12.2008
4169
4170 *) Исправление: в рабочем процессе происходил segmentation fault, если в
4171 директивах fastcgi_pass или proxy_pass использовались переменные и
4172 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
4173
4174
4175 Изменения в nginx 0.7.29 24.12.2008
4176
4177 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
4178 переменные при использовании unix domain сокетов.
4179
4180 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
4181
4182 *) Исправление: ответ "100 Continue" выдавался для запросов версии
4183 HTTP/1.0;
4184 Спасибо Максиму Дунину.
4185
4186 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
4187 под Cygwin.
4188
4189
4190 Изменения в nginx 0.7.28 22.12.2008
4191
4192 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
4193
4194 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
4195 с 4 4k/8k на 32 4k или 16 8k.
4196
4197
4198 Изменения в nginx 0.7.27 15.12.2008
4199
4200 *) Добавление: директива try_files.
4201
4202 *) Добавление: директива fastcgi_pass поддерживает переменные.
4203
4204 *) Добавление: теперь директива geo может брать адрес из переменной.
4205 Спасибо Андрею Нигматулину.
4206
4207 *) Добавление: теперь модификатор location'а можно указывать без пробела
4208 перед названием.
4209
4210 *) Добавление: переменная $upstream_response_length.
4211
4212 *) Исправление: теперь директива add_header не добавляет пустое
4213 значение.
4214
4215 *) Исправление: при запросе файла нулевой длины nginx закрывал
4216 соединение, ничего не передав; ошибка появилась в 0.7.25.
4217
4218 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
4219 каталог.
4220
4221 *) Исправление: если в сервере не был описан ни один именованный
4222 location, но такой location использовался в директиве error_page, то
4223 в рабочем процессе происходил segmentation fault.
4224 Спасибо Сергею Боченкову.
4225
4226
4227 Изменения в nginx 0.7.26 08.12.2008
4228
4229 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
4230
4231
4232 Изменения в nginx 0.7.25 08.12.2008
4233
4234 *) Изменение: в обработке подзапросов.
4235
4236 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
4237 заголовке запроса.
4238
4239 *) Исправление: теперь директивы limit_req и limit_conn указывают
4240 причину запрета запроса.
4241
4242 *) Исправление: в параметре delete директивы geo.
4243
4244
4245 Изменения в nginx 0.7.24 01.12.2008
4246
4247 *) Добавление: директива if_modified_since.
4248
4249 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
4250 ответом сервер передавал много сообщений в stderr.
4251
4252 *) Исправление: переменные "$cookie_..." не работали в SSI and в
4253 перловом модуле.
4254
4255
4256 Изменения в nginx 0.7.23 27.11.2008
4257
4258 *) Добавление: параметры delete и ranges в директиве geo.
4259
4260 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
4261
4262 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
4263
4264
4265 Изменения в nginx 0.7.22 20.11.2008
4266
4267 *) Добавление: параметр none в директиве smtp_auth.
4268 Спасибо Максиму Дунину.
4269
4270 *) Добавление: переменные "$cookie_...".
4271
4272 *) Исправление: директива directio не работала с файловой системой XFS.
4273
4274 *) Исправление: resolver не понимал большие DNS-ответы.
4275 Спасибо Zyb.
4276
4277
4278 Изменения в nginx 0.7.21 11.11.2008
4279
4280 *) Изменения в модуле ngx_http_limit_req_module.
4281
4282 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
4283 Спасибо Денису Латыпову.
4284
4285 *) Изменение: совместимость с glibc 2.3.
4286 Спасибо Eric Benson и Максиму Дунину.
4287
4288 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
4289 ошибка появилась в 0.7.6.
4290
4291
4292 Изменения в nginx 0.7.20 10.11.2008
4293
4294 *) Изменения в модуле ngx_http_gzip_filter_module.
4295
4296 *) Добавление: модуль ngx_http_limit_req_module.
4297
4298 *) Исправление: на платформах sparc и ppc рабочие процессы могли
4299 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
4300 Спасибо Максиму Дунину.
4301
4302 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
4303 работали; ошибка появилась в 0.7.12.
4304
4305 *) Исправление: при использовании HTTPS запросы могли завершаться с
4306 ошибкой "bad write retry".
4307
4308 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
4309 location'ов с именами меньше 3 символов.
4310
4311 *) Исправление: переменная $server_addr могла не иметь значения.
4312
4313
4314 Изменения в nginx 0.7.19 13.10.2008
4315
4316 *) Исправление: обновление номера версии.
4317
4318
4319 Изменения в nginx 0.7.18 13.10.2008
4320
4321 *) Изменение: директива underscores_in_headers; теперь nginx по
4322 умолчанию не разрешает подчёркивания в именах строк в заголовке
4323 запроса клиента.
4324
4325 *) Добавление: модуль ngx_http_secure_link_module.
4326
4327 *) Добавление: директива real_ip_header поддерживает любой заголовок.
4328
4329 *) Добавление: директива log_subrequest.
4330
4331 *) Добавление: переменная $realpath_root.
4332
4333 *) Добавление: параметры http_502 и http_504 в директиве
4334 proxy_next_upstream.
4335
4336 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
4337 fastcgi_next_upstream не работал.
4338
4339 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
4340 для запросов HEAD.
4341
4342 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
4343
4344
4345 Изменения в nginx 0.7.17 15.09.2008
4346
4347 *) Добавление: директива directio теперь работает на Linux.
4348
4349 *) Добавление: переменная $pid.
4350
4351 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
4352 при использовании open_file_cache.
4353
4354 *) Исправление: access_log с переменными не работал на Linux; ошибка
4355 появилась в 0.7.7.
4356
4357 *) Исправление: модуль ngx_http_charset_module не понимал название
4358 кодировки в кавычках, полученное от бэкенда.
4359
4360
4361 Изменения в nginx 0.7.16 08.09.2008
4362
4363 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
4364 появилась в 0.7.15.
4365
4366
4367 Изменения в nginx 0.7.15 08.09.2008
4368
4369 *) Добавление: модуль ngx_http_random_index_module.
4370
4371 *) Добавление: директива directio оптимизирована для запросов файлов,
4372 начинающихся с произвольной позиции.
4373
4374 *) Добавление: директива directio при необходимости запрещает
4375 использование sendfile.
4376
4377 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
4378 заголовке запроса клиента.
4379
4380
4381 Изменения в nginx 0.7.14 01.09.2008
4382
4383 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
4384 имеют значений по умолчанию.
4385
4386 *) Добавление: директива listen поддерживает параметр ssl.
4387
4388 *) Добавление: теперь при переконфигурации nginx учитывает изменение
4389 временной зоны на FreeBSD и Linux.
4390
4391 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
4392 прочие, не устанавливались, если сервером по умолчанию был не первый
4393 сервер.
4394
4395 *) Исправление: при использовании в качестве аргументов части URI,
4396 выделенного с помощью директивы rewrite, эти аргументы не
4397 экранировались.
4398
4399 *) Исправление: улучшения тестирования правильности конфигурационного
4400 файла.
4401
4402
4403 Изменения в nginx 0.7.13 26.08.2008
4404
4405 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
4406 в 0.7.12.
4407
4408
4409 Изменения в nginx 0.7.12 26.08.2008
4410
4411 *) Добавление: директива server_name поддерживает пустое имя "".
4412
4413 *) Добавление: директива gzip_disable поддерживает специальную маску
4414 msie6.
4415
4416 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
4417 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
4418 Спасибо Максиму Дунину.
4419
4420 *) Исправление: при перенаправлении запроса с помощью директивы
4421 error_page терялось тело запроса.
4422
4423 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
4424 директивы error_page возвращался полный ответ.
4425
4426 *) Исправление: метод $r->header_in() не возвращал значения строк
4427 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
4428 появилась в 0.7.0.
4429
4430
4431 Изменения в nginx 0.7.11 18.08.2008
4432
4433 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
4434 MIME-типом text/css.
4435
4436 *) Добавление: теперь nginx возвращает код 405 для метода POST при
4437 запросе статического файла, только если файл существует.
4438
4439 *) Добавление: директива proxy_ssl_session_reuse.
4440
4441 *) Исправление: после перенаправления запроса с помощью
4442 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
4443 оригинальный запрос.
4444
4445 *) Исправление: если у каталога были права доступа только на поиск
4446 файлов и первый индексный файл отсутствовал, то nginx возвращал
4447 ошибку 500.
4448
4449 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
4450 0.7.1.
4451
4452
4453 Изменения в nginx 0.7.10 13.08.2008
4454
4455 *) Исправление: ошибок в директивах addition_types, charset_types,
4456 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
4457 появились в 0.7.9.
4458
4459 *) Исправление: рекурсивной error_page для 500 ошибки.
4460
4461 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
4462 не для всего keepalive соединения, а для каждого запроса по этому
4463 соединению.
4464
4465
4466 Изменения в nginx 0.7.9 12.08.2008
4467
4468 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
4469 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
4470 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
4471
4472 *) Добавление: директивы charset_types и addition_types.
4473
4474 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
4475 используют хэш.
4476
4477 *) Добавление: модуль ngx_cpp_test_module.
4478
4479 *) Добавление: директива expires поддерживает суточное время.
4480
4481 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
4482 Спасибо Денису Латыпову и Максиму Дунину.
4483
4484 *) Исправление: директива log_not_found не работала при поиске индексных
4485 файлов.
4486
4487 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
4488 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
4489
4490 *) Исправление: если в директивах server_name, valid_referers и map
4491 использовалась маска вида "*.domain.tld" и при этом полное имя вида
4492 "domain.tld" не было описано, то это имя попадало под маску; ошибка
4493 появилась в 0.3.18.
4494
4495
4496 Изменения в nginx 0.7.8 04.08.2008
4497
4498 *) Добавление: модуль ngx_http_xslt_module.
4499
4500 *) Добавление: переменные "$arg_...".
4501
4502 *) Добавление: поддержка directio в Solaris.
4503 Спасибо Ivan Debnar.
4504
4505 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
4506 в заголовке ответа без строки статуса, то nginx использует код
4507 статуса 302.
4508 Спасибо Максиму Дунину.
4509
4510
4511 Изменения в nginx 0.7.7 30.07.2008
4512
4513 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
4514 временной.
4515
4516 *) Изменение: значением переменной $ssl_client_cert теперь является
4517 сертификат, перед каждой строкой которого, кроме первой, вставляется
4518 символ табуляции; неизменённый сертификат доступен через переменную
4519 $ssl_client_raw_cert.
4520
4521 *) Добавление: параметр ask директивы ssl_verify_client.
4522
4523 *) Добавление: улучшения в обработке byte-range.
4524 Спасибо Максиму Дунину.
4525
4526 *) Добавление: директива directio.
4527 Спасибо Jiang Hong.
4528
4529 *) Добавление: поддержка sendfile() в MacOSX 10.5.
4530
4531 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
4532 делается сравнение без учёта регистра символов; однако, сравнение
4533 ограничено только однобайтными locale'ями.
4534
4535 *) Исправление: соединения почтового прокси-сервера зависали в режиме
4536 SSL, если использовались методы select, poll или /dev/poll.
4537
4538 *) Исправление: ошибки при использовании кодировки UTF-8 в
4539 ngx_http_autoindex_module.
4540
4541
4542 Изменения в nginx 0.7.6 07.07.2008
4543
4544 *) Исправление: теперь при использовании переменных в директиве
4545 access_log всегда проверяется существовании root'а для запроса.
4546
4547 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
4548 значений в аргументах запроса.
4549
4550
4551 Изменения в nginx 0.7.5 01.07.2008
4552
4553 *) Исправления в поддержке переменных в директиве access_log; ошибки
4554 появились в 0.7.4.
4555
4556 *) Исправление: nginx не собирался с параметром
4557 --without-http_gzip_module; ошибка появилась в 0.7.3.
4558 Спасибо Кириллу Коринскому.
4559
4560 *) Исправление: при совместном использовании sub_filter и SSI ответы
4561 могли передаваться неверно.
4562
4563
4564 Изменения в nginx 0.7.4 30.06.2008
4565
4566 *) Добавление: директива access_log поддерживает переменные.
4567
4568 *) Добавление: директива open_log_file_cache.
4569
4570 *) Добавление: ключ -g.
4571
4572 *) Добавление: поддержка строки "Expect" в заголовке запроса.
4573
4574 *) Исправление: большие включения в SSI могли передавались не полностью.
4575
4576
4577 Изменения в nginx 0.7.3 23.06.2008
4578
4579 *) Изменение: MIME-тип для расширения rss изменён на
4580 "application/rss+xml".
4581
4582 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
4583 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
4584
4585 *) Добавление: теперь при использовании протокола "https://" в директиве
4586 rewrite автоматически делается редирект.
4587
4588 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
4589 ошибка появилась в 0.6.9.
4590
4591
4592 Изменения в nginx 0.7.2 16.06.2008
4593
4594 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
4595
4596 *) Добавление: директива ssl_dhparam.
4597
4598 *) Добавление: переменная $ssl_client_cert.
4599 Спасибо Manlio Perillo.
4600
4601 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
4602 искал новый location; ошибка появилась в 0.7.1.
4603 Спасибо Максиму Дунину.
4604
4605 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
4606 в 0.7.1.
4607
4608 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
4609 nginx не добавлял аргументы из оригинального запроса.
4610
4611
4612 Изменения в nginx 0.7.1 26.05.2008
4613
4614 *) Изменение: теперь поиск location'а делается с помощью дерева.
4615
4616 *) Изменение: директива optimize_server_names упразднена в связи с
4617 появлением директивы server_name_in_redirect.
4618
4619 *) Изменение: некоторые давно устаревшие директивы больше не
4620 поддерживаются.
4621
4622 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
4623 параметр используется по умолчанию.
4624 Спасибо Rob Mueller.
4625
4626 *) Исправление: рабочие процессы могли не реагировать на сигналы
4627 переконфигурации и ротации логов.
4628
4629 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
4630 Спасибо Roxis.
4631
4632
4633 Изменения в nginx 0.7.0 19.05.2008
4634
4635 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
4636 записываются в виде \xXX.
4637 Спасибо Максиму Дунину.
4638
4639 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
4640 запроса.
4641
4642 *) Добавление: директива expires поддерживает флаг modified.
4643
4644 *) Добавление: переменные $uid_got и $uid_set можно использовать на
4645 любой стадии обработки запроса.
4646
4647 *) Добавление: переменная $hostname.
4648 Спасибо Андрею Нигматулину.
4649
4650 *) Добавление: поддержка DESTDIR.
4651 Спасибо Todd A. Fisher и Andras Voroskoi.
4652
4653 *) Исправление: при использовании keepalive на Linux в рабочем процессе
4654 мог произойти segmentation fault.
4655
4656
4657 Изменения в nginx 0.6.31 12.05.2008
4658
4659 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
4660 заголовка ответа была в конце записи FastCGI; ошибка появилась в
4661 0.6.2.
4662 Спасибо Сергею Серову.
4663
4664 *) Исправление: при удалении файла и использовании директивы
4665 open_file_cache_errors off в рабочем процессе мог произойти
4666 segmentation fault.
4667
4668
4669 Изменения в nginx 0.6.30 29.04.2008
4670
4671 *) Изменение: теперь, если маске, заданной в директиве include, не
4672 соответствует ни один файл, то nginx не выдаёт ошибку.
4673
4674 *) Добавление: теперь время в директивах можно задавать без пробела,
4675 например, "1h50m".
4676
4677 *) Исправление: утечек памяти, если директива ssl_verify_client имела
4678 значение on.
4679 Спасибо Chavelle Vincent.
4680
4681 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
4682 вывод.
4683
4684 *) Исправление: директива error_page не воспринимала параметры в
4685 перенаправляемом URI.
4686
4687 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
4688 в бинарном режиме.
4689
4690 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
4691 0.6.15.
4692
4693
4694 Изменения в nginx 0.6.29 18.03.2008
4695
4696 *) Добавление: модуль ngx_google_perftools_module.
4697
4698 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
4699 платформах; ошибка появилась в 0.6.27.
4700
4701
4702 Изменения в nginx 0.6.28 13.03.2008
4703
4704 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
4705
4706
4707 Изменения в nginx 0.6.27 12.03.2008
4708
4709 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
4710 rtsig.
4711
4712 *) Изменение: теперь при перенаправлении запроса в именованный location
4713 с помощью директивы error_page метод запроса не изменяется.
4714
4715 *) Добавление: директивы resolver и resolver_timeout в SMTP
4716 прокси-сервере.
4717
4718 *) Добавление: директива post_action поддерживает именованные
4719 location'ы.
4720
4721 *) Исправление: при перенаправлении запроса из location'а c обработчиком
4722 proxy, FastCGI или memcached в именованный location со статическим
4723 обработчиком в рабочем процессе происходил segmentation fault.
4724
4725 *) Исправление: браузеры не повторяли SSL handshake, если при первом
4726 handshake не оказалось правильного клиентского сертификата.
4727 Спасибо Александру Инюхину.
4728
4729 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
4730 error_page без изменения кода ошибки nginx пытался выделить очень
4731 много памяти.
4732
4733 *) Исправление: утечки памяти в долгоживущих небуфферизированных
4734 соединениях.
4735
4736 *) Исправление: утечки памяти в resolver'е.
4737
4738 *) Исправление: при перенаправлении запроса из location'а c обработчиком
4739 proxy в другой location с обработчиком proxy в рабочем процессе
4740 происходил segmentation fault.
4741
4742 *) Исправление: ошибки в кэшировании переменных $proxy_host и
4743 $proxy_port.
4744 Спасибо Сергею Боченкову.
4745
4746 *) Исправление: директива proxy_pass с переменными использовала порт,
4747 описанной в другой директиве proxy_pass без переменных, но с таким же
4748 именем хоста.
4749 Спасибо Сергею Боченкову.
4750
4751 *) Исправление: во время переконфигурации на некоторых 64-битном
4752 платформах в лог записывался alert "sendmsg() failed (9: Bad file
4753 descriptor)".
4754
4755 *) Исправление: при повторном использовании в SSI пустого block'а в
4756 качестве заглушки в рабочем процессе происходил segmentation fault.
4757
4758 *) Исправление: ошибки при копировании части URI, содержащего
4759 экранированные символы, в аргументы.
4760
4761
4762 Изменения в nginx 0.6.26 11.02.2008
4763
4764 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
4765 ответа.
4766
4767 *) Исправление: при использовании большого значения в директиве expires
4768 в рабочем процессе происходил segmentation fault.
4769 Спасибо Joaquin Cuenca Abela.
4770
4771 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
4772 Спасибо Геннадию Махомеду.
4773
4774 *) Исправление: в проксированных подзапросах и подзапросах к
4775 FastCGI-серверу вместо метода GET использовался оригинальный метод
4776 клиента.
4777
4778 *) Исправление: утечки сокетов в режиме HTTPS при использовании
4779 отложенного accept'а.
4780 Спасибо Ben Maurer.
4781
4782 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
4783 (SSL: )"; ошибка появилась в 0.6.23.
4784
4785 *) Исправление: при использовании HTTPS запросы могли завершаться с
4786 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
4787
4788
4789 Изменения в nginx 0.6.25 08.01.2008
4790
4791 *) Изменение: вместо специального параметра "*" в директиве server_name
4792 теперь используется директива server_name_in_redirect.
4793
4794 *) Изменение: в качестве основного имени в директиве server_name теперь
4795 можно использовать имена с масками и регулярными выражениями.
4796
4797 *) Изменение: директива satisfy_any заменена директивой satisfy.
4798
4799 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
4800 нагружать процессор при запуске под Linux OpenVZ.
4801
4802 *) Добавление: директива min_delete_depth.
4803
4804 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
4805
4806 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
4807 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
4808
4809 *) Исправление: утечки сокетов в режиме HTTPS при использовании
4810 отложенного accept'а.
4811 Спасибо Ben Maurer.
4812
4813 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
4814 в 0.6.23.
4815
4816
4817 Изменения в nginx 0.6.24 27.12.2007
4818
4819 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
4820 segmentation fault; ошибка появилась в 0.6.23.
4821
4822
4823 Изменения в nginx 0.6.23 27.12.2007
4824
4825 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
4826 параметр используется по умолчанию.
4827
4828 *) Изменение: директива open_file_cache_retest переименована в
4829 open_file_cache_valid.
4830
4831 *) Добавление: директива open_file_cache_min_uses.
4832
4833 *) Добавление: модуль ngx_http_gzip_static_module.
4834
4835 *) Добавление: директива gzip_disable.
4836
4837 *) Добавление: директиву memcached_pass можно использовать внутри блока
4838 if.
4839
4840 *) Исправление: если внутри одного location'а использовались директивы
4841 "memcached_pass" и "if", то в рабочем процессе происходил
4842 segmentation fault.
4843
4844 *) Исправление: если при использовании директивы satisfy_any on" были
4845 заданы директивы не всех модулей доступа, то заданные директивы не
4846 проверялись.
4847
4848 *) Исправление: параметры, заданные регулярным выражением в директиве
4849 valid_referers, не наследовалась с предыдущего уровня.
4850
4851 *) Исправление: директива post_action не работала, если запрос
4852 завершался с кодом 499.
4853
4854 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
4855 Спасибо Ben Maurer.
4856
4857 *) Исправление: STARTTLS в режиме SMTP не работал.
4858 Спасибо Олегу Мотиенко.
4859
4860 *) Исправление: при использовании HTTPS запросы могли завершаться с
4861 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
4862
4863
4864 Изменения в nginx 0.6.22 19.12.2007
4865
4866 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
4867 значения, скопированные в память, выделенную perl'ом.
4868
4869 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
4870 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
4871 время переконфигурации основной процесс аварийно выходил; ошибка
4872 появилась в 0.5.9.
4873 Спасибо Борису Жмурову.
4874
4875 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
4876 неверные результаты выделения в регулярных выражениях.
4877
4878 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
4879 у которого небольшое тело запроса было уже полностью получено, то в
4880 рабочем процессе происходил segmentation fault.
4881
4882 *) Исправление: large_client_header_buffers не освобождались перед
4883 переходом в состояние keep-alive.
4884 Спасибо Олександру Штепе.
4885
4886 *) Исправление: в переменной $upstream_addr не записывался последний
4887 адрес; ошибка появилась в 0.6.18.
4888
4889 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
4890 теперь она возвращает ошибку 502, которую можно направить на
4891 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
4892
4893 *) Исправление: при использовании директивы fastcgi_catch_stderr в
4894 основном процессе происходил segmentation fault; ошибка появилась в
4895 0.6.10.
4896 Спасибо Manlio Perillo.
4897
4898
4899 Изменения в nginx 0.6.21 03.12.2007
4900
4901 *) Изменение: если в значениях переменных директивы proxy_pass
4902 используются только IP-адреса, то указывать resolver не нужно.
4903
4904 *) Исправление: при использовании директивы proxy_pass c URI-частью в
4905 рабочем процессе мог произойти segmentation fault; ошибка появилась в
4906 0.6.19.
4907
4908 *) Исправление: если resolver использовался на платформах, не
4909 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
4910 response".
4911 Спасибо Андрею Нигматулину.
4912
4913 *) Исправление: При использовании переменной $server_protocol в
4914 FastCGI-параметрах и запросе, длина которого была близка к значению
4915 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
4916 the request record is too big".
4917
4918 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
4919 nginx возвращал обычный ответ.
4920
4921
4922 Изменения в nginx 0.6.20 28.11.2007
4923
4924 *) Исправление: при использовании директивы proxy_pass c URI-частью в
4925 рабочем процессе мог произойти segmentation fault; ошибка появилась в
4926 0.6.19.
4927
4928
4929 Изменения в nginx 0.6.19 27.11.2007
4930
4931 *) Исправление: версия 0.6.18 не собиралась.
4932
4933
4934 Изменения в nginx 0.6.18 27.11.2007
4935
4936 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
4937 процесса добавляет микросекунды на время старта.
4938
4939 *) Изменение: в error_log теперь записывается полная строка запроса
4940 вместо только URI.
4941
4942 *) Добавление: директива proxy_pass поддерживает переменные.
4943
4944 *) Добавление: директивы resolver и resolver_timeout.
4945
4946 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
4947 заголовке ответа строку "Last-Modified".
4948
4949 *) Исправление: директива limit_rate не позволяла передавать на полной
4950 скорости, даже если был указан очень большой лимит.
4951
4952
4953 Изменения в nginx 0.6.17 15.11.2007
4954
4955 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
4956 Спасибо Александру Инюхину.
4957
4958 *) Исправление: при использовании директивы msie_refresh повторно
4959 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
4960
4961 *) Исправление: директива autoindex не работала при использовании "alias
4962 /".
4963
4964 *) Исправление: при использовании подзапросов в рабочем процессе мог
4965 произойти segmentation fault.
4966
4967 *) Исправление: при использовании SSL и gzip большие ответы могли
4968 передаваться не полностью.
4969
4970 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
4971 то переменная $status была равна 0.
4972
4973
4974 Изменения в nginx 0.6.16 29.10.2007
4975
4976 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
4977 Спасибо Илье Новикову.
4978
4979 *) Исправление: если в директиве error_page использовался символ "?", то
4980 он экранировался при проксировании запроса; ошибка появилась в
4981 0.6.11.
4982
4983 *) Исправление: совместимость с mget.
4984
4985
4986 Изменения в nginx 0.6.15 22.10.2007
4987
4988 *) Добавление: совместимость с Cygwin.
4989 Спасибо Владимиру Кутакову.
4990
4991 *) Добавление: директива merge_slashes.
4992
4993 *) Добавление: директива gzip_vary.
4994
4995 *) Добавление: директива server_tokens.
4996
4997 *) Исправление: nginx не раскодировал URI в команде SSI include.
4998
4999 *) Исправление: при использовании переменной в директивах charset или
5000 source_charset на старте или во время переконфигурации происходил
5001 segmentation fault,
5002
5003 *) Исправление: nginx возвращал ошибку 400 на запросы вида
5004 "GET http://www.domain.com HTTP/1.0".
5005 Спасибо James Oakley.
5006
5007 *) Исправление: после перенаправления запроса с телом запроса с помощью
5008 директивы error_page nginx пытался снова прочитать тело запроса;
5009 ошибка появилась в 0.6.7.
5010
5011 *) Исправление: в рабочем процессе происходил segmentation fault, если у
5012 сервера, обрабатывающему запрос, не был явно определён server_name;
5013 ошибка появилась в 0.6.7.
5014
5015
5016 Изменения в nginx 0.6.14 15.10.2007
5017
5018 *) Изменение: теперь по умолчанию команда SSI echo использует
5019 кодирование entity.
5020
5021 *) Добавление: параметр encoding в команде SSI echo.
5022
5023 *) Добавление: директиву access_log можно использовать внутри блока
5024 limit_except.
5025
5026 *) Исправление: если все сервера апстрима оказывались недоступными, то
5027 до восстановления работоспособности у всех серверов вес становился
5028 равным одному; ошибка появилась в 0.6.6.
5029
5030 *) Исправление: при использовании переменных $date_local и $date_gmt вне
5031 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
5032 segmentation fault.
5033
5034 *) Исправление: при использовании включённом отладочном логе в рабочем
5035 процессе мог произойти segmentation fault.
5036 Спасибо Андрею Нигматулину.
5037
5038 *) Исправление: ngx_http_memcached_module не устанавливал
5039 $upstream_response_time.
5040 Спасибо Максиму Дунину.
5041
5042 *) Исправление: рабочий процесс мог зациклиться при использовании
5043 memcached.
5044
5045 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
5046 строке "Connection" в заголовке запроса только, если они были в
5047 нижнем регистре; ошибка появилась в 0.6.11.
5048
5049 *) Исправление: sub_filter не работал с пустой строкой замены.
5050
5051 *) Исправление: в парсинге sub_filter.
5052
5053
5054 Изменения в nginx 0.6.13 24.09.2007
5055
5056 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
5057 использовался autoindex
5058 Спасибо Arkadiusz Patyk.
5059
5060
5061 Изменения в nginx 0.6.12 21.09.2007
5062
5063 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
5064 и smtp.
5065
5066 *) Добавление: параметры конфигурации --without-mail_pop3_module,
5067 --without-mail_imap_module и --without-mail_smtp_module.
5068
5069 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
5070 ngx_mail_smtp_module.
5071
5072 *) Исправление: wildcard в конце имени сервера не работали; ошибка
5073 появилась в 0.6.9.
5074
5075 *) Исправление: при использовании разделяемой библиотеки PCRE,
5076 расположенной в нестандартном месте, nginx не запускался на Solaris.
5077
5078 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
5079 скрывали строки заголовка ответа с именем больше 32 символов.
5080 Спасибо Manlio Perillo.
5081
5082
5083 Изменения в nginx 0.6.11 11.09.2007
5084
5085 *) Исправление: счётчик активных соединений всегда рос при использовании
5086 почтового прокси-сервера.
5087
5088 *) Исправление: если бэкенд возвращал только заголовок ответа при
5089 небуферизированном проксировании, то nginx закрывал соединение с
5090 бэкендом по таймауту.
5091
5092 *) Исправление: nginx не поддерживал несколько строк "Connection" в
5093 заголовке запроса.
5094
5095 *) Исправление: если в сервере апстрима был задан max_fails, то после
5096 первой же неудачной попытки вес сервера навсегда становился равным
5097 одному; ошибка появилась в 0.6.6.
5098
5099
5100 Изменения в nginx 0.6.10 03.09.2007
5101
5102 *) Добавление: директивы open_file_cache, open_file_cache_retest и
5103 open_file_cache_errors.
5104
5105 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
5106
5107 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
5108 методе $r->send_http_header(), не добавлялась кодировка, указанная в
5109 директиве charset.
5110
5111 *) Исправление: при использовании метода /dev/poll в рабочем процессе
5112 мог произойти segmentation fault.
5113
5114
5115 Изменения в nginx 0.6.9 28.08.2007
5116
5117 *) Исправление: рабочий процесс мог зациклиться при использовании
5118 протокола HTTPS; ошибка появилась в 0.6.7.
5119
5120 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
5121 не запускался при использовании wildcard в конце имени сервера.
5122
5123 *) Исправление: директива ip_hash могла неверно помечать сервера как
5124 нерабочие.
5125
5126 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
5127
5128
5129 Изменения в nginx 0.6.8 20.08.2007
5130
5131 *) Изменение: теперь nginx пытается установить директивы
5132 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
5133 worker_rlimit_sigpending без привилегий root'а.
5134
5135 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
5136 запроса серверу аутентификации почтового прокси-сервера.
5137
5138 *) Изменение: теперь nginx экранирует символ "%" в переменной
5139 $memcached_key.
5140
5141 *) Исправление: при указании относительного пути к конфигурационному
5142 файлу в качестве параметра ключа -c nginx определял путь относительно
5143 конфигурационного префикса; ошибка появилась в 0.6.6.
5144
5145 *) Исправление: nginx не работал на FreeBSD/sparc64.
5146
5147
5148 Изменения в nginx 0.6.7 15.08.2007
5149
5150 *) Изменение: теперь пути, указанные в директивах include,
5151 auth_basic_user_file, perl_modules, ssl_certificate,
5152 ssl_certificate_key и ssl_client_certificate, определяются
5153 относительно каталога конфигурационного файла nginx.conf, а не
5154 относительно префикса.
5155
5156 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
5157
5158 *) Изменение: для обновления на лету версий 0.1.x создан специальный
5159 сценарий make upgrade1.
5160
5161 *) Добавление: директивы server_name и valid_referers поддерживают
5162 регулярные выражения.
5163
5164 *) Добавление: директива server в блоке upstream поддерживает параметр
5165 backup.
5166
5167 *) Добавление: модуль ngx_http_perl_module поддерживает метод
5168 $r->discard_request_body.
5169
5170 *) Добавление: директива "add_header Last-Modified ..." меняет строку
5171 "Last-Modified" в заголовке ответа.
5172
5173 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
5174 отличным от 200, и после этого запроса соединение переходило в
5175 состояние keep-alive, то на следующий запрос nginx возвращал 400.
5176
5177 *) Исправление: если в директиве auth_http был задан неправильный адрес,
5178 то в рабочем процессе происходил segmentation fault.
5179
5180 *) Исправление: теперь по умолчанию nginx использует значение 511 для
5181 listen backlog на всех платформах, кроме FreeBSD.
5182 Спасибо Jiang Hong.
5183
5184 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
5185 upstream был помечен как down; ошибка появилась в 0.6.6.
5186
5187 *) Исправление: sendfilev() в Solaris теперь не используется при
5188 передаче тела запроса FastCGI-серверу через unix domain сокет.
5189
5190
5191 Изменения в nginx 0.6.6 30.07.2007
5192
5193 *) Добавление: параметр --sysconfdir=PATH в configure.
5194
5195 *) Добавление: именованные location'ы.
5196
5197 *) Добавление: переменную $args можно устанавливать с помощью set.
5198
5199 *) Добавление: переменная $is_args.
5200
5201 *) Исправление: равномерное распределение запросов к апстримам с
5202 большими весами.
5203
5204 *) Исправление: если клиент в почтовом прокси-сервере закрывал
5205 соединение, то nginx мог не закрывать соединение с бэкендом.
5206
5207 *) Исправление: при использовании одного хоста в качестве бэкендов для
5208 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
5209 только один порт - 80 или 443.
5210
5211 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
5212 более ранними версиями; ошибка появилась в 0.6.4.
5213
5214
5215 Изменения в nginx 0.6.5 23.07.2007
5216
5217 *) Добавление: переменная $nginx_version.
5218 Спасибо Николаю Гречуху.
5219
5220 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
5221 IMAP.
5222 Спасибо Максиму Дунину.
5223
5224 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
5225 SMTP.
5226 Спасибо Максиму Дунину.
5227
5228 *) Исправление: теперь nginx экранирует пробел в переменной
5229 $memcached_key.
5230
5231 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
5232 Спасибо Jiang Hong.
5233
5234 *) Исправление: незначительных потенциальных ошибок.
5235 Спасибо Coverity's Scan.
5236
5237
5238 Изменения в nginx 0.6.4 17.07.2007
5239
5240 *) Безопасность: при использовании директивы msie_refresh был возможен
5241 XSS.
5242 Спасибо Максиму Богуку.
5243
5244 *) Изменение: директивы proxy_store и fastcgi_store изменены.
5245
5246 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
5247
5248 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
5249 Studio.
5250 Спасибо Андрею Нигматулину.
5251
5252 *) Изменение: обход ошибки в Sun Studio 12.
5253 Спасибо Jiang Hong.
5254
5255
5256 Изменения в nginx 0.6.3 12.07.2007
5257
5258 *) Добавление: директивы proxy_store и fastcgi_store.
5259
5260 *) Исправление: при использовании директивы auth_http_header в рабочем
5261 процессе мог произойти segmentation fault.
5262 Спасибо Максиму Дунину.
5263
5264 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
5265 не был разрешён, то в рабочем процессе происходил segmentation fault.
5266
5267 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
5268 в рабочем процессе мог произойти segmentation fault.
5269
5270 *) Исправление: в рабочем процессе мог произойти segmentation fault,
5271 если использовался метод eventport.
5272
5273 *) Исправление: директивы proxy_ignore_client_abort и
5274 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
5275
5276
5277 Изменения в nginx 0.6.2 09.07.2007
5278
5279 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
5280 nginx передавал клиенту мусор в таких заголовках.
5281
5282
5283 Изменения в nginx 0.6.1 17.06.2007
5284
5285 *) Исправление: в парсинге SSI.
5286
5287 *) Исправление: при использовании удалённого подзапроса в SSI
5288 последующий подзапрос локального файла мог отдаваться клиенту в
5289 неверном порядке.
5290
5291 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
5292 передавались не полностью.
5293
5294 *) Исправление: значение perl'овой переменной $$ модуля
5295 ngx_http_perl_module было равно номеру главного процесса.
5296
5297
5298 Изменения в nginx 0.6.0 14.06.2007
5299
5300 *) Добавление: директивы "server_name", "map", and "valid_referers"
5301 поддерживают маски вида "www.example.*".
5302
5303
5304 Изменения в nginx 0.5.25 11.06.2007
5305
5306 *) Исправление: nginx не собирался с параметром
5307 --without-http_rewrite_module; ошибка появилась в 0.5.24.
5308
5309
5310 Изменения в nginx 0.5.24 06.06.2007
5311
5312 *) Безопасность: директива ssl_verify_client не работала, если запрос
5313 выполнялся по протоколу HTTP/0.9.
5314
5315 *) Исправление: при использовании сжатия часть ответа могла передаваться
5316 несжатой; ошибка появилась в 0.5.23.
5317
5318
5319 Изменения в nginx 0.5.23 04.06.2007
5320
5321 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
5322 Server Name Indication.
5323
5324 *) Добавление: директива fastcgi_catch_stderr.
5325 Спасибо Николаю Гречуху, проект OWOX.
5326
5327 *) Исправление: на Линуксе в основном процессе происходил segmentation
5328 fault, если два виртуальных сервера должны bind()ится к
5329 пересекающимся портам.
5330
5331 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
5332 perl поддерживал потоки, то во время второй переконфигурации
5333 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
5334
5335 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5336
5337
5338 Изменения в nginx 0.5.22 29.05.2007
5339
5340 *) Исправление: большое тело запроса могло не передаваться бэкенду;
5341 ошибка появилась в 0.5.21.
5342
5343
5344 Изменения в nginx 0.5.21 28.05.2007
5345
5346 *) Исправление: если внутри сервера описано больше примерно десяти
5347 location'ов, то location'ы, заданные с помощью регулярного выражения,
5348 могли выполняться не в том, порядке, в каком они описаны.
5349
5350 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
5351 если 33-тий по счёту или последующий бэкенд упал.
5352 Спасибо Антону Поварову.
5353
5354 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
5355 произойти bus error.
5356 Спасибо Андрею Нигматулину.
5357
5358 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5359
5360
5361 Изменения в nginx 0.5.20 07.05.2007
5362
5363 *) Добавление: директива sendfile_max_chunk.
5364
5365 *) Добавление: переменные "$http_...", "$sent_http_..." и
5366 "$upstream_http_..." можно менять директивой set.
5367
5368 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
5369 рабочем процессе мог произойти segmentation fault.
5370
5371 *) Исправление: завершающая строка multipart range ответа передавалась
5372 неверно.
5373 Спасибо Evan Miller.
5374
5375 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
5376 Studio.
5377 Спасибо Андрею Нигматулину.
5378
5379 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
5380 Спасибо Андрею Нигматулину.
5381
5382
5383 Изменения в nginx 0.5.19 24.04.2007
5384
5385 *) Изменение: значение переменной $request_time теперь записывается с
5386 точностью до миллисекунд.
5387
5388 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
5389 переименован в $r->flush.
5390
5391 *) Добавление: переменная $upstream_addr.
5392
5393 *) Добавление: директивы proxy_headers_hash_max_size и
5394 proxy_headers_hash_bucket_size.
5395 Спасибо Володымыру Костырко.
5396
5397 *) Исправление: при использовании sendfile и limit_rate на 64-битных
5398 платформах нельзя было передавать файлы больше 2G.
5399
5400 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
5401 было передавать файлы больше 2G.
5402
5403
5404 Изменения в nginx 0.5.18 19.04.2007
5405
5406 *) Добавление: модуль ngx_http_sub_filter_module.
5407
5408 *) Добавление: переменные "$upstream_http_...".
5409
5410 *) Добавление: теперь переменные $upstream_status и
5411 $upstream_response_time содержат данные о всех обращениях к
5412 апстримам, сделанным до X-Accel-Redirect.
5413
5414 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
5415 perl не поддерживал multiplicity, то после первой переконфигурации и
5416 после получения любого сигнала в основном процессе происходил
5417 segmentation fault; ошибка появилась в 0.5.9.
5418
5419 *) Исправление: если perl не поддерживал multiplicity, то после
5420 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
5421
5422
5423 Изменения в nginx 0.5.17 02.04.2007
5424
5425 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
5426
5427 *) Добавление: теперь nginx поддерживает директиву include внутри блока
5428 types.
5429
5430 *) Исправление: использование переменной $document_root в директиве root
5431 и alias запрещено: оно вызывало рекурсивное переполнение стека.
5432
5433 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
5434
5435 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
5436 $uri) возвращали старое закэшированное значение.
5437
5438
5439 Изменения в nginx 0.5.16 26.03.2007
5440
5441 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
5442 использовалась сеть класса С.
5443 Спасибо Павлу Ярковому.
5444
5445 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
5446 был указан charset и строка завершалась символом ";", то в рабочем
5447 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
5448
5449 *) Исправление: ошибки "[alert] zero size buf" при работе с
5450 FastCGI-сервером, если тело запроса, записанное во временный файл,
5451 было кратно 32K.
5452
5453 *) Исправление: nginx не собирался на Solaris без параметра
5454 --with-debug; ошибка появилась в 0.5.15.
5455
5456
5457 Изменения в nginx 0.5.15 19.03.2007
5458
5459 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
5460 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и
5461 xclient.
5462 Спасибо Антону Южанинову и Максиму Дунину.
5463
5464 *) Добавление: теперь keep-alive соединения закрываются сразу же по
5465 получении сигнала переконфигурации.
5466
5467 *) Изменение: директивы imap и auth переименованы соответственно в mail
5468 и pop3_auth.
5469
5470 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
5471 был разрешён метод APOP, то в рабочем процессе происходил
5472 segmentation fault.
5473
5474 *) Исправление: при использовании директивы starttls only в протоколе
5475 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
5476
5477 *) Исправление: рабочие процессы не выходили после переконфигурации и не
5478 переоткрывали логи, если использовался метод eventport.
5479
5480 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
5481 зациклиться.
5482
5483 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
5484 используются методы eventport или /dev/poll.
5485
5486
5487 Изменения в nginx 0.5.14 23.02.2007
5488
5489 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
5490 конфигурационного файла.
5491
5492
5493 Изменения в nginx 0.5.13 19.02.2007
5494
5495 *) Добавление: методы COPY и MOVE.
5496
5497 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
5498 запросов, переданных по keep-alive соединению.
5499
5500 *) Исправление: nginx не работал на 64-битном big-endian Linux.
5501 Спасибо Андрею Нигматулину.
5502
5503 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
5504 теперь сразу закрывает соединение, а не по таймауту.
5505
5506 *) Исправление: если при использовании метода epoll клиент закрывал
5507 преждевременно соединение со своей стороны, то nginx закрывал это
5508 соединение только по истечении таймаута на передачу.
5509
5510 *) Исправление: nginx не собирался на платформах, отличных от i386,
5511 amd64, sparc и ppc; ошибка появилась в 0.5.8.
5512
5513
5514 Изменения в nginx 0.5.12 12.02.2007
5515
5516 *) Исправление: nginx не собирался на платформах, отличных от i386,
5517 amd64, sparc и ppc; ошибка появилась в 0.5.8.
5518
5519 *) Исправление: при использовании временных файлов в время работы с
5520 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
5521 ошибка появилась в 0.5.8.
5522
5523 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
5524 то в рабочем процессе мог произойти segmentation fault.
5525
5526 *) Исправление: ngx_http_perl_module не собирался на Solaris.
5527
5528
5529 Изменения в nginx 0.5.11 05.02.2007
5530
5531 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
5532 Спасибо Chris McGrath.
5533
5534 *) Исправление: ответ был неверным, если запрашивалось несколько
5535 диапазонов; ошибка появилась в 0.5.6.
5536
5537 *) Исправление: директива create_full_put_path не могла создавать
5538 промежуточные каталоги, если не была установлена директива
5539 dav_access.
5540 Спасибо Evan Miller.
5541
5542 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
5543 записываться код "0".
5544
5545 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
5546 произойти segmentation fault.
5547
5548
5549 Изменения в nginx 0.5.10 26.01.2007
5550
5551 *) Исправление: во время обновления исполняемого файла новый процесс не
5552 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
5553
5554 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
5555 произойти segmentation fault; ошибка появилась в 0.5.1.
5556
5557
5558 Изменения в nginx 0.5.9 25.01.2007
5559
5560 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
5561 использует значение переменной $memcached_key.
5562
5563 *) Добавление: переменная $memcached_key.
5564
5565 *) Добавление: параметр clean в директиве client_body_in_file_only.
5566
5567 *) Добавление: директива env.
5568
5569 *) Добавление: директива sendfile работает внутри блока if.
5570
5571 *) Добавление: теперь при ошибке записи в access_log nginx записывает
5572 сообщение в error_log, но не чаще одного раза в минуту.
5573
5574 *) Исправление: директива "access_log off" не всегда запрещала запись в
5575 лог.
5576
5577
5578 Изменения в nginx 0.5.8 19.01.2007
5579
5580 *) Исправление: если использовалась директива
5581 "client_body_in_file_only on" и тело запроса было небольшое, то мог
5582 произойти segmentation fault.
5583
5584 *) Исправление: происходил segmentation fault, если использовались
5585 директивы "client_body_in_file_only on" и
5586 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
5587 делался переход к следующему бэкенду.
5588
5589 *) Исправление: если при использовании директивы "proxy_buffering off"
5590 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
5591 заданному директивой send_timeout; ошибка появилась в 0.4.7.
5592
5593 *) Исправление: если при использовании метода epoll клиент закрывал
5594 преждевременно соединение со своей стороны, то nginx закрывал это
5595 соединение только по истечении таймаута на передачу.
5596
5597 *) Исправление: ошибки "[alert] zero size buf" при работе с
5598 FastCGI-сервером.
5599
5600 *) Исправление ошибок в директиве limit_zone.
5601
5602
5603 Изменения в nginx 0.5.7 15.01.2007
5604
5605 *) Добавление: оптимизация использования памяти в ssl_session_cache.
5606
5607 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
5608
5609 *) Исправление: на старте или во время переконфигурации происходил
5610 segmentation fault, если директивы ssl_session_cache или limit_zone
5611 использовались на 64-битных платформах.
5612
5613 *) Исправление: при использовании директив add_before_body или
5614 add_after_body происходил segmentation fault, если в заголовке ответа
5615 нет строки "Content-Type".
5616
5617 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
5618 потоков.
5619 Спасибо Дену Иванову.
5620
5621 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
5622
5623
5624 Изменения в nginx 0.5.6 09.01.2007
5625
5626 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
5627 кроме GET, HEAD и POST.
5628
5629 *) Добавление: модуль ngx_http_limit_zone_module.
5630
5631 *) Добавление: переменная $binary_remote_addr.
5632
5633 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
5634 ngx_imap_ssl_module.
5635
5636 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
5637
5638 *) Исправление: при использовании $r->sendfile() byte-ranges
5639 передавались неверно.
5640
5641
5642 Изменения в nginx 0.5.5 24.12.2006
5643
5644 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
5645
5646 *) Добавление: ключ -V.
5647
5648 *) Добавление: директива worker_rlimit_core поддерживает указание
5649 размера в K, M и G.
5650
5651 *) Исправление: модуль nginx.pm теперь может устанавливаться
5652 непривилегированным пользователем.
5653
5654 *) Исправление: при использовании методов $r->request_body или
5655 $r->request_body_file мог произойти segmentation fault.
5656
5657 *) Исправление: ошибок, специфичных для платформы ppc.
5658
5659
5660 Изменения в nginx 0.5.4 15.12.2006
5661
5662 *) Добавление: директиву perl можно использовать внутри блока
5663 limit_except.
5664
5665 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
5666 заголовке запроса для метода DELETE.
5667
5668 *) Исправление: при использовании одного параметра в директиве
5669 dav_access nginx мог сообщить об ошибке в конфигурации.
5670
5671 *) Исправление: при использовании переменной $host мог произойти
5672 segmentation fault; ошибка появилась в 0.4.14.
5673
5674
5675 Изменения в nginx 0.5.3 13.12.2006
5676
5677 *) Добавление: модуль ngx_http_perl_module поддерживает методы
5678 $r->status, $r->log_error и $r->sleep.
5679
5680 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
5681 конфигурации nginx'а.
5682
5683 *) Исправление: метод $r->has_request_body не работал.
5684
5685
5686 Изменения в nginx 0.5.2 11.12.2006
5687
5688 *) Исправление: если в директивах proxy_pass использовалось имя,
5689 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
5690 ошибка появилась в 0.5.1.
5691
5692
5693 Изменения в nginx 0.5.1 11.12.2006
5694
5695 *) Исправление: директива post_action могла не работать после неудачного
5696 завершения запроса.
5697
5698 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
5699 Спасибо Bron Gondwana.
5700
5701 *) Исправление: при указании в директиве fastcgi_pass имени описанного
5702 upstream'а выдавалось сообщение "no port in upstream"; ошибка
5703 появилась в 0.5.0.
5704
5705 *) Исправление: если в директивах proxy_pass и fastcgi_pass
5706 использовались одинаковых имена серверов, но с разными портами, то
5707 эти директивы использовали первый описанный порт; ошибка появилась в
5708 0.5.0.
5709
5710 *) Исправление: если в директивах proxy_pass и fastcgi_pass
5711 использовались unix domain сокеты, то эти директивы использовали
5712 первый описанный сокет; ошибка появилась в 0.5.0.
5713
5714 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
5715 если он был указан в последней строке файла паролей и после пароля не
5716 было перевода строки, возврата каретки или символа ":".
5717
5718 *) Исправление: переменная $upstream_response_time могла быть равна
5719 "0.000", хотя время обработки было больше 1 миллисекунды.
5720
5721
5722 Изменения в nginx 0.5.0 04.12.2006
5723
5724 *) Изменение: параметры в виде "%name" в директиве log_format больше не
5725 поддерживаются.
5726
5727 *) Изменение: директивы proxy_upstream_max_fails,
5728 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
5729 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
5730 memcached_upstream_fail_timeout больше не поддерживаются.
5731
5732 *) Добавление: директива server в блоке upstream поддерживает параметры
5733 max_fails, fail_timeout и down.
5734
5735 *) Добавление: директива ip_hash в блоке upstream.
5736
5737 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа
5738 сервера аутентификации IMAP/POP3 прокси.
5739
5740 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
5741 появилась в 0.4.14.
5742
5743
5744 Изменения в nginx 0.4.14 27.11.2006
5745
5746 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
5747
5748 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
5749 Linux и NetBSD.
5750
5751 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
5752 поддержкой потоков; ошибка появилась в 0.3.38.
5753
5754 *) Исправление: ngx_http_perl_module не работал корректно, если перл
5755 вызывался рекурсивно.
5756
5757 *) Исправление: nginx игнорировал имя сервера в строке запроса.
5758
5759 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
5760 процесс мог зациклиться.
5761
5762 *) Исправление: при изменении системного времени переменная
5763 $upstream_response_time могла быть отрицательной.
5764
5765 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
5766 прокси не передавался параметр Auth-Login-Attempt.
5767
5768 *) Исправление: при ошибке соединения с сервером аутентификации
5769 IMAP/POP3 прокси мог произойти segmentation fault.
5770
5771
5772 Изменения в nginx 0.4.13 15.11.2006
5773
5774 *) Добавление: директиву proxy_pass можно использовать внутри блока
5775 limit_except.
5776
5777 *) Добавление: директива limit_except поддерживает все WebDAV методы.
5778
5779 *) Исправление: при использовании директивы add_before_body без
5780 директивы add_after_body ответ передавался не полностью.
5781
5782 *) Исправление: большое тело запроса не принималось, если использовались
5783 метод epoll и deferred accept().
5784
5785 *) Исправление: для ответов модуля ngx_http_autoindex_module не
5786 выставлялась кодировка; ошибка появилась в 0.3.50.
5787
5788 *) Исправление: ошибки "[alert] zero size buf" при работе с
5789 FastCGI-сервером;
5790
5791 *) Исправление: параметр конфигурации --group= игнорировался.
5792 Спасибо Thomas Moschny.
5793
5794 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
5795 в 0.3.50.
5796
5797
5798 Изменения в nginx 0.4.12 31.10.2006
5799
5800 *) Добавление: модуль ngx_http_perl_module поддерживает метод
5801 $r->variable.
5802
5803 *) Исправление: при включении в ответ большого статического файла с
5804 помощью SSI ответ мог передаваться не полностью.
5805
5806 *) Исправление: nginx не убирал "#fragment" в URI.
5807
5808
5809 Изменения в nginx 0.4.11 25.10.2006
5810
5811 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
5812
5813 *) Добавление: модуль ngx_http_perl_module поддерживает метод
5814 $r->allow_ranges.
5815
5816 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
5817 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
5818
5819
5820 Изменения в nginx 0.4.10 23.10.2006
5821
5822 *) Добавление: POP3 прокси поддерживает APOP.
5823
5824 *) Исправление: при использовании методов select, poll и /dev/poll во
5825 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
5826 нагружал процессор.
5827
5828 *) Исправление: при использовании переменной $server_addr в директиве
5829 map мог произойти segmentation fault.
5830
5831 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
5832 для полных ответов; ошибка появилась в 0.4.7.
5833
5834 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
5835 0.4.9.
5836
5837
5838 Изменения в nginx 0.4.9 13.10.2006
5839
5840 *) Добавление: параметр set в команде SSI include.
5841
5842 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
5843 модуля nginx.pm.
5844
5845
5846 Изменения в nginx 0.4.8 11.10.2006
5847
5848 *) Исправление: если до команды SSI include с параметром wait
5849 выполнялась ещё одна команда SSI include, то параметр wait мог не
5850 работать.
5851
5852 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
5853 полных ответов.
5854 Спасибо Алексею Ковырину.
5855
5856
5857 Изменения в nginx 0.4.7 10.10.2006
5858
5859 *) Добавление: модуль ngx_http_flv_module.
5860
5861 *) Добавление: переменная $request_body_file.
5862
5863 *) Добавление: директивы charset и source_charset поддерживают
5864 переменные.
5865
5866 *) Исправление: если до команды SSI include с параметром wait
5867 выполнялась ещё одна команда SSI include, то параметр wait мог не
5868 работать.
5869
5870 *) Исправление: при использовании директивы "proxy_buffering off" или
5871 при работе с memcached соединения могли не закрываться по таймауту.
5872
5873 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
5874 amd64, sparc64 и ppc64.
5875
5876
5877 Изменения в nginx 0.4.6 06.10.2006
5878
5879 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
5880 amd64, sparc64 и ppc64.
5881
5882 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
5883 chunk'ами, если длина ответа в методе
5884 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
5885
5886 *) Исправление: после перенаправления ошибки с помощью директивы
5887 error_page любая директива модуля ngx_http_rewrite_module возвращала
5888 эту ошибку; ошибка появилась в 0.4.4.
5889
5890
5891 Изменения в nginx 0.4.5 02.10.2006
5892
5893 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
5894 в 0.4.4.
5895
5896
5897 Изменения в nginx 0.4.4 02.10.2006
5898
5899 *) Добавление: переменная $scheme.
5900
5901 *) Добавление: директива expires поддерживает параметр max.
5902
5903 *) Добавление: директива include поддерживает маску "*".
5904 Спасибо Jonathan Dance.
5905
5906 *) Исправление: директива return всегда изменяла код ответа,
5907 перенаправленного директивой error_page.
5908
5909 *) Исправление: происходил segmentation fault, если в методе PUT
5910 передавалось тело нулевой длины.
5911
5912 *) Исправление: при использовании переменных в директиве proxy_redirect
5913 редирект изменялся неверно.
5914
5915
5916 Изменения в nginx 0.4.3 26.09.2006
5917
5918 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
5919 error_page.
5920
5921 *) Добавление: поддержка Solaris 10 event ports.
5922
5923 *) Добавление: модуль ngx_http_browser_module.
5924
5925 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
5926 помощью директивы error_page мог произойти segmentation fault.
5927
5928 *) Исправление: происходил segmentation fault, если в директиве
5929 proxy_pass использовался unix domain сокет; ошибка появилась в
5930 0.3.47.
5931
5932 *) Исправление: SSI не работал с ответами memcached и
5933 небуферизированными проксированными ответами.
5934
5935 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
5936
5937
5938 Изменения в nginx 0.4.2 14.09.2006
5939
5940 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
5941 появилась в 0.4.1.
5942
5943
5944 Изменения в nginx 0.4.1 14.09.2006
5945
5946 *) Исправление: совместимость с DragonFlyBSD.
5947 Спасибо Павлу Назарову.
5948
5949 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
5950 файлов больше 2G.
5951
5952 *) Добавление: теперь на Linux nginx для статических запросов использует
5953 флаг O_NOATIME.
5954 Спасибо Yusuf Goolamabbas.
5955
5956
5957 Изменения в nginx 0.4.0 30.08.2006
5958
5959 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
5960 фазы init module в фазу HTTP postconfiguration.
5961
5962 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
5963 считывается заранее: нужно явно инициировать чтение с помощью метода
5964 $r->has_request_body.
5965
5966 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
5967 DECLINED.
5968
5969 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
5970 заголовка "Date" для метода PUT.
5971
5972 *) Добавление: директива ssi работает внутри блока if.
5973
5974 *) Исправление: происходил segmentation fault, если в директиве index
5975 использовалась переменные и при этом первое имя индексного файла было
5976 без переменных; ошибка появилась в 0.1.29.
5977
5978
5979 Изменения в nginx 0.3.61 28.08.2006
5980
5981 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
5982
5983 *) Добавление: директива msie_refresh.
5984
5985 *) Добавление: директива recursive_error_pages.
5986
5987 *) Исправление: директива rewrite возвращала неправильный редирект, если
5988 редирект включал в себя выделенные закодированные символы из
5989 оригинального URI.
5990
5991
5992 Изменения в nginx 0.3.60 18.08.2006
5993
5994 *) Исправление: во время перенаправления ошибки рабочий процесс мог
5995 зациклиться; ошибка появилась в 0.3.59.
5996
5997
5998 Изменения в nginx 0.3.59 16.08.2006
5999
6000 *) Добавление: теперь можно делать несколько перенаправлений через
6001 директиву error_page.
6002
6003 *) Исправление: директива dav_access не поддерживала три параметра.
6004
6005 *) Исправление: директива error_page не изменяла строку "Content-Type"
6006 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
6007 в 0.3.58.
6008
6009
6010 Изменения в nginx 0.3.58 14.08.2006
6011
6012 *) Добавление: директива error_page поддерживает переменные.
6013
6014 *) Изменение: теперь на Linux используется интерфейс procfs вместо
6015 sysctl.
6016
6017 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
6018 "Content-Type" наследуется из первоначального ответа.
6019
6020 *) Исправление: директива error_page не перенаправляла ошибку 413.
6021
6022 *) Исправление: завершающий "?" не удалял старые аргументы, если в
6023 переписанном URI не было новых аргументов.
6024
6025 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
6026
6027
6028 Изменения в nginx 0.3.57 09.08.2006
6029
6030 *) Добавление: переменная $ssl_client_serial.
6031
6032 *) Исправление: в операторе "!-e" в директиве if.
6033 Спасибо Андриану Буданцову.
6034
6035 *) Исправление: при проверке клиентского сертификата nginx не передавал
6036 клиенту информацию о требуемых сертификатах.
6037
6038 *) Исправление: переменная $document_root не поддерживала переменные в
6039 директиве root.
6040
6041
6042 Изменения в nginx 0.3.56 04.08.2006
6043
6044 *) Добавление: директива dav_access.
6045
6046 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
6047 "!-e", "-x" и "!-x".
6048
6049 *) Исправление: при записи в access_log некоторых передаваемых клиенту
6050 строк заголовков происходил segmentation fault, если запрос возвращал
6051 редирект.
6052
6053
6054 Изменения в nginx 0.3.55 28.07.2006
6055
6056 *) Добавление: параметр stub в команде SSI include.
6057
6058 *) Добавление: команда SSI block.
6059
6060 *) Добавление: скрипт unicode2nginx добавлен в contrib.
6061
6062 *) Исправление: если root был задан только переменной, то корень
6063 задавался относительно префикса сервера.
6064
6065 *) Исправление: если в запросе был "//" или "/.", и после этого
6066 закодированные символы в виде "%XX", то проксируемый запрос
6067 передавался незакодированным.
6068
6069 *) Исправление: метод $r->header_in("Cookie") модуля
6070 ngx_http_perl_module теперь возвращает все строки "Cookie" в
6071 заголовке запроса.
6072
6073 *) Исправление: происходил segmentation fault, если использовался
6074 "client_body_in_file_only on" и делался переход к следующему бэкенду.
6075
6076 *) Исправление: при некоторых условиях во время переконфигурации коды
6077 символов внутри директивы charset_map могли считаться неверными;
6078 ошибка появилась в 0.3.50.
6079
6080
6081 Изменения в nginx 0.3.54 11.07.2006
6082
6083 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
6084
6085 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
6086 memcached_next_upstream поддерживают параметр off.
6087
6088 *) Добавление: директива debug_connection поддерживает запись адресов в
6089 формате CIDR.
6090
6091 *) Исправление: при перекодировании ответа проксированного сервера или
6092 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
6093 полностью.
6094
6095 *) Исправление: переменная $upstream_response_time содержала время
6096 только первого обращения к бэкенду.
6097
6098 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
6099 в 0.3.53.
6100
6101
6102 Изменения в nginx 0.3.53 07.07.2006
6103
6104 *) Изменение: директива add_header добавляет строки в ответы с кодом
6105 204, 301 и 302.
6106
6107 *) Добавление: директива server в блоке upstream поддерживает параметр
6108 weight.
6109
6110 *) Добавление: директива server_name поддерживает маску "*".
6111
6112 *) Добавление: nginx поддерживает тело запроса больше 2G.
6113
6114 *) Исправление: если при использовании "satisfy_any on" клиент успешно
6115 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
6116 forbidden by rule".
6117
6118 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
6119 409.
6120
6121 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
6122 ошибку, nginx продолжал проксирование.
6123
6124
6125 Изменения в nginx 0.3.52 03.07.2006
6126
6127 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
6128 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
6129 ошибку 405.
6130
6131 *) Исправление: при использовании ограничения скорости рабочий процесс
6132 мог зациклиться; ошибка появилась в 0.3.37.
6133
6134 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
6135 "unknown charset", даже если перекодировка не требовалась; ошибка
6136 появилась в 0.3.50.
6137
6138 *) Исправление: если в результате запроса PUT возвращался код 409, то
6139 временный файл не удалялся.
6140
6141
6142 Изменения в nginx 0.3.51 30.06.2006
6143
6144 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
6145 ошибка появилась в 0.3.50.
6146
6147
6148 Изменения в nginx 0.3.50 28.06.2006
6149
6150 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
6151 переименованы соответственно в proxy_intercept_errors и
6152 fastcgi_intercept_errors.
6153
6154 *) Добавление: модуль ngx_http_charset_module поддерживает
6155 перекодирование из однобайтных кодировок в UTF-8 и обратно.
6156
6157 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
6158 "X-Accel-Charset" в ответе бэкенда.
6159
6160 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
6161 только если также использовался символ "$".
6162
6163 *) Исправление: при некоторых условиях в SSI после вставки могла быть
6164 добавлена строка "<!--".
6165
6166 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
6167 то при использовании небуферизированного проксировании не закрывалось
6168 соединение с клиентом.
6169
6170
6171 Изменения в nginx 0.3.49 31.05.2006
6172
6173 *) Исправление: в директиве set.
6174
6175 *) Исправление: при включении в ssi двух и более подзапросов,
6176 обрабатываемых через FastCGI, вместо вывода второго и остальных
6177 подзапросов в ответ включался вывод первого подзапроса.
6178
6179
6180 Изменения в nginx 0.3.48 29.05.2006
6181
6182 *) Изменение: теперь модуль ngx_http_charset_module работает для
6183 подзапросов, в ответах которых нет строки заголовка "Content-Type".
6184
6185 *) Исправление: если в директиве proxy_pass не было URI, то директива
6186 "proxy_redirect default" добавляла в переписанный редирект в начало
6187 лишний слэш.
6188
6189 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
6190 GET, теперь это делается только для редиректов, выполняемых с помощью
6191 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
6192 0.3.42.
6193
6194 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
6195 с поддержкой потоков; ошибка появилась в 0.3.46.
6196
6197
6198 Изменения в nginx 0.3.47 23.05.2006
6199
6200 *) Добавление: директива upstream.
6201
6202 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
6203 всегда убирается.
6204
6205
6206 Изменения в nginx 0.3.46 11.05.2006
6207
6208 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
6209 fastcgi_hide_header и fastcgi_pass_header.
6210
6211 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
6212 proxy_pass_server упразднены.
6213
6214 *) Добавление: в режиме прокси поддерживается строка заголовка
6215 "X-Accel-Buffering" в ответе бэкенда.
6216
6217 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
6218 ngx_http_perl_module.
6219
6220
6221 Изменения в nginx 0.3.45 06.05.2006
6222
6223 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
6224 ssl_client_certificate.
6225
6226 *) Изменение: теперь переменная $request_method возвращает метод только
6227 основного запроса.
6228
6229 *) Изменение: в таблице перекодировки koi-win изменены коды символа
6230 &deg;.
6231
6232 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
6233 номера.
6234
6235 *) Исправление: если nginx распределял запросы на несколько машин, то
6236 при падении одной из них запросы, предназначенные для этой машины,
6237 перенаправлялись только на одну машину вместо того, чтобы равномерно
6238 распределяться между остальными.
6239
6240
6241 Изменения в nginx 0.3.44 04.05.2006
6242
6243 *) Добавление: параметр wait в команде SSI include.
6244
6245 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
6246 белорусские символы.
6247
6248 *) Исправление: в SSI.
6249
6250
6251 Изменения в nginx 0.3.43 26.04.2006
6252
6253 *) Исправление: в SSI.
6254
6255
6256 Изменения в nginx 0.3.42 26.04.2006
6257
6258 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
6259
6260 *) Исправление: ошибки при использовании в директиве rewrite одного и
6261 того же выделения более одного раза.
6262
6263 *) Исправление: в лог не записывались переменные
6264 $sent_http_content_type, $sent_http_content_length,
6265 $sent_http_last_modified, $sent_http_connection,
6266 $sent_http_keep_alive и $sent_http_transfer_encoding.
6267
6268 *) Исправление: переменная $sent_http_cache_control возвращала
6269 содержимое только одной строки "Cache-Control" в заголовке ответа.
6270
6271
6272 Изменения в nginx 0.3.41 21.04.2006
6273
6274 *) Добавление: ключ -v.
6275
6276 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
6277 segmentation fault.
6278
6279 *) Исправление: в обработке FastCGI.
6280
6281 *) Исправление: если путь к перловым модулям не был указан с помощью
6282 --with-perl_modules_path=PATH или директивы perl_modules, то на
6283 старте происходил segmentation fault.
6284
6285
6286 Изменения в nginx 0.3.40 19.04.2006
6287
6288 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
6289
6290 *) Добавление: директива create_full_put_path.
6291
6292 *) Добавление: переменная $limit_rate.
6293
6294
6295 Изменения в nginx 0.3.39 17.04.2006
6296
6297 *) Добавление: директива uninitialized_variable_warn; уровень
6298 логгирования сообщения о неинициализированной переменной понижен с
6299 уровня alert на warn.
6300
6301 *) Добавление: директива override_charset.
6302
6303 *) Изменение: при использовании неизвестной переменной в SSI-командах
6304 echo и if expr='$name' теперь не записывается в лог сообщение о
6305 неизвестной переменной.
6306
6307 *) Исправление: счётчик активных соединений рос при превышении лимита
6308 соединений, заданного директивой worker_connections; ошибка появилась
6309 в 0.2.0.
6310
6311 *) Исправление: при некоторых условия ограничение скорости соединения
6312 могло не работать; ошибка появилась в 0.3.38.
6313
6314
6315 Изменения в nginx 0.3.38 14.04.2006
6316
6317 *) Добавление: модуль ngx_http_dav_module.
6318
6319 *) Изменение: оптимизация модуля ngx_http_perl_module.
6320 Спасибо Сергею Скворцову.
6321
6322 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6323 $r->request_body_file.
6324
6325 *) Добавление: директива client_body_in_file_only.
6326
6327 *) Изменение: теперь при переполнении диска nginx пытается писать
6328 access_log'и только раз в секунду.
6329 Спасибо Антону Южанинову и Максиму Дунину.
6330
6331 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
6332 при значениях больше 100 Kbyte/s.
6333 Спасибо ForJest.
6334
6335 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
6336 символы "\r" и "\n" в логине и пароле в закодированном виде.
6337 Спасибо Максиму Дунину.
6338
6339
6340 Изменения в nginx 0.3.37 07.04.2006
6341
6342 *) Добавление: директива limit_except.
6343
6344 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
6345 "!-f".
6346
6347 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6348 $r->request_body.
6349
6350 *) Исправление: в модуле ngx_http_addition_filter_module.
6351
6352
6353 Изменения в nginx 0.3.36 05.04.2006
6354
6355 *) Добавление: модуль ngx_http_addition_filter_module.
6356
6357 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
6358 внутри блока if.
6359
6360 *) Добавление: директивы proxy_ignore_client_abort и
6361 fastcgi_ignore_client_abort.
6362
6363 *) Добавление: переменная $request_completion.
6364
6365 *) Добавление: модуль ngx_http_perl_module поддерживает методы
6366 $r->request_method и $r->remote_addr.
6367
6368 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
6369
6370 *) Исправление: строка "\/" в начале выражения команды if модуля
6371 ngx_http_ssi_module воспринималась неверно.
6372
6373 *) Исправление: в использовании регулярных выражениях в команде if
6374 модуля ngx_http_ssi_module.
6375
6376 *) Исправление: при задании относительного пути в директивах
6377 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
6378 perl_modules использовался каталог относительно текущего каталога, а
6379 не относительно префикса сервера.
6380
6381
6382 Изменения в nginx 0.3.35 22.03.2006
6383
6384 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
6385 для первой директивы listen; ошибка появилась в 0.3.31.
6386
6387 *) Исправление: в директиве proxy_pass без URI при использовании в
6388 подзапросе.
6389
6390
6391 Изменения в nginx 0.3.34 21.03.2006
6392
6393 *) Добавление: директива add_header поддерживает переменные.
6394
6395
6396 Изменения в nginx 0.3.33 15.03.2006
6397
6398 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
6399 fastcgi_next_upstream.
6400
6401 *) Исправление: ngx_http_perl_module не работал со встроенным в
6402 конфигурационный файл кодом, если он не начинался сразу же с "sub".
6403
6404 *) Исправление: в директиве post_action.
6405
6406
6407 Изменения в nginx 0.3.32 11.03.2006
6408
6409 *) Исправление: удаление отладочного логгирования на старте и при
6410 переконфигурации; ошибка появилась в 0.3.31.
6411
6412
6413 Изменения в nginx 0.3.31 10.03.2006
6414
6415 *) Изменение: теперь nginx передаёт неверные ответы проксированного
6416 бэкенда.
6417
6418 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
6419
6420 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
6421
6422 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
6423 64-битном ядре MacOSX.
6424 Спасибо Андрею Нигматулину.
6425
6426 *) Исправление: если внутри одного сервера описаны несколько директив
6427 listen, слушающих на разных адресах, то имена серверов вида
6428 "*.domain.tld" работали только для первого адреса; ошибка появилась в
6429 0.3.18.
6430
6431 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
6432 не передавались запросы с телом, записанным во временный файл.
6433
6434 *) Исправление: совместимость с perl 5.8.8.
6435
6436
6437 Изменения в nginx 0.3.30 22.02.2006
6438
6439 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
6440 с уровня crit.
6441
6442 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
6443 ngx_http_ssi_filter_module.
6444
6445 *) Исправление: nginx не собирался на i386 платформе, если использовался
6446 PIC; ошибка появилась в 0.3.27.
6447
6448
6449 Изменения в nginx 0.3.29 20.02.2006
6450
6451 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
6452 FastCGI передаёт большое количество предупреждений перед ответом.
6453
6454 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
6455 строка заголовка "Transfer-Encoding: chunked".
6456
6457 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
6458 передавал полные строки заголовка ответа в отдельных FastCGI записях.
6459
6460 *) Исправление: если в директиве post_action был указан проксируемый
6461 URI, то он выполнялся только после успешного завершения запроса.
6462
6463
6464 Изменения в nginx 0.3.28 16.02.2006
6465
6466 *) Добавление: директива restrict_host_names упразднена.
6467
6468 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
6469
6470 *) Исправление: при некоторых условиях проксированное соединение с
6471 клиентом завершалось преждевременно.
6472 Спасибо Владимиру Шутову.
6473
6474 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
6475 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
6476
6477 *) Исправление: директива post_action работала только после успешного
6478 завершения запроса.
6479
6480 *) Исправление: тело проксированного ответа, создаваемого директивой
6481 post_action, передавалось клиенту.
6482
6483
6484 Изменения в nginx 0.3.27 08.02.2006
6485
6486 *) Изменение: директивы variables_hash_max_size и
6487 variables_hash_bucket_size.
6488
6489 *) Добавление: переменная $body_bytes_sent доступна не только в
6490 директиве log_format.
6491
6492 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
6493
6494 *) Добавление: определение размера строки кэша распространённых
6495 процессоров при старте.
6496
6497 *) Добавление: директива accept_mutex теперь поддерживается посредством
6498 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
6499
6500 *) Добавление: директива lock_file и параметр автоконфигурации
6501 --with-lock-path=PATH.
6502
6503 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
6504 не передавались запросы с телом.
6505
6506
6507 Изменения в nginx 0.3.26 03.02.2006
6508
6509 *) Изменение: директива optimize_host_names переименована в
6510 optimize_server_names.
6511
6512 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
6513 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
6514
6515
6516 Изменения в nginx 0.3.25 01.02.2006
6517
6518 *) Исправление: при неверной конфигурации на старте или во время
6519 переконфигурации происходил segmentation fault; ошибка появилась в
6520 0.3.24.
6521
6522
6523 Изменения в nginx 0.3.24 01.02.2006
6524
6525 *) Изменение: обход ошибки в kqueue во FreeBSD.
6526
6527 *) Исправление: ответ, создаваемый директивой post_action, теперь не
6528 передаётся клиенту.
6529
6530 *) Исправление: при использовании большого количества лог-файлов
6531 происходила утечка памяти.
6532
6533 *) Исправление: внутри одного location работала только первая директива
6534 proxy_redirect.
6535
6536 *) Исправление: на 64-битных платформах при старте мог произойти
6537 segmentation fault, если использовалось большое количество имён в
6538 директивах server_name; ошибка появилась в 0.3.18.
6539
6540
6541 Изменения в nginx 0.3.23 24.01.2006
6542
6543 *) Добавление: директива optimize_host_names.
6544
6545 *) Исправление: ошибки при использовании переменных в директивах path и
6546 alias.
6547
6548 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
6549 Linux и Solaris.
6550
6551
6552 Изменения в nginx 0.3.22 17.01.2006
6553
6554 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
6555 и $r->unescape.
6556
6557 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
6558 упразднён.
6559
6560 *) Исправление: если в директиве valid_referers указаны только none или
6561 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
6562
6563
6564 Изменения в nginx 0.3.21 16.01.2006
6565
6566 *) Добавление: модуль ngx_http_perl_module.
6567
6568 *) Изменение: директива valid_referers разрешает использовать рефереры
6569 совсем без URI.
6570
6571
6572 Изменения в nginx 0.3.20 11.01.2006
6573
6574 *) Исправление: ошибки в обработке SSI.
6575
6576 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
6577 виде /uri?args.
6578
6579
6580 Изменения в nginx 0.3.19 28.12.2005
6581
6582 *) Добавление: директивы path и alias поддерживают переменные.
6583
6584 *) Изменение: теперь директива valid_referers опять учитывает URI.
6585
6586 *) Исправление: ошибки в обработке SSI.
6587
6588
6589 Изменения в nginx 0.3.18 26.12.2005
6590
6591 *) Добавление: директива server_names поддерживает имена вида
6592 ".domain.tld".
6593
6594 *) Добавление: директива server_names использует хэш для имён вида
6595 "*.domain.tld" и более эффективный хэш для обычных имён.
6596
6597 *) Изменение: директивы server_names_hash_max_size и
6598 server_names_hash_bucket_size.
6599
6600 *) Изменение: директивы server_names_hash и server_names_hash_threshold
6601 упразднены.
6602
6603 *) Добавление: директива valid_referers использует хэш для имён сайтов.
6604
6605 *) Изменение: теперь директива valid_referers проверяет только имена
6606 сайтов без учёта URI.
6607
6608 *) Исправление: некоторые имена вида ".domain.tld" неверно
6609 обрабатывались модулем ngx_http_map_module.
6610
6611 *) Исправление: если конфигурационного файла не было, то происходил
6612 segmentation fault; ошибка появилась в 0.3.12.
6613
6614 *) Исправление: на 64-битных платформах при старте мог произойти
6615 segmentation fault; ошибка появилась в 0.3.16.
6616
6617
6618 Изменения в nginx 0.3.17 18.12.2005
6619
6620 *) Изменение: на Linux configure теперь проверяет наличие epoll и
6621 sendfile64() в ядре.
6622
6623 *) Добавление: директива map поддерживает доменные имена в формате
6624 ".domain.tld".
6625
6626 *) Исправление: во время SSL handshake не иcпользовались таймауты;
6627 ошибка появилась в 0.2.4.
6628
6629 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6630
6631 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
6632 по умолчанию использовался порт 80.
6633
6634
6635 Изменения в nginx 0.3.16 16.12.2005
6636
6637 *) Добавление: модуль ngx_http_map_module.
6638
6639 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
6640
6641 *) Добавление: директива ssi_value_length.
6642
6643 *) Добавление: директива worker_rlimit_core.
6644
6645 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
6646 Pentium 4 номер соединения в логах всегда был равен 1.
6647
6648 *) Исправление: команда config timefmt в SSI задавала неверный формат
6649 времени.
6650
6651 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
6652 использовании SSL соединений; ошибка появилась в 0.3.13.
6653 Спасибо Rob Mueller.
6654
6655 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
6656 ошибка появилась в 0.3.13.
6657
6658
6659 Изменения в nginx 0.3.15 07.12.2005
6660
6661 *) Добавление: новой код 444 в директиве return для закрытия соединения.
6662
6663 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
6664
6665 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
6666 соединений только при плавном выходе и включённой директиве
6667 debug_points.
6668
6669
6670 Изменения в nginx 0.3.14 05.12.2005
6671
6672 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
6673 в 0.3.13.
6674
6675
6676 Изменения в nginx 0.3.13 05.12.2005
6677
6678 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
6679
6680 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
6681 /dev/poll.
6682
6683 *) Исправление: ошибки в обработке SSI.
6684
6685 *) Исправление: sendfilev() в Solaris теперь не используется при
6686 передаче тела запроса FastCGI-серверу через unix domain сокет.
6687
6688 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
6689 появилась в 0.3.11.
6690
6691
6692 Изменения в nginx 0.3.12 26.11.2005
6693
6694 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
6695 то при использовании директивы "satisfy_any on" директивы доступа и
6696 аутентификации не работали. Модуль ngx_http_realip_module не
6697 собирался и не собирается по умолчанию.
6698
6699 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
6700
6701 *) Изменение: директивы proxy_header_buffer_size и
6702 fastcgi_header_buffer_size переименованы соответственно в
6703 proxy_buffer_size и fastcgi_buffer_size.
6704
6705 *) Добавление: модуль ngx_http_memcached_module.
6706
6707 *) Добавление: директива proxy_buffering.
6708
6709 *) Исправление: изменение в работе с accept mutex при использовании
6710 метода rtsig; ошибка появилась в 0.3.0.
6711
6712 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
6713 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
6714
6715 *) Исправление: при наследовании директивы auth_basic с уровня http в
6716 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
6717 "Basic realm".
6718
6719 *) Исправление: если в директиве access_log был явно указан формат
6720 combined, то в лог записывались пустые строки; ошибка появилась в
6721 0.3.8.
6722
6723 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
6724 Solaris.
6725
6726 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
6727 в кавычках и закрывающую скобку.
6728
6729
6730 Изменения в nginx 0.3.11 15.11.2005
6731
6732 *) Исправление: nginx не передавал при проксировании тело запроса и
6733 строки заголовка клиента; ошибка появилась в 0.3.10.
6734
6735
6736 Изменения в nginx 0.3.10 15.11.2005
6737
6738 *) Изменение: директива valid_referers и переменная $invalid_referer
6739 перенесены из модуля ngx_http_rewrite_module в новый модуль
6740 ngx_http_referer_module.
6741
6742 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
6743 "$body_bytes_sent".
6744
6745 *) Добавление: переменные "$sent_http_...".
6746
6747 *) Добавление: директива if поддерживает операции "=" и "!=".
6748
6749 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
6750
6751 *) Добавление: директива proxy_set_body.
6752
6753 *) Добавление: директива post_action.
6754
6755 *) Добавление: модуль ngx_http_empty_gif_module.
6756
6757 *) Добавление: директива worker_cpu_affinity для Linux.
6758
6759 *) Исправление: директива rewrite не раскодировала символы в редиректах
6760 в URI, теперь символы раскодируются, кроме символов %00-%25 и
6761 %7F-%FF.
6762
6763 *) Исправление: nginx не собирался компилятором icc 9.0.
6764
6765 *) Исправление: если для статического файла нулевого размера был
6766 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
6767
6768
6769 Изменения в nginx 0.3.9 10.11.2005
6770
6771 *) Исправление: nginx считал небезопасными URI, в которых между двумя
6772 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
6773
6774
6775 Изменения в nginx 0.3.8 09.11.2005
6776
6777 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
6778 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
6779 наличие путей "/../" и нулей.
6780
6781 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
6782 строке "Authorization" в заголовке запроса.
6783
6784 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
6785 и ngx_imap_ssl_module.
6786
6787 *) Добавление: директива auth_http_header модуля
6788 ngx_imap_auth_http_module.
6789
6790 *) Добавление: директива add_header.
6791
6792 *) Добавление: модуль ngx_http_realip_module.
6793
6794 *) Добавление: новые переменные для использования в директиве
6795 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
6796 $uri, $request_time, $request_length, $upstream_status,
6797 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
6798 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
6799 упразднены.
6800
6801 *) Изменение: в директиве "if" ложными значениями переменных теперь
6802 являются пустая строка "" и строки, начинающиеся на "0".
6803
6804 *) Исправление: при работает с проксированными или FastCGI-серверами
6805 nginx мог оставлять открытыми соединения и временные файлы с
6806 запросами клиентов.
6807
6808 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
6809 плавном выходе.
6810
6811 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
6812 запрос проксировался в location, заданном регулярным выражением, то
6813 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
6814
6815 *) Исправление: директива expires не удаляла уже установленную строку
6816 заголовка "Expires".
6817
6818 *) Исправление: при использовании метода rtsig и нескольких рабочих
6819 процессах nginx мог перестать принимать запросы.
6820
6821 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
6822 "\'".
6823
6824 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
6825 при использовании сжатия ответ передавался не до конца или не
6826 передавался вообще.
6827
6828
6829 Изменения в nginx 0.3.7 27.10.2005
6830
6831 *) Добавление: директива access_log поддерживает параметр buffer=.
6832
6833 *) Исправление: nginx не собирался на платформах, отличных от i386,
6834 amd64, sparc и ppc; ошибка появилась в 0.3.2.
6835
6836
6837 Изменения в nginx 0.3.6 24.10.2005
6838
6839 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
6840 пустой логин.
6841
6842 *) Добавление: директива log_format поддерживает переменные в виде
6843 $name.
6844
6845 *) Исправление: если хотя бы в одном сервере не было описано ни одной
6846 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
6847 0.3.3.
6848
6849 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
6850 использовался порт 80.
6851
6852
6853 Изменения в nginx 0.3.5 21.10.2005
6854
6855 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
6856 мог произойти segmentation fault; ошибка появилась в 0.2.2.
6857
6858 *) Исправление: accept mutex не работал, все соединения обрабатывались
6859 одним рабочим процессом; ошибка появилась в 0.3.3.
6860
6861 *) Исправление: при использовании метода rtsig и директивы
6862 timer_resolution не работали таймауты.
6863
6864
6865 Изменения в nginx 0.3.4 19.10.2005
6866
6867 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
6868 появилась в 0.3.3.
6869
6870
6871 Изменения в nginx 0.3.3 19.10.2005
6872
6873 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
6874 "backlog" и "accept_filter".
6875
6876 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
6877
6878 *) Изменение: параметр лога $msec теперь не требует дополнительного
6879 системного вызова gettimeofday().
6880
6881 *) Добавление: ключ -t теперь проверяет директивы listen.
6882
6883 *) Исправление: если в директиве listen был указан неверный адрес, то
6884 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
6885
6886 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
6887 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
6888
6889 *) Добавление: директива timer_resolution.
6890
6891 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
6892
6893 *) Исправление: временный файл с телом запроса клиента теперь удаляется
6894 сразу после того, как клиенту передан заголовок ответа.
6895
6896 *) Исправление: совместимость с OpenSSL 0.9.6.
6897
6898 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
6899 относительными.
6900
6901 *) Исправление: директива ssl_prefer_server_ciphers не работала для
6902 модуля ngx_imap_ssl_module.
6903
6904 *) Исправление: директива ssl_protocols позволяла задать только один
6905 протокол.
6906
6907
6908 Изменения в nginx 0.3.2 12.10.2005
6909
6910 *) Добавление: поддержка Sun Studio 10 C compiler.
6911
6912 *) Добавление: директивы proxy_upstream_max_fails,
6913 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
6914 fastcgi_upstream_fail_timeout.
6915
6916
6917 Изменения в nginx 0.3.1 10.10.2005
6918
6919 *) Исправление: во время переполнения очереди сигналов при использовании
6920 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
6921
6922 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
6923
6924
6925 Изменения в nginx 0.3.0 07.10.2005
6926
6927 *) Изменение: убрано десятидневное ограничение времени работы рабочего
6928 процесса. Ограничение было введено из-за переполнения миллисекундных
6929 таймеров.
6930
6931
6932 Изменения в nginx 0.2.6 05.10.2005
6933
6934 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
6935 бэкенду при использовании распределения нагрузки.
6936
6937 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
6938 запрос теперь передаётся, если в директиве proxy_pass отсутствует
6939 URI.
6940
6941 *) Добавление: директива error_page поддерживает редиректы и позволяет
6942 более гибко менять код ошибки.
6943
6944 *) Изменение: в проксированных подзапросах теперь игнорируется
6945 переданный charset.
6946
6947 *) Исправление: если после изменения URI в блоке if для запроса не
6948 находилась новая конфигурация, то правила модуля
6949 ngx_http_rewrite_module выполнялись снова.
6950
6951 *) Исправление: если директива set устанавливала переменную модуля
6952 ngx_http_geo_module в какой-либо части конфигурации, то эта
6953 переменная не была доступна в других частях конфигурации и выдавалась
6954 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
6955
6956
6957 Изменения в nginx 0.2.5 04.10.2005
6958
6959 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
6960 теперь выдаёт предупреждение и изменяет старое значение.
6961
6962 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
6963
6964 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
6965 команде include.
6966
6967 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
6968 значений переменных в выражениях команды if.
6969
6970
6971 Изменения в nginx 0.2.4 03.10.2005
6972
6973 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
6974 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
6975 if.
6976
6977 *) Исправление: ошибки при проксировании location без слэша в конце;
6978 ошибка появилась в 0.1.44.
6979
6980 *) Исправление: при использовании метода rtsig мог произойти
6981 segmentation fault; ошибка появилась в 0.2.0.
6982
6983
6984 Изменения в nginx 0.2.3 30.09.2005
6985
6986 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
6987 появилась в 0.2.2.
6988
6989
6990 Изменения в nginx 0.2.2 30.09.2005
6991
6992 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
6993
6994 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
6995 директивой set.
6996
6997 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
6998 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
6999
7000 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
7001 длинных имён файлов;
7002
7003 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
7004 файлы, начинающиеся на точку.
7005
7006 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
7007 привести также к закрытию другого соединения.
7008 Спасибо Rob Mueller.
7009
7010 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
7011 HTTPS.
7012
7013
7014 Изменения в nginx 0.2.1 23.09.2005
7015
7016 *) Исправление: если все бэкенды, используемые для балансировки
7017 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
7018 nginx мог зациклится; ошибка появилась в 0.2.0.
7019
7020
7021 Изменения в nginx 0.2.0 23.09.2005
7022
7023 *) Изменились имена pid-файлов, используемые во время обновления
7024 исполняемого файла. Ручное переименование теперь не нужно. Старый
7025 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
7026 запускает новый исполняемый файл. Новый основной процесс создаёт
7027 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
7028 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
7029 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
7030 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
7031 0.2.0 - используют pid-файл без суффиксов.
7032
7033 *) Изменение: директива worker_connections, новое название директивы
7034 connections; директива теперь задаёт максимальное число соединений, а
7035 не максимально возможный номер дескриптора для сокета.
7036
7037 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
7038 рабочего процесса.
7039
7040 *) Добавление: директива satisfy_any.
7041
7042 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
7043 не работают для подзапросов.
7044
7045 *) Добавление: директивы worker_rlimit_nofile и
7046 worker_rlimit_sigpending.
7047
7048 *) Исправление: если все бэкенды, используемые для балансировки
7049 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
7050 nginx не обращался к ним в течение 60 секунд.
7051
7052 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
7053 Спасибо Rob Mueller.
7054
7055 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
7056
7057 *) Исправление: ошибки при использовании SSI и сжатия.
7058
7059 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
7060 "Expires" и "Cache-Control".
7061 Спасибо Александру Кукушкину.
7062
7063
7064 Изменения в nginx 0.1.45 08.09.2005
7065
7066 *) Изменение: директива ssl_engine упразднена в модуле
7067 ngx_http_ssl_module и перенесена на глобальный уровень.
7068
7069 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
7070 передавались через SSL соединение.
7071
7072 *) Разные исправления в IMAP/POP3 прокси.
7073
7074
7075 Изменения в nginx 0.1.44 06.09.2005
7076
7077 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
7078
7079 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
7080
7081 *) Добавление: директива userid_mark.
7082
7083 *) Добавление: значение переменной $remote_user определяется независимо
7084 от того, используется ли авторизация или нет.
7085
7086
7087 Изменения в nginx 0.1.43 30.08.2005
7088
7089 *) Добавление: listen(2) backlog в директиве listen можно менять по
7090 сигналу -HUP.
7091
7092 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
7093
7094 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
7095 серверу.
7096
7097 *) Исправление: если в ответе проксированного сервера или FastCGI
7098 сервера была строка "Cache-Control", то при использовании директивы
7099 expires происходил segmentation fault или рабочий процесс мог
7100 зациклится; в режиме прокси ошибка появилась в 0.1.29.
7101
7102
7103 Изменения в nginx 0.1.42 23.08.2005
7104
7105 *) Исправление: если URI запроса получался нулевой длины после обработки
7106 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
7107 происходил segmentation fault или bus error.
7108
7109 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
7110 появилась в 0.1.38.
7111
7112
7113 Изменения в nginx 0.1.41 25.07.2005
7114
7115 *) Исправление: если переменная использовалась в файле конфигурации, то
7116 она не могла использоваться в SSI.
7117
7118
7119 Изменения в nginx 0.1.40 22.07.2005
7120
7121 *) Исправление: если клиент слал очень длинную строку заголовка, то в
7122 логе не помещалась информация, связанная с этим запросом.
7123
7124 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
7125 строка "Set-Cookie"; ошибка появилась в 0.1.39.
7126
7127 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
7128 строка "Content-Disposition".
7129
7130 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
7131 на которых он слушал.
7132
7133 *) Исправление: после обновления исполняемого файла на лету на Linux и
7134 Solaris название процесса в команде ps становилось короче.
7135
7136
7137 Изменения в nginx 0.1.39 14.07.2005
7138
7139 *) Изменения в модуле ngx_http_charset_module: директива default_charset
7140 упразднена; директива charset задаёт кодировку ответа; директива
7141 source_charset задаёт только исходную кодировку.
7142
7143 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
7144 не передавалась строка заголовка "WWW-Authenticate".
7145
7146 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
7147 могли закрыть соединение до того, как что-нибудь было передано
7148 клиенту; ошибка появилась в 0.1.38.
7149
7150 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
7151
7152 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
7153 URI в команде include virtual.
7154
7155 *) Исправление: если в строке заголовка ответа бэкенда была строка
7156 "Location", которую nginx не должен был изменять, то в ответе
7157 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
7158
7159 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
7160 ngx_http_fastcgi_module не наследовались с уровня server на уровень
7161 location; ошибка появилась в 0.1.29.
7162
7163 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
7164 сертификатов.
7165
7166 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
7167 длинных имён файлов; ошибка появилась в 0.1.38.
7168
7169 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
7170 стадии login.
7171
7172
7173 Изменения в nginx 0.1.38 08.07.2005
7174
7175 *) Добавление: директива limit_rate поддерживается в режиме прокси и
7176 FastCGI.
7177
7178 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7179 "X-Accel-Limit-Rate" в ответе бэкенда.
7180
7181 *) Добавление: директива break.
7182
7183 *) Добавление: директива log_not_found.
7184
7185 *) Исправление: при перенаправлении запроса с помощью строки заголовка
7186 "X-Accel-Redirect" не изменялся код ответа.
7187
7188 *) Исправление: переменные, установленные директивой set не могли
7189 использоваться в SSI.
7190
7191 *) Исправление: при включении в SSI более одного удалённого подзапроса
7192 мог произойти segmentation fault.
7193
7194 *) Исправление: если статусная строка в ответе бэкенда передавалась в
7195 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
7196 0.1.29.
7197
7198 *) Добавление: директива ssi_types.
7199
7200 *) Добавление: директива autoindex_exact_size.
7201
7202 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
7203 имена файлов в UTF-8.
7204
7205 *) Добавление: IMAP/POP3 прокси.
7206
7207
7208 Изменения в nginx 0.1.37 23.06.2005
7209
7210 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
7211
7212 *) Исправление: при включении большого количества вставок или нескольких
7213 больших вставок с помощью SSI ответ мог передаваться не полностью.
7214
7215 *) Исправление: если все бэкенды возвращали ответ 404, то при
7216 использовании параметра http_404 в директивах proxy_next_upstream или
7217 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
7218
7219
7220 Изменения в nginx 0.1.36 15.06.2005
7221
7222 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host",
7223 "Connection", "Content-Length" и "Authorization", то nginx теперь
7224 выдаёт ошибку 400.
7225
7226 *) Изменение: директива post_accept_timeout упразднена.
7227
7228 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
7229 listen.
7230
7231 *) Добавление: поддержка accept фильтров во FreeBSD.
7232
7233 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
7234
7235 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
7236 файлов в UTF-8.
7237
7238 *) Исправление: после добавления новый лог-файл ротация этого лога по
7239 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
7240 раза по сигналу -HUP.
7241
7242
7243 Изменения в nginx 0.1.35 07.06.2005
7244
7245 *) Добавление: директива working_directory.
7246
7247 *) Добавление: директива port_in_redirect.
7248
7249 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
7250 то происходил segmentation fault; ошибка появилась в 0.1.29.
7251
7252 *) Исправление: если было сконфигурировано более 10 серверов или в
7253 сервере не описана директива "listen", то при запуске мог произойти
7254 segmentation fault.
7255
7256 *) Исправление: если ответ не помещался во временный файл, то мог
7257 произойти segmentation fault.
7258
7259 *) Исправление: nginx возвращал ошибку 400 на запросы вида
7260 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
7261
7262
7263 Изменения в nginx 0.1.34 26.05.2005
7264
7265 *) Исправление: при включении больших ответов с помощью SSI рабочий
7266 процесс мог зациклиться.
7267
7268 *) Исправление: переменные, устанавливаемые директивой "set", не были
7269 доступны в SSI.
7270
7271 *) Добавление: директива autoindex_localtime.
7272
7273 *) Исправление: пустое значение в директиве proxy_set_header запрещает
7274 передачу заголовка.
7275
7276
7277 Изменения в nginx 0.1.33 23.05.2005
7278
7279 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
7280 появилась в 0.1.29.
7281
7282 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
7283 вызывали bus fault при запуске.
7284
7285 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
7286 HTTP.
7287
7288 *) Исправление: если директива rewrite использовала выделения внутри
7289 директивы if, то возвращалась ошибка 500.
7290
7291
7292 Изменения в nginx 0.1.32 19.05.2005
7293
7294 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
7295 передавались аргументы; ошибка появилась в 0.1.29.
7296
7297 *) Добавление: директива if поддерживает выделения в регулярных
7298 выражениях.
7299
7300 *) Добавление: директива set поддерживает переменные и выделения из
7301 регулярных выражений.
7302
7303 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7304 "X-Accel-Redirect" в ответе бэкенда.
7305
7306
7307 Изменения в nginx 0.1.31 16.05.2005
7308
7309 *) Исправление: при использовании SSL ответ мог передаваться не до
7310 конца.
7311
7312 *) Исправление: ошибки при обработке SSI в ответе, полученного от
7313 FastCGI-сервера.
7314
7315 *) Исправление: ошибки при использовании SSI и сжатия.
7316
7317 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
7318 появилась в 0.1.30.
7319
7320
7321 Изменения в nginx 0.1.30 14.05.2005
7322
7323 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
7324
7325 *) Исправление: при использовании SSL ответ мог передаваться не до
7326 конца.
7327
7328 *) Исправление: если длина части ответа, полученного за один раз от
7329 проксируемого или FastCGI сервера была равна 500 байт, то nginx
7330 возвращал код ответа 500; в режиме прокси ошибка появилась только в
7331 0.1.29.
7332
7333 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
7334 параметрами.
7335
7336 *) Добавление: директива return может возвращать код ответа 204.
7337
7338 *) Добавление: директива ignore_invalid_headers.
7339
7340
7341 Изменения в nginx 0.1.29 12.05.2005
7342
7343 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
7344 virtual.
7345
7346 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
7347 вида 'if expr="$NAME"' и команды else и endif. Допускается только
7348 один уровень вложенности.
7349
7350 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
7351 DATE_LOCAL и DATE_GMT и команду config timefmt.
7352
7353 *) Добавление: директива ssi_ignore_recycled_buffers.
7354
7355 *) Исправление: если переменная QUERY_STRING не была определена, то в
7356 команде echo не ставилось значение по умолчанию.
7357
7358 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
7359
7360 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
7361 proxy_pass_request_body и proxy_method.
7362
7363 *) Добавление: директива proxy_set_header. Директива proxy_x_var
7364 упразднена и должна быть заменена директивой proxy_set_header.
7365
7366 *) Изменение: директива proxy_preserve_host упразднена и должна быть
7367 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
7368 off" или директивой "proxy_set_header Host $host:$proxy_port" и
7369 соответствующими ей директивами proxy_redirect.
7370
7371 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
7372 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
7373
7374 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
7375 быть заменена директивой
7376 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
7377
7378 *) Изменение: директива proxy_set_x_url упразднена и должна быть
7379 заменена директивой
7380 "proxy_set_header X-URL http://$host:$server_port$request_uri".
7381
7382 *) Добавление: директива fastcgi_param.
7383
7384 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
7385 упразднены и должны быть замены директивами fastcgi_param.
7386
7387 *) Добавление: директива index может использовать переменные.
7388
7389 *) Добавление: директива index может быть указана на уровне http и
7390 server.
7391
7392 *) Изменение: только последний параметр в директиве index может быть
7393 абсолютным.
7394
7395 *) Добавление: в директиве rewrite могут использоваться переменные.
7396
7397 *) Добавление: директива internal.
7398
7399 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
7400 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
7401 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
7402
7403 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
7404 клиента и ответа бэкенда.
7405
7406 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
7407 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
7408
7409 *) Исправление: если бэкенд передавал неверную строку в заголовке
7410 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
7411
7412 *) Исправление: при использовании отказоустойчивой конфигурации в
7413 FastCGI мог происходить segmentation fault.
7414
7415 *) Исправление: директива expires не удаляла уже установленные строки
7416 заголовка "Expires" и "Cache-Control".
7417
7418 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
7419 запроса "Host".
7420
7421 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
7422
7423 *) Исправление: директива rewrite неверно работала, если в запросе
7424 присутствовали аргументы.
7425
7426 *) Исправление: nginx не собирался на MacOS X.
7427
7428
7429 Изменения в nginx 0.1.28 08.04.2005
7430
7431 *) Исправление: при проксировании больших файлов nginx сильно нагружал
7432 процессор.
7433
7434 *) Исправление: nginx не собирался gcc 4.0 на Linux.
7435
7436
7437 Изменения в nginx 0.1.27 28.03.2005
7438
7439 *) Добавление: параметр blocked в директиве valid_referers.
7440
7441 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
7442 уровне info, в лог также записывается имя сервера и строки заголовка
7443 запроса "Host" и "Referer".
7444
7445 *) Изменение: при записи ошибок в лог записывается также строка
7446 заголовка запроса "Host".
7447
7448 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
7449 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
7450
7451 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
7452 параметр конфигурации --without-ngx_http_auth_basic_module.
7453
7454
7455 Изменения в nginx 0.1.26 22.03.2005
7456
7457 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
7458 игнорируется и записываются в error_log на уровне info.
7459
7460 *) Изменение: при записи ошибок в лог записывается также имя сервера,
7461 при обращении к которому произошла ошибка.
7462
7463 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
7464 и auth_basic_user_file.
7465
7466
7467 Изменения в nginx 0.1.25 19.03.2005
7468
7469 *) Исправление: nginx не работал на Linux parisc.
7470
7471 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
7472 sysctl kern.ipc.somaxconn слишком большое.
7473
7474 *) Исправление: если модуль ngx_http_index_module делал внутреннее
7475 перенаправление запроса в модули ngx_http_proxy_module или
7476 ngx_http_fastcgi_module, то файл индекса не закрывался после
7477 обслуживания запроса.
7478
7479 *) Добавление: директива proxy_pass может использоваться в location,
7480 заданных регулярным выражением.
7481
7482 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
7483 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
7484
7485 *) Исправление: nginx очень медленно запускался при большом количестве
7486 адресов и использовании текстовых значений в директиве geo.
7487
7488 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
7489 Прежний вариант без "$" пока работает, но вскоре будет убран.
7490
7491 *) Добавление: параметр лога "%{VARIABLE}v".
7492
7493 *) Добавление: директива "set $name value".
7494
7495 *) Исправление: совместимость с gcc 4.0.
7496
7497 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
7498
7499
7500 Изменения в nginx 0.1.24 04.03.2005
7501
7502 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
7503 QUERY_STRING и DOCUMENT_URI.
7504
7505 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
7506 на существующий каталог, если этот каталог был указан как alias.
7507
7508 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
7509 при больших ответах.
7510
7511 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
7512 правильным referrer'ом.
7513
7514
7515 Изменения в nginx 0.1.23 01.03.2005
7516
7517 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
7518 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
7519 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
7520
7521 *) Добавление: параметр лога %request_time.
7522
7523 *) Добавление: если запрос пришёл без строки заголовка "Host", то
7524 директива proxy_preserve_host устанавливает в качестве этого
7525 заголовка первое имя сервера из директивы server_name.
7526
7527 *) Исправление: nginx не собирался на платформах, отличных от i386,
7528 amd64, sparc и ppc; ошибка появилась в 0.1.22.
7529
7530 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
7531 информацию не о символическом линке, а о файле или каталоге, на
7532 который он указывает.
7533
7534 *) Исправление: если клиенту ничего не передавалось, то параметр
7535 %apache_length записывал в лог отрицательную длину заголовка ответа.
7536
7537
7538 Изменения в nginx 0.1.22 22.02.2005
7539
7540 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
7541 статистику для обработанных соединений, если использовалось
7542 проксирование или FastCGI-сервер.
7543
7544 *) Исправление: на Linux и Solaris установочные пути были неверно
7545 заключены в кавычки; ошибка появилась в 0.1.21.
7546
7547
7548 Изменения в nginx 0.1.21 22.02.2005
7549
7550 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
7551 статистику при использовании метода rtsig или при использовании
7552 нескольких рабочих процессов на SMP машине.
7553
7554 *) Исправление: nginx не собирался компилятором icc под Линуксом или
7555 если библиотека zlib-1.2.x собиралась из исходных текстов.
7556
7557 *) Исправление: nginx не собирался под NetBSD 2.0.
7558
7559
7560 Изменения в nginx 0.1.20 17.02.2005
7561
7562 *) Добавление: новые параметры script_filename и remote_port в директиве
7563 fastcgi_params.
7564
7565 *) Исправление: неправильно обрабатывался поток stderr от
7566 FastCGI-сервера.
7567
7568
7569 Изменения в nginx 0.1.19 16.02.2005
7570
7571 *) Исправление: если в запросе есть нуль, то для локальных запросов
7572 теперь возвращается ошибка 404.
7573
7574 *) Исправление: nginx не собирался под NetBSD 2.0.
7575
7576 *) Исправление: во время чтения тела запроса клиента в SSL соединении
7577 мог произойти таймаут.
7578
7579
7580 Изменения в nginx 0.1.18 09.02.2005
7581
7582 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
7583 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
7584
7585 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
7586 наследовались.
7587
7588 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
7589 присоединялись к URI через символ "&" вместо "?".
7590
7591 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
7592 включённом файле игнорировались.
7593
7594 *) Добавление: модуль ngx_http_stub_status_module.
7595
7596 *) Исправление: неизвестный формат лог-файла в директиве access_log
7597 вызывал segmentation fault.
7598
7599 *) Добавление: новый параметр document_root в директиве fastcgi_params.
7600
7601 *) Добавление: директива fastcgi_redirect_errors.
7602
7603 *) Добавление: новый модификатор break в директиве rewrite позволяет
7604 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
7605 для запроса.
7606
7607
7608 Изменения в nginx 0.1.17 03.02.2005
7609
7610 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
7611 можно делать редиректы, возвращать коды ошибок и проверять переменные
7612 и рефереры. Эти директивы можно использовать внутри location.
7613 Директива redirect упразднена.
7614
7615 *) Добавление: модуль ngx_http_geo_module.
7616
7617 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
7618
7619 *) Исправление: конфигурация location с модификатором "=" могла
7620 использоваться в другом location.
7621
7622 *) Исправление: правильный тип ответа выставлялся только для запросов, у
7623 которых в расширении были только маленькие буквы.
7624
7625 *) Исправление: если для location установлен proxy_pass или
7626 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
7627 на статическую страницу, то происходил segmentation fault.
7628
7629 *) Исправление: если в проксированном ответе в заголовке "Location"
7630 передавался относительный URL, то к нему добавлялось имя хоста и
7631 слэш; ошибка появилась в 0.1.14.
7632
7633 *) Исправление: на Linux в лог не записывался текст системной ошибки.
7634
7635
7636 Изменения в nginx 0.1.16 25.01.2005
7637
7638 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
7639 выдавался завершающий chunk.
7640
7641 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
7642 директива keepalive_timeout запрещала использование keep-alive.
7643
7644 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
7645 segmentation fault.
7646
7647 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
7648 до конца.
7649
7650 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
7651 для TCP сокетов, не используются для unix domain сокетов.
7652
7653 *) Добавление: директива rewrite поддерживает перезаписывание
7654 аргументов.
7655
7656 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
7657 возвращался ответ 400; ошибка появилась в 0.1.14.
7658
7659
7660 Изменения в nginx 0.1.15 19.01.2005
7661
7662 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
7663 segmentation fault.
7664
7665 *) Исправление: корректная обработка регулярного выражения, в котором
7666 число выделенных частей не совпадает с числом подстановок.
7667
7668 *) Добавление: location, который передаётся FastCGI-серверу, может быть
7669 задан с помощью регулярного выражения.
7670
7671 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
7672 аргументами и в том виде, в котором был получен от клиента.
7673
7674 *) Исправление: для использования регулярных выражений в location нужно
7675 было собирать nginx вместе с ngx_http_rewrite_module.
7676
7677 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
7678 директивы "proxy_preserve_host on" в заголовке "Host" указывался
7679 также порт 80; ошибка появилась в 0.1.14.
7680
7681 *) Исправление: если задать одинаковые пути в параметрах
7682 автоконфигурации --http-client-body-temp-path=PATH и
7683 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
7684 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
7685
7686
7687 Изменения в nginx 0.1.14 18.01.2005
7688
7689 *) Добавление: параметры автоконфигурации
7690 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
7691 --http-fastcgi-temp-path=PATH
7692
7693 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
7694 клиента, задаётся директивой client_body_temp_path, по умолчанию
7695 <prefix>/client_body_temp.
7696
7697 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
7698 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
7699 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
7700 fastcgi_header_buffer_size, fastcgi_buffers,
7701 fastcgi_busy_buffers_size, fastcgi_temp_path,
7702 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
7703 fastcgi_next_upstream и fastcgi_x_powered_by.
7704
7705 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
7706 0.1.3.
7707
7708 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
7709 после имени хоста.
7710
7711 *) Изменение: если в URI встречался символ %3F, то он считался началом
7712 строки аргументов.
7713
7714 *) Добавление: поддержка unix domain сокетов в модуле
7715 ngx_http_proxy_module.
7716
7717 *) Добавление: директивы ssl_engine и ssl_ciphers.
7718 Спасибо Сергею Скворцову за SSL-акселератор.
7719
7720
7721 Изменения в nginx 0.1.13 21.12.2004
7722
7723 *) Добавление: директивы server_names_hash и
7724 server_names_hash_threshold.
7725
7726 *) Исправление: имена *.domain.tld в директиве server_name не работали.
7727
7728 *) Исправление: параметр лога %request_length записывал неверную длину.
7729
7730
7731 Изменения в nginx 0.1.12 06.12.2004
7732
7733 *) Добавление: параметр лога %request_length.
7734
7735 *) Исправление: при использовании /dev/poll, select и poll на
7736 платформах, где возможны ложные срабатывания указанных методов, могли
7737 быть длительные задержки при обработке запроса по keep-alive
7738 соединению. Наблюдалось по крайней мере на Solaris с использованием
7739 /dev/poll.
7740
7741 *) Исправление: директива send_lowat игнорируется на Linux, так как
7742 Linux не поддерживает опцию SO_SNDLOWAT.
7743
7744
7745 Изменения в nginx 0.1.11 02.12.2004
7746
7747 *) Добавление: директива worker_priority.
7748
7749 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
7750 влияют на передачу ответа.
7751
7752 *) Исправление: nginx не вызывал initgroups().
7753 Спасибо Андрею Ситникову и Андрею Нигматулину.
7754
7755 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
7756 байтах.
7757
7758 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
7759 каталоге есть битый symlink.
7760
7761 *) Исправление: файлы больше 4G не передавались с использованием
7762 sendfile.
7763
7764 *) Исправление: если бэкенд резолвился в несколько адресов и при
7765 ожидании от него ответа происходила ошибка, то процесс зацикливался.
7766
7767 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
7768 завершиться с сообщением "unknown cycle".
7769
7770 *) Исправление: ошибки "close() channel failed".
7771
7772 *) Исправление: автоматическое определение групп nobody и nogroup.
7773
7774 *) Исправление: директива send_lowat не работала на Linux.
7775
7776 *) Исправление: если в конфигурации не было раздела events, то
7777 происходил segmentation fault.
7778
7779 *) Исправление: nginx не собирался под OpenBSD.
7780
7781 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
7782
7783
7784 Изменения в nginx 0.1.10 26.11.2004
7785
7786 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
7787 или "%XX", то терялся последний символ в строке запроса; ошибка
7788 появилась в 0.1.9.
7789
7790 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
7791 не работало.
7792
7793
7794 Изменения в nginx 0.1.9 25.11.2004
7795
7796 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
7797 проксируемый запрос передавался без аргументов.
7798
7799 *) Исправление: при сжатии больших ответов иногда они передавались не
7800 полностью.
7801
7802 *) Исправление: не передавались файлы больше 2G на Linux,
7803 неподдерживающем sendfile64().
7804
7805 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
7806 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
7807
7808
7809 Изменения в nginx 0.1.8 20.11.2004
7810
7811 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
7812 длинных имён файлов.
7813
7814 *) Добавление: модификатор "^~" в директиве location.
7815
7816 *) Добавление: директива proxy_max_temp_file_size.
7817
7818
7819 Изменения в nginx 0.1.7 12.11.2004
7820
7821 *) Исправление: при использовании sendfile, если передаваемый файл
7822 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
7823 появилась в 0.1.5.
7824
7825
7826 Изменения в nginx 0.1.6 11.11.2004
7827
7828 *) Исправление: при некоторых комбинациях директив location c
7829 регулярными выражениями использовалась конфигурация не из того
7830 location.
7831
7832
7833 Изменения в nginx 0.1.5 11.11.2004
7834
7835 *) Исправление: на Solaris и Linux могло быть очень много сообщений
7836 "recvmsg() returned not enough data".
7837
7838 *) Исправление: в режиме прокси без использования sendfile на Solaris
7839 возникала ошибка "writev() failed (22: Invalid argument)". На других
7840 платформах, не поддерживающих sendfile, процесс зацикливался.
7841
7842 *) Исправление: при использовании sendfile в режиме прокси на Solaris
7843 возникал segmentation fault.
7844
7845 *) Исправление: segmentation fault на Solaris.
7846
7847 *) Исправление: обновление исполняемого файла на лету не работало на
7848 Linux.
7849
7850 *) Исправление: в списке файлов, выдаваемом модулем
7851 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
7852 знаки процента.
7853
7854 *) Изменение: уменьшение операций копирования.
7855
7856 *) Добавление: директива userid_p3p.
7857
7858
7859 Изменения в nginx 0.1.4 26.10.2004
7860
7861 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
7862
7863
7864 Изменения в nginx 0.1.3 25.10.2004
7865
7866 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
7867
7868 *) Добавление: директива proxy_set_x_url.
7869
7870 *) Исправление: модуль проксировании мог привести к зацикливанию, если
7871 не использовался sendfile.
7872
7873
7874 Изменения в nginx 0.1.2 21.10.2004
7875
7876 *) Добавление: параметры --user=USER, --group=GROUP и
7877 --with-ld-opt=OPTIONS в configure.
7878
7879 *) Добавление: директива server_name поддерживает *.domain.tld.
7880
7881 *) Исправление: улучшена переносимость на неизвестные платформы.
7882
7883 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
7884 файл указан в командной строке; ошибка появилась в 0.1.1.
7885
7886 *) Исправление: модуль проксировании мог привести к зацикливанию, если
7887 не использовался sendfile.
7888
7889 *) Исправление: при использовании sendfile текст ответа не
7890 перекодировался согласно директивам модуля charset; ошибка появилась
7891 в 0.1.1.
7892
7893 *) Исправление: очень редкая ошибка при обработке kqueue.
7894
7895 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
7896 проксировании.
7897
7898
7899 Изменения в nginx 0.1.1 11.10.2004
7900
7901 *) Добавление: директива gzip_types.
7902
7903 *) Добавление: директива tcp_nodelay.
7904
7905 *) Добавление: директива send_lowat работает не только на платформах,
7906 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
7907 SO_SNDLOWAT.
7908
7909 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
7910
7911 *) Исправление: ошибка при переписывании заголовка "Location" при
7912 проксировании.
7913
7914 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
7915 зацикливанию.
7916
7917 *) Исправление: ошибки в модуле /dev/poll.
7918
7919 *) Исправление: при проксировании и использовании временных файлов
7920 ответы портились.
7921
7922 *) Исправление: бэкенду передавались запросы с неперекодированными
7923 символами.
7924
7925 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
7926 обязательно использовать параметр --with-poll_module.
7927
7928
7929 Изменения в nginx 0.1.0 04.10.2004
7930
7931 *) Первая публично доступная версия.
7932