comparison text/ru/CHANGES.ru-0.6 @ 0:61e04fc01027

Initial import of the nginx.org website.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 11 Aug 2011 12:19:13 +0000
parents
children 74438c570949
comparison
equal deleted inserted replaced
-1:000000000000 0:61e04fc01027
1
2 Изменения в nginx 0.6.39 14.09.2009
3
4 *) Безопасность: при обработке специально созданного запроса в рабочем
5 процессе мог произойти segmentation fault.
6 Спасибо Chris Ries.
7
8 *) Исправление: при использовании error_log на уровне info или debug в
9 рабочем процессе мог произойти segmentation fault.
10 Спасибо Сергею Боченкову.
11
12
13 Изменения в nginx 0.6.38 22.06.2009
14
15 *) Добавление: директива keepalive_requests.
16
17
18 Изменения в nginx 0.6.37 18.05.2009
19
20 *) Добавление: поддержка Microsoft-специфичного режима
21 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
22 Спасибо Максиму Дунину.
23
24 *) Исправление: nginx не собирался на платформах, отличных от i386,
25 amd64, sparc и ppc; ошибка появилась в 0.6.36.
26
27
28 Изменения в nginx 0.6.36 02.04.2009
29
30 *) Изменение: ошибка "Invalid argument", возвращаемая
31 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
32
33 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
34 заголовке запроса.
35
36 *) Добавление: директива try_files.
37
38 *) Добавление: параметр --with-pcre в configure.
39
40 *) Добавление: директива if_modified_since.
41
42 *) Добавление: переменные "$cookie_...".
43
44 *) Добавление: переменные "$arg_...".
45
46 *) Исправление: совместимость с Tru64 UNIX.
47 Спасибо Dustin Marquess.
48
49 *) Исправление: директива ssl_engine не использовала SSL-акселератор
50 для асимметричных шифров.
51 Спасибо Marcin Gozdalik.
52
53 *) Исправление: в директиве rewrite, возвращающей редирект, старые
54 аргументы присоединялись к новым через символ "?" вместо "&";
55 ошибка появилась в 0.1.18.
56 Спасибо Максиму Дунину.
57
58 *) Исправление: nginx не собирался на AIX.
59
60 *) Исправление: если на запрос с телом возвращался редирект, то ответ
61 мог быть двойным при использовании методов epoll или rtsig.
62 Спасибо Eden Li.
63
64 *) Исправление: при использовании директивы resolver в SMTP
65 прокси-сервере в рабочем процессе мог произойти segmentation fault.
66
67 *) Исправление: fastcgi_store не всегда сохранял файлы.
68
69 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
70 ответом сервер передавал много сообщений в stderr.
71
72
73 Изменения в nginx 0.6.35 26.01.2009
74
75 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
76 если nginx был собран без отладки.
77 Спасибо Андрею Квасову.
78
79 *) Исправления в поддержке строки "Expect" в заголовке запроса.
80
81 *) Исправление: ошибки при использовании кодировки UTF-8 в
82 ngx_http_autoindex_module.
83
84
85 Изменения в nginx 0.6.34 27.11.2008
86
87 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
88 временной.
89
90 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
91 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
92
93 *) Добавление: директива expires поддерживает суточное время.
94
95 *) Добавление: поддержка строки "Expect" в заголовке запроса.
96
97 *) Добавление: теперь при использовании протокола "https://" в
98 директиве rewrite автоматически делается редирект.
99
100 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
101 прочие, не устанавливались, если сервером по умолчанию был не первый
102 сервер.
103
104 *) Исправление: директива log_not_found не работала при поиске
105 индексных файлов.
106
107 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
108 в заголовке ответа без строки статуса, то nginx использует код
109 статуса 302.
110 Спасибо Максиму Дунину.
111
112 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
113 значений в аргументах запроса.
114
115 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
116 nginx не добавлял аргументы из оригинального запроса.
117
118
119 Изменения в nginx 0.6.33 20.11.2008
120
121 *) Добавление: теперь nginx возвращает код 405 для метода POST при
122 запросе статического файла, только если файл существует.
123
124 *) Изменение: совместимость с glibc 2.3.
125 Спасибо Eric Benson и Максиму Дунину.
126
127 *) Исправление: resolver не понимал большие DNS-ответы.
128 Спасибо Zyb.
129
130 *) Исправление: при использовании HTTPS запросы могли завершаться с
131 ошибкой "bad write retry".
132
133 *) Исправление: модуль ngx_http_charset_module не понимал название
134 кодировки в кавычках, полученное от бэкенда.
135
136 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
137 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
138 Спасибо Максиму Дунину.
139
140 *) Исправление: метод $r->header_in() не возвращал значения строк
141 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
142 появилась в 0.6.32.
143
144 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
145 директивы error_page возвращался полный ответ.
146
147 *) Исправление: если у каталога были права доступа только на поиск
148 файлов и первый индексный файл отсутствовал, то nginx возвращал
149 ошибку 500.
150
151 *) Исправление: рекурсивной error_page для 500 ошибки.
152
153
154 Изменения в nginx 0.6.32 07.07.2008
155
156 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь
157 этот параметр используется по умолчанию.
158 Спасибо Rob Mueller.
159
160 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
161 записываются в виде \xXX.
162 Спасибо Максиму Дунину.
163
164 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
165 запроса.
166
167 *) Добавление: директива expires поддерживает флаг modified.
168
169 *) Добавление: переменные $uid_got и $uid_set можно использовать на
170 любой стадии обработки запроса.
171
172 *) Добавление: переменная $hostname.
173 Спасибо Андрею Нигматулину.
174
175 *) Добавление: поддержка DESTDIR.
176 Спасибо Todd A. Fisher и Andras Voroskoi.
177
178 *) Исправление: при совместном использовании sub_filter и SSI ответы
179 могли передаваться неверно.
180
181 *) Исправление: большие включения в SSI могли передавались не полностью.
182
183 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
184 ошибка появилась в 0.6.9.
185
186 *) Исправление: рабочие процессы могли не реагировать на сигналы
187 переконфигурации и ротации логов.
188
189 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
190 Спасибо Roxis.
191
192 *) Исправление: при использовании keepalive на Linux в рабочем процессе
193 мог произойти segmentation fault.
194
195
196 Изменения в nginx 0.6.31 12.05.2008
197
198 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
199 заголовка ответ была в конце записи FastCGI; ошибка появилась в
200 0.6.2.
201 Спасибо Сергею Серову.
202
203 *) Исправление: при удалении файла и использовании директивы
204 open_file_cache_errors off в рабочем процессе мог произойти
205 segmentation fault.
206
207
208 Изменения в nginx 0.6.30 29.04.2008
209
210 *) Изменение: теперь, если маске, заданной в директиве include, не
211 соответствует ни один файл, то nginx не выдаёт ошибку.
212
213 *) Добавление: теперь время в директивах можно задавать без пробела,
214 например, "1h50m".
215
216 *) Исправление: утечек памяти, если директива ssl_verify_client имела
217 значение on.
218 Спасибо Chavelle Vincent.
219
220 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
221 вывод.
222
223 *) Исправление: директива error_page не воспринимала параметры в
224 перенаправляемом URI.
225
226 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
227 в бинарном режиме.
228
229 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
230 0.6.15.
231
232
233 Изменения в nginx 0.6.29 18.03.2008
234
235 *) Добавление: модуль ngx_google_perftools_module.
236
237 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
238 платформах; ошибка появилась в 0.6.27.
239
240
241 Изменения в nginx 0.6.28 13.03.2008
242
243 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
244
245
246 Изменения в nginx 0.6.27 12.03.2008
247
248 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
249 rtsig.
250
251 *) Изменение: теперь при перенаправлении запроса в именованный location
252 с помощью директивы error_page метод запроса не изменяется.
253
254 *) Добавление: директивы resolver и resolver_timeout в SMTP
255 прокси-сервере.
256
257 *) Добавление: директива post_action поддерживает именованные
258 location'ы.
259
260 *) Исправление: при перенаправлении запроса из location'а c
261 обработчиком proxy, FastCGI или memcached в именованный location со
262 статическим обработчиком в рабочем процессе происходил segmentation
263 fault.
264
265 *) Исправление: браузеры не повторяли SSL handshake, если при первом
266 handshake не оказалось правильного клиентского сертификата.
267 Спасибо Александру Инюхину.
268
269 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
270 error_page без изменения кода ошибки nginx пытался выделить очень
271 много памяти.
272
273 *) Исправление: утечки памяти в долгоживущих небуфферизированных
274 соединениях.
275
276 *) Исправление: утечки памяти в resolver'е.
277
278 *) Исправление: при перенаправлении запроса из location'а c
279 обработчиком proxy в другой location с обработчиком proxy в рабочем
280 процессе происходил segmentation fault.
281
282 *) Исправление: ошибки в кэшировании переменных $proxy_host и
283 $proxy_port.
284 Спасибо Сергею Боченкову.
285
286 *) Исправление: директива proxy_pass с переменными использовала порт,
287 описанной в другой директиве proxy_pass без переменных, но с таким
288 же именем хоста.
289 Спасибо Сергею Боченкову.
290
291 *) Исправление: во время переконфигурации на некоторых 64-битном
292 платформах в лог записывался alert "sendmsg() failed (9: Bad file
293 descriptor)".
294
295 *) Исправление: при повторном использовании в SSI пустого block'а в
296 качестве заглушки в рабочем процессе происходил segmentation fault.
297
298 *) Исправление: ошибки при копировании части URI, содержащего
299 экранированные символы, в аргументы.
300
301
302 Изменения в nginx 0.6.26 11.02.2008
303
304 *) Исправление: директивы proxy_store и fastcgi_store не проверяли
305 длину ответа.
306
307 *) Исправление: при использовании большого значения в директиве expires
308 в рабочем процессе происходил segmentation fault.
309 Спасибо Joaquin Cuenca Abela.
310
311 *) Исправление: nginx неверно определял длину строки кэша на
312 Pentium 4.
313 Спасибо Gena Makhomed.
314
315 *) Исправление: в проксированных подзапросах и подзапросах к
316 FastCGI-серверу вместо метода GET использовался оригинальный метод
317 клиента.
318
319 *) Исправление: утечки сокетов в режиме HTTPS при использовании
320 отложенного accept'а.
321 Спасибо Ben Maurer.
322
323 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown()
324 failed (SSL: )"; ошибка появилась в 0.6.23.
325
326 *) Исправление: при использовании HTTPS запросы могли завершаться с
327 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
328
329
330 Изменения в nginx 0.6.25 08.01.2008
331
332 *) Изменение: вместо специального параметра "*" в директиве server_name
333 теперь используется директива server_name_in_redirect.
334
335 *) Изменение: в качестве основного имени в директиве server_name теперь
336 можно использовать имена с масками и регулярными выражениями.
337
338 *) Изменение: директива satisfy_any заменена директивой satisfy.
339
340 *) Изменение: после переконфигурации старые рабочие процесс могли
341 сильно нагружать процессор при запуске под Linux OpenVZ.
342
343 *) Добавление: директива min_delete_depth.
344
345 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
346
347 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
348 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
349
350 *) Исправление: утечки сокетов в режиме HTTPS при использовании
351 отложенного accept'а.
352 Спасибо Ben Maurer.
353
354 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка
355 появилась в 0.6.23.
356
357
358 Изменения в nginx 0.6.24 27.12.2007
359
360 *) Исправление: при использовании HTTPS в рабочем процессе мог
361 произойти segmentation fault; ошибка появилась в 0.6.23.
362
363
364 Изменения в nginx 0.6.23 27.12.2007
365
366 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
367 параметр используется по умолчанию.
368
369 *) Изменение: директива open_file_cache_retest переименована в
370 open_file_cache_valid.
371
372 *) Добавление: директива open_file_cache_min_uses.
373
374 *) Добавление: модуль ngx_http_gzip_static_module.
375
376 *) Добавление: директива gzip_disable.
377
378 *) Добавление: директиву memcached_pass можно использовать внутри блока
379 if.
380
381 *) Исправление: если внутри одного location'а использовались директивы
382 "memcached_pass" и "if", то в рабочем процессе происходил
383 segmentation fault.
384
385 *) Исправление: если при использовании директивы satisfy_any on" были
386 заданы директивы не всех модулей доступа, то заданные директивы не
387 проверялись.
388
389 *) Исправление: параметры, заданные регулярным выражением в директиве
390 valid_referers, не наследовалась с предыдущего уровня.
391
392 *) Исправление: директива post_action не работала, если запрос
393 завершался с кодом 499.
394
395 *) Исправление: оптимизация использования 16K буфера для
396 SSL-соединения.
397 Спасибо Ben Maurer.
398
399 *) Исправление: STARTTLS в режиме SMTP не работал.
400 Спасибо Олегу Мотиенко.
401
402 *) Исправление: при использовании HTTPS запросы могли завершаться с
403 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
404
405
406 Изменения в nginx 0.6.22 19.12.2007
407
408 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
409 значения, скопированные в память, выделенную perl'ом.
410
411 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
412 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
413 время переконфигурации основной процесс аварийно выходил; ошибка
414 появилась в 0.5.9.
415 Спасибо Борису Жмурову.
416
417 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
418 неверные результаты выделения в регулярных выражениях.
419
420 *) Исправление: если метод $r->has_request_body() вызывался для
421 запроса, у которого небольшое тело запроса было уже полностью
422 получено, то в рабочем процессе происходил segmentation fault.
423
424 *) Исправление: large_client_header_buffers не освобождались перед
425 переходом в состояние keep-alive.
426 Спасибо Олександру Штепе.
427
428 *) Исправление: в переменной $upstream_addr не записывался последний
429 адрес; ошибка появилась в 0.6.18.
430
431 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
432 теперь она возвращает ошибку 502, которую можно направить на
433 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
434
435 *) Исправление: при использовании директивы fastcgi_catch_stderr в
436 основном процессе происходил segmentation fault; ошибка появилась в
437 0.6.10.
438 Спасибо Manlio Perillo.
439
440
441 Изменения в nginx 0.6.21 03.12.2007
442
443 *) Изменение: если в значениях переменных директивы proxy_pass
444 используются только IP-адреса, то указывать resolver не нужно.
445
446 *) Исправление: при использовании директивы proxy_pass c URI-частью в
447 рабочем процессе мог произойти segmentation fault; ошибка появилась
448 в 0.6.19.
449
450 *) Исправление: если resolver использовался на платформах, не
451 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
452 response".
453 Спасибо Андрею Нигматулину.
454
455 *) Исправление: При использовании переменной $server_protocol в
456 FastCGI-параметрах и запросе, длина которого была близка к значению
457 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
458 the request record is too big".
459
460 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
461 nginx возвращал обычный ответ.
462
463
464 Изменения в nginx 0.6.20 28.11.2007
465
466 *) Исправление: при использовании директивы proxy_pass c URI-частью в
467 рабочем процессе мог произойти segmentation fault; ошибка появилась
468 в 0.6.19.
469
470
471 Изменения в nginx 0.6.19 27.11.2007
472
473 *) Исправление: версия 0.6.18 не собиралась.
474
475
476 Изменения в nginx 0.6.18 27.11.2007
477
478 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с
479 номером процесса добавляет микросекунды на время старта.
480
481 *) Изменение: в error_log теперь записывается полная строка запроса
482 вместо только URI.
483
484 *) Добавление: директива proxy_pass поддерживает переменные.
485
486 *) Добавление: директивы resolver и resolver_timeout.
487
488 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
489 заголовке ответа строку "Last-Modified".
490
491 *) Исправление: директива limit_rate не позволяла передавать на полной
492 скорости, даже если был указан очень большой лимит.
493
494
495 Изменения в nginx 0.6.17 15.11.2007
496
497 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
498 Спасибо Александру Инюхину.
499
500 *) Исправление: при использовании директивы msie_refresh повторно
501 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
502
503 *) Исправление: директива autoindex не работала при использовании
504 "alias /".
505
506 *) Исправление: при использовании подзапросов в рабочем процессе мог
507 произойти segmentation fault.
508
509 *) Исправление: при использовании SSL и gzip большие ответы могли
510 передаваться не полностью.
511
512 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
513 то переменная $status была равна 0.
514
515
516 Изменения в nginx 0.6.16 29.10.2007
517
518 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
519 Спасибо Илье Новикову.
520
521 *) Исправление: если в директиве error_page использовался символ "?",
522 то он экранировался при проксировании запроса; ошибка появилась в
523 0.6.11.
524
525 *) Исправление: совместимость с mget.
526
527
528 Изменения в nginx 0.6.15 22.10.2007
529
530 *) Добавление: совместимость с Cygwin.
531 Спасибо Владимиру Кутакову.
532
533 *) Добавление: директива merge_slashes.
534
535 *) Добавление: директива gzip_vary.
536
537 *) Добавление: директива server_tokens.
538
539 *) Исправление: nginx не раскодировал URI в команде SSI include.
540
541 *) Исправление: при использовании переменной в директивах charset или
542 source_charset на старте или во время переконфигурации происходил
543 segmentation fault,
544
545 *) Исправление: nginx возвращал ошибку 400 на запросы вида
546 "GET http://www.domain.com HTTP/1.0".
547 Спасибо James Oakley.
548
549 *) Исправление: после перенаправления запроса с телом запроса с помощью
550 директивы error_page nginx пытался снова прочитать тело запроса;
551 ошибка появилась в 0.6.7.
552
553 *) Исправление: в рабочем процессе происходил segmentation fault, если
554 у сервера, обрабатывающему запрос, не был явно определён
555 server_name; ошибка появилась в 0.6.7.
556
557
558 Изменения в nginx 0.6.14 15.10.2007
559
560 *) Изменение: теперь по умолчанию команда SSI echo использует
561 кодирование entity.
562
563 *) Добавление: параметр encoding в команде SSI echo.
564
565 *) Добавление: директиву access_log можно использовать внутри блока
566 limit_except.
567
568 *) Исправление: если все сервера апстрима оказывались недоступными, то
569 до восстановления работоспособности у всех серверов вес становился
570 равным одному; ошибка появилась в 0.6.6.
571
572 *) Исправление: при использовании переменных $date_local и $date_gmt
573 вне модуля ngx_http_ssi_filter_module в рабочем процессе происходил
574 segmentation fault.
575
576 *) Исправление: при использовании включённом отладочном логе в рабочем
577 процессе мог произойти segmentation fault.
578 Спасибо Андрею Нигматулину.
579
580 *) Исправление: ngx_http_memcached_module не устанавливал
581 upstream_response_time.
582 Спасибо Максиму Дунину.
583
584 *) Исправление: рабочий процесс мог зациклиться при использовании
585 memcached.
586
587 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
588 строке "Connection" в заголовке запроса только, если они были в
589 нижнем регистре; ошибка появилась в 0.6.11.
590
591 *) Исправление: sub_filter не работал с пустой строкой замены.
592
593 *) Исправление: в парсинге sub_filter.
594
595
596 Изменения в nginx 0.6.13 24.09.2007
597
598 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
599 использовался autoindex
600 Спасибо Arkadiusz Patyk.
601
602
603 Изменения в nginx 0.6.12 21.09.2007
604
605 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
606 и smtp.
607
608 *) Добавление: параметры конфигурации --without-mail_pop3_module,
609 --without-mail_imap_module и --without-mail_smtp_module.
610
611 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer
612 модуля ngx_mail_smtp_module.
613
614 *) Исправление: wildcard в конце имени сервера не работали; ошибка
615 появилась в 0.6.9.
616
617 *) Исправление: при использовании разделяемой библиотеки PCRE,
618 расположенной в нестандартном месте, nginx не запускался на Solaris.
619
620 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
621 скрывали строки заголовка ответа с именем больше 32 символов.
622 Спасибо Manlio Perillo.
623
624
625 Изменения в nginx 0.6.11 11.09.2007
626
627 *) Исправление: счётчик активных соединений всегда рос при
628 использовании почтового прокси-сервера.
629
630 *) Исправление: если бэкенд возвращал только заголовок ответа при
631 небуферизированном проксировании, то nginx закрывал соединение с
632 бэкендом по таймауту.
633
634 *) Исправление: nginx не поддерживал несколько строк "Connection" в
635 заголовке запроса.
636
637 *) Исправление: если в сервере апстрима был задан max_fails, то после
638 первой же неудачной попытки вес сервера навсегда становился равным
639 одному; ошибка появилась в 0.6.6.
640
641
642 Изменения в nginx 0.6.10 03.09.2007
643
644 *) Добавление: директивы open_file_cache, open_file_cache_retest и
645 open_file_cache_errors.
646
647 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
648
649 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
650 методе $r->send_http_header(), не добавлялась кодировка, указанная в
651 директиве charset.
652
653 *) Исправление: при использовании метода /dev/poll в рабочем процессе
654 мог произойти segmentation fault.
655
656
657 Изменения в nginx 0.6.9 28.08.2007
658
659 *) Исправление: рабочий процесс мог зациклиться при использовании
660 протокола HTTPS; ошибка появилась в 0.6.7.
661
662 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
663 не запускался при использовании wildcard в конце имени сервера.
664
665 *) Исправление: директива ip_hash могла неверно помечать сервера как
666 нерабочие.
667
668 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
669
670
671 Изменения в nginx 0.6.8 20.08.2007
672
673 *) Изменение: теперь nginx пытается установить директивы
674 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
675 worker_rlimit_sigpending без привилегий root'а.
676
677 *) Изменение: теперь nginx экранирует символы пробела и "%" при
678 передаче запроса серверу аутентификации почтового прокси-сервера.
679
680 *) Изменение: теперь nginx экранирует символ "%" в переменной
681 $memcached_key.
682
683 *) Исправление: при указании относительного пути к конфигурационному
684 файлу в качестве параметра ключа -c nginx определял путь
685 относительно конфигурационного префикса; ошибка появилась в 0.6.6.
686
687 *) Исправление: nginx не работал на FreeBSD/sparc64.
688
689
690 Изменения в nginx 0.6.7 15.08.2007
691
692 *) Изменение: теперь пути, указанные в директивах include,
693 auth_basic_user_file, perl_modules, ssl_certificate,
694 ssl_certificate_key и ssl_client_certificate, определяются
695 относительно каталога конфигурационного файла nginx.conf, а не
696 относительно префикса.
697
698 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
699
700 *) Изменение: для обновления на лету версий 0.1.x создан специальный
701 сценарий make upgrade1.
702
703 *) Добавление: директивы server_name и valid_referers поддерживают
704 регулярные выражения.
705
706 *) Добавление: директива server в блоке upstream поддерживает параметр
707 backup.
708
709 *) Добавление: модуль ngx_http_perl_module поддерживает метод
710 $r->discard_request_body.
711
712 *) Добавление: директива "add_header Last-Modified ..." меняет строку
713 "Last-Modified" в заголовке ответа.
714
715 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
716 отличным от 200, и после этого запроса соединение переходило в
717 состояние keep-alive, то на следующий запрос nginx возвращал 400.
718
719 *) Исправление: если в директиве auth_http был задан неправильный
720 адрес, то в рабочем процессе происходил segmentation fault.
721
722 *) Исправление: теперь по умолчанию nginx использует значение 511 для
723 listen backlog на всех платформах, кроме FreeBSD.
724 Спасибо Jiang Hong.
725
726 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
727 upstream был помечен как down; ошибка появилась в 0.6.6.
728
729 *) Исправление: sendfilev() в Solaris теперь не используется при
730 передаче тела запроса FastCGI-серверу через unix domain сокет.
731
732
733 Изменения в nginx 0.6.6 30.07.2007
734
735 *) Добавление: параметр --sysconfdir=PATH в configure.
736
737 *) Добавление: именованные location'ы.
738
739 *) Добавление: переменную $args можно устанавливать с помощью set.
740
741 *) Добавление: переменная $is_args.
742
743 *) Исправление: равномерное распределение запросов к апстримам с
744 большими весами.
745
746 *) Исправление: если клиент в почтовом прокси-сервере закрывал
747 соединение, то nginx мог не закрывать соединение с бэкендом.
748
749 *) Исправление: при использовании одного хоста в качестве бэкендов для
750 протоколов HTTP и HTTPS без явного указания портов, nginx
751 использовал только один порт - 80 или 443.
752
753 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
754 более ранними версиями; ошибка появилась в 0.6.4.
755
756
757 Изменения в nginx 0.6.5 23.07.2007
758
759 *) Добавление: переменная $nginx_version.
760 Спасибо Николаю Гречуху.
761
762 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в
763 режиме IMAP.
764 Спасибо Максиму Дунину.
765
766 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
767 SMTP.
768 Спасибо Максиму Дунину.
769
770 *) Исправление: теперь nginx экранирует пробел в переменной
771 $memcached_key.
772
773 *) Исправление: nginx неправильно собирался Sun Studio на
774 Solaris/amd64.
775 Спасибо Jiang Hong.
776
777 *) Исправление: незначительных потенциальных ошибок.
778 Спасибо Coverity's Scan.
779
780
781 Изменения в nginx 0.6.4 17.07.2007
782
783 *) Безопасность: при использовании директивы msie_refresh был возможен
784 XSS.
785 Спасибо Максиму Богуку.
786
787 *) Изменение: директивы proxy_store и fastcgi_store изменены.
788
789 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
790
791 *) Исправление: nginx не работал на Solaris/sparc64, если был собран
792 Sun Studio.
793 Спасибо Андрею Нигматулину.
794
795 *) Изменение: обход ошибки в Sun Studio 12.
796 Спасибо Jiang Hong.
797
798
799 Изменения в nginx 0.6.3 12.07.2007
800
801 *) Добавление: директивы proxy_store и fastcgi_store.
802
803 *) Исправление: при использовании директивы auth_http_header в рабочем
804 процессе мог произойти segmentation fault.
805 Спасибо Максиму Дунину.
806
807 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
808 не был разрешён, то в рабочем процессе происходил segmentation fault.
809
810 *) Исправление: при использовании протокола HTTPS в директиве
811 proxy_pass в рабочем процессе мог произойти segmentation fault.
812
813 *) Исправление: в рабочем процессе мог произойти segmentation fault,
814 если использовался метод eventport.
815
816 *) Исправление: директивы proxy_ignore_client_abort и
817 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
818
819
820 Изменения в nginx 0.6.2 09.07.2007
821
822 *) Исправление: если заголовок ответа был разделён в FastCGI-записях,
823 то nginx передавал клиенту мусор в таких заголовках.
824
825
826 Изменения в nginx 0.6.1 17.06.2007
827
828 *) Исправление: в парсинге SSI.
829
830 *) Исправление: при использовании удалённого подзапроса в SSI
831 последующий подзапрос локального файла мог отдаваться клиенту в
832 неверном порядке.
833
834 *) Исправление: большие включения в SSI, сохранённые во временные
835 файлы, передавались не полностью.
836
837 *) Исправление: значение perl'овой переменной $$ модуля
838 ngx_http_perl_module было равно номеру главного процесса.
839
840
841 Изменения в nginx 0.6.0 14.06.2007
842
843 *) Добавление: директивы "server_name", "map", and "valid_referers"
844 поддерживают маски вида "www.example.*".
845
846
847 Изменения в nginx 0.5.25 11.06.2007
848
849 *) Исправление: nginx не собирался с параметром
850 --without-http_rewrite_module; ошибка появилась в 0.5.24.
851
852
853 Изменения в nginx 0.5.24 06.06.2007
854
855 *) Безопасность: директива ssl_verify_client не работала, если запрос
856 выполнялся по протоколу HTTP/0.9.
857
858 *) Исправление: при использовании сжатия часть ответа могла
859 передаваться несжатой; ошибка появилась в 0.5.23.
860
861
862 Изменения в nginx 0.5.23 04.06.2007
863
864 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
865 Server Name Indication.
866
867 *) Добавление: директива fastcgi_catch_stderr.
868 Спасибо Николаю Гречуху, проект OWOX.
869
870 *) Исправление: на Линуксе в основном процессе происходил segmentation
871 fault, если два виртуальных сервера должны bind()ится к
872 пересекающимся портам.
873
874 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
875 perl поддерживал потоки, то во время второй переконфигурации
876 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
877
878 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
879
880
881 Изменения в nginx 0.5.22 29.05.2007
882
883 *) Исправление: большое тело запроса могло не передаваться бэкенду;
884 ошибка появилась в 0.5.21.
885
886
887 Изменения в nginx 0.5.21 28.05.2007
888
889 *) Исправление: если внутри сервера описано больше примерно десяти
890 location'ов, то location'ы, заданные с помощью регулярного
891 выражения, могли выполняться не в том, порядке, в каком они описаны.
892
893 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
894 если 33-тий по счёту или последующий бэкенд упал.
895 Спасибо Антону Поварову.
896
897 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64
898 мог произойти bus error.
899 Спасибо Андрею Нигматулину.
900
901 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
902
903
904 Изменения в nginx 0.5.20 07.05.2007
905
906 *) Добавление: директива sendfile_max_chunk.
907
908 *) Добавление: переменные "$http_...", "$sent_http_..." и
909 "$upstream_http_..." можно менять директивой set.
910
911 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
912 рабочем процессе мог произойти segmentation fault.
913
914 *) Исправление: завершающая строка multipart range ответа передавалась
915 неверно.
916 Спасибо Evan Miller.
917
918 *) Исправление: nginx не работал на Solaris/sparc64, если был собран
919 Sun Studio.
920 Спасибо Андрею Нигматулину.
921
922 *) Исправление: модуль ngx_http_perl_module не собирался make в
923 Solaris.
924 Спасибо Андрею Нигматулину.
925
926
927 Изменения в nginx 0.5.19 24.04.2007
928
929 *) Изменение: значение переменной $request_time теперь записывается с
930 точностью до миллисекунд.
931
932 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
933 переименован в $r->flush.
934
935 *) Добавление: переменная $upstream_addr.
936
937 *) Добавление: директивы proxy_headers_hash_max_size и
938 proxy_headers_hash_bucket_size.
939 Спасибо Володымыру Костырко.
940
941 *) Исправление: при использовании sendfile и limit_rate на 64-битных
942 платформах нельзя было передавать файлы больше 2G.
943
944 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
945 было передавать файлы больше 2G.
946
947
948 Изменения в nginx 0.5.18 19.04.2007
949
950 *) Добавление: модуль ngx_http_sub_filter_module.
951
952 *) Добавление: переменные "$upstream_http_...".
953
954 *) Добавление: теперь переменные $upstream_status и
955 $upstream_response_time содержат данные о всех обращениях к
956 апстримам, сделанным до X-Accel-Redirect.
957
958 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
959 perl не поддерживал multiplicity, то после первой переконфигурации и
960 после получения любого сигнала в основном процессе происходил
961 segmentation fault; ошибка появилась в 0.5.9.
962
963 *) Исправление: если perl не поддерживал multiplicity, то после
964 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
965
966
967 Изменения в nginx 0.5.17 02.04.2007
968
969 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
970
971 *) Добавление: теперь nginx поддерживает директиву include внутри блока
972 types.
973
974 *) Исправление: использование переменной $document_root в директиве
975 root и alias запрещено: оно вызывало рекурсивное переполнение стека.
976
977 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
978
979 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
980 $uri) возвращали старое закэшированное значение.
981
982
983 Изменения в nginx 0.5.16 26.03.2007
984
985 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
986 использовалась сеть класса С.
987 Спасибо Павлу Ярковому.
988
989 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
990 был указан charset и строка завершалась символом ";", то в рабочем
991 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
992
993 *) Исправление: ошибки "[alert] zero size buf" при работе с
994 FastCGI-сервером, если тело запроса, записанное во временный файл,
995 было кратно 32K.
996
997 *) Исправление: nginx не собирался на Solaris без параметра
998 --with-debug; ошибка появилась в 0.5.15.
999
1000
1001 Изменения в nginx 0.5.15 19.03.2007
1002
1003 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
1004 SMTP-проксирование и директивы smtp_auth, smtp_capablities и
1005 xclient.
1006 Спасибо Антону Южанинову и Максиму Дунину.
1007
1008 *) Добавление: теперь keep-alive соединения закрываются сразу же по
1009 получении сигнала переконфигурации.
1010
1011 *) Изменение: директивы imap и auth переименованы соответственно в mail
1012 и pop3_auth.
1013
1014 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
1015 был разрешён метод APOP, то в рабочем процессе происходил
1016 segmentation fault.
1017
1018 *) Исправление: при использовании директивы starttls only в протоколе
1019 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
1020
1021 *) Исправление: рабочие процессы не выходили после переконфигурации и
1022 не переоткрывали логи, если использовался метод eventport.
1023
1024 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
1025 зациклиться.
1026
1027 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
1028 используются методы eventport или /dev/poll.
1029
1030
1031 Изменения в nginx 0.5.14 23.02.2007
1032
1033 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
1034 конфигурационного файла.
1035
1036
1037 Изменения в nginx 0.5.13 19.02.2007
1038
1039 *) Добавление: методы COPY и MOVE.
1040
1041 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
1042 запросов, переданных по keep-alive соединению.
1043
1044 *) Исправление: nginx не работал на 64-битном big-endian Linux.
1045 Спасибо Андрею Нигматулину.
1046
1047 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
1048 теперь сразу закрывает соединение, а не по таймауту.
1049
1050 *) Исправление: если при использовании метода epoll клиент закрывал
1051 преждевременно соединение со своей стороны, то nginx закрывал это
1052 соединение только по истечении таймаута на передачу.
1053
1054 *) Исправление: nginx не собирался на платформах, отличных от i386,
1055 amd64, sparc и ppc; ошибка появилась в 0.5.8.
1056
1057
1058 Изменения в nginx 0.5.12 12.02.2007
1059
1060 *) Исправление: nginx не собирался на платформах, отличных от i386,
1061 amd64, sparc и ppc; ошибка появилась в 0.5.8.
1062
1063 *) Исправление: при использовании временных файлов в время работы с
1064 FastCGI-сервером в рабочем процессе мог произойти segmentation
1065 fault; ошибка появилась в 0.5.8.
1066
1067 *) Исправление: если переменная $fastcgi_script_name записывалась в
1068 лог, то в рабочем процессе мог произойти segmentation fault.
1069
1070 *) Исправление: ngx_http_perl_module не собирался на Solaris.
1071
1072
1073 Изменения в nginx 0.5.11 05.02.2007
1074
1075 *) Добавление: теперь configure определяет библиотеку PCRE в
1076 MacPorts.
1077 Спасибо Chris McGrath.
1078
1079 *) Исправление: ответ был неверным, если запрашивалось несколько
1080 диапазонов; ошибка появилась в 0.5.6.
1081
1082 *) Исправление: директива create_full_put_path не могла создавать
1083 промежуточные каталоги, если не была установлена директива
1084 dav_access.
1085 Спасибо Evan Miller.
1086
1087 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
1088 записываться код "0".
1089
1090 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
1091 произойти segmentation fault.
1092
1093
1094 Изменения в nginx 0.5.10 26.01.2007
1095
1096 *) Исправление: во время обновления исполняемого файла новый процесс не
1097 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
1098
1099 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
1100 произойти segmentation fault; ошибка появилась в 0.5.1.
1101
1102
1103 Изменения в nginx 0.5.9 25.01.2007
1104
1105 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
1106 использует значение переменной $memcached_key.
1107
1108 *) Добавление: переменная $memcached_key.
1109
1110 *) Добавление: параметр clean в директиве client_body_in_file_only.
1111
1112 *) Добавление: директива env.
1113
1114 *) Добавление: директива sendfile работает внутри блока if.
1115
1116 *) Добавление: теперь при ошибке записи в access_log nginx записывает
1117 сообщение в error_log, но не чаще одного раза в минуту.
1118
1119 *) Исправление: директива "access_log off" не всегда запрещала запись в
1120 лог.
1121
1122
1123 Изменения в nginx 0.5.8 19.01.2007
1124
1125 *) Исправление: если использовалась директива
1126 "client_body_in_file_only on" и тело запроса было небольшое, то мог
1127 произойти segmentation fault.
1128
1129 *) Исправление: происходил segmentation fault, если использовались
1130 директивы "client_body_in_file_only on" и
1131 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
1132 делался переход к следующему бэкенду.
1133
1134 *) Исправление: если при использовании директивы "proxy_buffering off"
1135 соединение с клиентом было неактивно, то оно закрывалось по
1136 таймауту, заданному директивой send_timeout; ошибка появилась в
1137 0.4.7.
1138
1139 *) Исправление: если при использовании метода epoll клиент закрывал
1140 преждевременно соединение со своей стороны, то nginx закрывал это
1141 соединение только по истечении таймаута на передачу.
1142
1143 *) Исправление: ошибки "[alert] zero size buf" при работе с
1144 FastCGI-сервером.
1145
1146 *) Исправление ошибок в директиве limit_zone.
1147
1148
1149 Изменения в nginx 0.5.7 15.01.2007
1150
1151 *) Добавление: оптимизация использования памяти в ssl_session_cache.
1152
1153 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
1154
1155 *) Исправление: на старте или во время переконфигурации происходил
1156 segmentation fault, если директивы ssl_session_cache или limit_zone
1157 использовались на 64-битных платформах.
1158
1159 *) Исправление: при использовании директив add_before_body или
1160 add_after_body происходил segmentation fault, если в заголовке
1161 ответа нет строки "Content-Type".
1162
1163 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
1164 потоков.
1165 Спасибо Дену Иванову.
1166
1167 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
1168
1169
1170 Изменения в nginx 0.5.6 09.01.2007
1171
1172 *) Изменение: теперь модуль ngx_http_index_module игнорирует все
1173 методы, кроме GET, HEAD и POST.
1174
1175 *) Добавление: модуль ngx_http_limit_zone_module.
1176
1177 *) Добавление: переменная $binary_remote_addr.
1178
1179 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module
1180 и ngx_imap_ssl_module.
1181
1182 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
1183
1184 *) Исправление: при использовании $r->sendfile() byte-ranges
1185 передавались неверно.
1186
1187
1188 Изменения в nginx 0.5.5 24.12.2006
1189
1190 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
1191
1192 *) Добавление: ключ -V.
1193
1194 *) Добавление: директива worker_rlimit_core поддерживает указание
1195 размера в K, M и G.
1196
1197 *) Исправление: модуль nginx.pm теперь может устанавливаться
1198 непривилегированным пользователем.
1199
1200 *) Исправление: при использовании методов $r->request_body или
1201 $r->request_body_file мог произойти segmentation fault.
1202
1203 *) Исправление: ошибок, специфичных для платформы ppc.
1204
1205
1206 Изменения в nginx 0.5.4 15.12.2006
1207
1208 *) Добавление: директиву perl можно использовать внутри блока
1209 limit_except.
1210
1211 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
1212 заголовке запроса для метода DELETE.
1213
1214 *) Исправление: при использовании одного параметра в директиве
1215 dav_access nginx мог сообщить об ошибке в конфигурации.
1216
1217 *) Исправление: при использовании переменной $host мог произойти
1218 segmentation fault; ошибка появилась в 0.4.14.
1219
1220
1221 Изменения в nginx 0.5.3 13.12.2006
1222
1223 *) Добавление: модуль ngx_http_perl_module поддерживает методы
1224 $r->status, $r->log_error и $r->sleep.
1225
1226 *) Добавление: метод $r->variable поддерживает переменные, неописанные
1227 в конфигурации nginx'а.
1228
1229 *) Исправление: метод $r->has_request_body не работал.
1230
1231
1232 Изменения в nginx 0.5.2 11.12.2006
1233
1234 *) Исправление: если в директивах proxy_pass использовалось имя,
1235 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
1236 ошибка появилась в 0.5.1.
1237
1238
1239 Изменения в nginx 0.5.1 11.12.2006
1240
1241 *) Исправление: директива post_action могла не работать после
1242 неудачного завершения запроса.
1243
1244 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в
1245 0.4.11.
1246 Спасибо Bron Gondwana.
1247
1248 *) Исправление: при указании в директиве fastcgi_pass имени описанного
1249 upstream'а выдавалось сообщение "no port in upstream"; ошибка
1250 появилась в 0.5.0.
1251
1252 *) Исправление: если в директивах proxy_pass и fastcgi_pass
1253 использовались одинаковых имена серверов, но с разными портами, то
1254 эти директивы использовали первый описанный порт; ошибка появилась в
1255 0.5.0.
1256
1257 *) Исправление: если в директивах proxy_pass и fastcgi_pass
1258 использовались unix domain сокеты, то эти директивы использовали
1259 первый описанный сокет; ошибка появилась в 0.5.0.
1260
1261 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
1262 если он был указан в последней строке файла паролей и после пароля
1263 не было перевода строки, возврата каретки или символа ":".
1264
1265 *) Исправление: переменная $upstream_response_time могла быть равна
1266 "0.000", хотя время обработки было больше 1 миллисекунды.
1267
1268
1269 Изменения в nginx 0.5.0 04.12.2006
1270
1271 *) Изменение: параметры в виде "%name" в директиве log_format больше не
1272 поддерживаются.
1273
1274 *) Изменение: директивы proxy_upstream_max_fails,
1275 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
1276 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
1277 memcached_upstream_fail_timeout больше не поддерживаются.
1278
1279 *) Добавление: директива server в блоке upstream поддерживает параметры
1280 max_fails, fail_timeout и down.
1281
1282 *) Добавление: директива ip_hash в блоке upstream.
1283
1284 *) Добавление: статус WAIT в строке "Auth-Status" в заголовка ответа
1285 сервера аутентификации IMAP/POP3 прокси.
1286
1287 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
1288 появилась в 0.4.14.
1289
1290
1291 Изменения в nginx 0.4.14 27.11.2006
1292
1293 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
1294
1295 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
1296 Linux и NetBSD.
1297
1298 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
1299 поддержкой потоков; ошибка появилась в 0.3.38.
1300
1301 *) Исправление: ngx_http_perl_module не работал корректно, если перл
1302 вызывался рекурсивно.
1303
1304 *) Исправление: nginx игнорировал имя сервера в строке запроса.
1305
1306 *) Исправление: если FastCGI сервер передавал много в stderr, то
1307 рабочий процесс мог зациклиться.
1308
1309 *) Исправление: при изменении системного времени переменная
1310 $upstream_response_time могла быть отрицательной.
1311
1312 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
1313 прокси не передавался параметр Auth-Login-Attempt.
1314
1315 *) Исправление: при ошибке соединения с сервером аутентификации
1316 IMAP/POP3 прокси мог произойти segmentation fault.
1317
1318
1319 Изменения в nginx 0.4.13 15.11.2006
1320
1321 *) Добавление: директиву proxy_pass можно использовать внутри блока
1322 limit_except.
1323
1324 *) Добавление: директива limit_except поддерживает все WebDAV методы.
1325
1326 *) Исправление: при использовании директивы add_before_body без
1327 директивы add_after_body ответ передавался не полностью.
1328
1329 *) Исправление: большое тело запроса не принималось, если
1330 использовались метод epoll и deferred accept().
1331
1332 *) Исправление: для ответов модуля ngx_http_autoindex_module не
1333 выставлялась кодировка; ошибка появилась в 0.3.50.
1334
1335 *) Исправление: ошибки "[alert] zero size buf" при работе с
1336 FastCGI-сервером;
1337
1338 *) Исправление: параметр конфигурации --group= игнорировался.
1339 Спасибо Thomas Moschny.
1340
1341 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка
1342 появилась в 0.3.50.
1343
1344
1345 Изменения в nginx 0.4.12 31.10.2006
1346
1347 *) Добавление: модуль ngx_http_perl_module поддерживает метод
1348 $r->variable.
1349
1350 *) Исправление: при включении в ответ большого статического файла с
1351 помощью SSI ответ мог передаваться не полностью.
1352
1353 *) Исправление: nginx не убирал "#fragment" в URI.
1354
1355
1356 Изменения в nginx 0.4.11 25.10.2006
1357
1358 *) Добавление: POP3 прокси поддерживает AUTH LOIGN PLAIN и CRAM-MD5.
1359
1360 *) Добавление: модуль ngx_http_perl_module поддерживает метод
1361 $r->allow_ranges.
1362
1363 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
1364 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
1365
1366
1367 Изменения в nginx 0.4.10 23.10.2006
1368
1369 *) Добавление: POP3 прокси поддерживает APOP.
1370
1371 *) Исправление: при использовании методов select, poll и /dev/poll во
1372 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
1373 нагружал процессор.
1374
1375 *) Исправление: при использовании переменной $server_addr в директиве
1376 map мог произойти segmentation fault.
1377
1378 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
1379 для полных ответов; ошибка появилась в 0.4.7.
1380
1381 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
1382 0.4.9.
1383
1384
1385 Изменения в nginx 0.4.9 13.10.2006
1386
1387 *) Добавление: параметр set в команде SSI include.
1388
1389 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
1390 модуля nginx.pm.
1391
1392
1393 Изменения в nginx 0.4.8 11.10.2006
1394
1395 *) Исправление: если до команды SSI include с параметром wait
1396 выполнялась ещё одна команда SSI include, то параметр wait мог не
1397 работать.
1398
1399 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
1400 полных ответов.
1401 Спасибо Алексею Ковырину.
1402
1403
1404 Изменения в nginx 0.4.7 10.10.2006
1405
1406 *) Добавление: модуль ngx_http_flv_module.
1407
1408 *) Добавление: переменная $request_body_file.
1409
1410 *) Добавление: директивы charset и source_charset поддерживают
1411 переменные.
1412
1413 *) Исправление: если до команды SSI include с параметром wait
1414 выполнялась ещё одна команда SSI include, то параметр wait мог не
1415 работать.
1416
1417 *) Исправление: при использовании директивы "proxy_buffering off" или
1418 при работе с memcached соединения могли не закрываться по таймауту.
1419
1420 *) Исправление: nginx не запускался на 64-битных платформах, отличных
1421 от amd64, sparc64 и ppc64.
1422
1423
1424 Изменения в nginx 0.4.6 06.10.2006
1425
1426 *) Исправление: nginx не запускался на 64-битных платформах, отличных
1427 от amd64, sparc64 и ppc64.
1428
1429 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
1430 chunk'ами, если длина ответа в методе
1431 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
1432
1433 *) Исправление: после перенаправления ошибки с помощью директивы
1434 error_page любая директива модуля ngx_http_rewrite_module возвращала
1435 эту ошибку; ошибка появилась в 0.4.4.
1436
1437
1438 Изменения в nginx 0.4.5 02.10.2006
1439
1440 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
1441 в 0.4.4.
1442
1443
1444 Изменения в nginx 0.4.4 02.10.2006
1445
1446 *) Добавление: переменная $scheme.
1447
1448 *) Добавление: директива expires поддерживает параметр max.
1449
1450 *) Добавление: директива include поддерживает маску "*".
1451 Спасибо Jonathan Dance.
1452
1453 *) Исправление: директива return всегда изменяла код ответа,
1454 перенаправленного директивой error_page.
1455
1456 *) Исправление: происходил segmentation fault, если в методе PUT
1457 передавалось тело нулевой длины.
1458
1459 *) Исправление: при использовании переменных в директиве proxy_redirect
1460 редирект изменялся неверно.
1461
1462
1463 Изменения в nginx 0.4.3 26.09.2006
1464
1465 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью
1466 директивы error_page.
1467
1468 *) Добавление: поддержка Solaris 10 event ports.
1469
1470 *) Добавление: модуль ngx_http_browser_module.
1471
1472 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
1473 помощью директивы error_page мог произойти segmentation fault.
1474
1475 *) Исправление: происходил segmentation fault, если в директиве
1476 proxy_pass использовался unix domain сокет; ошибка появилась в
1477 0.3.47.
1478
1479 *) Исправление: SSI не работал с ответами memcached и
1480 небуферизированными проксированными ответами.
1481
1482 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
1483
1484
1485 Изменения в nginx 0.4.2 14.09.2006
1486
1487 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
1488 появилась в 0.4.1.
1489
1490
1491 Изменения в nginx 0.4.1 14.09.2006
1492
1493 *) Исправление: совместимость с DragonFlyBSD.
1494 Спасибо Павлу Назарову.
1495
1496 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
1497 файлов больше 2G.
1498
1499 *) Добавление: теперь на Linux nginx для статических запросов
1500 использует флаг O_NOATIME.
1501 Спасибо Yusuf Goolamabbas.
1502
1503
1504 Изменения в nginx 0.4.0 30.08.2006
1505
1506 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена
1507 из фазы init module в фазу HTTP postconfiguration.
1508
1509 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
1510 считывается заранее: нужно явно инициировать чтение с помощью метода
1511 $r->has_request_body.
1512
1513 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
1514 DECLINED.
1515
1516 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
1517 заголовка "Date" для метода PUT.
1518
1519 *) Добавление: директива ssi работает внутри блока if.
1520
1521 *) Исправление: происходил segmentation fault, если в директиве index
1522 использовалась переменные и при этом первое имя индексного файла
1523 было без переменных; ошибка появилась в 0.1.29.
1524
1525
1526 Изменения в nginx 0.3.61 28.08.2006
1527
1528 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
1529
1530 *) Добавление: директива msie_refresh.
1531
1532 *) Добавление: директива recursive_error_pages.
1533
1534 *) Исправление: директива rewrite возвращала неправильный редирект,
1535 если редирект включал в себя выделенные закодированные символы из
1536 оригинального URI.
1537
1538
1539 Изменения в nginx 0.3.60 18.08.2006
1540
1541 *) Исправление: во время перенаправления ошибки рабочий процесс мог
1542 зациклиться; ошибка появилась в 0.3.59.
1543
1544
1545 Изменения в nginx 0.3.59 16.08.2006
1546
1547 *) Добавление: теперь можно делать несколько перенаправлений через
1548 директиву error_page.
1549
1550 *) Исправление: директива dav_access не поддерживала три параметра.
1551
1552 *) Исправление: директива error_page не изменяла строку "Content-Type"
1553 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
1554 в 0.3.58.
1555
1556
1557 Изменения в nginx 0.3.58 14.08.2006
1558
1559 *) Добавление: директива error_page поддерживает переменные.
1560
1561 *) Изменение: теперь на Linux используется интерфейс procfs вместо
1562 sysctl.
1563
1564 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
1565 "Content-Type" наследуется из первоначального ответа.
1566
1567 *) Исправление: директива error_page не перенаправляла ошибку 413.
1568
1569 *) Исправление: завершающий "?" не удалял старые аргументы, если в
1570 переписанном URI не было новых аргументов.
1571
1572 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
1573
1574
1575 Изменения в nginx 0.3.57 09.08.2006
1576
1577 *) Добавление: переменная $ssl_client_serial.
1578
1579 *) Исправление: в операторе "!-e" в директиве if.
1580 Спасибо Андриану Буданцову.
1581
1582 *) Исправление: при проверке клиентского сертификата nginx не передавал
1583 клиенту информацию о требуемых сертификатах.
1584
1585 *) Исправление: переменная $document_root не поддерживала переменные в
1586 директиве root.
1587
1588
1589 Изменения в nginx 0.3.56 04.08.2006
1590
1591 *) Добавление: директива dav_access.
1592
1593 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
1594 "!-e", "-x" и "!-x".
1595
1596 *) Исправление: при записи в access_log некоторых передаваемых клиенту
1597 строк заголовков происходил segmentation fault, если запрос
1598 возвращал редирект.
1599
1600
1601 Изменения в nginx 0.3.55 28.07.2006
1602
1603 *) Добавление: параметр stub в команде SSI include.
1604
1605 *) Добавление: команда SSI block.
1606
1607 *) Добавление: скрипт unicode2nginx добавлен в contrib.
1608
1609 *) Исправление: если root был задан только переменной, то корень
1610 задавался относительно префикса сервера.
1611
1612 *) Исправление: если в запросе был "//" или "/.", и после этого
1613 закодированные символы в виде "%XX", то проксируемый запрос
1614 передавался незакодированным.
1615
1616 *) Исправление: метод $r->header_in("Cookie") модуля
1617 ngx_http_perl_module теперь возвращает все строки "Cookie" в
1618 заголовке запроса.
1619
1620 *) Исправление: происходил segmentation fault, если использовался
1621 "client_body_in_file_only on" и делался переход к следующему бэкенду.
1622
1623 *) Исправление: при некоторых условиях во время переконфигурации коды
1624 символов внутри директивы charset_map могли считаться неверными;
1625 ошибка появилась в 0.3.50.
1626
1627
1628 Изменения в nginx 0.3.54 11.07.2006
1629
1630 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
1631
1632 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
1633 memcached_next_upstream поддерживают параметр off.
1634
1635 *) Добавление: директива debug_connection поддерживает запись адресов в
1636 формате CIDR.
1637
1638 *) Исправление: при перекодировании ответа проксированного сервера или
1639 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
1640 полностью.
1641
1642 *) Исправление: переменная $upstream_response_time содержала время
1643 только первого обращения к бэкенду.
1644
1645 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
1646 в 0.3.53.
1647
1648
1649 Изменения в nginx 0.3.53 07.07.2006
1650
1651 *) Изменение: директива add_header добавляет строки в ответы с кодом
1652 204, 301 и 302.
1653
1654 *) Добавление: директива server в блоке upstream поддерживает параметр
1655 weight.
1656
1657 *) Добавление: директива server_name поддерживает маску "*".
1658
1659 *) Добавление: nginx поддерживает тело запроса больше 2G.
1660
1661 *) Исправление: если при использовании "satisfy_any on" клиент успешно
1662 проходил аутентификацию, в лог всё равно записалоcь сообщение
1663 "access forbidden by rule".
1664
1665 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
1666 409.
1667
1668 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
1669 ошибку, nginx продолжал проксирование.
1670
1671
1672 Изменения в nginx 0.3.52 03.07.2006
1673
1674 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
1675 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
1676 ошибку 405.
1677
1678 *) Исправление: при использовании ограничения скорости рабочий процесс
1679 мог зациклиться; ошибка появилась в 0.3.37.
1680
1681 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
1682 "unknown charset", даже если перекодировка не требовалась; ошибка
1683 появилась в 0.3.50.
1684
1685 *) Исправление: если в результате запроса PUT возвращался код 409, то
1686 временный файл не удалялся.
1687
1688
1689 Изменения в nginx 0.3.51 30.06.2006
1690
1691 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
1692 ошибка появилась в 0.3.50.
1693
1694
1695 Изменения в nginx 0.3.50 28.06.2006
1696
1697 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
1698 переименованы соответственно в proxy_intercept_errors и
1699 fastcgi_intercept_errors.
1700
1701 *) Добавление: модуль ngx_http_charset_module поддерживает
1702 перекодирование из однобайтных кодировок в UTF-8 и обратно.
1703
1704 *) Добавление: в режиме прокси и FastCGI поддерживается строка
1705 заголовка "X-Accel-Charset" в ответе бэкенда.
1706
1707 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
1708 только если также использовался символ "$".
1709
1710 *) Исправление: при некоторых условиях в SSI после вставки могла быть
1711 добавлена строка "<!--".
1712
1713 *) Исправление: если в заголовке ответа была строка
1714 "Content-Length: 0", то при использовании небуферизированного
1715 проксировании не закрывалось соединение с клиентом.
1716
1717
1718 Изменения в nginx 0.3.49 31.05.2006
1719
1720 *) Исправление: в директиве set.
1721
1722 *) Исправление: при включении в ssi двух и более подзапросов,
1723 обрабатываемых через FastCGI, вместо вывода второго и остальных
1724 подзапросов в ответ включался вывод первого подзапроса.
1725
1726
1727 Изменения в nginx 0.3.48 29.05.2006
1728
1729 *) Изменение: теперь модуль ngx_http_charset_module работает для
1730 подзапросов, в ответах которых нет строки заголовка "Content-Type".
1731
1732 *) Исправление: если в директиве proxy_pass не было URI, то директива
1733 "proxy_redirect default" добавляла в переписанный редирект в начало
1734 лишний слэш.
1735
1736 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
1737 GET, теперь это делается только для редиректов, выполняемых с
1738 помощью X-Accel-Redirect, и у которых метод не равен HEAD; ошибка
1739 появилась в 0.3.42.
1740
1741 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
1742 с поддержкой потоков; ошибка появилась в 0.3.46.
1743
1744
1745 Изменения в nginx 0.3.47 23.05.2006
1746
1747 *) Добавление: директива upstream.
1748
1749 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
1750 всегда убирается.
1751
1752
1753 Изменения в nginx 0.3.46 11.05.2006
1754
1755 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
1756 fastcgi_hide_header и fastcgi_pass_header.
1757
1758 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
1759 proxy_pass_server упразднены.
1760
1761 *) Добавление: в режиме прокси поддерживается строка заголовка
1762 "X-Accel-Buffering" в ответе бэкенда.
1763
1764 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
1765 ngx_http_perl_module.
1766
1767
1768 Изменения в nginx 0.3.45 06.05.2006
1769
1770 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
1771 ssl_client_certificate.
1772
1773 *) Изменение: теперь переменная $request_method возвращает метод только
1774 основного запроса.
1775
1776 *) Изменение: в таблице перекодировки koi-win изменены коды символа
1777 &deg;.
1778
1779 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
1780 номера.
1781
1782 *) Исправление: если nginx распределял запросы на несколько машин, то
1783 при падении одной из них запросы, предназначенные для этой машины,
1784 перенаправлялись только на одну машину вместо того, чтобы равномерно
1785 распределяться между остальными.
1786
1787
1788 Изменения в nginx 0.3.44 04.05.2006
1789
1790 *) Добавление: параметр wait в команде SSI include.
1791
1792 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
1793 белорусские символы.
1794
1795 *) Исправление: в SSI.
1796
1797
1798 Изменения в nginx 0.3.43 26.04.2006
1799
1800 *) Исправление: в SSI.
1801
1802
1803 Изменения в nginx 0.3.42 26.04.2006
1804
1805 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
1806
1807 *) Исправление: ошибки при использовании в директиве rewrite одного и
1808 того же выделения более одного раза.
1809
1810 *) Исправление: в лог не записывались переменные
1811 $sent_http_content_type, $sent_http_content_length,
1812 $sent_http_last_modified, $sent_http_connection,
1813 $sent_http_keep_alive и $sent_http_transfer_encoding.
1814
1815 *) Исправление: переменная $sent_http_cache_control возвращала
1816 содержимое только одной строки "Cache-Control" в заголовке ответа.
1817
1818
1819 Изменения в nginx 0.3.41 21.04.2006
1820
1821 *) Добавление: ключ -v.
1822
1823 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
1824 segmentation fault.
1825
1826 *) Исправление: в обработке FastCGI.
1827
1828 *) Исправление: если путь к перловым модулям не был указан с помощью
1829 --with-perl_modules_path=PATH или директивы perl_modules, то на
1830 старте происходил segmentation fault.
1831
1832
1833 Изменения в nginx 0.3.40 19.04.2006
1834
1835 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
1836
1837 *) Добавление: директива create_full_put_path.
1838
1839 *) Добавление: переменная $limit_rate.
1840
1841
1842 Изменения в nginx 0.3.39 17.04.2006
1843
1844 *) Добавление: директива uninitialized_variable_warn; уровень
1845 логгирования сообщения о неинициализированной переменной понижен с
1846 уровня alert на warn.
1847
1848 *) Добавление: директива override_charset.
1849
1850 *) Изменение: при использовании неизвестной переменной в SSI-командах
1851 echo и if expr='$name' теперь не записывается в лог сообщение о
1852 неизвестной переменной.
1853
1854 *) Исправление: счётчик активных соединений рос при превышении лимита
1855 соединений, заданного директивой worker_connections; ошибка
1856 появилась в 0.2.0.
1857
1858 *) Исправление: при некоторых условия ограничение скорости соединения
1859 могло не работать; ошибка появилась в 0.3.38.
1860
1861
1862 Изменения в nginx 0.3.38 14.04.2006
1863
1864 *) Добавление: модуль ngx_http_dav_module.
1865
1866 *) Изменение: оптимизация модуля ngx_http_perl_module.
1867 Спасибо Сергею Скворцову.
1868
1869 *) Добавление: модуль ngx_http_perl_module поддерживает метод
1870 $r->request_body_file.
1871
1872 *) Добавление: директива client_body_in_file_only.
1873
1874 *) Изменение: теперь при переполнении диска nginx пытается писать
1875 access_log'и только раз в секунду.
1876 Спасибо Антону Южанинову и Максиму Дунину.
1877
1878 *) Исправление: теперь директива limit_rate точнее ограничивает
1879 скорость при значениях больше 100 Kbyte/s.
1880 Спасибо ForJest.
1881
1882 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
1883 символы "\r" и "\n" в логине и пароле в закодированном виде.
1884 Спасибо Максиму Дунину.
1885
1886
1887 Изменения в nginx 0.3.37 07.04.2006
1888
1889 *) Добавление: директива limit_except.
1890
1891 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
1892 "!-f".
1893
1894 *) Добавление: модуль ngx_http_perl_module поддерживает метод
1895 $r->request_body.
1896
1897 *) Исправление: в модуле ngx_http_addition_filter_module.
1898
1899
1900 Изменения в nginx 0.3.36 05.04.2006
1901
1902 *) Добавление: модуль ngx_http_addition_filter_module.
1903
1904 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
1905 внутри блока if.
1906
1907 *) Добавление: директивы proxy_ignore_client_abort и
1908 fastcgi_ignore_client_abort.
1909
1910 *) Добавление: переменная $request_completion.
1911
1912 *) Добавление: модуль ngx_http_perl_module поддерживает методы
1913 $r->request_method и $r->remote_addr.
1914
1915 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
1916
1917 *) Исправление: строка "\/" в начале выражения команды if модуля
1918 ngx_http_ssi_module воспринималась неверно.
1919
1920 *) Исправление: в использовании регулярных выражениях в команде if
1921 модуля ngx_http_ssi_module.
1922
1923 *) Исправление: при задании относительного пути в директивах
1924 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
1925 perl_modules использовался каталог относительно текущего каталога, а
1926 не относительно префикса сервера.
1927
1928
1929 Изменения в nginx 0.3.35 22.03.2006
1930
1931 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
1932 для первой директивы listen; ошибка появилась в 0.3.31.
1933
1934 *) Исправление: в директиве proxy_pass без URI при использовании в
1935 подзапросе.
1936
1937
1938 Изменения в nginx 0.3.34 21.03.2006
1939
1940 *) Добавление: директива add_header поддерживает переменные.
1941
1942
1943 Изменения в nginx 0.3.33 15.03.2006
1944
1945 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
1946 fastcgi_next_upstream.
1947
1948 *) Исправление: ngx_http_perl_module не работал со встроенным в
1949 конфигурационный файл кодом, если он не начинался сразу же с "sub".
1950
1951 *) Исправление: в директиве post_action.
1952
1953
1954 Изменения в nginx 0.3.32 11.03.2006
1955
1956 *) Исправление: удаление отладочного логгирования на старте и при
1957 переконфигурации; ошибка появилась в 0.3.31.
1958
1959
1960 Изменения в nginx 0.3.31 10.03.2006
1961
1962 *) Изменение: теперь nginx передаёт неверные ответы проксированного
1963 бэкенда.
1964
1965 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
1966
1967 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
1968
1969 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
1970 64-битном ядре MacOSX.
1971 Спасибо Андрею Нигматулину.
1972
1973 *) Исправление: если внутри одного сервера описаны несколько директив
1974 listen, слушающих на разных адресах, то имена серверов вида
1975 "*.domain.tld" работали только для первого адреса; ошибка появилась
1976 в 0.3.18.
1977
1978 *) Исправление: при использовании протокола HTTPS в директиве
1979 proxy_pass не передавались запросы с телом, записанным во временный
1980 файл.
1981
1982 *) Исправление: совместимость с perl 5.8.8.
1983
1984
1985 Изменения в nginx 0.3.30 22.02.2006
1986
1987 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
1988 с уровня crit.
1989
1990 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
1991 ngx_http_ssi_filter_module.
1992
1993 *) Исправление: nginx не собирался на i386 платформе, если
1994 использовался PIC; ошибка появилась в 0.3.27.
1995
1996
1997 Изменения в nginx 0.3.29 20.02.2006
1998
1999 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
2000 FastCGI передаёт большое количество предупреждений перед ответом.
2001
2002 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
2003 строка заголовка "Transfer-Encoding: chunked".
2004
2005 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
2006 передавал полные строки заголовка ответа в отдельных FastCGI записях.
2007
2008 *) Исправление: если в директиве post_action был указан проксируемый
2009 URI, то он выполнялся только после успешного завершения запроса.
2010
2011
2012 Изменения в nginx 0.3.28 16.02.2006
2013
2014 *) Добавление: директива restrict_host_names упразднена.
2015
2016 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
2017
2018 *) Исправление: при некоторых условиях проксированное соединение с
2019 клиентом завершалось преждевременно.
2020 Спасибо Владимиру Шутову.
2021
2022 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась
2023 для запросов, перенаправленных с помощью строки "X-Accel-Redirect".
2024
2025 *) Исправление: директива post_action работала только после успешного
2026 завершения запроса.
2027
2028 *) Исправление: тело проксированного ответа, создаваемого директивой
2029 post_action, передавалось клиенту.
2030
2031
2032 Изменения в nginx 0.3.27 08.02.2006
2033
2034 *) Изменение: директивы variables_hash_max_size и
2035 variables_hash_bucket_size.
2036
2037 *) Добавление: переменная $body_bytes_sent доступна не только в
2038 директиве log_format.
2039
2040 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
2041
2042 *) Добавление: определение размера строки кэша распространённых
2043 процессоров при старте.
2044
2045 *) Добавление: директива accept_mutex теперь поддерживается посредством
2046 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
2047
2048 *) Добавление: директива lock_file и параметр автоконфигурации
2049 --with-lock-path=PATH.
2050
2051 *) Исправление: при использовании протокола HTTPS в директиве
2052 proxy_pass не передавались запросы с телом.
2053
2054
2055 Изменения в nginx 0.3.26 03.02.2006
2056
2057 *) Изменение: директива optimize_host_names переименована в
2058 optimize_server_names.
2059
2060 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
2061 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
2062
2063
2064 Изменения в nginx 0.3.25 01.02.2006
2065
2066 *) Исправление: при неверной конфигурации на старте или во время
2067 переконфигурации происходил segmentation fault; ошибка появилась в
2068 0.3.24.
2069
2070
2071 Изменения в nginx 0.3.24 01.02.2006
2072
2073 *) Изменение: обход ошибки в kqueue во FreeBSD.
2074
2075 *) Исправление: ответ, создаваемый директивой post_action, теперь не
2076 передаётся клиенту.
2077
2078 *) Исправление: при использовании большого количества лог-файлов
2079 происходила утечка памяти.
2080
2081 *) Исправление: внутри одного location работала только первая директива
2082 proxy_redirect.
2083
2084 *) Исправление: на 64-битных платформах при старте мог произойти
2085 segmentation fault, если использовалось большое количество имён в
2086 директивах server_name; ошибка появилась в 0.3.18.
2087
2088
2089 Изменения в nginx 0.3.23 24.01.2006
2090
2091 *) Добавление: директива optimize_host_names.
2092
2093 *) Исправление: ошибки при использовании переменных в директивах path и
2094 alias.
2095
2096 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
2097 Linux и Solaris.
2098
2099
2100 Изменения в nginx 0.3.22 17.01.2006
2101
2102 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
2103 и $r->unescape.
2104
2105 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
2106 упразднён.
2107
2108 *) Исправление: если в директиве valid_referers указаны только none или
2109 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
2110
2111
2112 Изменения в nginx 0.3.21 16.01.2006
2113
2114 *) Добавление: модуль ngx_http_perl_module.
2115
2116 *) Изменение: директива valid_referers разрешает использовать рефереры
2117 совсем без URI.
2118
2119
2120 Изменения в nginx 0.3.20 11.01.2006
2121
2122 *) Исправление: ошибки в обработке SSI.
2123
2124 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
2125 виде /uri?args.
2126
2127
2128 Изменения в nginx 0.3.19 28.12.2005
2129
2130 *) Добавление: директивы path и alias поддерживают переменные.
2131
2132 *) Изменение: теперь директива valid_referers опять учитывает URI.
2133
2134 *) Исправление: ошибки в обработке SSI.
2135
2136
2137 Изменения в nginx 0.3.18 26.12.2005
2138
2139 *) Добавление: директива server_names поддерживает имена вида
2140 ".domain.tld".
2141
2142 *) Добавление: директива server_names использует хэш для имён вида
2143 "*.domain.tld" и более эффективный хэш для обычных имён.
2144
2145 *) Изменение: директивы server_names_hash_max_size и
2146 server_names_hash_bucket_size.
2147
2148 *) Изменение: директивы server_names_hash и server_names_hash_threshold
2149 упразднены.
2150
2151 *) Добавление: директива valid_referers использует хэш для имён сайтов.
2152
2153 *) Изменение: теперь директива valid_referers проверяет только имена
2154 сайтов без учёта URI.
2155
2156 *) Исправление: некоторые имена вида ".domain.tld" неверно
2157 обрабатывались модулем ngx_http_map_module.
2158
2159 *) Исправление: если конфигурационного файла не было, то происходил
2160 segmentation fault; ошибка появилась в 0.3.12.
2161
2162 *) Исправление: на 64-битных платформах при старте мог произойти
2163 segmentation fault; ошибка появилась в 0.3.16.
2164
2165
2166 Изменения в nginx 0.3.17 18.12.2005
2167
2168 *) Изменение: на Linux configure теперь проверяет наличие epoll и
2169 sendfile64() в ядре.
2170
2171 *) Добавление: директива map поддерживает доменные имена в формате
2172 ".domain.tld".
2173
2174 *) Исправление: во время SSL handshake не иcпользовались таймауты;
2175 ошибка появилась в 0.2.4.
2176
2177 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
2178
2179 *) Исправление: при использовании протокола HTTPS в директиве
2180 proxy_pass по умолчанию использовался порт 80.
2181
2182
2183 Изменения в nginx 0.3.16 16.12.2005
2184
2185 *) Добавление: модуль ngx_http_map_module.
2186
2187 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
2188
2189 *) Добавление: директива ssi_value_length.
2190
2191 *) Добавление: директива worker_rlimit_core.
2192
2193 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
2194 Pentium 4 номер соединения в логах всегда был равен 1.
2195
2196 *) Исправление: команда config timefmt в SSI задавала неверный формат
2197 времени.
2198
2199 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
2200 использовании SSL соединений; ошибка появилась в 0.3.13.
2201 Спасибо Rob Mueller.
2202
2203 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
2204 ошибка появилась в 0.3.13.
2205
2206
2207 Изменения в nginx 0.3.15 07.12.2005
2208
2209 *) Добавление: новой код 444 в директиве return для закрытия соединения.
2210
2211 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
2212
2213 *) Исправление: nginx теперь вызывает abort() при обнаружении
2214 незакрытых соединений только при планом выходе и включённой
2215 директиве debug_points.
2216
2217
2218 Изменения в nginx 0.3.14 05.12.2005
2219
2220 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
2221 в 0.3.13.
2222
2223
2224 Изменения в nginx 0.3.13 05.12.2005
2225
2226 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
2227
2228 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
2229 /dev/poll.
2230
2231 *) Исправление: ошибки в обработке SSI.
2232
2233 *) Исправление: sendfilev() в Solaris теперь не используется при
2234 передаче тела запроса FastCGI-серверу через unix domain сокет.
2235
2236 *) Исправление: директива auth_basic не запрещала аутентификацию;
2237 ошибка появилась в 0.3.11.
2238
2239
2240 Изменения в nginx 0.3.12 26.11.2005
2241
2242 *) Безопасность: если nginx был собран с модулем
2243 ngx_http_realip_module, то при использовании директивы "satisfy_any
2244 on" директивы доступа и аутентификации не работали. Модуль
2245 ngx_http_realip_module не собирался и не собирается по умолчанию.
2246
2247 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
2248
2249 *) Изменение: директивы proxy_header_buffer_size и
2250 fastcgi_header_buffer_size переименованы соответственно в
2251 proxy_buffer_size и fastcgi_buffer_size.
2252
2253 *) Добавление: модуль ngx_http_memcached_module.
2254
2255 *) Добавление: директива proxy_buffering.
2256
2257 *) Исправление: изменение в работе с accept mutex при использовании
2258 метода rtsig; ошибка появилась в 0.3.0.
2259
2260 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
2261 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
2262
2263 *) Исправление: при наследовании директивы auth_basic с уровня http в
2264 строке "WWW-Authenticate" заголовка ответа выводился realm без
2265 текста "Basic realm".
2266
2267 *) Исправление: если в директиве access_log был явно указан формат
2268 combined, то в лог записывались пустые строки; ошибка появилась в
2269 0.3.8.
2270
2271 *) Исправление: nginx не работал на платформе sparc под любыми OS,
2272 кроме Solaris.
2273
2274 *) Исправление: в директиве if теперь не нужно разделять пробелом
2275 строку в кавычках и закрывающую скобку.
2276
2277
2278 Изменения в nginx 0.3.11 15.11.2005
2279
2280 *) Исправление: nginx не передавал при проксировании тело запроса и
2281 строки заголовка клиента; ошибка появилась в 0.3.10.
2282
2283
2284 Изменения в nginx 0.3.10 15.11.2005
2285
2286 *) Изменение: директива valid_referers и переменная $invalid_referer
2287 перенесены из модуля ngx_http_rewrite_module в новый модуль
2288 ngx_http_referer_module.
2289
2290 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
2291 "$body_bytes_sent".
2292
2293 *) Добавление: переменные "$sent_http_...".
2294
2295 *) Добавление: директива if поддерживает операции "=" и "!=".
2296
2297 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
2298
2299 *) Добавление: директива proxy_set_body.
2300
2301 *) Добавление: директива post_action.
2302
2303 *) Добавление: модуль ngx_http_empty_gif_module.
2304
2305 *) Добавление: директива worker_cpu_affinity для Linux.
2306
2307 *) Исправление: директива rewrite не раскодировала символы в редиректах
2308 в URI, теперь символы раскодируются, кроме символов %00-%25 и
2309 %7F-%FF.
2310
2311 *) Исправление: nginx не собирался компилятором icc 9.0.
2312
2313 *) Исправление: если для статического файла нулевого размера был
2314 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
2315
2316
2317 Изменения в nginx 0.3.9 10.11.2005
2318
2319 *) Исправление: nginx считал небезопасными URI, в которых между двумя
2320 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
2321
2322
2323 Изменения в nginx 0.3.8 09.11.2005
2324
2325 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
2326 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
2327 наличие путей "/../" и нулей.
2328
2329 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
2330 строке "Authorization" в заголовке запроса.
2331
2332 *) Добавление: директива ssl_session_timeout модулей
2333 ngx_http_ssl_module и ngx_imap_ssl_module.
2334
2335 *) Добавление: директива auth_http_header модуля
2336 ngx_imap_auth_http_module.
2337
2338 *) Добавление: директива add_header.
2339
2340 *) Добавление: модуль ngx_http_realip_module.
2341
2342 *) Добавление: новые переменные для использования в директиве
2343 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
2344 $uri, $request_time, $request_length, $upstream_status,
2345 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
2346 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
2347 упразднены.
2348
2349 *) Изменение: в директиве "if" ложными значениями переменных теперь
2350 являются пустая строка "" и строки, начинающиеся на "0".
2351
2352 *) Исправление: при работает с проксированными или FastCGI-серверами
2353 nginx мог оставлять открытыми соединения и временные файлы с
2354 запросами клиентов.
2355
2356 *) Исправление: рабочие процессы не сбрасывали буферизированные логи
2357 при плавном выходе.
2358
2359 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
2360 запрос проксировался в location, заданном регулярным выражением, то
2361 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
2362
2363 *) Исправление: директива expires не удаляла уже установленную строку
2364 заголовка "Expires".
2365
2366 *) Исправление: при использовании метода rtsig и нескольких рабочих
2367 процессах nginx мог перестать принимать запросы.
2368
2369 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
2370 "\'".
2371
2372 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
2373 при использовании сжатия ответ передавался не до конца или не
2374 передавался вообще.
2375
2376
2377 Изменения в nginx 0.3.7 27.10.2005
2378
2379 *) Добавление: директива access_log поддерживает параметр buffer=.
2380
2381 *) Исправление: nginx не собирался на платформах, отличных от i386,
2382 amd64, sparc и ppc; ошибка появилась в 0.3.2.
2383
2384
2385 Изменения в nginx 0.3.6 24.10.2005
2386
2387 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
2388 пустой логин.
2389
2390 *) Добавление: директива log_format поддерживает переменные в виде
2391 $name.
2392
2393 *) Исправление: если хотя бы в одном сервере не было описано ни одной
2394 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
2395 0.3.3.
2396
2397 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
2398 использовался порт 80.
2399
2400
2401 Изменения в nginx 0.3.5 21.10.2005
2402
2403 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
2404 мог произойти segmentation fault; ошибка появилась в 0.2.2.
2405
2406 *) Исправление: accept mutex не работал, все соединения обрабатывались
2407 одним рабочим процессом; ошибка появилась в 0.3.3.
2408
2409 *) Исправление: при использовании метода rtsig и директивы
2410 timer_resolution не работали таймауты.
2411
2412
2413 Изменения в nginx 0.3.4 19.10.2005
2414
2415 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
2416 появилась в 0.3.3.
2417
2418
2419 Изменения в nginx 0.3.3 19.10.2005
2420
2421 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
2422 "backlog" и "accept_filter".
2423
2424 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
2425
2426 *) Изменение: параметр лога $msec теперь не требует дополнительного
2427 системного вызова gettimeofday().
2428
2429 *) Добавление: ключ -t теперь проверяет директивы listen.
2430
2431 *) Исправление: если в директиве listen был указан неверный адрес, то
2432 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
2433
2434 *) Исправление: для индексных файлов, содержащих в имени переменную,
2435 мог неверно выставляться тип mime по умолчанию; ошибка появилась в
2436 0.3.0.
2437
2438 *) Добавление: директива timer_resolution.
2439
2440 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
2441
2442 *) Исправление: временный файл с телом запроса клиента теперь удаляется
2443 сразу после того, как клиенту передан заголовок ответа.
2444
2445 *) Исправление: совместимость с OpenSSL 0.9.6.
2446
2447 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
2448 относительными.
2449
2450 *) Исправление: директива ssl_prefer_server_ciphers не работала для
2451 модуля ngx_imap_ssl_module.
2452
2453 *) Исправление: директива ssl_protocols позволяла задать только один
2454 протокол.
2455
2456
2457 Изменения в nginx 0.3.2 12.10.2005
2458
2459 *) Добавление: поддержка Sun Studio 10 C compiler.
2460
2461 *) Добавление: директивы proxy_upstream_max_fails,
2462 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
2463 fastcgi_upstream_fail_timeout.
2464
2465
2466 Изменения в nginx 0.3.1 10.10.2005
2467
2468 *) Исправление: во время переполнения очереди сигналов при
2469 использовании метода rtsig происходил segmentation fault; ошибка
2470 появилась в 0.2.0.
2471
2472 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
2473
2474
2475 Изменения в nginx 0.3.0 07.10.2005
2476
2477 *) Изменение: убрано десятидневное ограничение времени работы рабочего
2478 процесса. Ограничение было введено из-за переполнения миллисекундных
2479 таймеров.
2480
2481
2482 Изменения в nginx 0.2.6 05.10.2005
2483
2484 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
2485 бэкенду при использовании распределения нагрузки.
2486
2487 *) Изменение: директива proxy_pass_unparsed_uri упразднена,
2488 оригинальный запрос теперь передаётся, если в директиве proxy_pass
2489 отсутствует URI.
2490
2491 *) Добавление: директива error_page поддерживает редиректы и позволяет
2492 более гибко менять код ошибки.
2493
2494 *) Изменение: в проксированных подзапросах теперь игнорируется
2495 переданный charset.
2496
2497 *) Исправление: если после изменения URI в блоке if для запроса не
2498 находилась новая конфигурация, то правила модуля
2499 ngx_http_rewrite_module выполнялись снова.
2500
2501 *) Исправление: если директива set устанавливала переменную модуля
2502 ngx_http_geo_module в какой-либо части конфигурации, то эта
2503 переменная не была доступна в других частях конфигурации и
2504 выдавалась ошибка "using uninitialized variable"; ошибка появилась в
2505 0.2.2.
2506
2507
2508 Изменения в nginx 0.2.5 04.10.2005
2509
2510 *) Изменение: дублирующее значение переменной модуля
2511 ngx_http_geo_module теперь выдаёт предупреждение и изменяет старое
2512 значение.
2513
2514 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
2515
2516 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
2517 команде include.
2518
2519 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
2520 значений переменных в выражениях команды if.
2521
2522
2523 Изменения в nginx 0.2.4 03.10.2005
2524
2525 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
2526 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
2527 if.
2528
2529 *) Исправление: ошибки при проксировании location без слэша в конце;
2530 ошибка появилась в 0.1.44.
2531
2532 *) Исправление: при использовании метода rtsig мог произойти
2533 segmentation fault; ошибка появилась в 0.2.0.
2534
2535
2536 Изменения в nginx 0.2.3 30.09.2005
2537
2538 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
2539 появилась в 0.2.2.
2540
2541
2542 Изменения в nginx 0.2.2 30.09.2005
2543
2544 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
2545
2546 *) Изменение: переменные модуля ngx_http_geo_module можно
2547 переопределять директивой set.
2548
2549 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
2550 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
2551
2552 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
2553 длинных имён файлов;
2554
2555 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
2556 файлы, начинающиеся на точку.
2557
2558 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
2559 привести также к закрытию другого соединения.
2560 Спасибо Rob Mueller.
2561
2562 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
2563 HTTPS.
2564
2565
2566 Изменения в nginx 0.2.1 23.09.2005
2567
2568 *) Исправление: если все бэкенды, используемые для балансировки
2569 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
2570 nginx мог зациклится; ошибка появилась в 0.2.0.
2571
2572
2573 Изменения в nginx 0.2.0 23.09.2005
2574
2575 *) Изменились имена pid-файлов, используемые во время обновления
2576 исполняемого файла. Ручное переименование теперь не нужно. Старый
2577 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
2578 запускает новый исполняемый файл. Новый основной процесс создаёт
2579 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
2580 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
2581 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
2582 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
2583 0.2.0 - используют pid-файл без суффиксов.
2584
2585 *) Изменение: директива worker_connections, новое название директивы
2586 connections; директива теперь задаёт максимальное число соединений,
2587 а не максимально возможный номер дескриптора для сокета.
2588
2589 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
2590 рабочего процесса.
2591
2592 *) Добавление: директива satisfy_any.
2593
2594 *) Изменение: модули ngx_http_access_module и
2595 ngx_http_auth_basic_module не работают для подзапросов.
2596
2597 *) Добавление: директивы worker_rlimit_nofile и
2598 worker_rlimit_sigpending.
2599
2600 *) Исправление: если все бэкенды, используемые для балансировки
2601 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
2602 nginx не обращался к ним в течение 60 секунд.
2603
2604 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
2605 Спасибо Rob Mueller.
2606
2607 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
2608
2609 *) Исправление: ошибки при использовании SSI и сжатия.
2610
2611 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
2612 "Expires" и "Cache-Control".
2613 Спасибо Александру Кукушкину.
2614
2615
2616 Изменения в nginx 0.1.45 08.09.2005
2617
2618 *) Изменение: директива ssl_engine упразднена в модуле
2619 ngx_http_ssl_module и перенесена на глобальный уровень.
2620
2621 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
2622 передавались через SSL соединение.
2623
2624 *) Разные исправления в IMAP/POP3 прокси.
2625
2626
2627 Изменения в nginx 0.1.44 06.09.2005
2628
2629 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
2630
2631 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
2632
2633 *) Добавление: директива userid_mark.
2634
2635 *) Добавление: значение переменной $remote_user определяется независимо
2636 от того, используется ли авторизация или нет.
2637
2638
2639 Изменения в nginx 0.1.43 30.08.2005
2640
2641 *) Добавление: listen(2) backlog в директиве listen можно менять по
2642 сигналу -HUP.
2643
2644 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
2645
2646 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
2647 серверу.
2648
2649 *) Исправление: если в ответе проксированного сервера или FastCGI
2650 сервера была строка "Cache-Control", то при использовании директивы
2651 expires происходил segmentation fault или рабочий процесс мог
2652 зациклится; в режиме прокси ошибка появилась в 0.1.29.
2653
2654
2655 Изменения в nginx 0.1.42 23.08.2005
2656
2657 *) Исправление: если URI запроса получался нулевой длины после
2658 обработки модулем ngx_http_rewrite_module, то в модуле
2659 ngx_http_proxy_module происходил segmentation fault или bus error.
2660
2661 *) Исправление: директива limit_rate не работала внутри блока if;
2662 ошибка появилась в 0.1.38.
2663
2664
2665 Изменения в nginx 0.1.41 25.07.2005
2666
2667 *) Исправление: если переменная использовалась в файле конфигурации, то
2668 она не могла использоваться в SSI.
2669
2670
2671 Изменения в nginx 0.1.40 22.07.2005
2672
2673 *) Исправление: если клиент слал очень длинную строку заголовка, то в
2674 логе не помещалась информация, связанная с этим запросом.
2675
2676 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
2677 строка "Set-Cookie"; ошибка появилась в 0.1.39.
2678
2679 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
2680 строка "Content-Disposition".
2681
2682 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
2683 на которых он слушал.
2684
2685 *) Исправление: после обновления исполняемого файла на лету на Linux и
2686 Solaris название процесса в команде ps становилось короче.
2687
2688
2689 Изменения в nginx 0.1.39 14.07.2005
2690
2691 *) Изменения в модуле ngx_http_charset_module: директива
2692 default_charset упразднена; директива charset задаёт кодировку
2693 ответа; директива source_charset задаёт только исходную кодировку.
2694
2695 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
2696 не передавалась строка заголовка "WWW-Authenticate".
2697
2698 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
2699 могли закрыть соединение до того, как что-нибудь было передано
2700 клиенту; ошибка появилась в 0.1.38.
2701
2702 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
2703
2704 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
2705 URI в команде include virtual.
2706
2707 *) Исправление: если в строке заголовка ответа бэкенда была строка
2708 "Location", которую nginx не должен был изменять, то в ответе
2709 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
2710
2711 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
2712 ngx_http_fastcgi_module не наследовались с уровня server на уровень
2713 location; ошибка появилась в 0.1.29.
2714
2715 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
2716 сертификатов.
2717
2718 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
2719 длинных имён файлов; ошибка появилась в 0.1.38.
2720
2721 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
2722 стадии login.
2723
2724
2725 Изменения в nginx 0.1.38 08.07.2005
2726
2727 *) Добавление: директива limit_rate поддерживается в режиме прокси и
2728 FastCGI.
2729
2730 *) Добавление: в режиме прокси и FastCGI поддерживается строка
2731 заголовка "X-Accel-Limit-Rate" в ответе бэкенда.
2732
2733 *) Добавление: директива break.
2734
2735 *) Добавление: директива log_not_found.
2736
2737 *) Исправление: при перенаправлении запроса с помощью строки заголовка
2738 "X-Accel-Redirect" не изменялся код ответа.
2739
2740 *) Исправление: переменные, установленные директивой set не могли
2741 использоваться в SSI.
2742
2743 *) Исправление: при включении в SSI более одного удалённого подзапроса
2744 мог произойти segmentation fault.
2745
2746 *) Исправление: если статусная строка в ответе бэкенда передавалась в
2747 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
2748 0.1.29.
2749
2750 *) Добавление: директива ssi_types.
2751
2752 *) Добавление: директива autoindex_exact_size.
2753
2754 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
2755 имена файлов в UTF-8.
2756
2757 *) Добавление: IMAP/POP3 прокси.
2758
2759
2760 Изменения в nginx 0.1.37 23.06.2005
2761
2762 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
2763
2764 *) Исправление: при включении большого количества вставок или
2765 нескольких больших вставок с помощью SSI ответ мог передаваться не
2766 полностью.
2767
2768 *) Исправление: если все бэкенды возвращали ответ 404, то при
2769 использовании параметра http_404 в директивах proxy_next_upstream
2770 или fastcgi_next_upstream, nginx начинал запрашивать все бэкенды
2771 снова.
2772
2773
2774 Изменения в nginx 0.1.36 15.06.2005
2775
2776 *) Изменение: если в заголовке запросе есть дублирующиеся строки
2777 "Host", "Connection", "Content-Length" и "Authorization", то nginx
2778 теперь выдаёт ошибку 400.
2779
2780 *) Изменение: директива post_accept_timeout упразднена.
2781
2782 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
2783 listen.
2784
2785 *) Добавление: поддержка accept фильтров во FreeBSD.
2786
2787 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
2788
2789 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
2790 файлов в UTF-8.
2791
2792 *) Исправление: после добавления новый лог-файл ротация этого лога по
2793 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
2794 раза по сигналу -HUP.
2795
2796
2797 Изменения в nginx 0.1.35 07.06.2005
2798
2799 *) Добавление: директива working_directory.
2800
2801 *) Добавление: директива port_in_redirect.
2802
2803 *) Исправление: если заголовок ответа бэкенда не помещался в один
2804 пакет, то происходил segmentation fault; ошибка появилась в 0.1.29.
2805
2806 *) Исправление: если было сконфигурировано более 10 серверов или в
2807 сервере не описана директива "listen", то при запуске мог произойти
2808 segmentation fault.
2809
2810 *) Исправление: если ответ не помещался во временный файл, то мог
2811 произойти segmentation fault.
2812
2813 *) Исправление: nginx возвращал ошибку 400 на запросы вида
2814 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
2815
2816
2817 Изменения в nginx 0.1.34 26.05.2005
2818
2819 *) Исправление: при включении больших ответов с помощью SSI рабочий
2820 процесс мог зациклиться.
2821
2822 *) Исправление: переменные, устанавливаемые директивой "set", не были
2823 доступны в SSI.
2824
2825 *) Добавление: директива autoindex_localtime.
2826
2827 *) Исправление: пустое значение в директиве proxy_set_header запрещает
2828 передачу заголовка.
2829
2830
2831 Изменения в nginx 0.1.33 23.05.2005
2832
2833 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
2834 появилась в 0.1.29.
2835
2836 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
2837 вызывали bus fault при запуске.
2838
2839 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
2840 HTTP.
2841
2842 *) Исправление: если директива rewrite использовала выделения внутри
2843 директивы if, то возвращалась ошибка 500.
2844
2845
2846 Изменения в nginx 0.1.32 19.05.2005
2847
2848 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite,
2849 не передавались аргументы; ошибка появилась в 0.1.29.
2850
2851 *) Добавление: директива if поддерживает выделения в регулярных
2852 выражениях.
2853
2854 *) Добавление: директива set поддерживает переменные и выделения из
2855 регулярных выражений.
2856
2857 *) Добавление: в режиме прокси и FastCGI поддерживается строка
2858 заголовка "X-Accel-Redirect" в ответе бэкенда.
2859
2860
2861 Изменения в nginx 0.1.31 16.05.2005
2862
2863 *) Исправление: при использовании SSL ответ мог передаваться не до
2864 конца.
2865
2866 *) Исправление: ошибки при обработке SSI в ответе, полученного от
2867 FastCGI-сервера.
2868
2869 *) Исправление: ошибки при использовании SSI и сжатия.
2870
2871 *) Исправление: редирект с кодом 301 передавался без тела ответа;
2872 ошибка появилась в 0.1.30.
2873
2874
2875 Изменения в nginx 0.1.30 14.05.2005
2876
2877 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
2878
2879 *) Исправление: при использовании SSL ответ мог передаваться не до
2880 конца.
2881
2882 *) Исправление: если длина части ответа, полученного за один раз от
2883 проксируемого или FastCGI сервера была равна 500 байт, то nginx
2884 возвращал код ответа 500; в режиме прокси ошибка появилась только в
2885 0.1.29.
2886
2887 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
2888 параметрами.
2889
2890 *) Добавление: директива return может возвращать код ответа 204.
2891
2892 *) Добавление: директива ignore_invalid_headers.
2893
2894
2895 Изменения в nginx 0.1.29 12.05.2005
2896
2897 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
2898 virtual.
2899
2900 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
2901 вида 'if expr="$NAME"' и команды else и endif. Допускается только
2902 один уровень вложенности.
2903
2904 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
2905 DATE_LOCAL и DATE_GMT и команду config timefmt.
2906
2907 *) Добавление: директива ssi_ignore_recycled_buffers.
2908
2909 *) Исправление: если переменная QUERY_STRING не была определена, то в
2910 команде echo не ставилось значение по умолчанию.
2911
2912 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
2913
2914 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
2915 proxy_pass_request_body и proxy_method.
2916
2917 *) Добавление: директива proxy_set_header. Директива proxy_x_var
2918 упразднена и должна быть заменена директивой proxy_set_header.
2919
2920 *) Изменение: директива proxy_preserve_host упразднена и должна быть
2921 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
2922 off" или директивой "proxy_set_header Host $host:$proxy_port" и
2923 соответствующими ей директивами proxy_redirect.
2924
2925 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
2926 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
2927
2928 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
2929 быть заменена директивой
2930 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
2931
2932 *) Изменение: директива proxy_set_x_url упразднена и должна быть
2933 заменена директивой
2934 "proxy_set_header X-URL http://$host:$server_port$request_uri".
2935
2936 *) Добавление: директива fastcgi_param.
2937
2938 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
2939 упразднены и должны быть замены директивами fastcgi_param.
2940
2941 *) Добавление: директива index может использовать переменные.
2942
2943 *) Добавление: директива index может быть указана на уровне http и
2944 server.
2945
2946 *) Изменение: только последний параметр в директиве index может быть
2947 абсолютным.
2948
2949 *) Добавление: в директиве rewrite могут использоваться переменные.
2950
2951 *) Добавление: директива internal.
2952
2953 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
2954 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
2955 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
2956
2957 *) Изменение: nginx теперь передаёт неверные строки в заголовках
2958 запроса клиента и ответа бэкенда.
2959
2960 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
2961 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
2962
2963 *) Исправление: если бэкенд передавал неверную строку в заголовке
2964 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
2965
2966 *) Исправление: при использовании отказоустойчивой конфигурации в
2967 FastCGI мог происходить segmentation fault.
2968
2969 *) Исправление: директива expires не удаляла уже установленные строки
2970 заголовка "Expires" и "Cache-Control".
2971
2972 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
2973 запроса "Host".
2974
2975 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
2976
2977 *) Исправление: директива rewrite неверно работала, если в запросе
2978 присутствовали аргументы.
2979
2980 *) Исправление: nginx не собирался на MacOS X.
2981
2982
2983 Изменения в nginx 0.1.28 08.04.2005
2984
2985 *) Исправление: при проксировании больших файлов nginx сильно нагружал
2986 процессор.
2987
2988 *) Исправление: nginx не собирался gcc 4.0 на Linux.
2989
2990
2991 Изменения в nginx 0.1.27 28.03.2005
2992
2993 *) Добавление: параметр blocked в директиве valid_referers.
2994
2995 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
2996 уровне info, в лог также записывается имя сервера и строки заголовка
2997 запроса "Host" и "Referer".
2998
2999 *) Изменение: при записи ошибок в лог записывается также строка
3000 заголовка запроса "Host".
3001
3002 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
3003 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
3004
3005 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
3006 параметр конфигурации --without-ngx_http_auth_basic_module.
3007
3008
3009 Изменения в nginx 0.1.26 22.03.2005
3010
3011 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
3012 игнорируется и записываются в error_log на уровне info.
3013
3014 *) Изменение: при записи ошибок в лог записывается также имя сервера,
3015 при обращении к которому произошла ошибка.
3016
3017 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
3018 и auth_basic_user_file.
3019
3020
3021 Изменения в nginx 0.1.25 19.03.2005
3022
3023 *) Исправление: nginx не работал на Linux parisc.
3024
3025 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
3026 sysctl kern.ipc.somaxconn слишком большое.
3027
3028 *) Исправление: если модуль ngx_http_index_module делал внутреннее
3029 перенаправление запроса в модули ngx_http_proxy_module или
3030 ngx_http_fastcgi_module, то файл индекса не закрывался после
3031 обслуживания запроса.
3032
3033 *) Добавление: директива proxy_pass может использоваться в location,
3034 заданных регулярным выражением.
3035
3036 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
3037 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
3038
3039 *) Исправление: nginx очень медленно запускался при большом количестве
3040 адресов и использовании текстовых значений в директиве geo.
3041
3042 *) Изменение: имя переменной в директиве geo нужно указывать, как
3043 $name. Прежний вариант без "$" пока работает, но вскоре будет убран.
3044
3045 *) Добавление: параметр лога "%{VARIABLE}v".
3046
3047 *) Добавление: директива "set $name value".
3048
3049 *) Исправление: совместимость с gcc 4.0.
3050
3051 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
3052
3053
3054 Изменения в nginx 0.1.24 04.03.2005
3055
3056 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает
3057 переменные QUERY_STRING и DOCUMENT_URI.
3058
3059 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
3060 на существующий каталог, если этот каталог был указан как alias.
3061
3062 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
3063 при больших ответах.
3064
3065 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
3066 правильным referrer'ом.
3067
3068
3069 Изменения в nginx 0.1.23 01.03.2005
3070
3071 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
3072 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
3073 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
3074
3075 *) Добавление: параметр лога %request_time.
3076
3077 *) Добавление: если запрос пришёл без строки заголовка "Host", то
3078 директива proxy_preserve_host устанавливает в качестве этого
3079 заголовка первое имя сервера из директивы server_name.
3080
3081 *) Исправление: nginx не собирался на платформах, отличных от i386,
3082 amd64, sparc и ppc; ошибка появилась в 0.1.22.
3083
3084 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
3085 информацию не о символическом линке, а о файле или каталоге, на
3086 который он указывает.
3087
3088 *) Исправление: если клиенту ничего не передавалось, то параметр
3089 %apache_length записывал в лог отрицательную длину заголовка ответа.
3090
3091
3092 Изменения в nginx 0.1.22 22.02.2005
3093
3094 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
3095 статистику для обработанных соединений, если использовалось
3096 проксирование или FastCGI-сервер.
3097
3098 *) Исправление: на Linux и Solaris установочные пути были неверно
3099 заключены в кавычки; ошибка появилась в 0.1.21.
3100
3101
3102 Изменения в nginx 0.1.21 22.02.2005
3103
3104 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
3105 статистику при использовании метода rtsig или при использовании
3106 нескольких рабочих процессов на SMP машине.
3107
3108 *) Исправление: nginx не собирался компилятором icc под Линуксом или
3109 если библиотека zlib-1.2.x собиралась из исходных текстов.
3110
3111 *) Исправление: nginx не собирался под NetBSD 2.0.
3112
3113
3114 Изменения в nginx 0.1.20 17.02.2005
3115
3116 *) Добавление: новые параметры script_filename и remote_port в
3117 директиве fastcgi_params.
3118
3119 *) Исправление: неправильно обрабатывался поток stderr от
3120 FastCGI-сервера.
3121
3122
3123 Изменения в nginx 0.1.19 16.02.2005
3124
3125 *) Исправление: если в запросе есть нуль, то для локальных запросов
3126 теперь возвращается ошибка 404.
3127
3128 *) Исправление: nginx не собирался под NetBSD 2.0.
3129
3130 *) Исправление: во время чтения тела запроса клиента в SSL соединении
3131 мог произойти таймаут.
3132
3133
3134 Изменения в nginx 0.1.18 09.02.2005
3135
3136 *) Изменение: для совместимости с Solaris 10 в директивах
3137 devpoll_events и devpoll_changes значения по умолчанию уменьшены с
3138 512 до 32.
3139
3140 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
3141 наследовались.
3142
3143 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
3144 присоединялись к URI через символ "&" вместо "?".
3145
3146 *) Исправление: строки для модуля ngx_http_geo_module без символа ";"
3147 во включённом файле игнорировались.
3148
3149 *) Добавление: модуль ngx_http_stub_status_module.
3150
3151 *) Исправление: неизвестный формат лог-файла в директиве access_log
3152 вызывал segmentation fault.
3153
3154 *) Добавление: новый параметр document_root в директиве fastcgi_params.
3155
3156 *) Добавление: директива fastcgi_redirect_errors.
3157
3158 *) Добавление: новый модификатор break в директиве rewrite позволяет
3159 прекратить цикл rewrite/location и устанавливает текущую
3160 конфигурацию для запроса.
3161
3162
3163 Изменения в nginx 0.1.17 03.02.2005
3164
3165 *) Изменение: модуль ngx_http_rewrite_module полностью переписан.
3166 Теперь можно делать редиректы, возвращать коды ошибок и проверять
3167 переменные и рефереры. Эти директивы можно использовать внутри
3168 location. Директива redirect упразднена.
3169
3170 *) Добавление: модуль ngx_http_geo_module.
3171
3172 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
3173
3174 *) Исправление: конфигурация location с модификатором "=" могла
3175 использоваться в другом location.
3176
3177 *) Исправление: правильный тип ответа выставлялся только для запросов,
3178 у которых в расширении были только маленькие буквы.
3179
3180 *) Исправление: если для location установлен proxy_pass или
3181 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
3182 на статическую страницу, то происходил segmentation fault.
3183
3184 *) Исправление: если в проксированном ответе в заголовке "Location"
3185 передавался относительный URL, то к нему добавлялось имя хоста и
3186 слэш; ошибка появилась в 0.1.14.
3187
3188 *) Исправление: на Linux в лог не записывался текст системной ошибки.
3189
3190
3191 Изменения в nginx 0.1.16 25.01.2005
3192
3193 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
3194 выдавался завершающий chunk.
3195
3196 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
3197 директива keepalive_timeout запрещала использование keep-alive.
3198
3199 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
3200 segmentation fault.
3201
3202 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
3203 до конца.
3204
3205 *) Исправление: опции TCP_NODELAY, TCP_NOPSUH и TCP_CORK, специфичные
3206 для TCP сокетов, не используются для unix domain сокетов.
3207
3208 *) Добавление: директива rewrite поддерживает перезаписывание
3209 аргументов.
3210
3211 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
3212 возвращался ответ 400; ошибка появилась в 0.1.14.
3213
3214
3215 Изменения в nginx 0.1.15 19.01.2005
3216
3217 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
3218 segmentation fault.
3219
3220 *) Исправление: корректная обработка регулярного выражения, в котором
3221 число выделенных частей не совпадает с числом подстановок.
3222
3223 *) Добавление: location, который передаётся FastCGI-серверу, может быть
3224 задан с помощью регулярного выражения.
3225
3226 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
3227 аргументами и в том виде, в котором был получен от клиента.
3228
3229 *) Исправление: для использования регулярных выражений в location нужно
3230 было собирать nginx вместе с ngx_http_rewrite_module.
3231
3232 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
3233 директивы "proxy_preserve_host on" в заголовке "Host" указывался
3234 также порт 80; ошибка появилась в 0.1.14.
3235
3236 *) Исправление: если задать одинаковые пути в параметрах
3237 автоконфигурации --http-client-body-temp-path=PATH и
3238 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
3239 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
3240
3241
3242 Изменения в nginx 0.1.14 18.01.2005
3243
3244 *) Добавление: параметры автоконфигурации
3245 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
3246 --http-fastcgi-temp-path=PATH
3247
3248 *) Изменение: имя каталога с временными файлами, содержащие тело
3249 запроса клиента, задаётся директивой client_body_temp_path, по
3250 умолчанию <prefix>/client_body_temp.
3251
3252 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
3253 fastcgi_root, fastcgi_index, fastcgi_params,
3254 fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout,
3255 fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers,
3256 fastcgi_busy_buffers_size, fastcgi_temp_path,
3257 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
3258 fastcgi_next_upstream и fastcgi_x_powered_by.
3259
3260 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
3261 0.1.3.
3262
3263 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
3264 после имени хоста.
3265
3266 *) Изменение: если в URI встречался символ %3F, то он считался началом
3267 строки аргументов.
3268
3269 *) Добавление: поддержка unix domain сoкетов в модуле
3270 ngx_http_proxy_module.
3271
3272 *) Добавление: директивы ssl_engine и ssl_ciphers.
3273 Спасибо Сергею Скворцову за SSL-акселератор.
3274
3275
3276 Изменения в nginx 0.1.13 21.12.2004
3277
3278 *) Добавление: директивы server_names_hash и
3279 server_names_hash_threshold.
3280
3281 *) Исправление: имена *.domain.tld в директиве server_name не работали.
3282
3283 *) Исправление: параметр лога %request_length записывал неверную длину.
3284
3285
3286 Изменения в nginx 0.1.12 06.12.2004
3287
3288 *) Добавление: параметр лога %request_length.
3289
3290 *) Исправление: при использовании /dev/poll, select и poll на
3291 платформах, где возможны ложные срабатывания указанных методов,
3292 могли быть длительные задержки при обработке запроса по keep-alive
3293 соединению. Наблюдалось по крайней мере на Solaris с использованием
3294 /dev/poll.
3295
3296 *) Исправление: директива send_lowat игнорируется на Linux, так как
3297 Linux не поддерживает опцию SO_SNDLOWAT.
3298
3299
3300 Изменения в nginx 0.1.11 02.12.2004
3301
3302 *) Добавление: директива worker_priority.
3303
3304 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
3305 влияют на передачу ответа.
3306
3307 *) Исправление: nginx не вызывал initgroups().
3308 Спасибо Андрею Ситникову и Андрею Нигматулину.
3309
3310 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
3311 байтах.
3312
3313 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
3314 каталоге есть битый symlink.
3315
3316 *) Исправление: файлы больше 4G не передавались с использованием
3317 sendfile.
3318
3319 *) Исправление: если бэкенд резолвился в несколько адресов и при
3320 ожидании от него ответа происходила ошибка, то процесс зацикливался.
3321
3322 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
3323 завершиться с сообщением "unknown cycle".
3324
3325 *) Исправление: ошибки "close() channel failed".
3326
3327 *) Исправление: автоматическое определение групп nobody и nogroup.
3328
3329 *) Исправление: директива send_lowat не работала на Linux.
3330
3331 *) Исправление: если в конфигурации не было раздела events, то
3332 происходил segmentation fault.
3333
3334 *) Исправление: nginx не собирался под OpenBSD.
3335
3336 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
3337
3338
3339 Изменения в nginx 0.1.10 26.11.2004
3340
3341 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
3342 или "%XX", то терялся последний символ в строке запроса; ошибка
3343 появилась в 0.1.9.
3344
3345 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на
3346 Linux не работало.
3347
3348
3349 Изменения в nginx 0.1.9 25.11.2004
3350
3351 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
3352 проксируемый запрос передавался без аргументов.
3353
3354 *) Исправление: при сжатии больших ответов иногда они передавались не
3355 полностью.
3356
3357 *) Исправление: не передавались файлы больше 2G на Linux,
3358 неподдерживающем sendfile64().
3359
3360 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
3361 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
3362
3363
3364 Изменения в nginx 0.1.8 20.11.2004
3365
3366 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
3367 длинных имён файлов.
3368
3369 *) Добавление: модификатор "^~" в директиве location.
3370
3371 *) Добавление: директива proxy_max_temp_file_size.
3372
3373
3374 Изменения в nginx 0.1.7 12.11.2004
3375
3376 *) Исправление: при использовании sendfile, если передаваемый файл
3377 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
3378 появилась в 0.1.5.
3379
3380
3381 Изменения в nginx 0.1.6 11.11.2004
3382
3383 *) Исправление: при некоторых комбинациях директив location c
3384 регулярными выражениями использовалась конфигурация не из того
3385 location.
3386
3387
3388 Изменения в nginx 0.1.5 11.11.2004
3389
3390 *) Исправление: на Solaris и Linux могло быть очень много сообщений
3391 "recvmsg() returned not enough data".
3392
3393 *) Исправление: в режиме прокси без использования sendfile на Solaris
3394 возникала ошибка "writev() failed (22: Invalid argument)". На других
3395 платформах, не поддерживающих sendfile, процесс зацикливался.
3396
3397 *) Исправление: при использовании sendfile в режиме прокси на Solaris
3398 возникал segmentation fault.
3399
3400 *) Исправление: segmentation fault на Solaris.
3401
3402 *) Исправление: обновление исполняемого файла на лету не работало на
3403 Linux.
3404
3405 *) Исправление: в списке файлов, выдаваемом модулем
3406 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
3407 знаки процента.
3408
3409 *) Изменение: уменьшение операций копирования.
3410
3411 *) Добавление: директива userid_p3p.
3412
3413
3414 Изменения в nginx 0.1.4 26.10.2004
3415
3416 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
3417
3418
3419 Изменения в nginx 0.1.3 25.10.2004
3420
3421 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
3422
3423 *) Добавление: директива proxy_set_x_url.
3424
3425 *) Исправление: модуль проксировании мог привести к зацикливанию, если
3426 не использовался sendfile.
3427
3428
3429 Изменения в nginx 0.1.2 21.10.2004
3430
3431 *) Добавление: параметры --user=USER, --group=GROUP и
3432 --with-ld-opt=OPTIONS в configure.
3433
3434 *) Добавление: директива server_name поддерживает *.domain.tld.
3435
3436 *) Исправление: улучшена переносимость на неизвестные платформы.
3437
3438 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
3439 файл указан в командной строке; ошибка появилась в 0.1.1.
3440
3441 *) Исправление: модуль проксировании мог привести к зацикливанию, если
3442 не использовался sendfile.
3443
3444 *) Исправление: при использовании sendfile текст ответа не
3445 перекодировался согласно директивам модуля charset; ошибка появилась
3446 в 0.1.1.
3447
3448 *) Исправление: очень редкая ошибка при обработке kqueue.
3449
3450 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
3451 проксировании.
3452
3453
3454 Изменения в nginx 0.1.1 11.10.2004
3455
3456 *) Добавление: директива gzip_types.
3457
3458 *) Добавление: директива tcp_nodelay.
3459
3460 *) Добавление: директива send_lowat работает не только на платформах,
3461 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
3462 SO_SNDLOWAT.
3463
3464 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
3465
3466 *) Исправление: ошибка при переписывании заголовка "Location" при
3467 проксировании.
3468
3469 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
3470 зацикливанию.
3471
3472 *) Исправление: ошибки в модуле /dev/poll.
3473
3474 *) Исправление: при проксировании и использовании временных файлов
3475 ответы портились.
3476
3477 *) Исправление: бэкенду передавались запросы с неперекодированными
3478 символами.
3479
3480 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
3481 обязательно использовать параметр --with-poll_module.
3482
3483
3484 Изменения в nginx 0.1.0 04.10.2004
3485
3486 *) Первая публично доступная версия.
3487