comparison text/ru/CHANGES.ru-1.24 @ 2954:4cfe7dc4a871

nginx-1.24.0
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 11 Apr 2023 17:30:02 +0300
parents text/ru/CHANGES.ru@39a5ac34d794
children
comparison
equal deleted inserted replaced
2953:b9ba7c498d95 2954:4cfe7dc4a871
1
2 Изменения в nginx 1.24.0 11.04.2023
3
4 *) Стабильная ветка 1.24.x.
5
6
7 Изменения в nginx 1.23.4 28.03.2023
8
9 *) Изменение: теперь протокол TLSv1.3 разрешён по умолчанию.
10
11 *) Изменение: теперь nginx выдаёт предупреждение при переопределении
12 параметров listen-сокета, задающих используемые протоколы.
13
14 *) Изменение: теперь, если клиент использует pipelining, nginx закрывает
15 соединения с ожиданием дополнительных данных (lingering close).
16
17 *) Добавление: поддержка byte ranges для ответов модуля
18 ngx_http_gzip_static_module.
19
20 *) Исправление: диапазоны портов в директиве listen не работали; ошибка
21 появилась в 1.23.3.
22 Спасибо Валентину Бартеневу.
23
24 *) Исправление: для обработки запроса мог быть выбран неверный location,
25 если в конфигурации использовался префиксный location длиннее 255
26 символов.
27
28 *) Исправление: не-ASCII символы в именах файлов на Windows не
29 поддерживались модулями ngx_http_autoindex_module и
30 ngx_http_dav_module, а также директивой include.
31
32 *) Изменение: уровень логгирования ошибок SSL "data length too long",
33 "length too short", "bad legacy version", "no shared signature
34 algorithms", "bad digest length", "missing sigalgs extension",
35 "encrypted length too long", "bad length", "bad key update", "mixed
36 handshake and non handshake data", "ccs received early", "data
37 between ccs and finished", "packet length too long", "too many warn
38 alerts", "record too small", и "got a fin before a ccs" понижен с
39 уровня crit до info.
40
41 *) Исправление: при использовании HTTP/2 и директивы error_page для
42 перенаправления ошибок с кодом 400 могла происходить утечка сокетов.
43
44 *) Исправление: сообщения об ошибках записи в syslog не содержали
45 информации о том, что ошибки происходили в процессе записи в syslog.
46 Спасибо Safar Safarly.
47
48 *) Изменение: при использовании zlib-ng в логах появлялись сообщения
49 "gzip filter failed to use preallocated memory".
50
51 *) Исправление: в почтовом прокси-сервере.
52
53
54 Изменения в nginx 1.23.3 13.12.2022
55
56 *) Исправление: при чтении заголовка протокола PROXY версии 2,
57 содержащего большое количество TLV, могла возникать ошибка.
58
59 *) Исправление: при использовании SSI для обработки подзапросов,
60 созданных другими модулями, в рабочем процессе мог произойти
61 segmentation fault.
62 Спасибо Ciel Zhao.
63
64 *) Изменение: теперь, если при преобразовании в адреса имени хоста,
65 указанного в директиве listen, возвращается несколько адресов, nginx
66 игнорирует дубликаты среди этих адресов.
67
68 *) Исправление: nginx мог нагружать процессор при небуферизированном
69 проксировании, если использовались SSL-соединения с бэкендами.
70
71
72 Изменения в nginx 1.23.2 19.10.2022
73
74 *) Безопасность: обработка специально созданного mp4-файла модулем
75 ngx_http_mp4_module могла приводить к падению рабочего процесса,
76 отправке клиенту части содержимого памяти рабочего процесса, а также
77 потенциально могла иметь другие последствия (CVE-2022-41741,
78 CVE-2022-41742).
79
80 *) Добавление: переменные "$proxy_protocol_tlv_...".
81
82 *) Добавление: ключи шифрования TLS session tickets теперь автоматически
83 меняются при использовании разделяемой памяти в ssl_session_cache.
84
85 *) Изменение: уровень логгирования ошибок SSL "bad record type" понижен
86 с уровня crit до info.
87 Спасибо Murilo Andrade.
88
89 *) Изменение: теперь при использовании разделяемой памяти в
90 ssl_session_cache сообщения "could not allocate new session"
91 логгируются на уровне warn вместо alert и не чаще одного раза в
92 секунду.
93
94 *) Исправление: nginx/Windows не собирался с OpenSSL 3.0.x.
95
96 *) Исправление: в логгировании ошибок протокола PROXY.
97 Спасибо Сергею Брестеру.
98
99 *) Изменение: при использовании TLSv1.3 с OpenSSL разделяемая память из
100 ssl_session_cache расходовалась в том числе на сессии, использующие
101 TLS session tickets.
102
103 *) Изменение: таймаут, заданный с помощью директивы ssl_session_timeout,
104 не работал при использовании TLSv1.3 с OpenSSL или BoringSSL.
105
106
107 Изменения в nginx 1.23.1 19.07.2022
108
109 *) Добавление: оптимизация использования памяти в конфигурациях с
110 SSL-проксированием.
111
112 *) Добавление: теперь с помощью параметра "ipv4=off" директивы
113 "resolver" можно запретить поиск IPv4-адресов при преобразовании имён
114 в адреса.
115
116 *) Изменение: уровень логгирования ошибок SSL "bad key share", "bad
117 extension", "bad cipher" и "bad ecpoint" понижен с уровня crit до
118 info.
119
120 *) Исправление: при возврате диапазонов nginx не удалял строку заголовка
121 "Content-Range", если она присутствовала в исходном ответе бэкенда.
122
123 *) Исправление: проксированный ответ мог быть отправлен не полностью при
124 переконфигурации на Linux; ошибка появилась в 1.17.5.
125
126
127 Изменения в nginx 1.23.0 21.06.2022
128
129 *) Изменение во внутреннем API: теперь строки заголовков представлены
130 связными списками.
131
132 *) Изменение: теперь nginx объединяет произвольные строки заголовков с
133 одинаковыми именами при отправке на FastCGI-, SCGI- и uwsgi-бэкенды,
134 в методе $r->header_in() модуля ngx_http_perl_module, и при доступе
135 через переменные "$http_...", "$sent_http_...", "$sent_trailer_...",
136 "$upstream_http_..." и "$upstream_trailer_...".
137
138 *) Исправление: если в заголовке ответа бэкенда было несколько строк
139 "Vary", при кэшировании nginx учитывал только последнюю из них.
140
141 *) Исправление: если в заголовке ответа бэкенда было несколько строк
142 "WWW-Authenticate" и использовался перехват ошибок с кодом 401 от
143 бэкенда или директива auth_request, nginx пересылал клиенту только
144 первую из этих строк.
145
146 *) Изменение: уровень логгирования ошибок SSL "application data after
147 close notify" понижен с уровня crit до info.
148
149 *) Исправление: соединения могли зависать, если nginx был собран на
150 Linux 2.6.17 и новее, а использовался на системах без поддержки
151 EPOLLRDHUP, в частности, на системах с эмуляцией epoll; ошибка
152 появилась в 1.17.5.
153 Спасибо Marcus Ball.
154
155 *) Исправление: nginx не кэшировал ответ, если строка заголовка ответа
156 "Expires" запрещала кэширование, а последующая строка заголовка
157 "Cache-Control" разрешала кэширование.
158
159
160 Изменения в nginx 1.21.6 25.01.2022
161
162 *) Исправление: при использование EPOLLEXCLUSIVE на Linux распределение
163 клиентских соединений между рабочими процессами было неравномерным.
164
165 *) Исправление: во время плавного завершения старых рабочих процессов
166 nginx возвращал в ответах строку заголовка "Connection: keep-alive".
167
168 *) Исправление: в директиве ssl_session_ticket_key при использовании
169 TLSv1.3.
170
171
172 Изменения в nginx 1.21.5 28.12.2021
173
174 *) Изменение: теперь nginx по умолчанию собирается с библиотекой PCRE2.
175
176 *) Изменение: теперь nginx всегда использует sendfile(SF_NODISKIO) на
177 FreeBSD.
178
179 *) Добавление: поддержка sendfile(SF_NOCACHE) на FreeBSD.
180
181 *) Добавление: переменная $ssl_curve.
182
183 *) Исправление: при использовании HTTP/2 без SSL вместе с директивами
184 sendfile и aio соединения могли зависать.
185
186
187 Изменения в nginx 1.21.4 02.11.2021
188
189 *) Изменение: поддержка NPN вместо ALPN для установления
190 HTTP/2-соединений упразднена.
191
192 *) Изменение: теперь nginx закрывает SSL соединение, если клиент
193 использует ALPN, но nginx не поддерживает ни один из присланных
194 клиентом протоколов.
195
196 *) Изменение: в директиве sendfile_max_chunk значение по умолчанию
197 изменено на 2 мегабайта.
198
199 *) Добавление: директива proxy_half_close в модуле stream.
200
201 *) Добавление: директива ssl_alpn в модуле stream.
202
203 *) Добавление: переменная $ssl_alpn_protocol.
204
205 *) Добавление: поддержка SSL_sendfile() при использовании OpenSSL 3.0.
206
207 *) Добавление: директива mp4_start_key_frame в модуле
208 ngx_http_mp4_module.
209 Спасибо Tracey Jaquith.
210
211 *) Исправление: в переменной $content_length при использовании chunked
212 transfer encoding.
213
214 *) Исправление: при получении ответа некорректной длины от проксируемого
215 бэкенда nginx мог тем не менее закэшировать соединение.
216 Спасибо Awdhesh Mathpal.
217
218 *) Исправление: некорректные заголовки от бэкендов логгировались на
219 уровне info вместо error; ошибка появилась в 1.21.1.
220
221 *) Исправление: при использовании HTTP/2 и директивы aio_write запросы
222 могли зависать.
223
224
225 Изменения в nginx 1.21.3 07.09.2021
226
227 *) Изменение: оптимизация чтения тела запроса при использовании HTTP/2.
228
229 *) Исправление: во внутреннем API для обработки тела запроса при
230 использовании HTTP/2 и буферизации обрабатываемых данных.
231
232
233 Изменения в nginx 1.21.2 31.08.2021
234
235 *) Изменение: теперь nginx возвращает ошибку, если в запросе по
236 протоколу HTTP/1.0 присутствует строка заголовка "Transfer-Encoding".
237
238 *) Изменение: экспортные шифры больше не поддерживаются.
239
240 *) Добавление: совместимость с OpenSSL 3.0.
241
242 *) Добавление: теперь серверу аутентификации почтового прокси-сервера
243 передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher".
244 Спасибо Rob Mueller.
245
246 *) Добавление: API для обработки тела запроса теперь позволяет
247 буферизировать обрабатываемые данные.
248
249 *) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать
250 после SSL handshake.
251
252 *) Исправление: уровень безопасности, доступный в OpenSSL 1.1.0 и новее,
253 не учитывался при загрузке сертификатов сервера, если был задан через
254 "@SECLEVEL=N" в директиве ssl_ciphers.
255
256 *) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если
257 использовались методы select, poll или /dev/poll.
258
259 *) Исправление: при использовании HTTP/2 тело запроса всегда
260 записывалось на диск, если в запросе не было строки заголовка
261 "Content-Length".
262
263
264 Изменения в nginx 1.21.1 06.07.2021
265
266 *) Изменение: теперь nginx для метода CONNECT всегда возвращает ошибку.
267
268 *) Изменение: теперь nginx всегда возвращает ошибку, если в запросе
269 одновременно присутствуют строки заголовка "Content-Length" и
270 "Transfer-Encoding".
271
272 *) Изменение: теперь nginx всегда возвращает ошибку, если в строке
273 запроса используются пробелы или управляющие символы.
274
275 *) Изменение: теперь nginx всегда возвращает ошибку, если в имени
276 заголовка используются пробелы или управляющие символы.
277
278 *) Изменение: теперь nginx всегда возвращает ошибку, если в строке
279 "Host" заголовка запроса используются пробелы или управляющие
280 символы.
281
282 *) Изменение: оптимизация тестирования конфигурации при использовании
283 большого количества listen-сокетов.
284
285 *) Исправление: nginx не экранировал символы """, "<", ">", "\", "^",
286 "`", "{", "|", и "}" при проксировании с изменением URI запроса.
287
288 *) Исправление: SSL-переменные могли быть пустыми при записи в лог;
289 ошибка появилась в 1.19.5.
290
291 *) Исправление: keepalive-соединения с gRPC-бэкендами могли не
292 закрываться после получения GOAWAY-фрейма.
293
294 *) Исправление: уменьшено потребление памяти для долгоживущих запросов
295 при проксировании с использованием более 64 буферов.
296
297
298 Изменения в nginx 1.21.0 25.05.2021
299
300 *) Безопасность: при использовании директивы resolver во время обработки
301 ответа DNS-сервера могла происходить перезапись одного байта памяти,
302 что позволяло атакующему, имеющему возможность подделывать UDP-пакеты
303 от DNS-сервера, вызвать падение рабочего процесса или, потенциально,
304 выполнение произвольного кода (CVE-2021-23017).
305
306 *) Добавление: директивы proxy_ssl_certificate,
307 proxy_ssl_certificate_key, grpc_ssl_certificate,
308 grpc_ssl_certificate_key, uwsgi_ssl_certificate и
309 uwsgi_ssl_certificate_key поддерживают переменные.
310
311 *) Добавление: директива max_errors в почтовом прокси-сервере.
312
313 *) Добавление: почтовый прокси-сервер поддерживает POP3 и IMAP
314 pipelining.
315
316 *) Добавление: параметр fastopen директивы listen в модуле stream.
317 Спасибо Anbang Wen.
318
319 *) Исправление: специальные символы не экранировались при автоматическом
320 перенаправлении с добавлением завершающего слэша.
321
322 *) Исправление: при использовании SMTP pipelining соединения с клиентами
323 в почтовом прокси-сервере могли неожиданно закрываться.
324
325
326 Изменения в nginx 1.19.10 13.04.2021
327
328 *) Изменение: в директиве keepalive_requests значение по умолчанию
329 изменено на 1000.
330
331 *) Добавление: директива keepalive_time.
332
333 *) Добавление: переменная $connection_time.
334
335 *) Изменение: при использовании zlib-ng в логах появлялись сообщения
336 "gzip filter failed to use preallocated memory".
337
338
339 Изменения в nginx 1.19.9 30.03.2021
340
341 *) Исправление: nginx не собирался с почтовым прокси-сервером, но без
342 модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8.
343
344 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
345 "upstream sent response body larger than indicated content length";
346 ошибка появилась в 1.19.1.
347
348 *) Исправление: если клиент закрывал соединение в момент отбрасывания
349 тела запроса, nginx мог не закрыть соединение до истечения
350 keepalive-таймаута.
351
352 *) Исправление: при ожидании задержки limit_req или auth_delay, а также
353 при работе с бэкендами nginx мог не обнаружить, что соединение уже
354 закрыто клиентом.
355
356 *) Исправление: в методе обработки соединений eventport.
357
358
359 Изменения в nginx 1.19.8 09.03.2021
360
361 *) Добавление: в директиве proxy_cookie_flags теперь флаги можно
362 задавать с помощью переменных.
363
364 *) Добавление: параметр proxy_protocol в директиве listen, директивы
365 proxy_protocol и set_real_ip_from в почтовом прокси-сервере.
366
367 *) Исправление: HTTP/2-соединения сразу закрывались при использовании
368 "keepalive_timeout 0"; ошибка появилась в 1.19.7.
369
370 *) Исправление: некоторые ошибки логгировались как неизвестные, если
371 nginx был собран с glibc 2.32.
372
373 *) Исправление: в методе обработки соединений eventport.
374
375
376 Изменения в nginx 1.19.7 16.02.2021
377
378 *) Изменение: обработка соединений в HTTP/2 была изменена и теперь более
379 соответствует HTTP/1.x; директивы http2_recv_timeout,
380 http2_idle_timeout и http2_max_requests упразднены, вместо них
381 следует использовать директивы keepalive_timeout и
382 keepalive_requests.
383
384 *) Изменение: директивы http2_max_field_size и http2_max_header_size
385 упразднены, вместо них следует использовать директиву
386 large_client_header_buffers.
387
388 *) Добавление: теперь при исчерпании свободных соединений nginx
389 закрывает не только keepalive-соединения, но и соединения в lingering
390 close.
391
392 *) Исправление: в логах могли появляться сообщения "zero size buf in
393 output", если бэкенд возвращал некорректный ответ при
394 небуферизированном проксировании; ошибка появилась в 1.19.1.
395
396 *) Исправление: при использовании директивы return вместе с image_filter
397 или xslt_stylesheet HEAD-запросы обрабатывались некорректно.
398
399 *) Исправление: в директиве add_trailer.
400
401
402 Изменения в nginx 1.19.6 15.12.2020
403
404 *) Исправление: ошибки "no live upstreams", если server в блоке upstream
405 был помечен как down.
406
407 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
408 segmentation fault; ошибка появилась в 1.19.5.
409
410 *) Исправление: nginx возвращал ошибку 400 на запросы вида
411 "GET http://example.com?args HTTP/1.0".
412
413 *) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module.
414 Спасибо Chris Newton.
415
416
417 Изменения в nginx 1.19.5 24.11.2020
418
419 *) Добавление: ключ -e.
420
421 *) Добавление: при сборке дополнительных модулей теперь можно указывать
422 одни и те же исходные файлы в разных модулях.
423
424 *) Исправление: SSL shutdown не работал при закрытии соединений с
425 ожиданием дополнительных данных (lingering close).
426
427 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
428 "upstream sent frame for closed stream".
429
430 *) Исправление: во внутреннем API для обработки тела запроса.
431
432
433 Изменения в nginx 1.19.4 27.10.2020
434
435 *) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
436 grpc_ssl_conf_command и uwsgi_ssl_conf_command.
437
438 *) Добавление: директива ssl_reject_handshake.
439
440 *) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере.
441
442
443 Изменения в nginx 1.19.3 29.09.2020
444
445 *) Добавление: модуль ngx_stream_set_module.
446
447 *) Добавление: директива proxy_cookie_flags.
448
449 *) Добавление: директива userid_flags.
450
451 *) Исправление: расширение управления кэшированием stale-if-error
452 ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502,
453 503, 504, 403, 404 или 429.
454
455 *) Исправление: если использовалось кэширование и бэкенд возвращал
456 ответы с строкой заголовка Vary, в логах могли появляться сообщения
457 "[crit] cache file ... has too long header".
458
459 *) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться
460 сообщения "[crit] SSL_write() failed".
461
462 *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
463 failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2.
464
465 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
466 произойти segmentation fault, если ошибки с кодом 400 с помощью
467 директивы error_page перенаправлялись в проксируемый location.
468
469 *) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в
470 модуле njs.
471
472
473 Изменения в nginx 1.19.2 11.08.2020
474
475 *) Изменение: теперь nginx начинает закрывать keepalive-соединения, не
476 дожидаясь исчерпания всех свободных соединений, а также пишет об этом
477 предупреждение в лог ошибок.
478
479 *) Изменение: оптимизация чтения тела запроса при использовании chunked
480 transfer encoding.
481
482 *) Исправление: утечки памяти при использовании директивы ssl_ocsp.
483
484 *) Исправление: в логах могли появляться сообщения "zero size buf in
485 output", если FastCGI-сервер возвращал некорректный ответ; ошибка
486 появилась в 1.19.1.
487
488 *) Исправление: в рабочем процессе мог произойти segmentation fault,
489 если размеры large_client_header_buffers отличались в разных
490 виртуальных серверах.
491
492 *) Исправление: SSL shutdown мог не работать.
493
494 *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
495 failed (SSL: ... bad write retry)".
496
497 *) Исправление: в модуле ngx_http_slice_module.
498
499 *) Исправление: в модуле ngx_http_xslt_filter_module.
500
501
502 Изменения в nginx 1.19.1 07.07.2020
503
504 *) Изменение: директивы lingering_close, lingering_time и
505 lingering_timeout теперь работают при использовании HTTP/2.
506
507 *) Изменение: теперь лишние данные, присланные бэкендом, всегда
508 отбрасываются.
509
510 *) Изменение: теперь при получении слишком короткого ответа от
511 FastCGI-сервера nginx пытается отправить клиенту доступную часть
512 ответа, после чего закрывает соединение с клиентом.
513
514 *) Изменение: теперь при получении ответа некорректной длины от
515 gRPC-бэкенда nginx прекращает обработку ответа с ошибкой.
516
517 *) Добавление: параметр min_free в директивах proxy_cache_path,
518 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
519 Спасибо Adam Bambuch.
520
521 *) Исправление: nginx не удалял unix domain listen-сокеты при плавном
522 завершении по сигналу SIGQUIT.
523
524 *) Исправление: UDP-пакеты нулевого размера не проксировались.
525
526 *) Исправление: проксирование на uwsgi-бэкенды с использованием SSL
527 могло не работать.
528 Спасибо Guanzhong Chen.
529
530 *) Исправление: в обработке ошибок при использовании директивы ssl_ocsp.
531
532 *) Исправление: при использовании файловых систем XFS и NFS размер кэша
533 на диске мог считаться некорректно.
534
535 *) Исправление: если сервер memcached возвращал некорректный ответ, в
536 логах могли появляться сообщения "negative size buf in writer".
537
538
539 Изменения в nginx 1.19.0 26.05.2020
540
541 *) Добавление: проверка клиентских сертификатов с помощью OCSP.
542
543 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
544 "upstream sent frame for closed stream".
545
546 *) Исправление: OCSP stapling мог не работать, если не была указана
547 директива resolver.
548
549 *) Исправление: соединения с некорректным HTTP/2 preface не
550 логгировались.
551
552
553 Изменения в nginx 1.17.10 14.04.2020
554
555 *) Добавление: директива auth_delay.
556
557
558 Изменения в nginx 1.17.9 03.03.2020
559
560 *) Изменение: теперь nginx не разрешает несколько строк "Host" в
561 заголовке запроса.
562
563 *) Исправление: nginx игнорировал дополнительные строки
564 "Transfer-Encoding" в заголовке запроса.
565
566 *) Исправление: утечки сокетов при использовании HTTP/2.
567
568 *) Исправление: в рабочем процессе мог произойти segmentation fault,
569 если использовался OCSP stapling.
570
571 *) Исправление: в модуле ngx_http_mp4_module.
572
573 *) Исправление: при перенаправлении ошибок с кодом 494 с помощью
574 директивы error_page nginx возвращал ответ с кодом 494 вместо 400.
575
576 *) Исправление: утечки сокетов при использовании подзапросов в модуле
577 njs и директивы aio.
578
579
580 Изменения в nginx 1.17.8 21.01.2020
581
582 *) Добавление: директива grpc_pass поддерживает переменные.
583
584 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
585 произойти таймаут; ошибка появилась в 1.17.5.
586
587 *) Исправление: в директиве debug_points при использовании HTTP/2.
588 Спасибо Даниилу Бондареву.
589
590
591 Изменения в nginx 1.17.7 24.12.2019
592
593 *) Исправление: на старте или во время переконфигурации мог произойти
594 segmentation fault, если в конфигурации использовалась директива
595 rewrite с пустой строкой замены.
596
597 *) Исправление: в рабочем процессе мог произойти segmentation fault,
598 если директива break использовалась совместно с директивой alias или
599 директивой proxy_pass с URI.
600
601 *) Исправление: строка Location заголовка ответа могла содержать мусор,
602 если URI запроса был изменён на URI, содержащий нулевой символ.
603
604 *) Исправление: при возврате перенаправлений с помощью директивы
605 error_page запросы с телом обрабатывались некорректно; ошибка
606 появилась в 0.7.12.
607
608 *) Исправление: утечки сокетов при использовании HTTP/2.
609
610 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
611 произойти таймаут; ошибка появилась в 1.17.5.
612
613 *) Исправление: в модуле ngx_http_dav_module.
614
615
616 Изменения в nginx 1.17.6 19.11.2019
617
618 *) Добавление: переменные $proxy_protocol_server_addr и
619 $proxy_protocol_server_port.
620
621 *) Добавление: директива limit_conn_dry_run.
622
623 *) Добавление: переменные $limit_req_status и $limit_conn_status.
624
625
626 Изменения в nginx 1.17.5 22.10.2019
627
628 *) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
629 доступен, чтобы избежать чтения из быстрого соединения в течение
630 долгого времени.
631
632 *) Исправление: неполные закодированные символы в конце URI запроса
633 игнорировались.
634
635 *) Исправление: "/." и "/.." в конце URI запроса не нормализовывались.
636
637 *) Исправление: в директиве merge_slashes.
638
639 *) Исправление: в директиве ignore_invalid_headers.
640 Спасибо Alan Kemp.
641
642 *) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее.
643
644
645 Изменения в nginx 1.17.4 24.09.2019
646
647 *) Изменение: улучшено детектирование некорректного поведения клиентов в
648 HTTP/2.
649
650 *) Изменение: в обработке непрочитанного тела запроса при возврате
651 ошибок в HTTP/2.
652
653 *) Исправление: директива worker_shutdown_timeout могла не работать при
654 использовании HTTP/2.
655
656 *) Исправление: при использовании HTTP/2 и директивы
657 proxy_request_buffering в рабочем процессе мог произойти segmentation
658 fault.
659
660 *) Исправление: на Windows при использовании SSL уровень записи в лог
661 ошибки ECONNABORTED был "crit" вместо "error".
662
663 *) Исправление: nginx игнорировал лишние данные при использовании
664 chunked transfer encoding.
665
666 *) Исправление: если использовалась директива return и при чтении тела
667 запроса возникала ошибка, nginx всегда возвращал ошибку 500.
668
669 *) Исправление: в обработке ошибок выделения памяти.
670
671
672 Изменения в nginx 1.17.3 13.08.2019
673
674 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
675 потребление памяти и ресурсов процессора (CVE-2019-9511,
676 CVE-2019-9513, CVE-2019-9516).
677
678 *) Исправление: при использовании сжатия в логах могли появляться
679 сообщения "zero size buf"; ошибка появилась в 1.17.2.
680
681 *) Исправление: при использовании директивы resolver в SMTP
682 прокси-сервере в рабочем процессе мог произойти segmentation fault.
683
684
685 Изменения в nginx 1.17.2 23.07.2019
686
687 *) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4.
688 Спасибо Илье Леошкевичу.
689
690 *) Изменение: метод $r->internal_redirect() встроенного перла теперь
691 ожидает закодированный URI.
692
693 *) Добавление: теперь с помощью метода $r->internal_redirect()
694 встроенного перла можно перейти в именованный location.
695
696 *) Исправление: в обработке ошибок во встроенном перле.
697
698 *) Исправление: на старте или во время переконфигурации мог произойти
699 segmentation fault, если в конфигурации использовалось значение hash
700 bucket size больше 64 килобайт.
701
702 *) Исправление: при использовании методов обработки соединений select,
703 poll и /dev/poll nginx мог нагружать процессор во время
704 небуферизованного проксирования и при проксировании
705 WebSocket-соединений.
706
707 *) Исправление: в модуле ngx_http_xslt_filter_module.
708
709 *) Исправление: в модуле ngx_http_ssi_filter_module.
710
711
712 Изменения в nginx 1.17.1 25.06.2019
713
714 *) Добавление: директива limit_req_dry_run.
715
716 *) Добавление: при использовании директивы hash в блоке upstream пустой
717 ключ хэширования теперь приводит к переключению на round-robin
718 балансировку.
719 Спасибо Niklas Keller.
720
721 *) Исправление: в рабочем процессе мог произойти segmentation fault,
722 если использовалось кэширование и директива image_filter, а ошибки с
723 кодом 415 перенаправлялись с помощью директивы error_page; ошибка
724 появилась в 1.11.10.
725
726 *) Исправление: в рабочем процессе мог произойти segmentation fault,
727 если использовался встроенный перл; ошибка появилась в 1.7.3.
728
729
730 Изменения в nginx 1.17.0 21.05.2019
731
732 *) Добавление: директивы limit_rate и limit_rate_after поддерживают
733 переменные.
734
735 *) Добавление: директивы proxy_upload_rate и proxy_download_rate в
736 модуле stream поддерживают переменные.
737
738 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8.
739
740 *) Изменение: теперь postpone-фильтр собирается всегда.
741
742 *) Исправление: директива include не работала в блоках if и
743 limit_except.
744
745 *) Исправление: в обработке byte ranges.
746
747
748 Изменения в nginx 1.15.12 16.04.2019
749
750 *) Исправление: в рабочем процессе мог произойти segmentation fault,
751 если в директивах ssl_certificate или ssl_certificate_key
752 использовались переменные и был включён OCSP stapling.
753
754
755 Изменения в nginx 1.15.11 09.04.2019
756
757 *) Исправление: в директиве ssl_stapling_file на Windows.
758
759
760 Изменения в nginx 1.15.10 26.03.2019
761
762 *) Изменение: теперь при использовании имени хоста в директиве listen
763 nginx создаёт listen-сокеты для всех адресов, соответствующих этому
764 имени (ранее использовался только первый адрес).
765
766 *) Добавление: диапазоны портов в директиве listen.
767
768 *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
769 из переменных.
770
771 *) Изменение: переменная $ssl_server_name могла быть пустой при
772 использовании OpenSSL 1.1.1.
773
774 *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
775 ошибка появилась в 1.15.9.
776
777
778 Изменения в nginx 1.15.9 26.02.2019
779
780 *) Добавление: директивы ssl_certificate и ssl_certificate_key
781 поддерживают переменные.
782
783 *) Добавление: метод poll теперь доступен на Windows при использовании
784 Windows Vista и новее.
785
786 *) Исправление: если при использовании метода select на Windows
787 происходила ошибка при установлении соединения с бэкендом, nginx
788 ожидал истечения таймаута на установление соединения.
789
790 *) Исправление: директивы proxy_upload_rate и proxy_download_rate в
791 модуле stream работали некорректно при проксировании UDP-пакетов.
792
793
794 Изменения в nginx 1.15.8 25.12.2018
795
796 *) Добавление: переменная $upstream_bytes_sent.
797 Спасибо Piotr Sikora.
798
799 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
800 Спасибо Геннадию Махомеду.
801
802 *) Исправление: в директиве proxy_cache_background_update.
803
804 *) Исправление: в директиве geo при использовании unix domain
805 listen-сокетов.
806
807 *) Изменение: при использовании директивы ssl_early_data с OpenSSL в
808 логах могли появляться сообщения "ignoring stale global SSL error ...
809 bad length".
810
811 *) Исправление: в nginx/Windows.
812
813 *) Исправление: в модуле ngx_http_autoindex_module на 32-битных
814 платформах.
815
816
817 Изменения в nginx 1.15.7 27.11.2018
818
819 *) Добавление: директива proxy_requests в модуле stream.
820
821 *) Добавление: параметр "delay" директивы "limit_req".
822 Спасибо Владиславу Шабанову и Петру Щучкину.
823
824 *) Исправление: утечки памяти в случае ошибок при переконфигурации.
825
826 *) Исправление: в переменных $upstream_response_time,
827 $upstream_connect_time и $upstream_header_time.
828
829 *) Исправление: в рабочем процессе мог произойти segmentation fault,
830 если использовался модуль ngx_http_mp4_module на 32-битных
831 платформах.
832
833
834 Изменения в nginx 1.15.6 06.11.2018
835
836 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
837 потреблению памяти (CVE-2018-16843) и ресурсов процессора
838 (CVE-2018-16844).
839
840 *) Безопасность: при обработке специально созданного mp4-файла модулем
841 ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
842 отправлено клиенту (CVE-2018-16845).
843
844 *) Добавление: директивы proxy_socket_keepalive,
845 fastcgi_socket_keepalive, grpc_socket_keepalive,
846 memcached_socket_keepalive, scgi_socket_keepalive и
847 uwsgi_socket_keepalive.
848
849 *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
850 OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.
851
852 *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
853 количество памяти.
854
855
856 Изменения в nginx 1.15.5 02.10.2018
857
858 *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
859 процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.
860
861 *) Исправление: незначительных потенциальных ошибок.
862
863
864 Изменения в nginx 1.15.4 25.09.2018
865
866 *) Добавление: теперь директиву ssl_early_data можно использовать с
867 OpenSSL.
868
869 *) Исправление: в модуле ngx_http_uwsgi_module.
870 Спасибо Chris Caputo.
871
872 *) Исправление: соединения к некоторым gRPC-бэкендам могли не
873 кэшироваться при использовании директивы keepalive.
874
875 *) Исправление: при использовании директивы error_page для
876 перенаправления ошибок, возникающих на ранних этапах обработки
877 запроса, в частности ошибок с кодом 400, могла происходить утечка
878 сокетов.
879
880 *) Исправление: директива return при возврате ошибок не изменяла код
881 ответа, если запрос был перенаправлен с помощью директивы error_page.
882
883 *) Исправление: стандартные сообщения об ошибках и ответы модуля
884 ngx_http_autoindex_module содержали атрибут bgcolor, что могло
885 приводить к их некорректному отображению при использовании
886 пользовательских настроек цветов в браузерах.
887 Спасибо Nova DasSarma.
888
889 *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
890 "no suitable signature algorithm" понижен с уровня crit до info.
891
892
893 Изменения в nginx 1.15.3 28.08.2018
894
895 *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.
896
897 *) Добавление: директива ssl_early_data, сейчас доступна при
898 использовании BoringSSL.
899
900 *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
901 upstream.
902
903 *) Исправление: модуль ngx_http_dav_module при копировании файла поверх
904 существующего файла с помощью метода COPY не обнулял целевой файл.
905
906 *) Исправление: модуль ngx_http_dav_module при перемещении файла между
907 файловыми системами с помощью метода MOVE устанавливал нулевые права
908 доступа на результирующий файл и не сохранял время изменения файла.
909
910 *) Исправление: модуль ngx_http_dav_module при копировании файла с
911 помощью метода COPY для результирующего файла использовал права
912 доступа по умолчанию.
913
914 *) Изменение: некоторые клиенты могли не работать при использовании
915 HTTP/2; ошибка появилась в 1.13.5.
916
917 *) Исправление: nginx не собирался с LibreSSL 2.8.0.
918
919
920 Изменения в nginx 1.15.2 24.07.2018
921
922 *) Добавление: переменная $ssl_preread_protocol в модуле
923 ngx_stream_ssl_preread_module.
924
925 *) Добавление: теперь при использовании директивы
926 reset_timedout_connection nginx сбрасывает соединения, закрываемые с
927 кодом 444.
928
929 *) Изменение: уровень логгирования ошибок SSL "http request", "https
930 proxy request", "unsupported protocol" и "version too low" понижен с
931 уровня crit до info.
932
933 *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
934 первой попытке отправки происходила ошибка.
935
936 *) Исправление: параметр reuseport директивы listen игнорировался, если
937 количество рабочих процессов было задано после директивы listen.
938
939 *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
940 ssl_prefer_server_ciphers нельзя было выключить в виртуальном
941 сервере, если она была включена в сервере по умолчанию.
942
943 *) Исправление: повторное использование SSL-сессий к бэкендам не
944 работало с протоколом TLS 1.3.
945
946
947 Изменения в nginx 1.15.1 03.07.2018
948
949 *) Добавление: директива random в блоке upstream.
950
951 *) Добавление: улучшена производительность при использовании директив
952 hash и ip_hash совместно с директивой zone.
953
954 *) Добавление: параметр reuseport директивы listen теперь использует
955 SO_REUSEPORT_LB на FreeBSD 12.
956
957 *) Исправление: HTTP/2 server push не работал, если SSL терминировался
958 прокси-сервером перед nginx'ом.
959
960 *) Исправление: директива tcp_nopush всегда использовалась для
961 соединений к бэкендам.
962
963 *) Исправление: при отправке сохранённого на диск тела запроса на
964 gRPC-бэкенд могли возникать ошибки.
965
966
967 Изменения в nginx 1.15.0 05.06.2018
968
969 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
970 следует использовать параметр ssl директивы listen.
971
972 *) Изменение: теперь при использовании директивы listen с параметром ssl
973 nginx определяет отсутствие SSL-сертификатов при тестировании
974 конфигурации.
975
976 *) Добавление: теперь модуль stream умеет обрабатывать несколько
977 входящих UDP-пакетов от клиента в рамках одной сессии.
978
979 *) Исправление: в директиве proxy_cache_valid можно было указать
980 некорректный код ответа.
981
982 *) Исправление: nginx не собирался gcc 8.1.
983
984 *) Исправление: логгирование в syslog останавливалось при изменении
985 локального IP-адреса.
986
987 *) Исправление: nginx не собирался компилятором clang, если был
988 установлен CUDA SDK; ошибка появилась в 1.13.8.
989
990 *) Исправление: при использовании unix domain listen-сокетов на FreeBSD
991 в процессе обновления исполняемого файла в логе могли появляться
992 сообщения "getsockopt(TCP_FASTOPEN) ... failed".
993
994 *) Исправление: nginx не собирался на Fedora 28 Linux.
995
996 *) Исправление: при использовании директивы limit_req заданная скорость
997 обработки запросов могла не соблюдаться.
998
999 *) Исправление: в обработке адресов клиентов при использовании unix
1000 domain listen-сокетов для работы с датаграммами на Linux.
1001
1002 *) Исправление: в обработке ошибок выделения памяти.
1003
1004
1005 Изменения в nginx 1.13.12 10.04.2018
1006
1007 *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
1008 могли неожиданно закрываться.
1009
1010
1011 Изменения в nginx 1.13.11 03.04.2018
1012
1013 *) Добавление: параметр proxy_protocol директивы listen теперь
1014 поддерживает протокол PROXY версии 2.
1015
1016 *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.
1017
1018 *) Исправление: в параметрах http_404, http_500 и им подобных директивы
1019 proxy_next_upstream.
1020
1021
1022 Изменения в nginx 1.13.10 20.03.2018
1023
1024 *) Добавление: теперь параметр set в SSI-директиве include позволяет
1025 сохранять в переменную любые ответы; максимальный размер ответа
1026 задаётся директивой subrequest_output_buffer_size.
1027
1028 *) Добавление: теперь nginx использует вызов
1029 clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
1030 избежать некорректного срабатывания таймаутов при изменениях
1031 системного времени.
1032
1033 *) Добавление: параметр "escape=none" директивы log_format.
1034 Спасибо Johannes Baiter и Calin Don.
1035
1036 *) Добавление: переменная $ssl_preread_alpn_protocols в модуле
1037 ngx_stream_ssl_preread_module.
1038
1039 *) Добавление: модуль ngx_http_grpc_module.
1040
1041 *) Исправление: в обработке ошибок выделения памяти в директиве geo.
1042
1043 *) Исправление: при использовании переменных в директиве
1044 auth_basic_user_file в лог мог выводиться символ '\0'.
1045 Спасибо Вадиму Филимонову.
1046
1047
1048 Изменения в nginx 1.13.9 20.02.2018
1049
1050 *) Добавление: поддержка HTTP/2 server push; директивы http2_push и
1051 http2_push_preload.
1052
1053 *) Исправление: при использовании кэша в логах могли появляться
1054 сообщения "header already sent"; ошибка появилась в 1.9.13.
1055
1056 *) Исправление: при использовании директивы ssl_verify_client в рабочем
1057 процессе мог произойти segmentation fault, если в виртуальном сервере
1058 не был указан SSL-сертификат.
1059
1060 *) Исправление: в модуле ngx_http_v2_module.
1061
1062 *) Исправление: в модуле ngx_http_dav_module.
1063
1064
1065 Изменения в nginx 1.13.8 26.12.2017
1066
1067 *) Добавление: теперь при использовании параметра transparent директив
1068 proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
1069 nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
1070 процессах.
1071
1072 *) Добавление: улучшения в определении размера строки кэша процессора.
1073 Спасибо Debayan Ghosh.
1074
1075 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
1076 Спасибо Геннадию Махомеду.
1077
1078 *) Исправление: процедура обновления исполняемого файла не работала,
1079 если после завершения родительского процесса новым родительским
1080 процессом nginx'а становился процесс с PID, отличным от 1.
1081
1082 *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
1083 запросы с телом.
1084
1085 *) Исправление: в директиве proxy_limit_rate при использовании с
1086 директивой keepalive.
1087
1088 *) Исправление: при использовании "proxy_buffering off" часть ответа
1089 могла буферизироваться, если клиентское соединение использовало SSL.
1090 Спасибо Patryk Lesiewicz.
1091
1092 *) Исправление: в директиве proxy_cache_background_update.
1093
1094 *) Исправление: переменную вида "${name}" с именем в фигурных скобках
1095 нельзя было использовать в начале параметра не заключив весь параметр
1096 в кавычки.
1097
1098
1099 Изменения в nginx 1.13.7 21.11.2017
1100
1101 *) Исправление: в переменной $upstream_status.
1102
1103 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1104 если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
1105
1106 *) Исправление: если при переконфигурации изменялся размер зоны
1107 разделяемой памяти и переконфигурация завершалась неудачно, то в
1108 главном процессе происходил segmentation fault.
1109
1110 *) Исправление: в модуле ngx_http_fastcgi_module.
1111
1112 *) Исправление: nginx возвращал ошибку 500, если в директиве
1113 xslt_stylesheet были заданы параметры без использования переменных.
1114
1115 *) Изменение: при использовании варианта библиотеки zlib от Intel в лог
1116 писались сообщения "gzip filter failed to use preallocated memory".
1117
1118 *) Исправление: директива worker_shutdown_timeout не работала при
1119 использовании почтового прокси-сервера и при проксировании
1120 WebSocket-соединений.
1121
1122
1123 Изменения в nginx 1.13.6 10.10.2017
1124
1125 *) Исправление: при использовании директивы ssl_preread в модуле stream
1126 не работало переключение на следующий бэкенд.
1127
1128 *) Исправление: в модуле ngx_http_v2_module.
1129 Спасибо Piotr Sikora.
1130
1131 *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
1132 платформах с 64-битным time_t.
1133
1134 *) Исправление: в обработке дат до 1970 года и после 10000 года.
1135
1136 *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
1137 бэкендов не логгировались или логгировались на уровне info вместо
1138 error.
1139
1140 *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
1141 не указав в логе причину.
1142
1143 *) Исправление: в обработке повреждённых файлов кэша.
1144
1145 *) Исправление: при кэшировании ошибок, перехваченных error_page, не
1146 учитывались заголовки управления кэшированием.
1147
1148 *) Исправление: при использовании HTTP/2 тело запроса могло быть
1149 повреждено.
1150
1151 *) Исправление: в обработке адресов клиентов при использовании unix
1152 domain сокетов.
1153
1154 *) Исправление: при использовании директивы "hash ... consistent" в
1155 блоке upstream nginx нагружал процессор, если использовались большие
1156 веса и все или почти все бэкенды были недоступны.
1157
1158
1159 Изменения в nginx 1.13.5 05.09.2017
1160
1161 *) Добавление: переменная $ssl_client_escaped_cert.
1162
1163 *) Исправление: директива ssl_session_ticket_key и параметр include
1164 директивы geo не работали на Windows.
1165
1166 *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
1167 помощью нескольких диапазонов возвращалась некорректная длина ответа.
1168
1169 *) Исправление: директива "expires modified" и обработка строки If-Range
1170 заголовка запроса не учитывали время последнего изменения ответа,
1171 если использовалось проксирование без кэширования.
1172
1173
1174 Изменения в nginx 1.13.4 08.08.2017
1175
1176 *) Добавление: модуль ngx_http_mirror_module.
1177
1178 *) Исправление: клиентские соединения могли сбрасываться при
1179 тестировании конфигурации, если использовался параметр reuseport
1180 директивы listen на Linux.
1181
1182 *) Исправление: тело запроса могло быть недоступно в подзапросах, если
1183 оно было сохранено в файл и использовалось проксирование.
1184
1185 *) Исправление: очистка кэша по max_size не работала на Windows.
1186
1187 *) Исправление: любое выделение разделяемой памяти на Windows требовало
1188 4096 байт памяти.
1189
1190 *) Исправление: при использовании директивы zone в блоке upstream на
1191 Windows рабочий процесс мог завершаться аварийно.
1192
1193
1194 Изменения в nginx 1.13.3 11.07.2017
1195
1196 *) Безопасность: специально созданный запрос мог вызвать целочисленное
1197 переполнение в range-фильтре и последующую некорректную обработку
1198 запрошенных диапазонов, что потенциально могло привести к утечке
1199 конфиденциальной информации (CVE-2017-7529).
1200
1201
1202 Изменения в nginx 1.13.2 27.06.2017
1203
1204 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из
1205 пустого файла nginx возвращает ответ 200 вместо 416.
1206
1207 *) Добавление: директива add_trailer.
1208 Спасибо Piotr Sikora.
1209
1210 *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
1211 в 1.13.0.
1212
1213 *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
1214 Спасибо Orgad Shaneh.
1215
1216 *) Исправление: при использовании SSI с большим количеством подзапросов
1217 и proxy_pass с переменными в рабочем процессе мог произойти
1218 segmentation fault.
1219
1220 *) Исправление: в модуле ngx_http_v2_module.
1221 Спасибо Piotr Sikora.
1222
1223
1224 Изменения в nginx 1.13.1 30.05.2017
1225
1226 *) Добавление: теперь в качестве параметра директивы set_real_ip_from
1227 можно указывать имя хоста.
1228
1229 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
1230
1231 *) Добавление: директива worker_cpu_affinity теперь работает на
1232 DragonFly BSD.
1233 Спасибо Sepherosa Ziehau.
1234
1235 *) Исправление: SSL renegotiation в соединениях к бэкендам не работал
1236 при использовании OpenSSL до 1.1.0.
1237
1238 *) Изменение: nginx не собирался с Oracle Developer Studio 12.5.
1239
1240 *) Изменение: теперь cache manager пропускает заблокированные записи при
1241 очистке кэша по max_size.
1242
1243 *) Исправление: клиентские SSL-соединения сразу закрывались, если
1244 использовался отложенный accept и параметр proxy_protocol директивы
1245 listen.
1246
1247 *) Исправление: в директиве proxy_cache_background_update.
1248
1249 *) Изменение: теперь директива tcp_nodelay устанавливает опцию
1250 TCP_NODELAY перед SSL handshake.
1251
1252
1253 Изменения в nginx 1.13.0 25.04.2017
1254
1255 *) Изменение: теперь SSL renegotiation допускается в соединениях к
1256 бэкендам.
1257
1258 *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
1259 прокси-сервере и модуле stream.
1260
1261 *) Добавление: директивы return и error_page теперь могут использоваться
1262 для возврата перенаправлений с кодом 308.
1263 Спасибо Simon Leblanc.
1264
1265 *) Добавление: параметр TLSv1.3 в директиве ssl_protocols.
1266
1267 *) Добавление: при логгировании сигналов теперь указывается PID
1268 отправившего сигнал процесса.
1269
1270 *) Исправление: в обработке ошибок выделения памяти.
1271
1272 *) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
1273 исходящий адрес ответного UDP-пакета мог отличаться от адреса
1274 назначения исходного пакета.
1275
1276
1277 Изменения в nginx 1.11.13 04.04.2017
1278
1279 *) Добавление: параметр http_429 в директивах proxy_next_upstream,
1280 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
1281 Спасибо Piotr Sikora.
1282
1283 *) Исправление: в обработке ошибок выделения памяти.
1284
1285 *) Исправление: при использовании директив sendfile и timer_resolution
1286 на Linux запросы могли зависать.
1287
1288 *) Исправление: при использовании с подзапросами директив sendfile и
1289 aio_write запросы могли зависать.
1290
1291 *) Исправление: в модуле ngx_http_v2_module.
1292 Спасибо Piotr Sikora.
1293
1294 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1295 произойти segmentation fault.
1296
1297 *) Исправление: запросы могли зависать при использовании с подзапросами
1298 директив limit_rate, sendfile_max_chunk, limit_req или метода
1299 $r->sleep() встроенного перла.
1300
1301 *) Исправление: в модуле ngx_http_slice_module.
1302
1303
1304 Изменения в nginx 1.11.12 24.03.2017
1305
1306 *) Исправление: nginx мог нагружать процессор; ошибка появилась в
1307 1.11.11.
1308
1309
1310 Изменения в nginx 1.11.11 21.03.2017
1311
1312 *) Добавление: директива worker_shutdown_timeout.
1313
1314 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
1315 Спасибо Wei-Ko Kao.
1316
1317 *) Исправление: при попытке установить переменную $limit_rate в пустую
1318 строку в рабочем процессе мог произойти segmentation fault.
1319
1320 *) Исправление: директивы proxy_cache_background_update,
1321 fastcgi_cache_background_update, scgi_cache_background_update и
1322 uwsgi_cache_background_update могли работать некорректно, если
1323 использовалась директива if.
1324
1325 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1326 если количество large_client_header_buffers в виртуальном сервере
1327 отличалось от такового в сервере по умолчанию.
1328
1329 *) Исправление: в почтовом прокси-сервере.
1330
1331
1332 Изменения в nginx 1.11.10 14.02.2017
1333
1334 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные
1335 ответы будут загружены заново.
1336
1337 *) Добавление: поддержка расширений stale-while-revalidate и
1338 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда.
1339
1340 *) Добавление: директивы proxy_cache_background_update,
1341 fastcgi_cache_background_update, scgi_cache_background_update и
1342 uwsgi_cache_background_update.
1343
1344 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary
1345 заголовка длиной до 128 символов (вместо 42 символов в предыдущих
1346 версиях).
1347
1348 *) Добавление: параметр build директивы server_tokens.
1349 Спасибо Tom Thorogood.
1350
1351 *) Исправление: при обработке запросов со строкой "Expect: 100-continue"
1352 в заголовке запроса в логах могли появляться сообщения "[crit]
1353 SSL_write() failed".
1354
1355 *) Исправление: модуль ngx_http_slice_module не работал в именованных
1356 location'ах.
1357
1358 *) Исправление: при использовании AIO после перенаправления запроса с
1359 помощью X-Accel-Redirect в рабочем процессе мог произойти
1360 segmentation fault.
1361
1362 *) Исправление: уменьшено потребление памяти для долгоживущих запросов,
1363 использующих сжатие.
1364
1365
1366 Изменения в nginx 1.11.9 24.01.2017
1367
1368 *) Исправление: при использовании модуля stream nginx мог нагружать
1369 процессор; ошибка появилась в 1.11.5.
1370
1371 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере
1372 можно было использовать, даже если он не был разрешён в конфигурации.
1373
1374 *) Исправление: при использовании директивы ssl_verify_client модуля
1375 stream в рабочем процессе мог произойти segmentation fault.
1376
1377 *) Исправление: директива ssl_verify_client модуля stream могла не
1378 работать.
1379
1380 *) Исправление: при исчерпании рабочим процессом свободных соединений
1381 keepalive-соединения могли закрываться излишне агрессивно.
1382 Спасибо Joel Cunningham.
1383
1384 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS
1385 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8.
1386
1387 *) Исправление: при использовании директивы aio_write ответ мог
1388 сохраняться в кэш не полностью.
1389
1390 *) Исправление: при использовании директивы aio_write могла происходить
1391 утечка сокетов.
1392
1393
1394 Изменения в nginx 1.11.8 27.12.2016
1395
1396 *) Добавление: директива absolute_redirect.
1397
1398 *) Добавление: параметр escape директивы log_format.
1399
1400 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream.
1401
1402 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование
1403 TLS session tickets с помощью AES256 при использовании с 80-байтными
1404 ключами.
1405
1406 *) Добавление: поддержка vim-commentary в скриптах для vim.
1407 Спасибо Armin Grodon.
1408
1409 *) Исправление: рекурсия при получении значений переменных не
1410 ограничивалась.
1411
1412 *) Исправление: в модуле ngx_stream_ssl_preread_module.
1413
1414 *) Исправление: если сервер, описанный в блоке upstream в модуле stream,
1415 был признан неработающим, то после истечения fail_timeout он
1416 признавался работающим только после завершения тестового соединения;
1417 теперь достаточно, чтобы соединение было успешно установлено.
1418
1419 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio.
1420
1421 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0.
1422
1423
1424 Изменения в nginx 1.11.7 13.12.2016
1425
1426 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки
1427 проверки клиентского сертификата содержит строку с описанием ошибки,
1428 например, "FAILED:certificate has expired".
1429
1430 *) Добавление: переменные $ssl_ciphers, $ssl_curves,
1431 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
1432
1433 *) Добавление: параметр volatile директивы map.
1434
1435 *) Исправление: при сборке динамических модулей не учитывались заданные
1436 для модуля зависимости.
1437
1438 *) Исправление: при использовании HTTP/2 и директив limit_req или
1439 auth_request тело запроса могло быть повреждено; ошибка появилась в
1440 1.11.0.
1441
1442 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1443 произойти segmentation fault; ошибка появилась в 1.11.3.
1444
1445 *) Исправление: в модуле ngx_http_mp4_module.
1446 Спасибо Congcong Hu.
1447
1448 *) Исправление: в модуле ngx_http_perl_module.
1449
1450
1451 Изменения в nginx 1.11.6 15.11.2016
1452
1453 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn
1454 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом
1455 формате доступны через переменные $ssl_client_s_dn_legacy и
1456 $ssl_client_i_dn_legacy.
1457
1458 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь
1459 располагаются не в отдельном подкаталоге для временных файлов, а в
1460 том же подкаталоге, что и соответствующие файлы в кэше.
1461
1462 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом
1463 прокси-сервере.
1464 Спасибо Robert Norris.
1465
1466 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module.
1467
1468 *) Добавление: директива proxy_method поддерживает переменные.
1469 Спасибо Дмитрию Лазуркину.
1470
1471 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module.
1472
1473 *) Добавление: директивы proxy_cache_max_range_offset,
1474 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и
1475 uwsgi_cache_max_range_offset.
1476
1477 *) Исправление: плавное завершение старых рабочих процессов могло
1478 занимать бесконечное время при использовании HTTP/2.
1479
1480 *) Исправление: в модуле ngx_http_mp4_module.
1481
1482 *) Исправление: при проксировании WebSocket-соединений и включённом
1483 кэшировании в логах могли появляться сообщения "ignore long locked
1484 inactive cache entry".
1485
1486 *) Исправление: если во время SSL handshake с бэкендом происходил
1487 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502
1488 вместо 504.
1489
1490
1491 Изменения в nginx 1.11.5 11.10.2016
1492
1493 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6
1494 теперь собирается автоматически.
1495
1496 *) Изменение: теперь, если в блоке upstream не оказалось доступных
1497 серверов, nginx не сбрасывает статистику ошибок всех серверов, как
1498 делал ранее, а ожидает истечения fail_timeout.
1499
1500 *) Добавление: модуль ngx_stream_ssl_preread_module.
1501
1502 *) Добавление: директива server в блоке upstream поддерживает параметр
1503 max_conns.
1504
1505 *) Добавление: параметр configure --with-compat.
1506
1507 *) Добавление: параметры manager_files, manager_threshold и
1508 manager_sleep директив proxy_cache_path, fastcgi_cache_path,
1509 scgi_cache_path и uwsgi_cache_path.
1510
1511 *) Исправление: при сборке perl-модуля не использовались флаги, заданные
1512 с помощью параметра configure --with-ld-opt.
1513
1514 *) Исправление: в директиве add_after_body при использовании совместно с
1515 директивой sub_filter.
1516
1517 *) Исправление: в переменной $realip_remote_addr.
1518
1519 *) Исправление: директивы dav_access, proxy_store_access,
1520 fastcgi_store_access, scgi_store_access и uwsgi_store_access
1521 игнорировали права, заданные для пользователя.
1522
1523 *) Исправление: unix domain listen-сокеты могли не наследоваться при
1524 обновлении исполняемого файла на Linux.
1525
1526 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в
1527 HTTP-методе.
1528
1529
1530 Изменения в nginx 1.11.4 13.09.2016
1531
1532 *) Добавление: переменная $upstream_bytes_received.
1533
1534 *) Добавление: переменные $bytes_received, $session_time, $protocol,
1535 $status, $upstream_addr, $upstream_bytes_sent,
1536 $upstream_bytes_received, $upstream_connect_time,
1537 $upstream_first_byte_time и $upstream_session_time в модуле stream.
1538
1539 *) Добавление: модуль ngx_stream_log_module.
1540
1541 *) Добавление: параметр proxy_protocol в директиве listen, переменные
1542 $proxy_protocol_addr и $proxy_protocol_port в модуле stream.
1543
1544 *) Добавление: модуль ngx_stream_realip_module.
1545
1546 *) Исправление: nginx не собирался с модулем stream и модулем
1547 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка
1548 появилась в 1.11.3.
1549
1550 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
1551 ошибка появилась в 1.11.2.
1552
1553 *) Исправление: в параметре ranges директивы geo.
1554
1555 *) Исправление: при использовании директив "aio threads" и sendfile мог
1556 возвращаться некорректный ответ; ошибка появилась в 1.9.13.
1557
1558
1559 Изменения в nginx 1.11.3 26.07.2016
1560
1561 *) Изменение: теперь accept_mutex по умолчанию выключен.
1562
1563 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux.
1564
1565 *) Добавление: модуль ngx_stream_geo_module.
1566
1567 *) Добавление: модуль ngx_stream_geoip_module.
1568
1569 *) Добавление: модуль ngx_stream_split_clients_module.
1570
1571 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream
1572 поддерживают переменные.
1573
1574 *) Исправление: утечки сокетов при использовании HTTP/2.
1575
1576 *) Исправление: в configure.
1577 Спасибо Piotr Sikora.
1578
1579
1580 Изменения в nginx 1.11.2 05.07.2016
1581
1582 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и
1583 SHA1; параметры configure --with-md5 и --with-sha1 упразднены.
1584
1585 *) Добавление: поддержка переменных в модуле stream.
1586
1587 *) Добавление: модуль ngx_stream_map_module.
1588
1589 *) Добавление: модуль ngx_stream_return_module.
1590
1591 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind,
1592 scgi_bind и uwsgi_bind теперь можно указывать порт.
1593
1594 *) Добавление: теперь nginx использует опцию сокета
1595 IP_BIND_ADDRESS_NO_PORT, если она доступна.
1596
1597 *) Исправление: при использовании HTTP/2 и директивы
1598 proxy_request_buffering в рабочем процессе мог произойти segmentation
1599 fault.
1600
1601 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на
1602 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
1603 если у запроса не было тела.
1604
1605 *) Исправление: при использовании HTTP/2 в логах могли появляться
1606 сообщения "http request count is zero".
1607
1608 *) Исправление: при использовании директивы sub_filter могло
1609 буферизироваться больше данных, чем это необходимо; проблема
1610 появилась в 1.9.4.
1611
1612
1613 Изменения в nginx 1.11.1 31.05.2016
1614
1615 *) Безопасность: при записи тела специально созданного запроса во
1616 временный файл в рабочем процессе мог происходить segmentation fault
1617 (CVE-2016-4450); ошибка появилась в 1.3.9.
1618
1619
1620 Изменения в nginx 1.11.0 24.05.2016
1621
1622 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind,
1623 memcached_bind, scgi_bind и uwsgi_bind.
1624
1625 *) Добавление: переменная $request_id.
1626
1627 *) Добавление: директива map поддерживает комбинации нескольких
1628 переменных в качестве результирующих значений.
1629
1630 *) Добавление: теперь при использовании метода epoll nginx проверяет,
1631 поддерживает ли ядро события EPOLLRDHUP, и соответственно
1632 оптимизирует обработку соединений.
1633
1634 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь
1635 можно указывать несколько раз для загрузки сертификатов разных типов
1636 (например, RSA и ECDSA).
1637
1638 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью
1639 директивы ssl_ecdh_curve теперь можно задать список кривых; по
1640 умолчанию используется встроенный в OpenSSL список кривых.
1641
1642 *) Изменение: для использования DHE-шифров теперь надо явно задавать
1643 файл параметров с помощью директивы ssl_dhparam.
1644
1645 *) Добавление: переменная $proxy_protocol_port.
1646
1647 *) Добавление: переменная $realip_remote_port в модуле
1648 ngx_http_realip_module.
1649
1650 *) Добавление: модуль ngx_http_realip_module теперь позволяет
1651 устанавливать не только адрес, но и порт клиента.
1652
1653 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от
1654 согласованного в процессе SSL handshake, теперь возвращается ответ
1655 "421 Misdirected Request"; это улучшает совместимость с некоторыми
1656 HTTP/2-клиентами в случае использования клиентских сертификатов.
1657
1658 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
1659 директива http2_body_preread_size позволяет указать размер буфера,
1660 который будет использоваться до того, как nginx начнёт читать тело.
1661
1662 *) Исправление: при использовании директивы proxy_cache_bypass не
1663 обновлялись закэшированные ошибочные ответы.
1664
1665
1666 Изменения в nginx 1.9.15 19.04.2016
1667
1668 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли
1669 возникать ошибки "recv() failed".
1670
1671 *) Исправление: при использовании HTTP/2 и директив limit_req или
1672 auth_request при чтении тела запроса мог произойти таймаут или ошибка
1673 "client violated flow control"; ошибка появилась в 1.9.14.
1674
1675 *) Изменение: при использовании HTTP/2 ответ мог не показываться
1676 некоторыми браузерами, если тело запроса было прочитано не целиком;
1677 ошибка появилась в 1.9.14.
1678
1679 *) Исправление: при использовании директивы "aio threads" соединения
1680 могли зависать.
1681 Спасибо Mindaugas Rasiukevicius.
1682
1683
1684 Изменения в nginx 1.9.14 05.04.2016
1685
1686 *) Добавление: совместимость с OpenSSL 1.1.0.
1687
1688 *) Добавление: директивы proxy_request_buffering,
1689 fastcgi_request_buffering, scgi_request_buffering и
1690 uwsgi_request_buffering теперь работают при использовании HTTP/2.
1691
1692 *) Исправление: при использовании HTTP/2 в логах могли появляться
1693 сообщения "zero size buf in output".
1694
1695 *) Исправление: при использовании HTTP/2 директива client_max_body_size
1696 могла работать неверно.
1697
1698 *) Исправление: незначительных ошибок логгирования.
1699
1700
1701 Изменения в nginx 1.9.13 29.03.2016
1702
1703 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по
1704 умолчанию не передаются на другой сервер, если запрос уже был
1705 отправлен на бэкенд; параметр non_idempotent директивы
1706 proxy_next_upstream явно разрешает повторять такие запросы.
1707
1708 *) Добавление: модуль ngx_http_perl_module теперь можно собрать
1709 динамически.
1710
1711 *) Добавление: поддержка UDP в модуле stream.
1712
1713 *) Добавление: директива aio_write.
1714
1715 *) Добавление: теперь cache manager следит за количеством элементов в
1716 кэше и старается не допускать переполнений зоны разделяемой памяти.
1717
1718 *) Исправление: при использовании директив sendfile и aio с подзапросами
1719 в логах могли появляться сообщения "task already active" и "second
1720 aio post".
1721
1722 *) Исправление: при использовании кэширования в логах могли появляться
1723 сообщения "zero size buf in output", если клиент закрывал соединение
1724 преждевременно.
1725
1726 *) Исправление: при использовании кэширования соединения с клиентами
1727 могли закрываться без необходимости.
1728 Спасибо Justin Li.
1729
1730 *) Исправление: nginx мог нагружать процессор при использовании
1731 директивы sendfile на Linux и Solaris, если отправляемый файл был
1732 изменён в процессе отправки.
1733
1734 *) Исправление: при использовании директив sendfile и "aio threads"
1735 соединения могли зависать.
1736
1737 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и
1738 uwsgi_pass при использовании переменных.
1739 Спасибо Piotr Sikora.
1740
1741 *) Исправление: в модуле ngx_http_sub_filter_module.
1742
1743 *) Исправление: если в закэшированном соединении к бэкенду происходила
1744 ошибка, запрос передавался на другой сервер без учёта директивы
1745 proxy_next_upstream.
1746
1747 *) Исправление: ошибки "CreateFile() failed" при создании временных
1748 файлов на Windows.
1749
1750
1751 Изменения в nginx 1.9.12 24.02.2016
1752
1753 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2.
1754 Спасибо Владу Краснову.
1755
1756 *) Добавление: директива worker_cpu_affinity теперь поддерживает более
1757 64 процессоров.
1758
1759 *) Исправление: совместимость со сторонними модулями на C++; ошибка
1760 появилась в 1.9.11.
1761 Спасибо Piotr Sikora.
1762
1763 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка
1764 появилась в 1.9.11.
1765
1766 *) Исправление: директива "add_header ... always" с пустым значением не
1767 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag.
1768
1769 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться
1770 сообщения "called a function you should not call" и "shutdown while
1771 in init".
1772
1773 *) Исправление: ошибочные заголовки могли логгироваться некорректно.
1774
1775 *) Исправление: утечки сокетов при использовании HTTP/2.
1776
1777 *) Исправление: в модуле ngx_http_v2_module.
1778
1779
1780 Изменения в nginx 1.9.11 09.02.2016
1781
1782 *) Добавление: теперь resolver поддерживает TCP.
1783
1784 *) Добавление: динамические модули.
1785
1786 *) Исправление: при использовании HTTP/2 переменная $request_length не
1787 учитывала размер заголовков запроса.
1788
1789 *) Исправление: в модуле ngx_http_v2_module.
1790
1791
1792 Изменения в nginx 1.9.10 26.01.2016
1793
1794 *) Безопасность: при использовании директивы resolver во время обработки
1795 ответов DNS-сервера могло происходить разыменование некорректного
1796 адреса, что позволяло атакующему, имеющему возможность подделывать
1797 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
1798 процессе (CVE-2016-0742).
1799
1800 *) Безопасность: при использовании директивы resolver во время обработки
1801 CNAME-записей могло произойти обращение к ранее освобождённой памяти,
1802 что позволяло атакующему, имеющему возможность инициировать
1803 преобразование произвольных имён в адреса, вызвать segmentation fault
1804 в рабочем процессе, а также потенциально могло иметь другие
1805 последствия (CVE-2016-0746).
1806
1807 *) Безопасность: при использовании директивы resolver во время обработки
1808 CNAME-записей не во всех случаях проверялось ограничение на
1809 максимальное количество записей в цепочке, что позволяло атакующему,
1810 имеющему возможность инициировать преобразование произвольных имён в
1811 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
1812 (CVE-2016-0747).
1813
1814 *) Добавление: параметр auto директивы worker_cpu_affinity.
1815
1816 *) Исправление: параметр proxy_protocol директивы listen не работал с
1817 IPv6 listen-сокетами.
1818
1819 *) Исправление: при использовании директивы keepalive соединения к
1820 бэкендам могли кэшироваться некорректно.
1821
1822 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
1823 при проксировании использовался HTTP-метод оригинального запроса.
1824
1825
1826 Изменения в nginx 1.9.9 09.12.2015
1827
1828 *) Исправление: проксирование в unix domain сокеты не работало при
1829 использовании переменных; ошибка появилась в 1.9.8.
1830
1831
1832 Изменения в nginx 1.9.8 08.12.2015
1833
1834 *) Добавление: поддержка pwritev().
1835
1836 *) Добавление: директива include в блоке upstream.
1837
1838 *) Добавление: модуль ngx_http_slice_module.
1839
1840 *) Исправление: при использовании LibreSSL в рабочем процессе мог
1841 произойти segmentation fault; ошибка появилась в 1.9.6.
1842
1843 *) Исправление: nginx мог не собираться на OS X.
1844
1845
1846 Изменения в nginx 1.9.7 17.11.2015
1847
1848 *) Добавление: параметр nohostname логгирования в syslog.
1849
1850 *) Добавление: директива proxy_cache_convert_head.
1851
1852 *) Добавление: переменная $realip_remote_addr в модуле
1853 ngx_http_realip_module.
1854
1855 *) Исправление: директива expires могла не срабатывать при использовании
1856 переменных.
1857
1858 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1859 произойти segmentation fault; ошибка появилась в 1.9.6.
1860
1861 *) Исправление: если nginx был собран с модулем ngx_http_v2_module,
1862 протокол HTTP/2 мог быть использован клиентом, даже если не был
1863 указан параметр http2 директивы listen.
1864
1865 *) Исправление: в модуле ngx_http_v2_module.
1866
1867
1868 Изменения в nginx 1.9.6 27.10.2015
1869
1870 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1871 произойти segmentation fault.
1872 Спасибо Piotr Sikora и Denis Andzakovic.
1873
1874 *) Исправление: при использовании HTTP/2 переменная $server_protocol
1875 была пустой.
1876
1877 *) Исправление: SSL-соединения к бэкендам в модуле stream могли
1878 неожиданно завершаться по таймауту.
1879
1880 *) Исправление: при использовании различных настроек ssl_session_cache в
1881 разных виртуальных серверах в рабочем процессе мог произойти
1882 segmentation fault.
1883
1884 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась
1885 в 1.9.4.
1886 Спасибо Kouhei Sutou.
1887
1888 *) Исправление: при использовании директивы timer_resolution на Windows
1889 время не обновлялось.
1890
1891 *) Незначительные исправления и улучшения.
1892 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
1893
1894
1895 Изменения в nginx 1.9.5 22.09.2015
1896
1897 *) Добавление: модуль ngx_http_v2_module (заменяет модуль
1898 ngx_http_spdy_module).
1899 Спасибо Dropbox и Automattic за спонсирование разработки.
1900
1901 *) Изменение: теперь по умолчанию директива output_buffers использует
1902 два буфера.
1903
1904 *) Изменение: теперь nginx ограничивает максимальную вложенность
1905 подзапросов, а не количество одновременных подзапросов.
1906
1907 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ
1908 полностью.
1909 Спасибо Геннадию Махомеду и Сергею Брестеру.
1910
1911 *) Исправление: при использовании кэша в логах могли появляться
1912 сообщения "header already sent"; ошибка появилась в 1.7.5.
1913
1914 *) Исправление: при использовании CephFS и директивы timer_resolution на
1915 Linux в логах могли появляться сообщения "writev() failed (4:
1916 Interrupted system call)".
1917
1918 *) Исправление: в обработке ошибок конфигурации.
1919 Спасибо Markus Linnala.
1920
1921 *) Исправление: при использовании директивы sub_filter на уровне http в
1922 рабочем процессе происходил segmentation fault; ошибка появилась в
1923 1.9.4.
1924
1925
1926 Изменения в nginx 1.9.4 18.08.2015
1927
1928 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer
1929 в модуле stream заменены директивой proxy_buffer_size.
1930
1931 *) Добавление: директива tcp_nodelay в модуле stream.
1932
1933 *) Добавление: теперь можно указать несколько директив sub_filter
1934 одновременно.
1935
1936 *) Добавление: директива sub_filter поддерживает переменные в строке
1937 поиска.
1938
1939 *) Изменение: тестирование конфигурации могло не работать под Linux
1940 OpenVZ.
1941 Спасибо Геннадию Махомеду.
1942
1943 *) Исправление: после переконфигурации старые рабочие процессы могли
1944 сильно нагружать процессор при больших значениях worker_connections.
1945
1946 *) Исправление: при совместном использовании директив try_files и alias
1947 внутри location'а, заданного регулярным выражением, в рабочем
1948 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
1949
1950 *) Исправление: директива try_files внутри вложенного location'а,
1951 заданного регулярным выражением, работала неправильно, если во
1952 внешнем location'е использовалась директива alias.
1953
1954 *) Исправление: в обработке ошибок при построении хэш-таблиц.
1955
1956 *) Исправление: nginx не собирался с Visual Studio 2015.
1957
1958
1959 Изменения в nginx 1.9.3 14.07.2015
1960
1961 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.
1962
1963 *) Добавление: ограничение количества соединений в модуле stream.
1964
1965 *) Добавление: ограничение скорости в модуле stream.
1966
1967 *) Исправление: директива zone в блоке upstream не работала на Windows.
1968
1969 *) Исправление: совместимость с LibreSSL в модуле stream.
1970 Спасибо Piotr Sikora.
1971
1972 *) Исправление: в параметре --builddir в configure.
1973 Спасибо Piotr Sikora.
1974
1975 *) Исправление: директива ssl_stapling_file не работала; ошибка
1976 появилась в 1.9.2.
1977 Спасибо Faidon Liambotis и Brandon Black.
1978
1979 *) Исправление: при использовании директивы ssl_stapling в рабочем
1980 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
1981 Спасибо Matthew Baldwin.
1982
1983
1984 Изменения в nginx 1.9.2 16.06.2015
1985
1986 *) Добавление: параметр backlog директивы listen в почтовом
1987 прокси-сервере и модуле stream.
1988
1989 *) Добавление: директивы allow и deny в модуле stream.
1990
1991 *) Добавление: директива proxy_bind в модуле stream.
1992
1993 *) Добавление: директива proxy_protocol в модуле stream.
1994
1995 *) Добавление: ключ -T.
1996
1997 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
1998 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
1999 uwsgi_params.
2000
2001 *) Исправление: параметр reuseport директивы listen в модуле stream не
2002 работал.
2003
2004 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
2005 OCSP-ответ.
2006
2007
2008 Изменения в nginx 1.9.1 26.05.2015
2009
2010 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён.
2011
2012 *) Изменение: некоторые давно устаревшие директивы больше не
2013 поддерживаются.
2014
2015 *) Добавление: параметр reuseport директивы listen.
2016 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
2017
2018 *) Добавление: переменная $upstream_connect_time.
2019
2020 *) Исправление: в директиве hash на big-endian платформах.
2021
2022 *) Исправление: nginx мог не запускаться на некоторых старых версиях
2023 Linux; ошибка появилась в 1.7.11.
2024
2025 *) Исправление: в парсинге IP-адресов.
2026 Спасибо Сергею Половко.
2027
2028
2029 Изменения в nginx 1.9.0 28.04.2015
2030
2031 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше
2032 не поддерживаются.
2033
2034 *) Добавление: директива zone в блоке upstream.
2035
2036 *) Добавление: модуль stream.
2037
2038 *) Добавление: поддержка byte ranges для ответов модуля
2039 ngx_http_memcached_module.
2040 Спасибо Martin Mlynář.
2041
2042 *) Добавление: разделяемую память теперь можно использовать на версиях
2043 Windows с рандомизацией адресного пространства.
2044 Спасибо Сергею Брестеру.
2045
2046 *) Добавление: директиву error_log теперь можно использовать на уровнях
2047 mail и server в почтовом прокси-сервере.
2048
2049 *) Исправление: параметр proxy_protocol директивы listen не работал,
2050 если не был указан в первой директиве listen для данного
2051 listen-сокета.
2052
2053
2054 Изменения в nginx 1.7.12 07.04.2015
2055
2056 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
2057 с бэкендами.
2058
2059 *) Добавление: теперь потоки могут использоваться для чтения заголовков
2060 файлов в кэше.
2061
2062 *) Исправление: в директиве proxy_request_buffering.
2063
2064 *) Исправление: при использовании потоков на Linux в рабочем процессе
2065 мог произойти segmentation fault.
2066
2067 *) Исправление: в обработке ошибок при использовании директивы
2068 ssl_stapling.
2069 Спасибо Filipe da Silva.
2070
2071 *) Исправление: в модуле ngx_http_spdy_module.
2072
2073
2074 Изменения в nginx 1.7.11 24.03.2015
2075
2076 *) Изменение: параметр sendfile директивы aio более не нужен; теперь
2077 nginx автоматически использует AIO для подгрузки данных для sendfile,
2078 если одновременно используются директивы aio и sendfile.
2079
2080 *) Добавление: экспериментальная поддержка потоков.
2081
2082 *) Добавление: директивы proxy_request_buffering,
2083 fastcgi_request_buffering, scgi_request_buffering и
2084 uwsgi_request_buffering.
2085
2086 *) Добавление: экспериментальное API для обработки тела запроса.
2087
2088 *) Добавление: проверка клиентских SSL-сертификатов в почтовом
2089 прокси-сервере.
2090 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
2091
2092 *) Добавление: уменьшение времени запуска при использовании директивы
2093 "hash ... consistent" в блоке upstream.
2094 Спасибо Wai Keen Woon.
2095
2096 *) Добавление: отладочное логгирование в кольцевой буфер в памяти.
2097
2098 *) Исправление: в обработке хэш-таблиц.
2099 Спасибо Chris West.
2100
2101 *) Исправление: в директиве proxy_cache_revalidate.
2102
2103 *) Исправление: SSL-соединения могли зависать, если использовался
2104 отложенный accept или параметр proxy_protocol директивы listen.
2105 Спасибо James Hamlin.
2106
2107 *) Исправление: переменная $upstream_response_time могла содержать
2108 неверное значение при использовании директивы image_filter.
2109
2110 *) Исправление: в обработке целочисленных переполнений.
2111 Спасибо Régis Leroy.
2112
2113 *) Исправление: при использовании LibreSSL было невозможно включить
2114 поддержку SSLv3.
2115
2116 *) Исправление: при использовании LibreSSL в логах появлялись сообщения
2117 "ignoring stale global SSL error ... called a function you should not
2118 call".
2119
2120 *) Исправление: сертификаты, указанные в директивах
2121 ssl_client_certificate и ssl_trusted_certificate, использовались для
2122 автоматического построения цепочек сертификатов.
2123
2124
2125 Изменения в nginx 1.7.10 10.02.2015
2126
2127 *) Добавление: параметр use_temp_path директив proxy_cache_path,
2128 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
2129
2130 *) Добавление: переменная $upstream_header_time.
2131
2132 *) Изменение: теперь при переполнении диска nginx пытается писать
2133 error_log'и только раз в секунду.
2134
2135 *) Исправление: директива try_files при тестировании каталогов не
2136 игнорировала обычные файлы.
2137 Спасибо Damien Tournoud.
2138
2139 *) Исправление: при использовании директивы sendfile на OS X возникали
2140 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8.
2141
2142 *) Исправление: в лог могли писаться сообщения "sem_post() failed".
2143
2144 *) Исправление: nginx не собирался с musl libc.
2145 Спасибо James Taylor.
2146
2147 *) Исправление: nginx не собирался на Tru64 UNIX.
2148 Спасибо Goetz T. Fischer.
2149
2150
2151 Изменения в nginx 1.7.9 23.12.2014
2152
2153 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
2154 uwsgi_cache поддерживают переменные.
2155
2156 *) Добавление: директива expires поддерживает переменные.
2157
2158 *) Добавление: возможность загрузки секретных ключей с аппаратных
2159 устройств с помощью OpenSSL engines.
2160 Спасибо Дмитрию Пичулину.
2161
2162 *) Добавление: директива autoindex_format.
2163
2164 *) Исправление: ревалидация элементов кэша теперь используется только
2165 для ответов с кодами 200 и 206.
2166 Спасибо Piotr Sikora.
2167
2168 *) Исправление: строка "TE" заголовка запроса клиента передавалась на
2169 бэкенд при проксировании.
2170
2171 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
2172 uwsgi_pass могли неправильно работать внутри блоков if и
2173 limit_except.
2174
2175 *) Исправление: директива proxy_store с параметром "on" игнорировалась,
2176 если на предыдущем уровне использовалась директива proxy_store с явно
2177 заданным путём к файлам.
2178
2179 *) Исправление: nginx не собирался с BoringSSL.
2180 Спасибо Lukas Tribus.
2181
2182
2183 Изменения в nginx 1.7.8 02.12.2014
2184
2185 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им
2186 подобные в заголовке запроса клиента передаются бэкенду при
2187 включённом кэшировании, если nginx заранее знает, что не будет
2188 кэшировать ответ (например, при использовании proxy_cache_min_uses).
2189
2190 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
2191 отправляет запрос на бэкенд без кэширования; новые директивы
2192 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
2193 uwsgi_cache_lock_age позволяют указать, через какое время блокировка
2194 будет принудительно снята и будет сделана ещё одна попытка
2195 закэшировать ответ.
2196
2197 *) Изменение: директива log_format теперь может использоваться только на
2198 уровне http.
2199
2200 *) Добавление: директивы proxy_ssl_certificate,
2201 proxy_ssl_certificate_key, proxy_ssl_password_file,
2202 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
2203 uwsgi_ssl_password_file.
2204 Спасибо Piotr Sikora.
2205
2206 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
2207 именованный location.
2208 Спасибо Toshikuni Fukaya.
2209
2210 *) Добавление: теперь директива tcp_nodelay работает для
2211 SPDY-соединений.
2212
2213 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
2214 Спасибо Peter Wu.
2215
2216 *) Исправление: nginx игнорировал значение "s-maxage" в строке
2217 "Cache-Control" в заголовке ответа бэкенда.
2218 Спасибо Piotr Sikora.
2219
2220 *) Исправление: в модуле ngx_http_spdy_module.
2221 Спасибо Piotr Sikora.
2222
2223 *) Исправление: в директиве ssl_password_file при использовании OpenSSL
2224 0.9.8zc, 1.0.0o, 1.0.1j.
2225
2226 *) Исправление: при использовании директивы post_action в лог писались
2227 сообщения "header already sent"; ошибка появилась в nginx 1.5.4.
2228
2229 *) Исправление: при использовании директивы "postpone_output 0" с
2230 SSI-подзапросами в лог могли писаться сообщения "the http output
2231 chain is empty".
2232
2233 *) Исправление: в директиве proxy_cache_lock при использовании
2234 SSI-подзапросов.
2235 Спасибо Yichun Zhang.
2236
2237
2238 Изменения в nginx 1.7.7 28.10.2014
2239
2240 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
2241 заголовке ответа бэкенда.
2242
2243 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
2244 scgi_force_ranges и uwsgi_force_ranges.
2245
2246 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
2247 scgi_limit_rate и uwsgi_limit_rate.
2248
2249 *) Добавление: параметр Vary директив proxy_ignore_headers,
2250 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.
2251
2252 *) Исправление: последняя часть ответа, полученного от бэкенда при
2253 небуферизированном проксировании, могла не отправляться клиенту, если
2254 использовались директивы gzip или gunzip.
2255
2256 *) Исправление: в директиве proxy_cache_revalidate.
2257 Спасибо Piotr Sikora.
2258
2259 *) Исправление: в обработке ошибок.
2260 Спасибо Yichun Zhang и Даниилу Бондареву.
2261
2262 *) Исправление: в директивах proxy_next_upstream_tries и
2263 proxy_next_upstream_timeout.
2264 Спасибо Feng Gu.
2265
2266 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
2267 Спасибо Kouhei Sutou.
2268
2269
2270 Изменения в nginx 1.7.6 30.09.2014
2271
2272 *) Изменение: устаревшая директива limit_zone больше не поддерживается.
2273
2274 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
2275 можно использовать комбинации нескольких переменных.
2276
2277 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
2278 запроса могло передаваться неправильно.
2279
2280 *) Исправление: в логгировании в syslog.
2281
2282
2283 Изменения в nginx 1.7.5 16.09.2014
2284
2285 *) Безопасность: при использовании общего для нескольких блоков server
2286 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
2287 session tickets было возможно повторно использовать SSL-сессию в
2288 контексте другого блока server (CVE-2014-3616).
2289 Спасибо Antoine Delignat-Lavaud.
2290
2291 *) Изменение: директиву stub_status теперь можно указывать без
2292 параметров.
2293
2294 *) Добавление: параметр always директивы add_header.
2295
2296 *) Добавление: директивы proxy_next_upstream_tries,
2297 proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
2298 fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
2299 memcached_next_upstream_timeout, scgi_next_upstream_tries,
2300 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
2301 uwsgi_next_upstream_timeout.
2302
2303 *) Исправление: в параметре if директивы access_log.
2304
2305 *) Исправление: в модуле ngx_http_perl_module.
2306 Спасибо Piotr Sikora.
2307
2308 *) Исправление: директива listen почтового прокси-сервера не позволяла
2309 указать более двух параметров.
2310
2311 *) Исправление: директива sub_filter не работала с заменяемой строкой из
2312 одного символа.
2313
2314 *) Исправление: запросы могли зависать, если использовался resolver и в
2315 процессе обращения к DNS-серверу происходил таймаут.
2316
2317 *) Исправление: в модуле ngx_http_spdy_module при использовании
2318 совместно с AIO.
2319
2320 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2321 если с помощью директивы set изменялись переменные "$http_...",
2322 "$sent_http_..." или "$upstream_http_...".
2323
2324 *) Исправление: в обработке ошибок выделения памяти.
2325 Спасибо Markus Linnala и Feng Gu.
2326
2327
2328 Изменения в nginx 1.7.4 05.08.2014
2329
2330 *) Безопасность: pipelined-команды не отбрасывались после команды
2331 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
2332 1.5.6.
2333 Спасибо Chris Boulton.
2334
2335 *) Изменение: экранирование символов в URI теперь использует
2336 шестнадцатеричные цифры в верхнем регистре.
2337 Спасибо Piotr Sikora.
2338
2339 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
2340 Спасибо Piotr Sikora.
2341
2342 *) Исправление: запросы могли зависать, если использовался resolver и
2343 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.
2344
2345 *) Исправление: в модуле ngx_http_spdy_module.
2346 Спасибо Piotr Sikora.
2347
2348 *) Исправление: переменная $uri могла содержать мусор при возврате
2349 ошибок с кодом 400.
2350 Спасибо Сергею Боброву.
2351
2352 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле
2353 ngx_http_dav_module.
2354 Спасибо Feng Gu.
2355
2356 *) Исправление: при логгировании ошибок в syslog мог происходить
2357 segmentation fault; ошибка появилась в 1.7.1.
2358
2359 *) Исправление: переменные $geoip_latitude, $geoip_longitude,
2360 $geoip_dma_code и $geoip_area_code могли не работать.
2361 Спасибо Yichun Zhang.
2362
2363 *) Исправление: в обработке ошибок выделения памяти.
2364 Спасибо Tatsuhiko Kubo и Piotr Sikora.
2365
2366
2367 Изменения в nginx 1.7.3 08.07.2014
2368
2369 *) Добавление: weak entity tags теперь не удаляются при изменениях
2370 ответа, а strong entity tags преобразуются в weak.
2371
2372 *) Добавление: ревалидация элементов кэша теперь, если это возможно,
2373 использует заголовок If-None-Match.
2374
2375 *) Добавление: директива ssl_password_file.
2376
2377 *) Исправление: при возврате ответа из кэша заголовок запроса
2378 If-None-Match игнорировался, если в ответе не было заголовка
2379 Last-Modified.
2380
2381 *) Исправление: сообщения "peer closed connection in SSL handshake" при
2382 соединении с бэкендами логгировались на уровне info вместо error.
2383
2384 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows.
2385
2386 *) Исправление: SPDY-соединения могли неожиданно закрываться, если
2387 использовалось кэширование.
2388
2389
2390 Изменения в nginx 1.7.2 17.06.2014
2391
2392 *) Добавление: директива hash в блоке upstream.
2393
2394 *) Добавление: дефрагментация свободных блоков разделяемой памяти.
2395 Спасибо Wandenberg Peixoto и Yichun Zhang.
2396
2397 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2398 если использовалось значение access_log по умолчанию; ошибка
2399 появилась в 1.7.0.
2400 Спасибо Piotr Sikora.
2401
2402 *) Исправление: завершающий слэш ошибочно удалялся из последнего
2403 параметра директивы try_files.
2404
2405 *) Исправление: nginx мог не собираться на OS X.
2406
2407 *) Исправление: в модуле ngx_http_spdy_module.
2408
2409
2410 Изменения в nginx 1.7.1 27.05.2014
2411
2412 *) Добавление: переменные "$upstream_cookie_...".
2413
2414 *) Добавление: переменная $ssl_client_fingerprint.
2415
2416 *) Добавление: директивы error_log и access_log теперь поддерживают
2417 логгирование в syslog.
2418
2419 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
2420 соединении.
2421
2422 *) Исправление: утечки памяти при использовании директивы
2423 "ssl_stapling".
2424 Спасибо Filipe da Silva.
2425
2426 *) Исправление: директива alias внутри location'а, заданного регулярным
2427 выражением, работала неправильно, если использовались директивы if
2428 или limit_except.
2429
2430 *) Исправление: директива charset не ставила кодировку для сжатых
2431 ответов бэкендов.
2432
2433 *) Исправление: директива proxy_pass без URI могла использовать
2434 оригинальный запрос после установки переменной $args.
2435 Спасибо Yichun Zhang.
2436
2437 *) Исправление: в работе параметра none директивы smtp_auth; ошибка
2438 появилась в 1.5.6.
2439 Спасибо Святославу Никольскому.
2440
2441 *) Исправление: при совместном использовании sub_filter и SSI ответы
2442 могли передаваться неверно.
2443
2444 *) Исправление: nginx не собирался с параметром --with-file-aio на
2445 Linux/aarch64.
2446
2447
2448 Изменения в nginx 1.7.0 24.04.2014
2449
2450 *) Добавление: проверка SSL-сертификатов бэкендов.
2451
2452 *) Добавление: поддержка SNI при работе с бэкендами по SSL.
2453
2454 *) Добавление: переменная $ssl_server_name.
2455
2456 *) Добавление: параметр if директивы access_log.
2457
2458
2459 Изменения в nginx 1.5.13 08.04.2014
2460
2461 *) Изменение: улучшена обработка хэш-таблиц; в директивах
2462 variables_hash_max_size и types_hash_bucket_size значения по
2463 умолчанию изменены на 1024 и 64 соответственно.
2464
2465 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
2466
2467 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
2468 сохранении ответов в кэш.
2469
2470 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
2471 failed: no memory" при использовании разделяемой памяти в
2472 ssl_session_cache и в модуле ngx_http_limit_req_module.
2473
2474 *) Исправление: директива underscores_in_headers не разрешала
2475 подчёркивание в первом символе заголовка.
2476 Спасибо Piotr Sikora.
2477
2478 *) Исправление: cache manager мог нагружать процессор при выходе в
2479 nginx/Windows.
2480
2481 *) Исправление: при использовании ssl_session_cache с параметром shared
2482 рабочий процесс nginx/Windows завершался аварийно.
2483
2484 *) Исправление: в модуле ngx_http_spdy_module.
2485
2486
2487 Изменения в nginx 1.5.12 18.03.2014
2488
2489 *) Безопасность: при обработке специально созданного запроса модулем
2490 ngx_http_spdy_module могло происходить переполнение буфера в рабочем
2491 процессе, что потенциально могло приводить к выполнению произвольного
2492 кода (CVE-2014-0133).
2493 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
2494 Buenos Aires, Argentina.
2495
2496 *) Добавление: параметр proxy_protocol в директивах listen и
2497 real_ip_header, переменная $proxy_protocol_addr.
2498
2499 *) Исправление: в директиве fastcgi_next_upstream.
2500 Спасибо Lucas Molas.
2501
2502
2503 Изменения в nginx 1.5.11 04.03.2014
2504
2505 *) Безопасность: при обработке специально созданного запроса модулем
2506 ngx_http_spdy_module на 32-битных платформах могла повреждаться
2507 память рабочего процесса, что потенциально могло приводить к
2508 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
2509 1.5.10.
2510 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
2511 Buenos Aires, Argentina.
2512
2513 *) Добавление: переменная $ssl_session_reused.
2514
2515 *) Исправление: директива client_max_body_size могла не работать при
2516 чтении тела запроса с использованием chunked transfer encoding;
2517 ошибка появилась в 1.3.9.
2518 Спасибо Lucas Molas.
2519
2520 *) Исправление: при проксировании WebSocket-соединений в рабочем
2521 процессе мог произойти segmentation fault.
2522
2523 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2524 если использовался модуль ngx_http_spdy_module на 32-битных
2525 платформах; ошибка появилась в 1.5.10.
2526
2527 *) Исправление: значение переменной $upstream_status могло быть
2528 неверным, если использовались директивы proxy_cache_use_stale или
2529 proxy_cache_revalidate.
2530 Спасибо Piotr Sikora.
2531
2532 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2533 если ошибки с кодом 400 с помощью директивы error_page
2534 перенаправлялись в именованный location.
2535
2536 *) Исправление: nginx/Windows не собирался с Visual Studio 2013.
2537
2538
2539 Изменения в nginx 1.5.10 04.02.2014
2540
2541 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол
2542 SPDY 3.1.
2543 Спасибо Automattic и MaxCDN за спонсирование разработки.
2544
2545 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
2546 имеющие меньшую длину, чем запрошенная перемотка.
2547
2548 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2549 если переменная $ssl_session_id использовалась при логгировании;
2550 ошибка появилась в 1.5.9.
2551
2552 *) Исправление: переменные $date_local и $date_gmt использовали неверный
2553 формат вне модуля ngx_http_ssi_filter_module.
2554
2555 *) Исправление: клиентские соединения могли сразу закрываться, если
2556 использовался отложенный accept; ошибка появилась в 1.3.15.
2557
2558 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
2559 записывались в лог в процессе обновления исполняемого файла на Linux;
2560 ошибка появилась в 1.5.8.
2561 Спасибо Piotr Sikora.
2562
2563
2564 Изменения в nginx 1.5.9 22.01.2014
2565
2566 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
2567 закодированный URI.
2568
2569 *) Добавление: директива ssl_buffer_size.
2570
2571 *) Добавление: директиву limit_rate теперь можно использовать для
2572 ограничения скорости передачи ответов клиенту в SPDY-соединениях.
2573
2574 *) Добавление: директива spdy_chunk_size.
2575
2576 *) Добавление: директива ssl_session_tickets.
2577 Спасибо Dirkjan Bussink.
2578
2579 *) Исправление: переменная $ssl_session_id содержала всю сессию в
2580 сериализованном виде вместо её идентификатора.
2581 Спасибо Ivan Ristić.
2582
2583 *) Исправление: nginx неправильно обрабатывал закодированный символ "?"
2584 в команде SSI include.
2585
2586 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
2587 при обработке методов COPY и MOVE.
2588
2589 *) Исправление: resolver не понимал доменные имена с точкой в конце.
2590 Спасибо Yichun Zhang.
2591
2592 *) Исправление: при проксировании в логах могли появляться сообщения
2593 "zero size buf in output"; ошибка появилась в 1.3.9.
2594
2595 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2596 если использовался модуль ngx_http_spdy_module.
2597
2598 *) Исправление: при использовании методов обработки соединений select,
2599 poll и /dev/poll проксируемые WebSocket-соединения могли зависать
2600 сразу после открытия.
2601
2602 *) Исправление: директива xclient почтового прокси-сервера некорректно
2603 передавала IPv6-адреса.
2604
2605
2606 Изменения в nginx 1.5.8 17.12.2013
2607
2608 *) Добавление: теперь resolver поддерживает IPv6.
2609
2610 *) Добавление: директива listen поддерживает параметр fastopen.
2611 Спасибо Mathew Rodley.
2612
2613 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
2614 Спасибо Roberto De Ioris.
2615
2616 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
2617 Спасибо Evan Miller.
2618
2619 *) Исправление: при чтении тела запроса с использованием chunked
2620 transfer encoding по SSL-соединению мог произойти таймаут.
2621
2622 *) Исправление: директива master_process работала неправильно в
2623 nginx/Windows.
2624
2625 *) Исправление: параметр setfib директивы listen мог не работать.
2626
2627 *) Исправление: в модуле ngx_http_spdy_module.
2628
2629
2630 Изменения в nginx 1.5.7 19.11.2013
2631
2632 *) Безопасность: символ, следующий за незакодированным пробелом в строке
2633 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
2634 в 0.8.41.
2635 Спасибо Ivan Fratric из Google Security Team.
2636
2637 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии
2638 пароля понижен с уровня error до info.
2639
2640 *) Добавление: директивы proxy_cache_revalidate,
2641 fastcgi_cache_revalidate, scgi_cache_revalidate и
2642 uwsgi_cache_revalidate.
2643
2644 *) Добавление: директива ssl_session_ticket_key.
2645 Спасибо Piotr Sikora.
2646
2647 *) Исправление: директива "add_header Cache-Control ''" добавляла строку
2648 заголовка ответа "Cache-Control" с пустым значением.
2649
2650 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
2651 401 при использовании директив auth_request и auth_basic.
2652 Спасибо Jan Marc Hoffmann.
2653
2654 *) Исправление: параметры accept_filter и deferred директивы listen
2655 игнорировались для listen-сокетов, создаваемых в процессе обновления
2656 исполняемого файла.
2657 Спасибо Piotr Sikora.
2658
2659 *) Исправление: часть данных, полученных от бэкенда при
2660 небуферизированном проксировании, могла не отправляться клиенту
2661 сразу, если использовались директивы gzip или gunzip.
2662 Спасибо Yichun Zhang.
2663
2664 *) Исправление: в обработке ошибок в модуле
2665 ngx_http_gunzip_filter_module.
2666
2667 *) Исправление: ответы могли зависать, если использовался модуль
2668 ngx_http_spdy_module и директива auth_request.
2669
2670 *) Исправление: утечки памяти в nginx/Windows.
2671
2672
2673 Изменения в nginx 1.5.6 01.10.2013
2674
2675 *) Добавление: директива fastcgi_buffering.
2676
2677 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
2678 Спасибо Piotr Sikora.
2679
2680 *) Добавление: оптимизация SSL handshake при использовании длинных
2681 цепочек сертификатов.
2682
2683 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
2684
2685 *) Исправление: в модуле ngx_http_auth_basic_module при использовании
2686 метода шифрования паролей "$apr1$".
2687 Спасибо Markus Linnala.
2688
2689 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
2690 мог использоваться неверный location, если для задания location'ов
2691 использовались символы разных регистров.
2692
2693 *) Исправление: автоматическое перенаправление с добавлением
2694 завершающего слэша для проксированных location'ов могло не работать.
2695
2696 *) Исправление: в почтовом прокси-сервере.
2697
2698 *) Исправление: в модуле ngx_http_spdy_module.
2699
2700
2701 Изменения в nginx 1.5.5 17.09.2013
2702
2703 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
2704 определить протокол не удалось.
2705
2706 *) Добавление: директива disable_symlinks теперь использует O_PATH на
2707 Linux.
2708
2709 *) Добавление: для определения того, что клиент закрыл соединение, при
2710 использовании метода epoll теперь используются события EPOLLRDHUP.
2711
2712 *) Исправление: в директиве valid_referers при использовании параметра
2713 server_names.
2714
2715 *) Исправление: переменная $request_time не работала в nginx/Windows.
2716
2717 *) Исправление: в директиве image_filter.
2718 Спасибо Lanshun Zhou.
2719
2720 *) Исправление: совместимость с OpenSSL 1.0.1f.
2721 Спасибо Piotr Sikora.
2722
2723
2724 Изменения в nginx 1.5.4 27.08.2013
2725
2726 *) Изменение: MIME-тип для расширения js изменён на
2727 "application/javascript"; значение по умолчанию директивы
2728 charset_types изменено соответственно.
2729
2730 *) Изменение: теперь директива image_filter с параметром size возвращает
2731 ответ с MIME-типом "application/json".
2732
2733 *) Добавление: модуль ngx_http_auth_request_module.
2734
2735 *) Исправление: на старте или во время переконфигурации мог произойти
2736 segmentation fault, если использовалась директива try_files с пустым
2737 параметром.
2738
2739 *) Исправление: утечки памяти при использовании в директивах root и
2740 auth_basic_user_file относительных путей, заданных с помощью
2741 переменных.
2742
2743 *) Исправление: директива valid_referers неправильно выполняла
2744 регулярные выражения, если заголовок Referer начинался с "https://".
2745 Спасибо Liangbin Li.
2746
2747 *) Исправление: ответы могли зависать, если использовались подзапросы и
2748 при обработке подзапроса происходила ошибка во время SSL handshake с
2749 бэкендом.
2750 Спасибо Aviram Cohen.
2751
2752 *) Исправление: в модуле ngx_http_autoindex_module.
2753
2754 *) Исправление: в модуле ngx_http_spdy_module.
2755
2756
2757 Изменения в nginx 1.5.3 30.07.2013
2758
2759 *) Изменение во внутреннем API: теперь при небуферизированной работе с
2760 бэкендами u->length по умолчанию устанавливается в -1.
2761
2762 *) Изменение: теперь при получении неполного ответа от бэкенда nginx
2763 отправляет полученную часть ответа, после чего закрывает соединение с
2764 клиентом.
2765
2766 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2767 если использовался модуль ngx_http_spdy_module и директива
2768 client_body_in_file_only.
2769
2770 *) Исправление: параметр so_keepalive директивы listen мог работать
2771 некорректно на DragonFlyBSD.
2772 Спасибо Sepherosa Ziehau.
2773
2774 *) Исправление: в модуле ngx_http_xslt_filter_module.
2775
2776 *) Исправление: в модуле ngx_http_sub_filter_module.
2777
2778
2779 Изменения в nginx 1.5.2 02.07.2013
2780
2781 *) Добавление: теперь можно использовать несколько директив error_log.
2782
2783 *) Исправление: метод $r->header_in() встроенного перла не возвращал
2784 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
2785 ошибка появилась в 1.3.14.
2786
2787 *) Исправление: в модуле ngx_http_spdy_module.
2788 Спасибо Jim Radford.
2789
2790 *) Исправление: nginx не собирался на Linux при использовании x32 ABI.
2791 Спасибо Сергею Иванцову.
2792
2793
2794 Изменения в nginx 1.5.1 04.06.2013
2795
2796 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
2797 xslt_last_modified.
2798 Спасибо Алексею Колпакову.
2799
2800 *) Добавление: параметр http_403 в директивах proxy_next_upstream,
2801 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
2802
2803 *) Добавление: директивы allow и deny теперь поддерживают unix domain
2804 сокеты.
2805
2806 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
2807 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
2808
2809 *) Исправление: в директиве proxy_set_body.
2810 Спасибо Lanshun Zhou.
2811
2812 *) Исправление: в директиве lingering_time.
2813 Спасибо Lanshun Zhou.
2814
2815 *) Исправление: параметр fail_timeout директивы server в блоке upstream
2816 мог не работать, если использовался параметр max_fails; ошибка
2817 появилась в 1.3.0.
2818
2819 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2820 если использовалась директива ssl_stapling.
2821 Спасибо Piotr Sikora.
2822
2823 *) Исправление: в почтовом прокси-сервере.
2824 Спасибо Filipe Da Silva.
2825
2826 *) Исправление: nginx/Windows мог перестать принимать соединения, если
2827 использовалось несколько рабочих процессов.
2828
2829
2830 Изменения в nginx 1.5.0 07.05.2013
2831
2832 *) Безопасность: при обработке специально созданного запроса мог
2833 перезаписываться стек рабочего процесса, что могло приводить к
2834 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
2835 1.3.9.
2836 Спасибо Greg MacManus, iSIGHT Partners Labs.
2837
2838
2839 Изменения в nginx 1.4.0 24.04.2013
2840
2841 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2842 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
2843
2844 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
2845 ошибка появилась в 1.3.9.
2846
2847
2848 Изменения в nginx 1.3.16 16.04.2013
2849
2850 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2851 если использовались подзапросы; ошибка появилась в 1.3.9.
2852
2853 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
2854 WebSocket-соединений в unix domain сокет.
2855
2856 *) Исправление: переменная $upstream_response_length возвращала значение
2857 "0", если не использовалась буферизация.
2858 Спасибо Piotr Sikora.
2859
2860 *) Исправление: в методах обработки соединений eventport и /dev/poll.
2861
2862
2863 Изменения в nginx 1.3.15 26.03.2013
2864
2865 *) Изменение: открытие и закрытие соединения без отправки в нём
2866 каких-либо данных больше не записывается в access_log с кодом ошибки
2867 400.
2868
2869 *) Добавление: модуль ngx_http_spdy_module.
2870 Спасибо Automattic за спонсирование разработки.
2871
2872 *) Добавление: директивы limit_req_status и limit_conn_status.
2873 Спасибо Nick Marden.
2874
2875 *) Добавление: директива image_filter_interlace.
2876 Спасибо Ивану Боброву.
2877
2878 *) Добавление: переменная $connections_waiting в модуле
2879 ngx_http_stub_status_module.
2880
2881 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
2882
2883 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
2884 могло передаваться неправильно; ошибка появилась в 1.3.9.
2885 Спасибо Piotr Sikora.
2886
2887 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2888 1.3.9.
2889
2890 *) Исправление: ответы могли зависать, если использовались подзапросы и
2891 при обработке подзапроса происходила DNS-ошибка.
2892 Спасибо Lanshun Zhou.
2893
2894 *) Исправление: в процедуре учёта использования бэкендов.
2895
2896
2897 Изменения в nginx 1.3.14 05.03.2013
2898
2899 *) Добавление: переменные $connections_active, $connections_reading и
2900 $connections_writing в модуле ngx_http_stub_status_module.
2901
2902 *) Добавление: поддержка WebSocket-соединений в модулях
2903 ngx_http_uwsgi_module и ngx_http_scgi_module.
2904
2905 *) Исправление: в обработке виртуальных серверов при использовании SNI.
2906
2907 *) Исправление: при использовании директивы "ssl_session_cache shared"
2908 новые сессии могли не сохраняться, если заканчивалось место в
2909 разделяемой памяти.
2910 Спасибо Piotr Sikora.
2911
2912 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
2913 неправильно.
2914 Спасибо Neal Poole за спонсирование разработки.
2915
2916 *) Исправление: в модуле ngx_http_mp4_module.
2917 Спасибо Gernot Vormayr.
2918
2919
2920 Изменения в nginx 1.3.13 19.02.2013
2921
2922 *) Изменение: теперь для сборки по умолчанию используется компилятор с
2923 именем "cc".
2924
2925 *) Добавление: поддержка проксирования WebSocket-соединений.
2926 Спасибо Apcera и CloudBees за спонсирование разработки.
2927
2928 *) Добавление: директива auth_basic_user_file поддерживает шифрование
2929 паролей методом "{SHA}".
2930 Спасибо Louis Opter.
2931
2932
2933 Изменения в nginx 1.3.12 05.02.2013
2934
2935 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
2936 scgi_bind и uwsgi_bind поддерживают переменные.
2937
2938 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
2939 $time_local теперь можно использовать не только в директиве
2940 log_format.
2941 Спасибо Kiril Kalchev.
2942
2943 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
2944 Спасибо Gregor Kališnik.
2945
2946 *) Исправление: директива proxy_method работала неверно, если была
2947 указана на уровне http.
2948
2949 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2950 если использовался resolver и метод poll.
2951
2952 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
2953 бэкендом при использовании методов обработки соединений select, poll
2954 и /dev/poll.
2955
2956 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
2957
2958 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2959 1.3.9.
2960
2961 *) Исправление: в директиве fastcgi_keep_conn.
2962
2963
2964 Изменения в nginx 1.3.11 10.01.2013
2965
2966 *) Исправление: при записи в лог мог происходить segmentation fault;
2967 ошибка появилась в 1.3.10.
2968
2969 *) Исправление: директива proxy_pass не работала с IP-адресами без
2970 явного указания порта; ошибка появилась в 1.3.10.
2971
2972 *) Исправление: на старте или во время переконфигурации происходил
2973 segmentation fault, если директива keepalive была указана несколько
2974 раз в одном блоке upstream.
2975
2976 *) Исправление: параметр default директивы geo не определял значение по
2977 умолчанию для IPv6-адресов.
2978
2979
2980 Изменения в nginx 1.3.10 25.12.2012
2981
2982 *) Изменение: для указанных в конфигурационном файле доменных имён
2983 теперь используются не только IPv4, но и IPv6 адреса.
2984
2985 *) Изменение: теперь при использовании директивы include с маской на
2986 Unix-системах включаемые файлы сортируются в алфавитном порядке.
2987
2988 *) Изменение: директива add_header добавляет строки в ответы с кодом
2989 201.
2990
2991 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
2992 CIDR.
2993
2994 *) Добавление: параметры flush и gzip в директиве access_log.
2995
2996 *) Добавление: директива auth_basic поддерживает переменные.
2997
2998 *) Исправление: nginx в некоторых случаях не собирался с модулем
2999 ngx_http_perl_module.
3000
3001 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3002 если использовался модуль ngx_http_xslt_module.
3003
3004 *) Исправление: nginx мог не собираться на MacOSX.
3005 Спасибо Piotr Sikora.
3006
3007 *) Исправление: при использовании директивы limit_rate с большими
3008 значениями скорости на 32-битных системах ответ мог возвращаться не
3009 целиком.
3010 Спасибо Алексею Антропову.
3011
3012 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3013 если использовалась директива if.
3014 Спасибо Piotr Sikora.
3015
3016 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
3017 Request Entity Too Large".
3018
3019 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
3020 image_filter_sharpen могли наследоваться некорректно.
3021 Спасибо Ивану Боброву.
3022
3023 *) Исправление: при использовании директивы auth_basic под Linux могли
3024 возникать ошибки "crypt_r() failed".
3025
3026 *) Исправление: в обработке backup-серверов.
3027 Спасибо Thomas Chen.
3028
3029 *) Исправление: при проксировании HEAD-запросов мог возвращаться
3030 некорректный ответ, если использовалась директива gzip.
3031
3032
3033 Изменения в nginx 1.3.9 27.11.2012
3034
3035 *) Добавление: поддержка chunked transfer encoding при получении тела
3036 запроса.
3037
3038 *) Добавление: переменные $request_time и $msec теперь можно
3039 использовать не только в директиве log_format.
3040
3041 *) Исправление: cache manager и cache loader могли не запускаться, если
3042 использовалось более 512 listen-сокетов.
3043
3044 *) Исправление: в модуле ngx_http_dav_module.
3045
3046
3047 Изменения в nginx 1.3.8 30.10.2012
3048
3049 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
3050 Спасибо Михаилу Казанцеву и Eric O'Connor.
3051
3052 *) Добавление: переменные $bytes_sent, $connection и
3053 $connection_requests теперь можно использовать не только в директиве
3054 log_format.
3055 Спасибо Benjamin Grössing.
3056
3057 *) Добавление: параметр auto директивы worker_processes.
3058
3059 *) Исправление: сообщения "cache file ... has md5 collision".
3060
3061 *) Исправление: в модуле ngx_http_gunzip_filter_module.
3062
3063 *) Исправление: в директиве ssl_stapling.
3064
3065
3066 Изменения в nginx 1.3.7 02.10.2012
3067
3068 *) Добавление: поддержка OCSP stapling.
3069 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
3070
3071 *) Добавление: директива ssl_trusted_certificate.
3072
3073 *) Добавление: теперь resolver случайным образом меняет порядок
3074 возвращаемых закэшированных адресов.
3075 Спасибо Антону Жулину.
3076
3077 *) Исправление: совместимость с OpenSSL 0.9.7.
3078
3079
3080 Изменения в nginx 1.3.6 12.09.2012
3081
3082 *) Добавление: модуль ngx_http_gunzip_filter_module.
3083
3084 *) Добавление: директива memcached_gzip_flag.
3085
3086 *) Добавление: параметр always директивы gzip_static.
3087
3088 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
3089 Спасибо Charles Chen.
3090
3091 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
3092 использовался параметр --with-ipv6.
3093
3094
3095 Изменения в nginx 1.3.5 21.08.2012
3096
3097 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
3098 дорожки в форматах, отличных от H.264 и AAC.
3099
3100 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3101 если в директиве map в качестве значений использовались переменные.
3102
3103 *) Исправление: в рабочем процессе мог произойти segmentation fault при
3104 использовании директивы geo с параметром ranges, но без параметра
3105 default; ошибка появилась в 0.8.43.
3106 Спасибо Zhen Chen и Weibin Yao.
3107
3108 *) Исправление: в обработке параметра командной строки -p.
3109
3110 *) Исправление: в почтовом прокси-сервере.
3111
3112 *) Исправление: незначительных потенциальных ошибок.
3113 Спасибо Coverity.
3114
3115 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
3116 Спасибо HAYASHI Kentaro.
3117
3118
3119 Изменения в nginx 1.3.4 31.07.2012
3120
3121 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
3122 по умолчанию.
3123
3124 *) Добавление: поддержка компилятора Clang.
3125
3126 *) Исправление: могли создаваться лишние слушающие сокеты.
3127 Спасибо Роману Одайскому.
3128
3129 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
3130 рабочего процесса происходила ошибка.
3131 Спасибо Ricardo Villalobos Guevara.
3132
3133 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
3134 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
3135 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
3136 наследоваться некорректно.
3137
3138
3139 Изменения в nginx 1.3.3 10.07.2012
3140
3141 *) Добавление: поддержка entity tags и директива etag.
3142
3143 *) Исправление: при использовании директивы map с параметром hostnames
3144 не игнорировалась конечная точка в исходном значении.
3145
3146 *) Исправление: для обработки запроса мог использоваться неверный
3147 location, если переход в именованный location происходил после
3148 изменения URI с помощью директивы rewrite.
3149
3150
3151 Изменения в nginx 1.3.2 26.06.2012
3152
3153 *) Изменение: параметр single директивы keepalive теперь игнорируется.
3154
3155 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
3156 OpenSSL старее 1.0.0.
3157
3158 *) Добавление: директиву "ip_hash" теперь можно использовать для
3159 балансировки IPv6 клиентов.
3160
3161 *) Добавление: переменную $status теперь можно использовать не только в
3162 директиве log_format.
3163
3164 *) Исправление: при завершении рабочего процесса мог произойти
3165 segmentation fault, если использовалась директива resolver.
3166
3167 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3168 если использовался модуль ngx_http_mp4_module.
3169
3170 *) Исправление: в модуле ngx_http_mp4_module.
3171
3172 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3173 если использовались конфликтующие имена серверов с масками.
3174
3175 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
3176 сигналу SIGBUS.
3177
3178 *) Исправление: во время переконфигурации на HP-UX в лог записывался
3179 alert "sendmsg() failed (9: Bad file number)".
3180
3181
3182 Изменения в nginx 1.3.1 05.06.2012
3183
3184 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
3185 компонента URI и не разрешает URI, содержащие последовательность
3186 ":$".
3187 Спасибо Владимиру Кочеткову, Positive Research Center.
3188
3189 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
3190 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
3191
3192 *) Добавление: в директиве resolver теперь можно указывать порт и
3193 задавать IPv6-адреса DNS-серверов.
3194
3195 *) Добавление: директива least_conn в блоке upstream.
3196
3197 *) Добавление: при использовании директивы ip_hash теперь можно задавать
3198 веса серверов.
3199
3200 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3201 если использовалась директива image_filter; ошибка появилась в 1.3.0.
3202
3203 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
3204 появилась в 1.1.12.
3205
3206 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
3207 работать после переконфигурации.
3208 Спасибо Yichun Zhang.
3209
3210 *) Исправление: в модуле ngx_http_xslt_filter_module.
3211 Спасибо Kuramoto Eiji.
3212
3213 *) Исправление: утечки памяти при использовании переменной $geoip_org.
3214 Спасибо Денису Латыпову.
3215
3216 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
3217
3218
3219 Изменения в nginx 1.3.0 15.05.2012
3220
3221 *) Добавление: директива debug_connection теперь поддерживает
3222 IPv6-адреса и параметр "unix:".
3223
3224 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
3225 теперь поддерживают IPv6-адреса.
3226
3227 *) Добавление: директивы real_ip_recursive, geoip_proxy и
3228 geoip_proxy_recursive.
3229
3230 *) Добавление: параметр proxy_recursive директивы geo.
3231
3232 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3233 если использовалась директива resolver.
3234
3235 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3236 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
3237 и бэкенд возвращал некорректный ответ.
3238
3239 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3240 если использовалась директива rewrite и в новых аргументах запроса в
3241 строке замены использовались переменные.
3242
3243 *) Исправление: nginx мог нагружать процессор, если было достигнуто
3244 ограничение на количество открытых файлов.
3245
3246 *) Исправление: при использовании директивы proxy_next_upstream с
3247 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
3248 блоке upstream был хотя бы один сервер с флагом backup.
3249
3250 *) Исправление: при использовании директивы ip_hash установка параметра
3251 down директивы server могла приводить к ненужному перераспределению
3252 клиентов между бэкендами.
3253
3254 *) Исправление: утечки сокетов.
3255 Спасибо Yichun Zhang.
3256
3257 *) Исправление: в модуле ngx_http_fastcgi_module.
3258
3259
3260 Изменения в nginx 1.2.0 23.04.2012
3261
3262 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3263 если использовалась директива try_files; ошибка появилась в 1.1.19.
3264
3265 *) Исправление: ответ мог быть передан не полностью, если использовалось
3266 больше IOV_MAX буферов.
3267
3268 *) Исправление: в работе параметра crop директивы image_filter.
3269 Спасибо Maxim Bublis.
3270
3271
3272 Изменения в nginx 1.1.19 12.04.2012
3273
3274 *) Безопасность: при обработке специально созданного mp4 файла модулем
3275 ngx_http_mp4_module могли перезаписываться области памяти рабочего
3276 процесса, что могло приводить к выполнению произвольного кода
3277 (CVE-2012-2089).
3278 Спасибо Matthew Daley.
3279
3280 *) Исправление: nginx/Windows мог завершаться аварийно.
3281 Спасибо Vincent Lee.
3282
3283 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3284 были помечены флагом backup.
3285
3286 *) Исправление: директивы allow и deny могли наследоваться некорректно,
3287 если в них использовались IPv6 адреса.
3288
3289 *) Исправление: директивы modern_browser и ancient_browser могли
3290 наследоваться некорректно.
3291
3292 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
3293
3294 *) Исправление: в модуле ngx_http_mp4_module.
3295
3296
3297 Изменения в nginx 1.1.18 28.03.2012
3298
3299 *) Изменение: теперь keepalive соединения не запрещены для Safari по
3300 умолчанию.
3301
3302 *) Добавление: переменная $connection_requests.
3303
3304 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
3305 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
3306
3307 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
3308
3309 *) Добавление: директивы xslt_param и xslt_string_param.
3310 Спасибо Samuel Behan.
3311
3312 *) Исправление: в configure.
3313 Спасибо Piotr Sikora.
3314
3315 *) Исправление: в модуле ngx_http_xslt_filter_module.
3316
3317 *) Исправление: nginx не собирался на Debian GNU/Hurd.
3318
3319
3320 Изменения в nginx 1.1.17 15.03.2012
3321
3322 *) Безопасность: содержимое ранее освобождённой памяти могло быть
3323 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
3324 Спасибо Matthew Daley.
3325
3326 *) Исправление: при использовании встроенного перла из SSI.
3327 Спасибо Matthew Daley.
3328
3329 *) Исправление: в модуле ngx_http_uwsgi_module.
3330
3331
3332 Изменения в nginx 1.1.16 29.02.2012
3333
3334 *) Изменение: ограничение на количество одновременных подзапросов
3335 поднято до 200.
3336
3337 *) Добавление: параметр from в директиве disable_symlinks.
3338
3339 *) Добавление: директивы return и error_page теперь могут использоваться
3340 для возврата перенаправлений с кодом 307.
3341
3342 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3343 если использовалась директива resolver и на глобальном уровне не была
3344 задана директива error_log.
3345 Спасибо Роману Арутюняну.
3346
3347 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3348 если использовались директивы "proxy_http_version 1.1" или
3349 "fastcgi_keep_conn on".
3350
3351 *) Исправление: утечек памяти.
3352 Спасибо Lanshun Zhou.
3353
3354 *) Исправление: в директиве disable_symlinks.
3355
3356 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
3357 некорректно; ошибка появилась в 1.0.1.
3358
3359 *) Исправление: nginx не собирался компилятором icc 12.1.
3360
3361 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
3362 1.1.15.
3363
3364
3365 Изменения в nginx 1.1.15 15.02.2012
3366
3367 *) Добавление: директива disable_symlinks.
3368
3369 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
3370
3371 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
3372 prematurely closed connection" вместо "upstream sent too big header".
3373 Спасибо Feibo Li.
3374
3375 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
3376 использовался параметр --with-openssl.
3377
3378 *) Исправление: количество внутренних перенаправлений в именованные
3379 location'ы не ограничивалось.
3380
3381 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
3382 ошибкам в модуле ngx_http_gzip_filter_module.
3383
3384 *) Исправление: при использовании директивы proxy_store с
3385 SSI-подзапросами временные файлы могли не удаляться.
3386
3387 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
3388 $args) возвращали старое пустое закэшированное значение.
3389
3390 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3391 если одновременно создавалось слишком много SSI-подзапросов; ошибка
3392 появилась в 0.7.25.
3393
3394
3395 Изменения в nginx 1.1.14 30.01.2012
3396
3397 *) Добавление: теперь можно указать несколько ограничений limit_req
3398 одновременно.
3399
3400 *) Исправление: в обработке ошибок при соединении с бэкендом.
3401 Спасибо Piotr Sikora.
3402
3403 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
3404
3405 *) Исправление: в инициализации библиотеки OpenSSL.
3406
3407 *) Исправление: директивы proxy_redirect могли наследоваться
3408 некорректно.
3409
3410 *) Исправление: утечки памяти при переконфигурации, если использовалась
3411 директива pcre_jit.
3412
3413
3414 Изменения в nginx 1.1.13 16.01.2012
3415
3416 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
3417
3418 *) Исправление: параметры директивы limit_req наследовались некорректно;
3419 ошибка появилась в 1.1.12.
3420
3421 *) Исправление: директива proxy_redirect некорректно обрабатывала
3422 заголовок Refresh при использовании регулярных выражений.
3423
3424 *) Исправление: директива proxy_cache_use_stale с параметром error не
3425 возвращала ответ из кэша, если все бэкенды были признаны
3426 неработающими.
3427
3428 *) Исправление: директива worker_cpu_affinity могла не работать.
3429
3430 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
3431 1.1.12.
3432
3433 *) Исправление: в модуле ngx_http_mp4_module.
3434
3435
3436 Изменения в nginx 1.1.12 26.12.2011
3437
3438 *) Изменение: после перенаправления запроса с помощью директивы
3439 error_page директива proxy_pass без URI теперь использует изменённый
3440 URI.
3441 Спасибо Lanshun Zhou.
3442
3443 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
3444 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
3445
3446 *) Добавление: директива pcre_jit.
3447
3448 *) Добавление: SSI команда if поддерживает выделения в регулярных
3449 выражениях.
3450
3451 *) Исправление: SSI команда if не работала внутри команды block.
3452
3453 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
3454 могли не работать.
3455
3456 *) Исправление: директива limit_rate не позволяла передавать на полной
3457 скорости, даже если был указан очень большой лимит.
3458
3459 *) Исправление: директива sendfile_max_chunk не работала, если
3460 использовалась директива limit_rate.
3461
3462 *) Исправление: если в директиве proxy_pass использовались переменные и
3463 не был указан URI, всегда использовался URI исходного запроса.
3464
3465 *) Исправление: после перенаправления запроса с помощью директивы
3466 try_files директива proxy_pass без URI могла использовать URI
3467 исходного запроса.
3468 Спасибо Lanshun Zhou.
3469
3470 *) Исправление: в модуле ngx_http_scgi_module.
3471
3472 *) Исправление: в модуле ngx_http_mp4_module.
3473
3474 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
3475
3476
3477 Изменения в nginx 1.1.11 12.12.2011
3478
3479 *) Добавление: параметр so_keepalive в директиве listen.
3480 Спасибо Всеволоду Стахову.
3481
3482 *) Добавление: параметр if_not_empty в директивах
3483 fastcgi/scgi/uwsgi_param.
3484
3485 *) Добавление: переменная $https.
3486
3487 *) Добавление: директива proxy_redirect поддерживает переменные в первом
3488 параметре.
3489
3490 *) Добавление: директива proxy_redirect поддерживает регулярные
3491 выражения.
3492
3493 *) Исправление: переменная $sent_http_cache_control могла содержать
3494 неверное значение при использовании директивы expires.
3495 Спасибо Yichun Zhang.
3496
3497 *) Исправление: директива read_ahead могла не работать при использовании
3498 совместно с try_files и open_file_cache.
3499
3500 *) Исправление: если в параметре inactive директивы proxy_cache_path
3501 было указано малое время, в рабочем процессе мог произойти
3502 segmentation fault.
3503
3504 *) Исправление: ответы из кэша могли зависать.
3505
3506
3507 Изменения в nginx 1.1.10 30.11.2011
3508
3509 *) Исправление: при использовании AIO на Linux в рабочем процессе
3510 происходил segmentation fault; ошибка появилась в 1.1.9.
3511
3512
3513 Изменения в nginx 1.1.9 28.11.2011
3514
3515 *) Изменение: теперь двойные кавычки экранируется при выводе
3516 SSI-командой echo.
3517 Спасибо Зауру Абасмирзоеву.
3518
3519 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
3520 используется TTL, возвращённый DNS-сервером.
3521 Спасибо Кириллу Коринскому.
3522
3523 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
3524 завершался аварийно.
3525
3526 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3527 если использовалось SNI; ошибка появилась в 1.1.2.
3528
3529 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
3530 Спасибо Александру Усову.
3531
3532 *) Исправление: сигнал SIGWINCH переставал работать после первого
3533 обновления исполняемого файла; ошибка появилась в 1.1.1.
3534
3535 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
3536 заголовку Content-Length, не кэширутся.
3537
3538 *) Исправление: в директиве scgi_param при использовании составных
3539 параметров.
3540
3541 *) Исправление: в методе epoll.
3542 Спасибо Yichun Zhang.
3543
3544 *) Исправление: в модуле ngx_http_flv_module.
3545 Спасибо Piotr Sikora.
3546
3547 *) Исправление: в модуле ngx_http_mp4_module.
3548
3549 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
3550 заголовке Host.
3551
3552 *) Исправление: директивы add_header и expires не работали для ответов с
3553 кодом 206, если запрос проксировался.
3554
3555 *) Исправление: nginx не собирался на FreeBSD 10.
3556
3557 *) Исправление: nginx не собирался на AIX.
3558
3559
3560 Изменения в nginx 1.1.8 14.11.2011
3561
3562 *) Изменение: модуль ngx_http_limit_zone_module переименован в
3563 ngx_http_limit_conn_module.
3564
3565 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
3566 новым синтаксисом.
3567
3568 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
3569 уровне.
3570
3571 *) Добавление: директива image_filter_sharpen.
3572
3573 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3574 если resolver получил большой DNS-ответ.
3575 Спасибо Ben Hawkes.
3576
3577 *) Исправление: в вычислении ключа для кэширования, если использовалась
3578 внутренняя реализация MD5; ошибка появилась в 1.0.4.
3579
3580 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3581 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
3582 или не передаваться при выключенном кэшировании, если кэширование
3583 было включено в другой части конфигурации.
3584
3585 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
3586 "Content-Length" в заголовке ответа, использовался аргумент start.
3587 Спасибо Piotr Sikora.
3588
3589
3590 Изменения в nginx 1.1.7 31.10.2011
3591
3592 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
3593 Спасибо Кириллу Коринскому.
3594
3595 *) Исправление: на старте или во время переконфигурации происходил
3596 segmentation fault, если директива ssl использовалась на уровне http
3597 и не был указан ssl_certificate.
3598
3599 *) Исправление: уменьшено потребление памяти при проксировании больших
3600 файлов, если они буферизировались на диск.
3601
3602 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3603 если использовалась директива "proxy_http_version 1.1".
3604
3605 *) Исправление: в директиве "expires @time".
3606
3607
3608 Изменения в nginx 1.1.6 17.10.2011
3609
3610 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
3611 именованный location контексты модулей очищаются.
3612 По запросу Yichun Zhang.
3613
3614 *) Изменение: теперь если сервер, описанный в блоке upstream, был
3615 признан неработающим, то после истечения fail_timeout на него будет
3616 отправлен только один запрос; сервер будет считаться работающим, если
3617 успешно ответит на этот запрос.
3618
3619 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
3620 \xXX.
3621
3622 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
3623 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
3624 X-Accel-Charset.
3625
3626 *) Добавление: уменьшение потребления памяти при использовании SSL.
3627
3628 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
3629 Спасибо Алексею Куцу.
3630
3631 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
3632 уровне server, применялись повторно, если для запроса не находилось
3633 ни одного location'а.
3634
3635 *) Исправление: при использовании "aio sendfile" могла происходить
3636 утечка сокетов.
3637
3638 *) Исправление: при использовании файлового AIO соединения с быстрыми
3639 клиентами могли быть закрыты по истечению send_timeout.
3640
3641 *) Исправление: в модуле ngx_http_autoindex_module.
3642
3643 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
3644 32-битных платформах.
3645
3646
3647 Изменения в nginx 1.1.5 05.10.2011
3648
3649 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
3650 Спасибо Peter Smit.
3651
3652 *) Исправление: при использовании proxy_cache_bypass могли быть
3653 закэшированы некэшируемые ответы.
3654 Спасибо John Ferlito.
3655
3656 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
3657 HTTP/1.1.
3658
3659 *) Исправление: закэшированные ответы с пустым телом возвращались
3660 некорректно; ошибка появилась в 0.8.31.
3661
3662 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
3663 некорректны; ошибка появилась в 0.8.32.
3664
3665 *) Исправление: в директиве return.
3666
3667 *) Исправление: при использовании директивы "ssl_session_cache builtin"
3668 происходил segmentation fault; ошибка появилась в 1.1.1.
3669
3670
3671 Изменения в nginx 1.1.4 20.09.2011
3672
3673 *) Добавление: модуль ngx_http_upstream_keepalive.
3674
3675 *) Добавление: директива proxy_http_version.
3676
3677 *) Добавление: директива fastcgi_keep_conn.
3678
3679 *) Добавление: директива worker_aio_requests.
3680
3681 *) Исправление: если nginx был собран с файловым AIO, он не мог
3682 запускаться на Linux без поддержки AIO.
3683
3684 *) Исправление: в обработке ошибок при работе с Linux AIO.
3685 Спасибо Hagai Avrahami.
3686
3687 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
3688
3689 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
3690 MP4-атом co64.
3691
3692
3693 Изменения в nginx 1.1.3 14.09.2011
3694
3695 *) Добавление: модуль ngx_http_mp4_module.
3696
3697 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
3698
3699 *) Исправление: open_file_cache не обновлял информацию о файле, если
3700 файл был изменён не атомарно.
3701
3702 *) Исправление: nginx не собирался на MacOSX 10.7.
3703
3704
3705 Изменения в nginx 1.1.2 05.09.2011
3706
3707 *) Изменение: теперь, если суммарный размер всех диапазонов больше
3708 размера исходного ответа, то nginx возвращает только исходный ответ,
3709 не обрабатывая диапазоны.
3710
3711 *) Добавление: директива max_ranges.
3712
3713 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
3714 ssl_prefer_server_cipher могли работать некорректно, если
3715 использовался SNI.
3716
3717 *) Исправление: в директивах proxy/fastcgi/scgi/
3718 uwsgi_ignore_client_abort.
3719
3720
3721 Изменения в nginx 1.1.1 22.08.2011
3722
3723 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
3724 число файлов, указанное в параметре load_files, либо работает не
3725 дольше времени, указанного в параметре loader_threshold.
3726
3727 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
3728
3729 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3730 на Solaris.
3731 Спасибо Денису Иванову.
3732
3733 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
3734
3735 *) Исправление: nginx не собирался на Linux 3.0.
3736
3737 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
3738 появилась в 1.1.0.
3739
3740 *) Исправление: обработка тела запроса могла быть неверной, если клиент
3741 использовал pipelining.
3742
3743 *) Исправление: в директиве request_body_in_single_buf.
3744
3745 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
3746 при использовании SSL-соединения с бэкендом.
3747
3748 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3749 были помечены флагом down.
3750
3751 *) Исправление: при переконфигурации мог произойти segmentation fault,
3752 если в предыдущей конфигурации был определён, но не использовался
3753 ssl_session_cache.
3754
3755 *) Исправление: при использовании большого количества backup-серверов в
3756 рабочем процессе мог произойти segmentation fault.
3757
3758 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
3759 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
3760 произойти segmentation fault; ошибка появилась в 0.8.40.
3761
3762
3763 Изменения в nginx 1.1.0 01.08.2011
3764
3765 *) Добавление: уменьшение времени работы загрузчика кэша.
3766
3767 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
3768 директив proxy/fastcgi/scgi/uwsgi_cache_path.
3769
3770 *) Добавление: уменьшение времени загрузки конфигураций с большим
3771 количеством HTTPS серверов.
3772
3773 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
3774 Спасибо Adrian Kotelba.
3775
3776 *) Добавление: директива lingering_close.
3777 Спасибо Максиму Дунину.
3778
3779 *) Исправление: закрытия соединения для pipelined-запросов.
3780 Спасибо Максиму Дунину.
3781
3782 *) Исправление: nginx не запрещал сжатие при получении значения
3783 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
3784
3785 *) Исправление: таймаута при небуферизированном проксировании.
3786 Спасибо Максиму Дунину.
3787
3788 *) Исправление: утечки памяти при использовании переменных в директиве
3789 proxy_pass при работе с бэкендом по HTTPS.
3790 Спасибо Максиму Дунину.
3791
3792 *) Исправление: в проверке параметра директивы proxy_pass, заданного
3793 переменными.
3794 Спасибо Lanshun Zhou.
3795
3796 *) Исправление: SSL не работал на QNX.
3797 Спасибо Максиму Дунину.
3798
3799 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
3800 --with-debug.
3801
3802
3803 Изменения в nginx 1.0.5 19.07.2011
3804
3805 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3806 "HIGH:!aNULL:!MD5".
3807 Спасибо Rob Stradling.
3808
3809 *) Добавление: директивы referer_hash_max_size и
3810 referer_hash_bucket_size.
3811 Спасибо Witold Filipczyk.
3812
3813 *) Добавление: переменная $uid_reset.
3814
3815 *) Исправление: при использовании кэширования в рабочем процессе мог
3816 произойти segmentation fault.
3817 Спасибо Lanshun Zhou.
3818
3819 *) Исправление: при использовании кэширования рабочие процессы могли
3820 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3821 Спасибо Максиму Дунину.
3822
3823 *) Исправление: сообщения "stalled cache updating".
3824 Спасибо Максиму Дунину.
3825
3826
3827 Изменения в nginx 1.0.4 01.06.2011
3828
3829 *) Изменение: теперь в регулярных выражениях в директиве map можно
3830 задать чувствительность к регистру с помощью префиксов "~" и "~*".
3831
3832 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3833 на Linux.
3834 Спасибо Денису Латыпову.
3835
3836 *) Исправление: сообщения "stalled cache updating".
3837
3838 *) Исправление: nginx не собирался с параметром
3839 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
3840
3841
3842 Изменения в nginx 1.0.3 25.05.2011
3843
3844 *) Добавление: директива auth_basic_user_file поддерживает шифрование
3845 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
3846 Спасибо Максиму Дунину.
3847
3848 *) Добавление: директива geoip_org и переменная $geoip_org.
3849 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
3850
3851 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
3852 поддерживают адреса IPv4, отображённые на IPv6 адреса.
3853
3854 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
3855 рабочем процессе происходил segmentation fault, если директивы access
3856 или deny были определены только для адресов IPv6; ошибка появилась в
3857 0.8.22.
3858
3859 *) Исправление: закэшированный ответ мог быть испорчен, если значения
3860 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
3861 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
3862
3863
3864 Изменения в nginx 1.0.2 10.05.2011
3865
3866 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
3867
3868 *) Исправление: в работе параметра rotate директивы image_filter.
3869 Спасибо Adam Bocim.
3870
3871 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
3872
3873
3874 Изменения в nginx 1.0.1 03.05.2011
3875
3876 *) Изменение: теперь директива split_clients использует алгоритм
3877 MurmurHash2 из-за лучшего распределения.
3878 Спасибо Олегу Мамонтову.
3879
3880 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
3881 ложными значениями.
3882 Спасибо Максиму Дунину.
3883
3884 *) Изменение: теперь по умолчанию nginx использует значение 511 для
3885 listen backlog на Linux.
3886
3887 *) Добавление: переменные $upstream_... можно использовать в SSI и
3888 перловом модулях.
3889
3890 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
3891 Спасибо Олегу Мамонтову.
3892
3893 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
3894 segmentation fault; ошибка появилась в 0.8.22.
3895 Спасибо Максиму Дунину.
3896
3897 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
3898
3899 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
3900 появилась в 0.9.3.
3901 Спасибо Dagobert Michelsen.
3902
3903 *) Исправление: переменная $request_time имела неверные значения, если
3904 использовались подзапросы; ошибка появилась в 0.8.47.
3905 Спасибо Игорю А. Валькову.
3906
3907
3908 Изменения в nginx 1.0.0 12.04.2011
3909
3910 *) Исправление: cache manager мог нагружать процессор после
3911 переконфигурации.
3912 Спасибо Максиму Дунину.
3913
3914 *) Исправление: директива "image_filter crop" неправильно работала в
3915 сочетании с "image_filter rotate 180".
3916
3917 *) Исправление: директива "satisfy any" запрещала выдачу
3918 пользовательской страницы для 401 кода.
3919
3920
3921 Изменения в nginx 0.9.7 04.04.2011
3922
3923 *) Добавление: теперь соединения в состоянии keepalive могут быть
3924 закрыты преждевременно, если у воркера нет свободных соединений.
3925 Спасибо Максиму Дунину.
3926
3927 *) Добавление: параметр rotate директивы image_filter.
3928 Спасибо Adam Bocim.
3929
3930 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
3931 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
3932 upstream.
3933
3934
3935 Изменения в nginx 0.9.6 21.03.2011
3936
3937 *) Добавление: директива map поддерживает регулярные выражения в
3938 качестве значения первого параметра.
3939
3940 *) Добавление: переменная $time_iso8601 для access_log.
3941 Спасибо Michael Lustfield.
3942
3943
3944 Изменения в nginx 0.9.5 21.02.2011
3945
3946 *) Изменение: теперь по умолчанию nginx использует значение -1 для
3947 listen backlog на Linux.
3948 Спасибо Андрею Нигматулину.
3949
3950 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
3951 Спасибо Денису Латыпову.
3952
3953 *) Исправление: исправление в умолчательной директиве proxy_redirect,
3954 если в директиве proxy_pass не был описан URI.
3955 Спасибо Максиму Дунину.
3956
3957 *) Исправление: директива error_page не работала с нестандартными кодами
3958 ошибок; ошибка появилась в 0.8.53.
3959 Спасибо Максиму Дунину.
3960
3961
3962 Изменения в nginx 0.9.4 21.01.2011
3963
3964 *) Добавление: директива server_name поддерживает переменную $hostname.
3965
3966 *) Добавление: 494 код для ошибки "Request Header Too Large".
3967
3968
3969 Изменения в nginx 0.9.3 13.12.2010
3970
3971 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
3972 то выделения в регулярных выражениях в директиве server_name не
3973 работали.
3974
3975 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
3976 0.9.0.
3977
3978
3979 Изменения в nginx 0.9.2 06.12.2010
3980
3981 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
3982 запроса клиента.
3983
3984 *) Изменение: использование accept(), если accept4() не реализован;
3985 ошибка появилась в 0.9.0.
3986
3987 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
3988
3989 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
3990 Спасибо Максиму Дунину.
3991
3992
3993 Изменения в nginx 0.9.1 30.11.2010
3994
3995 *) Исправление: директивы вида "return CODE message" не работали; ошибка
3996 появилась в 0.9.0.
3997
3998
3999 Изменения в nginx 0.9.0 29.11.2010
4000
4001 *) Добавление: директива keepalive_disable.
4002
4003 *) Добавление: директива map поддерживает переменные в качестве значения
4004 определяемой переменной.
4005
4006 *) Добавление: директива map поддерживает пустые строки в качестве
4007 значения первого параметра.
4008
4009 *) Добавление: директива map поддерживает выражения в первом параметре.
4010
4011 *) Добавление: страница руководства nginx(8).
4012 Спасибо Сергею Осокину.
4013
4014 *) Добавление: поддержка accept4() в Linux.
4015 Спасибо Simon Liu.
4016
4017 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
4018 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
4019
4020 *) Исправление: при использовании директивы auth_basic в рабочем
4021 процессе мог произойти segmentation fault.
4022 Спасибо Михаилу Лалетину.
4023
4024 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
4025 появилась в 0.8.42.
4026
4027
4028 Изменения в nginx 0.8.53 18.10.2010
4029
4030 *) Добавление: теперь директива error_page позволяет менять код статуса
4031 у редиректа.
4032
4033 *) Добавление: директива gzip_disable поддерживает специальную маску
4034 degradation.
4035
4036 *) Исправление: при использовании файлового AIO могла происходить утечка
4037 сокетов.
4038 Спасибо Максиму Дунину.
4039
4040 *) Исправление: если в первом сервере не была описана директива listen и
4041 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
4042 становился следующий сервер с директивой listen; ошибка появилась в
4043 0.8.21.
4044
4045
4046 Изменения в nginx 0.8.52 28.09.2010
4047
4048 *) Исправление: nginx использовал режим SSL для listen сокета, если для
4049 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
4050
4051
4052 Изменения в nginx 0.8.51 27.09.2010
4053
4054 *) Изменение: директива secure_link_expires упразднена.
4055
4056 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
4057 alert на error.
4058
4059 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
4060 несколько раз.
4061
4062
4063 Изменения в nginx 0.8.50 02.09.2010
4064
4065 *) Добавление: директивы secure_link, secure_link_md5 и
4066 secure_link_expires модуля ngx_http_secure_link_module.
4067
4068 *) Добавление: ключ -q.
4069 Спасибо Геннадию Махомеду.
4070
4071 *) Исправление: при использовании кэширования рабочие процессы и могли
4072 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
4073
4074 *) Исправление: в директиве gzip_disable.
4075 Спасибо Derrick Petzold.
4076
4077 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
4078 reopen, reload процессу, запущенному в другой сессии.
4079
4080
4081 Изменения в nginx 0.8.49 09.08.2010
4082
4083 *) Добавление: директива image_filter_jpeg_quality поддерживает
4084 переменные.
4085
4086 *) Исправление: при использовании переменной $geoip_region_name в
4087 рабочем процессе мог произойти segmentation fault; ошибка появилась в
4088 0.8.48.
4089
4090 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
4091 следующего запроса; ошибка появилась в 0.8.48.
4092
4093
4094 Изменения в nginx 0.8.48 03.08.2010
4095
4096 *) Изменение: теперь по умолчанию директива server_name имеет значение
4097 пустое имя "".
4098 Спасибо Геннадию Махомеду.
4099
4100 *) Изменение: теперь по умолчанию директива server_name_in_redirect
4101 имеет значение off.
4102
4103 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
4104 $geoip_region_name.
4105 Спасибо Christine McGonagle.
4106
4107 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
4108 scgi_pass не наследовались в блоки limit_except.
4109
4110 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
4111 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
4112 появилась в 0.8.46.
4113
4114 *) Исправление: директива fastcgi_split_path_info неверно использовала
4115 выделения, если в выделения попадала только часть URI.
4116 Спасибо Юрию Тарадаю и Frank Enderle.
4117
4118 *) Исправление: директива rewrite не экранировала символ ";" при
4119 копировании из URI в аргументы.
4120 Спасибо Daisuke Murase.
4121
4122 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
4123 если изображение было больше размера image_filter_buffer.
4124
4125
4126 Изменения в nginx 0.8.47 28.07.2010
4127
4128 *) Исправление: переменная $request_time имела неверные значения для
4129 подзапросов.
4130
4131 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
4132
4133 *) Исправление: если использовался параметр max_size, то cache manager
4134 мог зациклиться; ошибка появилась в 0.8.46.
4135
4136
4137 Изменения в nginx 0.8.46 19.07.2010
4138
4139 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
4140 и scgi_no_cache теперь влияют только на сохранение закэшированного
4141 ответа.
4142
4143 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
4144 uwsgi_cache_bypass и scgi_cache_bypass.
4145
4146 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
4147 ошибки работы с бэкендом: память освобождалась только по истечении
4148 времени неактивности или при недостатке памяти.
4149
4150
4151 Изменения в nginx 0.8.45 13.07.2010
4152
4153 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
4154 Спасибо Laurence Rowe.
4155
4156 *) Исправление: ответ SSI модуля мог передаваться не полностью после
4157 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
4158 Спасибо Максиму Дунину.
4159
4160 *) Исправление: директива listen не поддерживала параметр setfib=0.
4161
4162
4163 Изменения в nginx 0.8.44 05.07.2010
4164
4165 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
4166 заголовке которых есть строка "Set-Cookie".
4167
4168 *) Добавление: директива listen поддерживает параметр setfib.
4169 Спасибо Андрею Филонову.
4170
4171 *) Исправление: директива sub_filter могла изменять регистр букв при
4172 частичном совпадении.
4173
4174 *) Исправление: совместимость с HP/UX.
4175
4176 *) Исправление: совместимость с компилятором AIX xlC_r.
4177
4178 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
4179 запросы.
4180 Спасибо Miroslaw Jaworski.
4181
4182
4183 Изменения в nginx 0.8.43 30.06.2010
4184
4185 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
4186
4187 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
4188 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
4189 0.8.42.
4190
4191 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
4192 переконфигурации.
4193 Спасибо Максиму Дунину.
4194
4195 *) Исправление: переменную $uid_set можно использовать на любой стадии
4196 обработки запроса.
4197
4198
4199 Изменения в nginx 0.8.42 21.06.2010
4200
4201 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
4202 выражениями, если запрос полностью совпал с location'ом, заданным
4203 строкой префикса. Предыдущее поведение появилось в 0.7.1.
4204
4205 *) Добавление: модуль ngx_http_scgi_module.
4206 Спасибо Manlio Perillo.
4207
4208 *) Добавление: в директиве return можно добавлять текст ответа.
4209
4210
4211 Изменения в nginx 0.8.41 15.06.2010
4212
4213 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
4214 при запросе файла с неверной кодировкой UTF-8.
4215
4216 *) Изменение: теперь nginx разрешает использовать пробелы в строке
4217 запроса.
4218
4219 *) Исправление: директива proxy_redirect неправильно изменяла строку
4220 "Refresh" в заголовке ответа бэкенда.
4221 Спасибо Андрею Андрееву и Максиму Согину.
4222
4223 *) Исправление: nginx не поддерживал путь без имени хоста в строке
4224 "Destination" в заголовке запроса.
4225
4226
4227 Изменения в nginx 0.8.40 07.06.2010
4228
4229 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
4230 умолчанию.
4231 Спасибо Jose Antonio Vazquez Gonzalez.
4232
4233 *) Добавление: модуль ngx_http_uwsgi_module.
4234 Спасибо Roberto De Ioris.
4235
4236 *) Добавление: директива fastcgi_param со значением, начинающимся со
4237 строки "HTTP_", изменяет строку заголовка в запросе клиента.
4238
4239 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4240 заголовке запроса клиента передавались FastCGI-серверу при
4241 кэшировании.
4242
4243 *) Исправление: listen unix domain сокет нельзя было изменить во время
4244 переконфигурации.
4245 Спасибо Максиму Дунину.
4246
4247
4248 Изменения в nginx 0.8.39 31.05.2010
4249
4250 *) Исправление: наследуемая директива alias неправильно работала во
4251 вложенном location'е.
4252
4253 *) Исправление: в комбинации директив alias с переменными и try_files;
4254
4255 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
4256 время обновления без перерыва.
4257 Спасибо Максиму Дунину.
4258
4259
4260 Изменения в nginx 0.8.38 24.05.2010
4261
4262 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
4263
4264 *) Добавление: теперь при использовании переменной $scheme в директиве
4265 rewrite автоматически делается редирект.
4266 Спасибо Piotr Sikora.
4267
4268 *) Исправление: теперь задержки в директиве limit_req соответствует
4269 описанному алгоритму.
4270 Спасибо Максиму Дунину.
4271
4272 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
4273 перловом модулях.
4274
4275
4276 Изменения в nginx 0.8.37 17.05.2010
4277
4278 *) Добавление: модуль ngx_http_split_clients_module.
4279
4280 *) Добавление: директива map поддерживает ключи больше 255 символов.
4281
4282 *) Исправление: nginx игнорировал значения "private" и "no-store" в
4283 строке "Cache-Control" в заголовке ответа бэкенда.
4284
4285 *) Исправление: параметр stub в SSI-директиве include не использовался,
4286 если пустой ответ имел код 200.
4287
4288 *) Исправление: если проксированный или FastCGI запрос внутренне
4289 перенаправлялся в другой проксированный или FastCGI location, то в
4290 рабочем процессе мог произойти segmentation fault; ошибка появилась в
4291 0.8.33.
4292 Спасибо Yichun Zhang.
4293
4294 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
4295 таймаута.
4296 Спасибо Alan Batie.
4297
4298
4299 Изменения в nginx 0.8.36 22.04.2010
4300
4301 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
4302 методы DELETE, COPY и MOVE для симлинков.
4303
4304 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
4305 основном запросе значения переменных $query_string, $arg_... и им
4306 подобных.
4307
4308 *) Исправление: значение переменной повторно экранировалось после
4309 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
4310
4311 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
4312 Спасибо Vicente Aguilar и Максиму Дунину.
4313
4314 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
4315 Спасибо Максиму Дунину.
4316
4317 *) Исправление: nginx не собирался с параметром --without-http-cache;
4318 ошибка появилась в 0.8.35.
4319
4320
4321 Изменения в nginx 0.8.35 01.04.2010
4322
4323 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
4324
4325 *) Добавление: директива chunked_transfer_encoding.
4326
4327 *) Исправление: символ "&" при копировании в аргументы в правилах
4328 rewrite не экранировался.
4329
4330 *) Исправление: nginx мог завершаться аварийно во время обработки
4331 сигнала или при использовании директивы timer_resolution на
4332 платформах, не поддерживающих методы kqueue или eventport.
4333 Спасибо George Xie и Максиму Дунину.
4334
4335 *) Исправление: если временные файлы и постоянное место хранения
4336 располагались на разных файловых системах, то у постоянных файлов
4337 время изменения было неверным.
4338 Спасибо Максиму Дунину.
4339
4340 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
4341 "memcached sent invalid trailer".
4342 Спасибо Максиму Дунину.
4343
4344 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
4345 текстов.
4346 Спасибо Максиму Дунину.
4347
4348 *) Исправление: в рабочем процессе происходил segmentation fault, если
4349 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
4350 появилась в 0.8.34.
4351 Спасибо Максиму Дунину.
4352
4353
4354 Изменения в nginx 0.8.34 03.03.2010
4355
4356 *) Исправление: nginx не поддерживал все шифры, используемые в
4357 клиентских сертификатах.
4358 Спасибо Иннокентию Еникееву.
4359
4360 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
4361 ответом было много вывода в stderr.
4362
4363 *) Исправление: nginx не поддерживал HTTPS-рефереры.
4364
4365 *) Исправление: nginx/Windows мог не находить файлы, если путь в
4366 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
4367
4368 *) Исправление: переменная $date_local выдавала неверное время, если
4369 использовался формат "%s".
4370 Спасибо Максиму Дунину.
4371
4372 *) Исправление: если ssl_session_cache не был установлен или установлен
4373 в none, то при проверке клиентского сертификаты могла происходить
4374 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
4375
4376 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
4377 диапазон включал в себя одну и более сетей размером /16 и не
4378 начинался на границе сети размером /16.
4379
4380 *) Исправление: блок, используемый в параметре stub в SSI-директиве
4381 include, выводился с MIME-типом "text/plain".
4382
4383 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
4384
4385
4386 Изменения в nginx 0.8.33 01.02.2010
4387
4388 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
4389 Спасибо Dan Crowley, Core Security Technologies.
4390
4391 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
4392 Спасибо Dan Crowley, Core Security Technologies.
4393
4394 *) Изменение: теперь keepalive соединения после запросов POST не
4395 запрещаются для MSIE 7.0+.
4396 Спасибо Adam Lounds.
4397
4398 *) Изменение: теперь keepalive соединения запрещены для Safari.
4399 Спасибо Joshua Sierles.
4400
4401 *) Исправление: если проксированный или FastCGI запрос внутренне
4402 перенаправлялся в другой проксированный или FastCGI location, то
4403 переменная $upstream_response_time могла иметь ненормально большое
4404 значение; ошибка появилась в 0.8.7.
4405
4406 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4407 отбрасывания тела запроса; ошибка появилась в 0.8.11.
4408
4409
4410 Изменения в nginx 0.8.32 11.01.2010
4411
4412 *) Исправление: ошибки при использовании кодировки UTF-8 в
4413 ngx_http_autoindex_module.
4414 Спасибо Максиму Дунину.
4415
4416 *) Исправление: именованные выделения в регулярных выражениях работали
4417 только для двух переменных.
4418 Спасибо Максиму Дунину.
4419
4420 *) Исправление: теперь в строке заголовка запроса "Host" используется
4421 имя "localhost", если в директиве auth_http указан unix domain сокет.
4422 Спасибо Максиму Дунину.
4423
4424 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
4425 ответов.
4426 Спасибо Julian Reich.
4427
4428 *) Исправление: если директива "expires modified" выставляла дату в
4429 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
4430 отрицательное число.
4431 Спасибо Алексею Капранову.
4432
4433
4434 Изменения в nginx 0.8.31 23.12.2009
4435
4436 *) Добавление: теперь директива error_page может перенаправлять ответы
4437 со статусом 301 и 302.
4438
4439 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
4440 $geoip_longitude.
4441 Спасибо Arvind Sundararajan.
4442
4443 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
4444 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
4445
4446 *) Исправление: nginx закрывал соединение при запросе закэшированного
4447 ответа с пустым телом.
4448 Спасибо Piotr Sikora.
4449
4450 *) Исправление: nginx мог не собираться gcc 4.x при использовании
4451 оптимизации -O2 и выше.
4452 Спасибо Максиму Дунину и Денису Латыпову.
4453
4454 *) Исправление: регулярные выражения в location всегда тестировались с
4455 учётом регистра; ошибка появилась в 0.8.25.
4456
4457 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
4458 проксируемого запроса была строка "If-None-Match".
4459 Спасибо Tim Dettrick и David Kostal.
4460
4461 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
4462 перезаписи уже существующего файла.
4463
4464
4465 Изменения в nginx 0.8.30 15.12.2009
4466
4467 *) Изменение: теперь по умолчанию размер буфера директивы
4468 large_client_header_buffers равен 8K.
4469 Спасибо Andrew Cholakian.
4470
4471 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
4472
4473 *) Исправление: nginx/Windows пытался дважды переименовать временный
4474 файл при перезаписи уже существующего файла.
4475
4476 *) Исправление: ошибки double free or corruption, возникающей, если имя
4477 хоста не было найдено; ошибка появилась в 0.8.22.
4478 Спасибо Константину Свисту.
4479
4480 *) Исправление: в использовании libatomic на некоторых платформах.
4481 Спасибо W-Mark Kubacki.
4482
4483
4484 Изменения в nginx 0.8.29 30.11.2009
4485
4486 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
4487 ответа "009".
4488
4489 *) Добавление: директивы addition_types, charset_types, gzip_types,
4490 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
4491
4492 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
4493 Спасибо W-Mark Kubacki.
4494
4495 *) Добавление: параметр --with-libatomic[=DIR] в configure.
4496 Спасибо W-Mark Kubacki.
4497
4498 *) Исправление: listen unix domain сокет имели ограниченные права
4499 доступа.
4500
4501 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
4502 обрабатывались.
4503
4504 *) Исправление: именованные выделения в регулярных выражениях, заданные
4505 как "?P<...>", не работали в директиве server_name.
4506 Спасибо Максиму Дунину.
4507
4508
4509 Изменения в nginx 0.8.28 23.11.2009
4510
4511 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
4512 появилась в 0.8.25.
4513
4514
4515 Изменения в nginx 0.8.27 17.11.2009
4516
4517 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
4518 появилась в 0.8.25.
4519
4520
4521 Изменения в nginx 0.8.26 16.11.2009
4522
4523 *) Исправление: ошибки при использовании выделений в директиве rewrite;
4524 ошибка появилась в 0.8.25.
4525
4526 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4527 появилась в 0.8.25.
4528
4529
4530 Изменения в nginx 0.8.25 16.11.2009
4531
4532 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
4533 не найдена с помощью метода $r->variable().
4534
4535 *) Добавление: модуль ngx_http_degradation_module.
4536
4537 *) Добавление: именованные выделения в регулярных выражениях.
4538
4539 *) Добавление: теперь при использовании переменных в директиве
4540 proxy_pass не требуется задавать URI.
4541
4542 *) Добавление: теперь директива msie_padding работает и для Chrome.
4543
4544 *) Исправление: в рабочем процессе происходил segmentation fault при
4545 недостатке памяти; ошибка появилась в 0.8.18.
4546
4547 *) Исправление: nginx передавал сжатые ответы клиентам, не
4548 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
4549 ошибка появилась в 0.8.16.
4550
4551
4552 Изменения в nginx 0.8.24 11.11.2009
4553
4554 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
4555 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
4556
4557 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4558 появилась в 0.8.23.
4559
4560 *) Исправление: параметр "unix:" в директиве set_real_ip_from
4561 неправильно наследовался с предыдущего уровня.
4562
4563 *) Исправление: в resolver'е при определении пустого имени.
4564
4565
4566 Изменения в nginx 0.8.23 11.11.2009
4567
4568 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
4569 Спасибо Максиму Дунину.
4570
4571 *) Исправление: listen unix domain сокет не наследовался во время
4572 обновления без перерыва.
4573
4574 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
4575 без ещё одной директивы с любым IP-адресом.
4576
4577 *) Исправление: segmentation fault и зацикливания в resolver'е.
4578
4579 *) Исправление: в resolver'е.
4580 Спасибо Артёму Бохану.
4581
4582
4583 Изменения в nginx 0.8.22 03.11.2009
4584
4585 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
4586
4587 *) Добавление: директивы access и deny поддерживают IPv6.
4588
4589 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
4590 заголовках запроса.
4591
4592 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
4593
4594 *) Исправление: nginx не удалял unix domain сокет после тестирования
4595 конфигурации.
4596
4597 *) Исправление: nginx удалял unix domain сокет во время обновления без
4598 перерыва.
4599
4600 *) Исправление: оператор "!-x" не работал.
4601 Спасибо Максиму Дунину.
4602
4603 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4604 использовании limit_rate в HTTPS сервере.
4605 Спасибо Максиму Дунину.
4606
4607 *) Исправление: при записи в лог переменной $limit_rate в рабочем
4608 процессе происходил segmentation fault.
4609 Спасибо Максиму Дунину.
4610
4611 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4612 если внутри блока server не было директивы listen; ошибка появилась в
4613 0.8.21.
4614
4615
4616 Изменения в nginx 0.8.21 26.10.2009
4617
4618 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
4619
4620 *) Добавление: директива listen модуля HTTP поддерживает unix domain
4621 сокеты.
4622 Спасибо Hongli Lai.
4623
4624 *) Добавление: параметр "default_server" в директиве listen.
4625
4626 *) Добавление: теперь параметр "default" не обязателен для установки
4627 параметров listen-сокета.
4628
4629 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
4630 платформах;
4631
4632 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4633
4634
4635 Изменения в nginx 0.8.20 14.10.2009
4636
4637 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4638 "HIGH:!ADH:!MD5".
4639
4640 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
4641 слэш для линков на каталоги; ошибка появилась в 0.7.15.
4642
4643 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
4644 --error-log-path; ошибка появилась в 0.7.53.
4645
4646 *) Исправление: nginx не считал запятую разделителем в строке
4647 "Cache-Control" в заголовке ответа бэкенда.
4648
4649 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
4650 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
4651 не имел достаточно прав для работы с каталогами верхнего уровня.
4652
4653 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
4654 FastCGI-сервера не скрывались при кэшировании, если не использовались
4655 директивы fastcgi_hide_header с любыми параметрами.
4656
4657 *) Исправление: nginx неверно считал размер кэша на диске.
4658
4659
4660 Изменения в nginx 0.8.19 06.10.2009
4661
4662 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
4663
4664 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4665 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
4666
4667 *) Исправление: директива limit_req не работала; ошибка появилась в
4668 0.8.18.
4669
4670
4671 Изменения в nginx 0.8.18 06.10.2009
4672
4673 *) Добавление: директива read_ahead.
4674
4675 *) Добавление: теперь можно использовать несколько директив
4676 perl_modules.
4677
4678 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
4679
4680 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
4681 bucket.
4682 Спасибо Максиму Дунину.
4683
4684 *) Исправление: nginx не работал на Linux/sparc.
4685 Спасибо Marcus Ramberg.
4686
4687 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
4688 ответе на запрос MKCOL.
4689 Спасибо Xie Zhenye.
4690
4691 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
4692 появилась в 0.8.11.
4693
4694 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4695
4696
4697 Изменения в nginx 0.8.17 28.09.2009
4698
4699 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
4700 в заголовке запроса.
4701
4702 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
4703
4704 *) Добавление: переменная $ssl_session_id.
4705
4706 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4707
4708
4709 Изменения в nginx 0.8.16 22.09.2009
4710
4711 *) Добавление: директива image_filter_transparency.
4712
4713 *) Исправление: директива "addition_types" была неверно названа
4714 "addtion_types".
4715
4716 *) Исправление: порчи кэша resolver'а.
4717 Спасибо Matthew Dempsky.
4718
4719 *) Исправление: утечки памяти в resolver'е.
4720 Спасибо Matthew Dempsky.
4721
4722 *) Исправление: неверная строка запроса в переменной $request
4723 записывалась в access_log только при использовании error_log на
4724 уровне info или debug.
4725
4726 *) Исправление: в поддержке альфа-канала PNG в модуле
4727 ngx_http_image_filter_module.
4728
4729 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
4730 заголовок ответа, если обе директивы gzip_static и gzip_vary были
4731 включены.
4732
4733 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
4734 nginx/Windows.
4735
4736 *) Исправление: ошибки при использовании post_action; ошибка появилась в
4737 0.8.11.
4738 Спасибо Игорю Артемьеву.
4739
4740
4741 Изменения в nginx 0.8.15 14.09.2009
4742
4743 *) Безопасность: при обработке специально созданного запроса в рабочем
4744 процессе мог произойти segmentation fault.
4745 Спасибо Chris Ries.
4746
4747 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
4748 .domain-some.tld, то имя .sub.domain.tld попадало под маску
4749 .domain.tld.
4750
4751 *) Исправление: в поддержке прозрачности в модуле
4752 ngx_http_image_filter_module.
4753
4754 *) Исправление: в файловом AIO.
4755
4756 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
4757 появилась в 0.8.11.
4758
4759 *) Исправление: ошибки при использовании встроенного перла; ошибка
4760 появилась в 0.8.11.
4761
4762
4763 Изменения в nginx 0.8.14 07.09.2009
4764
4765 *) Исправление: устаревший закэшированный запрос мог залипнуть в
4766 состоянии "UPDATING".
4767
4768 *) Исправление: при использовании error_log на уровне info или debug в
4769 рабочем процессе мог произойти segmentation fault.
4770 Спасибо Сергею Боченкову.
4771
4772 *) Исправление: ошибки при использовании встроенного перла; ошибка
4773 появилась в 0.8.11.
4774
4775 *) Исправление: директива error_page не перенаправляла ошибку 413;
4776 ошибка появилась в 0.6.10.
4777
4778
4779 Изменения в nginx 0.8.13 31.08.2009
4780
4781 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
4782
4783 *) Исправление: nginx не собирался без параметра --with-file-aio на
4784 FreeBSD; ошибка появилась в 0.8.12.
4785
4786
4787 Изменения в nginx 0.8.12 31.08.2009
4788
4789 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
4790
4791 *) Исправление: ошибки при использовании try_files; ошибка появилась в
4792 0.8.11.
4793
4794 *) Исправление: ошибки при использовании memcached; ошибка появилась в
4795 0.8.11.
4796
4797
4798 Изменения в nginx 0.8.11 28.08.2009
4799
4800 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
4801 для MSIE 6.0 SV1.
4802
4803 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
4804
4805 *) Добавление: директива directio_alignment.
4806
4807
4808 Изменения в nginx 0.8.10 24.08.2009
4809
4810 *) Исправление: утечек памяти при использовании базы GeoIP City.
4811
4812 *) Исправление: ошибки при копировании временных файлов в постоянное
4813 место хранения; ошибка появилась в 0.8.9.
4814
4815
4816 Изменения в nginx 0.8.9 17.08.2009
4817
4818 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
4819 процесс; это должно улучшить обработку больших кэшей.
4820
4821 *) Добавление: теперь временные файлы и постоянное место хранения могут
4822 располагаться на разных файловых системах.
4823
4824
4825 Изменения в nginx 0.8.8 10.08.2009
4826
4827 *) Исправление: в обработке заголовков ответа, разделённых в
4828 FastCGI-записях.
4829
4830 *) Исправление: если запрос обрабатывался в двух проксированных или
4831 FastCGI location'ах и в первом из них использовалось кэширование, то
4832 в рабочем процессе происходил segmentation fault; ошибка появилась в
4833 0.8.7.
4834
4835
4836 Изменения в nginx 0.8.7 27.07.2009
4837
4838 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
4839
4840 *) Изменение: параметр ask директивы ssl_verify_client изменён на
4841 параметр optional и теперь он проверяет клиентский сертификат, если
4842 он был предложен.
4843 Спасибо Brice Figureau.
4844
4845 *) Добавление: переменная $ssl_client_verify.
4846 Спасибо Brice Figureau.
4847
4848 *) Добавление: директива ssl_crl.
4849 Спасибо Brice Figureau.
4850
4851 *) Добавление: параметр proxy директивы geo.
4852
4853 *) Добавление: директива image_filter поддерживает переменные для
4854 задания размеров.
4855
4856 *) Исправление: использование переменной $ssl_client_cert портило
4857 память; ошибка появилась в 0.7.7.
4858 Спасибо Сергею Журавлёву.
4859
4860 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
4861 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
4862 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
4863 Спасибо Максиму Дунину.
4864
4865 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
4866 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
4867 Спасибо Максиму Дунину.
4868
4869 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
4870 ответы в подзапросах; ошибка появилась в 0.8.5.
4871
4872
4873 Изменения в nginx 0.8.6 20.07.2009
4874
4875 *) Добавление: модуль ngx_http_geoip_module.
4876
4877 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
4878 document" для правильного документа.
4879 Спасибо Kuramoto Eiji.
4880
4881 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
4882 location'ов, заданных регулярным выражением, теперь всегда делается
4883 сравнение без учёта регистра символов.
4884
4885 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
4886 Спасибо Hugo Leisink.
4887
4888 *) Исправление: имя файла указанного в --conf-path игнорировалось при
4889 установке; ошибка появилась в 0.6.6.
4890 Спасибо Максиму Дунину.
4891
4892
4893 Изменения в nginx 0.8.5 13.07.2009
4894
4895 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
4896
4897 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
4898 для неверных имени/пароля возвращалась 500-ая ошибка.
4899
4900 *) Исправление: ответы модуля ngx_http_perl_module не работали в
4901 подзапросах.
4902
4903 *) Исправление: в модуле ngx_http_limit_req_module.
4904 Спасибо Максиму Дунину.
4905
4906
4907 Изменения в nginx 0.8.4 22.06.2009
4908
4909 *) Исправление: nginx не собирался с параметром --without-http-cache;
4910 ошибка появилась в 0.8.3.
4911
4912
4913 Изменения в nginx 0.8.3 19.06.2009
4914
4915 *) Добавление: переменная $upstream_cache_status.
4916
4917 *) Исправление: nginx не собирался на MacOSX 10.6.
4918
4919 *) Исправление: nginx не собирался с параметром --without-http-cache;
4920 ошибка появилась в 0.8.2.
4921
4922 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
4923 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
4924 в рабочем процессе происходил segmentation fault.
4925 Спасибо Евгению Мычло.
4926
4927
4928 Изменения в nginx 0.8.2 15.06.2009
4929
4930 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
4931 на старте.
4932
4933 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
4934 долго; ошибка появилась в 0.7.4.
4935
4936
4937 Изменения в nginx 0.8.1 08.06.2009
4938
4939 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
4940 fastcgi_cache_use_stale.
4941
4942 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4943 заголовке запроса клиента передавались бэкенду при кэшировании, если
4944 не использовалась директива proxy_set_header с любыми параметрами.
4945
4946 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
4947 не скрывались при кэшировании, если не использовались директивы
4948 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
4949
4950 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
4951 GIF87a.
4952 Спасибо Денису Ильиных.
4953
4954 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
4955 появилась в 0.7.56.
4956
4957
4958 Изменения в nginx 0.8.0 02.06.2009
4959
4960 *) Добавление: директива keepalive_requests.
4961
4962 *) Добавление: директива limit_rate_after.
4963 Спасибо Ivan Debnar.
4964
4965 *) Исправление: XSLT-фильтр не работал в подзапросах.
4966
4967 *) Исправление: обработке относительных путей в nginx/Windows.
4968
4969 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
4970 fastcgi_cache в nginx/Windows.
4971
4972 *) Исправление: в обработке ошибок выделения памяти.
4973 Спасибо Максиму Дунину и Кириллу Коринскому.
4974
4975
4976 Изменения в nginx 0.7.59 25.05.2009
4977
4978 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
4979
4980 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
4981 Спасибо Максиму Дунину.
4982
4983 *) Исправление: при использовании переменной $request_body в рабочем
4984 процессе происходил segmentation fault, если в запросе не было тела;
4985 ошибка появилась в 0.7.58.
4986
4987 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
4988 ошибка появилась в 0.7.56.
4989
4990 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
4991 обрабатывались SSI-, charset- и gzip-фильтрами.
4992
4993 *) Исправление: директива charset не ставила кодировку для ответов
4994 модуля ngx_http_gzip_static_module.
4995
4996
4997 Изменения в nginx 0.7.58 18.05.2009
4998
4999 *) Добавление: директива listen почтового прокси-сервера поддерживает
5000 IPv6.
5001
5002 *) Добавление: директива image_filter_jpeg_quality.
5003
5004 *) Добавление: директива client_body_in_single_buffer.
5005
5006 *) Добавление: переменная $request_body.
5007
5008 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
5009 файлов, содержащих символ ":".
5010
5011 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
5012 0.7.53.
5013 Спасибо Денису Латыпову.
5014
5015
5016 Изменения в nginx 0.7.57 12.05.2009
5017
5018 *) Исправление: при перенаправлении ошибок модуля
5019 ngx_http_image_filter_module в именованный location в рабочем
5020 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
5021
5022
5023 Изменения в nginx 0.7.56 11.05.2009
5024
5025 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
5026 HTTP.
5027
5028 *) Исправление: в модуле ngx_http_image_filter_module.
5029
5030
5031 Изменения в nginx 0.7.55 06.05.2009
5032
5033 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
5034 fastcgi_cache_use_stale не работали.
5035
5036 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
5037 заголовка.
5038
5039 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
5040 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
5041
5042 *) Исправление: при использовании директивы debug_connection в рабочем
5043 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
5044
5045 *) Исправление: в сборке модуля ngx_http_image_filter_module.
5046
5047 *) Исправление: файлы больше 2G не передавались с использованием
5048 $r->sendfile.
5049 Спасибо Максиму Дунину.
5050
5051
5052 Изменения в nginx 0.7.54 01.05.2009
5053
5054 *) Добавление: модуль ngx_http_image_filter_module.
5055
5056 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
5057
5058 *) Исправление: при использовании переменных "open_file_cache_errors on"
5059 в рабочем процессе мог произойти segmentation fault; ошибка появилась
5060 в 0.7.53.
5061
5062 *) Исправление: директива "port_in_redirect off" не работала; ошибка
5063 появилась в 0.7.39.
5064
5065 *) Исправление: улучшение обработки ошибок метода select.
5066
5067 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
5068
5069 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
5070 ошибка появилась в 0.7.53.
5071
5072
5073 Изменения в nginx 0.7.53 27.04.2009
5074
5075 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
5076 самого начала работы.
5077
5078 *) Добавление: теперь ошибки и предупреждения при старте записываются в
5079 error_log и выводятся на stderr.
5080
5081 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
5082 как префикс каталог, в котором он был запущен.
5083
5084 *) Добавление: ключ -p.
5085
5086 *) Добавление: ключ -s на Unix-платформах.
5087
5088 *) Добавление: ключи -? и -h.
5089 Спасибо Jerome Loyet.
5090
5091 *) Добавление: теперь ключи можно задавать в сжатой форме.
5092
5093 *) Исправление: nginx/Windows не работал, если файл конфигурации был
5094 задан ключом -c.
5095
5096 *) Исправление: при использовании директив proxy_store, fastcgi_store,
5097 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
5098 Спасибо Максиму Дунину.
5099
5100 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
5101 почтового прокси-сервера передавалось неверное значение; ошибка
5102 появилась в 0.7.34.
5103 Спасибо Simon Lecaille.
5104
5105 *) Исправление: при логгировании на Linux не писались текстовые описания
5106 системных ошибок; ошибка появилась в 0.7.45.
5107
5108 *) Исправление: директива fastcgi_cache_min_uses не работала.
5109 Спасибо Андрею Воробьёву.
5110
5111
5112 Изменения в nginx 0.7.52 20.04.2009
5113
5114 *) Добавление: первая бинарная версия под Windows.
5115
5116 *) Исправление: корректная обработка метода HEAD при кэшировании.
5117
5118 *) Исправление: корректная обработка строк "If-Modified-Since",
5119 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
5120
5121 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
5122 заголовке ответа для закэшированных ответов.
5123
5124 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
5125 perl поддерживал потоки, то при выходе основного процесса могла
5126 выдаваться ошибка "panic: MUTEX_LOCK".
5127
5128 *) Исправление: nginx не собирался с параметром --without-http-cache;
5129 ошибка появилась в 0.7.48.
5130
5131 *) Исправление: nginx не собирался на платформах, отличных от i386,
5132 amd64, sparc и ppc; ошибка появилась в 0.7.42.
5133
5134
5135 Изменения в nginx 0.7.51 12.04.2009
5136
5137 *) Добавление: директива try_files поддерживает код ответа в последнем
5138 параметре.
5139
5140 *) Добавление: теперь в директиве return можно использовать любой код
5141 ответа.
5142
5143 *) Исправление: директива error_page делала внешний редирект без строки
5144 запроса; ошибка появилась в 0.7.44.
5145
5146 *) Исправление: если сервера слушали на нескольких явно описанных
5147 адресах, то виртуальные сервера могли не работать; ошибка появилась в
5148 0.7.39.
5149
5150
5151 Изменения в nginx 0.7.50 06.04.2009
5152
5153 *) Исправление: переменные $arg_... не работали; ошибка появилась в
5154 0.7.49.
5155
5156
5157 Изменения в nginx 0.7.49 06.04.2009
5158
5159 *) Исправление: при использовании переменных $arg_... в рабочем процессе
5160 мог произойти segmentation fault; ошибка появилась в 0.7.48.
5161
5162
5163 Изменения в nginx 0.7.48 06.04.2009
5164
5165 *) Добавление: директива proxy_cache_key.
5166
5167 *) Исправление: теперь nginx учитывает при кэшировании строки
5168 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
5169 бэкенда.
5170
5171 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
5172
5173 *) Исправление: директива fastcgi_cache_key не наследовалась.
5174
5175 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
5176 Спасибо Максиму Дунину.
5177
5178 *) Исправление: nginx не собирался с библиотекой uclibc.
5179 Спасибо Timothy Redaelli.
5180
5181 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
5182 в 0.7.46.
5183
5184
5185 Изменения в nginx 0.7.47 01.04.2009
5186
5187 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
5188 ошибка появилась в 0.7.46.
5189
5190 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
5191
5192 *) Исправление: если использовался параметр max_size, то cache manager
5193 мог удалить весь кэш; ошибка появилась в 0.7.46.
5194
5195 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
5196 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
5197 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
5198 в 0.7.46.
5199
5200 *) Исправление: в рабочем процессе мог произойти segmentation fault при
5201 перенаправлении запроса проксированному или FastCGI-серверу с помощью
5202 error_page или try_files; ошибка появилась в 0.7.44.
5203
5204
5205 Изменения в nginx 0.7.46 30.03.2009
5206
5207 *) Исправление: архив предыдущего релиза был неверным.
5208
5209
5210 Изменения в nginx 0.7.45 30.03.2009
5211
5212 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
5213 задавать на разных уровнях.
5214
5215 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
5216
5217 *) Добавление: параметр max_size в директиве proxy_cache_path.
5218
5219 *) Добавление: предварительная поддержка кэширования в модуле
5220 ngx_http_fastcgi_module.
5221
5222 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
5223 указываются названия директивы и зоны.
5224
5225 *) Исправление: директива "add_header last-modified ''" не удаляла в
5226 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
5227
5228 *) Исправление: в директиве auth_basic_user_file не работал
5229 относительный путь, заданный строкой без переменных; ошибка появилась
5230 в 0.7.44.
5231 Спасибо Jerome Loyet.
5232
5233 *) Исправление: в директиве alias, заданной переменными без ссылок на
5234 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
5235
5236
5237 Изменения в nginx 0.7.44 23.03.2009
5238
5239 *) Добавление: предварительная поддержка кэширования в модуле
5240 ngx_http_proxy_module.
5241
5242 *) Добавление: параметр --with-pcre в configure.
5243
5244 *) Добавление: теперь директива try_files может быть использована на
5245 уровне server.
5246
5247 *) Исправление: директива try_files неправильно обрабатывала строку
5248 запроса в последнем параметре.
5249
5250 *) Исправление: директива try_files могла неверно тестировать каталоги.
5251
5252 *) Исправление: если для пары адрес:порт описан только один сервер, то
5253 выделения в регулярных выражениях в директиве server_name не
5254 работали.
5255
5256
5257 Изменения в nginx 0.7.43 18.03.2009
5258
5259 *) Исправление: запрос обрабатывался неверно, если директива root
5260 использовала переменные; ошибка появилась в 0.7.42.
5261
5262 *) Исправление: если сервер слушал на адресах типа "*", то значение
5263 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
5264
5265
5266 Изменения в nginx 0.7.42 16.03.2009
5267
5268 *) Изменение: ошибка "Invalid argument", возвращаемая
5269 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
5270
5271 *) Изменение: при отсутствии файла, указанного в директиве
5272 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
5273
5274 *) Добавление: директива auth_basic_user_file поддерживает переменные.
5275 Спасибо Кириллу Коринскому.
5276
5277 *) Добавление: директива listen поддерживает параметр ipv6only.
5278 Спасибо Zhang Hua.
5279
5280 *) Исправление: в директиве alias со ссылками на выделения в регулярных
5281 выражениях; ошибка появилась в 0.7.40.
5282
5283 *) Исправление: совместимость с Tru64 UNIX.
5284 Спасибо Dustin Marquess.
5285
5286 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5287 в 0.7.41.
5288
5289
5290 Изменения в nginx 0.7.41 11.03.2009
5291
5292 *) Исправление: в рабочем процессе мог произойти segmentation fault,
5293 если в server_name или location были выделения в регулярных
5294 выражениях; ошибка появилась в 0.7.40.
5295 Спасибо Владимиру Сопоту.
5296
5297
5298 Изменения в nginx 0.7.40 09.03.2009
5299
5300 *) Добавление: директива location поддерживает выделения в регулярных
5301 выражениях.
5302
5303 *) Добавление: директиву alias с ссылками на выделения в регулярных
5304 выражениях можно использовать внутри location'а, заданного регулярным
5305 выражением с выделениями.
5306
5307 *) Добавление: директива server_name поддерживает выделения в регулярных
5308 выражениях.
5309
5310 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
5311 слэш для каталогов на файловой системе XFS; ошибка появилась в
5312 0.7.15.
5313 Спасибо Дмитрию Кузьменко.
5314
5315
5316 Изменения в nginx 0.7.39 02.03.2009
5317
5318 *) Исправление: при включённом сжатии большие ответы с использованием
5319 SSI могли зависать; ошибка появилась в 0.7.28.
5320 Спасибо Артёму Бохану.
5321
5322 *) Исправление: при использовании коротких статических вариантов в
5323 директиве try_files в рабочем процессе мог произойти segmentation
5324 fault.
5325
5326
5327 Изменения в nginx 0.7.38 23.02.2009
5328
5329 *) Добавление: логгирование ошибок аутентификации.
5330
5331 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
5332 игнорировались после нечётного числа пустых строк.
5333 Спасибо Александру Загребину.
5334
5335 *) Исправление: при использовании длинного пути в unix domain сокете в
5336 главном процессе происходил segmentation fault; ошибка появилась в
5337 0.7.36.
5338
5339
5340 Изменения в nginx 0.7.37 21.02.2009
5341
5342 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
5343 появилась в 0.7.36.
5344
5345
5346 Изменения в nginx 0.7.36 21.02.2009
5347
5348 *) Добавление: предварительная поддержка IPv6; директива listen модуля
5349 HTTP поддерживает IPv6.
5350
5351 *) Исправление: переменная $ancient_browser не работала для браузеров,
5352 заданных директивами modern_browser.
5353
5354
5355 Изменения в nginx 0.7.35 16.02.2009
5356
5357 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
5358 асимметричных шифров.
5359 Спасибо Marcin Gozdalik.
5360
5361 *) Исправление: директива try_files выставляла MIME-type, исходя из
5362 расширения первоначального запроса.
5363
5364 *) Исправление: в директивах server_name, valid_referers и map
5365 неправильно обрабатывались имена вида "*domain.tld", если
5366 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
5367 ошибка появилась в 0.7.9.
5368
5369
5370 Изменения в nginx 0.7.34 10.02.2009
5371
5372 *) Добавление: параметр off в директиве if_modified_since.
5373
5374 *) Добавление: теперь после команды XCLIENT nginx посылает команду
5375 HELO/EHLO.
5376 Спасибо Максиму Дунину.
5377
5378 *) Добавление: поддержка Microsoft-специфичного режима
5379 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
5380 Спасибо Максиму Дунину.
5381
5382 *) Исправление: в директиве rewrite, возвращающей редирект, старые
5383 аргументы присоединялись к новым через символ "?" вместо "&";
5384 ошибка появилась в 0.1.18.
5385 Спасибо Максиму Дунину.
5386
5387 *) Исправление: nginx не собирался на AIX.
5388
5389
5390 Изменения в nginx 0.7.33 02.02.2009
5391
5392 *) Исправление: если на запрос с телом возвращался редирект, то ответ
5393 мог быть двойным при использовании методов epoll или rtsig.
5394 Спасибо Eden Li.
5395
5396 *) Исправление: для некоторых типов редиректов в переменной
5397 $sent_http_location было пустое значение.
5398
5399 *) Исправление: при использовании директивы resolver в SMTP
5400 прокси-сервере в рабочем процессе мог произойти segmentation fault.
5401
5402
5403 Изменения в nginx 0.7.32 26.01.2009
5404
5405 *) Добавление: теперь в директиве try_files можно явно указать проверку
5406 каталога.
5407
5408 *) Исправление: fastcgi_store не всегда сохранял файлы.
5409
5410 *) Исправление: в гео-диапазонах.
5411
5412 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
5413 если nginx был собран без отладки.
5414 Спасибо Андрею Квасову.
5415
5416
5417 Изменения в nginx 0.7.31 19.01.2009
5418
5419 *) Изменение: теперь директива try_files проверяет только файлы,
5420 игнорируя каталоги.
5421
5422 *) Добавление: директива fastcgi_split_path_info.
5423
5424 *) Исправления в поддержке строки "Expect" в заголовке запроса.
5425
5426 *) Исправления в гео-диапазонах.
5427
5428 *) Исправление: при отсутствии ответа ngx_http_memcached_module
5429 возвращал в теле ответа строку "END" вместо 404-ой страницы по
5430 умолчанию; ошибка появилась в 0.7.18.
5431 Спасибо Максиму Дунину.
5432
5433 *) Исправление: при проксировании SMTP nginx выдавал сообщение
5434 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
5435 Спасибо Максиму Дунину.
5436
5437
5438 Изменения в nginx 0.7.30 24.12.2008
5439
5440 *) Исправление: в рабочем процессе происходил segmentation fault, если в
5441 директивах fastcgi_pass или proxy_pass использовались переменные и
5442 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
5443
5444
5445 Изменения в nginx 0.7.29 24.12.2008
5446
5447 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
5448 переменные при использовании unix domain сокетов.
5449
5450 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
5451
5452 *) Исправление: ответ "100 Continue" выдавался для запросов версии
5453 HTTP/1.0;
5454 Спасибо Максиму Дунину.
5455
5456 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
5457 под Cygwin.
5458
5459
5460 Изменения в nginx 0.7.28 22.12.2008
5461
5462 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
5463
5464 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
5465 с 4 4k/8k на 32 4k или 16 8k.
5466
5467
5468 Изменения в nginx 0.7.27 15.12.2008
5469
5470 *) Добавление: директива try_files.
5471
5472 *) Добавление: директива fastcgi_pass поддерживает переменные.
5473
5474 *) Добавление: теперь директива geo может брать адрес из переменной.
5475 Спасибо Андрею Нигматулину.
5476
5477 *) Добавление: теперь модификатор location'а можно указывать без пробела
5478 перед названием.
5479
5480 *) Добавление: переменная $upstream_response_length.
5481
5482 *) Исправление: теперь директива add_header не добавляет пустое
5483 значение.
5484
5485 *) Исправление: при запросе файла нулевой длины nginx закрывал
5486 соединение, ничего не передав; ошибка появилась в 0.7.25.
5487
5488 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
5489 каталог.
5490
5491 *) Исправление: если в сервере не был описан ни один именованный
5492 location, но такой location использовался в директиве error_page, то
5493 в рабочем процессе происходил segmentation fault.
5494 Спасибо Сергею Боченкову.
5495
5496
5497 Изменения в nginx 0.7.26 08.12.2008
5498
5499 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
5500
5501
5502 Изменения в nginx 0.7.25 08.12.2008
5503
5504 *) Изменение: в обработке подзапросов.
5505
5506 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
5507 заголовке запроса.
5508
5509 *) Исправление: теперь директивы limit_req и limit_conn указывают
5510 причину запрета запроса.
5511
5512 *) Исправление: в параметре delete директивы geo.
5513
5514
5515 Изменения в nginx 0.7.24 01.12.2008
5516
5517 *) Добавление: директива if_modified_since.
5518
5519 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
5520 ответом сервер передавал много сообщений в stderr.
5521
5522 *) Исправление: переменные "$cookie_..." не работали в SSI and в
5523 перловом модуле.
5524
5525
5526 Изменения в nginx 0.7.23 27.11.2008
5527
5528 *) Добавление: параметры delete и ranges в директиве geo.
5529
5530 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
5531
5532 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
5533
5534
5535 Изменения в nginx 0.7.22 20.11.2008
5536
5537 *) Добавление: параметр none в директиве smtp_auth.
5538 Спасибо Максиму Дунину.
5539
5540 *) Добавление: переменные "$cookie_...".
5541
5542 *) Исправление: директива directio не работала с файловой системой XFS.
5543
5544 *) Исправление: resolver не понимал большие DNS-ответы.
5545 Спасибо Zyb.
5546
5547
5548 Изменения в nginx 0.7.21 11.11.2008
5549
5550 *) Изменения в модуле ngx_http_limit_req_module.
5551
5552 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
5553 Спасибо Денису Латыпову.
5554
5555 *) Изменение: совместимость с glibc 2.3.
5556 Спасибо Eric Benson и Максиму Дунину.
5557
5558 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
5559 ошибка появилась в 0.7.6.
5560
5561
5562 Изменения в nginx 0.7.20 10.11.2008
5563
5564 *) Изменения в модуле ngx_http_gzip_filter_module.
5565
5566 *) Добавление: модуль ngx_http_limit_req_module.
5567
5568 *) Исправление: на платформах sparc и ppc рабочие процессы могли
5569 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
5570 Спасибо Максиму Дунину.
5571
5572 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
5573 работали; ошибка появилась в 0.7.12.
5574
5575 *) Исправление: при использовании HTTPS запросы могли завершаться с
5576 ошибкой "bad write retry".
5577
5578 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
5579 location'ов с именами меньше 3 символов.
5580
5581 *) Исправление: переменная $server_addr могла не иметь значения.
5582
5583
5584 Изменения в nginx 0.7.19 13.10.2008
5585
5586 *) Исправление: обновление номера версии.
5587
5588
5589 Изменения в nginx 0.7.18 13.10.2008
5590
5591 *) Изменение: директива underscores_in_headers; теперь nginx по
5592 умолчанию не разрешает подчёркивания в именах строк в заголовке
5593 запроса клиента.
5594
5595 *) Добавление: модуль ngx_http_secure_link_module.
5596
5597 *) Добавление: директива real_ip_header поддерживает любой заголовок.
5598
5599 *) Добавление: директива log_subrequest.
5600
5601 *) Добавление: переменная $realpath_root.
5602
5603 *) Добавление: параметры http_502 и http_504 в директиве
5604 proxy_next_upstream.
5605
5606 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
5607 fastcgi_next_upstream не работал.
5608
5609 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
5610 для запросов HEAD.
5611
5612 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
5613
5614
5615 Изменения в nginx 0.7.17 15.09.2008
5616
5617 *) Добавление: директива directio теперь работает на Linux.
5618
5619 *) Добавление: переменная $pid.
5620
5621 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
5622 при использовании open_file_cache.
5623
5624 *) Исправление: access_log с переменными не работал на Linux; ошибка
5625 появилась в 0.7.7.
5626
5627 *) Исправление: модуль ngx_http_charset_module не понимал название
5628 кодировки в кавычках, полученное от бэкенда.
5629
5630
5631 Изменения в nginx 0.7.16 08.09.2008
5632
5633 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
5634 появилась в 0.7.15.
5635
5636
5637 Изменения в nginx 0.7.15 08.09.2008
5638
5639 *) Добавление: модуль ngx_http_random_index_module.
5640
5641 *) Добавление: директива directio оптимизирована для запросов файлов,
5642 начинающихся с произвольной позиции.
5643
5644 *) Добавление: директива directio при необходимости запрещает
5645 использование sendfile.
5646
5647 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
5648 заголовке запроса клиента.
5649
5650
5651 Изменения в nginx 0.7.14 01.09.2008
5652
5653 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
5654 имеют значений по умолчанию.
5655
5656 *) Добавление: директива listen поддерживает параметр ssl.
5657
5658 *) Добавление: теперь при переконфигурации nginx учитывает изменение
5659 временной зоны на FreeBSD и Linux.
5660
5661 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
5662 прочие, не устанавливались, если сервером по умолчанию был не первый
5663 сервер.
5664
5665 *) Исправление: при использовании в качестве аргументов части URI,
5666 выделенного с помощью директивы rewrite, эти аргументы не
5667 экранировались.
5668
5669 *) Исправление: улучшения тестирования правильности конфигурационного
5670 файла.
5671
5672
5673 Изменения в nginx 0.7.13 26.08.2008
5674
5675 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
5676 в 0.7.12.
5677
5678
5679 Изменения в nginx 0.7.12 26.08.2008
5680
5681 *) Добавление: директива server_name поддерживает пустое имя "".
5682
5683 *) Добавление: директива gzip_disable поддерживает специальную маску
5684 msie6.
5685
5686 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
5687 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
5688 Спасибо Максиму Дунину.
5689
5690 *) Исправление: при перенаправлении запроса с помощью директивы
5691 error_page терялось тело запроса.
5692
5693 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
5694 директивы error_page возвращался полный ответ.
5695
5696 *) Исправление: метод $r->header_in() не возвращал значения строк
5697 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
5698 появилась в 0.7.0.
5699
5700
5701 Изменения в nginx 0.7.11 18.08.2008
5702
5703 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
5704 MIME-типом text/css.
5705
5706 *) Добавление: теперь nginx возвращает код 405 для метода POST при
5707 запросе статического файла, только если файл существует.
5708
5709 *) Добавление: директива proxy_ssl_session_reuse.
5710
5711 *) Исправление: после перенаправления запроса с помощью
5712 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
5713 оригинальный запрос.
5714
5715 *) Исправление: если у каталога были права доступа только на поиск
5716 файлов и первый индексный файл отсутствовал, то nginx возвращал
5717 ошибку 500.
5718
5719 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
5720 0.7.1.
5721
5722
5723 Изменения в nginx 0.7.10 13.08.2008
5724
5725 *) Исправление: ошибок в директивах addition_types, charset_types,
5726 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
5727 появились в 0.7.9.
5728
5729 *) Исправление: рекурсивной error_page для 500 ошибки.
5730
5731 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
5732 не для всего keepalive соединения, а для каждого запроса по этому
5733 соединению.
5734
5735
5736 Изменения в nginx 0.7.9 12.08.2008
5737
5738 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
5739 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
5740 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
5741
5742 *) Добавление: директивы charset_types и addition_types.
5743
5744 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
5745 используют хэш.
5746
5747 *) Добавление: модуль ngx_cpp_test_module.
5748
5749 *) Добавление: директива expires поддерживает суточное время.
5750
5751 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
5752 Спасибо Денису Латыпову и Максиму Дунину.
5753
5754 *) Исправление: директива log_not_found не работала при поиске индексных
5755 файлов.
5756
5757 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
5758 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
5759
5760 *) Исправление: если в директивах server_name, valid_referers и map
5761 использовалась маска вида "*.domain.tld" и при этом полное имя вида
5762 "domain.tld" не было описано, то это имя попадало под маску; ошибка
5763 появилась в 0.3.18.
5764
5765
5766 Изменения в nginx 0.7.8 04.08.2008
5767
5768 *) Добавление: модуль ngx_http_xslt_module.
5769
5770 *) Добавление: переменные "$arg_...".
5771
5772 *) Добавление: поддержка directio в Solaris.
5773 Спасибо Ivan Debnar.
5774
5775 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
5776 в заголовке ответа без строки статуса, то nginx использует код
5777 статуса 302.
5778 Спасибо Максиму Дунину.
5779
5780
5781 Изменения в nginx 0.7.7 30.07.2008
5782
5783 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
5784 временной.
5785
5786 *) Изменение: значением переменной $ssl_client_cert теперь является
5787 сертификат, перед каждой строкой которого, кроме первой, вставляется
5788 символ табуляции; неизменённый сертификат доступен через переменную
5789 $ssl_client_raw_cert.
5790
5791 *) Добавление: параметр ask директивы ssl_verify_client.
5792
5793 *) Добавление: улучшения в обработке byte-range.
5794 Спасибо Максиму Дунину.
5795
5796 *) Добавление: директива directio.
5797 Спасибо Jiang Hong.
5798
5799 *) Добавление: поддержка sendfile() в MacOSX 10.5.
5800
5801 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
5802 делается сравнение без учёта регистра символов; однако, сравнение
5803 ограничено только однобайтными locale'ями.
5804
5805 *) Исправление: соединения почтового прокси-сервера зависали в режиме
5806 SSL, если использовались методы select, poll или /dev/poll.
5807
5808 *) Исправление: ошибки при использовании кодировки UTF-8 в
5809 ngx_http_autoindex_module.
5810
5811
5812 Изменения в nginx 0.7.6 07.07.2008
5813
5814 *) Исправление: теперь при использовании переменных в директиве
5815 access_log всегда проверяется существовании root'а для запроса.
5816
5817 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
5818 значений в аргументах запроса.
5819
5820
5821 Изменения в nginx 0.7.5 01.07.2008
5822
5823 *) Исправления в поддержке переменных в директиве access_log; ошибки
5824 появились в 0.7.4.
5825
5826 *) Исправление: nginx не собирался с параметром
5827 --without-http_gzip_module; ошибка появилась в 0.7.3.
5828 Спасибо Кириллу Коринскому.
5829
5830 *) Исправление: при совместном использовании sub_filter и SSI ответы
5831 могли передаваться неверно.
5832
5833
5834 Изменения в nginx 0.7.4 30.06.2008
5835
5836 *) Добавление: директива access_log поддерживает переменные.
5837
5838 *) Добавление: директива open_log_file_cache.
5839
5840 *) Добавление: ключ -g.
5841
5842 *) Добавление: поддержка строки "Expect" в заголовке запроса.
5843
5844 *) Исправление: большие включения в SSI могли передавались не полностью.
5845
5846
5847 Изменения в nginx 0.7.3 23.06.2008
5848
5849 *) Изменение: MIME-тип для расширения rss изменён на
5850 "application/rss+xml".
5851
5852 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
5853 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
5854
5855 *) Добавление: теперь при использовании протокола "https://" в директиве
5856 rewrite автоматически делается редирект.
5857
5858 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
5859 ошибка появилась в 0.6.9.
5860
5861
5862 Изменения в nginx 0.7.2 16.06.2008
5863
5864 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
5865
5866 *) Добавление: директива ssl_dhparam.
5867
5868 *) Добавление: переменная $ssl_client_cert.
5869 Спасибо Manlio Perillo.
5870
5871 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
5872 искал новый location; ошибка появилась в 0.7.1.
5873 Спасибо Максиму Дунину.
5874
5875 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5876 в 0.7.1.
5877
5878 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
5879 nginx не добавлял аргументы из оригинального запроса.
5880
5881
5882 Изменения в nginx 0.7.1 26.05.2008
5883
5884 *) Изменение: теперь поиск location'а делается с помощью дерева.
5885
5886 *) Изменение: директива optimize_server_names упразднена в связи с
5887 появлением директивы server_name_in_redirect.
5888
5889 *) Изменение: некоторые давно устаревшие директивы больше не
5890 поддерживаются.
5891
5892 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
5893 параметр используется по умолчанию.
5894 Спасибо Rob Mueller.
5895
5896 *) Исправление: рабочие процессы могли не реагировать на сигналы
5897 переконфигурации и ротации логов.
5898
5899 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
5900 Спасибо Roxis.
5901
5902
5903 Изменения в nginx 0.7.0 19.05.2008
5904
5905 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
5906 записываются в виде \xXX.
5907 Спасибо Максиму Дунину.
5908
5909 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
5910 запроса.
5911
5912 *) Добавление: директива expires поддерживает флаг modified.
5913
5914 *) Добавление: переменные $uid_got и $uid_set можно использовать на
5915 любой стадии обработки запроса.
5916
5917 *) Добавление: переменная $hostname.
5918 Спасибо Андрею Нигматулину.
5919
5920 *) Добавление: поддержка DESTDIR.
5921 Спасибо Todd A. Fisher и Andras Voroskoi.
5922
5923 *) Исправление: при использовании keepalive на Linux в рабочем процессе
5924 мог произойти segmentation fault.
5925
5926
5927 Изменения в nginx 0.6.31 12.05.2008
5928
5929 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
5930 заголовка ответа была в конце записи FastCGI; ошибка появилась в
5931 0.6.2.
5932 Спасибо Сергею Серову.
5933
5934 *) Исправление: при удалении файла и использовании директивы
5935 open_file_cache_errors off в рабочем процессе мог произойти
5936 segmentation fault.
5937
5938
5939 Изменения в nginx 0.6.30 29.04.2008
5940
5941 *) Изменение: теперь, если маске, заданной в директиве include, не
5942 соответствует ни один файл, то nginx не выдаёт ошибку.
5943
5944 *) Добавление: теперь время в директивах можно задавать без пробела,
5945 например, "1h50m".
5946
5947 *) Исправление: утечек памяти, если директива ssl_verify_client имела
5948 значение on.
5949 Спасибо Chavelle Vincent.
5950
5951 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
5952 вывод.
5953
5954 *) Исправление: директива error_page не воспринимала параметры в
5955 перенаправляемом URI.
5956
5957 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
5958 в бинарном режиме.
5959
5960 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
5961 0.6.15.
5962
5963
5964 Изменения в nginx 0.6.29 18.03.2008
5965
5966 *) Добавление: модуль ngx_google_perftools_module.
5967
5968 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
5969 платформах; ошибка появилась в 0.6.27.
5970
5971
5972 Изменения в nginx 0.6.28 13.03.2008
5973
5974 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
5975
5976
5977 Изменения в nginx 0.6.27 12.03.2008
5978
5979 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
5980 rtsig.
5981
5982 *) Изменение: теперь при перенаправлении запроса в именованный location
5983 с помощью директивы error_page метод запроса не изменяется.
5984
5985 *) Добавление: директивы resolver и resolver_timeout в SMTP
5986 прокси-сервере.
5987
5988 *) Добавление: директива post_action поддерживает именованные
5989 location'ы.
5990
5991 *) Исправление: при перенаправлении запроса из location'а c обработчиком
5992 proxy, FastCGI или memcached в именованный location со статическим
5993 обработчиком в рабочем процессе происходил segmentation fault.
5994
5995 *) Исправление: браузеры не повторяли SSL handshake, если при первом
5996 handshake не оказалось правильного клиентского сертификата.
5997 Спасибо Александру Инюхину.
5998
5999 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
6000 error_page без изменения кода ошибки nginx пытался выделить очень
6001 много памяти.
6002
6003 *) Исправление: утечки памяти в долгоживущих небуфферизированных
6004 соединениях.
6005
6006 *) Исправление: утечки памяти в resolver'е.
6007
6008 *) Исправление: при перенаправлении запроса из location'а c обработчиком
6009 proxy в другой location с обработчиком proxy в рабочем процессе
6010 происходил segmentation fault.
6011
6012 *) Исправление: ошибки в кэшировании переменных $proxy_host и
6013 $proxy_port.
6014 Спасибо Сергею Боченкову.
6015
6016 *) Исправление: директива proxy_pass с переменными использовала порт,
6017 описанной в другой директиве proxy_pass без переменных, но с таким же
6018 именем хоста.
6019 Спасибо Сергею Боченкову.
6020
6021 *) Исправление: во время переконфигурации на некоторых 64-битном
6022 платформах в лог записывался alert "sendmsg() failed (9: Bad file
6023 descriptor)".
6024
6025 *) Исправление: при повторном использовании в SSI пустого block'а в
6026 качестве заглушки в рабочем процессе происходил segmentation fault.
6027
6028 *) Исправление: ошибки при копировании части URI, содержащего
6029 экранированные символы, в аргументы.
6030
6031
6032 Изменения в nginx 0.6.26 11.02.2008
6033
6034 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
6035 ответа.
6036
6037 *) Исправление: при использовании большого значения в директиве expires
6038 в рабочем процессе происходил segmentation fault.
6039 Спасибо Joaquin Cuenca Abela.
6040
6041 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
6042 Спасибо Геннадию Махомеду.
6043
6044 *) Исправление: в проксированных подзапросах и подзапросах к
6045 FastCGI-серверу вместо метода GET использовался оригинальный метод
6046 клиента.
6047
6048 *) Исправление: утечки сокетов в режиме HTTPS при использовании
6049 отложенного accept'а.
6050 Спасибо Ben Maurer.
6051
6052 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
6053 (SSL: )"; ошибка появилась в 0.6.23.
6054
6055 *) Исправление: при использовании HTTPS запросы могли завершаться с
6056 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
6057
6058
6059 Изменения в nginx 0.6.25 08.01.2008
6060
6061 *) Изменение: вместо специального параметра "*" в директиве server_name
6062 теперь используется директива server_name_in_redirect.
6063
6064 *) Изменение: в качестве основного имени в директиве server_name теперь
6065 можно использовать имена с масками и регулярными выражениями.
6066
6067 *) Изменение: директива satisfy_any заменена директивой satisfy.
6068
6069 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
6070 нагружать процессор при запуске под Linux OpenVZ.
6071
6072 *) Добавление: директива min_delete_depth.
6073
6074 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
6075
6076 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
6077 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
6078
6079 *) Исправление: утечки сокетов в режиме HTTPS при использовании
6080 отложенного accept'а.
6081 Спасибо Ben Maurer.
6082
6083 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
6084 в 0.6.23.
6085
6086
6087 Изменения в nginx 0.6.24 27.12.2007
6088
6089 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
6090 segmentation fault; ошибка появилась в 0.6.23.
6091
6092
6093 Изменения в nginx 0.6.23 27.12.2007
6094
6095 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
6096 параметр используется по умолчанию.
6097
6098 *) Изменение: директива open_file_cache_retest переименована в
6099 open_file_cache_valid.
6100
6101 *) Добавление: директива open_file_cache_min_uses.
6102
6103 *) Добавление: модуль ngx_http_gzip_static_module.
6104
6105 *) Добавление: директива gzip_disable.
6106
6107 *) Добавление: директиву memcached_pass можно использовать внутри блока
6108 if.
6109
6110 *) Исправление: если внутри одного location'а использовались директивы
6111 "memcached_pass" и "if", то в рабочем процессе происходил
6112 segmentation fault.
6113
6114 *) Исправление: если при использовании директивы satisfy_any on" были
6115 заданы директивы не всех модулей доступа, то заданные директивы не
6116 проверялись.
6117
6118 *) Исправление: параметры, заданные регулярным выражением в директиве
6119 valid_referers, не наследовалась с предыдущего уровня.
6120
6121 *) Исправление: директива post_action не работала, если запрос
6122 завершался с кодом 499.
6123
6124 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
6125 Спасибо Ben Maurer.
6126
6127 *) Исправление: STARTTLS в режиме SMTP не работал.
6128 Спасибо Олегу Мотиенко.
6129
6130 *) Исправление: при использовании HTTPS запросы могли завершаться с
6131 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
6132
6133
6134 Изменения в nginx 0.6.22 19.12.2007
6135
6136 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
6137 значения, скопированные в память, выделенную perl'ом.
6138
6139 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
6140 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
6141 время переконфигурации основной процесс аварийно выходил; ошибка
6142 появилась в 0.5.9.
6143 Спасибо Борису Жмурову.
6144
6145 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
6146 неверные результаты выделения в регулярных выражениях.
6147
6148 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
6149 у которого небольшое тело запроса было уже полностью получено, то в
6150 рабочем процессе происходил segmentation fault.
6151
6152 *) Исправление: large_client_header_buffers не освобождались перед
6153 переходом в состояние keep-alive.
6154 Спасибо Олександру Штепе.
6155
6156 *) Исправление: в переменной $upstream_addr не записывался последний
6157 адрес; ошибка появилась в 0.6.18.
6158
6159 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
6160 теперь она возвращает ошибку 502, которую можно направить на
6161 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
6162
6163 *) Исправление: при использовании директивы fastcgi_catch_stderr в
6164 основном процессе происходил segmentation fault; ошибка появилась в
6165 0.6.10.
6166 Спасибо Manlio Perillo.
6167
6168
6169 Изменения в nginx 0.6.21 03.12.2007
6170
6171 *) Изменение: если в значениях переменных директивы proxy_pass
6172 используются только IP-адреса, то указывать resolver не нужно.
6173
6174 *) Исправление: при использовании директивы proxy_pass c URI-частью в
6175 рабочем процессе мог произойти segmentation fault; ошибка появилась в
6176 0.6.19.
6177
6178 *) Исправление: если resolver использовался на платформах, не
6179 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
6180 response".
6181 Спасибо Андрею Нигматулину.
6182
6183 *) Исправление: При использовании переменной $server_protocol в
6184 FastCGI-параметрах и запросе, длина которого была близка к значению
6185 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
6186 the request record is too big".
6187
6188 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
6189 nginx возвращал обычный ответ.
6190
6191
6192 Изменения в nginx 0.6.20 28.11.2007
6193
6194 *) Исправление: при использовании директивы proxy_pass c URI-частью в
6195 рабочем процессе мог произойти segmentation fault; ошибка появилась в
6196 0.6.19.
6197
6198
6199 Изменения в nginx 0.6.19 27.11.2007
6200
6201 *) Исправление: версия 0.6.18 не собиралась.
6202
6203
6204 Изменения в nginx 0.6.18 27.11.2007
6205
6206 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
6207 процесса добавляет микросекунды на время старта.
6208
6209 *) Изменение: в error_log теперь записывается полная строка запроса
6210 вместо только URI.
6211
6212 *) Добавление: директива proxy_pass поддерживает переменные.
6213
6214 *) Добавление: директивы resolver и resolver_timeout.
6215
6216 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
6217 заголовке ответа строку "Last-Modified".
6218
6219 *) Исправление: директива limit_rate не позволяла передавать на полной
6220 скорости, даже если был указан очень большой лимит.
6221
6222
6223 Изменения в nginx 0.6.17 15.11.2007
6224
6225 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
6226 Спасибо Александру Инюхину.
6227
6228 *) Исправление: при использовании директивы msie_refresh повторно
6229 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
6230
6231 *) Исправление: директива autoindex не работала при использовании "alias
6232 /".
6233
6234 *) Исправление: при использовании подзапросов в рабочем процессе мог
6235 произойти segmentation fault.
6236
6237 *) Исправление: при использовании SSL и gzip большие ответы могли
6238 передаваться не полностью.
6239
6240 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
6241 то переменная $status была равна 0.
6242
6243
6244 Изменения в nginx 0.6.16 29.10.2007
6245
6246 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
6247 Спасибо Илье Новикову.
6248
6249 *) Исправление: если в директиве error_page использовался символ "?", то
6250 он экранировался при проксировании запроса; ошибка появилась в
6251 0.6.11.
6252
6253 *) Исправление: совместимость с mget.
6254
6255
6256 Изменения в nginx 0.6.15 22.10.2007
6257
6258 *) Добавление: совместимость с Cygwin.
6259 Спасибо Владимиру Кутакову.
6260
6261 *) Добавление: директива merge_slashes.
6262
6263 *) Добавление: директива gzip_vary.
6264
6265 *) Добавление: директива server_tokens.
6266
6267 *) Исправление: nginx не раскодировал URI в команде SSI include.
6268
6269 *) Исправление: при использовании переменной в директивах charset или
6270 source_charset на старте или во время переконфигурации происходил
6271 segmentation fault,
6272
6273 *) Исправление: nginx возвращал ошибку 400 на запросы вида
6274 "GET http://www.domain.com HTTP/1.0".
6275 Спасибо James Oakley.
6276
6277 *) Исправление: после перенаправления запроса с телом запроса с помощью
6278 директивы error_page nginx пытался снова прочитать тело запроса;
6279 ошибка появилась в 0.6.7.
6280
6281 *) Исправление: в рабочем процессе происходил segmentation fault, если у
6282 сервера, обрабатывающему запрос, не был явно определён server_name;
6283 ошибка появилась в 0.6.7.
6284
6285
6286 Изменения в nginx 0.6.14 15.10.2007
6287
6288 *) Изменение: теперь по умолчанию команда SSI echo использует
6289 кодирование entity.
6290
6291 *) Добавление: параметр encoding в команде SSI echo.
6292
6293 *) Добавление: директиву access_log можно использовать внутри блока
6294 limit_except.
6295
6296 *) Исправление: если все сервера апстрима оказывались недоступными, то
6297 до восстановления работоспособности у всех серверов вес становился
6298 равным одному; ошибка появилась в 0.6.6.
6299
6300 *) Исправление: при использовании переменных $date_local и $date_gmt вне
6301 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
6302 segmentation fault.
6303
6304 *) Исправление: при использовании включённом отладочном логе в рабочем
6305 процессе мог произойти segmentation fault.
6306 Спасибо Андрею Нигматулину.
6307
6308 *) Исправление: ngx_http_memcached_module не устанавливал
6309 $upstream_response_time.
6310 Спасибо Максиму Дунину.
6311
6312 *) Исправление: рабочий процесс мог зациклиться при использовании
6313 memcached.
6314
6315 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
6316 строке "Connection" в заголовке запроса только, если они были в
6317 нижнем регистре; ошибка появилась в 0.6.11.
6318
6319 *) Исправление: sub_filter не работал с пустой строкой замены.
6320
6321 *) Исправление: в парсинге sub_filter.
6322
6323
6324 Изменения в nginx 0.6.13 24.09.2007
6325
6326 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
6327 использовался autoindex
6328 Спасибо Arkadiusz Patyk.
6329
6330
6331 Изменения в nginx 0.6.12 21.09.2007
6332
6333 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
6334 и smtp.
6335
6336 *) Добавление: параметры конфигурации --without-mail_pop3_module,
6337 --without-mail_imap_module и --without-mail_smtp_module.
6338
6339 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
6340 ngx_mail_smtp_module.
6341
6342 *) Исправление: wildcard в конце имени сервера не работали; ошибка
6343 появилась в 0.6.9.
6344
6345 *) Исправление: при использовании разделяемой библиотеки PCRE,
6346 расположенной в нестандартном месте, nginx не запускался на Solaris.
6347
6348 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
6349 скрывали строки заголовка ответа с именем больше 32 символов.
6350 Спасибо Manlio Perillo.
6351
6352
6353 Изменения в nginx 0.6.11 11.09.2007
6354
6355 *) Исправление: счётчик активных соединений всегда рос при использовании
6356 почтового прокси-сервера.
6357
6358 *) Исправление: если бэкенд возвращал только заголовок ответа при
6359 небуферизированном проксировании, то nginx закрывал соединение с
6360 бэкендом по таймауту.
6361
6362 *) Исправление: nginx не поддерживал несколько строк "Connection" в
6363 заголовке запроса.
6364
6365 *) Исправление: если в сервере апстрима был задан max_fails, то после
6366 первой же неудачной попытки вес сервера навсегда становился равным
6367 одному; ошибка появилась в 0.6.6.
6368
6369
6370 Изменения в nginx 0.6.10 03.09.2007
6371
6372 *) Добавление: директивы open_file_cache, open_file_cache_retest и
6373 open_file_cache_errors.
6374
6375 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
6376
6377 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
6378 методе $r->send_http_header(), не добавлялась кодировка, указанная в
6379 директиве charset.
6380
6381 *) Исправление: при использовании метода /dev/poll в рабочем процессе
6382 мог произойти segmentation fault.
6383
6384
6385 Изменения в nginx 0.6.9 28.08.2007
6386
6387 *) Исправление: рабочий процесс мог зациклиться при использовании
6388 протокола HTTPS; ошибка появилась в 0.6.7.
6389
6390 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
6391 не запускался при использовании wildcard в конце имени сервера.
6392
6393 *) Исправление: директива ip_hash могла неверно помечать сервера как
6394 нерабочие.
6395
6396 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
6397
6398
6399 Изменения в nginx 0.6.8 20.08.2007
6400
6401 *) Изменение: теперь nginx пытается установить директивы
6402 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
6403 worker_rlimit_sigpending без привилегий root'а.
6404
6405 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
6406 запроса серверу аутентификации почтового прокси-сервера.
6407
6408 *) Изменение: теперь nginx экранирует символ "%" в переменной
6409 $memcached_key.
6410
6411 *) Исправление: при указании относительного пути к конфигурационному
6412 файлу в качестве параметра ключа -c nginx определял путь относительно
6413 конфигурационного префикса; ошибка появилась в 0.6.6.
6414
6415 *) Исправление: nginx не работал на FreeBSD/sparc64.
6416
6417
6418 Изменения в nginx 0.6.7 15.08.2007
6419
6420 *) Изменение: теперь пути, указанные в директивах include,
6421 auth_basic_user_file, perl_modules, ssl_certificate,
6422 ssl_certificate_key и ssl_client_certificate, определяются
6423 относительно каталога конфигурационного файла nginx.conf, а не
6424 относительно префикса.
6425
6426 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
6427
6428 *) Изменение: для обновления на лету версий 0.1.x создан специальный
6429 сценарий make upgrade1.
6430
6431 *) Добавление: директивы server_name и valid_referers поддерживают
6432 регулярные выражения.
6433
6434 *) Добавление: директива server в блоке upstream поддерживает параметр
6435 backup.
6436
6437 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6438 $r->discard_request_body.
6439
6440 *) Добавление: директива "add_header Last-Modified ..." меняет строку
6441 "Last-Modified" в заголовке ответа.
6442
6443 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
6444 отличным от 200, и после этого запроса соединение переходило в
6445 состояние keep-alive, то на следующий запрос nginx возвращал 400.
6446
6447 *) Исправление: если в директиве auth_http был задан неправильный адрес,
6448 то в рабочем процессе происходил segmentation fault.
6449
6450 *) Исправление: теперь по умолчанию nginx использует значение 511 для
6451 listen backlog на всех платформах, кроме FreeBSD.
6452 Спасибо Jiang Hong.
6453
6454 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
6455 upstream был помечен как down; ошибка появилась в 0.6.6.
6456
6457 *) Исправление: sendfilev() в Solaris теперь не используется при
6458 передаче тела запроса FastCGI-серверу через unix domain сокет.
6459
6460
6461 Изменения в nginx 0.6.6 30.07.2007
6462
6463 *) Добавление: параметр --sysconfdir=PATH в configure.
6464
6465 *) Добавление: именованные location'ы.
6466
6467 *) Добавление: переменную $args можно устанавливать с помощью set.
6468
6469 *) Добавление: переменная $is_args.
6470
6471 *) Исправление: равномерное распределение запросов к апстримам с
6472 большими весами.
6473
6474 *) Исправление: если клиент в почтовом прокси-сервере закрывал
6475 соединение, то nginx мог не закрывать соединение с бэкендом.
6476
6477 *) Исправление: при использовании одного хоста в качестве бэкендов для
6478 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
6479 только один порт - 80 или 443.
6480
6481 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
6482 более ранними версиями; ошибка появилась в 0.6.4.
6483
6484
6485 Изменения в nginx 0.6.5 23.07.2007
6486
6487 *) Добавление: переменная $nginx_version.
6488 Спасибо Николаю Гречуху.
6489
6490 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
6491 IMAP.
6492 Спасибо Максиму Дунину.
6493
6494 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
6495 SMTP.
6496 Спасибо Максиму Дунину.
6497
6498 *) Исправление: теперь nginx экранирует пробел в переменной
6499 $memcached_key.
6500
6501 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
6502 Спасибо Jiang Hong.
6503
6504 *) Исправление: незначительных потенциальных ошибок.
6505 Спасибо Coverity's Scan.
6506
6507
6508 Изменения в nginx 0.6.4 17.07.2007
6509
6510 *) Безопасность: при использовании директивы msie_refresh был возможен
6511 XSS.
6512 Спасибо Максиму Богуку.
6513
6514 *) Изменение: директивы proxy_store и fastcgi_store изменены.
6515
6516 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
6517
6518 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6519 Studio.
6520 Спасибо Андрею Нигматулину.
6521
6522 *) Изменение: обход ошибки в Sun Studio 12.
6523 Спасибо Jiang Hong.
6524
6525
6526 Изменения в nginx 0.6.3 12.07.2007
6527
6528 *) Добавление: директивы proxy_store и fastcgi_store.
6529
6530 *) Исправление: при использовании директивы auth_http_header в рабочем
6531 процессе мог произойти segmentation fault.
6532 Спасибо Максиму Дунину.
6533
6534 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
6535 не был разрешён, то в рабочем процессе происходил segmentation fault.
6536
6537 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
6538 в рабочем процессе мог произойти segmentation fault.
6539
6540 *) Исправление: в рабочем процессе мог произойти segmentation fault,
6541 если использовался метод eventport.
6542
6543 *) Исправление: директивы proxy_ignore_client_abort и
6544 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
6545
6546
6547 Изменения в nginx 0.6.2 09.07.2007
6548
6549 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
6550 nginx передавал клиенту мусор в таких заголовках.
6551
6552
6553 Изменения в nginx 0.6.1 17.06.2007
6554
6555 *) Исправление: в парсинге SSI.
6556
6557 *) Исправление: при использовании удалённого подзапроса в SSI
6558 последующий подзапрос локального файла мог отдаваться клиенту в
6559 неверном порядке.
6560
6561 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
6562 передавались не полностью.
6563
6564 *) Исправление: значение perl'овой переменной $$ модуля
6565 ngx_http_perl_module было равно номеру главного процесса.
6566
6567
6568 Изменения в nginx 0.6.0 14.06.2007
6569
6570 *) Добавление: директивы "server_name", "map", and "valid_referers"
6571 поддерживают маски вида "www.example.*".
6572
6573
6574 Изменения в nginx 0.5.25 11.06.2007
6575
6576 *) Исправление: nginx не собирался с параметром
6577 --without-http_rewrite_module; ошибка появилась в 0.5.24.
6578
6579
6580 Изменения в nginx 0.5.24 06.06.2007
6581
6582 *) Безопасность: директива ssl_verify_client не работала, если запрос
6583 выполнялся по протоколу HTTP/0.9.
6584
6585 *) Исправление: при использовании сжатия часть ответа могла передаваться
6586 несжатой; ошибка появилась в 0.5.23.
6587
6588
6589 Изменения в nginx 0.5.23 04.06.2007
6590
6591 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
6592 Server Name Indication.
6593
6594 *) Добавление: директива fastcgi_catch_stderr.
6595 Спасибо Николаю Гречуху, проект OWOX.
6596
6597 *) Исправление: на Линуксе в основном процессе происходил segmentation
6598 fault, если два виртуальных сервера должны bind()ится к
6599 пересекающимся портам.
6600
6601 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6602 perl поддерживал потоки, то во время второй переконфигурации
6603 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
6604
6605 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6606
6607
6608 Изменения в nginx 0.5.22 29.05.2007
6609
6610 *) Исправление: большое тело запроса могло не передаваться бэкенду;
6611 ошибка появилась в 0.5.21.
6612
6613
6614 Изменения в nginx 0.5.21 28.05.2007
6615
6616 *) Исправление: если внутри сервера описано больше примерно десяти
6617 location'ов, то location'ы, заданные с помощью регулярного выражения,
6618 могли выполняться не в том, порядке, в каком они описаны.
6619
6620 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
6621 если 33-тий по счёту или последующий бэкенд упал.
6622 Спасибо Антону Поварову.
6623
6624 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
6625 произойти bus error.
6626 Спасибо Андрею Нигматулину.
6627
6628 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6629
6630
6631 Изменения в nginx 0.5.20 07.05.2007
6632
6633 *) Добавление: директива sendfile_max_chunk.
6634
6635 *) Добавление: переменные "$http_...", "$sent_http_..." и
6636 "$upstream_http_..." можно менять директивой set.
6637
6638 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
6639 рабочем процессе мог произойти segmentation fault.
6640
6641 *) Исправление: завершающая строка multipart range ответа передавалась
6642 неверно.
6643 Спасибо Evan Miller.
6644
6645 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6646 Studio.
6647 Спасибо Андрею Нигматулину.
6648
6649 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
6650 Спасибо Андрею Нигматулину.
6651
6652
6653 Изменения в nginx 0.5.19 24.04.2007
6654
6655 *) Изменение: значение переменной $request_time теперь записывается с
6656 точностью до миллисекунд.
6657
6658 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
6659 переименован в $r->flush.
6660
6661 *) Добавление: переменная $upstream_addr.
6662
6663 *) Добавление: директивы proxy_headers_hash_max_size и
6664 proxy_headers_hash_bucket_size.
6665 Спасибо Володымыру Костырко.
6666
6667 *) Исправление: при использовании sendfile и limit_rate на 64-битных
6668 платформах нельзя было передавать файлы больше 2G.
6669
6670 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
6671 было передавать файлы больше 2G.
6672
6673
6674 Изменения в nginx 0.5.18 19.04.2007
6675
6676 *) Добавление: модуль ngx_http_sub_filter_module.
6677
6678 *) Добавление: переменные "$upstream_http_...".
6679
6680 *) Добавление: теперь переменные $upstream_status и
6681 $upstream_response_time содержат данные о всех обращениях к
6682 апстримам, сделанным до X-Accel-Redirect.
6683
6684 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6685 perl не поддерживал multiplicity, то после первой переконфигурации и
6686 после получения любого сигнала в основном процессе происходил
6687 segmentation fault; ошибка появилась в 0.5.9.
6688
6689 *) Исправление: если perl не поддерживал multiplicity, то после
6690 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
6691
6692
6693 Изменения в nginx 0.5.17 02.04.2007
6694
6695 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
6696
6697 *) Добавление: теперь nginx поддерживает директиву include внутри блока
6698 types.
6699
6700 *) Исправление: использование переменной $document_root в директиве root
6701 и alias запрещено: оно вызывало рекурсивное переполнение стека.
6702
6703 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6704
6705 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
6706 $uri) возвращали старое закэшированное значение.
6707
6708
6709 Изменения в nginx 0.5.16 26.03.2007
6710
6711 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
6712 использовалась сеть класса С.
6713 Спасибо Павлу Ярковому.
6714
6715 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
6716 был указан charset и строка завершалась символом ";", то в рабочем
6717 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
6718
6719 *) Исправление: ошибки "[alert] zero size buf" при работе с
6720 FastCGI-сервером, если тело запроса, записанное во временный файл,
6721 было кратно 32K.
6722
6723 *) Исправление: nginx не собирался на Solaris без параметра
6724 --with-debug; ошибка появилась в 0.5.15.
6725
6726
6727 Изменения в nginx 0.5.15 19.03.2007
6728
6729 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
6730 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и
6731 xclient.
6732 Спасибо Антону Южанинову и Максиму Дунину.
6733
6734 *) Добавление: теперь keep-alive соединения закрываются сразу же по
6735 получении сигнала переконфигурации.
6736
6737 *) Изменение: директивы imap и auth переименованы соответственно в mail
6738 и pop3_auth.
6739
6740 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
6741 был разрешён метод APOP, то в рабочем процессе происходил
6742 segmentation fault.
6743
6744 *) Исправление: при использовании директивы starttls only в протоколе
6745 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
6746
6747 *) Исправление: рабочие процессы не выходили после переконфигурации и не
6748 переоткрывали логи, если использовался метод eventport.
6749
6750 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
6751 зациклиться.
6752
6753 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
6754 используются методы eventport или /dev/poll.
6755
6756
6757 Изменения в nginx 0.5.14 23.02.2007
6758
6759 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
6760 конфигурационного файла.
6761
6762
6763 Изменения в nginx 0.5.13 19.02.2007
6764
6765 *) Добавление: методы COPY и MOVE.
6766
6767 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
6768 запросов, переданных по keep-alive соединению.
6769
6770 *) Исправление: nginx не работал на 64-битном big-endian Linux.
6771 Спасибо Андрею Нигматулину.
6772
6773 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
6774 теперь сразу закрывает соединение, а не по таймауту.
6775
6776 *) Исправление: если при использовании метода epoll клиент закрывал
6777 преждевременно соединение со своей стороны, то nginx закрывал это
6778 соединение только по истечении таймаута на передачу.
6779
6780 *) Исправление: nginx не собирался на платформах, отличных от i386,
6781 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6782
6783
6784 Изменения в nginx 0.5.12 12.02.2007
6785
6786 *) Исправление: nginx не собирался на платформах, отличных от i386,
6787 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6788
6789 *) Исправление: при использовании временных файлов в время работы с
6790 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
6791 ошибка появилась в 0.5.8.
6792
6793 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
6794 то в рабочем процессе мог произойти segmentation fault.
6795
6796 *) Исправление: ngx_http_perl_module не собирался на Solaris.
6797
6798
6799 Изменения в nginx 0.5.11 05.02.2007
6800
6801 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
6802 Спасибо Chris McGrath.
6803
6804 *) Исправление: ответ был неверным, если запрашивалось несколько
6805 диапазонов; ошибка появилась в 0.5.6.
6806
6807 *) Исправление: директива create_full_put_path не могла создавать
6808 промежуточные каталоги, если не была установлена директива
6809 dav_access.
6810 Спасибо Evan Miller.
6811
6812 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
6813 записываться код "0".
6814
6815 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6816 произойти segmentation fault.
6817
6818
6819 Изменения в nginx 0.5.10 26.01.2007
6820
6821 *) Исправление: во время обновления исполняемого файла новый процесс не
6822 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
6823
6824 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6825 произойти segmentation fault; ошибка появилась в 0.5.1.
6826
6827
6828 Изменения в nginx 0.5.9 25.01.2007
6829
6830 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
6831 использует значение переменной $memcached_key.
6832
6833 *) Добавление: переменная $memcached_key.
6834
6835 *) Добавление: параметр clean в директиве client_body_in_file_only.
6836
6837 *) Добавление: директива env.
6838
6839 *) Добавление: директива sendfile работает внутри блока if.
6840
6841 *) Добавление: теперь при ошибке записи в access_log nginx записывает
6842 сообщение в error_log, но не чаще одного раза в минуту.
6843
6844 *) Исправление: директива "access_log off" не всегда запрещала запись в
6845 лог.
6846
6847
6848 Изменения в nginx 0.5.8 19.01.2007
6849
6850 *) Исправление: если использовалась директива
6851 "client_body_in_file_only on" и тело запроса было небольшое, то мог
6852 произойти segmentation fault.
6853
6854 *) Исправление: происходил segmentation fault, если использовались
6855 директивы "client_body_in_file_only on" и
6856 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
6857 делался переход к следующему бэкенду.
6858
6859 *) Исправление: если при использовании директивы "proxy_buffering off"
6860 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
6861 заданному директивой send_timeout; ошибка появилась в 0.4.7.
6862
6863 *) Исправление: если при использовании метода epoll клиент закрывал
6864 преждевременно соединение со своей стороны, то nginx закрывал это
6865 соединение только по истечении таймаута на передачу.
6866
6867 *) Исправление: ошибки "[alert] zero size buf" при работе с
6868 FastCGI-сервером.
6869
6870 *) Исправление ошибок в директиве limit_zone.
6871
6872
6873 Изменения в nginx 0.5.7 15.01.2007
6874
6875 *) Добавление: оптимизация использования памяти в ssl_session_cache.
6876
6877 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
6878
6879 *) Исправление: на старте или во время переконфигурации происходил
6880 segmentation fault, если директивы ssl_session_cache или limit_zone
6881 использовались на 64-битных платформах.
6882
6883 *) Исправление: при использовании директив add_before_body или
6884 add_after_body происходил segmentation fault, если в заголовке ответа
6885 нет строки "Content-Type".
6886
6887 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
6888 потоков.
6889 Спасибо Дену Иванову.
6890
6891 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
6892
6893
6894 Изменения в nginx 0.5.6 09.01.2007
6895
6896 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
6897 кроме GET, HEAD и POST.
6898
6899 *) Добавление: модуль ngx_http_limit_zone_module.
6900
6901 *) Добавление: переменная $binary_remote_addr.
6902
6903 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
6904 ngx_imap_ssl_module.
6905
6906 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
6907
6908 *) Исправление: при использовании $r->sendfile() byte-ranges
6909 передавались неверно.
6910
6911
6912 Изменения в nginx 0.5.5 24.12.2006
6913
6914 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
6915
6916 *) Добавление: ключ -V.
6917
6918 *) Добавление: директива worker_rlimit_core поддерживает указание
6919 размера в K, M и G.
6920
6921 *) Исправление: модуль nginx.pm теперь может устанавливаться
6922 непривилегированным пользователем.
6923
6924 *) Исправление: при использовании методов $r->request_body или
6925 $r->request_body_file мог произойти segmentation fault.
6926
6927 *) Исправление: ошибок, специфичных для платформы ppc.
6928
6929
6930 Изменения в nginx 0.5.4 15.12.2006
6931
6932 *) Добавление: директиву perl можно использовать внутри блока
6933 limit_except.
6934
6935 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
6936 заголовке запроса для метода DELETE.
6937
6938 *) Исправление: при использовании одного параметра в директиве
6939 dav_access nginx мог сообщить об ошибке в конфигурации.
6940
6941 *) Исправление: при использовании переменной $host мог произойти
6942 segmentation fault; ошибка появилась в 0.4.14.
6943
6944
6945 Изменения в nginx 0.5.3 13.12.2006
6946
6947 *) Добавление: модуль ngx_http_perl_module поддерживает методы
6948 $r->status, $r->log_error и $r->sleep.
6949
6950 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
6951 конфигурации nginx'а.
6952
6953 *) Исправление: метод $r->has_request_body не работал.
6954
6955
6956 Изменения в nginx 0.5.2 11.12.2006
6957
6958 *) Исправление: если в директивах proxy_pass использовалось имя,
6959 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
6960 ошибка появилась в 0.5.1.
6961
6962
6963 Изменения в nginx 0.5.1 11.12.2006
6964
6965 *) Исправление: директива post_action могла не работать после неудачного
6966 завершения запроса.
6967
6968 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
6969 Спасибо Bron Gondwana.
6970
6971 *) Исправление: при указании в директиве fastcgi_pass имени описанного
6972 upstream'а выдавалось сообщение "no port in upstream"; ошибка
6973 появилась в 0.5.0.
6974
6975 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6976 использовались одинаковых имена серверов, но с разными портами, то
6977 эти директивы использовали первый описанный порт; ошибка появилась в
6978 0.5.0.
6979
6980 *) Исправление: если в директивах proxy_pass и fastcgi_pass
6981 использовались unix domain сокеты, то эти директивы использовали
6982 первый описанный сокет; ошибка появилась в 0.5.0.
6983
6984 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
6985 если он был указан в последней строке файла паролей и после пароля не
6986 было перевода строки, возврата каретки или символа ":".
6987
6988 *) Исправление: переменная $upstream_response_time могла быть равна
6989 "0.000", хотя время обработки было больше 1 миллисекунды.
6990
6991
6992 Изменения в nginx 0.5.0 04.12.2006
6993
6994 *) Изменение: параметры в виде "%name" в директиве log_format больше не
6995 поддерживаются.
6996
6997 *) Изменение: директивы proxy_upstream_max_fails,
6998 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
6999 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
7000 memcached_upstream_fail_timeout больше не поддерживаются.
7001
7002 *) Добавление: директива server в блоке upstream поддерживает параметры
7003 max_fails, fail_timeout и down.
7004
7005 *) Добавление: директива ip_hash в блоке upstream.
7006
7007 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа
7008 сервера аутентификации IMAP/POP3 прокси.
7009
7010 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
7011 появилась в 0.4.14.
7012
7013
7014 Изменения в nginx 0.4.14 27.11.2006
7015
7016 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
7017
7018 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
7019 Linux и NetBSD.
7020
7021 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
7022 поддержкой потоков; ошибка появилась в 0.3.38.
7023
7024 *) Исправление: ngx_http_perl_module не работал корректно, если перл
7025 вызывался рекурсивно.
7026
7027 *) Исправление: nginx игнорировал имя сервера в строке запроса.
7028
7029 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
7030 процесс мог зациклиться.
7031
7032 *) Исправление: при изменении системного времени переменная
7033 $upstream_response_time могла быть отрицательной.
7034
7035 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
7036 прокси не передавался параметр Auth-Login-Attempt.
7037
7038 *) Исправление: при ошибке соединения с сервером аутентификации
7039 IMAP/POP3 прокси мог произойти segmentation fault.
7040
7041
7042 Изменения в nginx 0.4.13 15.11.2006
7043
7044 *) Добавление: директиву proxy_pass можно использовать внутри блока
7045 limit_except.
7046
7047 *) Добавление: директива limit_except поддерживает все WebDAV методы.
7048
7049 *) Исправление: при использовании директивы add_before_body без
7050 директивы add_after_body ответ передавался не полностью.
7051
7052 *) Исправление: большое тело запроса не принималось, если использовались
7053 метод epoll и deferred accept().
7054
7055 *) Исправление: для ответов модуля ngx_http_autoindex_module не
7056 выставлялась кодировка; ошибка появилась в 0.3.50.
7057
7058 *) Исправление: ошибки "[alert] zero size buf" при работе с
7059 FastCGI-сервером;
7060
7061 *) Исправление: параметр конфигурации --group= игнорировался.
7062 Спасибо Thomas Moschny.
7063
7064 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
7065 в 0.3.50.
7066
7067
7068 Изменения в nginx 0.4.12 31.10.2006
7069
7070 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7071 $r->variable.
7072
7073 *) Исправление: при включении в ответ большого статического файла с
7074 помощью SSI ответ мог передаваться не полностью.
7075
7076 *) Исправление: nginx не убирал "#fragment" в URI.
7077
7078
7079 Изменения в nginx 0.4.11 25.10.2006
7080
7081 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
7082
7083 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7084 $r->allow_ranges.
7085
7086 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
7087 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
7088
7089
7090 Изменения в nginx 0.4.10 23.10.2006
7091
7092 *) Добавление: POP3 прокси поддерживает APOP.
7093
7094 *) Исправление: при использовании методов select, poll и /dev/poll во
7095 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
7096 нагружал процессор.
7097
7098 *) Исправление: при использовании переменной $server_addr в директиве
7099 map мог произойти segmentation fault.
7100
7101 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
7102 для полных ответов; ошибка появилась в 0.4.7.
7103
7104 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
7105 0.4.9.
7106
7107
7108 Изменения в nginx 0.4.9 13.10.2006
7109
7110 *) Добавление: параметр set в команде SSI include.
7111
7112 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
7113 модуля nginx.pm.
7114
7115
7116 Изменения в nginx 0.4.8 11.10.2006
7117
7118 *) Исправление: если до команды SSI include с параметром wait
7119 выполнялась ещё одна команда SSI include, то параметр wait мог не
7120 работать.
7121
7122 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
7123 полных ответов.
7124 Спасибо Алексею Ковырину.
7125
7126
7127 Изменения в nginx 0.4.7 10.10.2006
7128
7129 *) Добавление: модуль ngx_http_flv_module.
7130
7131 *) Добавление: переменная $request_body_file.
7132
7133 *) Добавление: директивы charset и source_charset поддерживают
7134 переменные.
7135
7136 *) Исправление: если до команды SSI include с параметром wait
7137 выполнялась ещё одна команда SSI include, то параметр wait мог не
7138 работать.
7139
7140 *) Исправление: при использовании директивы "proxy_buffering off" или
7141 при работе с memcached соединения могли не закрываться по таймауту.
7142
7143 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
7144 amd64, sparc64 и ppc64.
7145
7146
7147 Изменения в nginx 0.4.6 06.10.2006
7148
7149 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
7150 amd64, sparc64 и ppc64.
7151
7152 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
7153 chunk'ами, если длина ответа в методе
7154 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
7155
7156 *) Исправление: после перенаправления ошибки с помощью директивы
7157 error_page любая директива модуля ngx_http_rewrite_module возвращала
7158 эту ошибку; ошибка появилась в 0.4.4.
7159
7160
7161 Изменения в nginx 0.4.5 02.10.2006
7162
7163 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
7164 в 0.4.4.
7165
7166
7167 Изменения в nginx 0.4.4 02.10.2006
7168
7169 *) Добавление: переменная $scheme.
7170
7171 *) Добавление: директива expires поддерживает параметр max.
7172
7173 *) Добавление: директива include поддерживает маску "*".
7174 Спасибо Jonathan Dance.
7175
7176 *) Исправление: директива return всегда изменяла код ответа,
7177 перенаправленного директивой error_page.
7178
7179 *) Исправление: происходил segmentation fault, если в методе PUT
7180 передавалось тело нулевой длины.
7181
7182 *) Исправление: при использовании переменных в директиве proxy_redirect
7183 редирект изменялся неверно.
7184
7185
7186 Изменения в nginx 0.4.3 26.09.2006
7187
7188 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
7189 error_page.
7190
7191 *) Добавление: поддержка Solaris 10 event ports.
7192
7193 *) Добавление: модуль ngx_http_browser_module.
7194
7195 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
7196 помощью директивы error_page мог произойти segmentation fault.
7197
7198 *) Исправление: происходил segmentation fault, если в директиве
7199 proxy_pass использовался unix domain сокет; ошибка появилась в
7200 0.3.47.
7201
7202 *) Исправление: SSI не работал с ответами memcached и
7203 небуферизированными проксированными ответами.
7204
7205 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
7206
7207
7208 Изменения в nginx 0.4.2 14.09.2006
7209
7210 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
7211 появилась в 0.4.1.
7212
7213
7214 Изменения в nginx 0.4.1 14.09.2006
7215
7216 *) Исправление: совместимость с DragonFlyBSD.
7217 Спасибо Павлу Назарову.
7218
7219 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
7220 файлов больше 2G.
7221
7222 *) Добавление: теперь на Linux nginx для статических запросов использует
7223 флаг O_NOATIME.
7224 Спасибо Yusuf Goolamabbas.
7225
7226
7227 Изменения в nginx 0.4.0 30.08.2006
7228
7229 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
7230 фазы init module в фазу HTTP postconfiguration.
7231
7232 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
7233 считывается заранее: нужно явно инициировать чтение с помощью метода
7234 $r->has_request_body.
7235
7236 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
7237 DECLINED.
7238
7239 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
7240 заголовка "Date" для метода PUT.
7241
7242 *) Добавление: директива ssi работает внутри блока if.
7243
7244 *) Исправление: происходил segmentation fault, если в директиве index
7245 использовалась переменные и при этом первое имя индексного файла было
7246 без переменных; ошибка появилась в 0.1.29.
7247
7248
7249 Изменения в nginx 0.3.61 28.08.2006
7250
7251 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
7252
7253 *) Добавление: директива msie_refresh.
7254
7255 *) Добавление: директива recursive_error_pages.
7256
7257 *) Исправление: директива rewrite возвращала неправильный редирект, если
7258 редирект включал в себя выделенные закодированные символы из
7259 оригинального URI.
7260
7261
7262 Изменения в nginx 0.3.60 18.08.2006
7263
7264 *) Исправление: во время перенаправления ошибки рабочий процесс мог
7265 зациклиться; ошибка появилась в 0.3.59.
7266
7267
7268 Изменения в nginx 0.3.59 16.08.2006
7269
7270 *) Добавление: теперь можно делать несколько перенаправлений через
7271 директиву error_page.
7272
7273 *) Исправление: директива dav_access не поддерживала три параметра.
7274
7275 *) Исправление: директива error_page не изменяла строку "Content-Type"
7276 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
7277 в 0.3.58.
7278
7279
7280 Изменения в nginx 0.3.58 14.08.2006
7281
7282 *) Добавление: директива error_page поддерживает переменные.
7283
7284 *) Изменение: теперь на Linux используется интерфейс procfs вместо
7285 sysctl.
7286
7287 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
7288 "Content-Type" наследуется из первоначального ответа.
7289
7290 *) Исправление: директива error_page не перенаправляла ошибку 413.
7291
7292 *) Исправление: завершающий "?" не удалял старые аргументы, если в
7293 переписанном URI не было новых аргументов.
7294
7295 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
7296
7297
7298 Изменения в nginx 0.3.57 09.08.2006
7299
7300 *) Добавление: переменная $ssl_client_serial.
7301
7302 *) Исправление: в операторе "!-e" в директиве if.
7303 Спасибо Андриану Буданцову.
7304
7305 *) Исправление: при проверке клиентского сертификата nginx не передавал
7306 клиенту информацию о требуемых сертификатах.
7307
7308 *) Исправление: переменная $document_root не поддерживала переменные в
7309 директиве root.
7310
7311
7312 Изменения в nginx 0.3.56 04.08.2006
7313
7314 *) Добавление: директива dav_access.
7315
7316 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
7317 "!-e", "-x" и "!-x".
7318
7319 *) Исправление: при записи в access_log некоторых передаваемых клиенту
7320 строк заголовков происходил segmentation fault, если запрос возвращал
7321 редирект.
7322
7323
7324 Изменения в nginx 0.3.55 28.07.2006
7325
7326 *) Добавление: параметр stub в команде SSI include.
7327
7328 *) Добавление: команда SSI block.
7329
7330 *) Добавление: скрипт unicode2nginx добавлен в contrib.
7331
7332 *) Исправление: если root был задан только переменной, то корень
7333 задавался относительно префикса сервера.
7334
7335 *) Исправление: если в запросе был "//" или "/.", и после этого
7336 закодированные символы в виде "%XX", то проксируемый запрос
7337 передавался незакодированным.
7338
7339 *) Исправление: метод $r->header_in("Cookie") модуля
7340 ngx_http_perl_module теперь возвращает все строки "Cookie" в
7341 заголовке запроса.
7342
7343 *) Исправление: происходил segmentation fault, если использовался
7344 "client_body_in_file_only on" и делался переход к следующему бэкенду.
7345
7346 *) Исправление: при некоторых условиях во время переконфигурации коды
7347 символов внутри директивы charset_map могли считаться неверными;
7348 ошибка появилась в 0.3.50.
7349
7350
7351 Изменения в nginx 0.3.54 11.07.2006
7352
7353 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
7354
7355 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
7356 memcached_next_upstream поддерживают параметр off.
7357
7358 *) Добавление: директива debug_connection поддерживает запись адресов в
7359 формате CIDR.
7360
7361 *) Исправление: при перекодировании ответа проксированного сервера или
7362 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
7363 полностью.
7364
7365 *) Исправление: переменная $upstream_response_time содержала время
7366 только первого обращения к бэкенду.
7367
7368 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
7369 в 0.3.53.
7370
7371
7372 Изменения в nginx 0.3.53 07.07.2006
7373
7374 *) Изменение: директива add_header добавляет строки в ответы с кодом
7375 204, 301 и 302.
7376
7377 *) Добавление: директива server в блоке upstream поддерживает параметр
7378 weight.
7379
7380 *) Добавление: директива server_name поддерживает маску "*".
7381
7382 *) Добавление: nginx поддерживает тело запроса больше 2G.
7383
7384 *) Исправление: если при использовании "satisfy_any on" клиент успешно
7385 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
7386 forbidden by rule".
7387
7388 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
7389 409.
7390
7391 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
7392 ошибку, nginx продолжал проксирование.
7393
7394
7395 Изменения в nginx 0.3.52 03.07.2006
7396
7397 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
7398 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
7399 ошибку 405.
7400
7401 *) Исправление: при использовании ограничения скорости рабочий процесс
7402 мог зациклиться; ошибка появилась в 0.3.37.
7403
7404 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
7405 "unknown charset", даже если перекодировка не требовалась; ошибка
7406 появилась в 0.3.50.
7407
7408 *) Исправление: если в результате запроса PUT возвращался код 409, то
7409 временный файл не удалялся.
7410
7411
7412 Изменения в nginx 0.3.51 30.06.2006
7413
7414 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
7415 ошибка появилась в 0.3.50.
7416
7417
7418 Изменения в nginx 0.3.50 28.06.2006
7419
7420 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
7421 переименованы соответственно в proxy_intercept_errors и
7422 fastcgi_intercept_errors.
7423
7424 *) Добавление: модуль ngx_http_charset_module поддерживает
7425 перекодирование из однобайтных кодировок в UTF-8 и обратно.
7426
7427 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7428 "X-Accel-Charset" в ответе бэкенда.
7429
7430 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
7431 только если также использовался символ "$".
7432
7433 *) Исправление: при некоторых условиях в SSI после вставки могла быть
7434 добавлена строка "<!--".
7435
7436 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
7437 то при использовании небуферизированного проксировании не закрывалось
7438 соединение с клиентом.
7439
7440
7441 Изменения в nginx 0.3.49 31.05.2006
7442
7443 *) Исправление: в директиве set.
7444
7445 *) Исправление: при включении в ssi двух и более подзапросов,
7446 обрабатываемых через FastCGI, вместо вывода второго и остальных
7447 подзапросов в ответ включался вывод первого подзапроса.
7448
7449
7450 Изменения в nginx 0.3.48 29.05.2006
7451
7452 *) Изменение: теперь модуль ngx_http_charset_module работает для
7453 подзапросов, в ответах которых нет строки заголовка "Content-Type".
7454
7455 *) Исправление: если в директиве proxy_pass не было URI, то директива
7456 "proxy_redirect default" добавляла в переписанный редирект в начало
7457 лишний слэш.
7458
7459 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
7460 GET, теперь это делается только для редиректов, выполняемых с помощью
7461 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
7462 0.3.42.
7463
7464 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
7465 с поддержкой потоков; ошибка появилась в 0.3.46.
7466
7467
7468 Изменения в nginx 0.3.47 23.05.2006
7469
7470 *) Добавление: директива upstream.
7471
7472 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
7473 всегда убирается.
7474
7475
7476 Изменения в nginx 0.3.46 11.05.2006
7477
7478 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
7479 fastcgi_hide_header и fastcgi_pass_header.
7480
7481 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
7482 proxy_pass_server упразднены.
7483
7484 *) Добавление: в режиме прокси поддерживается строка заголовка
7485 "X-Accel-Buffering" в ответе бэкенда.
7486
7487 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
7488 ngx_http_perl_module.
7489
7490
7491 Изменения в nginx 0.3.45 06.05.2006
7492
7493 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
7494 ssl_client_certificate.
7495
7496 *) Изменение: теперь переменная $request_method возвращает метод только
7497 основного запроса.
7498
7499 *) Изменение: в таблице перекодировки koi-win изменены коды символа
7500 &deg;.
7501
7502 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
7503 номера.
7504
7505 *) Исправление: если nginx распределял запросы на несколько машин, то
7506 при падении одной из них запросы, предназначенные для этой машины,
7507 перенаправлялись только на одну машину вместо того, чтобы равномерно
7508 распределяться между остальными.
7509
7510
7511 Изменения в nginx 0.3.44 04.05.2006
7512
7513 *) Добавление: параметр wait в команде SSI include.
7514
7515 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
7516 белорусские символы.
7517
7518 *) Исправление: в SSI.
7519
7520
7521 Изменения в nginx 0.3.43 26.04.2006
7522
7523 *) Исправление: в SSI.
7524
7525
7526 Изменения в nginx 0.3.42 26.04.2006
7527
7528 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
7529
7530 *) Исправление: ошибки при использовании в директиве rewrite одного и
7531 того же выделения более одного раза.
7532
7533 *) Исправление: в лог не записывались переменные
7534 $sent_http_content_type, $sent_http_content_length,
7535 $sent_http_last_modified, $sent_http_connection,
7536 $sent_http_keep_alive и $sent_http_transfer_encoding.
7537
7538 *) Исправление: переменная $sent_http_cache_control возвращала
7539 содержимое только одной строки "Cache-Control" в заголовке ответа.
7540
7541
7542 Изменения в nginx 0.3.41 21.04.2006
7543
7544 *) Добавление: ключ -v.
7545
7546 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
7547 segmentation fault.
7548
7549 *) Исправление: в обработке FastCGI.
7550
7551 *) Исправление: если путь к перловым модулям не был указан с помощью
7552 --with-perl_modules_path=PATH или директивы perl_modules, то на
7553 старте происходил segmentation fault.
7554
7555
7556 Изменения в nginx 0.3.40 19.04.2006
7557
7558 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
7559
7560 *) Добавление: директива create_full_put_path.
7561
7562 *) Добавление: переменная $limit_rate.
7563
7564
7565 Изменения в nginx 0.3.39 17.04.2006
7566
7567 *) Добавление: директива uninitialized_variable_warn; уровень
7568 логгирования сообщения о неинициализированной переменной понижен с
7569 уровня alert на warn.
7570
7571 *) Добавление: директива override_charset.
7572
7573 *) Изменение: при использовании неизвестной переменной в SSI-командах
7574 echo и if expr='$name' теперь не записывается в лог сообщение о
7575 неизвестной переменной.
7576
7577 *) Исправление: счётчик активных соединений рос при превышении лимита
7578 соединений, заданного директивой worker_connections; ошибка появилась
7579 в 0.2.0.
7580
7581 *) Исправление: при некоторых условия ограничение скорости соединения
7582 могло не работать; ошибка появилась в 0.3.38.
7583
7584
7585 Изменения в nginx 0.3.38 14.04.2006
7586
7587 *) Добавление: модуль ngx_http_dav_module.
7588
7589 *) Изменение: оптимизация модуля ngx_http_perl_module.
7590 Спасибо Сергею Скворцову.
7591
7592 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7593 $r->request_body_file.
7594
7595 *) Добавление: директива client_body_in_file_only.
7596
7597 *) Изменение: теперь при переполнении диска nginx пытается писать
7598 access_log'и только раз в секунду.
7599 Спасибо Антону Южанинову и Максиму Дунину.
7600
7601 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
7602 при значениях больше 100 Kbyte/s.
7603 Спасибо ForJest.
7604
7605 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
7606 символы "\r" и "\n" в логине и пароле в закодированном виде.
7607 Спасибо Максиму Дунину.
7608
7609
7610 Изменения в nginx 0.3.37 07.04.2006
7611
7612 *) Добавление: директива limit_except.
7613
7614 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
7615 "!-f".
7616
7617 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7618 $r->request_body.
7619
7620 *) Исправление: в модуле ngx_http_addition_filter_module.
7621
7622
7623 Изменения в nginx 0.3.36 05.04.2006
7624
7625 *) Добавление: модуль ngx_http_addition_filter_module.
7626
7627 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
7628 внутри блока if.
7629
7630 *) Добавление: директивы proxy_ignore_client_abort и
7631 fastcgi_ignore_client_abort.
7632
7633 *) Добавление: переменная $request_completion.
7634
7635 *) Добавление: модуль ngx_http_perl_module поддерживает методы
7636 $r->request_method и $r->remote_addr.
7637
7638 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
7639
7640 *) Исправление: строка "\/" в начале выражения команды if модуля
7641 ngx_http_ssi_module воспринималась неверно.
7642
7643 *) Исправление: в использовании регулярных выражениях в команде if
7644 модуля ngx_http_ssi_module.
7645
7646 *) Исправление: при задании относительного пути в директивах
7647 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
7648 perl_modules использовался каталог относительно текущего каталога, а
7649 не относительно префикса сервера.
7650
7651
7652 Изменения в nginx 0.3.35 22.03.2006
7653
7654 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
7655 для первой директивы listen; ошибка появилась в 0.3.31.
7656
7657 *) Исправление: в директиве proxy_pass без URI при использовании в
7658 подзапросе.
7659
7660
7661 Изменения в nginx 0.3.34 21.03.2006
7662
7663 *) Добавление: директива add_header поддерживает переменные.
7664
7665
7666 Изменения в nginx 0.3.33 15.03.2006
7667
7668 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
7669 fastcgi_next_upstream.
7670
7671 *) Исправление: ngx_http_perl_module не работал со встроенным в
7672 конфигурационный файл кодом, если он не начинался сразу же с "sub".
7673
7674 *) Исправление: в директиве post_action.
7675
7676
7677 Изменения в nginx 0.3.32 11.03.2006
7678
7679 *) Исправление: удаление отладочного логгирования на старте и при
7680 переконфигурации; ошибка появилась в 0.3.31.
7681
7682
7683 Изменения в nginx 0.3.31 10.03.2006
7684
7685 *) Изменение: теперь nginx передаёт неверные ответы проксированного
7686 бэкенда.
7687
7688 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
7689
7690 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
7691
7692 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
7693 64-битном ядре MacOSX.
7694 Спасибо Андрею Нигматулину.
7695
7696 *) Исправление: если внутри одного сервера описаны несколько директив
7697 listen, слушающих на разных адресах, то имена серверов вида
7698 "*.domain.tld" работали только для первого адреса; ошибка появилась в
7699 0.3.18.
7700
7701 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7702 не передавались запросы с телом, записанным во временный файл.
7703
7704 *) Исправление: совместимость с perl 5.8.8.
7705
7706
7707 Изменения в nginx 0.3.30 22.02.2006
7708
7709 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
7710 с уровня crit.
7711
7712 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
7713 ngx_http_ssi_filter_module.
7714
7715 *) Исправление: nginx не собирался на i386 платформе, если использовался
7716 PIC; ошибка появилась в 0.3.27.
7717
7718
7719 Изменения в nginx 0.3.29 20.02.2006
7720
7721 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
7722 FastCGI передаёт большое количество предупреждений перед ответом.
7723
7724 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
7725 строка заголовка "Transfer-Encoding: chunked".
7726
7727 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
7728 передавал полные строки заголовка ответа в отдельных FastCGI записях.
7729
7730 *) Исправление: если в директиве post_action был указан проксируемый
7731 URI, то он выполнялся только после успешного завершения запроса.
7732
7733
7734 Изменения в nginx 0.3.28 16.02.2006
7735
7736 *) Добавление: директива restrict_host_names упразднена.
7737
7738 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
7739
7740 *) Исправление: при некоторых условиях проксированное соединение с
7741 клиентом завершалось преждевременно.
7742 Спасибо Владимиру Шутову.
7743
7744 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
7745 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
7746
7747 *) Исправление: директива post_action работала только после успешного
7748 завершения запроса.
7749
7750 *) Исправление: тело проксированного ответа, создаваемого директивой
7751 post_action, передавалось клиенту.
7752
7753
7754 Изменения в nginx 0.3.27 08.02.2006
7755
7756 *) Изменение: директивы variables_hash_max_size и
7757 variables_hash_bucket_size.
7758
7759 *) Добавление: переменная $body_bytes_sent доступна не только в
7760 директиве log_format.
7761
7762 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
7763
7764 *) Добавление: определение размера строки кэша распространённых
7765 процессоров при старте.
7766
7767 *) Добавление: директива accept_mutex теперь поддерживается посредством
7768 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
7769
7770 *) Добавление: директива lock_file и параметр автоконфигурации
7771 --with-lock-path=PATH.
7772
7773 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7774 не передавались запросы с телом.
7775
7776
7777 Изменения в nginx 0.3.26 03.02.2006
7778
7779 *) Изменение: директива optimize_host_names переименована в
7780 optimize_server_names.
7781
7782 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
7783 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
7784
7785
7786 Изменения в nginx 0.3.25 01.02.2006
7787
7788 *) Исправление: при неверной конфигурации на старте или во время
7789 переконфигурации происходил segmentation fault; ошибка появилась в
7790 0.3.24.
7791
7792
7793 Изменения в nginx 0.3.24 01.02.2006
7794
7795 *) Изменение: обход ошибки в kqueue во FreeBSD.
7796
7797 *) Исправление: ответ, создаваемый директивой post_action, теперь не
7798 передаётся клиенту.
7799
7800 *) Исправление: при использовании большого количества лог-файлов
7801 происходила утечка памяти.
7802
7803 *) Исправление: внутри одного location работала только первая директива
7804 proxy_redirect.
7805
7806 *) Исправление: на 64-битных платформах при старте мог произойти
7807 segmentation fault, если использовалось большое количество имён в
7808 директивах server_name; ошибка появилась в 0.3.18.
7809
7810
7811 Изменения в nginx 0.3.23 24.01.2006
7812
7813 *) Добавление: директива optimize_host_names.
7814
7815 *) Исправление: ошибки при использовании переменных в директивах path и
7816 alias.
7817
7818 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
7819 Linux и Solaris.
7820
7821
7822 Изменения в nginx 0.3.22 17.01.2006
7823
7824 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
7825 и $r->unescape.
7826
7827 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
7828 упразднён.
7829
7830 *) Исправление: если в директиве valid_referers указаны только none или
7831 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
7832
7833
7834 Изменения в nginx 0.3.21 16.01.2006
7835
7836 *) Добавление: модуль ngx_http_perl_module.
7837
7838 *) Изменение: директива valid_referers разрешает использовать рефереры
7839 совсем без URI.
7840
7841
7842 Изменения в nginx 0.3.20 11.01.2006
7843
7844 *) Исправление: ошибки в обработке SSI.
7845
7846 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
7847 виде /uri?args.
7848
7849
7850 Изменения в nginx 0.3.19 28.12.2005
7851
7852 *) Добавление: директивы path и alias поддерживают переменные.
7853
7854 *) Изменение: теперь директива valid_referers опять учитывает URI.
7855
7856 *) Исправление: ошибки в обработке SSI.
7857
7858
7859 Изменения в nginx 0.3.18 26.12.2005
7860
7861 *) Добавление: директива server_names поддерживает имена вида
7862 ".domain.tld".
7863
7864 *) Добавление: директива server_names использует хэш для имён вида
7865 "*.domain.tld" и более эффективный хэш для обычных имён.
7866
7867 *) Изменение: директивы server_names_hash_max_size и
7868 server_names_hash_bucket_size.
7869
7870 *) Изменение: директивы server_names_hash и server_names_hash_threshold
7871 упразднены.
7872
7873 *) Добавление: директива valid_referers использует хэш для имён сайтов.
7874
7875 *) Изменение: теперь директива valid_referers проверяет только имена
7876 сайтов без учёта URI.
7877
7878 *) Исправление: некоторые имена вида ".domain.tld" неверно
7879 обрабатывались модулем ngx_http_map_module.
7880
7881 *) Исправление: если конфигурационного файла не было, то происходил
7882 segmentation fault; ошибка появилась в 0.3.12.
7883
7884 *) Исправление: на 64-битных платформах при старте мог произойти
7885 segmentation fault; ошибка появилась в 0.3.16.
7886
7887
7888 Изменения в nginx 0.3.17 18.12.2005
7889
7890 *) Изменение: на Linux configure теперь проверяет наличие epoll и
7891 sendfile64() в ядре.
7892
7893 *) Добавление: директива map поддерживает доменные имена в формате
7894 ".domain.tld".
7895
7896 *) Исправление: во время SSL handshake не иcпользовались таймауты;
7897 ошибка появилась в 0.2.4.
7898
7899 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
7900
7901 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7902 по умолчанию использовался порт 80.
7903
7904
7905 Изменения в nginx 0.3.16 16.12.2005
7906
7907 *) Добавление: модуль ngx_http_map_module.
7908
7909 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
7910
7911 *) Добавление: директива ssi_value_length.
7912
7913 *) Добавление: директива worker_rlimit_core.
7914
7915 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
7916 Pentium 4 номер соединения в логах всегда был равен 1.
7917
7918 *) Исправление: команда config timefmt в SSI задавала неверный формат
7919 времени.
7920
7921 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
7922 использовании SSL соединений; ошибка появилась в 0.3.13.
7923 Спасибо Rob Mueller.
7924
7925 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
7926 ошибка появилась в 0.3.13.
7927
7928
7929 Изменения в nginx 0.3.15 07.12.2005
7930
7931 *) Добавление: новой код 444 в директиве return для закрытия соединения.
7932
7933 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
7934
7935 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
7936 соединений только при плавном выходе и включённой директиве
7937 debug_points.
7938
7939
7940 Изменения в nginx 0.3.14 05.12.2005
7941
7942 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
7943 в 0.3.13.
7944
7945
7946 Изменения в nginx 0.3.13 05.12.2005
7947
7948 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
7949
7950 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
7951 /dev/poll.
7952
7953 *) Исправление: ошибки в обработке SSI.
7954
7955 *) Исправление: sendfilev() в Solaris теперь не используется при
7956 передаче тела запроса FastCGI-серверу через unix domain сокет.
7957
7958 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
7959 появилась в 0.3.11.
7960
7961
7962 Изменения в nginx 0.3.12 26.11.2005
7963
7964 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
7965 то при использовании директивы "satisfy_any on" директивы доступа и
7966 аутентификации не работали. Модуль ngx_http_realip_module не
7967 собирался и не собирается по умолчанию.
7968
7969 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
7970
7971 *) Изменение: директивы proxy_header_buffer_size и
7972 fastcgi_header_buffer_size переименованы соответственно в
7973 proxy_buffer_size и fastcgi_buffer_size.
7974
7975 *) Добавление: модуль ngx_http_memcached_module.
7976
7977 *) Добавление: директива proxy_buffering.
7978
7979 *) Исправление: изменение в работе с accept mutex при использовании
7980 метода rtsig; ошибка появилась в 0.3.0.
7981
7982 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
7983 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
7984
7985 *) Исправление: при наследовании директивы auth_basic с уровня http в
7986 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
7987 "Basic realm".
7988
7989 *) Исправление: если в директиве access_log был явно указан формат
7990 combined, то в лог записывались пустые строки; ошибка появилась в
7991 0.3.8.
7992
7993 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
7994 Solaris.
7995
7996 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
7997 в кавычках и закрывающую скобку.
7998
7999
8000 Изменения в nginx 0.3.11 15.11.2005
8001
8002 *) Исправление: nginx не передавал при проксировании тело запроса и
8003 строки заголовка клиента; ошибка появилась в 0.3.10.
8004
8005
8006 Изменения в nginx 0.3.10 15.11.2005
8007
8008 *) Изменение: директива valid_referers и переменная $invalid_referer
8009 перенесены из модуля ngx_http_rewrite_module в новый модуль
8010 ngx_http_referer_module.
8011
8012 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
8013 "$body_bytes_sent".
8014
8015 *) Добавление: переменные "$sent_http_...".
8016
8017 *) Добавление: директива if поддерживает операции "=" и "!=".
8018
8019 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
8020
8021 *) Добавление: директива proxy_set_body.
8022
8023 *) Добавление: директива post_action.
8024
8025 *) Добавление: модуль ngx_http_empty_gif_module.
8026
8027 *) Добавление: директива worker_cpu_affinity для Linux.
8028
8029 *) Исправление: директива rewrite не раскодировала символы в редиректах
8030 в URI, теперь символы раскодируются, кроме символов %00-%25 и
8031 %7F-%FF.
8032
8033 *) Исправление: nginx не собирался компилятором icc 9.0.
8034
8035 *) Исправление: если для статического файла нулевого размера был
8036 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
8037
8038
8039 Изменения в nginx 0.3.9 10.11.2005
8040
8041 *) Исправление: nginx считал небезопасными URI, в которых между двумя
8042 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
8043
8044
8045 Изменения в nginx 0.3.8 09.11.2005
8046
8047 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
8048 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
8049 наличие путей "/../" и нулей.
8050
8051 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
8052 строке "Authorization" в заголовке запроса.
8053
8054 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
8055 и ngx_imap_ssl_module.
8056
8057 *) Добавление: директива auth_http_header модуля
8058 ngx_imap_auth_http_module.
8059
8060 *) Добавление: директива add_header.
8061
8062 *) Добавление: модуль ngx_http_realip_module.
8063
8064 *) Добавление: новые переменные для использования в директиве
8065 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
8066 $uri, $request_time, $request_length, $upstream_status,
8067 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
8068 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
8069 упразднены.
8070
8071 *) Изменение: в директиве "if" ложными значениями переменных теперь
8072 являются пустая строка "" и строки, начинающиеся на "0".
8073
8074 *) Исправление: при работает с проксированными или FastCGI-серверами
8075 nginx мог оставлять открытыми соединения и временные файлы с
8076 запросами клиентов.
8077
8078 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
8079 плавном выходе.
8080
8081 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
8082 запрос проксировался в location, заданном регулярным выражением, то
8083 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
8084
8085 *) Исправление: директива expires не удаляла уже установленную строку
8086 заголовка "Expires".
8087
8088 *) Исправление: при использовании метода rtsig и нескольких рабочих
8089 процессах nginx мог перестать принимать запросы.
8090
8091 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
8092 "\'".
8093
8094 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
8095 при использовании сжатия ответ передавался не до конца или не
8096 передавался вообще.
8097
8098
8099 Изменения в nginx 0.3.7 27.10.2005
8100
8101 *) Добавление: директива access_log поддерживает параметр buffer=.
8102
8103 *) Исправление: nginx не собирался на платформах, отличных от i386,
8104 amd64, sparc и ppc; ошибка появилась в 0.3.2.
8105
8106
8107 Изменения в nginx 0.3.6 24.10.2005
8108
8109 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
8110 пустой логин.
8111
8112 *) Добавление: директива log_format поддерживает переменные в виде
8113 $name.
8114
8115 *) Исправление: если хотя бы в одном сервере не было описано ни одной
8116 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
8117 0.3.3.
8118
8119 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
8120 использовался порт 80.
8121
8122
8123 Изменения в nginx 0.3.5 21.10.2005
8124
8125 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
8126 мог произойти segmentation fault; ошибка появилась в 0.2.2.
8127
8128 *) Исправление: accept mutex не работал, все соединения обрабатывались
8129 одним рабочим процессом; ошибка появилась в 0.3.3.
8130
8131 *) Исправление: при использовании метода rtsig и директивы
8132 timer_resolution не работали таймауты.
8133
8134
8135 Изменения в nginx 0.3.4 19.10.2005
8136
8137 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
8138 появилась в 0.3.3.
8139
8140
8141 Изменения в nginx 0.3.3 19.10.2005
8142
8143 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
8144 "backlog" и "accept_filter".
8145
8146 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
8147
8148 *) Изменение: параметр лога $msec теперь не требует дополнительного
8149 системного вызова gettimeofday().
8150
8151 *) Добавление: ключ -t теперь проверяет директивы listen.
8152
8153 *) Исправление: если в директиве listen был указан неверный адрес, то
8154 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
8155
8156 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
8157 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
8158
8159 *) Добавление: директива timer_resolution.
8160
8161 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
8162
8163 *) Исправление: временный файл с телом запроса клиента теперь удаляется
8164 сразу после того, как клиенту передан заголовок ответа.
8165
8166 *) Исправление: совместимость с OpenSSL 0.9.6.
8167
8168 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
8169 относительными.
8170
8171 *) Исправление: директива ssl_prefer_server_ciphers не работала для
8172 модуля ngx_imap_ssl_module.
8173
8174 *) Исправление: директива ssl_protocols позволяла задать только один
8175 протокол.
8176
8177
8178 Изменения в nginx 0.3.2 12.10.2005
8179
8180 *) Добавление: поддержка Sun Studio 10 C compiler.
8181
8182 *) Добавление: директивы proxy_upstream_max_fails,
8183 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
8184 fastcgi_upstream_fail_timeout.
8185
8186
8187 Изменения в nginx 0.3.1 10.10.2005
8188
8189 *) Исправление: во время переполнения очереди сигналов при использовании
8190 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
8191
8192 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
8193
8194
8195 Изменения в nginx 0.3.0 07.10.2005
8196
8197 *) Изменение: убрано десятидневное ограничение времени работы рабочего
8198 процесса. Ограничение было введено из-за переполнения миллисекундных
8199 таймеров.
8200
8201
8202 Изменения в nginx 0.2.6 05.10.2005
8203
8204 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
8205 бэкенду при использовании распределения нагрузки.
8206
8207 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
8208 запрос теперь передаётся, если в директиве proxy_pass отсутствует
8209 URI.
8210
8211 *) Добавление: директива error_page поддерживает редиректы и позволяет
8212 более гибко менять код ошибки.
8213
8214 *) Изменение: в проксированных подзапросах теперь игнорируется
8215 переданный charset.
8216
8217 *) Исправление: если после изменения URI в блоке if для запроса не
8218 находилась новая конфигурация, то правила модуля
8219 ngx_http_rewrite_module выполнялись снова.
8220
8221 *) Исправление: если директива set устанавливала переменную модуля
8222 ngx_http_geo_module в какой-либо части конфигурации, то эта
8223 переменная не была доступна в других частях конфигурации и выдавалась
8224 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
8225
8226
8227 Изменения в nginx 0.2.5 04.10.2005
8228
8229 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
8230 теперь выдаёт предупреждение и изменяет старое значение.
8231
8232 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
8233
8234 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
8235 команде include.
8236
8237 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
8238 значений переменных в выражениях команды if.
8239
8240
8241 Изменения в nginx 0.2.4 03.10.2005
8242
8243 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
8244 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
8245 if.
8246
8247 *) Исправление: ошибки при проксировании location без слэша в конце;
8248 ошибка появилась в 0.1.44.
8249
8250 *) Исправление: при использовании метода rtsig мог произойти
8251 segmentation fault; ошибка появилась в 0.2.0.
8252
8253
8254 Изменения в nginx 0.2.3 30.09.2005
8255
8256 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
8257 появилась в 0.2.2.
8258
8259
8260 Изменения в nginx 0.2.2 30.09.2005
8261
8262 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
8263
8264 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
8265 директивой set.
8266
8267 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
8268 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
8269
8270 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8271 длинных имён файлов;
8272
8273 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
8274 файлы, начинающиеся на точку.
8275
8276 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
8277 привести также к закрытию другого соединения.
8278 Спасибо Rob Mueller.
8279
8280 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
8281 HTTPS.
8282
8283
8284 Изменения в nginx 0.2.1 23.09.2005
8285
8286 *) Исправление: если все бэкенды, используемые для балансировки
8287 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8288 nginx мог зациклится; ошибка появилась в 0.2.0.
8289
8290
8291 Изменения в nginx 0.2.0 23.09.2005
8292
8293 *) Изменились имена pid-файлов, используемые во время обновления
8294 исполняемого файла. Ручное переименование теперь не нужно. Старый
8295 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
8296 запускает новый исполняемый файл. Новый основной процесс создаёт
8297 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
8298 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
8299 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
8300 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
8301 0.2.0 - используют pid-файл без суффиксов.
8302
8303 *) Изменение: директива worker_connections, новое название директивы
8304 connections; директива теперь задаёт максимальное число соединений, а
8305 не максимально возможный номер дескриптора для сокета.
8306
8307 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
8308 рабочего процесса.
8309
8310 *) Добавление: директива satisfy_any.
8311
8312 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
8313 не работают для подзапросов.
8314
8315 *) Добавление: директивы worker_rlimit_nofile и
8316 worker_rlimit_sigpending.
8317
8318 *) Исправление: если все бэкенды, используемые для балансировки
8319 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8320 nginx не обращался к ним в течение 60 секунд.
8321
8322 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
8323 Спасибо Rob Mueller.
8324
8325 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
8326
8327 *) Исправление: ошибки при использовании SSI и сжатия.
8328
8329 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
8330 "Expires" и "Cache-Control".
8331 Спасибо Александру Кукушкину.
8332
8333
8334 Изменения в nginx 0.1.45 08.09.2005
8335
8336 *) Изменение: директива ssl_engine упразднена в модуле
8337 ngx_http_ssl_module и перенесена на глобальный уровень.
8338
8339 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
8340 передавались через SSL соединение.
8341
8342 *) Разные исправления в IMAP/POP3 прокси.
8343
8344
8345 Изменения в nginx 0.1.44 06.09.2005
8346
8347 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
8348
8349 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
8350
8351 *) Добавление: директива userid_mark.
8352
8353 *) Добавление: значение переменной $remote_user определяется независимо
8354 от того, используется ли авторизация или нет.
8355
8356
8357 Изменения в nginx 0.1.43 30.08.2005
8358
8359 *) Добавление: listen(2) backlog в директиве listen можно менять по
8360 сигналу -HUP.
8361
8362 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
8363
8364 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
8365 серверу.
8366
8367 *) Исправление: если в ответе проксированного сервера или FastCGI
8368 сервера была строка "Cache-Control", то при использовании директивы
8369 expires происходил segmentation fault или рабочий процесс мог
8370 зациклится; в режиме прокси ошибка появилась в 0.1.29.
8371
8372
8373 Изменения в nginx 0.1.42 23.08.2005
8374
8375 *) Исправление: если URI запроса получался нулевой длины после обработки
8376 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
8377 происходил segmentation fault или bus error.
8378
8379 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
8380 появилась в 0.1.38.
8381
8382
8383 Изменения в nginx 0.1.41 25.07.2005
8384
8385 *) Исправление: если переменная использовалась в файле конфигурации, то
8386 она не могла использоваться в SSI.
8387
8388
8389 Изменения в nginx 0.1.40 22.07.2005
8390
8391 *) Исправление: если клиент слал очень длинную строку заголовка, то в
8392 логе не помещалась информация, связанная с этим запросом.
8393
8394 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
8395 строка "Set-Cookie"; ошибка появилась в 0.1.39.
8396
8397 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
8398 строка "Content-Disposition".
8399
8400 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
8401 на которых он слушал.
8402
8403 *) Исправление: после обновления исполняемого файла на лету на Linux и
8404 Solaris название процесса в команде ps становилось короче.
8405
8406
8407 Изменения в nginx 0.1.39 14.07.2005
8408
8409 *) Изменения в модуле ngx_http_charset_module: директива default_charset
8410 упразднена; директива charset задаёт кодировку ответа; директива
8411 source_charset задаёт только исходную кодировку.
8412
8413 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
8414 не передавалась строка заголовка "WWW-Authenticate".
8415
8416 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
8417 могли закрыть соединение до того, как что-нибудь было передано
8418 клиенту; ошибка появилась в 0.1.38.
8419
8420 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
8421
8422 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
8423 URI в команде include virtual.
8424
8425 *) Исправление: если в строке заголовка ответа бэкенда была строка
8426 "Location", которую nginx не должен был изменять, то в ответе
8427 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
8428
8429 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
8430 ngx_http_fastcgi_module не наследовались с уровня server на уровень
8431 location; ошибка появилась в 0.1.29.
8432
8433 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
8434 сертификатов.
8435
8436 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8437 длинных имён файлов; ошибка появилась в 0.1.38.
8438
8439 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
8440 стадии login.
8441
8442
8443 Изменения в nginx 0.1.38 08.07.2005
8444
8445 *) Добавление: директива limit_rate поддерживается в режиме прокси и
8446 FastCGI.
8447
8448 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8449 "X-Accel-Limit-Rate" в ответе бэкенда.
8450
8451 *) Добавление: директива break.
8452
8453 *) Добавление: директива log_not_found.
8454
8455 *) Исправление: при перенаправлении запроса с помощью строки заголовка
8456 "X-Accel-Redirect" не изменялся код ответа.
8457
8458 *) Исправление: переменные, установленные директивой set не могли
8459 использоваться в SSI.
8460
8461 *) Исправление: при включении в SSI более одного удалённого подзапроса
8462 мог произойти segmentation fault.
8463
8464 *) Исправление: если статусная строка в ответе бэкенда передавалась в
8465 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
8466 0.1.29.
8467
8468 *) Добавление: директива ssi_types.
8469
8470 *) Добавление: директива autoindex_exact_size.
8471
8472 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
8473 имена файлов в UTF-8.
8474
8475 *) Добавление: IMAP/POP3 прокси.
8476
8477
8478 Изменения в nginx 0.1.37 23.06.2005
8479
8480 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
8481
8482 *) Исправление: при включении большого количества вставок или нескольких
8483 больших вставок с помощью SSI ответ мог передаваться не полностью.
8484
8485 *) Исправление: если все бэкенды возвращали ответ 404, то при
8486 использовании параметра http_404 в директивах proxy_next_upstream или
8487 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
8488
8489
8490 Изменения в nginx 0.1.36 15.06.2005
8491
8492 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host",
8493 "Connection", "Content-Length" и "Authorization", то nginx теперь
8494 выдаёт ошибку 400.
8495
8496 *) Изменение: директива post_accept_timeout упразднена.
8497
8498 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
8499 listen.
8500
8501 *) Добавление: поддержка accept фильтров во FreeBSD.
8502
8503 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
8504
8505 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
8506 файлов в UTF-8.
8507
8508 *) Исправление: после добавления новый лог-файл ротация этого лога по
8509 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
8510 раза по сигналу -HUP.
8511
8512
8513 Изменения в nginx 0.1.35 07.06.2005
8514
8515 *) Добавление: директива working_directory.
8516
8517 *) Добавление: директива port_in_redirect.
8518
8519 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
8520 то происходил segmentation fault; ошибка появилась в 0.1.29.
8521
8522 *) Исправление: если было сконфигурировано более 10 серверов или в
8523 сервере не описана директива "listen", то при запуске мог произойти
8524 segmentation fault.
8525
8526 *) Исправление: если ответ не помещался во временный файл, то мог
8527 произойти segmentation fault.
8528
8529 *) Исправление: nginx возвращал ошибку 400 на запросы вида
8530 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
8531
8532
8533 Изменения в nginx 0.1.34 26.05.2005
8534
8535 *) Исправление: при включении больших ответов с помощью SSI рабочий
8536 процесс мог зациклиться.
8537
8538 *) Исправление: переменные, устанавливаемые директивой "set", не были
8539 доступны в SSI.
8540
8541 *) Добавление: директива autoindex_localtime.
8542
8543 *) Исправление: пустое значение в директиве proxy_set_header запрещает
8544 передачу заголовка.
8545
8546
8547 Изменения в nginx 0.1.33 23.05.2005
8548
8549 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
8550 появилась в 0.1.29.
8551
8552 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
8553 вызывали bus fault при запуске.
8554
8555 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
8556 HTTP.
8557
8558 *) Исправление: если директива rewrite использовала выделения внутри
8559 директивы if, то возвращалась ошибка 500.
8560
8561
8562 Изменения в nginx 0.1.32 19.05.2005
8563
8564 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
8565 передавались аргументы; ошибка появилась в 0.1.29.
8566
8567 *) Добавление: директива if поддерживает выделения в регулярных
8568 выражениях.
8569
8570 *) Добавление: директива set поддерживает переменные и выделения из
8571 регулярных выражений.
8572
8573 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8574 "X-Accel-Redirect" в ответе бэкенда.
8575
8576
8577 Изменения в nginx 0.1.31 16.05.2005
8578
8579 *) Исправление: при использовании SSL ответ мог передаваться не до
8580 конца.
8581
8582 *) Исправление: ошибки при обработке SSI в ответе, полученного от
8583 FastCGI-сервера.
8584
8585 *) Исправление: ошибки при использовании SSI и сжатия.
8586
8587 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
8588 появилась в 0.1.30.
8589
8590
8591 Изменения в nginx 0.1.30 14.05.2005
8592
8593 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
8594
8595 *) Исправление: при использовании SSL ответ мог передаваться не до
8596 конца.
8597
8598 *) Исправление: если длина части ответа, полученного за один раз от
8599 проксируемого или FastCGI сервера была равна 500 байт, то nginx
8600 возвращал код ответа 500; в режиме прокси ошибка появилась только в
8601 0.1.29.
8602
8603 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
8604 параметрами.
8605
8606 *) Добавление: директива return может возвращать код ответа 204.
8607
8608 *) Добавление: директива ignore_invalid_headers.
8609
8610
8611 Изменения в nginx 0.1.29 12.05.2005
8612
8613 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
8614 virtual.
8615
8616 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
8617 вида 'if expr="$NAME"' и команды else и endif. Допускается только
8618 один уровень вложенности.
8619
8620 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
8621 DATE_LOCAL и DATE_GMT и команду config timefmt.
8622
8623 *) Добавление: директива ssi_ignore_recycled_buffers.
8624
8625 *) Исправление: если переменная QUERY_STRING не была определена, то в
8626 команде echo не ставилось значение по умолчанию.
8627
8628 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
8629
8630 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
8631 proxy_pass_request_body и proxy_method.
8632
8633 *) Добавление: директива proxy_set_header. Директива proxy_x_var
8634 упразднена и должна быть заменена директивой proxy_set_header.
8635
8636 *) Изменение: директива proxy_preserve_host упразднена и должна быть
8637 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
8638 off" или директивой "proxy_set_header Host $host:$proxy_port" и
8639 соответствующими ей директивами proxy_redirect.
8640
8641 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
8642 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
8643
8644 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
8645 быть заменена директивой
8646 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
8647
8648 *) Изменение: директива proxy_set_x_url упразднена и должна быть
8649 заменена директивой
8650 "proxy_set_header X-URL http://$host:$server_port$request_uri".
8651
8652 *) Добавление: директива fastcgi_param.
8653
8654 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
8655 упразднены и должны быть замены директивами fastcgi_param.
8656
8657 *) Добавление: директива index может использовать переменные.
8658
8659 *) Добавление: директива index может быть указана на уровне http и
8660 server.
8661
8662 *) Изменение: только последний параметр в директиве index может быть
8663 абсолютным.
8664
8665 *) Добавление: в директиве rewrite могут использоваться переменные.
8666
8667 *) Добавление: директива internal.
8668
8669 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
8670 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
8671 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
8672
8673 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
8674 клиента и ответа бэкенда.
8675
8676 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
8677 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
8678
8679 *) Исправление: если бэкенд передавал неверную строку в заголовке
8680 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
8681
8682 *) Исправление: при использовании отказоустойчивой конфигурации в
8683 FastCGI мог происходить segmentation fault.
8684
8685 *) Исправление: директива expires не удаляла уже установленные строки
8686 заголовка "Expires" и "Cache-Control".
8687
8688 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
8689 запроса "Host".
8690
8691 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
8692
8693 *) Исправление: директива rewrite неверно работала, если в запросе
8694 присутствовали аргументы.
8695
8696 *) Исправление: nginx не собирался на MacOS X.
8697
8698
8699 Изменения в nginx 0.1.28 08.04.2005
8700
8701 *) Исправление: при проксировании больших файлов nginx сильно нагружал
8702 процессор.
8703
8704 *) Исправление: nginx не собирался gcc 4.0 на Linux.
8705
8706
8707 Изменения в nginx 0.1.27 28.03.2005
8708
8709 *) Добавление: параметр blocked в директиве valid_referers.
8710
8711 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
8712 уровне info, в лог также записывается имя сервера и строки заголовка
8713 запроса "Host" и "Referer".
8714
8715 *) Изменение: при записи ошибок в лог записывается также строка
8716 заголовка запроса "Host".
8717
8718 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
8719 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
8720
8721 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
8722 параметр конфигурации --without-ngx_http_auth_basic_module.
8723
8724
8725 Изменения в nginx 0.1.26 22.03.2005
8726
8727 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
8728 игнорируется и записываются в error_log на уровне info.
8729
8730 *) Изменение: при записи ошибок в лог записывается также имя сервера,
8731 при обращении к которому произошла ошибка.
8732
8733 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
8734 и auth_basic_user_file.
8735
8736
8737 Изменения в nginx 0.1.25 19.03.2005
8738
8739 *) Исправление: nginx не работал на Linux parisc.
8740
8741 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
8742 sysctl kern.ipc.somaxconn слишком большое.
8743
8744 *) Исправление: если модуль ngx_http_index_module делал внутреннее
8745 перенаправление запроса в модули ngx_http_proxy_module или
8746 ngx_http_fastcgi_module, то файл индекса не закрывался после
8747 обслуживания запроса.
8748
8749 *) Добавление: директива proxy_pass может использоваться в location,
8750 заданных регулярным выражением.
8751
8752 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
8753 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
8754
8755 *) Исправление: nginx очень медленно запускался при большом количестве
8756 адресов и использовании текстовых значений в директиве geo.
8757
8758 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
8759 Прежний вариант без "$" пока работает, но вскоре будет убран.
8760
8761 *) Добавление: параметр лога "%{VARIABLE}v".
8762
8763 *) Добавление: директива "set $name value".
8764
8765 *) Исправление: совместимость с gcc 4.0.
8766
8767 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
8768
8769
8770 Изменения в nginx 0.1.24 04.03.2005
8771
8772 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
8773 QUERY_STRING и DOCUMENT_URI.
8774
8775 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
8776 на существующий каталог, если этот каталог был указан как alias.
8777
8778 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
8779 при больших ответах.
8780
8781 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
8782 правильным referrer'ом.
8783
8784
8785 Изменения в nginx 0.1.23 01.03.2005
8786
8787 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
8788 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
8789 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
8790
8791 *) Добавление: параметр лога %request_time.
8792
8793 *) Добавление: если запрос пришёл без строки заголовка "Host", то
8794 директива proxy_preserve_host устанавливает в качестве этого
8795 заголовка первое имя сервера из директивы server_name.
8796
8797 *) Исправление: nginx не собирался на платформах, отличных от i386,
8798 amd64, sparc и ppc; ошибка появилась в 0.1.22.
8799
8800 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
8801 информацию не о символическом линке, а о файле или каталоге, на
8802 который он указывает.
8803
8804 *) Исправление: если клиенту ничего не передавалось, то параметр
8805 %apache_length записывал в лог отрицательную длину заголовка ответа.
8806
8807
8808 Изменения в nginx 0.1.22 22.02.2005
8809
8810 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8811 статистику для обработанных соединений, если использовалось
8812 проксирование или FastCGI-сервер.
8813
8814 *) Исправление: на Linux и Solaris установочные пути были неверно
8815 заключены в кавычки; ошибка появилась в 0.1.21.
8816
8817
8818 Изменения в nginx 0.1.21 22.02.2005
8819
8820 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8821 статистику при использовании метода rtsig или при использовании
8822 нескольких рабочих процессов на SMP машине.
8823
8824 *) Исправление: nginx не собирался компилятором icc под Линуксом или
8825 если библиотека zlib-1.2.x собиралась из исходных текстов.
8826
8827 *) Исправление: nginx не собирался под NetBSD 2.0.
8828
8829
8830 Изменения в nginx 0.1.20 17.02.2005
8831
8832 *) Добавление: новые параметры script_filename и remote_port в директиве
8833 fastcgi_params.
8834
8835 *) Исправление: неправильно обрабатывался поток stderr от
8836 FastCGI-сервера.
8837
8838
8839 Изменения в nginx 0.1.19 16.02.2005
8840
8841 *) Исправление: если в запросе есть нуль, то для локальных запросов
8842 теперь возвращается ошибка 404.
8843
8844 *) Исправление: nginx не собирался под NetBSD 2.0.
8845
8846 *) Исправление: во время чтения тела запроса клиента в SSL соединении
8847 мог произойти таймаут.
8848
8849
8850 Изменения в nginx 0.1.18 09.02.2005
8851
8852 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
8853 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
8854
8855 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
8856 наследовались.
8857
8858 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
8859 присоединялись к URI через символ "&" вместо "?".
8860
8861 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
8862 включённом файле игнорировались.
8863
8864 *) Добавление: модуль ngx_http_stub_status_module.
8865
8866 *) Исправление: неизвестный формат лог-файла в директиве access_log
8867 вызывал segmentation fault.
8868
8869 *) Добавление: новый параметр document_root в директиве fastcgi_params.
8870
8871 *) Добавление: директива fastcgi_redirect_errors.
8872
8873 *) Добавление: новый модификатор break в директиве rewrite позволяет
8874 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
8875 для запроса.
8876
8877
8878 Изменения в nginx 0.1.17 03.02.2005
8879
8880 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
8881 можно делать редиректы, возвращать коды ошибок и проверять переменные
8882 и рефереры. Эти директивы можно использовать внутри location.
8883 Директива redirect упразднена.
8884
8885 *) Добавление: модуль ngx_http_geo_module.
8886
8887 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
8888
8889 *) Исправление: конфигурация location с модификатором "=" могла
8890 использоваться в другом location.
8891
8892 *) Исправление: правильный тип ответа выставлялся только для запросов, у
8893 которых в расширении были только маленькие буквы.
8894
8895 *) Исправление: если для location установлен proxy_pass или
8896 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
8897 на статическую страницу, то происходил segmentation fault.
8898
8899 *) Исправление: если в проксированном ответе в заголовке "Location"
8900 передавался относительный URL, то к нему добавлялось имя хоста и
8901 слэш; ошибка появилась в 0.1.14.
8902
8903 *) Исправление: на Linux в лог не записывался текст системной ошибки.
8904
8905
8906 Изменения в nginx 0.1.16 25.01.2005
8907
8908 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
8909 выдавался завершающий chunk.
8910
8911 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
8912 директива keepalive_timeout запрещала использование keep-alive.
8913
8914 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
8915 segmentation fault.
8916
8917 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
8918 до конца.
8919
8920 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
8921 для TCP сокетов, не используются для unix domain сокетов.
8922
8923 *) Добавление: директива rewrite поддерживает перезаписывание
8924 аргументов.
8925
8926 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
8927 возвращался ответ 400; ошибка появилась в 0.1.14.
8928
8929
8930 Изменения в nginx 0.1.15 19.01.2005
8931
8932 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
8933 segmentation fault.
8934
8935 *) Исправление: корректная обработка регулярного выражения, в котором
8936 число выделенных частей не совпадает с числом подстановок.
8937
8938 *) Добавление: location, который передаётся FastCGI-серверу, может быть
8939 задан с помощью регулярного выражения.
8940
8941 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
8942 аргументами и в том виде, в котором был получен от клиента.
8943
8944 *) Исправление: для использования регулярных выражений в location нужно
8945 было собирать nginx вместе с ngx_http_rewrite_module.
8946
8947 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
8948 директивы "proxy_preserve_host on" в заголовке "Host" указывался
8949 также порт 80; ошибка появилась в 0.1.14.
8950
8951 *) Исправление: если задать одинаковые пути в параметрах
8952 автоконфигурации --http-client-body-temp-path=PATH и
8953 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
8954 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
8955
8956
8957 Изменения в nginx 0.1.14 18.01.2005
8958
8959 *) Добавление: параметры автоконфигурации
8960 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
8961 --http-fastcgi-temp-path=PATH
8962
8963 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
8964 клиента, задаётся директивой client_body_temp_path, по умолчанию
8965 <prefix>/client_body_temp.
8966
8967 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
8968 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
8969 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
8970 fastcgi_header_buffer_size, fastcgi_buffers,
8971 fastcgi_busy_buffers_size, fastcgi_temp_path,
8972 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
8973 fastcgi_next_upstream и fastcgi_x_powered_by.
8974
8975 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
8976 0.1.3.
8977
8978 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
8979 после имени хоста.
8980
8981 *) Изменение: если в URI встречался символ %3F, то он считался началом
8982 строки аргументов.
8983
8984 *) Добавление: поддержка unix domain сокетов в модуле
8985 ngx_http_proxy_module.
8986
8987 *) Добавление: директивы ssl_engine и ssl_ciphers.
8988 Спасибо Сергею Скворцову за SSL-акселератор.
8989
8990
8991 Изменения в nginx 0.1.13 21.12.2004
8992
8993 *) Добавление: директивы server_names_hash и
8994 server_names_hash_threshold.
8995
8996 *) Исправление: имена *.domain.tld в директиве server_name не работали.
8997
8998 *) Исправление: параметр лога %request_length записывал неверную длину.
8999
9000
9001 Изменения в nginx 0.1.12 06.12.2004
9002
9003 *) Добавление: параметр лога %request_length.
9004
9005 *) Исправление: при использовании /dev/poll, select и poll на
9006 платформах, где возможны ложные срабатывания указанных методов, могли
9007 быть длительные задержки при обработке запроса по keep-alive
9008 соединению. Наблюдалось по крайней мере на Solaris с использованием
9009 /dev/poll.
9010
9011 *) Исправление: директива send_lowat игнорируется на Linux, так как
9012 Linux не поддерживает опцию SO_SNDLOWAT.
9013
9014
9015 Изменения в nginx 0.1.11 02.12.2004
9016
9017 *) Добавление: директива worker_priority.
9018
9019 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
9020 влияют на передачу ответа.
9021
9022 *) Исправление: nginx не вызывал initgroups().
9023 Спасибо Андрею Ситникову и Андрею Нигматулину.
9024
9025 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
9026 байтах.
9027
9028 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
9029 каталоге есть битый symlink.
9030
9031 *) Исправление: файлы больше 4G не передавались с использованием
9032 sendfile.
9033
9034 *) Исправление: если бэкенд резолвился в несколько адресов и при
9035 ожидании от него ответа происходила ошибка, то процесс зацикливался.
9036
9037 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
9038 завершиться с сообщением "unknown cycle".
9039
9040 *) Исправление: ошибки "close() channel failed".
9041
9042 *) Исправление: автоматическое определение групп nobody и nogroup.
9043
9044 *) Исправление: директива send_lowat не работала на Linux.
9045
9046 *) Исправление: если в конфигурации не было раздела events, то
9047 происходил segmentation fault.
9048
9049 *) Исправление: nginx не собирался под OpenBSD.
9050
9051 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
9052
9053
9054 Изменения в nginx 0.1.10 26.11.2004
9055
9056 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
9057 или "%XX", то терялся последний символ в строке запроса; ошибка
9058 появилась в 0.1.9.
9059
9060 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
9061 не работало.
9062
9063
9064 Изменения в nginx 0.1.9 25.11.2004
9065
9066 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
9067 проксируемый запрос передавался без аргументов.
9068
9069 *) Исправление: при сжатии больших ответов иногда они передавались не
9070 полностью.
9071
9072 *) Исправление: не передавались файлы больше 2G на Linux,
9073 неподдерживающем sendfile64().
9074
9075 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
9076 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
9077
9078
9079 Изменения в nginx 0.1.8 20.11.2004
9080
9081 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
9082 длинных имён файлов.
9083
9084 *) Добавление: модификатор "^~" в директиве location.
9085
9086 *) Добавление: директива proxy_max_temp_file_size.
9087
9088
9089 Изменения в nginx 0.1.7 12.11.2004
9090
9091 *) Исправление: при использовании sendfile, если передаваемый файл
9092 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
9093 появилась в 0.1.5.
9094
9095
9096 Изменения в nginx 0.1.6 11.11.2004
9097
9098 *) Исправление: при некоторых комбинациях директив location c
9099 регулярными выражениями использовалась конфигурация не из того
9100 location.
9101
9102
9103 Изменения в nginx 0.1.5 11.11.2004
9104
9105 *) Исправление: на Solaris и Linux могло быть очень много сообщений
9106 "recvmsg() returned not enough data".
9107
9108 *) Исправление: в режиме прокси без использования sendfile на Solaris
9109 возникала ошибка "writev() failed (22: Invalid argument)". На других
9110 платформах, не поддерживающих sendfile, процесс зацикливался.
9111
9112 *) Исправление: при использовании sendfile в режиме прокси на Solaris
9113 возникал segmentation fault.
9114
9115 *) Исправление: segmentation fault на Solaris.
9116
9117 *) Исправление: обновление исполняемого файла на лету не работало на
9118 Linux.
9119
9120 *) Исправление: в списке файлов, выдаваемом модулем
9121 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
9122 знаки процента.
9123
9124 *) Изменение: уменьшение операций копирования.
9125
9126 *) Добавление: директива userid_p3p.
9127
9128
9129 Изменения в nginx 0.1.4 26.10.2004
9130
9131 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
9132
9133
9134 Изменения в nginx 0.1.3 25.10.2004
9135
9136 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
9137
9138 *) Добавление: директива proxy_set_x_url.
9139
9140 *) Исправление: модуль проксировании мог привести к зацикливанию, если
9141 не использовался sendfile.
9142
9143
9144 Изменения в nginx 0.1.2 21.10.2004
9145
9146 *) Добавление: параметры --user=USER, --group=GROUP и
9147 --with-ld-opt=OPTIONS в configure.
9148
9149 *) Добавление: директива server_name поддерживает *.domain.tld.
9150
9151 *) Исправление: улучшена переносимость на неизвестные платформы.
9152
9153 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
9154 файл указан в командной строке; ошибка появилась в 0.1.1.
9155
9156 *) Исправление: модуль проксировании мог привести к зацикливанию, если
9157 не использовался sendfile.
9158
9159 *) Исправление: при использовании sendfile текст ответа не
9160 перекодировался согласно директивам модуля charset; ошибка появилась
9161 в 0.1.1.
9162
9163 *) Исправление: очень редкая ошибка при обработке kqueue.
9164
9165 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
9166 проксировании.
9167
9168
9169 Изменения в nginx 0.1.1 11.10.2004
9170
9171 *) Добавление: директива gzip_types.
9172
9173 *) Добавление: директива tcp_nodelay.
9174
9175 *) Добавление: директива send_lowat работает не только на платформах,
9176 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
9177 SO_SNDLOWAT.
9178
9179 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
9180
9181 *) Исправление: ошибка при переписывании заголовка "Location" при
9182 проксировании.
9183
9184 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
9185 зацикливанию.
9186
9187 *) Исправление: ошибки в модуле /dev/poll.
9188
9189 *) Исправление: при проксировании и использовании временных файлов
9190 ответы портились.
9191
9192 *) Исправление: бэкенду передавались запросы с неперекодированными
9193 символами.
9194
9195 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
9196 обязательно использовать параметр --with-poll_module.
9197
9198
9199 Изменения в nginx 0.1.0 04.10.2004
9200
9201 *) Первая публично доступная версия.
9202