comparison text/ru/CHANGES.ru-1.22 @ 2852:a9ebed59b64f

nginx-1.22.0
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 24 May 2022 16:24:47 +0300
parents text/ru/CHANGES.ru@1ecf0e0526da
children 0b7e004b5061
comparison
equal deleted inserted replaced
2851:04b2f591b5af 2852:a9ebed59b64f
1
2 Изменения в nginx 1.22.0 24.05.2022
3
4 *) Стабильная ветка 1.22.x.
5
6
7 Изменения в nginx 1.21.6 25.01.2022
8
9 *) Исправление: при использование EPOLLEXCLUSIVE на Linux распределение
10 клиентских соединений между рабочими процессами было неравномерным.
11
12 *) Исправление: во время плавного завершения старых рабочих процессов
13 nginx возвращал в ответах строку заголовка "Connection: keep-alive".
14
15 *) Исправление: в директиве ssl_session_ticket_key при использовании
16 TLSv1.3.
17
18
19 Изменения в nginx 1.21.5 28.12.2021
20
21 *) Изменение: теперь nginx по умолчанию собирается с библиотекой PCRE2.
22
23 *) Изменение: теперь nginx всегда использует sendfile(SF_NODISKIO) на
24 FreeBSD.
25
26 *) Добавление: поддержка sendfile(SF_NOCACHE) на FreeBSD.
27
28 *) Добавление: переменная $ssl_curve.
29
30 *) Исправление: при использовании HTTP/2 без SSL вместе с директивами
31 sendfile и aio соединения могли зависать.
32
33
34 Изменения в nginx 1.21.4 02.11.2021
35
36 *) Изменение: поддержка NPN вместо ALPN для установления
37 HTTP/2-соединений упразднена.
38
39 *) Изменение: теперь nginx закрывает SSL соединение, если клиент
40 использует ALPN, но nginx не поддерживает ни один из присланных
41 клиентом протоколов.
42
43 *) Изменение: в директиве sendfile_max_chunk значение по умолчанию
44 изменено на 2 мегабайта.
45
46 *) Добавление: директива proxy_half_close в модуле stream.
47
48 *) Добавление: директива ssl_alpn в модуле stream.
49
50 *) Добавление: переменная $ssl_alpn_protocol.
51
52 *) Добавление: поддержка SSL_sendfile() при использовании OpenSSL 3.0.
53
54 *) Добавление: директива mp4_start_key_frame в модуле
55 ngx_http_mp4_module.
56 Спасибо Tracey Jaquith.
57
58 *) Исправление: в переменной $content_length при использовании chunked
59 transfer encoding.
60
61 *) Исправление: при получении ответа некорректной длины от проксируемого
62 бэкенда nginx мог тем не менее закэшировать соединение.
63 Спасибо Awdhesh Mathpal.
64
65 *) Исправление: некорректные заголовки от бэкендов логгировались на
66 уровне info вместо error; ошибка появилась в 1.21.1.
67
68 *) Исправление: при использовании HTTP/2 и директивы aio_write запросы
69 могли зависать.
70
71
72 Изменения в nginx 1.21.3 07.09.2021
73
74 *) Изменение: оптимизация чтения тела запроса при использовании HTTP/2.
75
76 *) Исправление: во внутреннем API для обработки тела запроса при
77 использовании HTTP/2 и буферизации обрабатываемых данных.
78
79
80 Изменения в nginx 1.21.2 31.08.2021
81
82 *) Изменение: теперь nginx возвращает ошибку, если в запросе по
83 протоколу HTTP/1.0 присутствует строка заголовка "Transfer-Encoding".
84
85 *) Изменение: экспортные шифры больше не поддерживаются.
86
87 *) Добавление: совместимость с OpenSSL 3.0.
88
89 *) Добавление: теперь серверу аутентификации почтового прокси-сервера
90 передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher".
91 Спасибо Rob Mueller.
92
93 *) Добавление: API для обработки тела запроса теперь позволяет
94 буферизировать обрабатываемые данные.
95
96 *) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать
97 после SSL handshake.
98
99 *) Исправление: уровень безопасности, доступный в OpenSSL 1.1.0 и новее,
100 не учитывался при загрузке сертификатов сервера, если был задан через
101 "@SECLEVEL=N" в директиве ssl_ciphers.
102
103 *) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если
104 использовались методы select, poll или /dev/poll.
105
106 *) Исправление: при использовании HTTP/2 тело запроса всегда
107 записывалось на диск, если в запросе не было строки заголовка
108 "Content-Length".
109
110
111 Изменения в nginx 1.21.1 06.07.2021
112
113 *) Изменение: теперь nginx для метода CONNECT всегда возвращает ошибку.
114
115 *) Изменение: теперь nginx всегда возвращает ошибку, если в запросе
116 одновременно присутствуют строки заголовка "Content-Length" и
117 "Transfer-Encoding".
118
119 *) Изменение: теперь nginx всегда возвращает ошибку, если в строке
120 запроса используются пробелы или управляющие символы.
121
122 *) Изменение: теперь nginx всегда возвращает ошибку, если в имени
123 заголовка используются пробелы или управляющие символы.
124
125 *) Изменение: теперь nginx всегда возвращает ошибку, если в строке
126 "Host" заголовка запроса используются пробелы или управляющие
127 символы.
128
129 *) Изменение: оптимизация тестирования конфигурации при использовании
130 большого количества listen-сокетов.
131
132 *) Исправление: nginx не экранировал символы """, "<", ">", "\", "^",
133 "`", "{", "|", и "}" при проксировании с изменением URI запроса.
134
135 *) Исправление: SSL-переменные могли быть пустыми при записи в лог;
136 ошибка появилась в 1.19.5.
137
138 *) Исправление: keepalive-соединения с gRPC-бэкендами могли не
139 закрываться после получения GOAWAY-фрейма.
140
141 *) Исправление: уменьшено потребление памяти для долгоживущих запросов
142 при проксировании с использованием более 64 буферов.
143
144
145 Изменения в nginx 1.21.0 25.05.2021
146
147 *) Безопасность: при использовании директивы resolver во время обработки
148 ответа DNS-сервера могла происходить перезапись одного байта памяти,
149 что позволяло атакующему, имеющему возможность подделывать UDP-пакеты
150 от DNS-сервера, вызвать падение рабочего процесса или, потенциально,
151 выполнение произвольного кода (CVE-2021-23017).
152
153 *) Добавление: директивы proxy_ssl_certificate,
154 proxy_ssl_certificate_key, grpc_ssl_certificate,
155 grpc_ssl_certificate_key, uwsgi_ssl_certificate и
156 uwsgi_ssl_certificate_key поддерживают переменные.
157
158 *) Добавление: директива max_errors в почтовом прокси-сервере.
159
160 *) Добавление: почтовый прокси-сервер поддерживает POP3 и IMAP
161 pipelining.
162
163 *) Добавление: параметр fastopen директивы listen в модуле stream.
164 Спасибо Anbang Wen.
165
166 *) Исправление: специальные символы не экранировались при автоматическом
167 перенаправлении с добавлением завершающего слэша.
168
169 *) Исправление: при использовании SMTP pipelining соединения с клиентами
170 в почтовом прокси-сервере могли неожиданно закрываться.
171
172
173 Изменения в nginx 1.19.10 13.04.2021
174
175 *) Изменение: в директиве keepalive_requests значение по умолчанию
176 изменено на 1000.
177
178 *) Добавление: директива keepalive_time.
179
180 *) Добавление: переменная $connection_time.
181
182 *) Изменение: при использовании zlib-ng в логах появлялись сообщения
183 "gzip filter failed to use preallocated memory".
184
185
186 Изменения в nginx 1.19.9 30.03.2021
187
188 *) Исправление: nginx не собирался с почтовым прокси-сервером, но без
189 модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8.
190
191 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
192 "upstream sent response body larger than indicated content length";
193 ошибка появилась в 1.19.1.
194
195 *) Исправление: если клиент закрывал соединение в момент отбрасывания
196 тела запроса, nginx мог не закрыть соединение до истечения
197 keepalive-таймаута.
198
199 *) Исправление: при ожидании задержки limit_req или auth_delay, а также
200 при работе с бэкендами nginx мог не обнаружить, что соединение уже
201 закрыто клиентом.
202
203 *) Исправление: в методе обработки соединений eventport.
204
205
206 Изменения в nginx 1.19.8 09.03.2021
207
208 *) Добавление: в директиве proxy_cookie_flags теперь флаги можно
209 задавать с помощью переменных.
210
211 *) Добавление: параметр proxy_protocol в директиве listen, директивы
212 proxy_protocol и set_real_ip_from в почтовом прокси-сервере.
213
214 *) Исправление: HTTP/2-соединения сразу закрывались при использовании
215 "keepalive_timeout 0"; ошибка появилась в 1.19.7.
216
217 *) Исправление: некоторые ошибки логгировались как неизвестные, если
218 nginx был собран с glibc 2.32.
219
220 *) Исправление: в методе обработки соединений eventport.
221
222
223 Изменения в nginx 1.19.7 16.02.2021
224
225 *) Изменение: обработка соединений в HTTP/2 была изменена и теперь более
226 соответствует HTTP/1.x; директивы http2_recv_timeout,
227 http2_idle_timeout и http2_max_requests упразднены, вместо них
228 следует использовать директивы keepalive_timeout и
229 keepalive_requests.
230
231 *) Изменение: директивы http2_max_field_size и http2_max_header_size
232 упразднены, вместо них следует использовать директиву
233 large_client_header_buffers.
234
235 *) Добавление: теперь при исчерпании свободных соединений nginx
236 закрывает не только keepalive-соединения, но и соединения в lingering
237 close.
238
239 *) Исправление: в логах могли появляться сообщения "zero size buf in
240 output", если бэкенд возвращал некорректный ответ при
241 небуферизированном проксировании; ошибка появилась в 1.19.1.
242
243 *) Исправление: при использовании директивы return вместе с image_filter
244 или xslt_stylesheet HEAD-запросы обрабатывались некорректно.
245
246 *) Исправление: в директиве add_trailer.
247
248
249 Изменения в nginx 1.19.6 15.12.2020
250
251 *) Исправление: ошибки "no live upstreams", если server в блоке upstream
252 был помечен как down.
253
254 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
255 segmentation fault; ошибка появилась в 1.19.5.
256
257 *) Исправление: nginx возвращал ошибку 400 на запросы вида
258 "GET http://example.com?args HTTP/1.0".
259
260 *) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module.
261 Спасибо Chris Newton.
262
263
264 Изменения в nginx 1.19.5 24.11.2020
265
266 *) Добавление: ключ -e.
267
268 *) Добавление: при сборке дополнительных модулей теперь можно указывать
269 одни и те же исходные файлы в разных модулях.
270
271 *) Исправление: SSL shutdown не работал при закрытии соединений с
272 ожиданием дополнительных данных (lingering close).
273
274 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
275 "upstream sent frame for closed stream".
276
277 *) Исправление: во внутреннем API для обработки тела запроса.
278
279
280 Изменения в nginx 1.19.4 27.10.2020
281
282 *) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
283 grpc_ssl_conf_command и uwsgi_ssl_conf_command.
284
285 *) Добавление: директива ssl_reject_handshake.
286
287 *) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере.
288
289
290 Изменения в nginx 1.19.3 29.09.2020
291
292 *) Добавление: модуль ngx_stream_set_module.
293
294 *) Добавление: директива proxy_cookie_flags.
295
296 *) Добавление: директива userid_flags.
297
298 *) Исправление: расширение управления кэшированием stale-if-error
299 ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502,
300 503, 504, 403, 404 или 429.
301
302 *) Исправление: если использовалось кэширование и бэкенд возвращал
303 ответы с строкой заголовка Vary, в логах могли появляться сообщения
304 "[crit] cache file ... has too long header".
305
306 *) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться
307 сообщения "[crit] SSL_write() failed".
308
309 *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
310 failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2.
311
312 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
313 произойти segmentation fault, если ошибки с кодом 400 с помощью
314 директивы error_page перенаправлялись в проксируемый location.
315
316 *) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в
317 модуле njs.
318
319
320 Изменения в nginx 1.19.2 11.08.2020
321
322 *) Изменение: теперь nginx начинает закрывать keepalive-соединения, не
323 дожидаясь исчерпания всех свободных соединений, а также пишет об этом
324 предупреждение в лог ошибок.
325
326 *) Изменение: оптимизация чтения тела запроса при использовании chunked
327 transfer encoding.
328
329 *) Исправление: утечки памяти при использовании директивы ssl_ocsp.
330
331 *) Исправление: в логах могли появляться сообщения "zero size buf in
332 output", если FastCGI-сервер возвращал некорректный ответ; ошибка
333 появилась в 1.19.1.
334
335 *) Исправление: в рабочем процессе мог произойти segmentation fault,
336 если размеры large_client_header_buffers отличались в разных
337 виртуальных серверах.
338
339 *) Исправление: SSL shutdown мог не работать.
340
341 *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
342 failed (SSL: ... bad write retry)".
343
344 *) Исправление: в модуле ngx_http_slice_module.
345
346 *) Исправление: в модуле ngx_http_xslt_filter_module.
347
348
349 Изменения в nginx 1.19.1 07.07.2020
350
351 *) Изменение: директивы lingering_close, lingering_time и
352 lingering_timeout теперь работают при использовании HTTP/2.
353
354 *) Изменение: теперь лишние данные, присланные бэкендом, всегда
355 отбрасываются.
356
357 *) Изменение: теперь при получении слишком короткого ответа от
358 FastCGI-сервера nginx пытается отправить клиенту доступную часть
359 ответа, после чего закрывает соединение с клиентом.
360
361 *) Изменение: теперь при получении ответа некорректной длины от
362 gRPC-бэкенда nginx прекращает обработку ответа с ошибкой.
363
364 *) Добавление: параметр min_free в директивах proxy_cache_path,
365 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
366 Спасибо Adam Bambuch.
367
368 *) Исправление: nginx не удалял unix domain listen-сокеты при плавном
369 завершении по сигналу SIGQUIT.
370
371 *) Исправление: UDP-пакеты нулевого размера не проксировались.
372
373 *) Исправление: проксирование на uwsgi-бэкенды с использованием SSL
374 могло не работать.
375 Спасибо Guanzhong Chen.
376
377 *) Исправление: в обработке ошибок при использовании директивы ssl_ocsp.
378
379 *) Исправление: при использовании файловых систем XFS и NFS размер кэша
380 на диске мог считаться некорректно.
381
382 *) Исправление: если сервер memcached возвращал некорректный ответ, в
383 логах могли появляться сообщения "negative size buf in writer".
384
385
386 Изменения в nginx 1.19.0 26.05.2020
387
388 *) Добавление: проверка клиентских сертификатов с помощью OCSP.
389
390 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
391 "upstream sent frame for closed stream".
392
393 *) Исправление: OCSP stapling мог не работать, если не была указана
394 директива resolver.
395
396 *) Исправление: соединения с некорректным HTTP/2 preface не
397 логгировались.
398
399
400 Изменения в nginx 1.17.10 14.04.2020
401
402 *) Добавление: директива auth_delay.
403
404
405 Изменения в nginx 1.17.9 03.03.2020
406
407 *) Изменение: теперь nginx не разрешает несколько строк "Host" в
408 заголовке запроса.
409
410 *) Исправление: nginx игнорировал дополнительные строки
411 "Transfer-Encoding" в заголовке запроса.
412
413 *) Исправление: утечки сокетов при использовании HTTP/2.
414
415 *) Исправление: в рабочем процессе мог произойти segmentation fault,
416 если использовался OCSP stapling.
417
418 *) Исправление: в модуле ngx_http_mp4_module.
419
420 *) Исправление: при перенаправлении ошибок с кодом 494 с помощью
421 директивы error_page nginx возвращал ответ с кодом 494 вместо 400.
422
423 *) Исправление: утечки сокетов при использовании подзапросов в модуле
424 njs и директивы aio.
425
426
427 Изменения в nginx 1.17.8 21.01.2020
428
429 *) Добавление: директива grpc_pass поддерживает переменные.
430
431 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
432 произойти таймаут; ошибка появилась в 1.17.5.
433
434 *) Исправление: в директиве debug_points при использовании HTTP/2.
435 Спасибо Даниилу Бондареву.
436
437
438 Изменения в nginx 1.17.7 24.12.2019
439
440 *) Исправление: на старте или во время переконфигурации мог произойти
441 segmentation fault, если в конфигурации использовалась директива
442 rewrite с пустой строкой замены.
443
444 *) Исправление: в рабочем процессе мог произойти segmentation fault,
445 если директива break использовалась совместно с директивой alias или
446 директивой proxy_pass с URI.
447
448 *) Исправление: строка Location заголовка ответа могла содержать мусор,
449 если URI запроса был изменён на URI, содержащий нулевой символ.
450
451 *) Исправление: при возврате перенаправлений с помощью директивы
452 error_page запросы с телом обрабатывались некорректно; ошибка
453 появилась в 0.7.12.
454
455 *) Исправление: утечки сокетов при использовании HTTP/2.
456
457 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
458 произойти таймаут; ошибка появилась в 1.17.5.
459
460 *) Исправление: в модуле ngx_http_dav_module.
461
462
463 Изменения в nginx 1.17.6 19.11.2019
464
465 *) Добавление: переменные $proxy_protocol_server_addr и
466 $proxy_protocol_server_port.
467
468 *) Добавление: директива limit_conn_dry_run.
469
470 *) Добавление: переменные $limit_req_status и $limit_conn_status.
471
472
473 Изменения в nginx 1.17.5 22.10.2019
474
475 *) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
476 доступен, чтобы избежать чтения из быстрого соединения в течение
477 долгого времени.
478
479 *) Исправление: неполные закодированные символы в конце URI запроса
480 игнорировались.
481
482 *) Исправление: "/." и "/.." в конце URI запроса не нормализовывались.
483
484 *) Исправление: в директиве merge_slashes.
485
486 *) Исправление: в директиве ignore_invalid_headers.
487 Спасибо Alan Kemp.
488
489 *) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее.
490
491
492 Изменения в nginx 1.17.4 24.09.2019
493
494 *) Изменение: улучшено детектирование некорректного поведения клиентов в
495 HTTP/2.
496
497 *) Изменение: в обработке непрочитанного тела запроса при возврате
498 ошибок в HTTP/2.
499
500 *) Исправление: директива worker_shutdown_timeout могла не работать при
501 использовании HTTP/2.
502
503 *) Исправление: при использовании HTTP/2 и директивы
504 proxy_request_buffering в рабочем процессе мог произойти segmentation
505 fault.
506
507 *) Исправление: на Windows при использовании SSL уровень записи в лог
508 ошибки ECONNABORTED был "crit" вместо "error".
509
510 *) Исправление: nginx игнорировал лишние данные при использовании
511 chunked transfer encoding.
512
513 *) Исправление: если использовалась директива return и при чтении тела
514 запроса возникала ошибка, nginx всегда возвращал ошибку 500.
515
516 *) Исправление: в обработке ошибок выделения памяти.
517
518
519 Изменения в nginx 1.17.3 13.08.2019
520
521 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
522 потребление памяти и ресурсов процессора (CVE-2019-9511,
523 CVE-2019-9513, CVE-2019-9516).
524
525 *) Исправление: при использовании сжатия в логах могли появляться
526 сообщения "zero size buf"; ошибка появилась в 1.17.2.
527
528 *) Исправление: при использовании директивы resolver в SMTP
529 прокси-сервере в рабочем процессе мог произойти segmentation fault.
530
531
532 Изменения в nginx 1.17.2 23.07.2019
533
534 *) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4.
535 Спасибо Илье Леошкевичу.
536
537 *) Изменение: метод $r->internal_redirect() встроенного перла теперь
538 ожидает закодированный URI.
539
540 *) Добавление: теперь с помощью метода $r->internal_redirect()
541 встроенного перла можно перейти в именованный location.
542
543 *) Исправление: в обработке ошибок во встроенном перле.
544
545 *) Исправление: на старте или во время переконфигурации мог произойти
546 segmentation fault, если в конфигурации использовалось значение hash
547 bucket size больше 64 килобайт.
548
549 *) Исправление: при использовании методов обработки соединений select,
550 poll и /dev/poll nginx мог нагружать процессор во время
551 небуферизованного проксирования и при проксировании
552 WebSocket-соединений.
553
554 *) Исправление: в модуле ngx_http_xslt_filter_module.
555
556 *) Исправление: в модуле ngx_http_ssi_filter_module.
557
558
559 Изменения в nginx 1.17.1 25.06.2019
560
561 *) Добавление: директива limit_req_dry_run.
562
563 *) Добавление: при использовании директивы hash в блоке upstream пустой
564 ключ хэширования теперь приводит к переключению на round-robin
565 балансировку.
566 Спасибо Niklas Keller.
567
568 *) Исправление: в рабочем процессе мог произойти segmentation fault,
569 если использовалось кэширование и директива image_filter, а ошибки с
570 кодом 415 перенаправлялись с помощью директивы error_page; ошибка
571 появилась в 1.11.10.
572
573 *) Исправление: в рабочем процессе мог произойти segmentation fault,
574 если использовался встроенный перл; ошибка появилась в 1.7.3.
575
576
577 Изменения в nginx 1.17.0 21.05.2019
578
579 *) Добавление: директивы limit_rate и limit_rate_after поддерживают
580 переменные.
581
582 *) Добавление: директивы proxy_upload_rate и proxy_download_rate в
583 модуле stream поддерживают переменные.
584
585 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8.
586
587 *) Изменение: теперь postpone-фильтр собирается всегда.
588
589 *) Исправление: директива include не работала в блоках if и
590 limit_except.
591
592 *) Исправление: в обработке byte ranges.
593
594
595 Изменения в nginx 1.15.12 16.04.2019
596
597 *) Исправление: в рабочем процессе мог произойти segmentation fault,
598 если в директивах ssl_certificate или ssl_certificate_key
599 использовались переменные и был включён OCSP stapling.
600
601
602 Изменения в nginx 1.15.11 09.04.2019
603
604 *) Исправление: в директиве ssl_stapling_file на Windows.
605
606
607 Изменения в nginx 1.15.10 26.03.2019
608
609 *) Изменение: теперь при использовании имени хоста в директиве listen
610 nginx создаёт listen-сокеты для всех адресов, соответствующих этому
611 имени (ранее использовался только первый адрес).
612
613 *) Добавление: диапазоны портов в директиве listen.
614
615 *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
616 из переменных.
617
618 *) Изменение: переменная $ssl_server_name могла быть пустой при
619 использовании OpenSSL 1.1.1.
620
621 *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
622 ошибка появилась в 1.15.9.
623
624
625 Изменения в nginx 1.15.9 26.02.2019
626
627 *) Добавление: директивы ssl_certificate и ssl_certificate_key
628 поддерживают переменные.
629
630 *) Добавление: метод poll теперь доступен на Windows при использовании
631 Windows Vista и новее.
632
633 *) Исправление: если при использовании метода select на Windows
634 происходила ошибка при установлении соединения с бэкендом, nginx
635 ожидал истечения таймаута на установление соединения.
636
637 *) Исправление: директивы proxy_upload_rate и proxy_download_rate в
638 модуле stream работали некорректно при проксировании UDP-пакетов.
639
640
641 Изменения в nginx 1.15.8 25.12.2018
642
643 *) Добавление: переменная $upstream_bytes_sent.
644 Спасибо Piotr Sikora.
645
646 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
647 Спасибо Геннадию Махомеду.
648
649 *) Исправление: в директиве proxy_cache_background_update.
650
651 *) Исправление: в директиве geo при использовании unix domain
652 listen-сокетов.
653
654 *) Изменение: при использовании директивы ssl_early_data с OpenSSL в
655 логах могли появляться сообщения "ignoring stale global SSL error ...
656 bad length".
657
658 *) Исправление: в nginx/Windows.
659
660 *) Исправление: в модуле ngx_http_autoindex_module на 32-битных
661 платформах.
662
663
664 Изменения в nginx 1.15.7 27.11.2018
665
666 *) Добавление: директива proxy_requests в модуле stream.
667
668 *) Добавление: параметр "delay" директивы "limit_req".
669 Спасибо Владиславу Шабанову и Петру Щучкину.
670
671 *) Исправление: утечки памяти в случае ошибок при переконфигурации.
672
673 *) Исправление: в переменных $upstream_response_time,
674 $upstream_connect_time и $upstream_header_time.
675
676 *) Исправление: в рабочем процессе мог произойти segmentation fault,
677 если использовался модуль ngx_http_mp4_module на 32-битных
678 платформах.
679
680
681 Изменения в nginx 1.15.6 06.11.2018
682
683 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
684 потреблению памяти (CVE-2018-16843) и ресурсов процессора
685 (CVE-2018-16844).
686
687 *) Безопасность: при обработке специально созданного mp4-файла модулем
688 ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
689 отправлено клиенту (CVE-2018-16845).
690
691 *) Добавление: директивы proxy_socket_keepalive,
692 fastcgi_socket_keepalive, grpc_socket_keepalive,
693 memcached_socket_keepalive, scgi_socket_keepalive и
694 uwsgi_socket_keepalive.
695
696 *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
697 OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.
698
699 *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
700 количество памяти.
701
702
703 Изменения в nginx 1.15.5 02.10.2018
704
705 *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
706 процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.
707
708 *) Исправление: незначительных потенциальных ошибок.
709
710
711 Изменения в nginx 1.15.4 25.09.2018
712
713 *) Добавление: теперь директиву ssl_early_data можно использовать с
714 OpenSSL.
715
716 *) Исправление: в модуле ngx_http_uwsgi_module.
717 Спасибо Chris Caputo.
718
719 *) Исправление: соединения к некоторым gRPC-бэкендам могли не
720 кэшироваться при использовании директивы keepalive.
721
722 *) Исправление: при использовании директивы error_page для
723 перенаправления ошибок, возникающих на ранних этапах обработки
724 запроса, в частности ошибок с кодом 400, могла происходить утечка
725 сокетов.
726
727 *) Исправление: директива return при возврате ошибок не изменяла код
728 ответа, если запрос был перенаправлен с помощью директивы error_page.
729
730 *) Исправление: стандартные сообщения об ошибках и ответы модуля
731 ngx_http_autoindex_module содержали атрибут bgcolor, что могло
732 приводить к их некорректному отображению при использовании
733 пользовательских настроек цветов в браузерах.
734 Спасибо Nova DasSarma.
735
736 *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
737 "no suitable signature algorithm" понижен с уровня crit до info.
738
739
740 Изменения в nginx 1.15.3 28.08.2018
741
742 *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.
743
744 *) Добавление: директива ssl_early_data, сейчас доступна при
745 использовании BoringSSL.
746
747 *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
748 upstream.
749
750 *) Исправление: модуль ngx_http_dav_module при копировании файла поверх
751 существующего файла с помощью метода COPY не обнулял целевой файл.
752
753 *) Исправление: модуль ngx_http_dav_module при перемещении файла между
754 файловыми системами с помощью метода MOVE устанавливал нулевые права
755 доступа на результирующий файл и не сохранял время изменения файла.
756
757 *) Исправление: модуль ngx_http_dav_module при копировании файла с
758 помощью метода COPY для результирующего файла использовал права
759 доступа по умолчанию.
760
761 *) Изменение: некоторые клиенты могли не работать при использовании
762 HTTP/2; ошибка появилась в 1.13.5.
763
764 *) Исправление: nginx не собирался с LibreSSL 2.8.0.
765
766
767 Изменения в nginx 1.15.2 24.07.2018
768
769 *) Добавление: переменная $ssl_preread_protocol в модуле
770 ngx_stream_ssl_preread_module.
771
772 *) Добавление: теперь при использовании директивы
773 reset_timedout_connection nginx сбрасывает соединения, закрываемые с
774 кодом 444.
775
776 *) Изменение: уровень логгирования ошибок SSL "http request", "https
777 proxy request", "unsupported protocol" и "version too low" понижен с
778 уровня crit до info.
779
780 *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
781 первой попытке отправки происходила ошибка.
782
783 *) Исправление: параметр reuseport директивы listen игнорировался, если
784 количество рабочих процессов было задано после директивы listen.
785
786 *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
787 ssl_prefer_server_ciphers нельзя было выключить в виртуальном
788 сервере, если она была включена в сервере по умолчанию.
789
790 *) Исправление: повторное использование SSL-сессий к бэкендам не
791 работало с протоколом TLS 1.3.
792
793
794 Изменения в nginx 1.15.1 03.07.2018
795
796 *) Добавление: директива random в блоке upstream.
797
798 *) Добавление: улучшена производительность при использовании директив
799 hash и ip_hash совместно с директивой zone.
800
801 *) Добавление: параметр reuseport директивы listen теперь использует
802 SO_REUSEPORT_LB на FreeBSD 12.
803
804 *) Исправление: HTTP/2 server push не работал, если SSL терминировался
805 прокси-сервером перед nginx'ом.
806
807 *) Исправление: директива tcp_nopush всегда использовалась для
808 соединений к бэкендам.
809
810 *) Исправление: при отправке сохранённого на диск тела запроса на
811 gRPC-бэкенд могли возникать ошибки.
812
813
814 Изменения в nginx 1.15.0 05.06.2018
815
816 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
817 следует использовать параметр ssl директивы listen.
818
819 *) Изменение: теперь при использовании директивы listen с параметром ssl
820 nginx определяет отсутствие SSL-сертификатов при тестировании
821 конфигурации.
822
823 *) Добавление: теперь модуль stream умеет обрабатывать несколько
824 входящих UDP-пакетов от клиента в рамках одной сессии.
825
826 *) Исправление: в директиве proxy_cache_valid можно было указать
827 некорректный код ответа.
828
829 *) Исправление: nginx не собирался gcc 8.1.
830
831 *) Исправление: логгирование в syslog останавливалось при изменении
832 локального IP-адреса.
833
834 *) Исправление: nginx не собирался компилятором clang, если был
835 установлен CUDA SDK; ошибка появилась в 1.13.8.
836
837 *) Исправление: при использовании unix domain listen-сокетов на FreeBSD
838 в процессе обновления исполняемого файла в логе могли появляться
839 сообщения "getsockopt(TCP_FASTOPEN) ... failed".
840
841 *) Исправление: nginx не собирался на Fedora 28 Linux.
842
843 *) Исправление: при использовании директивы limit_req заданная скорость
844 обработки запросов могла не соблюдаться.
845
846 *) Исправление: в обработке адресов клиентов при использовании unix
847 domain listen-сокетов для работы с датаграммами на Linux.
848
849 *) Исправление: в обработке ошибок выделения памяти.
850
851
852 Изменения в nginx 1.13.12 10.04.2018
853
854 *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
855 могли неожиданно закрываться.
856
857
858 Изменения в nginx 1.13.11 03.04.2018
859
860 *) Добавление: параметр proxy_protocol директивы listen теперь
861 поддерживает протокол PROXY версии 2.
862
863 *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.
864
865 *) Исправление: в параметрах http_404, http_500 и им подобных директивы
866 proxy_next_upstream.
867
868
869 Изменения в nginx 1.13.10 20.03.2018
870
871 *) Добавление: теперь параметр set в SSI-директиве include позволяет
872 сохранять в переменную любые ответы; максимальный размер ответа
873 задаётся директивой subrequest_output_buffer_size.
874
875 *) Добавление: теперь nginx использует вызов
876 clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
877 избежать некорректного срабатывания таймаутов при изменениях
878 системного времени.
879
880 *) Добавление: параметр "escape=none" директивы log_format.
881 Спасибо Johannes Baiter и Calin Don.
882
883 *) Добавление: переменная $ssl_preread_alpn_protocols в модуле
884 ngx_stream_ssl_preread_module.
885
886 *) Добавление: модуль ngx_http_grpc_module.
887
888 *) Исправление: в обработке ошибок выделения памяти в директиве geo.
889
890 *) Исправление: при использовании переменных в директиве
891 auth_basic_user_file в лог мог выводиться символ '\0'.
892 Спасибо Вадиму Филимонову.
893
894
895 Изменения в nginx 1.13.9 20.02.2018
896
897 *) Добавление: поддержка HTTP/2 server push; директивы http2_push и
898 http2_push_preload.
899
900 *) Исправление: при использовании кэша в логах могли появляться
901 сообщения "header already sent"; ошибка появилась в 1.9.13.
902
903 *) Исправление: при использовании директивы ssl_verify_client в рабочем
904 процессе мог произойти segmentation fault, если в виртуальном сервере
905 не был указан SSL-сертификат.
906
907 *) Исправление: в модуле ngx_http_v2_module.
908
909 *) Исправление: в модуле ngx_http_dav_module.
910
911
912 Изменения в nginx 1.13.8 26.12.2017
913
914 *) Добавление: теперь при использовании параметра transparent директив
915 proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
916 nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
917 процессах.
918
919 *) Добавление: улучшения в определении размера строки кэша процессора.
920 Спасибо Debayan Ghosh.
921
922 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
923 Спасибо Геннадию Махомеду.
924
925 *) Исправление: процедура обновления исполняемого файла не работала,
926 если после завершения родительского процесса новым родительским
927 процессом nginx'а становился процесс с PID, отличным от 1.
928
929 *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
930 запросы с телом.
931
932 *) Исправление: в директиве proxy_limit_rate при использовании с
933 директивой keepalive.
934
935 *) Исправление: при использовании "proxy_buffering off" часть ответа
936 могла буферизироваться, если клиентское соединение использовало SSL.
937 Спасибо Patryk Lesiewicz.
938
939 *) Исправление: в директиве proxy_cache_background_update.
940
941 *) Исправление: переменную вида "${name}" с именем в фигурных скобках
942 нельзя было использовать в начале параметра не заключив весь параметр
943 в кавычки.
944
945
946 Изменения в nginx 1.13.7 21.11.2017
947
948 *) Исправление: в переменной $upstream_status.
949
950 *) Исправление: в рабочем процессе мог произойти segmentation fault,
951 если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
952
953 *) Исправление: если при переконфигурации изменялся размер зоны
954 разделяемой памяти и переконфигурация завершалась неудачно, то в
955 главном процессе происходил segmentation fault.
956
957 *) Исправление: в модуле ngx_http_fastcgi_module.
958
959 *) Исправление: nginx возвращал ошибку 500, если в директиве
960 xslt_stylesheet были заданы параметры без использования переменных.
961
962 *) Изменение: при использовании варианта библиотеки zlib от Intel в лог
963 писались сообщения "gzip filter failed to use preallocated memory".
964
965 *) Исправление: директива worker_shutdown_timeout не работала при
966 использовании почтового прокси-сервера и при проксировании
967 WebSocket-соединений.
968
969
970 Изменения в nginx 1.13.6 10.10.2017
971
972 *) Исправление: при использовании директивы ssl_preread в модуле stream
973 не работало переключение на следующий бэкенд.
974
975 *) Исправление: в модуле ngx_http_v2_module.
976 Спасибо Piotr Sikora.
977
978 *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
979 платформах с 64-битным time_t.
980
981 *) Исправление: в обработке дат до 1970 года и после 10000 года.
982
983 *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
984 бэкендов не логгировались или логгировались на уровне info вместо
985 error.
986
987 *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
988 не указав в логе причину.
989
990 *) Исправление: в обработке повреждённых файлов кэша.
991
992 *) Исправление: при кэшировании ошибок, перехваченных error_page, не
993 учитывались заголовки управления кэшированием.
994
995 *) Исправление: при использовании HTTP/2 тело запроса могло быть
996 повреждено.
997
998 *) Исправление: в обработке адресов клиентов при использовании unix
999 domain сокетов.
1000
1001 *) Исправление: при использовании директивы "hash ... consistent" в
1002 блоке upstream nginx нагружал процессор, если использовались большие
1003 веса и все или почти все бэкенды были недоступны.
1004
1005
1006 Изменения в nginx 1.13.5 05.09.2017
1007
1008 *) Добавление: переменная $ssl_client_escaped_cert.
1009
1010 *) Исправление: директива ssl_session_ticket_key и параметр include
1011 директивы geo не работали на Windows.
1012
1013 *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
1014 помощью нескольких диапазонов возвращалась некорректная длина ответа.
1015
1016 *) Исправление: директива "expires modified" и обработка строки If-Range
1017 заголовка запроса не учитывали время последнего изменения ответа,
1018 если использовалось проксирование без кэширования.
1019
1020
1021 Изменения в nginx 1.13.4 08.08.2017
1022
1023 *) Добавление: модуль ngx_http_mirror_module.
1024
1025 *) Исправление: клиентские соединения могли сбрасываться при
1026 тестировании конфигурации, если использовался параметр reuseport
1027 директивы listen на Linux.
1028
1029 *) Исправление: тело запроса могло быть недоступно в подзапросах, если
1030 оно было сохранено в файл и использовалось проксирование.
1031
1032 *) Исправление: очистка кэша по max_size не работала на Windows.
1033
1034 *) Исправление: любое выделение разделяемой памяти на Windows требовало
1035 4096 байт памяти.
1036
1037 *) Исправление: при использовании директивы zone в блоке upstream на
1038 Windows рабочий процесс мог завершаться аварийно.
1039
1040
1041 Изменения в nginx 1.13.3 11.07.2017
1042
1043 *) Безопасность: специально созданный запрос мог вызвать целочисленное
1044 переполнение в range-фильтре и последующую некорректную обработку
1045 запрошенных диапазонов, что потенциально могло привести к утечке
1046 конфиденциальной информации (CVE-2017-7529).
1047
1048
1049 Изменения в nginx 1.13.2 27.06.2017
1050
1051 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из
1052 пустого файла nginx возвращает ответ 200 вместо 416.
1053
1054 *) Добавление: директива add_trailer.
1055 Спасибо Piotr Sikora.
1056
1057 *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
1058 в 1.13.0.
1059
1060 *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
1061 Спасибо Orgad Shaneh.
1062
1063 *) Исправление: при использовании SSI с большим количеством подзапросов
1064 и proxy_pass с переменными в рабочем процессе мог произойти
1065 segmentation fault.
1066
1067 *) Исправление: в модуле ngx_http_v2_module.
1068 Спасибо Piotr Sikora.
1069
1070
1071 Изменения в nginx 1.13.1 30.05.2017
1072
1073 *) Добавление: теперь в качестве параметра директивы set_real_ip_from
1074 можно указывать имя хоста.
1075
1076 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
1077
1078 *) Добавление: директива worker_cpu_affinity теперь работает на
1079 DragonFly BSD.
1080 Спасибо Sepherosa Ziehau.
1081
1082 *) Исправление: SSL renegotiation в соединениях к бэкендам не работал
1083 при использовании OpenSSL до 1.1.0.
1084
1085 *) Изменение: nginx не собирался с Oracle Developer Studio 12.5.
1086
1087 *) Изменение: теперь cache manager пропускает заблокированные записи при
1088 очистке кэша по max_size.
1089
1090 *) Исправление: клиентские SSL-соединения сразу закрывались, если
1091 использовался отложенный accept и параметр proxy_protocol директивы
1092 listen.
1093
1094 *) Исправление: в директиве proxy_cache_background_update.
1095
1096 *) Изменение: теперь директива tcp_nodelay устанавливает опцию
1097 TCP_NODELAY перед SSL handshake.
1098
1099
1100 Изменения в nginx 1.13.0 25.04.2017
1101
1102 *) Изменение: теперь SSL renegotiation допускается в соединениях к
1103 бэкендам.
1104
1105 *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
1106 прокси-сервере и модуле stream.
1107
1108 *) Добавление: директивы return и error_page теперь могут использоваться
1109 для возврата перенаправлений с кодом 308.
1110 Спасибо Simon Leblanc.
1111
1112 *) Добавление: параметр TLSv1.3 в директиве ssl_protocols.
1113
1114 *) Добавление: при логгировании сигналов теперь указывается PID
1115 отправившего сигнал процесса.
1116
1117 *) Исправление: в обработке ошибок выделения памяти.
1118
1119 *) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
1120 исходящий адрес ответного UDP-пакета мог отличаться от адреса
1121 назначения исходного пакета.
1122
1123
1124 Изменения в nginx 1.11.13 04.04.2017
1125
1126 *) Добавление: параметр http_429 в директивах proxy_next_upstream,
1127 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
1128 Спасибо Piotr Sikora.
1129
1130 *) Исправление: в обработке ошибок выделения памяти.
1131
1132 *) Исправление: при использовании директив sendfile и timer_resolution
1133 на Linux запросы могли зависать.
1134
1135 *) Исправление: при использовании с подзапросами директив sendfile и
1136 aio_write запросы могли зависать.
1137
1138 *) Исправление: в модуле ngx_http_v2_module.
1139 Спасибо Piotr Sikora.
1140
1141 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1142 произойти segmentation fault.
1143
1144 *) Исправление: запросы могли зависать при использовании с подзапросами
1145 директив limit_rate, sendfile_max_chunk, limit_req или метода
1146 $r->sleep() встроенного перла.
1147
1148 *) Исправление: в модуле ngx_http_slice_module.
1149
1150
1151 Изменения в nginx 1.11.12 24.03.2017
1152
1153 *) Исправление: nginx мог нагружать процессор; ошибка появилась в
1154 1.11.11.
1155
1156
1157 Изменения в nginx 1.11.11 21.03.2017
1158
1159 *) Добавление: директива worker_shutdown_timeout.
1160
1161 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
1162 Спасибо Wei-Ko Kao.
1163
1164 *) Исправление: при попытке установить переменную $limit_rate в пустую
1165 строку в рабочем процессе мог произойти segmentation fault.
1166
1167 *) Исправление: директивы proxy_cache_background_update,
1168 fastcgi_cache_background_update, scgi_cache_background_update и
1169 uwsgi_cache_background_update могли работать некорректно, если
1170 использовалась директива if.
1171
1172 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1173 если количество large_client_header_buffers в виртуальном сервере
1174 отличалось от такового в сервере по умолчанию.
1175
1176 *) Исправление: в почтовом прокси-сервере.
1177
1178
1179 Изменения в nginx 1.11.10 14.02.2017
1180
1181 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные
1182 ответы будут загружены заново.
1183
1184 *) Добавление: поддержка расширений stale-while-revalidate и
1185 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда.
1186
1187 *) Добавление: директивы proxy_cache_background_update,
1188 fastcgi_cache_background_update, scgi_cache_background_update и
1189 uwsgi_cache_background_update.
1190
1191 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary
1192 заголовка длиной до 128 символов (вместо 42 символов в предыдущих
1193 версиях).
1194
1195 *) Добавление: параметр build директивы server_tokens.
1196 Спасибо Tom Thorogood.
1197
1198 *) Исправление: при обработке запросов со строкой "Expect: 100-continue"
1199 в заголовке запроса в логах могли появляться сообщения "[crit]
1200 SSL_write() failed".
1201
1202 *) Исправление: модуль ngx_http_slice_module не работал в именованных
1203 location'ах.
1204
1205 *) Исправление: при использовании AIO после перенаправления запроса с
1206 помощью X-Accel-Redirect в рабочем процессе мог произойти
1207 segmentation fault.
1208
1209 *) Исправление: уменьшено потребление памяти для долгоживущих запросов,
1210 использующих сжатие.
1211
1212
1213 Изменения в nginx 1.11.9 24.01.2017
1214
1215 *) Исправление: при использовании модуля stream nginx мог нагружать
1216 процессор; ошибка появилась в 1.11.5.
1217
1218 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере
1219 можно было использовать, даже если он не был разрешён в конфигурации.
1220
1221 *) Исправление: при использовании директивы ssl_verify_client модуля
1222 stream в рабочем процессе мог произойти segmentation fault.
1223
1224 *) Исправление: директива ssl_verify_client модуля stream могла не
1225 работать.
1226
1227 *) Исправление: при исчерпании рабочим процессом свободных соединений
1228 keepalive-соединения могли закрываться излишне агрессивно.
1229 Спасибо Joel Cunningham.
1230
1231 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS
1232 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8.
1233
1234 *) Исправление: при использовании директивы aio_write ответ мог
1235 сохраняться в кэш не полностью.
1236
1237 *) Исправление: при использовании директивы aio_write могла происходить
1238 утечка сокетов.
1239
1240
1241 Изменения в nginx 1.11.8 27.12.2016
1242
1243 *) Добавление: директива absolute_redirect.
1244
1245 *) Добавление: параметр escape директивы log_format.
1246
1247 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream.
1248
1249 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование
1250 TLS session tickets с помощью AES256 при использовании с 80-байтными
1251 ключами.
1252
1253 *) Добавление: поддержка vim-commentary в скриптах для vim.
1254 Спасибо Armin Grodon.
1255
1256 *) Исправление: рекурсия при получении значений переменных не
1257 ограничивалась.
1258
1259 *) Исправление: в модуле ngx_stream_ssl_preread_module.
1260
1261 *) Исправление: если сервер, описанный в блоке upstream в модуле stream,
1262 был признан неработающим, то после истечения fail_timeout он
1263 признавался работающим только после завершения тестового соединения;
1264 теперь достаточно, чтобы соединение было успешно установлено.
1265
1266 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio.
1267
1268 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0.
1269
1270
1271 Изменения в nginx 1.11.7 13.12.2016
1272
1273 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки
1274 проверки клиентского сертификата содержит строку с описанием ошибки,
1275 например, "FAILED:certificate has expired".
1276
1277 *) Добавление: переменные $ssl_ciphers, $ssl_curves,
1278 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
1279
1280 *) Добавление: параметр volatile директивы map.
1281
1282 *) Исправление: при сборке динамических модулей не учитывались заданные
1283 для модуля зависимости.
1284
1285 *) Исправление: при использовании HTTP/2 и директив limit_req или
1286 auth_request тело запроса могло быть повреждено; ошибка появилась в
1287 1.11.0.
1288
1289 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1290 произойти segmentation fault; ошибка появилась в 1.11.3.
1291
1292 *) Исправление: в модуле ngx_http_mp4_module.
1293 Спасибо Congcong Hu.
1294
1295 *) Исправление: в модуле ngx_http_perl_module.
1296
1297
1298 Изменения в nginx 1.11.6 15.11.2016
1299
1300 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn
1301 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом
1302 формате доступны через переменные $ssl_client_s_dn_legacy и
1303 $ssl_client_i_dn_legacy.
1304
1305 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь
1306 располагаются не в отдельном подкаталоге для временных файлов, а в
1307 том же подкаталоге, что и соответствующие файлы в кэше.
1308
1309 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом
1310 прокси-сервере.
1311 Спасибо Robert Norris.
1312
1313 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module.
1314
1315 *) Добавление: директива proxy_method поддерживает переменные.
1316 Спасибо Дмитрию Лазуркину.
1317
1318 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module.
1319
1320 *) Добавление: директивы proxy_cache_max_range_offset,
1321 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и
1322 uwsgi_cache_max_range_offset.
1323
1324 *) Исправление: плавное завершение старых рабочих процессов могло
1325 занимать бесконечное время при использовании HTTP/2.
1326
1327 *) Исправление: в модуле ngx_http_mp4_module.
1328
1329 *) Исправление: при проксировании WebSocket-соединений и включённом
1330 кэшировании в логах могли появляться сообщения "ignore long locked
1331 inactive cache entry".
1332
1333 *) Исправление: если во время SSL handshake с бэкендом происходил
1334 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502
1335 вместо 504.
1336
1337
1338 Изменения в nginx 1.11.5 11.10.2016
1339
1340 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6
1341 теперь собирается автоматически.
1342
1343 *) Изменение: теперь, если в блоке upstream не оказалось доступных
1344 серверов, nginx не сбрасывает статистику ошибок всех серверов, как
1345 делал ранее, а ожидает истечения fail_timeout.
1346
1347 *) Добавление: модуль ngx_stream_ssl_preread_module.
1348
1349 *) Добавление: директива server в блоке upstream поддерживает параметр
1350 max_conns.
1351
1352 *) Добавление: параметр configure --with-compat.
1353
1354 *) Добавление: параметры manager_files, manager_threshold и
1355 manager_sleep директив proxy_cache_path, fastcgi_cache_path,
1356 scgi_cache_path и uwsgi_cache_path.
1357
1358 *) Исправление: при сборке perl-модуля не использовались флаги, заданные
1359 с помощью параметра configure --with-ld-opt.
1360
1361 *) Исправление: в директиве add_after_body при использовании совместно с
1362 директивой sub_filter.
1363
1364 *) Исправление: в переменной $realip_remote_addr.
1365
1366 *) Исправление: директивы dav_access, proxy_store_access,
1367 fastcgi_store_access, scgi_store_access и uwsgi_store_access
1368 игнорировали права, заданные для пользователя.
1369
1370 *) Исправление: unix domain listen-сокеты могли не наследоваться при
1371 обновлении исполняемого файла на Linux.
1372
1373 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в
1374 HTTP-методе.
1375
1376
1377 Изменения в nginx 1.11.4 13.09.2016
1378
1379 *) Добавление: переменная $upstream_bytes_received.
1380
1381 *) Добавление: переменные $bytes_received, $session_time, $protocol,
1382 $status, $upstream_addr, $upstream_bytes_sent,
1383 $upstream_bytes_received, $upstream_connect_time,
1384 $upstream_first_byte_time и $upstream_session_time в модуле stream.
1385
1386 *) Добавление: модуль ngx_stream_log_module.
1387
1388 *) Добавление: параметр proxy_protocol в директиве listen, переменные
1389 $proxy_protocol_addr и $proxy_protocol_port в модуле stream.
1390
1391 *) Добавление: модуль ngx_stream_realip_module.
1392
1393 *) Исправление: nginx не собирался с модулем stream и модулем
1394 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка
1395 появилась в 1.11.3.
1396
1397 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
1398 ошибка появилась в 1.11.2.
1399
1400 *) Исправление: в параметре ranges директивы geo.
1401
1402 *) Исправление: при использовании директив "aio threads" и sendfile мог
1403 возвращаться некорректный ответ; ошибка появилась в 1.9.13.
1404
1405
1406 Изменения в nginx 1.11.3 26.07.2016
1407
1408 *) Изменение: теперь accept_mutex по умолчанию выключен.
1409
1410 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux.
1411
1412 *) Добавление: модуль ngx_stream_geo_module.
1413
1414 *) Добавление: модуль ngx_stream_geoip_module.
1415
1416 *) Добавление: модуль ngx_stream_split_clients_module.
1417
1418 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream
1419 поддерживают переменные.
1420
1421 *) Исправление: утечки сокетов при использовании HTTP/2.
1422
1423 *) Исправление: в configure.
1424 Спасибо Piotr Sikora.
1425
1426
1427 Изменения в nginx 1.11.2 05.07.2016
1428
1429 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и
1430 SHA1; параметры configure --with-md5 и --with-sha1 упразднены.
1431
1432 *) Добавление: поддержка переменных в модуле stream.
1433
1434 *) Добавление: модуль ngx_stream_map_module.
1435
1436 *) Добавление: модуль ngx_stream_return_module.
1437
1438 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind,
1439 scgi_bind и uwsgi_bind теперь можно указывать порт.
1440
1441 *) Добавление: теперь nginx использует опцию сокета
1442 IP_BIND_ADDRESS_NO_PORT, если она доступна.
1443
1444 *) Исправление: при использовании HTTP/2 и директивы
1445 proxy_request_buffering в рабочем процессе мог произойти segmentation
1446 fault.
1447
1448 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на
1449 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
1450 если у запроса не было тела.
1451
1452 *) Исправление: при использовании HTTP/2 в логах могли появляться
1453 сообщения "http request count is zero".
1454
1455 *) Исправление: при использовании директивы sub_filter могло
1456 буферизироваться больше данных, чем это необходимо; проблема
1457 появилась в 1.9.4.
1458
1459
1460 Изменения в nginx 1.11.1 31.05.2016
1461
1462 *) Безопасность: при записи тела специально созданного запроса во
1463 временный файл в рабочем процессе мог происходить segmentation fault
1464 (CVE-2016-4450); ошибка появилась в 1.3.9.
1465
1466
1467 Изменения в nginx 1.11.0 24.05.2016
1468
1469 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind,
1470 memcached_bind, scgi_bind и uwsgi_bind.
1471
1472 *) Добавление: переменная $request_id.
1473
1474 *) Добавление: директива map поддерживает комбинации нескольких
1475 переменных в качестве результирующих значений.
1476
1477 *) Добавление: теперь при использовании метода epoll nginx проверяет,
1478 поддерживает ли ядро события EPOLLRDHUP, и соответственно
1479 оптимизирует обработку соединений.
1480
1481 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь
1482 можно указывать несколько раз для загрузки сертификатов разных типов
1483 (например, RSA и ECDSA).
1484
1485 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью
1486 директивы ssl_ecdh_curve теперь можно задать список кривых; по
1487 умолчанию используется встроенный в OpenSSL список кривых.
1488
1489 *) Изменение: для использования DHE-шифров теперь надо явно задавать
1490 файл параметров с помощью директивы ssl_dhparam.
1491
1492 *) Добавление: переменная $proxy_protocol_port.
1493
1494 *) Добавление: переменная $realip_remote_port в модуле
1495 ngx_http_realip_module.
1496
1497 *) Добавление: модуль ngx_http_realip_module теперь позволяет
1498 устанавливать не только адрес, но и порт клиента.
1499
1500 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от
1501 согласованного в процессе SSL handshake, теперь возвращается ответ
1502 "421 Misdirected Request"; это улучшает совместимость с некоторыми
1503 HTTP/2-клиентами в случае использования клиентских сертификатов.
1504
1505 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
1506 директива http2_body_preread_size позволяет указать размер буфера,
1507 который будет использоваться до того, как nginx начнёт читать тело.
1508
1509 *) Исправление: при использовании директивы proxy_cache_bypass не
1510 обновлялись закэшированные ошибочные ответы.
1511
1512
1513 Изменения в nginx 1.9.15 19.04.2016
1514
1515 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли
1516 возникать ошибки "recv() failed".
1517
1518 *) Исправление: при использовании HTTP/2 и директив limit_req или
1519 auth_request при чтении тела запроса мог произойти таймаут или ошибка
1520 "client violated flow control"; ошибка появилась в 1.9.14.
1521
1522 *) Изменение: при использовании HTTP/2 ответ мог не показываться
1523 некоторыми браузерами, если тело запроса было прочитано не целиком;
1524 ошибка появилась в 1.9.14.
1525
1526 *) Исправление: при использовании директивы "aio threads" соединения
1527 могли зависать.
1528 Спасибо Mindaugas Rasiukevicius.
1529
1530
1531 Изменения в nginx 1.9.14 05.04.2016
1532
1533 *) Добавление: совместимость с OpenSSL 1.1.0.
1534
1535 *) Добавление: директивы proxy_request_buffering,
1536 fastcgi_request_buffering, scgi_request_buffering и
1537 uwsgi_request_buffering теперь работают при использовании HTTP/2.
1538
1539 *) Исправление: при использовании HTTP/2 в логах могли появляться
1540 сообщения "zero size buf in output".
1541
1542 *) Исправление: при использовании HTTP/2 директива client_max_body_size
1543 могла работать неверно.
1544
1545 *) Исправление: незначительных ошибок логгирования.
1546
1547
1548 Изменения в nginx 1.9.13 29.03.2016
1549
1550 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по
1551 умолчанию не передаются на другой сервер, если запрос уже был
1552 отправлен на бэкенд; параметр non_idempotent директивы
1553 proxy_next_upstream явно разрешает повторять такие запросы.
1554
1555 *) Добавление: модуль ngx_http_perl_module теперь можно собрать
1556 динамически.
1557
1558 *) Добавление: поддержка UDP в модуле stream.
1559
1560 *) Добавление: директива aio_write.
1561
1562 *) Добавление: теперь cache manager следит за количеством элементов в
1563 кэше и старается не допускать переполнений зоны разделяемой памяти.
1564
1565 *) Исправление: при использовании директив sendfile и aio с подзапросами
1566 в логах могли появляться сообщения "task already active" и "second
1567 aio post".
1568
1569 *) Исправление: при использовании кэширования в логах могли появляться
1570 сообщения "zero size buf in output", если клиент закрывал соединение
1571 преждевременно.
1572
1573 *) Исправление: при использовании кэширования соединения с клиентами
1574 могли закрываться без необходимости.
1575 Спасибо Justin Li.
1576
1577 *) Исправление: nginx мог нагружать процессор при использовании
1578 директивы sendfile на Linux и Solaris, если отправляемый файл был
1579 изменён в процессе отправки.
1580
1581 *) Исправление: при использовании директив sendfile и "aio threads"
1582 соединения могли зависать.
1583
1584 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и
1585 uwsgi_pass при использовании переменных.
1586 Спасибо Piotr Sikora.
1587
1588 *) Исправление: в модуле ngx_http_sub_filter_module.
1589
1590 *) Исправление: если в закэшированном соединении к бэкенду происходила
1591 ошибка, запрос передавался на другой сервер без учёта директивы
1592 proxy_next_upstream.
1593
1594 *) Исправление: ошибки "CreateFile() failed" при создании временных
1595 файлов на Windows.
1596
1597
1598 Изменения в nginx 1.9.12 24.02.2016
1599
1600 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2.
1601 Спасибо Владу Краснову.
1602
1603 *) Добавление: директива worker_cpu_affinity теперь поддерживает более
1604 64 процессоров.
1605
1606 *) Исправление: совместимость со сторонними модулями на C++; ошибка
1607 появилась в 1.9.11.
1608 Спасибо Piotr Sikora.
1609
1610 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка
1611 появилась в 1.9.11.
1612
1613 *) Исправление: директива "add_header ... always" с пустым значением не
1614 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag.
1615
1616 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться
1617 сообщения "called a function you should not call" и "shutdown while
1618 in init".
1619
1620 *) Исправление: ошибочные заголовки могли логгироваться некорректно.
1621
1622 *) Исправление: утечки сокетов при использовании HTTP/2.
1623
1624 *) Исправление: в модуле ngx_http_v2_module.
1625
1626
1627 Изменения в nginx 1.9.11 09.02.2016
1628
1629 *) Добавление: теперь resolver поддерживает TCP.
1630
1631 *) Добавление: динамические модули.
1632
1633 *) Исправление: при использовании HTTP/2 переменная $request_length не
1634 учитывала размер заголовков запроса.
1635
1636 *) Исправление: в модуле ngx_http_v2_module.
1637
1638
1639 Изменения в nginx 1.9.10 26.01.2016
1640
1641 *) Безопасность: при использовании директивы resolver во время обработки
1642 ответов DNS-сервера могло происходить разыменование некорректного
1643 адреса, что позволяло атакующему, имеющему возможность подделывать
1644 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
1645 процессе (CVE-2016-0742).
1646
1647 *) Безопасность: при использовании директивы resolver во время обработки
1648 CNAME-записей могло произойти обращение к ранее освобождённой памяти,
1649 что позволяло атакующему, имеющему возможность инициировать
1650 преобразование произвольных имён в адреса, вызвать segmentation fault
1651 в рабочем процессе, а также потенциально могло иметь другие
1652 последствия (CVE-2016-0746).
1653
1654 *) Безопасность: при использовании директивы resolver во время обработки
1655 CNAME-записей не во всех случаях проверялось ограничение на
1656 максимальное количество записей в цепочке, что позволяло атакующему,
1657 имеющему возможность инициировать преобразование произвольных имён в
1658 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
1659 (CVE-2016-0747).
1660
1661 *) Добавление: параметр auto директивы worker_cpu_affinity.
1662
1663 *) Исправление: параметр proxy_protocol директивы listen не работал с
1664 IPv6 listen-сокетами.
1665
1666 *) Исправление: при использовании директивы keepalive соединения к
1667 бэкендам могли кэшироваться некорректно.
1668
1669 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
1670 при проксировании использовался HTTP-метод оригинального запроса.
1671
1672
1673 Изменения в nginx 1.9.9 09.12.2015
1674
1675 *) Исправление: проксирование в unix domain сокеты не работало при
1676 использовании переменных; ошибка появилась в 1.9.8.
1677
1678
1679 Изменения в nginx 1.9.8 08.12.2015
1680
1681 *) Добавление: поддержка pwritev().
1682
1683 *) Добавление: директива include в блоке upstream.
1684
1685 *) Добавление: модуль ngx_http_slice_module.
1686
1687 *) Исправление: при использовании LibreSSL в рабочем процессе мог
1688 произойти segmentation fault; ошибка появилась в 1.9.6.
1689
1690 *) Исправление: nginx мог не собираться на OS X.
1691
1692
1693 Изменения в nginx 1.9.7 17.11.2015
1694
1695 *) Добавление: параметр nohostname логгирования в syslog.
1696
1697 *) Добавление: директива proxy_cache_convert_head.
1698
1699 *) Добавление: переменная $realip_remote_addr в модуле
1700 ngx_http_realip_module.
1701
1702 *) Исправление: директива expires могла не срабатывать при использовании
1703 переменных.
1704
1705 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1706 произойти segmentation fault; ошибка появилась в 1.9.6.
1707
1708 *) Исправление: если nginx был собран с модулем ngx_http_v2_module,
1709 протокол HTTP/2 мог быть использован клиентом, даже если не был
1710 указан параметр http2 директивы listen.
1711
1712 *) Исправление: в модуле ngx_http_v2_module.
1713
1714
1715 Изменения в nginx 1.9.6 27.10.2015
1716
1717 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1718 произойти segmentation fault.
1719 Спасибо Piotr Sikora и Denis Andzakovic.
1720
1721 *) Исправление: при использовании HTTP/2 переменная $server_protocol
1722 была пустой.
1723
1724 *) Исправление: SSL-соединения к бэкендам в модуле stream могли
1725 неожиданно завершаться по таймауту.
1726
1727 *) Исправление: при использовании различных настроек ssl_session_cache в
1728 разных виртуальных серверах в рабочем процессе мог произойти
1729 segmentation fault.
1730
1731 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась
1732 в 1.9.4.
1733 Спасибо Kouhei Sutou.
1734
1735 *) Исправление: при использовании директивы timer_resolution на Windows
1736 время не обновлялось.
1737
1738 *) Незначительные исправления и улучшения.
1739 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
1740
1741
1742 Изменения в nginx 1.9.5 22.09.2015
1743
1744 *) Добавление: модуль ngx_http_v2_module (заменяет модуль
1745 ngx_http_spdy_module).
1746 Спасибо Dropbox и Automattic за спонсирование разработки.
1747
1748 *) Изменение: теперь по умолчанию директива output_buffers использует
1749 два буфера.
1750
1751 *) Изменение: теперь nginx ограничивает максимальную вложенность
1752 подзапросов, а не количество одновременных подзапросов.
1753
1754 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ
1755 полностью.
1756 Спасибо Геннадию Махомеду и Сергею Брестеру.
1757
1758 *) Исправление: при использовании кэша в логах могли появляться
1759 сообщения "header already sent"; ошибка появилась в 1.7.5.
1760
1761 *) Исправление: при использовании CephFS и директивы timer_resolution на
1762 Linux в логах могли появляться сообщения "writev() failed (4:
1763 Interrupted system call)".
1764
1765 *) Исправление: в обработке ошибок конфигурации.
1766 Спасибо Markus Linnala.
1767
1768 *) Исправление: при использовании директивы sub_filter на уровне http в
1769 рабочем процессе происходил segmentation fault; ошибка появилась в
1770 1.9.4.
1771
1772
1773 Изменения в nginx 1.9.4 18.08.2015
1774
1775 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer
1776 в модуле stream заменены директивой proxy_buffer_size.
1777
1778 *) Добавление: директива tcp_nodelay в модуле stream.
1779
1780 *) Добавление: теперь можно указать несколько директив sub_filter
1781 одновременно.
1782
1783 *) Добавление: директива sub_filter поддерживает переменные в строке
1784 поиска.
1785
1786 *) Изменение: тестирование конфигурации могло не работать под Linux
1787 OpenVZ.
1788 Спасибо Геннадию Махомеду.
1789
1790 *) Исправление: после переконфигурации старые рабочие процессы могли
1791 сильно нагружать процессор при больших значениях worker_connections.
1792
1793 *) Исправление: при совместном использовании директив try_files и alias
1794 внутри location'а, заданного регулярным выражением, в рабочем
1795 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
1796
1797 *) Исправление: директива try_files внутри вложенного location'а,
1798 заданного регулярным выражением, работала неправильно, если во
1799 внешнем location'е использовалась директива alias.
1800
1801 *) Исправление: в обработке ошибок при построении хэш-таблиц.
1802
1803 *) Исправление: nginx не собирался с Visual Studio 2015.
1804
1805
1806 Изменения в nginx 1.9.3 14.07.2015
1807
1808 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.
1809
1810 *) Добавление: ограничение количества соединений в модуле stream.
1811
1812 *) Добавление: ограничение скорости в модуле stream.
1813
1814 *) Исправление: директива zone в блоке upstream не работала на Windows.
1815
1816 *) Исправление: совместимость с LibreSSL в модуле stream.
1817 Спасибо Piotr Sikora.
1818
1819 *) Исправление: в параметре --builddir в configure.
1820 Спасибо Piotr Sikora.
1821
1822 *) Исправление: директива ssl_stapling_file не работала; ошибка
1823 появилась в 1.9.2.
1824 Спасибо Faidon Liambotis и Brandon Black.
1825
1826 *) Исправление: при использовании директивы ssl_stapling в рабочем
1827 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
1828 Спасибо Matthew Baldwin.
1829
1830
1831 Изменения в nginx 1.9.2 16.06.2015
1832
1833 *) Добавление: параметр backlog директивы listen в почтовом
1834 прокси-сервере и модуле stream.
1835
1836 *) Добавление: директивы allow и deny в модуле stream.
1837
1838 *) Добавление: директива proxy_bind в модуле stream.
1839
1840 *) Добавление: директива proxy_protocol в модуле stream.
1841
1842 *) Добавление: ключ -T.
1843
1844 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
1845 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
1846 uwsgi_params.
1847
1848 *) Исправление: параметр reuseport директивы listen в модуле stream не
1849 работал.
1850
1851 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
1852 OCSP-ответ.
1853
1854
1855 Изменения в nginx 1.9.1 26.05.2015
1856
1857 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён.
1858
1859 *) Изменение: некоторые давно устаревшие директивы больше не
1860 поддерживаются.
1861
1862 *) Добавление: параметр reuseport директивы listen.
1863 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
1864
1865 *) Добавление: переменная $upstream_connect_time.
1866
1867 *) Исправление: в директиве hash на big-endian платформах.
1868
1869 *) Исправление: nginx мог не запускаться на некоторых старых версиях
1870 Linux; ошибка появилась в 1.7.11.
1871
1872 *) Исправление: в парсинге IP-адресов.
1873 Спасибо Сергею Половко.
1874
1875
1876 Изменения в nginx 1.9.0 28.04.2015
1877
1878 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше
1879 не поддерживаются.
1880
1881 *) Добавление: директива zone в блоке upstream.
1882
1883 *) Добавление: модуль stream.
1884
1885 *) Добавление: поддержка byte ranges для ответов модуля
1886 ngx_http_memcached_module.
1887 Спасибо Martin Mlynář.
1888
1889 *) Добавление: разделяемую память теперь можно использовать на версиях
1890 Windows с рандомизацией адресного пространства.
1891 Спасибо Сергею Брестеру.
1892
1893 *) Добавление: директиву error_log теперь можно использовать на уровнях
1894 mail и server в почтовом прокси-сервере.
1895
1896 *) Исправление: параметр proxy_protocol директивы listen не работал,
1897 если не был указан в первой директиве listen для данного
1898 listen-сокета.
1899
1900
1901 Изменения в nginx 1.7.12 07.04.2015
1902
1903 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
1904 с бэкендами.
1905
1906 *) Добавление: теперь потоки могут использоваться для чтения заголовков
1907 файлов в кэше.
1908
1909 *) Исправление: в директиве proxy_request_buffering.
1910
1911 *) Исправление: при использовании потоков на Linux в рабочем процессе
1912 мог произойти segmentation fault.
1913
1914 *) Исправление: в обработке ошибок при использовании директивы
1915 ssl_stapling.
1916 Спасибо Filipe da Silva.
1917
1918 *) Исправление: в модуле ngx_http_spdy_module.
1919
1920
1921 Изменения в nginx 1.7.11 24.03.2015
1922
1923 *) Изменение: параметр sendfile директивы aio более не нужен; теперь
1924 nginx автоматически использует AIO для подгрузки данных для sendfile,
1925 если одновременно используются директивы aio и sendfile.
1926
1927 *) Добавление: экспериментальная поддержка потоков.
1928
1929 *) Добавление: директивы proxy_request_buffering,
1930 fastcgi_request_buffering, scgi_request_buffering и
1931 uwsgi_request_buffering.
1932
1933 *) Добавление: экспериментальное API для обработки тела запроса.
1934
1935 *) Добавление: проверка клиентских SSL-сертификатов в почтовом
1936 прокси-сервере.
1937 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
1938
1939 *) Добавление: уменьшение времени запуска при использовании директивы
1940 "hash ... consistent" в блоке upstream.
1941 Спасибо Wai Keen Woon.
1942
1943 *) Добавление: отладочное логгирование в кольцевой буфер в памяти.
1944
1945 *) Исправление: в обработке хэш-таблиц.
1946 Спасибо Chris West.
1947
1948 *) Исправление: в директиве proxy_cache_revalidate.
1949
1950 *) Исправление: SSL-соединения могли зависать, если использовался
1951 отложенный accept или параметр proxy_protocol директивы listen.
1952 Спасибо James Hamlin.
1953
1954 *) Исправление: переменная $upstream_response_time могла содержать
1955 неверное значение при использовании директивы image_filter.
1956
1957 *) Исправление: в обработке целочисленных переполнений.
1958 Спасибо Régis Leroy.
1959
1960 *) Исправление: при использовании LibreSSL было невозможно включить
1961 поддержку SSLv3.
1962
1963 *) Исправление: при использовании LibreSSL в логах появлялись сообщения
1964 "ignoring stale global SSL error ... called a function you should not
1965 call".
1966
1967 *) Исправление: сертификаты, указанные в директивах
1968 ssl_client_certificate и ssl_trusted_certificate, использовались для
1969 автоматического построения цепочек сертификатов.
1970
1971
1972 Изменения в nginx 1.7.10 10.02.2015
1973
1974 *) Добавление: параметр use_temp_path директив proxy_cache_path,
1975 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
1976
1977 *) Добавление: переменная $upstream_header_time.
1978
1979 *) Изменение: теперь при переполнении диска nginx пытается писать
1980 error_log'и только раз в секунду.
1981
1982 *) Исправление: директива try_files при тестировании каталогов не
1983 игнорировала обычные файлы.
1984 Спасибо Damien Tournoud.
1985
1986 *) Исправление: при использовании директивы sendfile на OS X возникали
1987 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8.
1988
1989 *) Исправление: в лог могли писаться сообщения "sem_post() failed".
1990
1991 *) Исправление: nginx не собирался с musl libc.
1992 Спасибо James Taylor.
1993
1994 *) Исправление: nginx не собирался на Tru64 UNIX.
1995 Спасибо Goetz T. Fischer.
1996
1997
1998 Изменения в nginx 1.7.9 23.12.2014
1999
2000 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
2001 uwsgi_cache поддерживают переменные.
2002
2003 *) Добавление: директива expires поддерживает переменные.
2004
2005 *) Добавление: возможность загрузки секретных ключей с аппаратных
2006 устройств с помощью OpenSSL engines.
2007 Спасибо Дмитрию Пичулину.
2008
2009 *) Добавление: директива autoindex_format.
2010
2011 *) Исправление: ревалидация элементов кэша теперь используется только
2012 для ответов с кодами 200 и 206.
2013 Спасибо Piotr Sikora.
2014
2015 *) Исправление: строка "TE" заголовка запроса клиента передавалась на
2016 бэкенд при проксировании.
2017
2018 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
2019 uwsgi_pass могли неправильно работать внутри блоков if и
2020 limit_except.
2021
2022 *) Исправление: директива proxy_store с параметром "on" игнорировалась,
2023 если на предыдущем уровне использовалась директива proxy_store с явно
2024 заданным путём к файлам.
2025
2026 *) Исправление: nginx не собирался с BoringSSL.
2027 Спасибо Lukas Tribus.
2028
2029
2030 Изменения в nginx 1.7.8 02.12.2014
2031
2032 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им
2033 подобные в заголовке запроса клиента передаются бэкенду при
2034 включённом кэшировании, если nginx заранее знает, что не будет
2035 кэшировать ответ (например, при использовании proxy_cache_min_uses).
2036
2037 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
2038 отправляет запрос на бэкенд без кэширования; новые директивы
2039 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
2040 uwsgi_cache_lock_age позволяют указать, через какое время блокировка
2041 будет принудительно снята и будет сделана ещё одна попытка
2042 закэшировать ответ.
2043
2044 *) Изменение: директива log_format теперь может использоваться только на
2045 уровне http.
2046
2047 *) Добавление: директивы proxy_ssl_certificate,
2048 proxy_ssl_certificate_key, proxy_ssl_password_file,
2049 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
2050 uwsgi_ssl_password_file.
2051 Спасибо Piotr Sikora.
2052
2053 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
2054 именованный location.
2055 Спасибо Toshikuni Fukaya.
2056
2057 *) Добавление: теперь директива tcp_nodelay работает для
2058 SPDY-соединений.
2059
2060 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
2061 Спасибо Peter Wu.
2062
2063 *) Исправление: nginx игнорировал значение "s-maxage" в строке
2064 "Cache-Control" в заголовке ответа бэкенда.
2065 Спасибо Piotr Sikora.
2066
2067 *) Исправление: в модуле ngx_http_spdy_module.
2068 Спасибо Piotr Sikora.
2069
2070 *) Исправление: в директиве ssl_password_file при использовании OpenSSL
2071 0.9.8zc, 1.0.0o, 1.0.1j.
2072
2073 *) Исправление: при использовании директивы post_action в лог писались
2074 сообщения "header already sent"; ошибка появилась в nginx 1.5.4.
2075
2076 *) Исправление: при использовании директивы "postpone_output 0" с
2077 SSI-подзапросами в лог могли писаться сообщения "the http output
2078 chain is empty".
2079
2080 *) Исправление: в директиве proxy_cache_lock при использовании
2081 SSI-подзапросов.
2082 Спасибо Yichun Zhang.
2083
2084
2085 Изменения в nginx 1.7.7 28.10.2014
2086
2087 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
2088 заголовке ответа бэкенда.
2089
2090 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
2091 scgi_force_ranges и uwsgi_force_ranges.
2092
2093 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
2094 scgi_limit_rate и uwsgi_limit_rate.
2095
2096 *) Добавление: параметр Vary директив proxy_ignore_headers,
2097 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.
2098
2099 *) Исправление: последняя часть ответа, полученного от бэкенда при
2100 небуферизированном проксировании, могла не отправляться клиенту, если
2101 использовались директивы gzip или gunzip.
2102
2103 *) Исправление: в директиве proxy_cache_revalidate.
2104 Спасибо Piotr Sikora.
2105
2106 *) Исправление: в обработке ошибок.
2107 Спасибо Yichun Zhang и Даниилу Бондареву.
2108
2109 *) Исправление: в директивах proxy_next_upstream_tries и
2110 proxy_next_upstream_timeout.
2111 Спасибо Feng Gu.
2112
2113 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
2114 Спасибо Kouhei Sutou.
2115
2116
2117 Изменения в nginx 1.7.6 30.09.2014
2118
2119 *) Изменение: устаревшая директива limit_zone больше не поддерживается.
2120
2121 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
2122 можно использовать комбинации нескольких переменных.
2123
2124 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
2125 запроса могло передаваться неправильно.
2126
2127 *) Исправление: в логгировании в syslog.
2128
2129
2130 Изменения в nginx 1.7.5 16.09.2014
2131
2132 *) Безопасность: при использовании общего для нескольких блоков server
2133 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
2134 session tickets было возможно повторно использовать SSL-сессию в
2135 контексте другого блока server (CVE-2014-3616).
2136 Спасибо Antoine Delignat-Lavaud.
2137
2138 *) Изменение: директиву stub_status теперь можно указывать без
2139 параметров.
2140
2141 *) Добавление: параметр always директивы add_header.
2142
2143 *) Добавление: директивы proxy_next_upstream_tries,
2144 proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
2145 fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
2146 memcached_next_upstream_timeout, scgi_next_upstream_tries,
2147 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
2148 uwsgi_next_upstream_timeout.
2149
2150 *) Исправление: в параметре if директивы access_log.
2151
2152 *) Исправление: в модуле ngx_http_perl_module.
2153 Спасибо Piotr Sikora.
2154
2155 *) Исправление: директива listen почтового прокси-сервера не позволяла
2156 указать более двух параметров.
2157
2158 *) Исправление: директива sub_filter не работала с заменяемой строкой из
2159 одного символа.
2160
2161 *) Исправление: запросы могли зависать, если использовался resolver и в
2162 процессе обращения к DNS-серверу происходил таймаут.
2163
2164 *) Исправление: в модуле ngx_http_spdy_module при использовании
2165 совместно с AIO.
2166
2167 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2168 если с помощью директивы set изменялись переменные "$http_...",
2169 "$sent_http_..." или "$upstream_http_...".
2170
2171 *) Исправление: в обработке ошибок выделения памяти.
2172 Спасибо Markus Linnala и Feng Gu.
2173
2174
2175 Изменения в nginx 1.7.4 05.08.2014
2176
2177 *) Безопасность: pipelined-команды не отбрасывались после команды
2178 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
2179 1.5.6.
2180 Спасибо Chris Boulton.
2181
2182 *) Изменение: экранирование символов в URI теперь использует
2183 шестнадцатеричные цифры в верхнем регистре.
2184 Спасибо Piotr Sikora.
2185
2186 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
2187 Спасибо Piotr Sikora.
2188
2189 *) Исправление: запросы могли зависать, если использовался resolver и
2190 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.
2191
2192 *) Исправление: в модуле ngx_http_spdy_module.
2193 Спасибо Piotr Sikora.
2194
2195 *) Исправление: переменная $uri могла содержать мусор при возврате
2196 ошибок с кодом 400.
2197 Спасибо Сергею Боброву.
2198
2199 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле
2200 ngx_http_dav_module.
2201 Спасибо Feng Gu.
2202
2203 *) Исправление: при логгировании ошибок в syslog мог происходить
2204 segmentation fault; ошибка появилась в 1.7.1.
2205
2206 *) Исправление: переменные $geoip_latitude, $geoip_longitude,
2207 $geoip_dma_code и $geoip_area_code могли не работать.
2208 Спасибо Yichun Zhang.
2209
2210 *) Исправление: в обработке ошибок выделения памяти.
2211 Спасибо Tatsuhiko Kubo и Piotr Sikora.
2212
2213
2214 Изменения в nginx 1.7.3 08.07.2014
2215
2216 *) Добавление: weak entity tags теперь не удаляются при изменениях
2217 ответа, а strong entity tags преобразуются в weak.
2218
2219 *) Добавление: ревалидация элементов кэша теперь, если это возможно,
2220 использует заголовок If-None-Match.
2221
2222 *) Добавление: директива ssl_password_file.
2223
2224 *) Исправление: при возврате ответа из кэша заголовок запроса
2225 If-None-Match игнорировался, если в ответе не было заголовка
2226 Last-Modified.
2227
2228 *) Исправление: сообщения "peer closed connection in SSL handshake" при
2229 соединении с бэкендами логгировались на уровне info вместо error.
2230
2231 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows.
2232
2233 *) Исправление: SPDY-соединения могли неожиданно закрываться, если
2234 использовалось кэширование.
2235
2236
2237 Изменения в nginx 1.7.2 17.06.2014
2238
2239 *) Добавление: директива hash в блоке upstream.
2240
2241 *) Добавление: дефрагментация свободных блоков разделяемой памяти.
2242 Спасибо Wandenberg Peixoto и Yichun Zhang.
2243
2244 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2245 если использовалось значение access_log по умолчанию; ошибка
2246 появилась в 1.7.0.
2247 Спасибо Piotr Sikora.
2248
2249 *) Исправление: завершающий слэш ошибочно удалялся из последнего
2250 параметра директивы try_files.
2251
2252 *) Исправление: nginx мог не собираться на OS X.
2253
2254 *) Исправление: в модуле ngx_http_spdy_module.
2255
2256
2257 Изменения в nginx 1.7.1 27.05.2014
2258
2259 *) Добавление: переменные "$upstream_cookie_...".
2260
2261 *) Добавление: переменная $ssl_client_fingerprint.
2262
2263 *) Добавление: директивы error_log и access_log теперь поддерживают
2264 логгирование в syslog.
2265
2266 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
2267 соединении.
2268
2269 *) Исправление: утечки памяти при использовании директивы
2270 "ssl_stapling".
2271 Спасибо Filipe da Silva.
2272
2273 *) Исправление: директива alias внутри location'а, заданного регулярным
2274 выражением, работала неправильно, если использовались директивы if
2275 или limit_except.
2276
2277 *) Исправление: директива charset не ставила кодировку для сжатых
2278 ответов бэкендов.
2279
2280 *) Исправление: директива proxy_pass без URI могла использовать
2281 оригинальный запрос после установки переменной $args.
2282 Спасибо Yichun Zhang.
2283
2284 *) Исправление: в работе параметра none директивы smtp_auth; ошибка
2285 появилась в 1.5.6.
2286 Спасибо Святославу Никольскому.
2287
2288 *) Исправление: при совместном использовании sub_filter и SSI ответы
2289 могли передаваться неверно.
2290
2291 *) Исправление: nginx не собирался с параметром --with-file-aio на
2292 Linux/aarch64.
2293
2294
2295 Изменения в nginx 1.7.0 24.04.2014
2296
2297 *) Добавление: проверка SSL-сертификатов бэкендов.
2298
2299 *) Добавление: поддержка SNI при работе с бэкендами по SSL.
2300
2301 *) Добавление: переменная $ssl_server_name.
2302
2303 *) Добавление: параметр if директивы access_log.
2304
2305
2306 Изменения в nginx 1.5.13 08.04.2014
2307
2308 *) Изменение: улучшена обработка хэш-таблиц; в директивах
2309 variables_hash_max_size и types_hash_bucket_size значения по
2310 умолчанию изменены на 1024 и 64 соответственно.
2311
2312 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
2313
2314 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
2315 сохранении ответов в кэш.
2316
2317 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
2318 failed: no memory" при использовании разделяемой памяти в
2319 ssl_session_cache и в модуле ngx_http_limit_req_module.
2320
2321 *) Исправление: директива underscores_in_headers не разрешала
2322 подчёркивание в первом символе заголовка.
2323 Спасибо Piotr Sikora.
2324
2325 *) Исправление: cache manager мог нагружать процессор при выходе в
2326 nginx/Windows.
2327
2328 *) Исправление: при использовании ssl_session_cache с параметром shared
2329 рабочий процесс nginx/Windows завершался аварийно.
2330
2331 *) Исправление: в модуле ngx_http_spdy_module.
2332
2333
2334 Изменения в nginx 1.5.12 18.03.2014
2335
2336 *) Безопасность: при обработке специально созданного запроса модулем
2337 ngx_http_spdy_module могло происходить переполнение буфера в рабочем
2338 процессе, что потенциально могло приводить к выполнению произвольного
2339 кода (CVE-2014-0133).
2340 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
2341 Buenos Aires, Argentina.
2342
2343 *) Добавление: параметр proxy_protocol в директивах listen и
2344 real_ip_header, переменная $proxy_protocol_addr.
2345
2346 *) Исправление: в директиве fastcgi_next_upstream.
2347 Спасибо Lucas Molas.
2348
2349
2350 Изменения в nginx 1.5.11 04.03.2014
2351
2352 *) Безопасность: при обработке специально созданного запроса модулем
2353 ngx_http_spdy_module на 32-битных платформах могла повреждаться
2354 память рабочего процесса, что потенциально могло приводить к
2355 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
2356 1.5.10.
2357 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
2358 Buenos Aires, Argentina.
2359
2360 *) Добавление: переменная $ssl_session_reused.
2361
2362 *) Исправление: директива client_max_body_size могла не работать при
2363 чтении тела запроса с использованием chunked transfer encoding;
2364 ошибка появилась в 1.3.9.
2365 Спасибо Lucas Molas.
2366
2367 *) Исправление: при проксировании WebSocket-соединений в рабочем
2368 процессе мог произойти segmentation fault.
2369
2370 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2371 если использовался модуль ngx_http_spdy_module на 32-битных
2372 платформах; ошибка появилась в 1.5.10.
2373
2374 *) Исправление: значение переменной $upstream_status могло быть
2375 неверным, если использовались директивы proxy_cache_use_stale или
2376 proxy_cache_revalidate.
2377 Спасибо Piotr Sikora.
2378
2379 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2380 если ошибки с кодом 400 с помощью директивы error_page
2381 перенаправлялись в именованный location.
2382
2383 *) Исправление: nginx/Windows не собирался с Visual Studio 2013.
2384
2385
2386 Изменения в nginx 1.5.10 04.02.2014
2387
2388 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол
2389 SPDY 3.1.
2390 Спасибо Automattic и MaxCDN за спонсирование разработки.
2391
2392 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
2393 имеющие меньшую длину, чем запрошенная перемотка.
2394
2395 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2396 если переменная $ssl_session_id использовалась при логгировании;
2397 ошибка появилась в 1.5.9.
2398
2399 *) Исправление: переменные $date_local и $date_gmt использовали неверный
2400 формат вне модуля ngx_http_ssi_filter_module.
2401
2402 *) Исправление: клиентские соединения могли сразу закрываться, если
2403 использовался отложенный accept; ошибка появилась в 1.3.15.
2404
2405 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
2406 записывались в лог в процессе обновления исполняемого файла на Linux;
2407 ошибка появилась в 1.5.8.
2408 Спасибо Piotr Sikora.
2409
2410
2411 Изменения в nginx 1.5.9 22.01.2014
2412
2413 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
2414 закодированный URI.
2415
2416 *) Добавление: директива ssl_buffer_size.
2417
2418 *) Добавление: директиву limit_rate теперь можно использовать для
2419 ограничения скорости передачи ответов клиенту в SPDY-соединениях.
2420
2421 *) Добавление: директива spdy_chunk_size.
2422
2423 *) Добавление: директива ssl_session_tickets.
2424 Спасибо Dirkjan Bussink.
2425
2426 *) Исправление: переменная $ssl_session_id содержала всю сессию в
2427 сериализованном виде вместо её идентификатора.
2428 Спасибо Ivan Ristić.
2429
2430 *) Исправление: nginx неправильно обрабатывал закодированный символ "?"
2431 в команде SSI include.
2432
2433 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
2434 при обработке методов COPY и MOVE.
2435
2436 *) Исправление: resolver не понимал доменные имена с точкой в конце.
2437 Спасибо Yichun Zhang.
2438
2439 *) Исправление: при проксировании в логах могли появляться сообщения
2440 "zero size buf in output"; ошибка появилась в 1.3.9.
2441
2442 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2443 если использовался модуль ngx_http_spdy_module.
2444
2445 *) Исправление: при использовании методов обработки соединений select,
2446 poll и /dev/poll проксируемые WebSocket-соединения могли зависать
2447 сразу после открытия.
2448
2449 *) Исправление: директива xclient почтового прокси-сервера некорректно
2450 передавала IPv6-адреса.
2451
2452
2453 Изменения в nginx 1.5.8 17.12.2013
2454
2455 *) Добавление: теперь resolver поддерживает IPv6.
2456
2457 *) Добавление: директива listen поддерживает параметр fastopen.
2458 Спасибо Mathew Rodley.
2459
2460 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
2461 Спасибо Roberto De Ioris.
2462
2463 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
2464 Спасибо Evan Miller.
2465
2466 *) Исправление: при чтении тела запроса с использованием chunked
2467 transfer encoding по SSL-соединению мог произойти таймаут.
2468
2469 *) Исправление: директива master_process работала неправильно в
2470 nginx/Windows.
2471
2472 *) Исправление: параметр setfib директивы listen мог не работать.
2473
2474 *) Исправление: в модуле ngx_http_spdy_module.
2475
2476
2477 Изменения в nginx 1.5.7 19.11.2013
2478
2479 *) Безопасность: символ, следующий за незакодированным пробелом в строке
2480 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
2481 в 0.8.41.
2482 Спасибо Ivan Fratric из Google Security Team.
2483
2484 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии
2485 пароля понижен с уровня error до info.
2486
2487 *) Добавление: директивы proxy_cache_revalidate,
2488 fastcgi_cache_revalidate, scgi_cache_revalidate и
2489 uwsgi_cache_revalidate.
2490
2491 *) Добавление: директива ssl_session_ticket_key.
2492 Спасибо Piotr Sikora.
2493
2494 *) Исправление: директива "add_header Cache-Control ''" добавляла строку
2495 заголовка ответа "Cache-Control" с пустым значением.
2496
2497 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
2498 401 при использовании директив auth_request и auth_basic.
2499 Спасибо Jan Marc Hoffmann.
2500
2501 *) Исправление: параметры accept_filter и deferred директивы listen
2502 игнорировались для listen-сокетов, создаваемых в процессе обновления
2503 исполняемого файла.
2504 Спасибо Piotr Sikora.
2505
2506 *) Исправление: часть данных, полученных от бэкенда при
2507 небуферизированном проксировании, могла не отправляться клиенту
2508 сразу, если использовались директивы gzip или gunzip.
2509 Спасибо Yichun Zhang.
2510
2511 *) Исправление: в обработке ошибок в модуле
2512 ngx_http_gunzip_filter_module.
2513
2514 *) Исправление: ответы могли зависать, если использовался модуль
2515 ngx_http_spdy_module и директива auth_request.
2516
2517 *) Исправление: утечки памяти в nginx/Windows.
2518
2519
2520 Изменения в nginx 1.5.6 01.10.2013
2521
2522 *) Добавление: директива fastcgi_buffering.
2523
2524 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
2525 Спасибо Piotr Sikora.
2526
2527 *) Добавление: оптимизация SSL handshake при использовании длинных
2528 цепочек сертификатов.
2529
2530 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
2531
2532 *) Исправление: в модуле ngx_http_auth_basic_module при использовании
2533 метода шифрования паролей "$apr1$".
2534 Спасибо Markus Linnala.
2535
2536 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
2537 мог использоваться неверный location, если для задания location'ов
2538 использовались символы разных регистров.
2539
2540 *) Исправление: автоматическое перенаправление с добавлением
2541 завершающего слэша для проксированных location'ов могло не работать.
2542
2543 *) Исправление: в почтовом прокси-сервере.
2544
2545 *) Исправление: в модуле ngx_http_spdy_module.
2546
2547
2548 Изменения в nginx 1.5.5 17.09.2013
2549
2550 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
2551 определить протокол не удалось.
2552
2553 *) Добавление: директива disable_symlinks теперь использует O_PATH на
2554 Linux.
2555
2556 *) Добавление: для определения того, что клиент закрыл соединение, при
2557 использовании метода epoll теперь используются события EPOLLRDHUP.
2558
2559 *) Исправление: в директиве valid_referers при использовании параметра
2560 server_names.
2561
2562 *) Исправление: переменная $request_time не работала в nginx/Windows.
2563
2564 *) Исправление: в директиве image_filter.
2565 Спасибо Lanshun Zhou.
2566
2567 *) Исправление: совместимость с OpenSSL 1.0.1f.
2568 Спасибо Piotr Sikora.
2569
2570
2571 Изменения в nginx 1.5.4 27.08.2013
2572
2573 *) Изменение: MIME-тип для расширения js изменён на
2574 "application/javascript"; значение по умолчанию директивы
2575 charset_types изменено соответственно.
2576
2577 *) Изменение: теперь директива image_filter с параметром size возвращает
2578 ответ с MIME-типом "application/json".
2579
2580 *) Добавление: модуль ngx_http_auth_request_module.
2581
2582 *) Исправление: на старте или во время переконфигурации мог произойти
2583 segmentation fault, если использовалась директива try_files с пустым
2584 параметром.
2585
2586 *) Исправление: утечки памяти при использовании в директивах root и
2587 auth_basic_user_file относительных путей, заданных с помощью
2588 переменных.
2589
2590 *) Исправление: директива valid_referers неправильно выполняла
2591 регулярные выражения, если заголовок Referer начинался с "https://".
2592 Спасибо Liangbin Li.
2593
2594 *) Исправление: ответы могли зависать, если использовались подзапросы и
2595 при обработке подзапроса происходила ошибка во время SSL handshake с
2596 бэкендом.
2597 Спасибо Aviram Cohen.
2598
2599 *) Исправление: в модуле ngx_http_autoindex_module.
2600
2601 *) Исправление: в модуле ngx_http_spdy_module.
2602
2603
2604 Изменения в nginx 1.5.3 30.07.2013
2605
2606 *) Изменение во внутреннем API: теперь при небуферизированной работе с
2607 бэкендами u->length по умолчанию устанавливается в -1.
2608
2609 *) Изменение: теперь при получении неполного ответа от бэкенда nginx
2610 отправляет полученную часть ответа, после чего закрывает соединение с
2611 клиентом.
2612
2613 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2614 если использовался модуль ngx_http_spdy_module и директива
2615 client_body_in_file_only.
2616
2617 *) Исправление: параметр so_keepalive директивы listen мог работать
2618 некорректно на DragonFlyBSD.
2619 Спасибо Sepherosa Ziehau.
2620
2621 *) Исправление: в модуле ngx_http_xslt_filter_module.
2622
2623 *) Исправление: в модуле ngx_http_sub_filter_module.
2624
2625
2626 Изменения в nginx 1.5.2 02.07.2013
2627
2628 *) Добавление: теперь можно использовать несколько директив error_log.
2629
2630 *) Исправление: метод $r->header_in() встроенного перла не возвращал
2631 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
2632 ошибка появилась в 1.3.14.
2633
2634 *) Исправление: в модуле ngx_http_spdy_module.
2635 Спасибо Jim Radford.
2636
2637 *) Исправление: nginx не собирался на Linux при использовании x32 ABI.
2638 Спасибо Сергею Иванцову.
2639
2640
2641 Изменения в nginx 1.5.1 04.06.2013
2642
2643 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
2644 xslt_last_modified.
2645 Спасибо Алексею Колпакову.
2646
2647 *) Добавление: параметр http_403 в директивах proxy_next_upstream,
2648 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
2649
2650 *) Добавление: директивы allow и deny теперь поддерживают unix domain
2651 сокеты.
2652
2653 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
2654 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
2655
2656 *) Исправление: в директиве proxy_set_body.
2657 Спасибо Lanshun Zhou.
2658
2659 *) Исправление: в директиве lingering_time.
2660 Спасибо Lanshun Zhou.
2661
2662 *) Исправление: параметр fail_timeout директивы server в блоке upstream
2663 мог не работать, если использовался параметр max_fails; ошибка
2664 появилась в 1.3.0.
2665
2666 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2667 если использовалась директива ssl_stapling.
2668 Спасибо Piotr Sikora.
2669
2670 *) Исправление: в почтовом прокси-сервере.
2671 Спасибо Filipe Da Silva.
2672
2673 *) Исправление: nginx/Windows мог перестать принимать соединения, если
2674 использовалось несколько рабочих процессов.
2675
2676
2677 Изменения в nginx 1.5.0 07.05.2013
2678
2679 *) Безопасность: при обработке специально созданного запроса мог
2680 перезаписываться стек рабочего процесса, что могло приводить к
2681 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
2682 1.3.9.
2683 Спасибо Greg MacManus, iSIGHT Partners Labs.
2684
2685
2686 Изменения в nginx 1.4.0 24.04.2013
2687
2688 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2689 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
2690
2691 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
2692 ошибка появилась в 1.3.9.
2693
2694
2695 Изменения в nginx 1.3.16 16.04.2013
2696
2697 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2698 если использовались подзапросы; ошибка появилась в 1.3.9.
2699
2700 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
2701 WebSocket-соединений в unix domain сокет.
2702
2703 *) Исправление: переменная $upstream_response_length возвращала значение
2704 "0", если не использовалась буферизация.
2705 Спасибо Piotr Sikora.
2706
2707 *) Исправление: в методах обработки соединений eventport и /dev/poll.
2708
2709
2710 Изменения в nginx 1.3.15 26.03.2013
2711
2712 *) Изменение: открытие и закрытие соединения без отправки в нём
2713 каких-либо данных больше не записывается в access_log с кодом ошибки
2714 400.
2715
2716 *) Добавление: модуль ngx_http_spdy_module.
2717 Спасибо Automattic за спонсирование разработки.
2718
2719 *) Добавление: директивы limit_req_status и limit_conn_status.
2720 Спасибо Nick Marden.
2721
2722 *) Добавление: директива image_filter_interlace.
2723 Спасибо Ивану Боброву.
2724
2725 *) Добавление: переменная $connections_waiting в модуле
2726 ngx_http_stub_status_module.
2727
2728 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
2729
2730 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
2731 могло передаваться неправильно; ошибка появилась в 1.3.9.
2732 Спасибо Piotr Sikora.
2733
2734 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2735 1.3.9.
2736
2737 *) Исправление: ответы могли зависать, если использовались подзапросы и
2738 при обработке подзапроса происходила DNS-ошибка.
2739 Спасибо Lanshun Zhou.
2740
2741 *) Исправление: в процедуре учёта использования бэкендов.
2742
2743
2744 Изменения в nginx 1.3.14 05.03.2013
2745
2746 *) Добавление: переменные $connections_active, $connections_reading и
2747 $connections_writing в модуле ngx_http_stub_status_module.
2748
2749 *) Добавление: поддержка WebSocket-соединений в модулях
2750 ngx_http_uwsgi_module и ngx_http_scgi_module.
2751
2752 *) Исправление: в обработке виртуальных серверов при использовании SNI.
2753
2754 *) Исправление: при использовании директивы "ssl_session_cache shared"
2755 новые сессии могли не сохраняться, если заканчивалось место в
2756 разделяемой памяти.
2757 Спасибо Piotr Sikora.
2758
2759 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
2760 неправильно.
2761 Спасибо Neal Poole за спонсирование разработки.
2762
2763 *) Исправление: в модуле ngx_http_mp4_module.
2764 Спасибо Gernot Vormayr.
2765
2766
2767 Изменения в nginx 1.3.13 19.02.2013
2768
2769 *) Изменение: теперь для сборки по умолчанию используется компилятор с
2770 именем "cc".
2771
2772 *) Добавление: поддержка проксирования WebSocket-соединений.
2773 Спасибо Apcera и CloudBees за спонсирование разработки.
2774
2775 *) Добавление: директива auth_basic_user_file поддерживает шифрование
2776 паролей методом "{SHA}".
2777 Спасибо Louis Opter.
2778
2779
2780 Изменения в nginx 1.3.12 05.02.2013
2781
2782 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
2783 scgi_bind и uwsgi_bind поддерживают переменные.
2784
2785 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
2786 $time_local теперь можно использовать не только в директиве
2787 log_format.
2788 Спасибо Kiril Kalchev.
2789
2790 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
2791 Спасибо Gregor Kališnik.
2792
2793 *) Исправление: директива proxy_method работала неверно, если была
2794 указана на уровне http.
2795
2796 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2797 если использовался resolver и метод poll.
2798
2799 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
2800 бэкендом при использовании методов обработки соединений select, poll
2801 и /dev/poll.
2802
2803 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
2804
2805 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2806 1.3.9.
2807
2808 *) Исправление: в директиве fastcgi_keep_conn.
2809
2810
2811 Изменения в nginx 1.3.11 10.01.2013
2812
2813 *) Исправление: при записи в лог мог происходить segmentation fault;
2814 ошибка появилась в 1.3.10.
2815
2816 *) Исправление: директива proxy_pass не работала с IP-адресами без
2817 явного указания порта; ошибка появилась в 1.3.10.
2818
2819 *) Исправление: на старте или во время переконфигурации происходил
2820 segmentation fault, если директива keepalive была указана несколько
2821 раз в одном блоке upstream.
2822
2823 *) Исправление: параметр default директивы geo не определял значение по
2824 умолчанию для IPv6-адресов.
2825
2826
2827 Изменения в nginx 1.3.10 25.12.2012
2828
2829 *) Изменение: для указанных в конфигурационном файле доменных имён
2830 теперь используются не только IPv4, но и IPv6 адреса.
2831
2832 *) Изменение: теперь при использовании директивы include с маской на
2833 Unix-системах включаемые файлы сортируются в алфавитном порядке.
2834
2835 *) Изменение: директива add_header добавляет строки в ответы с кодом
2836 201.
2837
2838 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
2839 CIDR.
2840
2841 *) Добавление: параметры flush и gzip в директиве access_log.
2842
2843 *) Добавление: директива auth_basic поддерживает переменные.
2844
2845 *) Исправление: nginx в некоторых случаях не собирался с модулем
2846 ngx_http_perl_module.
2847
2848 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2849 если использовался модуль ngx_http_xslt_module.
2850
2851 *) Исправление: nginx мог не собираться на MacOSX.
2852 Спасибо Piotr Sikora.
2853
2854 *) Исправление: при использовании директивы limit_rate с большими
2855 значениями скорости на 32-битных системах ответ мог возвращаться не
2856 целиком.
2857 Спасибо Алексею Антропову.
2858
2859 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2860 если использовалась директива if.
2861 Спасибо Piotr Sikora.
2862
2863 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
2864 Request Entity Too Large".
2865
2866 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
2867 image_filter_sharpen могли наследоваться некорректно.
2868 Спасибо Ивану Боброву.
2869
2870 *) Исправление: при использовании директивы auth_basic под Linux могли
2871 возникать ошибки "crypt_r() failed".
2872
2873 *) Исправление: в обработке backup-серверов.
2874 Спасибо Thomas Chen.
2875
2876 *) Исправление: при проксировании HEAD-запросов мог возвращаться
2877 некорректный ответ, если использовалась директива gzip.
2878
2879
2880 Изменения в nginx 1.3.9 27.11.2012
2881
2882 *) Добавление: поддержка chunked transfer encoding при получении тела
2883 запроса.
2884
2885 *) Добавление: переменные $request_time и $msec теперь можно
2886 использовать не только в директиве log_format.
2887
2888 *) Исправление: cache manager и cache loader могли не запускаться, если
2889 использовалось более 512 listen-сокетов.
2890
2891 *) Исправление: в модуле ngx_http_dav_module.
2892
2893
2894 Изменения в nginx 1.3.8 30.10.2012
2895
2896 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
2897 Спасибо Михаилу Казанцеву и Eric O'Connor.
2898
2899 *) Добавление: переменные $bytes_sent, $connection и
2900 $connection_requests теперь можно использовать не только в директиве
2901 log_format.
2902 Спасибо Benjamin Grössing.
2903
2904 *) Добавление: параметр auto директивы worker_processes.
2905
2906 *) Исправление: сообщения "cache file ... has md5 collision".
2907
2908 *) Исправление: в модуле ngx_http_gunzip_filter_module.
2909
2910 *) Исправление: в директиве ssl_stapling.
2911
2912
2913 Изменения в nginx 1.3.7 02.10.2012
2914
2915 *) Добавление: поддержка OCSP stapling.
2916 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
2917
2918 *) Добавление: директива ssl_trusted_certificate.
2919
2920 *) Добавление: теперь resolver случайным образом меняет порядок
2921 возвращаемых закэшированных адресов.
2922 Спасибо Антону Жулину.
2923
2924 *) Исправление: совместимость с OpenSSL 0.9.7.
2925
2926
2927 Изменения в nginx 1.3.6 12.09.2012
2928
2929 *) Добавление: модуль ngx_http_gunzip_filter_module.
2930
2931 *) Добавление: директива memcached_gzip_flag.
2932
2933 *) Добавление: параметр always директивы gzip_static.
2934
2935 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
2936 Спасибо Charles Chen.
2937
2938 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
2939 использовался параметр --with-ipv6.
2940
2941
2942 Изменения в nginx 1.3.5 21.08.2012
2943
2944 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
2945 дорожки в форматах, отличных от H.264 и AAC.
2946
2947 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2948 если в директиве map в качестве значений использовались переменные.
2949
2950 *) Исправление: в рабочем процессе мог произойти segmentation fault при
2951 использовании директивы geo с параметром ranges, но без параметра
2952 default; ошибка появилась в 0.8.43.
2953 Спасибо Zhen Chen и Weibin Yao.
2954
2955 *) Исправление: в обработке параметра командной строки -p.
2956
2957 *) Исправление: в почтовом прокси-сервере.
2958
2959 *) Исправление: незначительных потенциальных ошибок.
2960 Спасибо Coverity.
2961
2962 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
2963 Спасибо HAYASHI Kentaro.
2964
2965
2966 Изменения в nginx 1.3.4 31.07.2012
2967
2968 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
2969 по умолчанию.
2970
2971 *) Добавление: поддержка компилятора Clang.
2972
2973 *) Исправление: могли создаваться лишние слушающие сокеты.
2974 Спасибо Роману Одайскому.
2975
2976 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
2977 рабочего процесса происходила ошибка.
2978 Спасибо Ricardo Villalobos Guevara.
2979
2980 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
2981 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
2982 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
2983 наследоваться некорректно.
2984
2985
2986 Изменения в nginx 1.3.3 10.07.2012
2987
2988 *) Добавление: поддержка entity tags и директива etag.
2989
2990 *) Исправление: при использовании директивы map с параметром hostnames
2991 не игнорировалась конечная точка в исходном значении.
2992
2993 *) Исправление: для обработки запроса мог использоваться неверный
2994 location, если переход в именованный location происходил после
2995 изменения URI с помощью директивы rewrite.
2996
2997
2998 Изменения в nginx 1.3.2 26.06.2012
2999
3000 *) Изменение: параметр single директивы keepalive теперь игнорируется.
3001
3002 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
3003 OpenSSL старее 1.0.0.
3004
3005 *) Добавление: директиву "ip_hash" теперь можно использовать для
3006 балансировки IPv6 клиентов.
3007
3008 *) Добавление: переменную $status теперь можно использовать не только в
3009 директиве log_format.
3010
3011 *) Исправление: при завершении рабочего процесса мог произойти
3012 segmentation fault, если использовалась директива resolver.
3013
3014 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3015 если использовался модуль ngx_http_mp4_module.
3016
3017 *) Исправление: в модуле ngx_http_mp4_module.
3018
3019 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3020 если использовались конфликтующие имена серверов с масками.
3021
3022 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
3023 сигналу SIGBUS.
3024
3025 *) Исправление: во время переконфигурации на HP-UX в лог записывался
3026 alert "sendmsg() failed (9: Bad file number)".
3027
3028
3029 Изменения в nginx 1.3.1 05.06.2012
3030
3031 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
3032 компонента URI и не разрешает URI, содержащие последовательность
3033 ":$".
3034 Спасибо Владимиру Кочеткову, Positive Research Center.
3035
3036 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
3037 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
3038
3039 *) Добавление: в директиве resolver теперь можно указывать порт и
3040 задавать IPv6-адреса DNS-серверов.
3041
3042 *) Добавление: директива least_conn в блоке upstream.
3043
3044 *) Добавление: при использовании директивы ip_hash теперь можно задавать
3045 веса серверов.
3046
3047 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3048 если использовалась директива image_filter; ошибка появилась в 1.3.0.
3049
3050 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
3051 появилась в 1.1.12.
3052
3053 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
3054 работать после переконфигурации.
3055 Спасибо Yichun Zhang.
3056
3057 *) Исправление: в модуле ngx_http_xslt_filter_module.
3058 Спасибо Kuramoto Eiji.
3059
3060 *) Исправление: утечки памяти при использовании переменной $geoip_org.
3061 Спасибо Денису Латыпову.
3062
3063 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
3064
3065
3066 Изменения в nginx 1.3.0 15.05.2012
3067
3068 *) Добавление: директива debug_connection теперь поддерживает
3069 IPv6-адреса и параметр "unix:".
3070
3071 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
3072 теперь поддерживают IPv6-адреса.
3073
3074 *) Добавление: директивы real_ip_recursive, geoip_proxy и
3075 geoip_proxy_recursive.
3076
3077 *) Добавление: параметр proxy_recursive директивы geo.
3078
3079 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3080 если использовалась директива resolver.
3081
3082 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3083 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
3084 и бэкенд возвращал некорректный ответ.
3085
3086 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3087 если использовалась директива rewrite и в новых аргументах запроса в
3088 строке замены использовались переменные.
3089
3090 *) Исправление: nginx мог нагружать процессор, если было достигнуто
3091 ограничение на количество открытых файлов.
3092
3093 *) Исправление: при использовании директивы proxy_next_upstream с
3094 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
3095 блоке upstream был хотя бы один сервер с флагом backup.
3096
3097 *) Исправление: при использовании директивы ip_hash установка параметра
3098 down директивы server могла приводить к ненужному перераспределению
3099 клиентов между бэкендами.
3100
3101 *) Исправление: утечки сокетов.
3102 Спасибо Yichun Zhang.
3103
3104 *) Исправление: в модуле ngx_http_fastcgi_module.
3105
3106
3107 Изменения в nginx 1.2.0 23.04.2012
3108
3109 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3110 если использовалась директива try_files; ошибка появилась в 1.1.19.
3111
3112 *) Исправление: ответ мог быть передан не полностью, если использовалось
3113 больше IOV_MAX буферов.
3114
3115 *) Исправление: в работе параметра crop директивы image_filter.
3116 Спасибо Maxim Bublis.
3117
3118
3119 Изменения в nginx 1.1.19 12.04.2012
3120
3121 *) Безопасность: при обработке специально созданного mp4 файла модулем
3122 ngx_http_mp4_module могли перезаписываться области памяти рабочего
3123 процесса, что могло приводить к выполнению произвольного кода
3124 (CVE-2012-2089).
3125 Спасибо Matthew Daley.
3126
3127 *) Исправление: nginx/Windows мог завершаться аварийно.
3128 Спасибо Vincent Lee.
3129
3130 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3131 были помечены флагом backup.
3132
3133 *) Исправление: директивы allow и deny могли наследоваться некорректно,
3134 если в них использовались IPv6 адреса.
3135
3136 *) Исправление: директивы modern_browser и ancient_browser могли
3137 наследоваться некорректно.
3138
3139 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
3140
3141 *) Исправление: в модуле ngx_http_mp4_module.
3142
3143
3144 Изменения в nginx 1.1.18 28.03.2012
3145
3146 *) Изменение: теперь keepalive соединения не запрещены для Safari по
3147 умолчанию.
3148
3149 *) Добавление: переменная $connection_requests.
3150
3151 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
3152 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
3153
3154 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
3155
3156 *) Добавление: директивы xslt_param и xslt_string_param.
3157 Спасибо Samuel Behan.
3158
3159 *) Исправление: в configure.
3160 Спасибо Piotr Sikora.
3161
3162 *) Исправление: в модуле ngx_http_xslt_filter_module.
3163
3164 *) Исправление: nginx не собирался на Debian GNU/Hurd.
3165
3166
3167 Изменения в nginx 1.1.17 15.03.2012
3168
3169 *) Безопасность: содержимое ранее освобождённой памяти могло быть
3170 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
3171 Спасибо Matthew Daley.
3172
3173 *) Исправление: при использовании встроенного перла из SSI.
3174 Спасибо Matthew Daley.
3175
3176 *) Исправление: в модуле ngx_http_uwsgi_module.
3177
3178
3179 Изменения в nginx 1.1.16 29.02.2012
3180
3181 *) Изменение: ограничение на количество одновременных подзапросов
3182 поднято до 200.
3183
3184 *) Добавление: параметр from в директиве disable_symlinks.
3185
3186 *) Добавление: директивы return и error_page теперь могут использоваться
3187 для возврата перенаправлений с кодом 307.
3188
3189 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3190 если использовалась директива resolver и на глобальном уровне не была
3191 задана директива error_log.
3192 Спасибо Роману Арутюняну.
3193
3194 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3195 если использовались директивы "proxy_http_version 1.1" или
3196 "fastcgi_keep_conn on".
3197
3198 *) Исправление: утечек памяти.
3199 Спасибо Lanshun Zhou.
3200
3201 *) Исправление: в директиве disable_symlinks.
3202
3203 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
3204 некорректно; ошибка появилась в 1.0.1.
3205
3206 *) Исправление: nginx не собирался компилятором icc 12.1.
3207
3208 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
3209 1.1.15.
3210
3211
3212 Изменения в nginx 1.1.15 15.02.2012
3213
3214 *) Добавление: директива disable_symlinks.
3215
3216 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
3217
3218 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
3219 prematurely closed connection" вместо "upstream sent too big header".
3220 Спасибо Feibo Li.
3221
3222 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
3223 использовался параметр --with-openssl.
3224
3225 *) Исправление: количество внутренних перенаправлений в именованные
3226 location'ы не ограничивалось.
3227
3228 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
3229 ошибкам в модуле ngx_http_gzip_filter_module.
3230
3231 *) Исправление: при использовании директивы proxy_store с
3232 SSI-подзапросами временные файлы могли не удаляться.
3233
3234 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
3235 $args) возвращали старое пустое закэшированное значение.
3236
3237 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3238 если одновременно создавалось слишком много SSI-подзапросов; ошибка
3239 появилась в 0.7.25.
3240
3241
3242 Изменения в nginx 1.1.14 30.01.2012
3243
3244 *) Добавление: теперь можно указать несколько ограничений limit_req
3245 одновременно.
3246
3247 *) Исправление: в обработке ошибок при соединении с бэкендом.
3248 Спасибо Piotr Sikora.
3249
3250 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
3251
3252 *) Исправление: в инициализации библиотеки OpenSSL.
3253
3254 *) Исправление: директивы proxy_redirect могли наследоваться
3255 некорректно.
3256
3257 *) Исправление: утечки памяти при переконфигурации, если использовалась
3258 директива pcre_jit.
3259
3260
3261 Изменения в nginx 1.1.13 16.01.2012
3262
3263 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
3264
3265 *) Исправление: параметры директивы limit_req наследовались некорректно;
3266 ошибка появилась в 1.1.12.
3267
3268 *) Исправление: директива proxy_redirect некорректно обрабатывала
3269 заголовок Refresh при использовании регулярных выражений.
3270
3271 *) Исправление: директива proxy_cache_use_stale с параметром error не
3272 возвращала ответ из кэша, если все бэкенды были признаны
3273 неработающими.
3274
3275 *) Исправление: директива worker_cpu_affinity могла не работать.
3276
3277 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
3278 1.1.12.
3279
3280 *) Исправление: в модуле ngx_http_mp4_module.
3281
3282
3283 Изменения в nginx 1.1.12 26.12.2011
3284
3285 *) Изменение: после перенаправления запроса с помощью директивы
3286 error_page директива proxy_pass без URI теперь использует изменённый
3287 URI.
3288 Спасибо Lanshun Zhou.
3289
3290 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
3291 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
3292
3293 *) Добавление: директива pcre_jit.
3294
3295 *) Добавление: SSI команда if поддерживает выделения в регулярных
3296 выражениях.
3297
3298 *) Исправление: SSI команда if не работала внутри команды block.
3299
3300 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
3301 могли не работать.
3302
3303 *) Исправление: директива limit_rate не позволяла передавать на полной
3304 скорости, даже если был указан очень большой лимит.
3305
3306 *) Исправление: директива sendfile_max_chunk не работала, если
3307 использовалась директива limit_rate.
3308
3309 *) Исправление: если в директиве proxy_pass использовались переменные и
3310 не был указан URI, всегда использовался URI исходного запроса.
3311
3312 *) Исправление: после перенаправления запроса с помощью директивы
3313 try_files директива proxy_pass без URI могла использовать URI
3314 исходного запроса.
3315 Спасибо Lanshun Zhou.
3316
3317 *) Исправление: в модуле ngx_http_scgi_module.
3318
3319 *) Исправление: в модуле ngx_http_mp4_module.
3320
3321 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
3322
3323
3324 Изменения в nginx 1.1.11 12.12.2011
3325
3326 *) Добавление: параметр so_keepalive в директиве listen.
3327 Спасибо Всеволоду Стахову.
3328
3329 *) Добавление: параметр if_not_empty в директивах
3330 fastcgi/scgi/uwsgi_param.
3331
3332 *) Добавление: переменная $https.
3333
3334 *) Добавление: директива proxy_redirect поддерживает переменные в первом
3335 параметре.
3336
3337 *) Добавление: директива proxy_redirect поддерживает регулярные
3338 выражения.
3339
3340 *) Исправление: переменная $sent_http_cache_control могла содержать
3341 неверное значение при использовании директивы expires.
3342 Спасибо Yichun Zhang.
3343
3344 *) Исправление: директива read_ahead могла не работать при использовании
3345 совместно с try_files и open_file_cache.
3346
3347 *) Исправление: если в параметре inactive директивы proxy_cache_path
3348 было указано малое время, в рабочем процессе мог произойти
3349 segmentation fault.
3350
3351 *) Исправление: ответы из кэша могли зависать.
3352
3353
3354 Изменения в nginx 1.1.10 30.11.2011
3355
3356 *) Исправление: при использовании AIO на Linux в рабочем процессе
3357 происходил segmentation fault; ошибка появилась в 1.1.9.
3358
3359
3360 Изменения в nginx 1.1.9 28.11.2011
3361
3362 *) Изменение: теперь двойные кавычки экранируется при выводе
3363 SSI-командой echo.
3364 Спасибо Зауру Абасмирзоеву.
3365
3366 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
3367 используется TTL, возвращённый DNS-сервером.
3368 Спасибо Кириллу Коринскому.
3369
3370 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
3371 завершался аварийно.
3372
3373 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3374 если использовалось SNI; ошибка появилась в 1.1.2.
3375
3376 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
3377 Спасибо Александру Усову.
3378
3379 *) Исправление: сигнал SIGWINCH переставал работать после первого
3380 обновления исполняемого файла; ошибка появилась в 1.1.1.
3381
3382 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
3383 заголовку Content-Length, не кэширутся.
3384
3385 *) Исправление: в директиве scgi_param при использовании составных
3386 параметров.
3387
3388 *) Исправление: в методе epoll.
3389 Спасибо Yichun Zhang.
3390
3391 *) Исправление: в модуле ngx_http_flv_module.
3392 Спасибо Piotr Sikora.
3393
3394 *) Исправление: в модуле ngx_http_mp4_module.
3395
3396 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
3397 заголовке Host.
3398
3399 *) Исправление: директивы add_header и expires не работали для ответов с
3400 кодом 206, если запрос проксировался.
3401
3402 *) Исправление: nginx не собирался на FreeBSD 10.
3403
3404 *) Исправление: nginx не собирался на AIX.
3405
3406
3407 Изменения в nginx 1.1.8 14.11.2011
3408
3409 *) Изменение: модуль ngx_http_limit_zone_module переименован в
3410 ngx_http_limit_conn_module.
3411
3412 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
3413 новым синтаксисом.
3414
3415 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
3416 уровне.
3417
3418 *) Добавление: директива image_filter_sharpen.
3419
3420 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3421 если resolver получил большой DNS-ответ.
3422 Спасибо Ben Hawkes.
3423
3424 *) Исправление: в вычислении ключа для кэширования, если использовалась
3425 внутренняя реализация MD5; ошибка появилась в 1.0.4.
3426
3427 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3428 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
3429 или не передаваться при выключенном кэшировании, если кэширование
3430 было включено в другой части конфигурации.
3431
3432 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
3433 "Content-Length" в заголовке ответа, использовался аргумент start.
3434 Спасибо Piotr Sikora.
3435
3436
3437 Изменения в nginx 1.1.7 31.10.2011
3438
3439 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
3440 Спасибо Кириллу Коринскому.
3441
3442 *) Исправление: на старте или во время переконфигурации происходил
3443 segmentation fault, если директива ssl использовалась на уровне http
3444 и не был указан ssl_certificate.
3445
3446 *) Исправление: уменьшено потребление памяти при проксировании больших
3447 файлов, если они буферизировались на диск.
3448
3449 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3450 если использовалась директива "proxy_http_version 1.1".
3451
3452 *) Исправление: в директиве "expires @time".
3453
3454
3455 Изменения в nginx 1.1.6 17.10.2011
3456
3457 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
3458 именованный location контексты модулей очищаются.
3459 По запросу Yichun Zhang.
3460
3461 *) Изменение: теперь если сервер, описанный в блоке upstream, был
3462 признан неработающим, то после истечения fail_timeout на него будет
3463 отправлен только один запрос; сервер будет считаться работающим, если
3464 успешно ответит на этот запрос.
3465
3466 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
3467 \xXX.
3468
3469 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
3470 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
3471 X-Accel-Charset.
3472
3473 *) Добавление: уменьшение потребления памяти при использовании SSL.
3474
3475 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
3476 Спасибо Алексею Куцу.
3477
3478 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
3479 уровне server, применялись повторно, если для запроса не находилось
3480 ни одного location'а.
3481
3482 *) Исправление: при использовании "aio sendfile" могла происходить
3483 утечка сокетов.
3484
3485 *) Исправление: при использовании файлового AIO соединения с быстрыми
3486 клиентами могли быть закрыты по истечению send_timeout.
3487
3488 *) Исправление: в модуле ngx_http_autoindex_module.
3489
3490 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
3491 32-битных платформах.
3492
3493
3494 Изменения в nginx 1.1.5 05.10.2011
3495
3496 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
3497 Спасибо Peter Smit.
3498
3499 *) Исправление: при использовании proxy_cache_bypass могли быть
3500 закэшированы некэшируемые ответы.
3501 Спасибо John Ferlito.
3502
3503 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
3504 HTTP/1.1.
3505
3506 *) Исправление: закэшированные ответы с пустым телом возвращались
3507 некорректно; ошибка появилась в 0.8.31.
3508
3509 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
3510 некорректны; ошибка появилась в 0.8.32.
3511
3512 *) Исправление: в директиве return.
3513
3514 *) Исправление: при использовании директивы "ssl_session_cache builtin"
3515 происходил segmentation fault; ошибка появилась в 1.1.1.
3516
3517
3518 Изменения в nginx 1.1.4 20.09.2011
3519
3520 *) Добавление: модуль ngx_http_upstream_keepalive.
3521
3522 *) Добавление: директива proxy_http_version.
3523
3524 *) Добавление: директива fastcgi_keep_conn.
3525
3526 *) Добавление: директива worker_aio_requests.
3527
3528 *) Исправление: если nginx был собран с файловым AIO, он не мог
3529 запускаться на Linux без поддержки AIO.
3530
3531 *) Исправление: в обработке ошибок при работе с Linux AIO.
3532 Спасибо Hagai Avrahami.
3533
3534 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
3535
3536 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
3537 MP4-атом co64.
3538
3539
3540 Изменения в nginx 1.1.3 14.09.2011
3541
3542 *) Добавление: модуль ngx_http_mp4_module.
3543
3544 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
3545
3546 *) Исправление: open_file_cache не обновлял информацию о файле, если
3547 файл был изменён не атомарно.
3548
3549 *) Исправление: nginx не собирался на MacOSX 10.7.
3550
3551
3552 Изменения в nginx 1.1.2 05.09.2011
3553
3554 *) Изменение: теперь, если суммарный размер всех диапазонов больше
3555 размера исходного ответа, то nginx возвращает только исходный ответ,
3556 не обрабатывая диапазоны.
3557
3558 *) Добавление: директива max_ranges.
3559
3560 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
3561 ssl_prefer_server_cipher могли работать некорректно, если
3562 использовался SNI.
3563
3564 *) Исправление: в директивах proxy/fastcgi/scgi/
3565 uwsgi_ignore_client_abort.
3566
3567
3568 Изменения в nginx 1.1.1 22.08.2011
3569
3570 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
3571 число файлов, указанное в параметре load_files, либо работает не
3572 дольше времени, указанного в параметре loader_threshold.
3573
3574 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
3575
3576 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3577 на Solaris.
3578 Спасибо Денису Иванову.
3579
3580 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
3581
3582 *) Исправление: nginx не собирался на Linux 3.0.
3583
3584 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
3585 появилась в 1.1.0.
3586
3587 *) Исправление: обработка тела запроса могла быть неверной, если клиент
3588 использовал pipelining.
3589
3590 *) Исправление: в директиве request_body_in_single_buf.
3591
3592 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
3593 при использовании SSL-соединения с бэкендом.
3594
3595 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3596 были помечены флагом down.
3597
3598 *) Исправление: при переконфигурации мог произойти segmentation fault,
3599 если в предыдущей конфигурации был определён, но не использовался
3600 ssl_session_cache.
3601
3602 *) Исправление: при использовании большого количества backup-серверов в
3603 рабочем процессе мог произойти segmentation fault.
3604
3605 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
3606 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
3607 произойти segmentation fault; ошибка появилась в 0.8.40.
3608
3609
3610 Изменения в nginx 1.1.0 01.08.2011
3611
3612 *) Добавление: уменьшение времени работы загрузчика кэша.
3613
3614 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
3615 директив proxy/fastcgi/scgi/uwsgi_cache_path.
3616
3617 *) Добавление: уменьшение времени загрузки конфигураций с большим
3618 количеством HTTPS серверов.
3619
3620 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
3621 Спасибо Adrian Kotelba.
3622
3623 *) Добавление: директива lingering_close.
3624 Спасибо Максиму Дунину.
3625
3626 *) Исправление: закрытия соединения для pipelined-запросов.
3627 Спасибо Максиму Дунину.
3628
3629 *) Исправление: nginx не запрещал сжатие при получении значения
3630 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
3631
3632 *) Исправление: таймаута при небуферизированном проксировании.
3633 Спасибо Максиму Дунину.
3634
3635 *) Исправление: утечки памяти при использовании переменных в директиве
3636 proxy_pass при работе с бэкендом по HTTPS.
3637 Спасибо Максиму Дунину.
3638
3639 *) Исправление: в проверке параметра директивы proxy_pass, заданного
3640 переменными.
3641 Спасибо Lanshun Zhou.
3642
3643 *) Исправление: SSL не работал на QNX.
3644 Спасибо Максиму Дунину.
3645
3646 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
3647 --with-debug.
3648
3649
3650 Изменения в nginx 1.0.5 19.07.2011
3651
3652 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3653 "HIGH:!aNULL:!MD5".
3654 Спасибо Rob Stradling.
3655
3656 *) Добавление: директивы referer_hash_max_size и
3657 referer_hash_bucket_size.
3658 Спасибо Witold Filipczyk.
3659
3660 *) Добавление: переменная $uid_reset.
3661
3662 *) Исправление: при использовании кэширования в рабочем процессе мог
3663 произойти segmentation fault.
3664 Спасибо Lanshun Zhou.
3665
3666 *) Исправление: при использовании кэширования рабочие процессы могли
3667 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3668 Спасибо Максиму Дунину.
3669
3670 *) Исправление: сообщения "stalled cache updating".
3671 Спасибо Максиму Дунину.
3672
3673
3674 Изменения в nginx 1.0.4 01.06.2011
3675
3676 *) Изменение: теперь в регулярных выражениях в директиве map можно
3677 задать чувствительность к регистру с помощью префиксов "~" и "~*".
3678
3679 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3680 на Linux.
3681 Спасибо Денису Латыпову.
3682
3683 *) Исправление: сообщения "stalled cache updating".
3684
3685 *) Исправление: nginx не собирался с параметром
3686 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
3687
3688
3689 Изменения в nginx 1.0.3 25.05.2011
3690
3691 *) Добавление: директива auth_basic_user_file поддерживает шифрование
3692 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
3693 Спасибо Максиму Дунину.
3694
3695 *) Добавление: директива geoip_org и переменная $geoip_org.
3696 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
3697
3698 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
3699 поддерживают адреса IPv4, отображённые на IPv6 адреса.
3700
3701 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
3702 рабочем процессе происходил segmentation fault, если директивы access
3703 или deny были определены только для адресов IPv6; ошибка появилась в
3704 0.8.22.
3705
3706 *) Исправление: закэшированный ответ мог быть испорчен, если значения
3707 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
3708 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
3709
3710
3711 Изменения в nginx 1.0.2 10.05.2011
3712
3713 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
3714
3715 *) Исправление: в работе параметра rotate директивы image_filter.
3716 Спасибо Adam Bocim.
3717
3718 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
3719
3720
3721 Изменения в nginx 1.0.1 03.05.2011
3722
3723 *) Изменение: теперь директива split_clients использует алгоритм
3724 MurmurHash2 из-за лучшего распределения.
3725 Спасибо Олегу Мамонтову.
3726
3727 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
3728 ложными значениями.
3729 Спасибо Максиму Дунину.
3730
3731 *) Изменение: теперь по умолчанию nginx использует значение 511 для
3732 listen backlog на Linux.
3733
3734 *) Добавление: переменные $upstream_... можно использовать в SSI и
3735 перловом модулях.
3736
3737 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
3738 Спасибо Олегу Мамонтову.
3739
3740 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
3741 segmentation fault; ошибка появилась в 0.8.22.
3742 Спасибо Максиму Дунину.
3743
3744 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
3745
3746 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
3747 появилась в 0.9.3.
3748 Спасибо Dagobert Michelsen.
3749
3750 *) Исправление: переменная $request_time имела неверные значения, если
3751 использовались подзапросы; ошибка появилась в 0.8.47.
3752 Спасибо Игорю А. Валькову.
3753
3754
3755 Изменения в nginx 1.0.0 12.04.2011
3756
3757 *) Исправление: cache manager мог нагружать процессор после
3758 переконфигурации.
3759 Спасибо Максиму Дунину.
3760
3761 *) Исправление: директива "image_filter crop" неправильно работала в
3762 сочетании с "image_filter rotate 180".
3763
3764 *) Исправление: директива "satisfy any" запрещала выдачу
3765 пользовательской страницы для 401 кода.
3766
3767
3768 Изменения в nginx 0.9.7 04.04.2011
3769
3770 *) Добавление: теперь соединения в состоянии keepalive могут быть
3771 закрыты преждевременно, если у воркера нет свободных соединений.
3772 Спасибо Максиму Дунину.
3773
3774 *) Добавление: параметр rotate директивы image_filter.
3775 Спасибо Adam Bocim.
3776
3777 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
3778 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
3779 upstream.
3780
3781
3782 Изменения в nginx 0.9.6 21.03.2011
3783
3784 *) Добавление: директива map поддерживает регулярные выражения в
3785 качестве значения первого параметра.
3786
3787 *) Добавление: переменная $time_iso8601 для access_log.
3788 Спасибо Michael Lustfield.
3789
3790
3791 Изменения в nginx 0.9.5 21.02.2011
3792
3793 *) Изменение: теперь по умолчанию nginx использует значение -1 для
3794 listen backlog на Linux.
3795 Спасибо Андрею Нигматулину.
3796
3797 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
3798 Спасибо Денису Латыпову.
3799
3800 *) Исправление: исправление в умолчательной директиве proxy_redirect,
3801 если в директиве proxy_pass не был описан URI.
3802 Спасибо Максиму Дунину.
3803
3804 *) Исправление: директива error_page не работала с нестандартными кодами
3805 ошибок; ошибка появилась в 0.8.53.
3806 Спасибо Максиму Дунину.
3807
3808
3809 Изменения в nginx 0.9.4 21.01.2011
3810
3811 *) Добавление: директива server_name поддерживает переменную $hostname.
3812
3813 *) Добавление: 494 код для ошибки "Request Header Too Large".
3814
3815
3816 Изменения в nginx 0.9.3 13.12.2010
3817
3818 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
3819 то выделения в регулярных выражениях в директиве server_name не
3820 работали.
3821
3822 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
3823 0.9.0.
3824
3825
3826 Изменения в nginx 0.9.2 06.12.2010
3827
3828 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
3829 запроса клиента.
3830
3831 *) Изменение: использование accept(), если accept4() не реализован;
3832 ошибка появилась в 0.9.0.
3833
3834 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
3835
3836 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
3837 Спасибо Максиму Дунину.
3838
3839
3840 Изменения в nginx 0.9.1 30.11.2010
3841
3842 *) Исправление: директивы вида "return CODE message" не работали; ошибка
3843 появилась в 0.9.0.
3844
3845
3846 Изменения в nginx 0.9.0 29.11.2010
3847
3848 *) Добавление: директива keepalive_disable.
3849
3850 *) Добавление: директива map поддерживает переменные в качестве значения
3851 определяемой переменной.
3852
3853 *) Добавление: директива map поддерживает пустые строки в качестве
3854 значения первого параметра.
3855
3856 *) Добавление: директива map поддерживает выражения в первом параметре.
3857
3858 *) Добавление: страница руководства nginx(8).
3859 Спасибо Сергею Осокину.
3860
3861 *) Добавление: поддержка accept4() в Linux.
3862 Спасибо Simon Liu.
3863
3864 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
3865 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
3866
3867 *) Исправление: при использовании директивы auth_basic в рабочем
3868 процессе мог произойти segmentation fault.
3869 Спасибо Михаилу Лалетину.
3870
3871 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
3872 появилась в 0.8.42.
3873
3874
3875 Изменения в nginx 0.8.53 18.10.2010
3876
3877 *) Добавление: теперь директива error_page позволяет менять код статуса
3878 у редиректа.
3879
3880 *) Добавление: директива gzip_disable поддерживает специальную маску
3881 degradation.
3882
3883 *) Исправление: при использовании файлового AIO могла происходить утечка
3884 сокетов.
3885 Спасибо Максиму Дунину.
3886
3887 *) Исправление: если в первом сервере не была описана директива listen и
3888 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
3889 становился следующий сервер с директивой listen; ошибка появилась в
3890 0.8.21.
3891
3892
3893 Изменения в nginx 0.8.52 28.09.2010
3894
3895 *) Исправление: nginx использовал режим SSL для listen сокета, если для
3896 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
3897
3898
3899 Изменения в nginx 0.8.51 27.09.2010
3900
3901 *) Изменение: директива secure_link_expires упразднена.
3902
3903 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
3904 alert на error.
3905
3906 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
3907 несколько раз.
3908
3909
3910 Изменения в nginx 0.8.50 02.09.2010
3911
3912 *) Добавление: директивы secure_link, secure_link_md5 и
3913 secure_link_expires модуля ngx_http_secure_link_module.
3914
3915 *) Добавление: ключ -q.
3916 Спасибо Геннадию Махомеду.
3917
3918 *) Исправление: при использовании кэширования рабочие процессы и могли
3919 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3920
3921 *) Исправление: в директиве gzip_disable.
3922 Спасибо Derrick Petzold.
3923
3924 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
3925 reopen, reload процессу, запущенному в другой сессии.
3926
3927
3928 Изменения в nginx 0.8.49 09.08.2010
3929
3930 *) Добавление: директива image_filter_jpeg_quality поддерживает
3931 переменные.
3932
3933 *) Исправление: при использовании переменной $geoip_region_name в
3934 рабочем процессе мог произойти segmentation fault; ошибка появилась в
3935 0.8.48.
3936
3937 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
3938 следующего запроса; ошибка появилась в 0.8.48.
3939
3940
3941 Изменения в nginx 0.8.48 03.08.2010
3942
3943 *) Изменение: теперь по умолчанию директива server_name имеет значение
3944 пустое имя "".
3945 Спасибо Геннадию Махомеду.
3946
3947 *) Изменение: теперь по умолчанию директива server_name_in_redirect
3948 имеет значение off.
3949
3950 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
3951 $geoip_region_name.
3952 Спасибо Christine McGonagle.
3953
3954 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
3955 scgi_pass не наследовались в блоки limit_except.
3956
3957 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
3958 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
3959 появилась в 0.8.46.
3960
3961 *) Исправление: директива fastcgi_split_path_info неверно использовала
3962 выделения, если в выделения попадала только часть URI.
3963 Спасибо Юрию Тарадаю и Frank Enderle.
3964
3965 *) Исправление: директива rewrite не экранировала символ ";" при
3966 копировании из URI в аргументы.
3967 Спасибо Daisuke Murase.
3968
3969 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
3970 если изображение было больше размера image_filter_buffer.
3971
3972
3973 Изменения в nginx 0.8.47 28.07.2010
3974
3975 *) Исправление: переменная $request_time имела неверные значения для
3976 подзапросов.
3977
3978 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
3979
3980 *) Исправление: если использовался параметр max_size, то cache manager
3981 мог зациклиться; ошибка появилась в 0.8.46.
3982
3983
3984 Изменения в nginx 0.8.46 19.07.2010
3985
3986 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
3987 и scgi_no_cache теперь влияют только на сохранение закэшированного
3988 ответа.
3989
3990 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
3991 uwsgi_cache_bypass и scgi_cache_bypass.
3992
3993 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
3994 ошибки работы с бэкендом: память освобождалась только по истечении
3995 времени неактивности или при недостатке памяти.
3996
3997
3998 Изменения в nginx 0.8.45 13.07.2010
3999
4000 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
4001 Спасибо Laurence Rowe.
4002
4003 *) Исправление: ответ SSI модуля мог передаваться не полностью после
4004 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
4005 Спасибо Максиму Дунину.
4006
4007 *) Исправление: директива listen не поддерживала параметр setfib=0.
4008
4009
4010 Изменения в nginx 0.8.44 05.07.2010
4011
4012 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
4013 заголовке которых есть строка "Set-Cookie".
4014
4015 *) Добавление: директива listen поддерживает параметр setfib.
4016 Спасибо Андрею Филонову.
4017
4018 *) Исправление: директива sub_filter могла изменять регистр букв при
4019 частичном совпадении.
4020
4021 *) Исправление: совместимость с HP/UX.
4022
4023 *) Исправление: совместимость с компилятором AIX xlC_r.
4024
4025 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
4026 запросы.
4027 Спасибо Miroslaw Jaworski.
4028
4029
4030 Изменения в nginx 0.8.43 30.06.2010
4031
4032 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
4033
4034 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
4035 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
4036 0.8.42.
4037
4038 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
4039 переконфигурации.
4040 Спасибо Максиму Дунину.
4041
4042 *) Исправление: переменную $uid_set можно использовать на любой стадии
4043 обработки запроса.
4044
4045
4046 Изменения в nginx 0.8.42 21.06.2010
4047
4048 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
4049 выражениями, если запрос полностью совпал с location'ом, заданным
4050 строкой префикса. Предыдущее поведение появилось в 0.7.1.
4051
4052 *) Добавление: модуль ngx_http_scgi_module.
4053 Спасибо Manlio Perillo.
4054
4055 *) Добавление: в директиве return можно добавлять текст ответа.
4056
4057
4058 Изменения в nginx 0.8.41 15.06.2010
4059
4060 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
4061 при запросе файла с неверной кодировкой UTF-8.
4062
4063 *) Изменение: теперь nginx разрешает использовать пробелы в строке
4064 запроса.
4065
4066 *) Исправление: директива proxy_redirect неправильно изменяла строку
4067 "Refresh" в заголовке ответа бэкенда.
4068 Спасибо Андрею Андрееву и Максиму Согину.
4069
4070 *) Исправление: nginx не поддерживал путь без имени хоста в строке
4071 "Destination" в заголовке запроса.
4072
4073
4074 Изменения в nginx 0.8.40 07.06.2010
4075
4076 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
4077 умолчанию.
4078 Спасибо Jose Antonio Vazquez Gonzalez.
4079
4080 *) Добавление: модуль ngx_http_uwsgi_module.
4081 Спасибо Roberto De Ioris.
4082
4083 *) Добавление: директива fastcgi_param со значением, начинающимся со
4084 строки "HTTP_", изменяет строку заголовка в запросе клиента.
4085
4086 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4087 заголовке запроса клиента передавались FastCGI-серверу при
4088 кэшировании.
4089
4090 *) Исправление: listen unix domain сокет нельзя было изменить во время
4091 переконфигурации.
4092 Спасибо Максиму Дунину.
4093
4094
4095 Изменения в nginx 0.8.39 31.05.2010
4096
4097 *) Исправление: наследуемая директива alias неправильно работала во
4098 вложенном location'е.
4099
4100 *) Исправление: в комбинации директив alias с переменными и try_files;
4101
4102 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
4103 время обновления без перерыва.
4104 Спасибо Максиму Дунину.
4105
4106
4107 Изменения в nginx 0.8.38 24.05.2010
4108
4109 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
4110
4111 *) Добавление: теперь при использовании переменной $scheme в директиве
4112 rewrite автоматически делается редирект.
4113 Спасибо Piotr Sikora.
4114
4115 *) Исправление: теперь задержки в директиве limit_req соответствует
4116 описанному алгоритму.
4117 Спасибо Максиму Дунину.
4118
4119 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
4120 перловом модулях.
4121
4122
4123 Изменения в nginx 0.8.37 17.05.2010
4124
4125 *) Добавление: модуль ngx_http_split_clients_module.
4126
4127 *) Добавление: директива map поддерживает ключи больше 255 символов.
4128
4129 *) Исправление: nginx игнорировал значения "private" и "no-store" в
4130 строке "Cache-Control" в заголовке ответа бэкенда.
4131
4132 *) Исправление: параметр stub в SSI-директиве include не использовался,
4133 если пустой ответ имел код 200.
4134
4135 *) Исправление: если проксированный или FastCGI запрос внутренне
4136 перенаправлялся в другой проксированный или FastCGI location, то в
4137 рабочем процессе мог произойти segmentation fault; ошибка появилась в
4138 0.8.33.
4139 Спасибо Yichun Zhang.
4140
4141 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
4142 таймаута.
4143 Спасибо Alan Batie.
4144
4145
4146 Изменения в nginx 0.8.36 22.04.2010
4147
4148 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
4149 методы DELETE, COPY и MOVE для симлинков.
4150
4151 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
4152 основном запросе значения переменных $query_string, $arg_... и им
4153 подобных.
4154
4155 *) Исправление: значение переменной повторно экранировалось после
4156 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
4157
4158 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
4159 Спасибо Vicente Aguilar и Максиму Дунину.
4160
4161 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
4162 Спасибо Максиму Дунину.
4163
4164 *) Исправление: nginx не собирался с параметром --without-http-cache;
4165 ошибка появилась в 0.8.35.
4166
4167
4168 Изменения в nginx 0.8.35 01.04.2010
4169
4170 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
4171
4172 *) Добавление: директива chunked_transfer_encoding.
4173
4174 *) Исправление: символ "&" при копировании в аргументы в правилах
4175 rewrite не экранировался.
4176
4177 *) Исправление: nginx мог завершаться аварийно во время обработки
4178 сигнала или при использовании директивы timer_resolution на
4179 платформах, не поддерживающих методы kqueue или eventport.
4180 Спасибо George Xie и Максиму Дунину.
4181
4182 *) Исправление: если временные файлы и постоянное место хранения
4183 располагались на разных файловых системах, то у постоянных файлов
4184 время изменения было неверным.
4185 Спасибо Максиму Дунину.
4186
4187 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
4188 "memcached sent invalid trailer".
4189 Спасибо Максиму Дунину.
4190
4191 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
4192 текстов.
4193 Спасибо Максиму Дунину.
4194
4195 *) Исправление: в рабочем процессе происходил segmentation fault, если
4196 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
4197 появилась в 0.8.34.
4198 Спасибо Максиму Дунину.
4199
4200
4201 Изменения в nginx 0.8.34 03.03.2010
4202
4203 *) Исправление: nginx не поддерживал все шифры, используемые в
4204 клиентских сертификатах.
4205 Спасибо Иннокентию Еникееву.
4206
4207 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
4208 ответом было много вывода в stderr.
4209
4210 *) Исправление: nginx не поддерживал HTTPS-рефереры.
4211
4212 *) Исправление: nginx/Windows мог не находить файлы, если путь в
4213 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
4214
4215 *) Исправление: переменная $date_local выдавала неверное время, если
4216 использовался формат "%s".
4217 Спасибо Максиму Дунину.
4218
4219 *) Исправление: если ssl_session_cache не был установлен или установлен
4220 в none, то при проверке клиентского сертификаты могла происходить
4221 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
4222
4223 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
4224 диапазон включал в себя одну и более сетей размером /16 и не
4225 начинался на границе сети размером /16.
4226
4227 *) Исправление: блок, используемый в параметре stub в SSI-директиве
4228 include, выводился с MIME-типом "text/plain".
4229
4230 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
4231
4232
4233 Изменения в nginx 0.8.33 01.02.2010
4234
4235 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
4236 Спасибо Dan Crowley, Core Security Technologies.
4237
4238 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
4239 Спасибо Dan Crowley, Core Security Technologies.
4240
4241 *) Изменение: теперь keepalive соединения после запросов POST не
4242 запрещаются для MSIE 7.0+.
4243 Спасибо Adam Lounds.
4244
4245 *) Изменение: теперь keepalive соединения запрещены для Safari.
4246 Спасибо Joshua Sierles.
4247
4248 *) Исправление: если проксированный или FastCGI запрос внутренне
4249 перенаправлялся в другой проксированный или FastCGI location, то
4250 переменная $upstream_response_time могла иметь ненормально большое
4251 значение; ошибка появилась в 0.8.7.
4252
4253 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4254 отбрасывания тела запроса; ошибка появилась в 0.8.11.
4255
4256
4257 Изменения в nginx 0.8.32 11.01.2010
4258
4259 *) Исправление: ошибки при использовании кодировки UTF-8 в
4260 ngx_http_autoindex_module.
4261 Спасибо Максиму Дунину.
4262
4263 *) Исправление: именованные выделения в регулярных выражениях работали
4264 только для двух переменных.
4265 Спасибо Максиму Дунину.
4266
4267 *) Исправление: теперь в строке заголовка запроса "Host" используется
4268 имя "localhost", если в директиве auth_http указан unix domain сокет.
4269 Спасибо Максиму Дунину.
4270
4271 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
4272 ответов.
4273 Спасибо Julian Reich.
4274
4275 *) Исправление: если директива "expires modified" выставляла дату в
4276 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
4277 отрицательное число.
4278 Спасибо Алексею Капранову.
4279
4280
4281 Изменения в nginx 0.8.31 23.12.2009
4282
4283 *) Добавление: теперь директива error_page может перенаправлять ответы
4284 со статусом 301 и 302.
4285
4286 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
4287 $geoip_longitude.
4288 Спасибо Arvind Sundararajan.
4289
4290 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
4291 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
4292
4293 *) Исправление: nginx закрывал соединение при запросе закэшированного
4294 ответа с пустым телом.
4295 Спасибо Piotr Sikora.
4296
4297 *) Исправление: nginx мог не собираться gcc 4.x при использовании
4298 оптимизации -O2 и выше.
4299 Спасибо Максиму Дунину и Денису Латыпову.
4300
4301 *) Исправление: регулярные выражения в location всегда тестировались с
4302 учётом регистра; ошибка появилась в 0.8.25.
4303
4304 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
4305 проксируемого запроса была строка "If-None-Match".
4306 Спасибо Tim Dettrick и David Kostal.
4307
4308 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
4309 перезаписи уже существующего файла.
4310
4311
4312 Изменения в nginx 0.8.30 15.12.2009
4313
4314 *) Изменение: теперь по умолчанию размер буфера директивы
4315 large_client_header_buffers равен 8K.
4316 Спасибо Andrew Cholakian.
4317
4318 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
4319
4320 *) Исправление: nginx/Windows пытался дважды переименовать временный
4321 файл при перезаписи уже существующего файла.
4322
4323 *) Исправление: ошибки double free or corruption, возникающей, если имя
4324 хоста не было найдено; ошибка появилась в 0.8.22.
4325 Спасибо Константину Свисту.
4326
4327 *) Исправление: в использовании libatomic на некоторых платформах.
4328 Спасибо W-Mark Kubacki.
4329
4330
4331 Изменения в nginx 0.8.29 30.11.2009
4332
4333 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
4334 ответа "009".
4335
4336 *) Добавление: директивы addition_types, charset_types, gzip_types,
4337 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
4338
4339 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
4340 Спасибо W-Mark Kubacki.
4341
4342 *) Добавление: параметр --with-libatomic[=DIR] в configure.
4343 Спасибо W-Mark Kubacki.
4344
4345 *) Исправление: listen unix domain сокет имели ограниченные права
4346 доступа.
4347
4348 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
4349 обрабатывались.
4350
4351 *) Исправление: именованные выделения в регулярных выражениях, заданные
4352 как "?P<...>", не работали в директиве server_name.
4353 Спасибо Максиму Дунину.
4354
4355
4356 Изменения в nginx 0.8.28 23.11.2009
4357
4358 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
4359 появилась в 0.8.25.
4360
4361
4362 Изменения в nginx 0.8.27 17.11.2009
4363
4364 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
4365 появилась в 0.8.25.
4366
4367
4368 Изменения в nginx 0.8.26 16.11.2009
4369
4370 *) Исправление: ошибки при использовании выделений в директиве rewrite;
4371 ошибка появилась в 0.8.25.
4372
4373 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4374 появилась в 0.8.25.
4375
4376
4377 Изменения в nginx 0.8.25 16.11.2009
4378
4379 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
4380 не найдена с помощью метода $r->variable().
4381
4382 *) Добавление: модуль ngx_http_degradation_module.
4383
4384 *) Добавление: именованные выделения в регулярных выражениях.
4385
4386 *) Добавление: теперь при использовании переменных в директиве
4387 proxy_pass не требуется задавать URI.
4388
4389 *) Добавление: теперь директива msie_padding работает и для Chrome.
4390
4391 *) Исправление: в рабочем процессе происходил segmentation fault при
4392 недостатке памяти; ошибка появилась в 0.8.18.
4393
4394 *) Исправление: nginx передавал сжатые ответы клиентам, не
4395 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
4396 ошибка появилась в 0.8.16.
4397
4398
4399 Изменения в nginx 0.8.24 11.11.2009
4400
4401 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
4402 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
4403
4404 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4405 появилась в 0.8.23.
4406
4407 *) Исправление: параметр "unix:" в директиве set_real_ip_from
4408 неправильно наследовался с предыдущего уровня.
4409
4410 *) Исправление: в resolver'е при определении пустого имени.
4411
4412
4413 Изменения в nginx 0.8.23 11.11.2009
4414
4415 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
4416 Спасибо Максиму Дунину.
4417
4418 *) Исправление: listen unix domain сокет не наследовался во время
4419 обновления без перерыва.
4420
4421 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
4422 без ещё одной директивы с любым IP-адресом.
4423
4424 *) Исправление: segmentation fault и зацикливания в resolver'е.
4425
4426 *) Исправление: в resolver'е.
4427 Спасибо Артёму Бохану.
4428
4429
4430 Изменения в nginx 0.8.22 03.11.2009
4431
4432 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
4433
4434 *) Добавление: директивы access и deny поддерживают IPv6.
4435
4436 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
4437 заголовках запроса.
4438
4439 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
4440
4441 *) Исправление: nginx не удалял unix domain сокет после тестирования
4442 конфигурации.
4443
4444 *) Исправление: nginx удалял unix domain сокет во время обновления без
4445 перерыва.
4446
4447 *) Исправление: оператор "!-x" не работал.
4448 Спасибо Максиму Дунину.
4449
4450 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4451 использовании limit_rate в HTTPS сервере.
4452 Спасибо Максиму Дунину.
4453
4454 *) Исправление: при записи в лог переменной $limit_rate в рабочем
4455 процессе происходил segmentation fault.
4456 Спасибо Максиму Дунину.
4457
4458 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4459 если внутри блока server не было директивы listen; ошибка появилась в
4460 0.8.21.
4461
4462
4463 Изменения в nginx 0.8.21 26.10.2009
4464
4465 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
4466
4467 *) Добавление: директива listen модуля HTTP поддерживает unix domain
4468 сокеты.
4469 Спасибо Hongli Lai.
4470
4471 *) Добавление: параметр "default_server" в директиве listen.
4472
4473 *) Добавление: теперь параметр "default" не обязателен для установки
4474 параметров listen-сокета.
4475
4476 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
4477 платформах;
4478
4479 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4480
4481
4482 Изменения в nginx 0.8.20 14.10.2009
4483
4484 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4485 "HIGH:!ADH:!MD5".
4486
4487 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
4488 слэш для линков на каталоги; ошибка появилась в 0.7.15.
4489
4490 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
4491 --error-log-path; ошибка появилась в 0.7.53.
4492
4493 *) Исправление: nginx не считал запятую разделителем в строке
4494 "Cache-Control" в заголовке ответа бэкенда.
4495
4496 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
4497 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
4498 не имел достаточно прав для работы с каталогами верхнего уровня.
4499
4500 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
4501 FastCGI-сервера не скрывались при кэшировании, если не использовались
4502 директивы fastcgi_hide_header с любыми параметрами.
4503
4504 *) Исправление: nginx неверно считал размер кэша на диске.
4505
4506
4507 Изменения в nginx 0.8.19 06.10.2009
4508
4509 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
4510
4511 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4512 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
4513
4514 *) Исправление: директива limit_req не работала; ошибка появилась в
4515 0.8.18.
4516
4517
4518 Изменения в nginx 0.8.18 06.10.2009
4519
4520 *) Добавление: директива read_ahead.
4521
4522 *) Добавление: теперь можно использовать несколько директив
4523 perl_modules.
4524
4525 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
4526
4527 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
4528 bucket.
4529 Спасибо Максиму Дунину.
4530
4531 *) Исправление: nginx не работал на Linux/sparc.
4532 Спасибо Marcus Ramberg.
4533
4534 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
4535 ответе на запрос MKCOL.
4536 Спасибо Xie Zhenye.
4537
4538 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
4539 появилась в 0.8.11.
4540
4541 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4542
4543
4544 Изменения в nginx 0.8.17 28.09.2009
4545
4546 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
4547 в заголовке запроса.
4548
4549 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
4550
4551 *) Добавление: переменная $ssl_session_id.
4552
4553 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4554
4555
4556 Изменения в nginx 0.8.16 22.09.2009
4557
4558 *) Добавление: директива image_filter_transparency.
4559
4560 *) Исправление: директива "addition_types" была неверно названа
4561 "addtion_types".
4562
4563 *) Исправление: порчи кэша resolver'а.
4564 Спасибо Matthew Dempsky.
4565
4566 *) Исправление: утечки памяти в resolver'е.
4567 Спасибо Matthew Dempsky.
4568
4569 *) Исправление: неверная строка запроса в переменной $request
4570 записывалась в access_log только при использовании error_log на
4571 уровне info или debug.
4572
4573 *) Исправление: в поддержке альфа-канала PNG в модуле
4574 ngx_http_image_filter_module.
4575
4576 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
4577 заголовок ответа, если обе директивы gzip_static и gzip_vary были
4578 включены.
4579
4580 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
4581 nginx/Windows.
4582
4583 *) Исправление: ошибки при использовании post_action; ошибка появилась в
4584 0.8.11.
4585 Спасибо Игорю Артемьеву.
4586
4587
4588 Изменения в nginx 0.8.15 14.09.2009
4589
4590 *) Безопасность: при обработке специально созданного запроса в рабочем
4591 процессе мог произойти segmentation fault.
4592 Спасибо Chris Ries.
4593
4594 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
4595 .domain-some.tld, то имя .sub.domain.tld попадало под маску
4596 .domain.tld.
4597
4598 *) Исправление: в поддержке прозрачности в модуле
4599 ngx_http_image_filter_module.
4600
4601 *) Исправление: в файловом AIO.
4602
4603 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
4604 появилась в 0.8.11.
4605
4606 *) Исправление: ошибки при использовании встроенного перла; ошибка
4607 появилась в 0.8.11.
4608
4609
4610 Изменения в nginx 0.8.14 07.09.2009
4611
4612 *) Исправление: устаревший закэшированный запрос мог залипнуть в
4613 состоянии "UPDATING".
4614
4615 *) Исправление: при использовании error_log на уровне info или debug в
4616 рабочем процессе мог произойти segmentation fault.
4617 Спасибо Сергею Боченкову.
4618
4619 *) Исправление: ошибки при использовании встроенного перла; ошибка
4620 появилась в 0.8.11.
4621
4622 *) Исправление: директива error_page не перенаправляла ошибку 413;
4623 ошибка появилась в 0.6.10.
4624
4625
4626 Изменения в nginx 0.8.13 31.08.2009
4627
4628 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
4629
4630 *) Исправление: nginx не собирался без параметра --with-file-aio на
4631 FreeBSD; ошибка появилась в 0.8.12.
4632
4633
4634 Изменения в nginx 0.8.12 31.08.2009
4635
4636 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
4637
4638 *) Исправление: ошибки при использовании try_files; ошибка появилась в
4639 0.8.11.
4640
4641 *) Исправление: ошибки при использовании memcached; ошибка появилась в
4642 0.8.11.
4643
4644
4645 Изменения в nginx 0.8.11 28.08.2009
4646
4647 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
4648 для MSIE 6.0 SV1.
4649
4650 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
4651
4652 *) Добавление: директива directio_alignment.
4653
4654
4655 Изменения в nginx 0.8.10 24.08.2009
4656
4657 *) Исправление: утечек памяти при использовании базы GeoIP City.
4658
4659 *) Исправление: ошибки при копировании временных файлов в постоянное
4660 место хранения; ошибка появилась в 0.8.9.
4661
4662
4663 Изменения в nginx 0.8.9 17.08.2009
4664
4665 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
4666 процесс; это должно улучшить обработку больших кэшей.
4667
4668 *) Добавление: теперь временные файлы и постоянное место хранения могут
4669 располагаться на разных файловых системах.
4670
4671
4672 Изменения в nginx 0.8.8 10.08.2009
4673
4674 *) Исправление: в обработке заголовков ответа, разделённых в
4675 FastCGI-записях.
4676
4677 *) Исправление: если запрос обрабатывался в двух проксированных или
4678 FastCGI location'ах и в первом из них использовалось кэширование, то
4679 в рабочем процессе происходил segmentation fault; ошибка появилась в
4680 0.8.7.
4681
4682
4683 Изменения в nginx 0.8.7 27.07.2009
4684
4685 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
4686
4687 *) Изменение: параметр ask директивы ssl_verify_client изменён на
4688 параметр optional и теперь он проверяет клиентский сертификат, если
4689 он был предложен.
4690 Спасибо Brice Figureau.
4691
4692 *) Добавление: переменная $ssl_client_verify.
4693 Спасибо Brice Figureau.
4694
4695 *) Добавление: директива ssl_crl.
4696 Спасибо Brice Figureau.
4697
4698 *) Добавление: параметр proxy директивы geo.
4699
4700 *) Добавление: директива image_filter поддерживает переменные для
4701 задания размеров.
4702
4703 *) Исправление: использование переменной $ssl_client_cert портило
4704 память; ошибка появилась в 0.7.7.
4705 Спасибо Сергею Журавлёву.
4706
4707 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
4708 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
4709 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
4710 Спасибо Максиму Дунину.
4711
4712 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
4713 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
4714 Спасибо Максиму Дунину.
4715
4716 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
4717 ответы в подзапросах; ошибка появилась в 0.8.5.
4718
4719
4720 Изменения в nginx 0.8.6 20.07.2009
4721
4722 *) Добавление: модуль ngx_http_geoip_module.
4723
4724 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
4725 document" для правильного документа.
4726 Спасибо Kuramoto Eiji.
4727
4728 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
4729 location'ов, заданных регулярным выражением, теперь всегда делается
4730 сравнение без учёта регистра символов.
4731
4732 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
4733 Спасибо Hugo Leisink.
4734
4735 *) Исправление: имя файла указанного в --conf-path игнорировалось при
4736 установке; ошибка появилась в 0.6.6.
4737 Спасибо Максиму Дунину.
4738
4739
4740 Изменения в nginx 0.8.5 13.07.2009
4741
4742 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
4743
4744 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
4745 для неверных имени/пароля возвращалась 500-ая ошибка.
4746
4747 *) Исправление: ответы модуля ngx_http_perl_module не работали в
4748 подзапросах.
4749
4750 *) Исправление: в модуле ngx_http_limit_req_module.
4751 Спасибо Максиму Дунину.
4752
4753
4754 Изменения в nginx 0.8.4 22.06.2009
4755
4756 *) Исправление: nginx не собирался с параметром --without-http-cache;
4757 ошибка появилась в 0.8.3.
4758
4759
4760 Изменения в nginx 0.8.3 19.06.2009
4761
4762 *) Добавление: переменная $upstream_cache_status.
4763
4764 *) Исправление: nginx не собирался на MacOSX 10.6.
4765
4766 *) Исправление: nginx не собирался с параметром --without-http-cache;
4767 ошибка появилась в 0.8.2.
4768
4769 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
4770 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
4771 в рабочем процессе происходил segmentation fault.
4772 Спасибо Евгению Мычло.
4773
4774
4775 Изменения в nginx 0.8.2 15.06.2009
4776
4777 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
4778 на старте.
4779
4780 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
4781 долго; ошибка появилась в 0.7.4.
4782
4783
4784 Изменения в nginx 0.8.1 08.06.2009
4785
4786 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
4787 fastcgi_cache_use_stale.
4788
4789 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4790 заголовке запроса клиента передавались бэкенду при кэшировании, если
4791 не использовалась директива proxy_set_header с любыми параметрами.
4792
4793 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
4794 не скрывались при кэшировании, если не использовались директивы
4795 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
4796
4797 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
4798 GIF87a.
4799 Спасибо Денису Ильиных.
4800
4801 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
4802 появилась в 0.7.56.
4803
4804
4805 Изменения в nginx 0.8.0 02.06.2009
4806
4807 *) Добавление: директива keepalive_requests.
4808
4809 *) Добавление: директива limit_rate_after.
4810 Спасибо Ivan Debnar.
4811
4812 *) Исправление: XSLT-фильтр не работал в подзапросах.
4813
4814 *) Исправление: обработке относительных путей в nginx/Windows.
4815
4816 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
4817 fastcgi_cache в nginx/Windows.
4818
4819 *) Исправление: в обработке ошибок выделения памяти.
4820 Спасибо Максиму Дунину и Кириллу Коринскому.
4821
4822
4823 Изменения в nginx 0.7.59 25.05.2009
4824
4825 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
4826
4827 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
4828 Спасибо Максиму Дунину.
4829
4830 *) Исправление: при использовании переменной $request_body в рабочем
4831 процессе происходил segmentation fault, если в запросе не было тела;
4832 ошибка появилась в 0.7.58.
4833
4834 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
4835 ошибка появилась в 0.7.56.
4836
4837 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
4838 обрабатывались SSI-, charset- и gzip-фильтрами.
4839
4840 *) Исправление: директива charset не ставила кодировку для ответов
4841 модуля ngx_http_gzip_static_module.
4842
4843
4844 Изменения в nginx 0.7.58 18.05.2009
4845
4846 *) Добавление: директива listen почтового прокси-сервера поддерживает
4847 IPv6.
4848
4849 *) Добавление: директива image_filter_jpeg_quality.
4850
4851 *) Добавление: директива client_body_in_single_buffer.
4852
4853 *) Добавление: переменная $request_body.
4854
4855 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
4856 файлов, содержащих символ ":".
4857
4858 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
4859 0.7.53.
4860 Спасибо Денису Латыпову.
4861
4862
4863 Изменения в nginx 0.7.57 12.05.2009
4864
4865 *) Исправление: при перенаправлении ошибок модуля
4866 ngx_http_image_filter_module в именованный location в рабочем
4867 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
4868
4869
4870 Изменения в nginx 0.7.56 11.05.2009
4871
4872 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
4873 HTTP.
4874
4875 *) Исправление: в модуле ngx_http_image_filter_module.
4876
4877
4878 Изменения в nginx 0.7.55 06.05.2009
4879
4880 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
4881 fastcgi_cache_use_stale не работали.
4882
4883 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
4884 заголовка.
4885
4886 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
4887 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
4888
4889 *) Исправление: при использовании директивы debug_connection в рабочем
4890 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
4891
4892 *) Исправление: в сборке модуля ngx_http_image_filter_module.
4893
4894 *) Исправление: файлы больше 2G не передавались с использованием
4895 $r->sendfile.
4896 Спасибо Максиму Дунину.
4897
4898
4899 Изменения в nginx 0.7.54 01.05.2009
4900
4901 *) Добавление: модуль ngx_http_image_filter_module.
4902
4903 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
4904
4905 *) Исправление: при использовании переменных "open_file_cache_errors on"
4906 в рабочем процессе мог произойти segmentation fault; ошибка появилась
4907 в 0.7.53.
4908
4909 *) Исправление: директива "port_in_redirect off" не работала; ошибка
4910 появилась в 0.7.39.
4911
4912 *) Исправление: улучшение обработки ошибок метода select.
4913
4914 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
4915
4916 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
4917 ошибка появилась в 0.7.53.
4918
4919
4920 Изменения в nginx 0.7.53 27.04.2009
4921
4922 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
4923 самого начала работы.
4924
4925 *) Добавление: теперь ошибки и предупреждения при старте записываются в
4926 error_log и выводятся на stderr.
4927
4928 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
4929 как префикс каталог, в котором он был запущен.
4930
4931 *) Добавление: ключ -p.
4932
4933 *) Добавление: ключ -s на Unix-платформах.
4934
4935 *) Добавление: ключи -? и -h.
4936 Спасибо Jerome Loyet.
4937
4938 *) Добавление: теперь ключи можно задавать в сжатой форме.
4939
4940 *) Исправление: nginx/Windows не работал, если файл конфигурации был
4941 задан ключом -c.
4942
4943 *) Исправление: при использовании директив proxy_store, fastcgi_store,
4944 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
4945 Спасибо Максиму Дунину.
4946
4947 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
4948 почтового прокси-сервера передавалось неверное значение; ошибка
4949 появилась в 0.7.34.
4950 Спасибо Simon Lecaille.
4951
4952 *) Исправление: при логгировании на Linux не писались текстовые описания
4953 системных ошибок; ошибка появилась в 0.7.45.
4954
4955 *) Исправление: директива fastcgi_cache_min_uses не работала.
4956 Спасибо Андрею Воробьёву.
4957
4958
4959 Изменения в nginx 0.7.52 20.04.2009
4960
4961 *) Добавление: первая бинарная версия под Windows.
4962
4963 *) Исправление: корректная обработка метода HEAD при кэшировании.
4964
4965 *) Исправление: корректная обработка строк "If-Modified-Since",
4966 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
4967
4968 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
4969 заголовке ответа для закэшированных ответов.
4970
4971 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
4972 perl поддерживал потоки, то при выходе основного процесса могла
4973 выдаваться ошибка "panic: MUTEX_LOCK".
4974
4975 *) Исправление: nginx не собирался с параметром --without-http-cache;
4976 ошибка появилась в 0.7.48.
4977
4978 *) Исправление: nginx не собирался на платформах, отличных от i386,
4979 amd64, sparc и ppc; ошибка появилась в 0.7.42.
4980
4981
4982 Изменения в nginx 0.7.51 12.04.2009
4983
4984 *) Добавление: директива try_files поддерживает код ответа в последнем
4985 параметре.
4986
4987 *) Добавление: теперь в директиве return можно использовать любой код
4988 ответа.
4989
4990 *) Исправление: директива error_page делала внешний редирект без строки
4991 запроса; ошибка появилась в 0.7.44.
4992
4993 *) Исправление: если сервера слушали на нескольких явно описанных
4994 адресах, то виртуальные сервера могли не работать; ошибка появилась в
4995 0.7.39.
4996
4997
4998 Изменения в nginx 0.7.50 06.04.2009
4999
5000 *) Исправление: переменные $arg_... не работали; ошибка появилась в
5001 0.7.49.
5002
5003
5004 Изменения в nginx 0.7.49 06.04.2009
5005
5006 *) Исправление: при использовании переменных $arg_... в рабочем процессе
5007 мог произойти segmentation fault; ошибка появилась в 0.7.48.
5008
5009
5010 Изменения в nginx 0.7.48 06.04.2009
5011
5012 *) Добавление: директива proxy_cache_key.
5013
5014 *) Исправление: теперь nginx учитывает при кэшировании строки
5015 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
5016 бэкенда.
5017
5018 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
5019
5020 *) Исправление: директива fastcgi_cache_key не наследовалась.
5021
5022 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
5023 Спасибо Максиму Дунину.
5024
5025 *) Исправление: nginx не собирался с библиотекой uclibc.
5026 Спасибо Timothy Redaelli.
5027
5028 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
5029 в 0.7.46.
5030
5031
5032 Изменения в nginx 0.7.47 01.04.2009
5033
5034 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
5035 ошибка появилась в 0.7.46.
5036
5037 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
5038
5039 *) Исправление: если использовался параметр max_size, то cache manager
5040 мог удалить весь кэш; ошибка появилась в 0.7.46.
5041
5042 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
5043 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
5044 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
5045 в 0.7.46.
5046
5047 *) Исправление: в рабочем процессе мог произойти segmentation fault при
5048 перенаправлении запроса проксированному или FastCGI-серверу с помощью
5049 error_page или try_files; ошибка появилась в 0.7.44.
5050
5051
5052 Изменения в nginx 0.7.46 30.03.2009
5053
5054 *) Исправление: архив предыдущего релиза был неверным.
5055
5056
5057 Изменения в nginx 0.7.45 30.03.2009
5058
5059 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
5060 задавать на разных уровнях.
5061
5062 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
5063
5064 *) Добавление: параметр max_size в директиве proxy_cache_path.
5065
5066 *) Добавление: предварительная поддержка кэширования в модуле
5067 ngx_http_fastcgi_module.
5068
5069 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
5070 указываются названия директивы и зоны.
5071
5072 *) Исправление: директива "add_header last-modified ''" не удаляла в
5073 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
5074
5075 *) Исправление: в директиве auth_basic_user_file не работал
5076 относительный путь, заданный строкой без переменных; ошибка появилась
5077 в 0.7.44.
5078 Спасибо Jerome Loyet.
5079
5080 *) Исправление: в директиве alias, заданной переменными без ссылок на
5081 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
5082
5083
5084 Изменения в nginx 0.7.44 23.03.2009
5085
5086 *) Добавление: предварительная поддержка кэширования в модуле
5087 ngx_http_proxy_module.
5088
5089 *) Добавление: параметр --with-pcre в configure.
5090
5091 *) Добавление: теперь директива try_files может быть использована на
5092 уровне server.
5093
5094 *) Исправление: директива try_files неправильно обрабатывала строку
5095 запроса в последнем параметре.
5096
5097 *) Исправление: директива try_files могла неверно тестировать каталоги.
5098
5099 *) Исправление: если для пары адрес:порт описан только один сервер, то
5100 выделения в регулярных выражениях в директиве server_name не
5101 работали.
5102
5103
5104 Изменения в nginx 0.7.43 18.03.2009
5105
5106 *) Исправление: запрос обрабатывался неверно, если директива root
5107 использовала переменные; ошибка появилась в 0.7.42.
5108
5109 *) Исправление: если сервер слушал на адресах типа "*", то значение
5110 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
5111
5112
5113 Изменения в nginx 0.7.42 16.03.2009
5114
5115 *) Изменение: ошибка "Invalid argument", возвращаемая
5116 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
5117
5118 *) Изменение: при отсутствии файла, указанного в директиве
5119 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
5120
5121 *) Добавление: директива auth_basic_user_file поддерживает переменные.
5122 Спасибо Кириллу Коринскому.
5123
5124 *) Добавление: директива listen поддерживает параметр ipv6only.
5125 Спасибо Zhang Hua.
5126
5127 *) Исправление: в директиве alias со ссылками на выделения в регулярных
5128 выражениях; ошибка появилась в 0.7.40.
5129
5130 *) Исправление: совместимость с Tru64 UNIX.
5131 Спасибо Dustin Marquess.
5132
5133 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5134 в 0.7.41.
5135
5136
5137 Изменения в nginx 0.7.41 11.03.2009
5138
5139 *) Исправление: в рабочем процессе мог произойти segmentation fault,
5140 если в server_name или location были выделения в регулярных
5141 выражениях; ошибка появилась в 0.7.40.
5142 Спасибо Владимиру Сопоту.
5143
5144
5145 Изменения в nginx 0.7.40 09.03.2009
5146
5147 *) Добавление: директива location поддерживает выделения в регулярных
5148 выражениях.
5149
5150 *) Добавление: директиву alias с ссылками на выделения в регулярных
5151 выражениях можно использовать внутри location'а, заданного регулярным
5152 выражением с выделениями.
5153
5154 *) Добавление: директива server_name поддерживает выделения в регулярных
5155 выражениях.
5156
5157 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
5158 слэш для каталогов на файловой системе XFS; ошибка появилась в
5159 0.7.15.
5160 Спасибо Дмитрию Кузьменко.
5161
5162
5163 Изменения в nginx 0.7.39 02.03.2009
5164
5165 *) Исправление: при включённом сжатии большие ответы с использованием
5166 SSI могли зависать; ошибка появилась в 0.7.28.
5167 Спасибо Артёму Бохану.
5168
5169 *) Исправление: при использовании коротких статических вариантов в
5170 директиве try_files в рабочем процессе мог произойти segmentation
5171 fault.
5172
5173
5174 Изменения в nginx 0.7.38 23.02.2009
5175
5176 *) Добавление: логгирование ошибок аутентификации.
5177
5178 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
5179 игнорировались после нечётного числа пустых строк.
5180 Спасибо Александру Загребину.
5181
5182 *) Исправление: при использовании длинного пути в unix domain сокете в
5183 главном процессе происходил segmentation fault; ошибка появилась в
5184 0.7.36.
5185
5186
5187 Изменения в nginx 0.7.37 21.02.2009
5188
5189 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
5190 появилась в 0.7.36.
5191
5192
5193 Изменения в nginx 0.7.36 21.02.2009
5194
5195 *) Добавление: предварительная поддержка IPv6; директива listen модуля
5196 HTTP поддерживает IPv6.
5197
5198 *) Исправление: переменная $ancient_browser не работала для браузеров,
5199 заданных директивами modern_browser.
5200
5201
5202 Изменения в nginx 0.7.35 16.02.2009
5203
5204 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
5205 асимметричных шифров.
5206 Спасибо Marcin Gozdalik.
5207
5208 *) Исправление: директива try_files выставляла MIME-type, исходя из
5209 расширения первоначального запроса.
5210
5211 *) Исправление: в директивах server_name, valid_referers и map
5212 неправильно обрабатывались имена вида "*domain.tld", если
5213 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
5214 ошибка появилась в 0.7.9.
5215
5216
5217 Изменения в nginx 0.7.34 10.02.2009
5218
5219 *) Добавление: параметр off в директиве if_modified_since.
5220
5221 *) Добавление: теперь после команды XCLIENT nginx посылает команду
5222 HELO/EHLO.
5223 Спасибо Максиму Дунину.
5224
5225 *) Добавление: поддержка Microsoft-специфичного режима
5226 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
5227 Спасибо Максиму Дунину.
5228
5229 *) Исправление: в директиве rewrite, возвращающей редирект, старые
5230 аргументы присоединялись к новым через символ "?" вместо "&";
5231 ошибка появилась в 0.1.18.
5232 Спасибо Максиму Дунину.
5233
5234 *) Исправление: nginx не собирался на AIX.
5235
5236
5237 Изменения в nginx 0.7.33 02.02.2009
5238
5239 *) Исправление: если на запрос с телом возвращался редирект, то ответ
5240 мог быть двойным при использовании методов epoll или rtsig.
5241 Спасибо Eden Li.
5242
5243 *) Исправление: для некоторых типов редиректов в переменной
5244 $sent_http_location было пустое значение.
5245
5246 *) Исправление: при использовании директивы resolver в SMTP
5247 прокси-сервере в рабочем процессе мог произойти segmentation fault.
5248
5249
5250 Изменения в nginx 0.7.32 26.01.2009
5251
5252 *) Добавление: теперь в директиве try_files можно явно указать проверку
5253 каталога.
5254
5255 *) Исправление: fastcgi_store не всегда сохранял файлы.
5256
5257 *) Исправление: в гео-диапазонах.
5258
5259 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
5260 если nginx был собран без отладки.
5261 Спасибо Андрею Квасову.
5262
5263
5264 Изменения в nginx 0.7.31 19.01.2009
5265
5266 *) Изменение: теперь директива try_files проверяет только файлы,
5267 игнорируя каталоги.
5268
5269 *) Добавление: директива fastcgi_split_path_info.
5270
5271 *) Исправления в поддержке строки "Expect" в заголовке запроса.
5272
5273 *) Исправления в гео-диапазонах.
5274
5275 *) Исправление: при отсутствии ответа ngx_http_memcached_module
5276 возвращал в теле ответа строку "END" вместо 404-ой страницы по
5277 умолчанию; ошибка появилась в 0.7.18.
5278 Спасибо Максиму Дунину.
5279
5280 *) Исправление: при проксировании SMTP nginx выдавал сообщение
5281 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
5282 Спасибо Максиму Дунину.
5283
5284
5285 Изменения в nginx 0.7.30 24.12.2008
5286
5287 *) Исправление: в рабочем процессе происходил segmentation fault, если в
5288 директивах fastcgi_pass или proxy_pass использовались переменные и
5289 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
5290
5291
5292 Изменения в nginx 0.7.29 24.12.2008
5293
5294 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
5295 переменные при использовании unix domain сокетов.
5296
5297 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
5298
5299 *) Исправление: ответ "100 Continue" выдавался для запросов версии
5300 HTTP/1.0;
5301 Спасибо Максиму Дунину.
5302
5303 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
5304 под Cygwin.
5305
5306
5307 Изменения в nginx 0.7.28 22.12.2008
5308
5309 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
5310
5311 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
5312 с 4 4k/8k на 32 4k или 16 8k.
5313
5314
5315 Изменения в nginx 0.7.27 15.12.2008
5316
5317 *) Добавление: директива try_files.
5318
5319 *) Добавление: директива fastcgi_pass поддерживает переменные.
5320
5321 *) Добавление: теперь директива geo может брать адрес из переменной.
5322 Спасибо Андрею Нигматулину.
5323
5324 *) Добавление: теперь модификатор location'а можно указывать без пробела
5325 перед названием.
5326
5327 *) Добавление: переменная $upstream_response_length.
5328
5329 *) Исправление: теперь директива add_header не добавляет пустое
5330 значение.
5331
5332 *) Исправление: при запросе файла нулевой длины nginx закрывал
5333 соединение, ничего не передав; ошибка появилась в 0.7.25.
5334
5335 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
5336 каталог.
5337
5338 *) Исправление: если в сервере не был описан ни один именованный
5339 location, но такой location использовался в директиве error_page, то
5340 в рабочем процессе происходил segmentation fault.
5341 Спасибо Сергею Боченкову.
5342
5343
5344 Изменения в nginx 0.7.26 08.12.2008
5345
5346 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
5347
5348
5349 Изменения в nginx 0.7.25 08.12.2008
5350
5351 *) Изменение: в обработке подзапросов.
5352
5353 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
5354 заголовке запроса.
5355
5356 *) Исправление: теперь директивы limit_req и limit_conn указывают
5357 причину запрета запроса.
5358
5359 *) Исправление: в параметре delete директивы geo.
5360
5361
5362 Изменения в nginx 0.7.24 01.12.2008
5363
5364 *) Добавление: директива if_modified_since.
5365
5366 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
5367 ответом сервер передавал много сообщений в stderr.
5368
5369 *) Исправление: переменные "$cookie_..." не работали в SSI and в
5370 перловом модуле.
5371
5372
5373 Изменения в nginx 0.7.23 27.11.2008
5374
5375 *) Добавление: параметры delete и ranges в директиве geo.
5376
5377 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
5378
5379 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
5380
5381
5382 Изменения в nginx 0.7.22 20.11.2008
5383
5384 *) Добавление: параметр none в директиве smtp_auth.
5385 Спасибо Максиму Дунину.
5386
5387 *) Добавление: переменные "$cookie_...".
5388
5389 *) Исправление: директива directio не работала с файловой системой XFS.
5390
5391 *) Исправление: resolver не понимал большие DNS-ответы.
5392 Спасибо Zyb.
5393
5394
5395 Изменения в nginx 0.7.21 11.11.2008
5396
5397 *) Изменения в модуле ngx_http_limit_req_module.
5398
5399 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
5400 Спасибо Денису Латыпову.
5401
5402 *) Изменение: совместимость с glibc 2.3.
5403 Спасибо Eric Benson и Максиму Дунину.
5404
5405 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
5406 ошибка появилась в 0.7.6.
5407
5408
5409 Изменения в nginx 0.7.20 10.11.2008
5410
5411 *) Изменения в модуле ngx_http_gzip_filter_module.
5412
5413 *) Добавление: модуль ngx_http_limit_req_module.
5414
5415 *) Исправление: на платформах sparc и ppc рабочие процессы могли
5416 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
5417 Спасибо Максиму Дунину.
5418
5419 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
5420 работали; ошибка появилась в 0.7.12.
5421
5422 *) Исправление: при использовании HTTPS запросы могли завершаться с
5423 ошибкой "bad write retry".
5424
5425 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
5426 location'ов с именами меньше 3 символов.
5427
5428 *) Исправление: переменная $server_addr могла не иметь значения.
5429
5430
5431 Изменения в nginx 0.7.19 13.10.2008
5432
5433 *) Исправление: обновление номера версии.
5434
5435
5436 Изменения в nginx 0.7.18 13.10.2008
5437
5438 *) Изменение: директива underscores_in_headers; теперь nginx по
5439 умолчанию не разрешает подчёркивания в именах строк в заголовке
5440 запроса клиента.
5441
5442 *) Добавление: модуль ngx_http_secure_link_module.
5443
5444 *) Добавление: директива real_ip_header поддерживает любой заголовок.
5445
5446 *) Добавление: директива log_subrequest.
5447
5448 *) Добавление: переменная $realpath_root.
5449
5450 *) Добавление: параметры http_502 и http_504 в директиве
5451 proxy_next_upstream.
5452
5453 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
5454 fastcgi_next_upstream не работал.
5455
5456 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
5457 для запросов HEAD.
5458
5459 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
5460
5461
5462 Изменения в nginx 0.7.17 15.09.2008
5463
5464 *) Добавление: директива directio теперь работает на Linux.
5465
5466 *) Добавление: переменная $pid.
5467
5468 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
5469 при использовании open_file_cache.
5470
5471 *) Исправление: access_log с переменными не работал на Linux; ошибка
5472 появилась в 0.7.7.
5473
5474 *) Исправление: модуль ngx_http_charset_module не понимал название
5475 кодировки в кавычках, полученное от бэкенда.
5476
5477
5478 Изменения в nginx 0.7.16 08.09.2008
5479
5480 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
5481 появилась в 0.7.15.
5482
5483
5484 Изменения в nginx 0.7.15 08.09.2008
5485
5486 *) Добавление: модуль ngx_http_random_index_module.
5487
5488 *) Добавление: директива directio оптимизирована для запросов файлов,
5489 начинающихся с произвольной позиции.
5490
5491 *) Добавление: директива directio при необходимости запрещает
5492 использование sendfile.
5493
5494 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
5495 заголовке запроса клиента.
5496
5497
5498 Изменения в nginx 0.7.14 01.09.2008
5499
5500 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
5501 имеют значений по умолчанию.
5502
5503 *) Добавление: директива listen поддерживает параметр ssl.
5504
5505 *) Добавление: теперь при переконфигурации nginx учитывает изменение
5506 временной зоны на FreeBSD и Linux.
5507
5508 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
5509 прочие, не устанавливались, если сервером по умолчанию был не первый
5510 сервер.
5511
5512 *) Исправление: при использовании в качестве аргументов части URI,
5513 выделенного с помощью директивы rewrite, эти аргументы не
5514 экранировались.
5515
5516 *) Исправление: улучшения тестирования правильности конфигурационного
5517 файла.
5518
5519
5520 Изменения в nginx 0.7.13 26.08.2008
5521
5522 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
5523 в 0.7.12.
5524
5525
5526 Изменения в nginx 0.7.12 26.08.2008
5527
5528 *) Добавление: директива server_name поддерживает пустое имя "".
5529
5530 *) Добавление: директива gzip_disable поддерживает специальную маску
5531 msie6.
5532
5533 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
5534 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
5535 Спасибо Максиму Дунину.
5536
5537 *) Исправление: при перенаправлении запроса с помощью директивы
5538 error_page терялось тело запроса.
5539
5540 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
5541 директивы error_page возвращался полный ответ.
5542
5543 *) Исправление: метод $r->header_in() не возвращал значения строк
5544 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
5545 появилась в 0.7.0.
5546
5547
5548 Изменения в nginx 0.7.11 18.08.2008
5549
5550 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
5551 MIME-типом text/css.
5552
5553 *) Добавление: теперь nginx возвращает код 405 для метода POST при
5554 запросе статического файла, только если файл существует.
5555
5556 *) Добавление: директива proxy_ssl_session_reuse.
5557
5558 *) Исправление: после перенаправления запроса с помощью
5559 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
5560 оригинальный запрос.
5561
5562 *) Исправление: если у каталога были права доступа только на поиск
5563 файлов и первый индексный файл отсутствовал, то nginx возвращал
5564 ошибку 500.
5565
5566 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
5567 0.7.1.
5568
5569
5570 Изменения в nginx 0.7.10 13.08.2008
5571
5572 *) Исправление: ошибок в директивах addition_types, charset_types,
5573 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
5574 появились в 0.7.9.
5575
5576 *) Исправление: рекурсивной error_page для 500 ошибки.
5577
5578 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
5579 не для всего keepalive соединения, а для каждого запроса по этому
5580 соединению.
5581
5582
5583 Изменения в nginx 0.7.9 12.08.2008
5584
5585 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
5586 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
5587 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
5588
5589 *) Добавление: директивы charset_types и addition_types.
5590
5591 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
5592 используют хэш.
5593
5594 *) Добавление: модуль ngx_cpp_test_module.
5595
5596 *) Добавление: директива expires поддерживает суточное время.
5597
5598 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
5599 Спасибо Денису Латыпову и Максиму Дунину.
5600
5601 *) Исправление: директива log_not_found не работала при поиске индексных
5602 файлов.
5603
5604 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
5605 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
5606
5607 *) Исправление: если в директивах server_name, valid_referers и map
5608 использовалась маска вида "*.domain.tld" и при этом полное имя вида
5609 "domain.tld" не было описано, то это имя попадало под маску; ошибка
5610 появилась в 0.3.18.
5611
5612
5613 Изменения в nginx 0.7.8 04.08.2008
5614
5615 *) Добавление: модуль ngx_http_xslt_module.
5616
5617 *) Добавление: переменные "$arg_...".
5618
5619 *) Добавление: поддержка directio в Solaris.
5620 Спасибо Ivan Debnar.
5621
5622 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
5623 в заголовке ответа без строки статуса, то nginx использует код
5624 статуса 302.
5625 Спасибо Максиму Дунину.
5626
5627
5628 Изменения в nginx 0.7.7 30.07.2008
5629
5630 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
5631 временной.
5632
5633 *) Изменение: значением переменной $ssl_client_cert теперь является
5634 сертификат, перед каждой строкой которого, кроме первой, вставляется
5635 символ табуляции; неизменённый сертификат доступен через переменную
5636 $ssl_client_raw_cert.
5637
5638 *) Добавление: параметр ask директивы ssl_verify_client.
5639
5640 *) Добавление: улучшения в обработке byte-range.
5641 Спасибо Максиму Дунину.
5642
5643 *) Добавление: директива directio.
5644 Спасибо Jiang Hong.
5645
5646 *) Добавление: поддержка sendfile() в MacOSX 10.5.
5647
5648 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
5649 делается сравнение без учёта регистра символов; однако, сравнение
5650 ограничено только однобайтными locale'ями.
5651
5652 *) Исправление: соединения почтового прокси-сервера зависали в режиме
5653 SSL, если использовались методы select, poll или /dev/poll.
5654
5655 *) Исправление: ошибки при использовании кодировки UTF-8 в
5656 ngx_http_autoindex_module.
5657
5658
5659 Изменения в nginx 0.7.6 07.07.2008
5660
5661 *) Исправление: теперь при использовании переменных в директиве
5662 access_log всегда проверяется существовании root'а для запроса.
5663
5664 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
5665 значений в аргументах запроса.
5666
5667
5668 Изменения в nginx 0.7.5 01.07.2008
5669
5670 *) Исправления в поддержке переменных в директиве access_log; ошибки
5671 появились в 0.7.4.
5672
5673 *) Исправление: nginx не собирался с параметром
5674 --without-http_gzip_module; ошибка появилась в 0.7.3.
5675 Спасибо Кириллу Коринскому.
5676
5677 *) Исправление: при совместном использовании sub_filter и SSI ответы
5678 могли передаваться неверно.
5679
5680
5681 Изменения в nginx 0.7.4 30.06.2008
5682
5683 *) Добавление: директива access_log поддерживает переменные.
5684
5685 *) Добавление: директива open_log_file_cache.
5686
5687 *) Добавление: ключ -g.
5688
5689 *) Добавление: поддержка строки "Expect" в заголовке запроса.
5690
5691 *) Исправление: большие включения в SSI могли передавались не полностью.
5692
5693
5694 Изменения в nginx 0.7.3 23.06.2008
5695
5696 *) Изменение: MIME-тип для расширения rss изменён на
5697 "application/rss+xml".
5698
5699 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
5700 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
5701
5702 *) Добавление: теперь при использовании протокола "https://" в директиве
5703 rewrite автоматически делается редирект.
5704
5705 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
5706 ошибка появилась в 0.6.9.
5707
5708
5709 Изменения в nginx 0.7.2 16.06.2008
5710
5711 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
5712
5713 *) Добавление: директива ssl_dhparam.
5714
5715 *) Добавление: переменная $ssl_client_cert.
5716 Спасибо Manlio Perillo.
5717
5718 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
5719 искал новый location; ошибка появилась в 0.7.1.
5720 Спасибо Максиму Дунину.
5721
5722 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5723 в 0.7.1.
5724
5725 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
5726 nginx не добавлял аргументы из оригинального запроса.
5727
5728
5729 Изменения в nginx 0.7.1 26.05.2008
5730
5731 *) Изменение: теперь поиск location'а делается с помощью дерева.
5732
5733 *) Изменение: директива optimize_server_names упразднена в связи с
5734 появлением директивы server_name_in_redirect.
5735
5736 *) Изменение: некоторые давно устаревшие директивы больше не
5737 поддерживаются.
5738
5739 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
5740 параметр используется по умолчанию.
5741 Спасибо Rob Mueller.
5742
5743 *) Исправление: рабочие процессы могли не реагировать на сигналы
5744 переконфигурации и ротации логов.
5745
5746 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
5747 Спасибо Roxis.
5748
5749
5750 Изменения в nginx 0.7.0 19.05.2008
5751
5752 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
5753 записываются в виде \xXX.
5754 Спасибо Максиму Дунину.
5755
5756 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
5757 запроса.
5758
5759 *) Добавление: директива expires поддерживает флаг modified.
5760
5761 *) Добавление: переменные $uid_got и $uid_set можно использовать на
5762 любой стадии обработки запроса.
5763
5764 *) Добавление: переменная $hostname.
5765 Спасибо Андрею Нигматулину.
5766
5767 *) Добавление: поддержка DESTDIR.
5768 Спасибо Todd A. Fisher и Andras Voroskoi.
5769
5770 *) Исправление: при использовании keepalive на Linux в рабочем процессе
5771 мог произойти segmentation fault.
5772
5773
5774 Изменения в nginx 0.6.31 12.05.2008
5775
5776 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
5777 заголовка ответа была в конце записи FastCGI; ошибка появилась в
5778 0.6.2.
5779 Спасибо Сергею Серову.
5780
5781 *) Исправление: при удалении файла и использовании директивы
5782 open_file_cache_errors off в рабочем процессе мог произойти
5783 segmentation fault.
5784
5785
5786 Изменения в nginx 0.6.30 29.04.2008
5787
5788 *) Изменение: теперь, если маске, заданной в директиве include, не
5789 соответствует ни один файл, то nginx не выдаёт ошибку.
5790
5791 *) Добавление: теперь время в директивах можно задавать без пробела,
5792 например, "1h50m".
5793
5794 *) Исправление: утечек памяти, если директива ssl_verify_client имела
5795 значение on.
5796 Спасибо Chavelle Vincent.
5797
5798 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
5799 вывод.
5800
5801 *) Исправление: директива error_page не воспринимала параметры в
5802 перенаправляемом URI.
5803
5804 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
5805 в бинарном режиме.
5806
5807 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
5808 0.6.15.
5809
5810
5811 Изменения в nginx 0.6.29 18.03.2008
5812
5813 *) Добавление: модуль ngx_google_perftools_module.
5814
5815 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
5816 платформах; ошибка появилась в 0.6.27.
5817
5818
5819 Изменения в nginx 0.6.28 13.03.2008
5820
5821 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
5822
5823
5824 Изменения в nginx 0.6.27 12.03.2008
5825
5826 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
5827 rtsig.
5828
5829 *) Изменение: теперь при перенаправлении запроса в именованный location
5830 с помощью директивы error_page метод запроса не изменяется.
5831
5832 *) Добавление: директивы resolver и resolver_timeout в SMTP
5833 прокси-сервере.
5834
5835 *) Добавление: директива post_action поддерживает именованные
5836 location'ы.
5837
5838 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5839 proxy, FastCGI или memcached в именованный location со статическим
5840 обработчиком в рабочем процессе происходил segmentation fault.
5841
5842 *) Исправление: браузеры не повторяли SSL handshake, если при первом
5843 handshake не оказалось правильного клиентского сертификата.
5844 Спасибо Александру Инюхину.
5845
5846 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
5847 error_page без изменения кода ошибки nginx пытался выделить очень
5848 много памяти.
5849
5850 *) Исправление: утечки памяти в долгоживущих небуфферизированных
5851 соединениях.
5852
5853 *) Исправление: утечки памяти в resolver'е.
5854
5855 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5856 proxy в другой location с обработчиком proxy в рабочем процессе
5857 происходил segmentation fault.
5858
5859 *) Исправление: ошибки в кэшировании переменных $proxy_host и
5860 $proxy_port.
5861 Спасибо Сергею Боченкову.
5862
5863 *) Исправление: директива proxy_pass с переменными использовала порт,
5864 описанной в другой директиве proxy_pass без переменных, но с таким же
5865 именем хоста.
5866 Спасибо Сергею Боченкову.
5867
5868 *) Исправление: во время переконфигурации на некоторых 64-битном
5869 платформах в лог записывался alert "sendmsg() failed (9: Bad file
5870 descriptor)".
5871
5872 *) Исправление: при повторном использовании в SSI пустого block'а в
5873 качестве заглушки в рабочем процессе происходил segmentation fault.
5874
5875 *) Исправление: ошибки при копировании части URI, содержащего
5876 экранированные символы, в аргументы.
5877
5878
5879 Изменения в nginx 0.6.26 11.02.2008
5880
5881 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
5882 ответа.
5883
5884 *) Исправление: при использовании большого значения в директиве expires
5885 в рабочем процессе происходил segmentation fault.
5886 Спасибо Joaquin Cuenca Abela.
5887
5888 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
5889 Спасибо Геннадию Махомеду.
5890
5891 *) Исправление: в проксированных подзапросах и подзапросах к
5892 FastCGI-серверу вместо метода GET использовался оригинальный метод
5893 клиента.
5894
5895 *) Исправление: утечки сокетов в режиме HTTPS при использовании
5896 отложенного accept'а.
5897 Спасибо Ben Maurer.
5898
5899 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
5900 (SSL: )"; ошибка появилась в 0.6.23.
5901
5902 *) Исправление: при использовании HTTPS запросы могли завершаться с
5903 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
5904
5905
5906 Изменения в nginx 0.6.25 08.01.2008
5907
5908 *) Изменение: вместо специального параметра "*" в директиве server_name
5909 теперь используется директива server_name_in_redirect.
5910
5911 *) Изменение: в качестве основного имени в директиве server_name теперь
5912 можно использовать имена с масками и регулярными выражениями.
5913
5914 *) Изменение: директива satisfy_any заменена директивой satisfy.
5915
5916 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
5917 нагружать процессор при запуске под Linux OpenVZ.
5918
5919 *) Добавление: директива min_delete_depth.
5920
5921 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
5922
5923 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
5924 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
5925
5926 *) Исправление: утечки сокетов в режиме HTTPS при использовании
5927 отложенного accept'а.
5928 Спасибо Ben Maurer.
5929
5930 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5931 в 0.6.23.
5932
5933
5934 Изменения в nginx 0.6.24 27.12.2007
5935
5936 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
5937 segmentation fault; ошибка появилась в 0.6.23.
5938
5939
5940 Изменения в nginx 0.6.23 27.12.2007
5941
5942 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
5943 параметр используется по умолчанию.
5944
5945 *) Изменение: директива open_file_cache_retest переименована в
5946 open_file_cache_valid.
5947
5948 *) Добавление: директива open_file_cache_min_uses.
5949
5950 *) Добавление: модуль ngx_http_gzip_static_module.
5951
5952 *) Добавление: директива gzip_disable.
5953
5954 *) Добавление: директиву memcached_pass можно использовать внутри блока
5955 if.
5956
5957 *) Исправление: если внутри одного location'а использовались директивы
5958 "memcached_pass" и "if", то в рабочем процессе происходил
5959 segmentation fault.
5960
5961 *) Исправление: если при использовании директивы satisfy_any on" были
5962 заданы директивы не всех модулей доступа, то заданные директивы не
5963 проверялись.
5964
5965 *) Исправление: параметры, заданные регулярным выражением в директиве
5966 valid_referers, не наследовалась с предыдущего уровня.
5967
5968 *) Исправление: директива post_action не работала, если запрос
5969 завершался с кодом 499.
5970
5971 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
5972 Спасибо Ben Maurer.
5973
5974 *) Исправление: STARTTLS в режиме SMTP не работал.
5975 Спасибо Олегу Мотиенко.
5976
5977 *) Исправление: при использовании HTTPS запросы могли завершаться с
5978 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
5979
5980
5981 Изменения в nginx 0.6.22 19.12.2007
5982
5983 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
5984 значения, скопированные в память, выделенную perl'ом.
5985
5986 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
5987 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
5988 время переконфигурации основной процесс аварийно выходил; ошибка
5989 появилась в 0.5.9.
5990 Спасибо Борису Жмурову.
5991
5992 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
5993 неверные результаты выделения в регулярных выражениях.
5994
5995 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
5996 у которого небольшое тело запроса было уже полностью получено, то в
5997 рабочем процессе происходил segmentation fault.
5998
5999 *) Исправление: large_client_header_buffers не освобождались перед
6000 переходом в состояние keep-alive.
6001 Спасибо Олександру Штепе.
6002
6003 *) Исправление: в переменной $upstream_addr не записывался последний
6004 адрес; ошибка появилась в 0.6.18.
6005
6006 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
6007 теперь она возвращает ошибку 502, которую можно направить на
6008 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
6009
6010 *) Исправление: при использовании директивы fastcgi_catch_stderr в
6011 основном процессе происходил segmentation fault; ошибка появилась в
6012 0.6.10.
6013 Спасибо Manlio Perillo.
6014
6015
6016 Изменения в nginx 0.6.21 03.12.2007
6017
6018 *) Изменение: если в значениях переменных директивы proxy_pass
6019 используются только IP-адреса, то указывать resolver не нужно.
6020
6021 *) Исправление: при использовании директивы proxy_pass c URI-частью в
6022 рабочем процессе мог произойти segmentation fault; ошибка появилась в
6023 0.6.19.
6024
6025 *) Исправление: если resolver использовался на платформах, не
6026 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
6027 response".
6028 Спасибо Андрею Нигматулину.
6029
6030 *) Исправление: При использовании переменной $server_protocol в
6031 FastCGI-параметрах и запросе, длина которого была близка к значению
6032 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
6033 the request record is too big".
6034
6035 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
6036 nginx возвращал обычный ответ.
6037
6038
6039 Изменения в nginx 0.6.20 28.11.2007
6040
6041 *) Исправление: при использовании директивы proxy_pass c URI-частью в
6042 рабочем процессе мог произойти segmentation fault; ошибка появилась в
6043 0.6.19.
6044
6045
6046 Изменения в nginx 0.6.19 27.11.2007
6047
6048 *) Исправление: версия 0.6.18 не собиралась.
6049
6050
6051 Изменения в nginx 0.6.18 27.11.2007
6052
6053 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
6054 процесса добавляет микросекунды на время старта.
6055
6056 *) Изменение: в error_log теперь записывается полная строка запроса
6057 вместо только URI.
6058
6059 *) Добавление: директива proxy_pass поддерживает переменные.
6060
6061 *) Добавление: директивы resolver и resolver_timeout.
6062
6063 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
6064 заголовке ответа строку "Last-Modified".
6065
6066 *) Исправление: директива limit_rate не позволяла передавать на полной
6067 скорости, даже если был указан очень большой лимит.
6068
6069
6070 Изменения в nginx 0.6.17 15.11.2007
6071
6072 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
6073 Спасибо Александру Инюхину.
6074
6075 *) Исправление: при использовании директивы msie_refresh повторно
6076 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
6077
6078 *) Исправление: директива autoindex не работала при использовании "alias
6079 /".
6080
6081 *) Исправление: при использовании подзапросов в рабочем процессе мог
6082 произойти segmentation fault.
6083
6084 *) Исправление: при использовании SSL и gzip большие ответы могли
6085 передаваться не полностью.
6086
6087 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
6088 то переменная $status была равна 0.
6089
6090
6091 Изменения в nginx 0.6.16 29.10.2007
6092
6093 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
6094 Спасибо Илье Новикову.
6095
6096 *) Исправление: если в директиве error_page использовался символ "?", то
6097 он экранировался при проксировании запроса; ошибка появилась в
6098 0.6.11.
6099
6100 *) Исправление: совместимость с mget.
6101
6102
6103 Изменения в nginx 0.6.15 22.10.2007
6104
6105 *) Добавление: совместимость с Cygwin.
6106 Спасибо Владимиру Кутакову.
6107
6108 *) Добавление: директива merge_slashes.
6109
6110 *) Добавление: директива gzip_vary.
6111
6112 *) Добавление: директива server_tokens.
6113
6114 *) Исправление: nginx не раскодировал URI в команде SSI include.
6115
6116 *) Исправление: при использовании переменной в директивах charset или
6117 source_charset на старте или во время переконфигурации происходил
6118 segmentation fault,
6119
6120 *) Исправление: nginx возвращал ошибку 400 на запросы вида
6121 "GET http://www.domain.com HTTP/1.0".
6122 Спасибо James Oakley.
6123
6124 *) Исправление: после перенаправления запроса с телом запроса с помощью
6125 директивы error_page nginx пытался снова прочитать тело запроса;
6126 ошибка появилась в 0.6.7.
6127
6128 *) Исправление: в рабочем процессе происходил segmentation fault, если у
6129 сервера, обрабатывающему запрос, не был явно определён server_name;
6130 ошибка появилась в 0.6.7.
6131
6132
6133 Изменения в nginx 0.6.14 15.10.2007
6134
6135 *) Изменение: теперь по умолчанию команда SSI echo использует
6136 кодирование entity.
6137
6138 *) Добавление: параметр encoding в команде SSI echo.
6139
6140 *) Добавление: директиву access_log можно использовать внутри блока
6141 limit_except.
6142
6143 *) Исправление: если все сервера апстрима оказывались недоступными, то
6144 до восстановления работоспособности у всех серверов вес становился
6145 равным одному; ошибка появилась в 0.6.6.
6146
6147 *) Исправление: при использовании переменных $date_local и $date_gmt вне
6148 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
6149 segmentation fault.
6150
6151 *) Исправление: при использовании включённом отладочном логе в рабочем
6152 процессе мог произойти segmentation fault.
6153 Спасибо Андрею Нигматулину.
6154
6155 *) Исправление: ngx_http_memcached_module не устанавливал
6156 $upstream_response_time.
6157 Спасибо Максиму Дунину.
6158
6159 *) Исправление: рабочий процесс мог зациклиться при использовании
6160 memcached.
6161
6162 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
6163 строке "Connection" в заголовке запроса только, если они были в
6164 нижнем регистре; ошибка появилась в 0.6.11.
6165
6166 *) Исправление: sub_filter не работал с пустой строкой замены.
6167
6168 *) Исправление: в парсинге sub_filter.
6169
6170
6171 Изменения в nginx 0.6.13 24.09.2007
6172
6173 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
6174 использовался autoindex
6175 Спасибо Arkadiusz Patyk.
6176
6177
6178 Изменения в nginx 0.6.12 21.09.2007
6179
6180 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
6181 и smtp.
6182
6183 *) Добавление: параметры конфигурации --without-mail_pop3_module,
6184 --without-mail_imap_module и --without-mail_smtp_module.
6185
6186 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
6187 ngx_mail_smtp_module.
6188
6189 *) Исправление: wildcard в конце имени сервера не работали; ошибка
6190 появилась в 0.6.9.
6191
6192 *) Исправление: при использовании разделяемой библиотеки PCRE,
6193 расположенной в нестандартном месте, nginx не запускался на Solaris.
6194
6195 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
6196 скрывали строки заголовка ответа с именем больше 32 символов.
6197 Спасибо Manlio Perillo.
6198
6199
6200 Изменения в nginx 0.6.11 11.09.2007
6201
6202 *) Исправление: счётчик активных соединений всегда рос при использовании
6203 почтового прокси-сервера.
6204
6205 *) Исправление: если бэкенд возвращал только заголовок ответа при
6206 небуферизированном проксировании, то nginx закрывал соединение с
6207 бэкендом по таймауту.
6208
6209 *) Исправление: nginx не поддерживал несколько строк "Connection" в
6210 заголовке запроса.
6211
6212 *) Исправление: если в сервере апстрима был задан max_fails, то после
6213 первой же неудачной попытки вес сервера навсегда становился равным
6214 одному; ошибка появилась в 0.6.6.
6215
6216
6217 Изменения в nginx 0.6.10 03.09.2007
6218
6219 *) Добавление: директивы open_file_cache, open_file_cache_retest и
6220 open_file_cache_errors.
6221
6222 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
6223
6224 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
6225 методе $r->send_http_header(), не добавлялась кодировка, указанная в
6226 директиве charset.
6227
6228 *) Исправление: при использовании метода /dev/poll в рабочем процессе
6229 мог произойти segmentation fault.
6230
6231
6232 Изменения в nginx 0.6.9 28.08.2007
6233
6234 *) Исправление: рабочий процесс мог зациклиться при использовании
6235 протокола HTTPS; ошибка появилась в 0.6.7.
6236
6237 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
6238 не запускался при использовании wildcard в конце имени сервера.
6239
6240 *) Исправление: директива ip_hash могла неверно помечать сервера как
6241 нерабочие.
6242
6243 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
6244
6245
6246 Изменения в nginx 0.6.8 20.08.2007
6247
6248 *) Изменение: теперь nginx пытается установить директивы
6249 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
6250 worker_rlimit_sigpending без привилегий root'а.
6251
6252 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
6253 запроса серверу аутентификации почтового прокси-сервера.
6254
6255 *) Изменение: теперь nginx экранирует символ "%" в переменной
6256 $memcached_key.
6257
6258 *) Исправление: при указании относительного пути к конфигурационному
6259 файлу в качестве параметра ключа -c nginx определял путь относительно
6260 конфигурационного префикса; ошибка появилась в 0.6.6.
6261
6262 *) Исправление: nginx не работал на FreeBSD/sparc64.
6263
6264
6265 Изменения в nginx 0.6.7 15.08.2007
6266
6267 *) Изменение: теперь пути, указанные в директивах include,
6268 auth_basic_user_file, perl_modules, ssl_certificate,
6269 ssl_certificate_key и ssl_client_certificate, определяются
6270 относительно каталога конфигурационного файла nginx.conf, а не
6271 относительно префикса.
6272
6273 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
6274
6275 *) Изменение: для обновления на лету версий 0.1.x создан специальный
6276 сценарий make upgrade1.
6277
6278 *) Добавление: директивы server_name и valid_referers поддерживают
6279 регулярные выражения.
6280
6281 *) Добавление: директива server в блоке upstream поддерживает параметр
6282 backup.
6283
6284 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6285 $r->discard_request_body.
6286
6287 *) Добавление: директива "add_header Last-Modified ..." меняет строку
6288 "Last-Modified" в заголовке ответа.
6289
6290 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
6291 отличным от 200, и после этого запроса соединение переходило в
6292 состояние keep-alive, то на следующий запрос nginx возвращал 400.
6293
6294 *) Исправление: если в директиве auth_http был задан неправильный адрес,
6295 то в рабочем процессе происходил segmentation fault.
6296
6297 *) Исправление: теперь по умолчанию nginx использует значение 511 для
6298 listen backlog на всех платформах, кроме FreeBSD.
6299 Спасибо Jiang Hong.
6300
6301 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
6302 upstream был помечен как down; ошибка появилась в 0.6.6.
6303
6304 *) Исправление: sendfilev() в Solaris теперь не используется при
6305 передаче тела запроса FastCGI-серверу через unix domain сокет.
6306
6307
6308 Изменения в nginx 0.6.6 30.07.2007
6309
6310 *) Добавление: параметр --sysconfdir=PATH в configure.
6311
6312 *) Добавление: именованные location'ы.
6313
6314 *) Добавление: переменную $args можно устанавливать с помощью set.
6315
6316 *) Добавление: переменная $is_args.
6317
6318 *) Исправление: равномерное распределение запросов к апстримам с
6319 большими весами.
6320
6321 *) Исправление: если клиент в почтовом прокси-сервере закрывал
6322 соединение, то nginx мог не закрывать соединение с бэкендом.
6323
6324 *) Исправление: при использовании одного хоста в качестве бэкендов для
6325 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
6326 только один порт - 80 или 443.
6327
6328 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
6329 более ранними версиями; ошибка появилась в 0.6.4.
6330
6331
6332 Изменения в nginx 0.6.5 23.07.2007
6333
6334 *) Добавление: переменная $nginx_version.
6335 Спасибо Николаю Гречуху.
6336
6337 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
6338 IMAP.
6339 Спасибо Максиму Дунину.
6340
6341 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
6342 SMTP.
6343 Спасибо Максиму Дунину.
6344
6345 *) Исправление: теперь nginx экранирует пробел в переменной
6346 $memcached_key.
6347
6348 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
6349 Спасибо Jiang Hong.
6350
6351 *) Исправление: незначительных потенциальных ошибок.
6352 Спасибо Coverity's Scan.
6353
6354
6355 Изменения в nginx 0.6.4 17.07.2007
6356
6357 *) Безопасность: при использовании директивы msie_refresh был возможен
6358 XSS.
6359 Спасибо Максиму Богуку.
6360
6361 *) Изменение: директивы proxy_store и fastcgi_store изменены.
6362
6363 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
6364
6365 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6366 Studio.
6367 Спасибо Андрею Нигматулину.
6368
6369 *) Изменение: обход ошибки в Sun Studio 12.
6370 Спасибо Jiang Hong.
6371
6372
6373 Изменения в nginx 0.6.3 12.07.2007
6374
6375 *) Добавление: директивы proxy_store и fastcgi_store.
6376
6377 *) Исправление: при использовании директивы auth_http_header в рабочем
6378 процессе мог произойти segmentation fault.
6379 Спасибо Максиму Дунину.
6380
6381 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
6382 не был разрешён, то в рабочем процессе происходил segmentation fault.
6383
6384 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
6385 в рабочем процессе мог произойти segmentation fault.
6386
6387 *) Исправление: в рабочем процессе мог произойти segmentation fault,
6388 если использовался метод eventport.
6389
6390 *) Исправление: директивы proxy_ignore_client_abort и
6391 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
6392
6393
6394 Изменения в nginx 0.6.2 09.07.2007
6395
6396 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
6397 nginx передавал клиенту мусор в таких заголовках.
6398
6399
6400 Изменения в nginx 0.6.1 17.06.2007
6401
6402 *) Исправление: в парсинге SSI.
6403
6404 *) Исправление: при использовании удалённого подзапроса в SSI
6405 последующий подзапрос локального файла мог отдаваться клиенту в
6406 неверном порядке.
6407
6408 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
6409 передавались не полностью.
6410
6411 *) Исправление: значение perl'овой переменной $$ модуля
6412 ngx_http_perl_module было равно номеру главного процесса.
6413
6414
6415 Изменения в nginx 0.6.0 14.06.2007
6416
6417 *) Добавление: директивы "server_name", "map", and "valid_referers"
6418 поддерживают маски вида "www.example.*".
6419
6420
6421 Изменения в nginx 0.5.25 11.06.2007
6422
6423 *) Исправление: nginx не собирался с параметром
6424 --without-http_rewrite_module; ошибка появилась в 0.5.24.
6425
6426
6427 Изменения в nginx 0.5.24 06.06.2007
6428
6429 *) Безопасность: директива ssl_verify_client не работала, если запрос
6430 выполнялся по протоколу HTTP/0.9.
6431
6432 *) Исправление: при использовании сжатия часть ответа могла передаваться
6433 несжатой; ошибка появилась в 0.5.23.
6434
6435
6436 Изменения в nginx 0.5.23 04.06.2007
6437
6438 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
6439 Server Name Indication.
6440
6441 *) Добавление: директива fastcgi_catch_stderr.
6442 Спасибо Николаю Гречуху, проект OWOX.
6443
6444 *) Исправление: на Линуксе в основном процессе происходил segmentation
6445 fault, если два виртуальных сервера должны bind()ится к
6446 пересекающимся портам.
6447
6448 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6449 perl поддерживал потоки, то во время второй переконфигурации
6450 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
6451
6452 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6453
6454
6455 Изменения в nginx 0.5.22 29.05.2007
6456
6457 *) Исправление: большое тело запроса могло не передаваться бэкенду;
6458 ошибка появилась в 0.5.21.
6459
6460
6461 Изменения в nginx 0.5.21 28.05.2007
6462
6463 *) Исправление: если внутри сервера описано больше примерно десяти
6464 location'ов, то location'ы, заданные с помощью регулярного выражения,
6465 могли выполняться не в том, порядке, в каком они описаны.
6466
6467 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
6468 если 33-тий по счёту или последующий бэкенд упал.
6469 Спасибо Антону Поварову.
6470
6471 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
6472 произойти bus error.
6473 Спасибо Андрею Нигматулину.
6474
6475 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6476
6477
6478 Изменения в nginx 0.5.20 07.05.2007
6479
6480 *) Добавление: директива sendfile_max_chunk.
6481
6482 *) Добавление: переменные "$http_...", "$sent_http_..." и
6483 "$upstream_http_..." можно менять директивой set.
6484
6485 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
6486 рабочем процессе мог произойти segmentation fault.
6487
6488 *) Исправление: завершающая строка multipart range ответа передавалась
6489 неверно.
6490 Спасибо Evan Miller.
6491
6492 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6493 Studio.
6494 Спасибо Андрею Нигматулину.
6495
6496 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
6497 Спасибо Андрею Нигматулину.
6498
6499
6500 Изменения в nginx 0.5.19 24.04.2007
6501
6502 *) Изменение: значение переменной $request_time теперь записывается с
6503 точностью до миллисекунд.
6504
6505 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
6506 переименован в $r->flush.
6507
6508 *) Добавление: переменная $upstream_addr.
6509
6510 *) Добавление: директивы proxy_headers_hash_max_size и
6511 proxy_headers_hash_bucket_size.
6512 Спасибо Володымыру Костырко.
6513
6514 *) Исправление: при использовании sendfile и limit_rate на 64-битных
6515 платформах нельзя было передавать файлы больше 2G.
6516
6517 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
6518 было передавать файлы больше 2G.
6519
6520
6521 Изменения в nginx 0.5.18 19.04.2007
6522
6523 *) Добавление: модуль ngx_http_sub_filter_module.
6524
6525 *) Добавление: переменные "$upstream_http_...".
6526
6527 *) Добавление: теперь переменные $upstream_status и
6528 $upstream_response_time содержат данные о всех обращениях к
6529 апстримам, сделанным до X-Accel-Redirect.
6530
6531 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6532 perl не поддерживал multiplicity, то после первой переконфигурации и
6533 после получения любого сигнала в основном процессе происходил
6534 segmentation fault; ошибка появилась в 0.5.9.
6535
6536 *) Исправление: если perl не поддерживал multiplicity, то после
6537 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
6538
6539
6540 Изменения в nginx 0.5.17 02.04.2007
6541
6542 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
6543
6544 *) Добавление: теперь nginx поддерживает директиву include внутри блока
6545 types.
6546
6547 *) Исправление: использование переменной $document_root в директиве root
6548 и alias запрещено: оно вызывало рекурсивное переполнение стека.
6549
6550 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6551
6552 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
6553 $uri) возвращали старое закэшированное значение.
6554
6555
6556 Изменения в nginx 0.5.16 26.03.2007
6557
6558 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
6559 использовалась сеть класса С.
6560 Спасибо Павлу Ярковому.
6561
6562 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
6563 был указан charset и строка завершалась символом ";", то в рабочем
6564 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
6565
6566 *) Исправление: ошибки "[alert] zero size buf" при работе с
6567 FastCGI-сервером, если тело запроса, записанное во временный файл,
6568 было кратно 32K.
6569
6570 *) Исправление: nginx не собирался на Solaris без параметра
6571 --with-debug; ошибка появилась в 0.5.15.
6572
6573
6574 Изменения в nginx 0.5.15 19.03.2007
6575
6576 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
6577 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и
6578 xclient.
6579 Спасибо Антону Южанинову и Максиму Дунину.
6580
6581 *) Добавление: теперь keep-alive соединения закрываются сразу же по
6582 получении сигнала переконфигурации.
6583
6584 *) Изменение: директивы imap и auth переименованы соответственно в mail
6585 и pop3_auth.
6586
6587 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
6588 был разрешён метод APOP, то в рабочем процессе происходил
6589 segmentation fault.
6590
6591 *) Исправление: при использовании директивы starttls only в протоколе
6592 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
6593
6594 *) Исправление: рабочие процессы не выходили после переконфигурации и не
6595 переоткрывали логи, если использовался метод eventport.
6596
6597 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
6598 зациклиться.
6599
6600 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
6601 используются методы eventport или /dev/poll.
6602
6603
6604 Изменения в nginx 0.5.14 23.02.2007
6605
6606 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
6607 конфигурационного файла.
6608
6609
6610 Изменения в nginx 0.5.13 19.02.2007
6611
6612 *) Добавление: методы COPY и MOVE.
6613
6614 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
6615 запросов, переданных по keep-alive соединению.
6616
6617 *) Исправление: nginx не работал на 64-битном big-endian Linux.
6618 Спасибо Андрею Нигматулину.
6619
6620 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
6621 теперь сразу закрывает соединение, а не по таймауту.
6622
6623 *) Исправление: если при использовании метода epoll клиент закрывал
6624 преждевременно соединение со своей стороны, то nginx закрывал это
6625 соединение только по истечении таймаута на передачу.
6626
6627 *) Исправление: nginx не собирался на платформах, отличных от i386,
6628 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6629
6630
6631 Изменения в nginx 0.5.12 12.02.2007
6632
6633 *) Исправление: nginx не собирался на платформах, отличных от i386,
6634 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6635
6636 *) Исправление: при использовании временных файлов в время работы с
6637 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
6638 ошибка появилась в 0.5.8.
6639
6640 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
6641 то в рабочем процессе мог произойти segmentation fault.
6642
6643 *) Исправление: ngx_http_perl_module не собирался на Solaris.
6644
6645
6646 Изменения в nginx 0.5.11 05.02.2007
6647
6648 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
6649 Спасибо Chris McGrath.
6650
6651 *) Исправление: ответ был неверным, если запрашивалось несколько
6652 диапазонов; ошибка появилась в 0.5.6.
6653
6654 *) Исправление: директива create_full_put_path не могла создавать
6655 промежуточные каталоги, если не была установлена директива
6656 dav_access.
6657 Спасибо Evan Miller.
6658
6659 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
6660 записываться код "0".
6661
6662 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6663 произойти segmentation fault.
6664
6665
6666 Изменения в nginx 0.5.10 26.01.2007
6667
6668 *) Исправление: во время обновления исполняемого файла новый процесс не
6669 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
6670
6671 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6672 произойти segmentation fault; ошибка появилась в 0.5.1.
6673
6674
6675 Изменения в nginx 0.5.9 25.01.2007
6676
6677 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
6678 использует значение переменной $memcached_key.
6679
6680 *) Добавление: переменная $memcached_key.
6681
6682 *) Добавление: параметр clean в директиве client_body_in_file_only.
6683
6684 *) Добавление: директива env.
6685
6686 *) Добавление: директива sendfile работает внутри блока if.
6687
6688 *) Добавление: теперь при ошибке записи в access_log nginx записывает
6689 сообщение в error_log, но не чаще одного раза в минуту.
6690
6691 *) Исправление: директива "access_log off" не всегда запрещала запись в
6692 лог.
6693
6694
6695 Изменения в nginx 0.5.8 19.01.2007
6696
6697 *) Исправление: если использовалась директива
6698 "client_body_in_file_only on" и тело запроса было небольшое, то мог
6699 произойти segmentation fault.
6700
6701 *) Исправление: происходил segmentation fault, если использовались
6702 директивы "client_body_in_file_only on" и
6703 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
6704 делался переход к следующему бэкенду.
6705
6706 *) Исправление: если при использовании директивы "proxy_buffering off"
6707 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
6708 заданному директивой send_timeout; ошибка появилась в 0.4.7.
6709
6710 *) Исправление: если при использовании метода epoll клиент закрывал
6711 преждевременно соединение со своей стороны, то nginx закрывал это
6712 соединение только по истечении таймаута на передачу.
6713
6714 *) Исправление: ошибки "[alert] zero size buf" при работе с
6715 FastCGI-сервером.
6716
6717 *) Исправление ошибок в директиве limit_zone.
6718
6719
6720 Изменения в nginx 0.5.7 15.01.2007
6721
6722 *) Добавление: оптимизация использования памяти в ssl_session_cache.
6723
6724 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
6725
6726 *) Исправление: на старте или во время переконфигурации происходил
6727 segmentation fault, если директивы ssl_session_cache или limit_zone
6728 использовались на 64-битных платформах.
6729
6730 *) Исправление: при использовании директив add_before_body или
6731 add_after_body происходил segmentation fault, если в заголовке ответа
6732 нет строки "Content-Type".
6733
6734 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
6735 потоков.
6736 Спасибо Дену Иванову.
6737
6738 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
6739
6740
6741 Изменения в nginx 0.5.6 09.01.2007
6742
6743 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
6744 кроме GET, HEAD и POST.
6745
6746 *) Добавление: модуль ngx_http_limit_zone_module.
6747
6748 *) Добавление: переменная $binary_remote_addr.
6749
6750 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
6751 ngx_imap_ssl_module.
6752
6753 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
6754
6755 *) Исправление: при использовании $r->sendfile() byte-ranges
6756 передавались неверно.
6757
6758
6759 Изменения в nginx 0.5.5 24.12.2006
6760
6761 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
6762
6763 *) Добавление: ключ -V.
6764
6765 *) Добавление: директива worker_rlimit_core поддерживает указание
6766 размера в K, M и G.
6767
6768 *) Исправление: модуль nginx.pm теперь может устанавливаться
6769 непривилегированным пользователем.
6770
6771 *) Исправление: при использовании методов $r->request_body или
6772 $r->request_body_file мог произойти segmentation fault.
6773
6774 *) Исправление: ошибок, специфичных для платформы ppc.
6775
6776
6777 Изменения в nginx 0.5.4 15.12.2006
6778
6779 *) Добавление: директиву perl можно использовать внутри блока
6780 limit_except.
6781
6782 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
6783 заголовке запроса для метода DELETE.
6784
6785 *) Исправление: при использовании одного параметра в директиве
6786 dav_access nginx мог сообщить об ошибке в конфигурации.
6787
6788 *) Исправление: при использовании переменной $host мог произойти
6789 segmentation fault; ошибка появилась в 0.4.14.
6790
6791
6792 Изменения в nginx 0.5.3 13.12.2006
6793
6794 *) Добавление: модуль ngx_http_perl_module поддерживает методы
6795 $r->status, $r->log_error и $r->sleep.
6796
6797 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
6798 конфигурации nginx'а.
6799
6800 *) Исправление: метод $r->has_request_body не работал.
6801
6802
6803 Изменения в nginx 0.5.2 11.12.2006
6804
6805 *) Исправление: если в директивах proxy_pass использовалось имя,
6806 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
6807 ошибка появилась в 0.5.1.
6808
6809
6810 Изменения в nginx 0.5.1 11.12.2006
6811
6812 *) Исправление: директива post_action могла не работать после неудачного
6813 завершения запроса.
6814
6815 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
6816 Спасибо Bron Gondwana.
6817
6818 *) Исправление: при указании в директиве fastcgi_pass имени описанного
6819 upstream'а выдавалось сообщение "no port in upstream"; ошибка
6820 появилась в 0.5.0.
6821
6822 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6823 использовались одинаковых имена серверов, но с разными портами, то
6824 эти директивы использовали первый описанный порт; ошибка появилась в
6825 0.5.0.
6826
6827 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6828 использовались unix domain сокеты, то эти директивы использовали
6829 первый описанный сокет; ошибка появилась в 0.5.0.
6830
6831 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
6832 если он был указан в последней строке файла паролей и после пароля не
6833 было перевода строки, возврата каретки или символа ":".
6834
6835 *) Исправление: переменная $upstream_response_time могла быть равна
6836 "0.000", хотя время обработки было больше 1 миллисекунды.
6837
6838
6839 Изменения в nginx 0.5.0 04.12.2006
6840
6841 *) Изменение: параметры в виде "%name" в директиве log_format больше не
6842 поддерживаются.
6843
6844 *) Изменение: директивы proxy_upstream_max_fails,
6845 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
6846 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
6847 memcached_upstream_fail_timeout больше не поддерживаются.
6848
6849 *) Добавление: директива server в блоке upstream поддерживает параметры
6850 max_fails, fail_timeout и down.
6851
6852 *) Добавление: директива ip_hash в блоке upstream.
6853
6854 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа
6855 сервера аутентификации IMAP/POP3 прокси.
6856
6857 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
6858 появилась в 0.4.14.
6859
6860
6861 Изменения в nginx 0.4.14 27.11.2006
6862
6863 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
6864
6865 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
6866 Linux и NetBSD.
6867
6868 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
6869 поддержкой потоков; ошибка появилась в 0.3.38.
6870
6871 *) Исправление: ngx_http_perl_module не работал корректно, если перл
6872 вызывался рекурсивно.
6873
6874 *) Исправление: nginx игнорировал имя сервера в строке запроса.
6875
6876 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
6877 процесс мог зациклиться.
6878
6879 *) Исправление: при изменении системного времени переменная
6880 $upstream_response_time могла быть отрицательной.
6881
6882 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
6883 прокси не передавался параметр Auth-Login-Attempt.
6884
6885 *) Исправление: при ошибке соединения с сервером аутентификации
6886 IMAP/POP3 прокси мог произойти segmentation fault.
6887
6888
6889 Изменения в nginx 0.4.13 15.11.2006
6890
6891 *) Добавление: директиву proxy_pass можно использовать внутри блока
6892 limit_except.
6893
6894 *) Добавление: директива limit_except поддерживает все WebDAV методы.
6895
6896 *) Исправление: при использовании директивы add_before_body без
6897 директивы add_after_body ответ передавался не полностью.
6898
6899 *) Исправление: большое тело запроса не принималось, если использовались
6900 метод epoll и deferred accept().
6901
6902 *) Исправление: для ответов модуля ngx_http_autoindex_module не
6903 выставлялась кодировка; ошибка появилась в 0.3.50.
6904
6905 *) Исправление: ошибки "[alert] zero size buf" при работе с
6906 FastCGI-сервером;
6907
6908 *) Исправление: параметр конфигурации --group= игнорировался.
6909 Спасибо Thomas Moschny.
6910
6911 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
6912 в 0.3.50.
6913
6914
6915 Изменения в nginx 0.4.12 31.10.2006
6916
6917 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6918 $r->variable.
6919
6920 *) Исправление: при включении в ответ большого статического файла с
6921 помощью SSI ответ мог передаваться не полностью.
6922
6923 *) Исправление: nginx не убирал "#fragment" в URI.
6924
6925
6926 Изменения в nginx 0.4.11 25.10.2006
6927
6928 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
6929
6930 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6931 $r->allow_ranges.
6932
6933 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
6934 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
6935
6936
6937 Изменения в nginx 0.4.10 23.10.2006
6938
6939 *) Добавление: POP3 прокси поддерживает APOP.
6940
6941 *) Исправление: при использовании методов select, poll и /dev/poll во
6942 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
6943 нагружал процессор.
6944
6945 *) Исправление: при использовании переменной $server_addr в директиве
6946 map мог произойти segmentation fault.
6947
6948 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
6949 для полных ответов; ошибка появилась в 0.4.7.
6950
6951 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
6952 0.4.9.
6953
6954
6955 Изменения в nginx 0.4.9 13.10.2006
6956
6957 *) Добавление: параметр set в команде SSI include.
6958
6959 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
6960 модуля nginx.pm.
6961
6962
6963 Изменения в nginx 0.4.8 11.10.2006
6964
6965 *) Исправление: если до команды SSI include с параметром wait
6966 выполнялась ещё одна команда SSI include, то параметр wait мог не
6967 работать.
6968
6969 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
6970 полных ответов.
6971 Спасибо Алексею Ковырину.
6972
6973
6974 Изменения в nginx 0.4.7 10.10.2006
6975
6976 *) Добавление: модуль ngx_http_flv_module.
6977
6978 *) Добавление: переменная $request_body_file.
6979
6980 *) Добавление: директивы charset и source_charset поддерживают
6981 переменные.
6982
6983 *) Исправление: если до команды SSI include с параметром wait
6984 выполнялась ещё одна команда SSI include, то параметр wait мог не
6985 работать.
6986
6987 *) Исправление: при использовании директивы "proxy_buffering off" или
6988 при работе с memcached соединения могли не закрываться по таймауту.
6989
6990 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
6991 amd64, sparc64 и ppc64.
6992
6993
6994 Изменения в nginx 0.4.6 06.10.2006
6995
6996 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
6997 amd64, sparc64 и ppc64.
6998
6999 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
7000 chunk'ами, если длина ответа в методе
7001 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
7002
7003 *) Исправление: после перенаправления ошибки с помощью директивы
7004 error_page любая директива модуля ngx_http_rewrite_module возвращала
7005 эту ошибку; ошибка появилась в 0.4.4.
7006
7007
7008 Изменения в nginx 0.4.5 02.10.2006
7009
7010 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
7011 в 0.4.4.
7012
7013
7014 Изменения в nginx 0.4.4 02.10.2006
7015
7016 *) Добавление: переменная $scheme.
7017
7018 *) Добавление: директива expires поддерживает параметр max.
7019
7020 *) Добавление: директива include поддерживает маску "*".
7021 Спасибо Jonathan Dance.
7022
7023 *) Исправление: директива return всегда изменяла код ответа,
7024 перенаправленного директивой error_page.
7025
7026 *) Исправление: происходил segmentation fault, если в методе PUT
7027 передавалось тело нулевой длины.
7028
7029 *) Исправление: при использовании переменных в директиве proxy_redirect
7030 редирект изменялся неверно.
7031
7032
7033 Изменения в nginx 0.4.3 26.09.2006
7034
7035 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
7036 error_page.
7037
7038 *) Добавление: поддержка Solaris 10 event ports.
7039
7040 *) Добавление: модуль ngx_http_browser_module.
7041
7042 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
7043 помощью директивы error_page мог произойти segmentation fault.
7044
7045 *) Исправление: происходил segmentation fault, если в директиве
7046 proxy_pass использовался unix domain сокет; ошибка появилась в
7047 0.3.47.
7048
7049 *) Исправление: SSI не работал с ответами memcached и
7050 небуферизированными проксированными ответами.
7051
7052 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
7053
7054
7055 Изменения в nginx 0.4.2 14.09.2006
7056
7057 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
7058 появилась в 0.4.1.
7059
7060
7061 Изменения в nginx 0.4.1 14.09.2006
7062
7063 *) Исправление: совместимость с DragonFlyBSD.
7064 Спасибо Павлу Назарову.
7065
7066 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
7067 файлов больше 2G.
7068
7069 *) Добавление: теперь на Linux nginx для статических запросов использует
7070 флаг O_NOATIME.
7071 Спасибо Yusuf Goolamabbas.
7072
7073
7074 Изменения в nginx 0.4.0 30.08.2006
7075
7076 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
7077 фазы init module в фазу HTTP postconfiguration.
7078
7079 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
7080 считывается заранее: нужно явно инициировать чтение с помощью метода
7081 $r->has_request_body.
7082
7083 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
7084 DECLINED.
7085
7086 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
7087 заголовка "Date" для метода PUT.
7088
7089 *) Добавление: директива ssi работает внутри блока if.
7090
7091 *) Исправление: происходил segmentation fault, если в директиве index
7092 использовалась переменные и при этом первое имя индексного файла было
7093 без переменных; ошибка появилась в 0.1.29.
7094
7095
7096 Изменения в nginx 0.3.61 28.08.2006
7097
7098 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
7099
7100 *) Добавление: директива msie_refresh.
7101
7102 *) Добавление: директива recursive_error_pages.
7103
7104 *) Исправление: директива rewrite возвращала неправильный редирект, если
7105 редирект включал в себя выделенные закодированные символы из
7106 оригинального URI.
7107
7108
7109 Изменения в nginx 0.3.60 18.08.2006
7110
7111 *) Исправление: во время перенаправления ошибки рабочий процесс мог
7112 зациклиться; ошибка появилась в 0.3.59.
7113
7114
7115 Изменения в nginx 0.3.59 16.08.2006
7116
7117 *) Добавление: теперь можно делать несколько перенаправлений через
7118 директиву error_page.
7119
7120 *) Исправление: директива dav_access не поддерживала три параметра.
7121
7122 *) Исправление: директива error_page не изменяла строку "Content-Type"
7123 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
7124 в 0.3.58.
7125
7126
7127 Изменения в nginx 0.3.58 14.08.2006
7128
7129 *) Добавление: директива error_page поддерживает переменные.
7130
7131 *) Изменение: теперь на Linux используется интерфейс procfs вместо
7132 sysctl.
7133
7134 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
7135 "Content-Type" наследуется из первоначального ответа.
7136
7137 *) Исправление: директива error_page не перенаправляла ошибку 413.
7138
7139 *) Исправление: завершающий "?" не удалял старые аргументы, если в
7140 переписанном URI не было новых аргументов.
7141
7142 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
7143
7144
7145 Изменения в nginx 0.3.57 09.08.2006
7146
7147 *) Добавление: переменная $ssl_client_serial.
7148
7149 *) Исправление: в операторе "!-e" в директиве if.
7150 Спасибо Андриану Буданцову.
7151
7152 *) Исправление: при проверке клиентского сертификата nginx не передавал
7153 клиенту информацию о требуемых сертификатах.
7154
7155 *) Исправление: переменная $document_root не поддерживала переменные в
7156 директиве root.
7157
7158
7159 Изменения в nginx 0.3.56 04.08.2006
7160
7161 *) Добавление: директива dav_access.
7162
7163 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
7164 "!-e", "-x" и "!-x".
7165
7166 *) Исправление: при записи в access_log некоторых передаваемых клиенту
7167 строк заголовков происходил segmentation fault, если запрос возвращал
7168 редирект.
7169
7170
7171 Изменения в nginx 0.3.55 28.07.2006
7172
7173 *) Добавление: параметр stub в команде SSI include.
7174
7175 *) Добавление: команда SSI block.
7176
7177 *) Добавление: скрипт unicode2nginx добавлен в contrib.
7178
7179 *) Исправление: если root был задан только переменной, то корень
7180 задавался относительно префикса сервера.
7181
7182 *) Исправление: если в запросе был "//" или "/.", и после этого
7183 закодированные символы в виде "%XX", то проксируемый запрос
7184 передавался незакодированным.
7185
7186 *) Исправление: метод $r->header_in("Cookie") модуля
7187 ngx_http_perl_module теперь возвращает все строки "Cookie" в
7188 заголовке запроса.
7189
7190 *) Исправление: происходил segmentation fault, если использовался
7191 "client_body_in_file_only on" и делался переход к следующему бэкенду.
7192
7193 *) Исправление: при некоторых условиях во время переконфигурации коды
7194 символов внутри директивы charset_map могли считаться неверными;
7195 ошибка появилась в 0.3.50.
7196
7197
7198 Изменения в nginx 0.3.54 11.07.2006
7199
7200 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
7201
7202 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
7203 memcached_next_upstream поддерживают параметр off.
7204
7205 *) Добавление: директива debug_connection поддерживает запись адресов в
7206 формате CIDR.
7207
7208 *) Исправление: при перекодировании ответа проксированного сервера или
7209 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
7210 полностью.
7211
7212 *) Исправление: переменная $upstream_response_time содержала время
7213 только первого обращения к бэкенду.
7214
7215 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
7216 в 0.3.53.
7217
7218
7219 Изменения в nginx 0.3.53 07.07.2006
7220
7221 *) Изменение: директива add_header добавляет строки в ответы с кодом
7222 204, 301 и 302.
7223
7224 *) Добавление: директива server в блоке upstream поддерживает параметр
7225 weight.
7226
7227 *) Добавление: директива server_name поддерживает маску "*".
7228
7229 *) Добавление: nginx поддерживает тело запроса больше 2G.
7230
7231 *) Исправление: если при использовании "satisfy_any on" клиент успешно
7232 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
7233 forbidden by rule".
7234
7235 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
7236 409.
7237
7238 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
7239 ошибку, nginx продолжал проксирование.
7240
7241
7242 Изменения в nginx 0.3.52 03.07.2006
7243
7244 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
7245 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
7246 ошибку 405.
7247
7248 *) Исправление: при использовании ограничения скорости рабочий процесс
7249 мог зациклиться; ошибка появилась в 0.3.37.
7250
7251 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
7252 "unknown charset", даже если перекодировка не требовалась; ошибка
7253 появилась в 0.3.50.
7254
7255 *) Исправление: если в результате запроса PUT возвращался код 409, то
7256 временный файл не удалялся.
7257
7258
7259 Изменения в nginx 0.3.51 30.06.2006
7260
7261 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
7262 ошибка появилась в 0.3.50.
7263
7264
7265 Изменения в nginx 0.3.50 28.06.2006
7266
7267 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
7268 переименованы соответственно в proxy_intercept_errors и
7269 fastcgi_intercept_errors.
7270
7271 *) Добавление: модуль ngx_http_charset_module поддерживает
7272 перекодирование из однобайтных кодировок в UTF-8 и обратно.
7273
7274 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7275 "X-Accel-Charset" в ответе бэкенда.
7276
7277 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
7278 только если также использовался символ "$".
7279
7280 *) Исправление: при некоторых условиях в SSI после вставки могла быть
7281 добавлена строка "<!--".
7282
7283 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
7284 то при использовании небуферизированного проксировании не закрывалось
7285 соединение с клиентом.
7286
7287
7288 Изменения в nginx 0.3.49 31.05.2006
7289
7290 *) Исправление: в директиве set.
7291
7292 *) Исправление: при включении в ssi двух и более подзапросов,
7293 обрабатываемых через FastCGI, вместо вывода второго и остальных
7294 подзапросов в ответ включался вывод первого подзапроса.
7295
7296
7297 Изменения в nginx 0.3.48 29.05.2006
7298
7299 *) Изменение: теперь модуль ngx_http_charset_module работает для
7300 подзапросов, в ответах которых нет строки заголовка "Content-Type".
7301
7302 *) Исправление: если в директиве proxy_pass не было URI, то директива
7303 "proxy_redirect default" добавляла в переписанный редирект в начало
7304 лишний слэш.
7305
7306 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
7307 GET, теперь это делается только для редиректов, выполняемых с помощью
7308 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
7309 0.3.42.
7310
7311 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
7312 с поддержкой потоков; ошибка появилась в 0.3.46.
7313
7314
7315 Изменения в nginx 0.3.47 23.05.2006
7316
7317 *) Добавление: директива upstream.
7318
7319 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
7320 всегда убирается.
7321
7322
7323 Изменения в nginx 0.3.46 11.05.2006
7324
7325 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
7326 fastcgi_hide_header и fastcgi_pass_header.
7327
7328 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
7329 proxy_pass_server упразднены.
7330
7331 *) Добавление: в режиме прокси поддерживается строка заголовка
7332 "X-Accel-Buffering" в ответе бэкенда.
7333
7334 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
7335 ngx_http_perl_module.
7336
7337
7338 Изменения в nginx 0.3.45 06.05.2006
7339
7340 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
7341 ssl_client_certificate.
7342
7343 *) Изменение: теперь переменная $request_method возвращает метод только
7344 основного запроса.
7345
7346 *) Изменение: в таблице перекодировки koi-win изменены коды символа
7347 &deg;.
7348
7349 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
7350 номера.
7351
7352 *) Исправление: если nginx распределял запросы на несколько машин, то
7353 при падении одной из них запросы, предназначенные для этой машины,
7354 перенаправлялись только на одну машину вместо того, чтобы равномерно
7355 распределяться между остальными.
7356
7357
7358 Изменения в nginx 0.3.44 04.05.2006
7359
7360 *) Добавление: параметр wait в команде SSI include.
7361
7362 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
7363 белорусские символы.
7364
7365 *) Исправление: в SSI.
7366
7367
7368 Изменения в nginx 0.3.43 26.04.2006
7369
7370 *) Исправление: в SSI.
7371
7372
7373 Изменения в nginx 0.3.42 26.04.2006
7374
7375 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
7376
7377 *) Исправление: ошибки при использовании в директиве rewrite одного и
7378 того же выделения более одного раза.
7379
7380 *) Исправление: в лог не записывались переменные
7381 $sent_http_content_type, $sent_http_content_length,
7382 $sent_http_last_modified, $sent_http_connection,
7383 $sent_http_keep_alive и $sent_http_transfer_encoding.
7384
7385 *) Исправление: переменная $sent_http_cache_control возвращала
7386 содержимое только одной строки "Cache-Control" в заголовке ответа.
7387
7388
7389 Изменения в nginx 0.3.41 21.04.2006
7390
7391 *) Добавление: ключ -v.
7392
7393 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
7394 segmentation fault.
7395
7396 *) Исправление: в обработке FastCGI.
7397
7398 *) Исправление: если путь к перловым модулям не был указан с помощью
7399 --with-perl_modules_path=PATH или директивы perl_modules, то на
7400 старте происходил segmentation fault.
7401
7402
7403 Изменения в nginx 0.3.40 19.04.2006
7404
7405 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
7406
7407 *) Добавление: директива create_full_put_path.
7408
7409 *) Добавление: переменная $limit_rate.
7410
7411
7412 Изменения в nginx 0.3.39 17.04.2006
7413
7414 *) Добавление: директива uninitialized_variable_warn; уровень
7415 логгирования сообщения о неинициализированной переменной понижен с
7416 уровня alert на warn.
7417
7418 *) Добавление: директива override_charset.
7419
7420 *) Изменение: при использовании неизвестной переменной в SSI-командах
7421 echo и if expr='$name' теперь не записывается в лог сообщение о
7422 неизвестной переменной.
7423
7424 *) Исправление: счётчик активных соединений рос при превышении лимита
7425 соединений, заданного директивой worker_connections; ошибка появилась
7426 в 0.2.0.
7427
7428 *) Исправление: при некоторых условия ограничение скорости соединения
7429 могло не работать; ошибка появилась в 0.3.38.
7430
7431
7432 Изменения в nginx 0.3.38 14.04.2006
7433
7434 *) Добавление: модуль ngx_http_dav_module.
7435
7436 *) Изменение: оптимизация модуля ngx_http_perl_module.
7437 Спасибо Сергею Скворцову.
7438
7439 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7440 $r->request_body_file.
7441
7442 *) Добавление: директива client_body_in_file_only.
7443
7444 *) Изменение: теперь при переполнении диска nginx пытается писать
7445 access_log'и только раз в секунду.
7446 Спасибо Антону Южанинову и Максиму Дунину.
7447
7448 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
7449 при значениях больше 100 Kbyte/s.
7450 Спасибо ForJest.
7451
7452 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
7453 символы "\r" и "\n" в логине и пароле в закодированном виде.
7454 Спасибо Максиму Дунину.
7455
7456
7457 Изменения в nginx 0.3.37 07.04.2006
7458
7459 *) Добавление: директива limit_except.
7460
7461 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
7462 "!-f".
7463
7464 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7465 $r->request_body.
7466
7467 *) Исправление: в модуле ngx_http_addition_filter_module.
7468
7469
7470 Изменения в nginx 0.3.36 05.04.2006
7471
7472 *) Добавление: модуль ngx_http_addition_filter_module.
7473
7474 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
7475 внутри блока if.
7476
7477 *) Добавление: директивы proxy_ignore_client_abort и
7478 fastcgi_ignore_client_abort.
7479
7480 *) Добавление: переменная $request_completion.
7481
7482 *) Добавление: модуль ngx_http_perl_module поддерживает методы
7483 $r->request_method и $r->remote_addr.
7484
7485 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
7486
7487 *) Исправление: строка "\/" в начале выражения команды if модуля
7488 ngx_http_ssi_module воспринималась неверно.
7489
7490 *) Исправление: в использовании регулярных выражениях в команде if
7491 модуля ngx_http_ssi_module.
7492
7493 *) Исправление: при задании относительного пути в директивах
7494 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
7495 perl_modules использовался каталог относительно текущего каталога, а
7496 не относительно префикса сервера.
7497
7498
7499 Изменения в nginx 0.3.35 22.03.2006
7500
7501 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
7502 для первой директивы listen; ошибка появилась в 0.3.31.
7503
7504 *) Исправление: в директиве proxy_pass без URI при использовании в
7505 подзапросе.
7506
7507
7508 Изменения в nginx 0.3.34 21.03.2006
7509
7510 *) Добавление: директива add_header поддерживает переменные.
7511
7512
7513 Изменения в nginx 0.3.33 15.03.2006
7514
7515 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
7516 fastcgi_next_upstream.
7517
7518 *) Исправление: ngx_http_perl_module не работал со встроенным в
7519 конфигурационный файл кодом, если он не начинался сразу же с "sub".
7520
7521 *) Исправление: в директиве post_action.
7522
7523
7524 Изменения в nginx 0.3.32 11.03.2006
7525
7526 *) Исправление: удаление отладочного логгирования на старте и при
7527 переконфигурации; ошибка появилась в 0.3.31.
7528
7529
7530 Изменения в nginx 0.3.31 10.03.2006
7531
7532 *) Изменение: теперь nginx передаёт неверные ответы проксированного
7533 бэкенда.
7534
7535 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
7536
7537 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
7538
7539 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
7540 64-битном ядре MacOSX.
7541 Спасибо Андрею Нигматулину.
7542
7543 *) Исправление: если внутри одного сервера описаны несколько директив
7544 listen, слушающих на разных адресах, то имена серверов вида
7545 "*.domain.tld" работали только для первого адреса; ошибка появилась в
7546 0.3.18.
7547
7548 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7549 не передавались запросы с телом, записанным во временный файл.
7550
7551 *) Исправление: совместимость с perl 5.8.8.
7552
7553
7554 Изменения в nginx 0.3.30 22.02.2006
7555
7556 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
7557 с уровня crit.
7558
7559 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
7560 ngx_http_ssi_filter_module.
7561
7562 *) Исправление: nginx не собирался на i386 платформе, если использовался
7563 PIC; ошибка появилась в 0.3.27.
7564
7565
7566 Изменения в nginx 0.3.29 20.02.2006
7567
7568 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
7569 FastCGI передаёт большое количество предупреждений перед ответом.
7570
7571 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
7572 строка заголовка "Transfer-Encoding: chunked".
7573
7574 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
7575 передавал полные строки заголовка ответа в отдельных FastCGI записях.
7576
7577 *) Исправление: если в директиве post_action был указан проксируемый
7578 URI, то он выполнялся только после успешного завершения запроса.
7579
7580
7581 Изменения в nginx 0.3.28 16.02.2006
7582
7583 *) Добавление: директива restrict_host_names упразднена.
7584
7585 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
7586
7587 *) Исправление: при некоторых условиях проксированное соединение с
7588 клиентом завершалось преждевременно.
7589 Спасибо Владимиру Шутову.
7590
7591 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
7592 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
7593
7594 *) Исправление: директива post_action работала только после успешного
7595 завершения запроса.
7596
7597 *) Исправление: тело проксированного ответа, создаваемого директивой
7598 post_action, передавалось клиенту.
7599
7600
7601 Изменения в nginx 0.3.27 08.02.2006
7602
7603 *) Изменение: директивы variables_hash_max_size и
7604 variables_hash_bucket_size.
7605
7606 *) Добавление: переменная $body_bytes_sent доступна не только в
7607 директиве log_format.
7608
7609 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
7610
7611 *) Добавление: определение размера строки кэша распространённых
7612 процессоров при старте.
7613
7614 *) Добавление: директива accept_mutex теперь поддерживается посредством
7615 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
7616
7617 *) Добавление: директива lock_file и параметр автоконфигурации
7618 --with-lock-path=PATH.
7619
7620 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7621 не передавались запросы с телом.
7622
7623
7624 Изменения в nginx 0.3.26 03.02.2006
7625
7626 *) Изменение: директива optimize_host_names переименована в
7627 optimize_server_names.
7628
7629 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
7630 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
7631
7632
7633 Изменения в nginx 0.3.25 01.02.2006
7634
7635 *) Исправление: при неверной конфигурации на старте или во время
7636 переконфигурации происходил segmentation fault; ошибка появилась в
7637 0.3.24.
7638
7639
7640 Изменения в nginx 0.3.24 01.02.2006
7641
7642 *) Изменение: обход ошибки в kqueue во FreeBSD.
7643
7644 *) Исправление: ответ, создаваемый директивой post_action, теперь не
7645 передаётся клиенту.
7646
7647 *) Исправление: при использовании большого количества лог-файлов
7648 происходила утечка памяти.
7649
7650 *) Исправление: внутри одного location работала только первая директива
7651 proxy_redirect.
7652
7653 *) Исправление: на 64-битных платформах при старте мог произойти
7654 segmentation fault, если использовалось большое количество имён в
7655 директивах server_name; ошибка появилась в 0.3.18.
7656
7657
7658 Изменения в nginx 0.3.23 24.01.2006
7659
7660 *) Добавление: директива optimize_host_names.
7661
7662 *) Исправление: ошибки при использовании переменных в директивах path и
7663 alias.
7664
7665 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
7666 Linux и Solaris.
7667
7668
7669 Изменения в nginx 0.3.22 17.01.2006
7670
7671 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
7672 и $r->unescape.
7673
7674 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
7675 упразднён.
7676
7677 *) Исправление: если в директиве valid_referers указаны только none или
7678 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
7679
7680
7681 Изменения в nginx 0.3.21 16.01.2006
7682
7683 *) Добавление: модуль ngx_http_perl_module.
7684
7685 *) Изменение: директива valid_referers разрешает использовать рефереры
7686 совсем без URI.
7687
7688
7689 Изменения в nginx 0.3.20 11.01.2006
7690
7691 *) Исправление: ошибки в обработке SSI.
7692
7693 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
7694 виде /uri?args.
7695
7696
7697 Изменения в nginx 0.3.19 28.12.2005
7698
7699 *) Добавление: директивы path и alias поддерживают переменные.
7700
7701 *) Изменение: теперь директива valid_referers опять учитывает URI.
7702
7703 *) Исправление: ошибки в обработке SSI.
7704
7705
7706 Изменения в nginx 0.3.18 26.12.2005
7707
7708 *) Добавление: директива server_names поддерживает имена вида
7709 ".domain.tld".
7710
7711 *) Добавление: директива server_names использует хэш для имён вида
7712 "*.domain.tld" и более эффективный хэш для обычных имён.
7713
7714 *) Изменение: директивы server_names_hash_max_size и
7715 server_names_hash_bucket_size.
7716
7717 *) Изменение: директивы server_names_hash и server_names_hash_threshold
7718 упразднены.
7719
7720 *) Добавление: директива valid_referers использует хэш для имён сайтов.
7721
7722 *) Изменение: теперь директива valid_referers проверяет только имена
7723 сайтов без учёта URI.
7724
7725 *) Исправление: некоторые имена вида ".domain.tld" неверно
7726 обрабатывались модулем ngx_http_map_module.
7727
7728 *) Исправление: если конфигурационного файла не было, то происходил
7729 segmentation fault; ошибка появилась в 0.3.12.
7730
7731 *) Исправление: на 64-битных платформах при старте мог произойти
7732 segmentation fault; ошибка появилась в 0.3.16.
7733
7734
7735 Изменения в nginx 0.3.17 18.12.2005
7736
7737 *) Изменение: на Linux configure теперь проверяет наличие epoll и
7738 sendfile64() в ядре.
7739
7740 *) Добавление: директива map поддерживает доменные имена в формате
7741 ".domain.tld".
7742
7743 *) Исправление: во время SSL handshake не иcпользовались таймауты;
7744 ошибка появилась в 0.2.4.
7745
7746 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
7747
7748 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7749 по умолчанию использовался порт 80.
7750
7751
7752 Изменения в nginx 0.3.16 16.12.2005
7753
7754 *) Добавление: модуль ngx_http_map_module.
7755
7756 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
7757
7758 *) Добавление: директива ssi_value_length.
7759
7760 *) Добавление: директива worker_rlimit_core.
7761
7762 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
7763 Pentium 4 номер соединения в логах всегда был равен 1.
7764
7765 *) Исправление: команда config timefmt в SSI задавала неверный формат
7766 времени.
7767
7768 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
7769 использовании SSL соединений; ошибка появилась в 0.3.13.
7770 Спасибо Rob Mueller.
7771
7772 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
7773 ошибка появилась в 0.3.13.
7774
7775
7776 Изменения в nginx 0.3.15 07.12.2005
7777
7778 *) Добавление: новой код 444 в директиве return для закрытия соединения.
7779
7780 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
7781
7782 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
7783 соединений только при плавном выходе и включённой директиве
7784 debug_points.
7785
7786
7787 Изменения в nginx 0.3.14 05.12.2005
7788
7789 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
7790 в 0.3.13.
7791
7792
7793 Изменения в nginx 0.3.13 05.12.2005
7794
7795 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
7796
7797 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
7798 /dev/poll.
7799
7800 *) Исправление: ошибки в обработке SSI.
7801
7802 *) Исправление: sendfilev() в Solaris теперь не используется при
7803 передаче тела запроса FastCGI-серверу через unix domain сокет.
7804
7805 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
7806 появилась в 0.3.11.
7807
7808
7809 Изменения в nginx 0.3.12 26.11.2005
7810
7811 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
7812 то при использовании директивы "satisfy_any on" директивы доступа и
7813 аутентификации не работали. Модуль ngx_http_realip_module не
7814 собирался и не собирается по умолчанию.
7815
7816 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
7817
7818 *) Изменение: директивы proxy_header_buffer_size и
7819 fastcgi_header_buffer_size переименованы соответственно в
7820 proxy_buffer_size и fastcgi_buffer_size.
7821
7822 *) Добавление: модуль ngx_http_memcached_module.
7823
7824 *) Добавление: директива proxy_buffering.
7825
7826 *) Исправление: изменение в работе с accept mutex при использовании
7827 метода rtsig; ошибка появилась в 0.3.0.
7828
7829 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
7830 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
7831
7832 *) Исправление: при наследовании директивы auth_basic с уровня http в
7833 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
7834 "Basic realm".
7835
7836 *) Исправление: если в директиве access_log был явно указан формат
7837 combined, то в лог записывались пустые строки; ошибка появилась в
7838 0.3.8.
7839
7840 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
7841 Solaris.
7842
7843 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
7844 в кавычках и закрывающую скобку.
7845
7846
7847 Изменения в nginx 0.3.11 15.11.2005
7848
7849 *) Исправление: nginx не передавал при проксировании тело запроса и
7850 строки заголовка клиента; ошибка появилась в 0.3.10.
7851
7852
7853 Изменения в nginx 0.3.10 15.11.2005
7854
7855 *) Изменение: директива valid_referers и переменная $invalid_referer
7856 перенесены из модуля ngx_http_rewrite_module в новый модуль
7857 ngx_http_referer_module.
7858
7859 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
7860 "$body_bytes_sent".
7861
7862 *) Добавление: переменные "$sent_http_...".
7863
7864 *) Добавление: директива if поддерживает операции "=" и "!=".
7865
7866 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
7867
7868 *) Добавление: директива proxy_set_body.
7869
7870 *) Добавление: директива post_action.
7871
7872 *) Добавление: модуль ngx_http_empty_gif_module.
7873
7874 *) Добавление: директива worker_cpu_affinity для Linux.
7875
7876 *) Исправление: директива rewrite не раскодировала символы в редиректах
7877 в URI, теперь символы раскодируются, кроме символов %00-%25 и
7878 %7F-%FF.
7879
7880 *) Исправление: nginx не собирался компилятором icc 9.0.
7881
7882 *) Исправление: если для статического файла нулевого размера был
7883 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
7884
7885
7886 Изменения в nginx 0.3.9 10.11.2005
7887
7888 *) Исправление: nginx считал небезопасными URI, в которых между двумя
7889 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
7890
7891
7892 Изменения в nginx 0.3.8 09.11.2005
7893
7894 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
7895 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
7896 наличие путей "/../" и нулей.
7897
7898 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
7899 строке "Authorization" в заголовке запроса.
7900
7901 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
7902 и ngx_imap_ssl_module.
7903
7904 *) Добавление: директива auth_http_header модуля
7905 ngx_imap_auth_http_module.
7906
7907 *) Добавление: директива add_header.
7908
7909 *) Добавление: модуль ngx_http_realip_module.
7910
7911 *) Добавление: новые переменные для использования в директиве
7912 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
7913 $uri, $request_time, $request_length, $upstream_status,
7914 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
7915 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
7916 упразднены.
7917
7918 *) Изменение: в директиве "if" ложными значениями переменных теперь
7919 являются пустая строка "" и строки, начинающиеся на "0".
7920
7921 *) Исправление: при работает с проксированными или FastCGI-серверами
7922 nginx мог оставлять открытыми соединения и временные файлы с
7923 запросами клиентов.
7924
7925 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
7926 плавном выходе.
7927
7928 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
7929 запрос проксировался в location, заданном регулярным выражением, то
7930 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
7931
7932 *) Исправление: директива expires не удаляла уже установленную строку
7933 заголовка "Expires".
7934
7935 *) Исправление: при использовании метода rtsig и нескольких рабочих
7936 процессах nginx мог перестать принимать запросы.
7937
7938 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
7939 "\'".
7940
7941 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
7942 при использовании сжатия ответ передавался не до конца или не
7943 передавался вообще.
7944
7945
7946 Изменения в nginx 0.3.7 27.10.2005
7947
7948 *) Добавление: директива access_log поддерживает параметр buffer=.
7949
7950 *) Исправление: nginx не собирался на платформах, отличных от i386,
7951 amd64, sparc и ppc; ошибка появилась в 0.3.2.
7952
7953
7954 Изменения в nginx 0.3.6 24.10.2005
7955
7956 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
7957 пустой логин.
7958
7959 *) Добавление: директива log_format поддерживает переменные в виде
7960 $name.
7961
7962 *) Исправление: если хотя бы в одном сервере не было описано ни одной
7963 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
7964 0.3.3.
7965
7966 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
7967 использовался порт 80.
7968
7969
7970 Изменения в nginx 0.3.5 21.10.2005
7971
7972 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
7973 мог произойти segmentation fault; ошибка появилась в 0.2.2.
7974
7975 *) Исправление: accept mutex не работал, все соединения обрабатывались
7976 одним рабочим процессом; ошибка появилась в 0.3.3.
7977
7978 *) Исправление: при использовании метода rtsig и директивы
7979 timer_resolution не работали таймауты.
7980
7981
7982 Изменения в nginx 0.3.4 19.10.2005
7983
7984 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
7985 появилась в 0.3.3.
7986
7987
7988 Изменения в nginx 0.3.3 19.10.2005
7989
7990 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
7991 "backlog" и "accept_filter".
7992
7993 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
7994
7995 *) Изменение: параметр лога $msec теперь не требует дополнительного
7996 системного вызова gettimeofday().
7997
7998 *) Добавление: ключ -t теперь проверяет директивы listen.
7999
8000 *) Исправление: если в директиве listen был указан неверный адрес, то
8001 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
8002
8003 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
8004 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
8005
8006 *) Добавление: директива timer_resolution.
8007
8008 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
8009
8010 *) Исправление: временный файл с телом запроса клиента теперь удаляется
8011 сразу после того, как клиенту передан заголовок ответа.
8012
8013 *) Исправление: совместимость с OpenSSL 0.9.6.
8014
8015 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
8016 относительными.
8017
8018 *) Исправление: директива ssl_prefer_server_ciphers не работала для
8019 модуля ngx_imap_ssl_module.
8020
8021 *) Исправление: директива ssl_protocols позволяла задать только один
8022 протокол.
8023
8024
8025 Изменения в nginx 0.3.2 12.10.2005
8026
8027 *) Добавление: поддержка Sun Studio 10 C compiler.
8028
8029 *) Добавление: директивы proxy_upstream_max_fails,
8030 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
8031 fastcgi_upstream_fail_timeout.
8032
8033
8034 Изменения в nginx 0.3.1 10.10.2005
8035
8036 *) Исправление: во время переполнения очереди сигналов при использовании
8037 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
8038
8039 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
8040
8041
8042 Изменения в nginx 0.3.0 07.10.2005
8043
8044 *) Изменение: убрано десятидневное ограничение времени работы рабочего
8045 процесса. Ограничение было введено из-за переполнения миллисекундных
8046 таймеров.
8047
8048
8049 Изменения в nginx 0.2.6 05.10.2005
8050
8051 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
8052 бэкенду при использовании распределения нагрузки.
8053
8054 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
8055 запрос теперь передаётся, если в директиве proxy_pass отсутствует
8056 URI.
8057
8058 *) Добавление: директива error_page поддерживает редиректы и позволяет
8059 более гибко менять код ошибки.
8060
8061 *) Изменение: в проксированных подзапросах теперь игнорируется
8062 переданный charset.
8063
8064 *) Исправление: если после изменения URI в блоке if для запроса не
8065 находилась новая конфигурация, то правила модуля
8066 ngx_http_rewrite_module выполнялись снова.
8067
8068 *) Исправление: если директива set устанавливала переменную модуля
8069 ngx_http_geo_module в какой-либо части конфигурации, то эта
8070 переменная не была доступна в других частях конфигурации и выдавалась
8071 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
8072
8073
8074 Изменения в nginx 0.2.5 04.10.2005
8075
8076 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
8077 теперь выдаёт предупреждение и изменяет старое значение.
8078
8079 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
8080
8081 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
8082 команде include.
8083
8084 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
8085 значений переменных в выражениях команды if.
8086
8087
8088 Изменения в nginx 0.2.4 03.10.2005
8089
8090 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
8091 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
8092 if.
8093
8094 *) Исправление: ошибки при проксировании location без слэша в конце;
8095 ошибка появилась в 0.1.44.
8096
8097 *) Исправление: при использовании метода rtsig мог произойти
8098 segmentation fault; ошибка появилась в 0.2.0.
8099
8100
8101 Изменения в nginx 0.2.3 30.09.2005
8102
8103 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
8104 появилась в 0.2.2.
8105
8106
8107 Изменения в nginx 0.2.2 30.09.2005
8108
8109 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
8110
8111 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
8112 директивой set.
8113
8114 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
8115 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
8116
8117 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8118 длинных имён файлов;
8119
8120 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
8121 файлы, начинающиеся на точку.
8122
8123 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
8124 привести также к закрытию другого соединения.
8125 Спасибо Rob Mueller.
8126
8127 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
8128 HTTPS.
8129
8130
8131 Изменения в nginx 0.2.1 23.09.2005
8132
8133 *) Исправление: если все бэкенды, используемые для балансировки
8134 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8135 nginx мог зациклится; ошибка появилась в 0.2.0.
8136
8137
8138 Изменения в nginx 0.2.0 23.09.2005
8139
8140 *) Изменились имена pid-файлов, используемые во время обновления
8141 исполняемого файла. Ручное переименование теперь не нужно. Старый
8142 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
8143 запускает новый исполняемый файл. Новый основной процесс создаёт
8144 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
8145 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
8146 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
8147 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
8148 0.2.0 - используют pid-файл без суффиксов.
8149
8150 *) Изменение: директива worker_connections, новое название директивы
8151 connections; директива теперь задаёт максимальное число соединений, а
8152 не максимально возможный номер дескриптора для сокета.
8153
8154 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
8155 рабочего процесса.
8156
8157 *) Добавление: директива satisfy_any.
8158
8159 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
8160 не работают для подзапросов.
8161
8162 *) Добавление: директивы worker_rlimit_nofile и
8163 worker_rlimit_sigpending.
8164
8165 *) Исправление: если все бэкенды, используемые для балансировки
8166 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8167 nginx не обращался к ним в течение 60 секунд.
8168
8169 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
8170 Спасибо Rob Mueller.
8171
8172 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
8173
8174 *) Исправление: ошибки при использовании SSI и сжатия.
8175
8176 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
8177 "Expires" и "Cache-Control".
8178 Спасибо Александру Кукушкину.
8179
8180
8181 Изменения в nginx 0.1.45 08.09.2005
8182
8183 *) Изменение: директива ssl_engine упразднена в модуле
8184 ngx_http_ssl_module и перенесена на глобальный уровень.
8185
8186 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
8187 передавались через SSL соединение.
8188
8189 *) Разные исправления в IMAP/POP3 прокси.
8190
8191
8192 Изменения в nginx 0.1.44 06.09.2005
8193
8194 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
8195
8196 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
8197
8198 *) Добавление: директива userid_mark.
8199
8200 *) Добавление: значение переменной $remote_user определяется независимо
8201 от того, используется ли авторизация или нет.
8202
8203
8204 Изменения в nginx 0.1.43 30.08.2005
8205
8206 *) Добавление: listen(2) backlog в директиве listen можно менять по
8207 сигналу -HUP.
8208
8209 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
8210
8211 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
8212 серверу.
8213
8214 *) Исправление: если в ответе проксированного сервера или FastCGI
8215 сервера была строка "Cache-Control", то при использовании директивы
8216 expires происходил segmentation fault или рабочий процесс мог
8217 зациклится; в режиме прокси ошибка появилась в 0.1.29.
8218
8219
8220 Изменения в nginx 0.1.42 23.08.2005
8221
8222 *) Исправление: если URI запроса получался нулевой длины после обработки
8223 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
8224 происходил segmentation fault или bus error.
8225
8226 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
8227 появилась в 0.1.38.
8228
8229
8230 Изменения в nginx 0.1.41 25.07.2005
8231
8232 *) Исправление: если переменная использовалась в файле конфигурации, то
8233 она не могла использоваться в SSI.
8234
8235
8236 Изменения в nginx 0.1.40 22.07.2005
8237
8238 *) Исправление: если клиент слал очень длинную строку заголовка, то в
8239 логе не помещалась информация, связанная с этим запросом.
8240
8241 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
8242 строка "Set-Cookie"; ошибка появилась в 0.1.39.
8243
8244 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
8245 строка "Content-Disposition".
8246
8247 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
8248 на которых он слушал.
8249
8250 *) Исправление: после обновления исполняемого файла на лету на Linux и
8251 Solaris название процесса в команде ps становилось короче.
8252
8253
8254 Изменения в nginx 0.1.39 14.07.2005
8255
8256 *) Изменения в модуле ngx_http_charset_module: директива default_charset
8257 упразднена; директива charset задаёт кодировку ответа; директива
8258 source_charset задаёт только исходную кодировку.
8259
8260 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
8261 не передавалась строка заголовка "WWW-Authenticate".
8262
8263 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
8264 могли закрыть соединение до того, как что-нибудь было передано
8265 клиенту; ошибка появилась в 0.1.38.
8266
8267 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
8268
8269 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
8270 URI в команде include virtual.
8271
8272 *) Исправление: если в строке заголовка ответа бэкенда была строка
8273 "Location", которую nginx не должен был изменять, то в ответе
8274 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
8275
8276 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
8277 ngx_http_fastcgi_module не наследовались с уровня server на уровень
8278 location; ошибка появилась в 0.1.29.
8279
8280 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
8281 сертификатов.
8282
8283 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8284 длинных имён файлов; ошибка появилась в 0.1.38.
8285
8286 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
8287 стадии login.
8288
8289
8290 Изменения в nginx 0.1.38 08.07.2005
8291
8292 *) Добавление: директива limit_rate поддерживается в режиме прокси и
8293 FastCGI.
8294
8295 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8296 "X-Accel-Limit-Rate" в ответе бэкенда.
8297
8298 *) Добавление: директива break.
8299
8300 *) Добавление: директива log_not_found.
8301
8302 *) Исправление: при перенаправлении запроса с помощью строки заголовка
8303 "X-Accel-Redirect" не изменялся код ответа.
8304
8305 *) Исправление: переменные, установленные директивой set не могли
8306 использоваться в SSI.
8307
8308 *) Исправление: при включении в SSI более одного удалённого подзапроса
8309 мог произойти segmentation fault.
8310
8311 *) Исправление: если статусная строка в ответе бэкенда передавалась в
8312 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
8313 0.1.29.
8314
8315 *) Добавление: директива ssi_types.
8316
8317 *) Добавление: директива autoindex_exact_size.
8318
8319 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
8320 имена файлов в UTF-8.
8321
8322 *) Добавление: IMAP/POP3 прокси.
8323
8324
8325 Изменения в nginx 0.1.37 23.06.2005
8326
8327 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
8328
8329 *) Исправление: при включении большого количества вставок или нескольких
8330 больших вставок с помощью SSI ответ мог передаваться не полностью.
8331
8332 *) Исправление: если все бэкенды возвращали ответ 404, то при
8333 использовании параметра http_404 в директивах proxy_next_upstream или
8334 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
8335
8336
8337 Изменения в nginx 0.1.36 15.06.2005
8338
8339 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host",
8340 "Connection", "Content-Length" и "Authorization", то nginx теперь
8341 выдаёт ошибку 400.
8342
8343 *) Изменение: директива post_accept_timeout упразднена.
8344
8345 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
8346 listen.
8347
8348 *) Добавление: поддержка accept фильтров во FreeBSD.
8349
8350 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
8351
8352 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
8353 файлов в UTF-8.
8354
8355 *) Исправление: после добавления новый лог-файл ротация этого лога по
8356 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
8357 раза по сигналу -HUP.
8358
8359
8360 Изменения в nginx 0.1.35 07.06.2005
8361
8362 *) Добавление: директива working_directory.
8363
8364 *) Добавление: директива port_in_redirect.
8365
8366 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
8367 то происходил segmentation fault; ошибка появилась в 0.1.29.
8368
8369 *) Исправление: если было сконфигурировано более 10 серверов или в
8370 сервере не описана директива "listen", то при запуске мог произойти
8371 segmentation fault.
8372
8373 *) Исправление: если ответ не помещался во временный файл, то мог
8374 произойти segmentation fault.
8375
8376 *) Исправление: nginx возвращал ошибку 400 на запросы вида
8377 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
8378
8379
8380 Изменения в nginx 0.1.34 26.05.2005
8381
8382 *) Исправление: при включении больших ответов с помощью SSI рабочий
8383 процесс мог зациклиться.
8384
8385 *) Исправление: переменные, устанавливаемые директивой "set", не были
8386 доступны в SSI.
8387
8388 *) Добавление: директива autoindex_localtime.
8389
8390 *) Исправление: пустое значение в директиве proxy_set_header запрещает
8391 передачу заголовка.
8392
8393
8394 Изменения в nginx 0.1.33 23.05.2005
8395
8396 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
8397 появилась в 0.1.29.
8398
8399 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
8400 вызывали bus fault при запуске.
8401
8402 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
8403 HTTP.
8404
8405 *) Исправление: если директива rewrite использовала выделения внутри
8406 директивы if, то возвращалась ошибка 500.
8407
8408
8409 Изменения в nginx 0.1.32 19.05.2005
8410
8411 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
8412 передавались аргументы; ошибка появилась в 0.1.29.
8413
8414 *) Добавление: директива if поддерживает выделения в регулярных
8415 выражениях.
8416
8417 *) Добавление: директива set поддерживает переменные и выделения из
8418 регулярных выражений.
8419
8420 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8421 "X-Accel-Redirect" в ответе бэкенда.
8422
8423
8424 Изменения в nginx 0.1.31 16.05.2005
8425
8426 *) Исправление: при использовании SSL ответ мог передаваться не до
8427 конца.
8428
8429 *) Исправление: ошибки при обработке SSI в ответе, полученного от
8430 FastCGI-сервера.
8431
8432 *) Исправление: ошибки при использовании SSI и сжатия.
8433
8434 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
8435 появилась в 0.1.30.
8436
8437
8438 Изменения в nginx 0.1.30 14.05.2005
8439
8440 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
8441
8442 *) Исправление: при использовании SSL ответ мог передаваться не до
8443 конца.
8444
8445 *) Исправление: если длина части ответа, полученного за один раз от
8446 проксируемого или FastCGI сервера была равна 500 байт, то nginx
8447 возвращал код ответа 500; в режиме прокси ошибка появилась только в
8448 0.1.29.
8449
8450 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
8451 параметрами.
8452
8453 *) Добавление: директива return может возвращать код ответа 204.
8454
8455 *) Добавление: директива ignore_invalid_headers.
8456
8457
8458 Изменения в nginx 0.1.29 12.05.2005
8459
8460 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
8461 virtual.
8462
8463 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
8464 вида 'if expr="$NAME"' и команды else и endif. Допускается только
8465 один уровень вложенности.
8466
8467 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
8468 DATE_LOCAL и DATE_GMT и команду config timefmt.
8469
8470 *) Добавление: директива ssi_ignore_recycled_buffers.
8471
8472 *) Исправление: если переменная QUERY_STRING не была определена, то в
8473 команде echo не ставилось значение по умолчанию.
8474
8475 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
8476
8477 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
8478 proxy_pass_request_body и proxy_method.
8479
8480 *) Добавление: директива proxy_set_header. Директива proxy_x_var
8481 упразднена и должна быть заменена директивой proxy_set_header.
8482
8483 *) Изменение: директива proxy_preserve_host упразднена и должна быть
8484 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
8485 off" или директивой "proxy_set_header Host $host:$proxy_port" и
8486 соответствующими ей директивами proxy_redirect.
8487
8488 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
8489 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
8490
8491 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
8492 быть заменена директивой
8493 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
8494
8495 *) Изменение: директива proxy_set_x_url упразднена и должна быть
8496 заменена директивой
8497 "proxy_set_header X-URL http://$host:$server_port$request_uri".
8498
8499 *) Добавление: директива fastcgi_param.
8500
8501 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
8502 упразднены и должны быть замены директивами fastcgi_param.
8503
8504 *) Добавление: директива index может использовать переменные.
8505
8506 *) Добавление: директива index может быть указана на уровне http и
8507 server.
8508
8509 *) Изменение: только последний параметр в директиве index может быть
8510 абсолютным.
8511
8512 *) Добавление: в директиве rewrite могут использоваться переменные.
8513
8514 *) Добавление: директива internal.
8515
8516 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
8517 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
8518 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
8519
8520 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
8521 клиента и ответа бэкенда.
8522
8523 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
8524 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
8525
8526 *) Исправление: если бэкенд передавал неверную строку в заголовке
8527 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
8528
8529 *) Исправление: при использовании отказоустойчивой конфигурации в
8530 FastCGI мог происходить segmentation fault.
8531
8532 *) Исправление: директива expires не удаляла уже установленные строки
8533 заголовка "Expires" и "Cache-Control".
8534
8535 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
8536 запроса "Host".
8537
8538 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
8539
8540 *) Исправление: директива rewrite неверно работала, если в запросе
8541 присутствовали аргументы.
8542
8543 *) Исправление: nginx не собирался на MacOS X.
8544
8545
8546 Изменения в nginx 0.1.28 08.04.2005
8547
8548 *) Исправление: при проксировании больших файлов nginx сильно нагружал
8549 процессор.
8550
8551 *) Исправление: nginx не собирался gcc 4.0 на Linux.
8552
8553
8554 Изменения в nginx 0.1.27 28.03.2005
8555
8556 *) Добавление: параметр blocked в директиве valid_referers.
8557
8558 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
8559 уровне info, в лог также записывается имя сервера и строки заголовка
8560 запроса "Host" и "Referer".
8561
8562 *) Изменение: при записи ошибок в лог записывается также строка
8563 заголовка запроса "Host".
8564
8565 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
8566 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
8567
8568 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
8569 параметр конфигурации --without-ngx_http_auth_basic_module.
8570
8571
8572 Изменения в nginx 0.1.26 22.03.2005
8573
8574 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
8575 игнорируется и записываются в error_log на уровне info.
8576
8577 *) Изменение: при записи ошибок в лог записывается также имя сервера,
8578 при обращении к которому произошла ошибка.
8579
8580 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
8581 и auth_basic_user_file.
8582
8583
8584 Изменения в nginx 0.1.25 19.03.2005
8585
8586 *) Исправление: nginx не работал на Linux parisc.
8587
8588 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
8589 sysctl kern.ipc.somaxconn слишком большое.
8590
8591 *) Исправление: если модуль ngx_http_index_module делал внутреннее
8592 перенаправление запроса в модули ngx_http_proxy_module или
8593 ngx_http_fastcgi_module, то файл индекса не закрывался после
8594 обслуживания запроса.
8595
8596 *) Добавление: директива proxy_pass может использоваться в location,
8597 заданных регулярным выражением.
8598
8599 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
8600 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
8601
8602 *) Исправление: nginx очень медленно запускался при большом количестве
8603 адресов и использовании текстовых значений в директиве geo.
8604
8605 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
8606 Прежний вариант без "$" пока работает, но вскоре будет убран.
8607
8608 *) Добавление: параметр лога "%{VARIABLE}v".
8609
8610 *) Добавление: директива "set $name value".
8611
8612 *) Исправление: совместимость с gcc 4.0.
8613
8614 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
8615
8616
8617 Изменения в nginx 0.1.24 04.03.2005
8618
8619 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
8620 QUERY_STRING и DOCUMENT_URI.
8621
8622 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
8623 на существующий каталог, если этот каталог был указан как alias.
8624
8625 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
8626 при больших ответах.
8627
8628 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
8629 правильным referrer'ом.
8630
8631
8632 Изменения в nginx 0.1.23 01.03.2005
8633
8634 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
8635 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
8636 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
8637
8638 *) Добавление: параметр лога %request_time.
8639
8640 *) Добавление: если запрос пришёл без строки заголовка "Host", то
8641 директива proxy_preserve_host устанавливает в качестве этого
8642 заголовка первое имя сервера из директивы server_name.
8643
8644 *) Исправление: nginx не собирался на платформах, отличных от i386,
8645 amd64, sparc и ppc; ошибка появилась в 0.1.22.
8646
8647 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
8648 информацию не о символическом линке, а о файле или каталоге, на
8649 который он указывает.
8650
8651 *) Исправление: если клиенту ничего не передавалось, то параметр
8652 %apache_length записывал в лог отрицательную длину заголовка ответа.
8653
8654
8655 Изменения в nginx 0.1.22 22.02.2005
8656
8657 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8658 статистику для обработанных соединений, если использовалось
8659 проксирование или FastCGI-сервер.
8660
8661 *) Исправление: на Linux и Solaris установочные пути были неверно
8662 заключены в кавычки; ошибка появилась в 0.1.21.
8663
8664
8665 Изменения в nginx 0.1.21 22.02.2005
8666
8667 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8668 статистику при использовании метода rtsig или при использовании
8669 нескольких рабочих процессов на SMP машине.
8670
8671 *) Исправление: nginx не собирался компилятором icc под Линуксом или
8672 если библиотека zlib-1.2.x собиралась из исходных текстов.
8673
8674 *) Исправление: nginx не собирался под NetBSD 2.0.
8675
8676
8677 Изменения в nginx 0.1.20 17.02.2005
8678
8679 *) Добавление: новые параметры script_filename и remote_port в директиве
8680 fastcgi_params.
8681
8682 *) Исправление: неправильно обрабатывался поток stderr от
8683 FastCGI-сервера.
8684
8685
8686 Изменения в nginx 0.1.19 16.02.2005
8687
8688 *) Исправление: если в запросе есть нуль, то для локальных запросов
8689 теперь возвращается ошибка 404.
8690
8691 *) Исправление: nginx не собирался под NetBSD 2.0.
8692
8693 *) Исправление: во время чтения тела запроса клиента в SSL соединении
8694 мог произойти таймаут.
8695
8696
8697 Изменения в nginx 0.1.18 09.02.2005
8698
8699 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
8700 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
8701
8702 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
8703 наследовались.
8704
8705 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
8706 присоединялись к URI через символ "&" вместо "?".
8707
8708 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
8709 включённом файле игнорировались.
8710
8711 *) Добавление: модуль ngx_http_stub_status_module.
8712
8713 *) Исправление: неизвестный формат лог-файла в директиве access_log
8714 вызывал segmentation fault.
8715
8716 *) Добавление: новый параметр document_root в директиве fastcgi_params.
8717
8718 *) Добавление: директива fastcgi_redirect_errors.
8719
8720 *) Добавление: новый модификатор break в директиве rewrite позволяет
8721 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
8722 для запроса.
8723
8724
8725 Изменения в nginx 0.1.17 03.02.2005
8726
8727 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
8728 можно делать редиректы, возвращать коды ошибок и проверять переменные
8729 и рефереры. Эти директивы можно использовать внутри location.
8730 Директива redirect упразднена.
8731
8732 *) Добавление: модуль ngx_http_geo_module.
8733
8734 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
8735
8736 *) Исправление: конфигурация location с модификатором "=" могла
8737 использоваться в другом location.
8738
8739 *) Исправление: правильный тип ответа выставлялся только для запросов, у
8740 которых в расширении были только маленькие буквы.
8741
8742 *) Исправление: если для location установлен proxy_pass или
8743 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
8744 на статическую страницу, то происходил segmentation fault.
8745
8746 *) Исправление: если в проксированном ответе в заголовке "Location"
8747 передавался относительный URL, то к нему добавлялось имя хоста и
8748 слэш; ошибка появилась в 0.1.14.
8749
8750 *) Исправление: на Linux в лог не записывался текст системной ошибки.
8751
8752
8753 Изменения в nginx 0.1.16 25.01.2005
8754
8755 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
8756 выдавался завершающий chunk.
8757
8758 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
8759 директива keepalive_timeout запрещала использование keep-alive.
8760
8761 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
8762 segmentation fault.
8763
8764 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
8765 до конца.
8766
8767 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
8768 для TCP сокетов, не используются для unix domain сокетов.
8769
8770 *) Добавление: директива rewrite поддерживает перезаписывание
8771 аргументов.
8772
8773 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
8774 возвращался ответ 400; ошибка появилась в 0.1.14.
8775
8776
8777 Изменения в nginx 0.1.15 19.01.2005
8778
8779 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
8780 segmentation fault.
8781
8782 *) Исправление: корректная обработка регулярного выражения, в котором
8783 число выделенных частей не совпадает с числом подстановок.
8784
8785 *) Добавление: location, который передаётся FastCGI-серверу, может быть
8786 задан с помощью регулярного выражения.
8787
8788 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
8789 аргументами и в том виде, в котором был получен от клиента.
8790
8791 *) Исправление: для использования регулярных выражений в location нужно
8792 было собирать nginx вместе с ngx_http_rewrite_module.
8793
8794 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
8795 директивы "proxy_preserve_host on" в заголовке "Host" указывался
8796 также порт 80; ошибка появилась в 0.1.14.
8797
8798 *) Исправление: если задать одинаковые пути в параметрах
8799 автоконфигурации --http-client-body-temp-path=PATH и
8800 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
8801 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
8802
8803
8804 Изменения в nginx 0.1.14 18.01.2005
8805
8806 *) Добавление: параметры автоконфигурации
8807 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
8808 --http-fastcgi-temp-path=PATH
8809
8810 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
8811 клиента, задаётся директивой client_body_temp_path, по умолчанию
8812 <prefix>/client_body_temp.
8813
8814 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
8815 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
8816 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
8817 fastcgi_header_buffer_size, fastcgi_buffers,
8818 fastcgi_busy_buffers_size, fastcgi_temp_path,
8819 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
8820 fastcgi_next_upstream и fastcgi_x_powered_by.
8821
8822 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
8823 0.1.3.
8824
8825 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
8826 после имени хоста.
8827
8828 *) Изменение: если в URI встречался символ %3F, то он считался началом
8829 строки аргументов.
8830
8831 *) Добавление: поддержка unix domain сокетов в модуле
8832 ngx_http_proxy_module.
8833
8834 *) Добавление: директивы ssl_engine и ssl_ciphers.
8835 Спасибо Сергею Скворцову за SSL-акселератор.
8836
8837
8838 Изменения в nginx 0.1.13 21.12.2004
8839
8840 *) Добавление: директивы server_names_hash и
8841 server_names_hash_threshold.
8842
8843 *) Исправление: имена *.domain.tld в директиве server_name не работали.
8844
8845 *) Исправление: параметр лога %request_length записывал неверную длину.
8846
8847
8848 Изменения в nginx 0.1.12 06.12.2004
8849
8850 *) Добавление: параметр лога %request_length.
8851
8852 *) Исправление: при использовании /dev/poll, select и poll на
8853 платформах, где возможны ложные срабатывания указанных методов, могли
8854 быть длительные задержки при обработке запроса по keep-alive
8855 соединению. Наблюдалось по крайней мере на Solaris с использованием
8856 /dev/poll.
8857
8858 *) Исправление: директива send_lowat игнорируется на Linux, так как
8859 Linux не поддерживает опцию SO_SNDLOWAT.
8860
8861
8862 Изменения в nginx 0.1.11 02.12.2004
8863
8864 *) Добавление: директива worker_priority.
8865
8866 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
8867 влияют на передачу ответа.
8868
8869 *) Исправление: nginx не вызывал initgroups().
8870 Спасибо Андрею Ситникову и Андрею Нигматулину.
8871
8872 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
8873 байтах.
8874
8875 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
8876 каталоге есть битый symlink.
8877
8878 *) Исправление: файлы больше 4G не передавались с использованием
8879 sendfile.
8880
8881 *) Исправление: если бэкенд резолвился в несколько адресов и при
8882 ожидании от него ответа происходила ошибка, то процесс зацикливался.
8883
8884 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
8885 завершиться с сообщением "unknown cycle".
8886
8887 *) Исправление: ошибки "close() channel failed".
8888
8889 *) Исправление: автоматическое определение групп nobody и nogroup.
8890
8891 *) Исправление: директива send_lowat не работала на Linux.
8892
8893 *) Исправление: если в конфигурации не было раздела events, то
8894 происходил segmentation fault.
8895
8896 *) Исправление: nginx не собирался под OpenBSD.
8897
8898 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
8899
8900
8901 Изменения в nginx 0.1.10 26.11.2004
8902
8903 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
8904 или "%XX", то терялся последний символ в строке запроса; ошибка
8905 появилась в 0.1.9.
8906
8907 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
8908 не работало.
8909
8910
8911 Изменения в nginx 0.1.9 25.11.2004
8912
8913 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
8914 проксируемый запрос передавался без аргументов.
8915
8916 *) Исправление: при сжатии больших ответов иногда они передавались не
8917 полностью.
8918
8919 *) Исправление: не передавались файлы больше 2G на Linux,
8920 неподдерживающем sendfile64().
8921
8922 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
8923 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
8924
8925
8926 Изменения в nginx 0.1.8 20.11.2004
8927
8928 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8929 длинных имён файлов.
8930
8931 *) Добавление: модификатор "^~" в директиве location.
8932
8933 *) Добавление: директива proxy_max_temp_file_size.
8934
8935
8936 Изменения в nginx 0.1.7 12.11.2004
8937
8938 *) Исправление: при использовании sendfile, если передаваемый файл
8939 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
8940 появилась в 0.1.5.
8941
8942
8943 Изменения в nginx 0.1.6 11.11.2004
8944
8945 *) Исправление: при некоторых комбинациях директив location c
8946 регулярными выражениями использовалась конфигурация не из того
8947 location.
8948
8949
8950 Изменения в nginx 0.1.5 11.11.2004
8951
8952 *) Исправление: на Solaris и Linux могло быть очень много сообщений
8953 "recvmsg() returned not enough data".
8954
8955 *) Исправление: в режиме прокси без использования sendfile на Solaris
8956 возникала ошибка "writev() failed (22: Invalid argument)". На других
8957 платформах, не поддерживающих sendfile, процесс зацикливался.
8958
8959 *) Исправление: при использовании sendfile в режиме прокси на Solaris
8960 возникал segmentation fault.
8961
8962 *) Исправление: segmentation fault на Solaris.
8963
8964 *) Исправление: обновление исполняемого файла на лету не работало на
8965 Linux.
8966
8967 *) Исправление: в списке файлов, выдаваемом модулем
8968 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
8969 знаки процента.
8970
8971 *) Изменение: уменьшение операций копирования.
8972
8973 *) Добавление: директива userid_p3p.
8974
8975
8976 Изменения в nginx 0.1.4 26.10.2004
8977
8978 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
8979
8980
8981 Изменения в nginx 0.1.3 25.10.2004
8982
8983 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
8984
8985 *) Добавление: директива proxy_set_x_url.
8986
8987 *) Исправление: модуль проксировании мог привести к зацикливанию, если
8988 не использовался sendfile.
8989
8990
8991 Изменения в nginx 0.1.2 21.10.2004
8992
8993 *) Добавление: параметры --user=USER, --group=GROUP и
8994 --with-ld-opt=OPTIONS в configure.
8995
8996 *) Добавление: директива server_name поддерживает *.domain.tld.
8997
8998 *) Исправление: улучшена переносимость на неизвестные платформы.
8999
9000 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
9001 файл указан в командной строке; ошибка появилась в 0.1.1.
9002
9003 *) Исправление: модуль проксировании мог привести к зацикливанию, если
9004 не использовался sendfile.
9005
9006 *) Исправление: при использовании sendfile текст ответа не
9007 перекодировался согласно директивам модуля charset; ошибка появилась
9008 в 0.1.1.
9009
9010 *) Исправление: очень редкая ошибка при обработке kqueue.
9011
9012 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
9013 проксировании.
9014
9015
9016 Изменения в nginx 0.1.1 11.10.2004
9017
9018 *) Добавление: директива gzip_types.
9019
9020 *) Добавление: директива tcp_nodelay.
9021
9022 *) Добавление: директива send_lowat работает не только на платформах,
9023 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
9024 SO_SNDLOWAT.
9025
9026 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
9027
9028 *) Исправление: ошибка при переписывании заголовка "Location" при
9029 проксировании.
9030
9031 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
9032 зацикливанию.
9033
9034 *) Исправление: ошибки в модуле /dev/poll.
9035
9036 *) Исправление: при проксировании и использовании временных файлов
9037 ответы портились.
9038
9039 *) Исправление: бэкенду передавались запросы с неперекодированными
9040 символами.
9041
9042 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
9043 обязательно использовать параметр --with-poll_module.
9044
9045
9046 Изменения в nginx 0.1.0 04.10.2004
9047
9048 *) Первая публично доступная версия.
9049