comparison text/ru/CHANGES.ru-1.26 @ 3071:036ded8db5df

freenginx-1.26.0
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 09 Apr 2024 03:11:46 +0300
parents text/ru/CHANGES.ru@619538194516
children
comparison
equal deleted inserted replaced
3070:619538194516 3071:036ded8db5df
1
2 Изменения в freenginx 1.26.0 09.04.2024
3
4 *) Стабильная ветка 1.26.x.
5
6
7 Изменения в freenginx 1.25.5 02.04.2024
8
9 *) Изменение: MIME-тип для расширения bmp изменён на "image/bmp", для
10 расширения rar на "application/vnd.rar", а для расширений deb и udeb
11 теперь используется MIME-тип "application/vnd.debian.binary-package".
12 Спасибо Юрию Изоркину.
13
14 *) Изменение: при чтении тела запроса с использованием chunked transfer
15 encoding суммарный размер игнорируемых chunk extensions и trailer
16 headers теперь ограничен директивой client_max_body_size.
17 Спасибо Bartek Nowotarski.
18
19 *) Изменение: теперь перед запросом допускается не более одной пустой
20 строки.
21
22 *) Добавление: ошибки записи в syslog теперь логгируются не чаще одного
23 раза в секунду.
24
25 *) Добавление: директива max_commands в почтовом прокси-сервере.
26
27 *) Исправление: при использовании директивы "server_tokens off" в
28 ответах могло возвращаться некорректное имя сервера.
29 Спасибо Tatsuya Kaneko и Antanas Patašius.
30
31 *) Исправление: при чтении тела запроса из быстрого соединения было
32 возможно чтение в течение долгого времени.
33
34
35 Изменения в freenginx 1.25.4 20.02.2024
36
37 *) Изменение: теперь в ответах используется имя "freenginx".
38
39 *) Исправление: при использовании AIO во время завершения рабочих
40 процессов в логах могли появляться сообщения "open socket left".
41
42 *) Исправление: при использовании AIO в подзапросах в рабочем процессе
43 мог произойти segmentation fault.
44
45 *) Исправление: в рабочем процессе мог произойти segmentation fault,
46 если использовалось директива image_filter, а ошибки с кодом 415
47 перенаправлялись с помощью директивы error_page.
48
49 *) Исправление: при обработке закэшированных ответов с заголовком
50 X-Accel-Redirect в рабочем процессе мог произойти segmentation fault.
51 Спасибо Jiří Setnička.
52
53 *) Исправление: при использовании HTTP/3 в рабочем процессе мог
54 произойти segmentation fault.
55
56 *) Исправления и улучшения в HTTP/3.
57
58
59 Изменения в nginx 1.25.3 24.10.2023
60
61 *) Изменение: улучшено детектирование некорректного поведения клиентов
62 при использовании HTTP/2.
63
64 *) Добавление: уменьшение времени запуска при использовании большого
65 количества location'ов.
66 Спасибо Yusuke Nojima.
67
68 *) Исправление: при использовании HTTP/2 без SSL в рабочем процессе мог
69 произойти segmentation fault; ошибка появилась в 1.25.1.
70
71 *) Исправление: строка "Status" в заголовке ответа бэкенда с пустой
72 поясняющей фразой обрабатывалась некорректно.
73
74 *) Исправление: утечки памяти во время переконфигурации при
75 использовании библиотеки PCRE2.
76 Спасибо ZhenZhong Wu.
77
78 *) Исправления и улучшения в HTTP/3.
79
80
81 Изменения в nginx 1.25.2 15.08.2023
82
83 *) Добавление: path MTU discovery при использовании HTTP/3.
84
85 *) Добавление: поддержка шифра TLS_AES_128_CCM_SHA256 при использовании
86 HTTP/3.
87
88 *) Изменение: теперь при загрузке конфигурации OpenSSL nginx использует
89 appname "nginx".
90
91 *) Изменение: теперь nginx не пытается загружать конфигурацию OpenSSL,
92 если для сборки OpenSSL использовался параметр --with-openssl и
93 переменная окружения OPENSSL_CONF не установлена.
94
95 *) Исправление: в переменной $body_bytes_sent при использовании HTTP/3.
96
97 *) Исправление: в HTTP/3.
98
99
100 Изменения в nginx 1.25.1 13.06.2023
101
102 *) Добавление: директива http2, позволяющая включать HTTP/2 в отдельных
103 блоках server; параметр http2 директивы listen объявлен устаревшим.
104
105 *) Изменение: поддержка HTTP/2 server push упразднена.
106
107 *) Изменение: устаревшая директива ssl больше не поддерживается.
108
109 *) Исправление: в HTTP/3 при использовании OpenSSL.
110
111
112 Изменения в nginx 1.25.0 23.05.2023
113
114 *) Добавление: экспериментальная поддержка HTTP/3.
115
116
117 Изменения в nginx 1.23.4 28.03.2023
118
119 *) Изменение: теперь протокол TLSv1.3 разрешён по умолчанию.
120
121 *) Изменение: теперь nginx выдаёт предупреждение при переопределении
122 параметров listen-сокета, задающих используемые протоколы.
123
124 *) Изменение: теперь, если клиент использует pipelining, nginx закрывает
125 соединения с ожиданием дополнительных данных (lingering close).
126
127 *) Добавление: поддержка byte ranges для ответов модуля
128 ngx_http_gzip_static_module.
129
130 *) Исправление: диапазоны портов в директиве listen не работали; ошибка
131 появилась в 1.23.3.
132 Спасибо Валентину Бартеневу.
133
134 *) Исправление: для обработки запроса мог быть выбран неверный location,
135 если в конфигурации использовался префиксный location длиннее 255
136 символов.
137
138 *) Исправление: не-ASCII символы в именах файлов на Windows не
139 поддерживались модулями ngx_http_autoindex_module и
140 ngx_http_dav_module, а также директивой include.
141
142 *) Изменение: уровень логгирования ошибок SSL "data length too long",
143 "length too short", "bad legacy version", "no shared signature
144 algorithms", "bad digest length", "missing sigalgs extension",
145 "encrypted length too long", "bad length", "bad key update", "mixed
146 handshake and non handshake data", "ccs received early", "data
147 between ccs and finished", "packet length too long", "too many warn
148 alerts", "record too small", и "got a fin before a ccs" понижен с
149 уровня crit до info.
150
151 *) Исправление: при использовании HTTP/2 и директивы error_page для
152 перенаправления ошибок с кодом 400 могла происходить утечка сокетов.
153
154 *) Исправление: сообщения об ошибках записи в syslog не содержали
155 информации о том, что ошибки происходили в процессе записи в syslog.
156 Спасибо Safar Safarly.
157
158 *) Изменение: при использовании zlib-ng в логах появлялись сообщения
159 "gzip filter failed to use preallocated memory".
160
161 *) Исправление: в почтовом прокси-сервере.
162
163
164 Изменения в nginx 1.23.3 13.12.2022
165
166 *) Исправление: при чтении заголовка протокола PROXY версии 2,
167 содержащего большое количество TLV, могла возникать ошибка.
168
169 *) Исправление: при использовании SSI для обработки подзапросов,
170 созданных другими модулями, в рабочем процессе мог произойти
171 segmentation fault.
172 Спасибо Ciel Zhao.
173
174 *) Изменение: теперь, если при преобразовании в адреса имени хоста,
175 указанного в директиве listen, возвращается несколько адресов, nginx
176 игнорирует дубликаты среди этих адресов.
177
178 *) Исправление: nginx мог нагружать процессор при небуферизированном
179 проксировании, если использовались SSL-соединения с бэкендами.
180
181
182 Изменения в nginx 1.23.2 19.10.2022
183
184 *) Безопасность: обработка специально созданного mp4-файла модулем
185 ngx_http_mp4_module могла приводить к падению рабочего процесса,
186 отправке клиенту части содержимого памяти рабочего процесса, а также
187 потенциально могла иметь другие последствия (CVE-2022-41741,
188 CVE-2022-41742).
189
190 *) Добавление: переменные "$proxy_protocol_tlv_...".
191
192 *) Добавление: ключи шифрования TLS session tickets теперь автоматически
193 меняются при использовании разделяемой памяти в ssl_session_cache.
194
195 *) Изменение: уровень логгирования ошибок SSL "bad record type" понижен
196 с уровня crit до info.
197 Спасибо Murilo Andrade.
198
199 *) Изменение: теперь при использовании разделяемой памяти в
200 ssl_session_cache сообщения "could not allocate new session"
201 логгируются на уровне warn вместо alert и не чаще одного раза в
202 секунду.
203
204 *) Исправление: nginx/Windows не собирался с OpenSSL 3.0.x.
205
206 *) Исправление: в логгировании ошибок протокола PROXY.
207 Спасибо Сергею Брестеру.
208
209 *) Изменение: при использовании TLSv1.3 с OpenSSL разделяемая память из
210 ssl_session_cache расходовалась в том числе на сессии, использующие
211 TLS session tickets.
212
213 *) Изменение: таймаут, заданный с помощью директивы ssl_session_timeout,
214 не работал при использовании TLSv1.3 с OpenSSL или BoringSSL.
215
216
217 Изменения в nginx 1.23.1 19.07.2022
218
219 *) Добавление: оптимизация использования памяти в конфигурациях с
220 SSL-проксированием.
221
222 *) Добавление: теперь с помощью параметра "ipv4=off" директивы
223 "resolver" можно запретить поиск IPv4-адресов при преобразовании имён
224 в адреса.
225
226 *) Изменение: уровень логгирования ошибок SSL "bad key share", "bad
227 extension", "bad cipher" и "bad ecpoint" понижен с уровня crit до
228 info.
229
230 *) Исправление: при возврате диапазонов nginx не удалял строку заголовка
231 "Content-Range", если она присутствовала в исходном ответе бэкенда.
232
233 *) Исправление: проксированный ответ мог быть отправлен не полностью при
234 переконфигурации на Linux; ошибка появилась в 1.17.5.
235
236
237 Изменения в nginx 1.23.0 21.06.2022
238
239 *) Изменение во внутреннем API: теперь строки заголовков представлены
240 связными списками.
241
242 *) Изменение: теперь nginx объединяет произвольные строки заголовков с
243 одинаковыми именами при отправке на FastCGI-, SCGI- и uwsgi-бэкенды,
244 в методе $r->header_in() модуля ngx_http_perl_module, и при доступе
245 через переменные "$http_...", "$sent_http_...", "$sent_trailer_...",
246 "$upstream_http_..." и "$upstream_trailer_...".
247
248 *) Исправление: если в заголовке ответа бэкенда было несколько строк
249 "Vary", при кэшировании nginx учитывал только последнюю из них.
250
251 *) Исправление: если в заголовке ответа бэкенда было несколько строк
252 "WWW-Authenticate" и использовался перехват ошибок с кодом 401 от
253 бэкенда или директива auth_request, nginx пересылал клиенту только
254 первую из этих строк.
255
256 *) Изменение: уровень логгирования ошибок SSL "application data after
257 close notify" понижен с уровня crit до info.
258
259 *) Исправление: соединения могли зависать, если nginx был собран на
260 Linux 2.6.17 и новее, а использовался на системах без поддержки
261 EPOLLRDHUP, в частности, на системах с эмуляцией epoll; ошибка
262 появилась в 1.17.5.
263 Спасибо Marcus Ball.
264
265 *) Исправление: nginx не кэшировал ответ, если строка заголовка ответа
266 "Expires" запрещала кэширование, а последующая строка заголовка
267 "Cache-Control" разрешала кэширование.
268
269
270 Изменения в nginx 1.21.6 25.01.2022
271
272 *) Исправление: при использование EPOLLEXCLUSIVE на Linux распределение
273 клиентских соединений между рабочими процессами было неравномерным.
274
275 *) Исправление: во время плавного завершения старых рабочих процессов
276 nginx возвращал в ответах строку заголовка "Connection: keep-alive".
277
278 *) Исправление: в директиве ssl_session_ticket_key при использовании
279 TLSv1.3.
280
281
282 Изменения в nginx 1.21.5 28.12.2021
283
284 *) Изменение: теперь nginx по умолчанию собирается с библиотекой PCRE2.
285
286 *) Изменение: теперь nginx всегда использует sendfile(SF_NODISKIO) на
287 FreeBSD.
288
289 *) Добавление: поддержка sendfile(SF_NOCACHE) на FreeBSD.
290
291 *) Добавление: переменная $ssl_curve.
292
293 *) Исправление: при использовании HTTP/2 без SSL вместе с директивами
294 sendfile и aio соединения могли зависать.
295
296
297 Изменения в nginx 1.21.4 02.11.2021
298
299 *) Изменение: поддержка NPN вместо ALPN для установления
300 HTTP/2-соединений упразднена.
301
302 *) Изменение: теперь nginx закрывает SSL соединение, если клиент
303 использует ALPN, но nginx не поддерживает ни один из присланных
304 клиентом протоколов.
305
306 *) Изменение: в директиве sendfile_max_chunk значение по умолчанию
307 изменено на 2 мегабайта.
308
309 *) Добавление: директива proxy_half_close в модуле stream.
310
311 *) Добавление: директива ssl_alpn в модуле stream.
312
313 *) Добавление: переменная $ssl_alpn_protocol.
314
315 *) Добавление: поддержка SSL_sendfile() при использовании OpenSSL 3.0.
316
317 *) Добавление: директива mp4_start_key_frame в модуле
318 ngx_http_mp4_module.
319 Спасибо Tracey Jaquith.
320
321 *) Исправление: в переменной $content_length при использовании chunked
322 transfer encoding.
323
324 *) Исправление: при получении ответа некорректной длины от проксируемого
325 бэкенда nginx мог тем не менее закэшировать соединение.
326 Спасибо Awdhesh Mathpal.
327
328 *) Исправление: некорректные заголовки от бэкендов логгировались на
329 уровне info вместо error; ошибка появилась в 1.21.1.
330
331 *) Исправление: при использовании HTTP/2 и директивы aio_write запросы
332 могли зависать.
333
334
335 Изменения в nginx 1.21.3 07.09.2021
336
337 *) Изменение: оптимизация чтения тела запроса при использовании HTTP/2.
338
339 *) Исправление: во внутреннем API для обработки тела запроса при
340 использовании HTTP/2 и буферизации обрабатываемых данных.
341
342
343 Изменения в nginx 1.21.2 31.08.2021
344
345 *) Изменение: теперь nginx возвращает ошибку, если в запросе по
346 протоколу HTTP/1.0 присутствует строка заголовка "Transfer-Encoding".
347
348 *) Изменение: экспортные шифры больше не поддерживаются.
349
350 *) Добавление: совместимость с OpenSSL 3.0.
351
352 *) Добавление: теперь серверу аутентификации почтового прокси-сервера
353 передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher".
354 Спасибо Rob Mueller.
355
356 *) Добавление: API для обработки тела запроса теперь позволяет
357 буферизировать обрабатываемые данные.
358
359 *) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать
360 после SSL handshake.
361
362 *) Исправление: уровень безопасности, доступный в OpenSSL 1.1.0 и новее,
363 не учитывался при загрузке сертификатов сервера, если был задан через
364 "@SECLEVEL=N" в директиве ssl_ciphers.
365
366 *) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если
367 использовались методы select, poll или /dev/poll.
368
369 *) Исправление: при использовании HTTP/2 тело запроса всегда
370 записывалось на диск, если в запросе не было строки заголовка
371 "Content-Length".
372
373
374 Изменения в nginx 1.21.1 06.07.2021
375
376 *) Изменение: теперь nginx для метода CONNECT всегда возвращает ошибку.
377
378 *) Изменение: теперь nginx всегда возвращает ошибку, если в запросе
379 одновременно присутствуют строки заголовка "Content-Length" и
380 "Transfer-Encoding".
381
382 *) Изменение: теперь nginx всегда возвращает ошибку, если в строке
383 запроса используются пробелы или управляющие символы.
384
385 *) Изменение: теперь nginx всегда возвращает ошибку, если в имени
386 заголовка используются пробелы или управляющие символы.
387
388 *) Изменение: теперь nginx всегда возвращает ошибку, если в строке
389 "Host" заголовка запроса используются пробелы или управляющие
390 символы.
391
392 *) Изменение: оптимизация тестирования конфигурации при использовании
393 большого количества listen-сокетов.
394
395 *) Исправление: nginx не экранировал символы """, "<", ">", "\", "^",
396 "`", "{", "|", и "}" при проксировании с изменением URI запроса.
397
398 *) Исправление: SSL-переменные могли быть пустыми при записи в лог;
399 ошибка появилась в 1.19.5.
400
401 *) Исправление: keepalive-соединения с gRPC-бэкендами могли не
402 закрываться после получения GOAWAY-фрейма.
403
404 *) Исправление: уменьшено потребление памяти для долгоживущих запросов
405 при проксировании с использованием более 64 буферов.
406
407
408 Изменения в nginx 1.21.0 25.05.2021
409
410 *) Безопасность: при использовании директивы resolver во время обработки
411 ответа DNS-сервера могла происходить перезапись одного байта памяти,
412 что позволяло атакующему, имеющему возможность подделывать UDP-пакеты
413 от DNS-сервера, вызвать падение рабочего процесса или, потенциально,
414 выполнение произвольного кода (CVE-2021-23017).
415
416 *) Добавление: директивы proxy_ssl_certificate,
417 proxy_ssl_certificate_key, grpc_ssl_certificate,
418 grpc_ssl_certificate_key, uwsgi_ssl_certificate и
419 uwsgi_ssl_certificate_key поддерживают переменные.
420
421 *) Добавление: директива max_errors в почтовом прокси-сервере.
422
423 *) Добавление: почтовый прокси-сервер поддерживает POP3 и IMAP
424 pipelining.
425
426 *) Добавление: параметр fastopen директивы listen в модуле stream.
427 Спасибо Anbang Wen.
428
429 *) Исправление: специальные символы не экранировались при автоматическом
430 перенаправлении с добавлением завершающего слэша.
431
432 *) Исправление: при использовании SMTP pipelining соединения с клиентами
433 в почтовом прокси-сервере могли неожиданно закрываться.
434
435
436 Изменения в nginx 1.19.10 13.04.2021
437
438 *) Изменение: в директиве keepalive_requests значение по умолчанию
439 изменено на 1000.
440
441 *) Добавление: директива keepalive_time.
442
443 *) Добавление: переменная $connection_time.
444
445 *) Изменение: при использовании zlib-ng в логах появлялись сообщения
446 "gzip filter failed to use preallocated memory".
447
448
449 Изменения в nginx 1.19.9 30.03.2021
450
451 *) Исправление: nginx не собирался с почтовым прокси-сервером, но без
452 модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8.
453
454 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
455 "upstream sent response body larger than indicated content length";
456 ошибка появилась в 1.19.1.
457
458 *) Исправление: если клиент закрывал соединение в момент отбрасывания
459 тела запроса, nginx мог не закрыть соединение до истечения
460 keepalive-таймаута.
461
462 *) Исправление: при ожидании задержки limit_req или auth_delay, а также
463 при работе с бэкендами nginx мог не обнаружить, что соединение уже
464 закрыто клиентом.
465
466 *) Исправление: в методе обработки соединений eventport.
467
468
469 Изменения в nginx 1.19.8 09.03.2021
470
471 *) Добавление: в директиве proxy_cookie_flags теперь флаги можно
472 задавать с помощью переменных.
473
474 *) Добавление: параметр proxy_protocol в директиве listen, директивы
475 proxy_protocol и set_real_ip_from в почтовом прокси-сервере.
476
477 *) Исправление: HTTP/2-соединения сразу закрывались при использовании
478 "keepalive_timeout 0"; ошибка появилась в 1.19.7.
479
480 *) Исправление: некоторые ошибки логгировались как неизвестные, если
481 nginx был собран с glibc 2.32.
482
483 *) Исправление: в методе обработки соединений eventport.
484
485
486 Изменения в nginx 1.19.7 16.02.2021
487
488 *) Изменение: обработка соединений в HTTP/2 была изменена и теперь более
489 соответствует HTTP/1.x; директивы http2_recv_timeout,
490 http2_idle_timeout и http2_max_requests упразднены, вместо них
491 следует использовать директивы keepalive_timeout и
492 keepalive_requests.
493
494 *) Изменение: директивы http2_max_field_size и http2_max_header_size
495 упразднены, вместо них следует использовать директиву
496 large_client_header_buffers.
497
498 *) Добавление: теперь при исчерпании свободных соединений nginx
499 закрывает не только keepalive-соединения, но и соединения в lingering
500 close.
501
502 *) Исправление: в логах могли появляться сообщения "zero size buf in
503 output", если бэкенд возвращал некорректный ответ при
504 небуферизированном проксировании; ошибка появилась в 1.19.1.
505
506 *) Исправление: при использовании директивы return вместе с image_filter
507 или xslt_stylesheet HEAD-запросы обрабатывались некорректно.
508
509 *) Исправление: в директиве add_trailer.
510
511
512 Изменения в nginx 1.19.6 15.12.2020
513
514 *) Исправление: ошибки "no live upstreams", если server в блоке upstream
515 был помечен как down.
516
517 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
518 segmentation fault; ошибка появилась в 1.19.5.
519
520 *) Исправление: nginx возвращал ошибку 400 на запросы вида
521 "GET http://example.com?args HTTP/1.0".
522
523 *) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module.
524 Спасибо Chris Newton.
525
526
527 Изменения в nginx 1.19.5 24.11.2020
528
529 *) Добавление: ключ -e.
530
531 *) Добавление: при сборке дополнительных модулей теперь можно указывать
532 одни и те же исходные файлы в разных модулях.
533
534 *) Исправление: SSL shutdown не работал при закрытии соединений с
535 ожиданием дополнительных данных (lingering close).
536
537 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
538 "upstream sent frame for closed stream".
539
540 *) Исправление: во внутреннем API для обработки тела запроса.
541
542
543 Изменения в nginx 1.19.4 27.10.2020
544
545 *) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
546 grpc_ssl_conf_command и uwsgi_ssl_conf_command.
547
548 *) Добавление: директива ssl_reject_handshake.
549
550 *) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере.
551
552
553 Изменения в nginx 1.19.3 29.09.2020
554
555 *) Добавление: модуль ngx_stream_set_module.
556
557 *) Добавление: директива proxy_cookie_flags.
558
559 *) Добавление: директива userid_flags.
560
561 *) Исправление: расширение управления кэшированием stale-if-error
562 ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502,
563 503, 504, 403, 404 или 429.
564
565 *) Исправление: если использовалось кэширование и бэкенд возвращал
566 ответы с строкой заголовка Vary, в логах могли появляться сообщения
567 "[crit] cache file ... has too long header".
568
569 *) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться
570 сообщения "[crit] SSL_write() failed".
571
572 *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
573 failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2.
574
575 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
576 произойти segmentation fault, если ошибки с кодом 400 с помощью
577 директивы error_page перенаправлялись в проксируемый location.
578
579 *) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в
580 модуле njs.
581
582
583 Изменения в nginx 1.19.2 11.08.2020
584
585 *) Изменение: теперь nginx начинает закрывать keepalive-соединения, не
586 дожидаясь исчерпания всех свободных соединений, а также пишет об этом
587 предупреждение в лог ошибок.
588
589 *) Изменение: оптимизация чтения тела запроса при использовании chunked
590 transfer encoding.
591
592 *) Исправление: утечки памяти при использовании директивы ssl_ocsp.
593
594 *) Исправление: в логах могли появляться сообщения "zero size buf in
595 output", если FastCGI-сервер возвращал некорректный ответ; ошибка
596 появилась в 1.19.1.
597
598 *) Исправление: в рабочем процессе мог произойти segmentation fault,
599 если размеры large_client_header_buffers отличались в разных
600 виртуальных серверах.
601
602 *) Исправление: SSL shutdown мог не работать.
603
604 *) Исправление: в логах могли появляться сообщения "SSL_shutdown()
605 failed (SSL: ... bad write retry)".
606
607 *) Исправление: в модуле ngx_http_slice_module.
608
609 *) Исправление: в модуле ngx_http_xslt_filter_module.
610
611
612 Изменения в nginx 1.19.1 07.07.2020
613
614 *) Изменение: директивы lingering_close, lingering_time и
615 lingering_timeout теперь работают при использовании HTTP/2.
616
617 *) Изменение: теперь лишние данные, присланные бэкендом, всегда
618 отбрасываются.
619
620 *) Изменение: теперь при получении слишком короткого ответа от
621 FastCGI-сервера nginx пытается отправить клиенту доступную часть
622 ответа, после чего закрывает соединение с клиентом.
623
624 *) Изменение: теперь при получении ответа некорректной длины от
625 gRPC-бэкенда nginx прекращает обработку ответа с ошибкой.
626
627 *) Добавление: параметр min_free в директивах proxy_cache_path,
628 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
629 Спасибо Adam Bambuch.
630
631 *) Исправление: nginx не удалял unix domain listen-сокеты при плавном
632 завершении по сигналу SIGQUIT.
633
634 *) Исправление: UDP-пакеты нулевого размера не проксировались.
635
636 *) Исправление: проксирование на uwsgi-бэкенды с использованием SSL
637 могло не работать.
638 Спасибо Guanzhong Chen.
639
640 *) Исправление: в обработке ошибок при использовании директивы ssl_ocsp.
641
642 *) Исправление: при использовании файловых систем XFS и NFS размер кэша
643 на диске мог считаться некорректно.
644
645 *) Исправление: если сервер memcached возвращал некорректный ответ, в
646 логах могли появляться сообщения "negative size buf in writer".
647
648
649 Изменения в nginx 1.19.0 26.05.2020
650
651 *) Добавление: проверка клиентских сертификатов с помощью OCSP.
652
653 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
654 "upstream sent frame for closed stream".
655
656 *) Исправление: OCSP stapling мог не работать, если не была указана
657 директива resolver.
658
659 *) Исправление: соединения с некорректным HTTP/2 preface не
660 логгировались.
661
662
663 Изменения в nginx 1.17.10 14.04.2020
664
665 *) Добавление: директива auth_delay.
666
667
668 Изменения в nginx 1.17.9 03.03.2020
669
670 *) Изменение: теперь nginx не разрешает несколько строк "Host" в
671 заголовке запроса.
672
673 *) Исправление: nginx игнорировал дополнительные строки
674 "Transfer-Encoding" в заголовке запроса.
675
676 *) Исправление: утечки сокетов при использовании HTTP/2.
677
678 *) Исправление: в рабочем процессе мог произойти segmentation fault,
679 если использовался OCSP stapling.
680
681 *) Исправление: в модуле ngx_http_mp4_module.
682
683 *) Исправление: при перенаправлении ошибок с кодом 494 с помощью
684 директивы error_page nginx возвращал ответ с кодом 494 вместо 400.
685
686 *) Исправление: утечки сокетов при использовании подзапросов в модуле
687 njs и директивы aio.
688
689
690 Изменения в nginx 1.17.8 21.01.2020
691
692 *) Добавление: директива grpc_pass поддерживает переменные.
693
694 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
695 произойти таймаут; ошибка появилась в 1.17.5.
696
697 *) Исправление: в директиве debug_points при использовании HTTP/2.
698 Спасибо Даниилу Бондареву.
699
700
701 Изменения в nginx 1.17.7 24.12.2019
702
703 *) Исправление: на старте или во время переконфигурации мог произойти
704 segmentation fault, если в конфигурации использовалась директива
705 rewrite с пустой строкой замены.
706
707 *) Исправление: в рабочем процессе мог произойти segmentation fault,
708 если директива break использовалась совместно с директивой alias или
709 директивой proxy_pass с URI.
710
711 *) Исправление: строка Location заголовка ответа могла содержать мусор,
712 если URI запроса был изменён на URI, содержащий нулевой символ.
713
714 *) Исправление: при возврате перенаправлений с помощью директивы
715 error_page запросы с телом обрабатывались некорректно; ошибка
716 появилась в 0.7.12.
717
718 *) Исправление: утечки сокетов при использовании HTTP/2.
719
720 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог
721 произойти таймаут; ошибка появилась в 1.17.5.
722
723 *) Исправление: в модуле ngx_http_dav_module.
724
725
726 Изменения в nginx 1.17.6 19.11.2019
727
728 *) Добавление: переменные $proxy_protocol_server_addr и
729 $proxy_protocol_server_port.
730
731 *) Добавление: директива limit_conn_dry_run.
732
733 *) Добавление: переменные $limit_req_status и $limit_conn_status.
734
735
736 Изменения в nginx 1.17.5 22.10.2019
737
738 *) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
739 доступен, чтобы избежать чтения из быстрого соединения в течение
740 долгого времени.
741
742 *) Исправление: неполные закодированные символы в конце URI запроса
743 игнорировались.
744
745 *) Исправление: "/." и "/.." в конце URI запроса не нормализовывались.
746
747 *) Исправление: в директиве merge_slashes.
748
749 *) Исправление: в директиве ignore_invalid_headers.
750 Спасибо Alan Kemp.
751
752 *) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее.
753
754
755 Изменения в nginx 1.17.4 24.09.2019
756
757 *) Изменение: улучшено детектирование некорректного поведения клиентов в
758 HTTP/2.
759
760 *) Изменение: в обработке непрочитанного тела запроса при возврате
761 ошибок в HTTP/2.
762
763 *) Исправление: директива worker_shutdown_timeout могла не работать при
764 использовании HTTP/2.
765
766 *) Исправление: при использовании HTTP/2 и директивы
767 proxy_request_buffering в рабочем процессе мог произойти segmentation
768 fault.
769
770 *) Исправление: на Windows при использовании SSL уровень записи в лог
771 ошибки ECONNABORTED был "crit" вместо "error".
772
773 *) Исправление: nginx игнорировал лишние данные при использовании
774 chunked transfer encoding.
775
776 *) Исправление: если использовалась директива return и при чтении тела
777 запроса возникала ошибка, nginx всегда возвращал ошибку 500.
778
779 *) Исправление: в обработке ошибок выделения памяти.
780
781
782 Изменения в nginx 1.17.3 13.08.2019
783
784 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
785 потребление памяти и ресурсов процессора (CVE-2019-9511,
786 CVE-2019-9513, CVE-2019-9516).
787
788 *) Исправление: при использовании сжатия в логах могли появляться
789 сообщения "zero size buf"; ошибка появилась в 1.17.2.
790
791 *) Исправление: при использовании директивы resolver в SMTP
792 прокси-сервере в рабочем процессе мог произойти segmentation fault.
793
794
795 Изменения в nginx 1.17.2 23.07.2019
796
797 *) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4.
798 Спасибо Илье Леошкевичу.
799
800 *) Изменение: метод $r->internal_redirect() встроенного перла теперь
801 ожидает закодированный URI.
802
803 *) Добавление: теперь с помощью метода $r->internal_redirect()
804 встроенного перла можно перейти в именованный location.
805
806 *) Исправление: в обработке ошибок во встроенном перле.
807
808 *) Исправление: на старте или во время переконфигурации мог произойти
809 segmentation fault, если в конфигурации использовалось значение hash
810 bucket size больше 64 килобайт.
811
812 *) Исправление: при использовании методов обработки соединений select,
813 poll и /dev/poll nginx мог нагружать процессор во время
814 небуферизованного проксирования и при проксировании
815 WebSocket-соединений.
816
817 *) Исправление: в модуле ngx_http_xslt_filter_module.
818
819 *) Исправление: в модуле ngx_http_ssi_filter_module.
820
821
822 Изменения в nginx 1.17.1 25.06.2019
823
824 *) Добавление: директива limit_req_dry_run.
825
826 *) Добавление: при использовании директивы hash в блоке upstream пустой
827 ключ хэширования теперь приводит к переключению на round-robin
828 балансировку.
829 Спасибо Niklas Keller.
830
831 *) Исправление: в рабочем процессе мог произойти segmentation fault,
832 если использовалось кэширование и директива image_filter, а ошибки с
833 кодом 415 перенаправлялись с помощью директивы error_page; ошибка
834 появилась в 1.11.10.
835
836 *) Исправление: в рабочем процессе мог произойти segmentation fault,
837 если использовался встроенный перл; ошибка появилась в 1.7.3.
838
839
840 Изменения в nginx 1.17.0 21.05.2019
841
842 *) Добавление: директивы limit_rate и limit_rate_after поддерживают
843 переменные.
844
845 *) Добавление: директивы proxy_upload_rate и proxy_download_rate в
846 модуле stream поддерживают переменные.
847
848 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8.
849
850 *) Изменение: теперь postpone-фильтр собирается всегда.
851
852 *) Исправление: директива include не работала в блоках if и
853 limit_except.
854
855 *) Исправление: в обработке byte ranges.
856
857
858 Изменения в nginx 1.15.12 16.04.2019
859
860 *) Исправление: в рабочем процессе мог произойти segmentation fault,
861 если в директивах ssl_certificate или ssl_certificate_key
862 использовались переменные и был включён OCSP stapling.
863
864
865 Изменения в nginx 1.15.11 09.04.2019
866
867 *) Исправление: в директиве ssl_stapling_file на Windows.
868
869
870 Изменения в nginx 1.15.10 26.03.2019
871
872 *) Изменение: теперь при использовании имени хоста в директиве listen
873 nginx создаёт listen-сокеты для всех адресов, соответствующих этому
874 имени (ранее использовался только первый адрес).
875
876 *) Добавление: диапазоны портов в директиве listen.
877
878 *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
879 из переменных.
880
881 *) Изменение: переменная $ssl_server_name могла быть пустой при
882 использовании OpenSSL 1.1.1.
883
884 *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
885 ошибка появилась в 1.15.9.
886
887
888 Изменения в nginx 1.15.9 26.02.2019
889
890 *) Добавление: директивы ssl_certificate и ssl_certificate_key
891 поддерживают переменные.
892
893 *) Добавление: метод poll теперь доступен на Windows при использовании
894 Windows Vista и новее.
895
896 *) Исправление: если при использовании метода select на Windows
897 происходила ошибка при установлении соединения с бэкендом, nginx
898 ожидал истечения таймаута на установление соединения.
899
900 *) Исправление: директивы proxy_upload_rate и proxy_download_rate в
901 модуле stream работали некорректно при проксировании UDP-пакетов.
902
903
904 Изменения в nginx 1.15.8 25.12.2018
905
906 *) Добавление: переменная $upstream_bytes_sent.
907 Спасибо Piotr Sikora.
908
909 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
910 Спасибо Геннадию Махомеду.
911
912 *) Исправление: в директиве proxy_cache_background_update.
913
914 *) Исправление: в директиве geo при использовании unix domain
915 listen-сокетов.
916
917 *) Изменение: при использовании директивы ssl_early_data с OpenSSL в
918 логах могли появляться сообщения "ignoring stale global SSL error ...
919 bad length".
920
921 *) Исправление: в nginx/Windows.
922
923 *) Исправление: в модуле ngx_http_autoindex_module на 32-битных
924 платформах.
925
926
927 Изменения в nginx 1.15.7 27.11.2018
928
929 *) Добавление: директива proxy_requests в модуле stream.
930
931 *) Добавление: параметр "delay" директивы "limit_req".
932 Спасибо Владиславу Шабанову и Петру Щучкину.
933
934 *) Исправление: утечки памяти в случае ошибок при переконфигурации.
935
936 *) Исправление: в переменных $upstream_response_time,
937 $upstream_connect_time и $upstream_header_time.
938
939 *) Исправление: в рабочем процессе мог произойти segmentation fault,
940 если использовался модуль ngx_http_mp4_module на 32-битных
941 платформах.
942
943
944 Изменения в nginx 1.15.6 06.11.2018
945
946 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
947 потреблению памяти (CVE-2018-16843) и ресурсов процессора
948 (CVE-2018-16844).
949
950 *) Безопасность: при обработке специально созданного mp4-файла модулем
951 ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
952 отправлено клиенту (CVE-2018-16845).
953
954 *) Добавление: директивы proxy_socket_keepalive,
955 fastcgi_socket_keepalive, grpc_socket_keepalive,
956 memcached_socket_keepalive, scgi_socket_keepalive и
957 uwsgi_socket_keepalive.
958
959 *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
960 OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.
961
962 *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
963 количество памяти.
964
965
966 Изменения в nginx 1.15.5 02.10.2018
967
968 *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
969 процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.
970
971 *) Исправление: незначительных потенциальных ошибок.
972
973
974 Изменения в nginx 1.15.4 25.09.2018
975
976 *) Добавление: теперь директиву ssl_early_data можно использовать с
977 OpenSSL.
978
979 *) Исправление: в модуле ngx_http_uwsgi_module.
980 Спасибо Chris Caputo.
981
982 *) Исправление: соединения к некоторым gRPC-бэкендам могли не
983 кэшироваться при использовании директивы keepalive.
984
985 *) Исправление: при использовании директивы error_page для
986 перенаправления ошибок, возникающих на ранних этапах обработки
987 запроса, в частности ошибок с кодом 400, могла происходить утечка
988 сокетов.
989
990 *) Исправление: директива return при возврате ошибок не изменяла код
991 ответа, если запрос был перенаправлен с помощью директивы error_page.
992
993 *) Исправление: стандартные сообщения об ошибках и ответы модуля
994 ngx_http_autoindex_module содержали атрибут bgcolor, что могло
995 приводить к их некорректному отображению при использовании
996 пользовательских настроек цветов в браузерах.
997 Спасибо Nova DasSarma.
998
999 *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
1000 "no suitable signature algorithm" понижен с уровня crit до info.
1001
1002
1003 Изменения в nginx 1.15.3 28.08.2018
1004
1005 *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.
1006
1007 *) Добавление: директива ssl_early_data, сейчас доступна при
1008 использовании BoringSSL.
1009
1010 *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
1011 upstream.
1012
1013 *) Исправление: модуль ngx_http_dav_module при копировании файла поверх
1014 существующего файла с помощью метода COPY не обнулял целевой файл.
1015
1016 *) Исправление: модуль ngx_http_dav_module при перемещении файла между
1017 файловыми системами с помощью метода MOVE устанавливал нулевые права
1018 доступа на результирующий файл и не сохранял время изменения файла.
1019
1020 *) Исправление: модуль ngx_http_dav_module при копировании файла с
1021 помощью метода COPY для результирующего файла использовал права
1022 доступа по умолчанию.
1023
1024 *) Изменение: некоторые клиенты могли не работать при использовании
1025 HTTP/2; ошибка появилась в 1.13.5.
1026
1027 *) Исправление: nginx не собирался с LibreSSL 2.8.0.
1028
1029
1030 Изменения в nginx 1.15.2 24.07.2018
1031
1032 *) Добавление: переменная $ssl_preread_protocol в модуле
1033 ngx_stream_ssl_preread_module.
1034
1035 *) Добавление: теперь при использовании директивы
1036 reset_timedout_connection nginx сбрасывает соединения, закрываемые с
1037 кодом 444.
1038
1039 *) Изменение: уровень логгирования ошибок SSL "http request", "https
1040 proxy request", "unsupported protocol" и "version too low" понижен с
1041 уровня crit до info.
1042
1043 *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
1044 первой попытке отправки происходила ошибка.
1045
1046 *) Исправление: параметр reuseport директивы listen игнорировался, если
1047 количество рабочих процессов было задано после директивы listen.
1048
1049 *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
1050 ssl_prefer_server_ciphers нельзя было выключить в виртуальном
1051 сервере, если она была включена в сервере по умолчанию.
1052
1053 *) Исправление: повторное использование SSL-сессий к бэкендам не
1054 работало с протоколом TLS 1.3.
1055
1056
1057 Изменения в nginx 1.15.1 03.07.2018
1058
1059 *) Добавление: директива random в блоке upstream.
1060
1061 *) Добавление: улучшена производительность при использовании директив
1062 hash и ip_hash совместно с директивой zone.
1063
1064 *) Добавление: параметр reuseport директивы listen теперь использует
1065 SO_REUSEPORT_LB на FreeBSD 12.
1066
1067 *) Исправление: HTTP/2 server push не работал, если SSL терминировался
1068 прокси-сервером перед nginx'ом.
1069
1070 *) Исправление: директива tcp_nopush всегда использовалась для
1071 соединений к бэкендам.
1072
1073 *) Исправление: при отправке сохранённого на диск тела запроса на
1074 gRPC-бэкенд могли возникать ошибки.
1075
1076
1077 Изменения в nginx 1.15.0 05.06.2018
1078
1079 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
1080 следует использовать параметр ssl директивы listen.
1081
1082 *) Изменение: теперь при использовании директивы listen с параметром ssl
1083 nginx определяет отсутствие SSL-сертификатов при тестировании
1084 конфигурации.
1085
1086 *) Добавление: теперь модуль stream умеет обрабатывать несколько
1087 входящих UDP-пакетов от клиента в рамках одной сессии.
1088
1089 *) Исправление: в директиве proxy_cache_valid можно было указать
1090 некорректный код ответа.
1091
1092 *) Исправление: nginx не собирался gcc 8.1.
1093
1094 *) Исправление: логгирование в syslog останавливалось при изменении
1095 локального IP-адреса.
1096
1097 *) Исправление: nginx не собирался компилятором clang, если был
1098 установлен CUDA SDK; ошибка появилась в 1.13.8.
1099
1100 *) Исправление: при использовании unix domain listen-сокетов на FreeBSD
1101 в процессе обновления исполняемого файла в логе могли появляться
1102 сообщения "getsockopt(TCP_FASTOPEN) ... failed".
1103
1104 *) Исправление: nginx не собирался на Fedora 28 Linux.
1105
1106 *) Исправление: при использовании директивы limit_req заданная скорость
1107 обработки запросов могла не соблюдаться.
1108
1109 *) Исправление: в обработке адресов клиентов при использовании unix
1110 domain listen-сокетов для работы с датаграммами на Linux.
1111
1112 *) Исправление: в обработке ошибок выделения памяти.
1113
1114
1115 Изменения в nginx 1.13.12 10.04.2018
1116
1117 *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
1118 могли неожиданно закрываться.
1119
1120
1121 Изменения в nginx 1.13.11 03.04.2018
1122
1123 *) Добавление: параметр proxy_protocol директивы listen теперь
1124 поддерживает протокол PROXY версии 2.
1125
1126 *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.
1127
1128 *) Исправление: в параметрах http_404, http_500 и им подобных директивы
1129 proxy_next_upstream.
1130
1131
1132 Изменения в nginx 1.13.10 20.03.2018
1133
1134 *) Добавление: теперь параметр set в SSI-директиве include позволяет
1135 сохранять в переменную любые ответы; максимальный размер ответа
1136 задаётся директивой subrequest_output_buffer_size.
1137
1138 *) Добавление: теперь nginx использует вызов
1139 clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
1140 избежать некорректного срабатывания таймаутов при изменениях
1141 системного времени.
1142
1143 *) Добавление: параметр "escape=none" директивы log_format.
1144 Спасибо Johannes Baiter и Calin Don.
1145
1146 *) Добавление: переменная $ssl_preread_alpn_protocols в модуле
1147 ngx_stream_ssl_preread_module.
1148
1149 *) Добавление: модуль ngx_http_grpc_module.
1150
1151 *) Исправление: в обработке ошибок выделения памяти в директиве geo.
1152
1153 *) Исправление: при использовании переменных в директиве
1154 auth_basic_user_file в лог мог выводиться символ '\0'.
1155 Спасибо Вадиму Филимонову.
1156
1157
1158 Изменения в nginx 1.13.9 20.02.2018
1159
1160 *) Добавление: поддержка HTTP/2 server push; директивы http2_push и
1161 http2_push_preload.
1162
1163 *) Исправление: при использовании кэша в логах могли появляться
1164 сообщения "header already sent"; ошибка появилась в 1.9.13.
1165
1166 *) Исправление: при использовании директивы ssl_verify_client в рабочем
1167 процессе мог произойти segmentation fault, если в виртуальном сервере
1168 не был указан SSL-сертификат.
1169
1170 *) Исправление: в модуле ngx_http_v2_module.
1171
1172 *) Исправление: в модуле ngx_http_dav_module.
1173
1174
1175 Изменения в nginx 1.13.8 26.12.2017
1176
1177 *) Добавление: теперь при использовании параметра transparent директив
1178 proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
1179 nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
1180 процессах.
1181
1182 *) Добавление: улучшения в определении размера строки кэша процессора.
1183 Спасибо Debayan Ghosh.
1184
1185 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
1186 Спасибо Геннадию Махомеду.
1187
1188 *) Исправление: процедура обновления исполняемого файла не работала,
1189 если после завершения родительского процесса новым родительским
1190 процессом nginx'а становился процесс с PID, отличным от 1.
1191
1192 *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
1193 запросы с телом.
1194
1195 *) Исправление: в директиве proxy_limit_rate при использовании с
1196 директивой keepalive.
1197
1198 *) Исправление: при использовании "proxy_buffering off" часть ответа
1199 могла буферизироваться, если клиентское соединение использовало SSL.
1200 Спасибо Patryk Lesiewicz.
1201
1202 *) Исправление: в директиве proxy_cache_background_update.
1203
1204 *) Исправление: переменную вида "${name}" с именем в фигурных скобках
1205 нельзя было использовать в начале параметра не заключив весь параметр
1206 в кавычки.
1207
1208
1209 Изменения в nginx 1.13.7 21.11.2017
1210
1211 *) Исправление: в переменной $upstream_status.
1212
1213 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1214 если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
1215
1216 *) Исправление: если при переконфигурации изменялся размер зоны
1217 разделяемой памяти и переконфигурация завершалась неудачно, то в
1218 главном процессе происходил segmentation fault.
1219
1220 *) Исправление: в модуле ngx_http_fastcgi_module.
1221
1222 *) Исправление: nginx возвращал ошибку 500, если в директиве
1223 xslt_stylesheet были заданы параметры без использования переменных.
1224
1225 *) Изменение: при использовании варианта библиотеки zlib от Intel в лог
1226 писались сообщения "gzip filter failed to use preallocated memory".
1227
1228 *) Исправление: директива worker_shutdown_timeout не работала при
1229 использовании почтового прокси-сервера и при проксировании
1230 WebSocket-соединений.
1231
1232
1233 Изменения в nginx 1.13.6 10.10.2017
1234
1235 *) Исправление: при использовании директивы ssl_preread в модуле stream
1236 не работало переключение на следующий бэкенд.
1237
1238 *) Исправление: в модуле ngx_http_v2_module.
1239 Спасибо Piotr Sikora.
1240
1241 *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
1242 платформах с 64-битным time_t.
1243
1244 *) Исправление: в обработке дат до 1970 года и после 10000 года.
1245
1246 *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
1247 бэкендов не логгировались или логгировались на уровне info вместо
1248 error.
1249
1250 *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
1251 не указав в логе причину.
1252
1253 *) Исправление: в обработке повреждённых файлов кэша.
1254
1255 *) Исправление: при кэшировании ошибок, перехваченных error_page, не
1256 учитывались заголовки управления кэшированием.
1257
1258 *) Исправление: при использовании HTTP/2 тело запроса могло быть
1259 повреждено.
1260
1261 *) Исправление: в обработке адресов клиентов при использовании unix
1262 domain сокетов.
1263
1264 *) Исправление: при использовании директивы "hash ... consistent" в
1265 блоке upstream nginx нагружал процессор, если использовались большие
1266 веса и все или почти все бэкенды были недоступны.
1267
1268
1269 Изменения в nginx 1.13.5 05.09.2017
1270
1271 *) Добавление: переменная $ssl_client_escaped_cert.
1272
1273 *) Исправление: директива ssl_session_ticket_key и параметр include
1274 директивы geo не работали на Windows.
1275
1276 *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
1277 помощью нескольких диапазонов возвращалась некорректная длина ответа.
1278
1279 *) Исправление: директива "expires modified" и обработка строки If-Range
1280 заголовка запроса не учитывали время последнего изменения ответа,
1281 если использовалось проксирование без кэширования.
1282
1283
1284 Изменения в nginx 1.13.4 08.08.2017
1285
1286 *) Добавление: модуль ngx_http_mirror_module.
1287
1288 *) Исправление: клиентские соединения могли сбрасываться при
1289 тестировании конфигурации, если использовался параметр reuseport
1290 директивы listen на Linux.
1291
1292 *) Исправление: тело запроса могло быть недоступно в подзапросах, если
1293 оно было сохранено в файл и использовалось проксирование.
1294
1295 *) Исправление: очистка кэша по max_size не работала на Windows.
1296
1297 *) Исправление: любое выделение разделяемой памяти на Windows требовало
1298 4096 байт памяти.
1299
1300 *) Исправление: при использовании директивы zone в блоке upstream на
1301 Windows рабочий процесс мог завершаться аварийно.
1302
1303
1304 Изменения в nginx 1.13.3 11.07.2017
1305
1306 *) Безопасность: специально созданный запрос мог вызвать целочисленное
1307 переполнение в range-фильтре и последующую некорректную обработку
1308 запрошенных диапазонов, что потенциально могло привести к утечке
1309 конфиденциальной информации (CVE-2017-7529).
1310
1311
1312 Изменения в nginx 1.13.2 27.06.2017
1313
1314 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из
1315 пустого файла nginx возвращает ответ 200 вместо 416.
1316
1317 *) Добавление: директива add_trailer.
1318 Спасибо Piotr Sikora.
1319
1320 *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
1321 в 1.13.0.
1322
1323 *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
1324 Спасибо Orgad Shaneh.
1325
1326 *) Исправление: при использовании SSI с большим количеством подзапросов
1327 и proxy_pass с переменными в рабочем процессе мог произойти
1328 segmentation fault.
1329
1330 *) Исправление: в модуле ngx_http_v2_module.
1331 Спасибо Piotr Sikora.
1332
1333
1334 Изменения в nginx 1.13.1 30.05.2017
1335
1336 *) Добавление: теперь в качестве параметра директивы set_real_ip_from
1337 можно указывать имя хоста.
1338
1339 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
1340
1341 *) Добавление: директива worker_cpu_affinity теперь работает на
1342 DragonFly BSD.
1343 Спасибо Sepherosa Ziehau.
1344
1345 *) Исправление: SSL renegotiation в соединениях к бэкендам не работал
1346 при использовании OpenSSL до 1.1.0.
1347
1348 *) Изменение: nginx не собирался с Oracle Developer Studio 12.5.
1349
1350 *) Изменение: теперь cache manager пропускает заблокированные записи при
1351 очистке кэша по max_size.
1352
1353 *) Исправление: клиентские SSL-соединения сразу закрывались, если
1354 использовался отложенный accept и параметр proxy_protocol директивы
1355 listen.
1356
1357 *) Исправление: в директиве proxy_cache_background_update.
1358
1359 *) Изменение: теперь директива tcp_nodelay устанавливает опцию
1360 TCP_NODELAY перед SSL handshake.
1361
1362
1363 Изменения в nginx 1.13.0 25.04.2017
1364
1365 *) Изменение: теперь SSL renegotiation допускается в соединениях к
1366 бэкендам.
1367
1368 *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
1369 прокси-сервере и модуле stream.
1370
1371 *) Добавление: директивы return и error_page теперь могут использоваться
1372 для возврата перенаправлений с кодом 308.
1373 Спасибо Simon Leblanc.
1374
1375 *) Добавление: параметр TLSv1.3 в директиве ssl_protocols.
1376
1377 *) Добавление: при логгировании сигналов теперь указывается PID
1378 отправившего сигнал процесса.
1379
1380 *) Исправление: в обработке ошибок выделения памяти.
1381
1382 *) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
1383 исходящий адрес ответного UDP-пакета мог отличаться от адреса
1384 назначения исходного пакета.
1385
1386
1387 Изменения в nginx 1.11.13 04.04.2017
1388
1389 *) Добавление: параметр http_429 в директивах proxy_next_upstream,
1390 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
1391 Спасибо Piotr Sikora.
1392
1393 *) Исправление: в обработке ошибок выделения памяти.
1394
1395 *) Исправление: при использовании директив sendfile и timer_resolution
1396 на Linux запросы могли зависать.
1397
1398 *) Исправление: при использовании с подзапросами директив sendfile и
1399 aio_write запросы могли зависать.
1400
1401 *) Исправление: в модуле ngx_http_v2_module.
1402 Спасибо Piotr Sikora.
1403
1404 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1405 произойти segmentation fault.
1406
1407 *) Исправление: запросы могли зависать при использовании с подзапросами
1408 директив limit_rate, sendfile_max_chunk, limit_req или метода
1409 $r->sleep() встроенного перла.
1410
1411 *) Исправление: в модуле ngx_http_slice_module.
1412
1413
1414 Изменения в nginx 1.11.12 24.03.2017
1415
1416 *) Исправление: nginx мог нагружать процессор; ошибка появилась в
1417 1.11.11.
1418
1419
1420 Изменения в nginx 1.11.11 21.03.2017
1421
1422 *) Добавление: директива worker_shutdown_timeout.
1423
1424 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
1425 Спасибо Wei-Ko Kao.
1426
1427 *) Исправление: при попытке установить переменную $limit_rate в пустую
1428 строку в рабочем процессе мог произойти segmentation fault.
1429
1430 *) Исправление: директивы proxy_cache_background_update,
1431 fastcgi_cache_background_update, scgi_cache_background_update и
1432 uwsgi_cache_background_update могли работать некорректно, если
1433 использовалась директива if.
1434
1435 *) Исправление: в рабочем процессе мог произойти segmentation fault,
1436 если количество large_client_header_buffers в виртуальном сервере
1437 отличалось от такового в сервере по умолчанию.
1438
1439 *) Исправление: в почтовом прокси-сервере.
1440
1441
1442 Изменения в nginx 1.11.10 14.02.2017
1443
1444 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные
1445 ответы будут загружены заново.
1446
1447 *) Добавление: поддержка расширений stale-while-revalidate и
1448 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда.
1449
1450 *) Добавление: директивы proxy_cache_background_update,
1451 fastcgi_cache_background_update, scgi_cache_background_update и
1452 uwsgi_cache_background_update.
1453
1454 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary
1455 заголовка длиной до 128 символов (вместо 42 символов в предыдущих
1456 версиях).
1457
1458 *) Добавление: параметр build директивы server_tokens.
1459 Спасибо Tom Thorogood.
1460
1461 *) Исправление: при обработке запросов со строкой "Expect: 100-continue"
1462 в заголовке запроса в логах могли появляться сообщения "[crit]
1463 SSL_write() failed".
1464
1465 *) Исправление: модуль ngx_http_slice_module не работал в именованных
1466 location'ах.
1467
1468 *) Исправление: при использовании AIO после перенаправления запроса с
1469 помощью X-Accel-Redirect в рабочем процессе мог произойти
1470 segmentation fault.
1471
1472 *) Исправление: уменьшено потребление памяти для долгоживущих запросов,
1473 использующих сжатие.
1474
1475
1476 Изменения в nginx 1.11.9 24.01.2017
1477
1478 *) Исправление: при использовании модуля stream nginx мог нагружать
1479 процессор; ошибка появилась в 1.11.5.
1480
1481 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере
1482 можно было использовать, даже если он не был разрешён в конфигурации.
1483
1484 *) Исправление: при использовании директивы ssl_verify_client модуля
1485 stream в рабочем процессе мог произойти segmentation fault.
1486
1487 *) Исправление: директива ssl_verify_client модуля stream могла не
1488 работать.
1489
1490 *) Исправление: при исчерпании рабочим процессом свободных соединений
1491 keepalive-соединения могли закрываться излишне агрессивно.
1492 Спасибо Joel Cunningham.
1493
1494 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS
1495 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8.
1496
1497 *) Исправление: при использовании директивы aio_write ответ мог
1498 сохраняться в кэш не полностью.
1499
1500 *) Исправление: при использовании директивы aio_write могла происходить
1501 утечка сокетов.
1502
1503
1504 Изменения в nginx 1.11.8 27.12.2016
1505
1506 *) Добавление: директива absolute_redirect.
1507
1508 *) Добавление: параметр escape директивы log_format.
1509
1510 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream.
1511
1512 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование
1513 TLS session tickets с помощью AES256 при использовании с 80-байтными
1514 ключами.
1515
1516 *) Добавление: поддержка vim-commentary в скриптах для vim.
1517 Спасибо Armin Grodon.
1518
1519 *) Исправление: рекурсия при получении значений переменных не
1520 ограничивалась.
1521
1522 *) Исправление: в модуле ngx_stream_ssl_preread_module.
1523
1524 *) Исправление: если сервер, описанный в блоке upstream в модуле stream,
1525 был признан неработающим, то после истечения fail_timeout он
1526 признавался работающим только после завершения тестового соединения;
1527 теперь достаточно, чтобы соединение было успешно установлено.
1528
1529 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio.
1530
1531 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0.
1532
1533
1534 Изменения в nginx 1.11.7 13.12.2016
1535
1536 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки
1537 проверки клиентского сертификата содержит строку с описанием ошибки,
1538 например, "FAILED:certificate has expired".
1539
1540 *) Добавление: переменные $ssl_ciphers, $ssl_curves,
1541 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
1542
1543 *) Добавление: параметр volatile директивы map.
1544
1545 *) Исправление: при сборке динамических модулей не учитывались заданные
1546 для модуля зависимости.
1547
1548 *) Исправление: при использовании HTTP/2 и директив limit_req или
1549 auth_request тело запроса могло быть повреждено; ошибка появилась в
1550 1.11.0.
1551
1552 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1553 произойти segmentation fault; ошибка появилась в 1.11.3.
1554
1555 *) Исправление: в модуле ngx_http_mp4_module.
1556 Спасибо Congcong Hu.
1557
1558 *) Исправление: в модуле ngx_http_perl_module.
1559
1560
1561 Изменения в nginx 1.11.6 15.11.2016
1562
1563 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn
1564 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом
1565 формате доступны через переменные $ssl_client_s_dn_legacy и
1566 $ssl_client_i_dn_legacy.
1567
1568 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь
1569 располагаются не в отдельном подкаталоге для временных файлов, а в
1570 том же подкаталоге, что и соответствующие файлы в кэше.
1571
1572 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом
1573 прокси-сервере.
1574 Спасибо Robert Norris.
1575
1576 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module.
1577
1578 *) Добавление: директива proxy_method поддерживает переменные.
1579 Спасибо Дмитрию Лазуркину.
1580
1581 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module.
1582
1583 *) Добавление: директивы proxy_cache_max_range_offset,
1584 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и
1585 uwsgi_cache_max_range_offset.
1586
1587 *) Исправление: плавное завершение старых рабочих процессов могло
1588 занимать бесконечное время при использовании HTTP/2.
1589
1590 *) Исправление: в модуле ngx_http_mp4_module.
1591
1592 *) Исправление: при проксировании WebSocket-соединений и включённом
1593 кэшировании в логах могли появляться сообщения "ignore long locked
1594 inactive cache entry".
1595
1596 *) Исправление: если во время SSL handshake с бэкендом происходил
1597 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502
1598 вместо 504.
1599
1600
1601 Изменения в nginx 1.11.5 11.10.2016
1602
1603 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6
1604 теперь собирается автоматически.
1605
1606 *) Изменение: теперь, если в блоке upstream не оказалось доступных
1607 серверов, nginx не сбрасывает статистику ошибок всех серверов, как
1608 делал ранее, а ожидает истечения fail_timeout.
1609
1610 *) Добавление: модуль ngx_stream_ssl_preread_module.
1611
1612 *) Добавление: директива server в блоке upstream поддерживает параметр
1613 max_conns.
1614
1615 *) Добавление: параметр configure --with-compat.
1616
1617 *) Добавление: параметры manager_files, manager_threshold и
1618 manager_sleep директив proxy_cache_path, fastcgi_cache_path,
1619 scgi_cache_path и uwsgi_cache_path.
1620
1621 *) Исправление: при сборке perl-модуля не использовались флаги, заданные
1622 с помощью параметра configure --with-ld-opt.
1623
1624 *) Исправление: в директиве add_after_body при использовании совместно с
1625 директивой sub_filter.
1626
1627 *) Исправление: в переменной $realip_remote_addr.
1628
1629 *) Исправление: директивы dav_access, proxy_store_access,
1630 fastcgi_store_access, scgi_store_access и uwsgi_store_access
1631 игнорировали права, заданные для пользователя.
1632
1633 *) Исправление: unix domain listen-сокеты могли не наследоваться при
1634 обновлении исполняемого файла на Linux.
1635
1636 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в
1637 HTTP-методе.
1638
1639
1640 Изменения в nginx 1.11.4 13.09.2016
1641
1642 *) Добавление: переменная $upstream_bytes_received.
1643
1644 *) Добавление: переменные $bytes_received, $session_time, $protocol,
1645 $status, $upstream_addr, $upstream_bytes_sent,
1646 $upstream_bytes_received, $upstream_connect_time,
1647 $upstream_first_byte_time и $upstream_session_time в модуле stream.
1648
1649 *) Добавление: модуль ngx_stream_log_module.
1650
1651 *) Добавление: параметр proxy_protocol в директиве listen, переменные
1652 $proxy_protocol_addr и $proxy_protocol_port в модуле stream.
1653
1654 *) Добавление: модуль ngx_stream_realip_module.
1655
1656 *) Исправление: nginx не собирался с модулем stream и модулем
1657 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка
1658 появилась в 1.11.3.
1659
1660 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
1661 ошибка появилась в 1.11.2.
1662
1663 *) Исправление: в параметре ranges директивы geo.
1664
1665 *) Исправление: при использовании директив "aio threads" и sendfile мог
1666 возвращаться некорректный ответ; ошибка появилась в 1.9.13.
1667
1668
1669 Изменения в nginx 1.11.3 26.07.2016
1670
1671 *) Изменение: теперь accept_mutex по умолчанию выключен.
1672
1673 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux.
1674
1675 *) Добавление: модуль ngx_stream_geo_module.
1676
1677 *) Добавление: модуль ngx_stream_geoip_module.
1678
1679 *) Добавление: модуль ngx_stream_split_clients_module.
1680
1681 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream
1682 поддерживают переменные.
1683
1684 *) Исправление: утечки сокетов при использовании HTTP/2.
1685
1686 *) Исправление: в configure.
1687 Спасибо Piotr Sikora.
1688
1689
1690 Изменения в nginx 1.11.2 05.07.2016
1691
1692 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и
1693 SHA1; параметры configure --with-md5 и --with-sha1 упразднены.
1694
1695 *) Добавление: поддержка переменных в модуле stream.
1696
1697 *) Добавление: модуль ngx_stream_map_module.
1698
1699 *) Добавление: модуль ngx_stream_return_module.
1700
1701 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind,
1702 scgi_bind и uwsgi_bind теперь можно указывать порт.
1703
1704 *) Добавление: теперь nginx использует опцию сокета
1705 IP_BIND_ADDRESS_NO_PORT, если она доступна.
1706
1707 *) Исправление: при использовании HTTP/2 и директивы
1708 proxy_request_buffering в рабочем процессе мог произойти segmentation
1709 fault.
1710
1711 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на
1712 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
1713 если у запроса не было тела.
1714
1715 *) Исправление: при использовании HTTP/2 в логах могли появляться
1716 сообщения "http request count is zero".
1717
1718 *) Исправление: при использовании директивы sub_filter могло
1719 буферизироваться больше данных, чем это необходимо; проблема
1720 появилась в 1.9.4.
1721
1722
1723 Изменения в nginx 1.11.1 31.05.2016
1724
1725 *) Безопасность: при записи тела специально созданного запроса во
1726 временный файл в рабочем процессе мог происходить segmentation fault
1727 (CVE-2016-4450); ошибка появилась в 1.3.9.
1728
1729
1730 Изменения в nginx 1.11.0 24.05.2016
1731
1732 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind,
1733 memcached_bind, scgi_bind и uwsgi_bind.
1734
1735 *) Добавление: переменная $request_id.
1736
1737 *) Добавление: директива map поддерживает комбинации нескольких
1738 переменных в качестве результирующих значений.
1739
1740 *) Добавление: теперь при использовании метода epoll nginx проверяет,
1741 поддерживает ли ядро события EPOLLRDHUP, и соответственно
1742 оптимизирует обработку соединений.
1743
1744 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь
1745 можно указывать несколько раз для загрузки сертификатов разных типов
1746 (например, RSA и ECDSA).
1747
1748 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью
1749 директивы ssl_ecdh_curve теперь можно задать список кривых; по
1750 умолчанию используется встроенный в OpenSSL список кривых.
1751
1752 *) Изменение: для использования DHE-шифров теперь надо явно задавать
1753 файл параметров с помощью директивы ssl_dhparam.
1754
1755 *) Добавление: переменная $proxy_protocol_port.
1756
1757 *) Добавление: переменная $realip_remote_port в модуле
1758 ngx_http_realip_module.
1759
1760 *) Добавление: модуль ngx_http_realip_module теперь позволяет
1761 устанавливать не только адрес, но и порт клиента.
1762
1763 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от
1764 согласованного в процессе SSL handshake, теперь возвращается ответ
1765 "421 Misdirected Request"; это улучшает совместимость с некоторыми
1766 HTTP/2-клиентами в случае использования клиентских сертификатов.
1767
1768 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
1769 директива http2_body_preread_size позволяет указать размер буфера,
1770 который будет использоваться до того, как nginx начнёт читать тело.
1771
1772 *) Исправление: при использовании директивы proxy_cache_bypass не
1773 обновлялись закэшированные ошибочные ответы.
1774
1775
1776 Изменения в nginx 1.9.15 19.04.2016
1777
1778 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли
1779 возникать ошибки "recv() failed".
1780
1781 *) Исправление: при использовании HTTP/2 и директив limit_req или
1782 auth_request при чтении тела запроса мог произойти таймаут или ошибка
1783 "client violated flow control"; ошибка появилась в 1.9.14.
1784
1785 *) Изменение: при использовании HTTP/2 ответ мог не показываться
1786 некоторыми браузерами, если тело запроса было прочитано не целиком;
1787 ошибка появилась в 1.9.14.
1788
1789 *) Исправление: при использовании директивы "aio threads" соединения
1790 могли зависать.
1791 Спасибо Mindaugas Rasiukevicius.
1792
1793
1794 Изменения в nginx 1.9.14 05.04.2016
1795
1796 *) Добавление: совместимость с OpenSSL 1.1.0.
1797
1798 *) Добавление: директивы proxy_request_buffering,
1799 fastcgi_request_buffering, scgi_request_buffering и
1800 uwsgi_request_buffering теперь работают при использовании HTTP/2.
1801
1802 *) Исправление: при использовании HTTP/2 в логах могли появляться
1803 сообщения "zero size buf in output".
1804
1805 *) Исправление: при использовании HTTP/2 директива client_max_body_size
1806 могла работать неверно.
1807
1808 *) Исправление: незначительных ошибок логгирования.
1809
1810
1811 Изменения в nginx 1.9.13 29.03.2016
1812
1813 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по
1814 умолчанию не передаются на другой сервер, если запрос уже был
1815 отправлен на бэкенд; параметр non_idempotent директивы
1816 proxy_next_upstream явно разрешает повторять такие запросы.
1817
1818 *) Добавление: модуль ngx_http_perl_module теперь можно собрать
1819 динамически.
1820
1821 *) Добавление: поддержка UDP в модуле stream.
1822
1823 *) Добавление: директива aio_write.
1824
1825 *) Добавление: теперь cache manager следит за количеством элементов в
1826 кэше и старается не допускать переполнений зоны разделяемой памяти.
1827
1828 *) Исправление: при использовании директив sendfile и aio с подзапросами
1829 в логах могли появляться сообщения "task already active" и "second
1830 aio post".
1831
1832 *) Исправление: при использовании кэширования в логах могли появляться
1833 сообщения "zero size buf in output", если клиент закрывал соединение
1834 преждевременно.
1835
1836 *) Исправление: при использовании кэширования соединения с клиентами
1837 могли закрываться без необходимости.
1838 Спасибо Justin Li.
1839
1840 *) Исправление: nginx мог нагружать процессор при использовании
1841 директивы sendfile на Linux и Solaris, если отправляемый файл был
1842 изменён в процессе отправки.
1843
1844 *) Исправление: при использовании директив sendfile и "aio threads"
1845 соединения могли зависать.
1846
1847 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и
1848 uwsgi_pass при использовании переменных.
1849 Спасибо Piotr Sikora.
1850
1851 *) Исправление: в модуле ngx_http_sub_filter_module.
1852
1853 *) Исправление: если в закэшированном соединении к бэкенду происходила
1854 ошибка, запрос передавался на другой сервер без учёта директивы
1855 proxy_next_upstream.
1856
1857 *) Исправление: ошибки "CreateFile() failed" при создании временных
1858 файлов на Windows.
1859
1860
1861 Изменения в nginx 1.9.12 24.02.2016
1862
1863 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2.
1864 Спасибо Владу Краснову.
1865
1866 *) Добавление: директива worker_cpu_affinity теперь поддерживает более
1867 64 процессоров.
1868
1869 *) Исправление: совместимость со сторонними модулями на C++; ошибка
1870 появилась в 1.9.11.
1871 Спасибо Piotr Sikora.
1872
1873 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка
1874 появилась в 1.9.11.
1875
1876 *) Исправление: директива "add_header ... always" с пустым значением не
1877 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag.
1878
1879 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться
1880 сообщения "called a function you should not call" и "shutdown while
1881 in init".
1882
1883 *) Исправление: ошибочные заголовки могли логгироваться некорректно.
1884
1885 *) Исправление: утечки сокетов при использовании HTTP/2.
1886
1887 *) Исправление: в модуле ngx_http_v2_module.
1888
1889
1890 Изменения в nginx 1.9.11 09.02.2016
1891
1892 *) Добавление: теперь resolver поддерживает TCP.
1893
1894 *) Добавление: динамические модули.
1895
1896 *) Исправление: при использовании HTTP/2 переменная $request_length не
1897 учитывала размер заголовков запроса.
1898
1899 *) Исправление: в модуле ngx_http_v2_module.
1900
1901
1902 Изменения в nginx 1.9.10 26.01.2016
1903
1904 *) Безопасность: при использовании директивы resolver во время обработки
1905 ответов DNS-сервера могло происходить разыменование некорректного
1906 адреса, что позволяло атакующему, имеющему возможность подделывать
1907 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
1908 процессе (CVE-2016-0742).
1909
1910 *) Безопасность: при использовании директивы resolver во время обработки
1911 CNAME-записей могло произойти обращение к ранее освобождённой памяти,
1912 что позволяло атакующему, имеющему возможность инициировать
1913 преобразование произвольных имён в адреса, вызвать segmentation fault
1914 в рабочем процессе, а также потенциально могло иметь другие
1915 последствия (CVE-2016-0746).
1916
1917 *) Безопасность: при использовании директивы resolver во время обработки
1918 CNAME-записей не во всех случаях проверялось ограничение на
1919 максимальное количество записей в цепочке, что позволяло атакующему,
1920 имеющему возможность инициировать преобразование произвольных имён в
1921 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
1922 (CVE-2016-0747).
1923
1924 *) Добавление: параметр auto директивы worker_cpu_affinity.
1925
1926 *) Исправление: параметр proxy_protocol директивы listen не работал с
1927 IPv6 listen-сокетами.
1928
1929 *) Исправление: при использовании директивы keepalive соединения к
1930 бэкендам могли кэшироваться некорректно.
1931
1932 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
1933 при проксировании использовался HTTP-метод оригинального запроса.
1934
1935
1936 Изменения в nginx 1.9.9 09.12.2015
1937
1938 *) Исправление: проксирование в unix domain сокеты не работало при
1939 использовании переменных; ошибка появилась в 1.9.8.
1940
1941
1942 Изменения в nginx 1.9.8 08.12.2015
1943
1944 *) Добавление: поддержка pwritev().
1945
1946 *) Добавление: директива include в блоке upstream.
1947
1948 *) Добавление: модуль ngx_http_slice_module.
1949
1950 *) Исправление: при использовании LibreSSL в рабочем процессе мог
1951 произойти segmentation fault; ошибка появилась в 1.9.6.
1952
1953 *) Исправление: nginx мог не собираться на OS X.
1954
1955
1956 Изменения в nginx 1.9.7 17.11.2015
1957
1958 *) Добавление: параметр nohostname логгирования в syslog.
1959
1960 *) Добавление: директива proxy_cache_convert_head.
1961
1962 *) Добавление: переменная $realip_remote_addr в модуле
1963 ngx_http_realip_module.
1964
1965 *) Исправление: директива expires могла не срабатывать при использовании
1966 переменных.
1967
1968 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1969 произойти segmentation fault; ошибка появилась в 1.9.6.
1970
1971 *) Исправление: если nginx был собран с модулем ngx_http_v2_module,
1972 протокол HTTP/2 мог быть использован клиентом, даже если не был
1973 указан параметр http2 директивы listen.
1974
1975 *) Исправление: в модуле ngx_http_v2_module.
1976
1977
1978 Изменения в nginx 1.9.6 27.10.2015
1979
1980 *) Исправление: при использовании HTTP/2 в рабочем процессе мог
1981 произойти segmentation fault.
1982 Спасибо Piotr Sikora и Denis Andzakovic.
1983
1984 *) Исправление: при использовании HTTP/2 переменная $server_protocol
1985 была пустой.
1986
1987 *) Исправление: SSL-соединения к бэкендам в модуле stream могли
1988 неожиданно завершаться по таймауту.
1989
1990 *) Исправление: при использовании различных настроек ssl_session_cache в
1991 разных виртуальных серверах в рабочем процессе мог произойти
1992 segmentation fault.
1993
1994 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась
1995 в 1.9.4.
1996 Спасибо Kouhei Sutou.
1997
1998 *) Исправление: при использовании директивы timer_resolution на Windows
1999 время не обновлялось.
2000
2001 *) Незначительные исправления и улучшения.
2002 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
2003
2004
2005 Изменения в nginx 1.9.5 22.09.2015
2006
2007 *) Добавление: модуль ngx_http_v2_module (заменяет модуль
2008 ngx_http_spdy_module).
2009 Спасибо Dropbox и Automattic за спонсирование разработки.
2010
2011 *) Изменение: теперь по умолчанию директива output_buffers использует
2012 два буфера.
2013
2014 *) Изменение: теперь nginx ограничивает максимальную вложенность
2015 подзапросов, а не количество одновременных подзапросов.
2016
2017 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ
2018 полностью.
2019 Спасибо Геннадию Махомеду и Сергею Брестеру.
2020
2021 *) Исправление: при использовании кэша в логах могли появляться
2022 сообщения "header already sent"; ошибка появилась в 1.7.5.
2023
2024 *) Исправление: при использовании CephFS и директивы timer_resolution на
2025 Linux в логах могли появляться сообщения "writev() failed (4:
2026 Interrupted system call)".
2027
2028 *) Исправление: в обработке ошибок конфигурации.
2029 Спасибо Markus Linnala.
2030
2031 *) Исправление: при использовании директивы sub_filter на уровне http в
2032 рабочем процессе происходил segmentation fault; ошибка появилась в
2033 1.9.4.
2034
2035
2036 Изменения в nginx 1.9.4 18.08.2015
2037
2038 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer
2039 в модуле stream заменены директивой proxy_buffer_size.
2040
2041 *) Добавление: директива tcp_nodelay в модуле stream.
2042
2043 *) Добавление: теперь можно указать несколько директив sub_filter
2044 одновременно.
2045
2046 *) Добавление: директива sub_filter поддерживает переменные в строке
2047 поиска.
2048
2049 *) Изменение: тестирование конфигурации могло не работать под Linux
2050 OpenVZ.
2051 Спасибо Геннадию Махомеду.
2052
2053 *) Исправление: после переконфигурации старые рабочие процессы могли
2054 сильно нагружать процессор при больших значениях worker_connections.
2055
2056 *) Исправление: при совместном использовании директив try_files и alias
2057 внутри location'а, заданного регулярным выражением, в рабочем
2058 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
2059
2060 *) Исправление: директива try_files внутри вложенного location'а,
2061 заданного регулярным выражением, работала неправильно, если во
2062 внешнем location'е использовалась директива alias.
2063
2064 *) Исправление: в обработке ошибок при построении хэш-таблиц.
2065
2066 *) Исправление: nginx не собирался с Visual Studio 2015.
2067
2068
2069 Изменения в nginx 1.9.3 14.07.2015
2070
2071 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.
2072
2073 *) Добавление: ограничение количества соединений в модуле stream.
2074
2075 *) Добавление: ограничение скорости в модуле stream.
2076
2077 *) Исправление: директива zone в блоке upstream не работала на Windows.
2078
2079 *) Исправление: совместимость с LibreSSL в модуле stream.
2080 Спасибо Piotr Sikora.
2081
2082 *) Исправление: в параметре --builddir в configure.
2083 Спасибо Piotr Sikora.
2084
2085 *) Исправление: директива ssl_stapling_file не работала; ошибка
2086 появилась в 1.9.2.
2087 Спасибо Faidon Liambotis и Brandon Black.
2088
2089 *) Исправление: при использовании директивы ssl_stapling в рабочем
2090 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
2091 Спасибо Matthew Baldwin.
2092
2093
2094 Изменения в nginx 1.9.2 16.06.2015
2095
2096 *) Добавление: параметр backlog директивы listen в почтовом
2097 прокси-сервере и модуле stream.
2098
2099 *) Добавление: директивы allow и deny в модуле stream.
2100
2101 *) Добавление: директива proxy_bind в модуле stream.
2102
2103 *) Добавление: директива proxy_protocol в модуле stream.
2104
2105 *) Добавление: ключ -T.
2106
2107 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
2108 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
2109 uwsgi_params.
2110
2111 *) Исправление: параметр reuseport директивы listen в модуле stream не
2112 работал.
2113
2114 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
2115 OCSP-ответ.
2116
2117
2118 Изменения в nginx 1.9.1 26.05.2015
2119
2120 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён.
2121
2122 *) Изменение: некоторые давно устаревшие директивы больше не
2123 поддерживаются.
2124
2125 *) Добавление: параметр reuseport директивы listen.
2126 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
2127
2128 *) Добавление: переменная $upstream_connect_time.
2129
2130 *) Исправление: в директиве hash на big-endian платформах.
2131
2132 *) Исправление: nginx мог не запускаться на некоторых старых версиях
2133 Linux; ошибка появилась в 1.7.11.
2134
2135 *) Исправление: в парсинге IP-адресов.
2136 Спасибо Сергею Половко.
2137
2138
2139 Изменения в nginx 1.9.0 28.04.2015
2140
2141 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше
2142 не поддерживаются.
2143
2144 *) Добавление: директива zone в блоке upstream.
2145
2146 *) Добавление: модуль stream.
2147
2148 *) Добавление: поддержка byte ranges для ответов модуля
2149 ngx_http_memcached_module.
2150 Спасибо Martin Mlynář.
2151
2152 *) Добавление: разделяемую память теперь можно использовать на версиях
2153 Windows с рандомизацией адресного пространства.
2154 Спасибо Сергею Брестеру.
2155
2156 *) Добавление: директиву error_log теперь можно использовать на уровнях
2157 mail и server в почтовом прокси-сервере.
2158
2159 *) Исправление: параметр proxy_protocol директивы listen не работал,
2160 если не был указан в первой директиве listen для данного
2161 listen-сокета.
2162
2163
2164 Изменения в nginx 1.7.12 07.04.2015
2165
2166 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
2167 с бэкендами.
2168
2169 *) Добавление: теперь потоки могут использоваться для чтения заголовков
2170 файлов в кэше.
2171
2172 *) Исправление: в директиве proxy_request_buffering.
2173
2174 *) Исправление: при использовании потоков на Linux в рабочем процессе
2175 мог произойти segmentation fault.
2176
2177 *) Исправление: в обработке ошибок при использовании директивы
2178 ssl_stapling.
2179 Спасибо Filipe da Silva.
2180
2181 *) Исправление: в модуле ngx_http_spdy_module.
2182
2183
2184 Изменения в nginx 1.7.11 24.03.2015
2185
2186 *) Изменение: параметр sendfile директивы aio более не нужен; теперь
2187 nginx автоматически использует AIO для подгрузки данных для sendfile,
2188 если одновременно используются директивы aio и sendfile.
2189
2190 *) Добавление: экспериментальная поддержка потоков.
2191
2192 *) Добавление: директивы proxy_request_buffering,
2193 fastcgi_request_buffering, scgi_request_buffering и
2194 uwsgi_request_buffering.
2195
2196 *) Добавление: экспериментальное API для обработки тела запроса.
2197
2198 *) Добавление: проверка клиентских SSL-сертификатов в почтовом
2199 прокси-сервере.
2200 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
2201
2202 *) Добавление: уменьшение времени запуска при использовании директивы
2203 "hash ... consistent" в блоке upstream.
2204 Спасибо Wai Keen Woon.
2205
2206 *) Добавление: отладочное логгирование в кольцевой буфер в памяти.
2207
2208 *) Исправление: в обработке хэш-таблиц.
2209 Спасибо Chris West.
2210
2211 *) Исправление: в директиве proxy_cache_revalidate.
2212
2213 *) Исправление: SSL-соединения могли зависать, если использовался
2214 отложенный accept или параметр proxy_protocol директивы listen.
2215 Спасибо James Hamlin.
2216
2217 *) Исправление: переменная $upstream_response_time могла содержать
2218 неверное значение при использовании директивы image_filter.
2219
2220 *) Исправление: в обработке целочисленных переполнений.
2221 Спасибо Régis Leroy.
2222
2223 *) Исправление: при использовании LibreSSL было невозможно включить
2224 поддержку SSLv3.
2225
2226 *) Исправление: при использовании LibreSSL в логах появлялись сообщения
2227 "ignoring stale global SSL error ... called a function you should not
2228 call".
2229
2230 *) Исправление: сертификаты, указанные в директивах
2231 ssl_client_certificate и ssl_trusted_certificate, использовались для
2232 автоматического построения цепочек сертификатов.
2233
2234
2235 Изменения в nginx 1.7.10 10.02.2015
2236
2237 *) Добавление: параметр use_temp_path директив proxy_cache_path,
2238 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
2239
2240 *) Добавление: переменная $upstream_header_time.
2241
2242 *) Изменение: теперь при переполнении диска nginx пытается писать
2243 error_log'и только раз в секунду.
2244
2245 *) Исправление: директива try_files при тестировании каталогов не
2246 игнорировала обычные файлы.
2247 Спасибо Damien Tournoud.
2248
2249 *) Исправление: при использовании директивы sendfile на OS X возникали
2250 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8.
2251
2252 *) Исправление: в лог могли писаться сообщения "sem_post() failed".
2253
2254 *) Исправление: nginx не собирался с musl libc.
2255 Спасибо James Taylor.
2256
2257 *) Исправление: nginx не собирался на Tru64 UNIX.
2258 Спасибо Goetz T. Fischer.
2259
2260
2261 Изменения в nginx 1.7.9 23.12.2014
2262
2263 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
2264 uwsgi_cache поддерживают переменные.
2265
2266 *) Добавление: директива expires поддерживает переменные.
2267
2268 *) Добавление: возможность загрузки секретных ключей с аппаратных
2269 устройств с помощью OpenSSL engines.
2270 Спасибо Дмитрию Пичулину.
2271
2272 *) Добавление: директива autoindex_format.
2273
2274 *) Исправление: ревалидация элементов кэша теперь используется только
2275 для ответов с кодами 200 и 206.
2276 Спасибо Piotr Sikora.
2277
2278 *) Исправление: строка "TE" заголовка запроса клиента передавалась на
2279 бэкенд при проксировании.
2280
2281 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
2282 uwsgi_pass могли неправильно работать внутри блоков if и
2283 limit_except.
2284
2285 *) Исправление: директива proxy_store с параметром "on" игнорировалась,
2286 если на предыдущем уровне использовалась директива proxy_store с явно
2287 заданным путём к файлам.
2288
2289 *) Исправление: nginx не собирался с BoringSSL.
2290 Спасибо Lukas Tribus.
2291
2292
2293 Изменения в nginx 1.7.8 02.12.2014
2294
2295 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им
2296 подобные в заголовке запроса клиента передаются бэкенду при
2297 включённом кэшировании, если nginx заранее знает, что не будет
2298 кэшировать ответ (например, при использовании proxy_cache_min_uses).
2299
2300 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
2301 отправляет запрос на бэкенд без кэширования; новые директивы
2302 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
2303 uwsgi_cache_lock_age позволяют указать, через какое время блокировка
2304 будет принудительно снята и будет сделана ещё одна попытка
2305 закэшировать ответ.
2306
2307 *) Изменение: директива log_format теперь может использоваться только на
2308 уровне http.
2309
2310 *) Добавление: директивы proxy_ssl_certificate,
2311 proxy_ssl_certificate_key, proxy_ssl_password_file,
2312 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
2313 uwsgi_ssl_password_file.
2314 Спасибо Piotr Sikora.
2315
2316 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
2317 именованный location.
2318 Спасибо Toshikuni Fukaya.
2319
2320 *) Добавление: теперь директива tcp_nodelay работает для
2321 SPDY-соединений.
2322
2323 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
2324 Спасибо Peter Wu.
2325
2326 *) Исправление: nginx игнорировал значение "s-maxage" в строке
2327 "Cache-Control" в заголовке ответа бэкенда.
2328 Спасибо Piotr Sikora.
2329
2330 *) Исправление: в модуле ngx_http_spdy_module.
2331 Спасибо Piotr Sikora.
2332
2333 *) Исправление: в директиве ssl_password_file при использовании OpenSSL
2334 0.9.8zc, 1.0.0o, 1.0.1j.
2335
2336 *) Исправление: при использовании директивы post_action в лог писались
2337 сообщения "header already sent"; ошибка появилась в nginx 1.5.4.
2338
2339 *) Исправление: при использовании директивы "postpone_output 0" с
2340 SSI-подзапросами в лог могли писаться сообщения "the http output
2341 chain is empty".
2342
2343 *) Исправление: в директиве proxy_cache_lock при использовании
2344 SSI-подзапросов.
2345 Спасибо Yichun Zhang.
2346
2347
2348 Изменения в nginx 1.7.7 28.10.2014
2349
2350 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
2351 заголовке ответа бэкенда.
2352
2353 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
2354 scgi_force_ranges и uwsgi_force_ranges.
2355
2356 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
2357 scgi_limit_rate и uwsgi_limit_rate.
2358
2359 *) Добавление: параметр Vary директив proxy_ignore_headers,
2360 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.
2361
2362 *) Исправление: последняя часть ответа, полученного от бэкенда при
2363 небуферизированном проксировании, могла не отправляться клиенту, если
2364 использовались директивы gzip или gunzip.
2365
2366 *) Исправление: в директиве proxy_cache_revalidate.
2367 Спасибо Piotr Sikora.
2368
2369 *) Исправление: в обработке ошибок.
2370 Спасибо Yichun Zhang и Даниилу Бондареву.
2371
2372 *) Исправление: в директивах proxy_next_upstream_tries и
2373 proxy_next_upstream_timeout.
2374 Спасибо Feng Gu.
2375
2376 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
2377 Спасибо Kouhei Sutou.
2378
2379
2380 Изменения в nginx 1.7.6 30.09.2014
2381
2382 *) Изменение: устаревшая директива limit_zone больше не поддерживается.
2383
2384 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
2385 можно использовать комбинации нескольких переменных.
2386
2387 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
2388 запроса могло передаваться неправильно.
2389
2390 *) Исправление: в логгировании в syslog.
2391
2392
2393 Изменения в nginx 1.7.5 16.09.2014
2394
2395 *) Безопасность: при использовании общего для нескольких блоков server
2396 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
2397 session tickets было возможно повторно использовать SSL-сессию в
2398 контексте другого блока server (CVE-2014-3616).
2399 Спасибо Antoine Delignat-Lavaud.
2400
2401 *) Изменение: директиву stub_status теперь можно указывать без
2402 параметров.
2403
2404 *) Добавление: параметр always директивы add_header.
2405
2406 *) Добавление: директивы proxy_next_upstream_tries,
2407 proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
2408 fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
2409 memcached_next_upstream_timeout, scgi_next_upstream_tries,
2410 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
2411 uwsgi_next_upstream_timeout.
2412
2413 *) Исправление: в параметре if директивы access_log.
2414
2415 *) Исправление: в модуле ngx_http_perl_module.
2416 Спасибо Piotr Sikora.
2417
2418 *) Исправление: директива listen почтового прокси-сервера не позволяла
2419 указать более двух параметров.
2420
2421 *) Исправление: директива sub_filter не работала с заменяемой строкой из
2422 одного символа.
2423
2424 *) Исправление: запросы могли зависать, если использовался resolver и в
2425 процессе обращения к DNS-серверу происходил таймаут.
2426
2427 *) Исправление: в модуле ngx_http_spdy_module при использовании
2428 совместно с AIO.
2429
2430 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2431 если с помощью директивы set изменялись переменные "$http_...",
2432 "$sent_http_..." или "$upstream_http_...".
2433
2434 *) Исправление: в обработке ошибок выделения памяти.
2435 Спасибо Markus Linnala и Feng Gu.
2436
2437
2438 Изменения в nginx 1.7.4 05.08.2014
2439
2440 *) Безопасность: pipelined-команды не отбрасывались после команды
2441 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
2442 1.5.6.
2443 Спасибо Chris Boulton.
2444
2445 *) Изменение: экранирование символов в URI теперь использует
2446 шестнадцатеричные цифры в верхнем регистре.
2447 Спасибо Piotr Sikora.
2448
2449 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
2450 Спасибо Piotr Sikora.
2451
2452 *) Исправление: запросы могли зависать, если использовался resolver и
2453 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.
2454
2455 *) Исправление: в модуле ngx_http_spdy_module.
2456 Спасибо Piotr Sikora.
2457
2458 *) Исправление: переменная $uri могла содержать мусор при возврате
2459 ошибок с кодом 400.
2460 Спасибо Сергею Боброву.
2461
2462 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле
2463 ngx_http_dav_module.
2464 Спасибо Feng Gu.
2465
2466 *) Исправление: при логгировании ошибок в syslog мог происходить
2467 segmentation fault; ошибка появилась в 1.7.1.
2468
2469 *) Исправление: переменные $geoip_latitude, $geoip_longitude,
2470 $geoip_dma_code и $geoip_area_code могли не работать.
2471 Спасибо Yichun Zhang.
2472
2473 *) Исправление: в обработке ошибок выделения памяти.
2474 Спасибо Tatsuhiko Kubo и Piotr Sikora.
2475
2476
2477 Изменения в nginx 1.7.3 08.07.2014
2478
2479 *) Добавление: weak entity tags теперь не удаляются при изменениях
2480 ответа, а strong entity tags преобразуются в weak.
2481
2482 *) Добавление: ревалидация элементов кэша теперь, если это возможно,
2483 использует заголовок If-None-Match.
2484
2485 *) Добавление: директива ssl_password_file.
2486
2487 *) Исправление: при возврате ответа из кэша заголовок запроса
2488 If-None-Match игнорировался, если в ответе не было заголовка
2489 Last-Modified.
2490
2491 *) Исправление: сообщения "peer closed connection in SSL handshake" при
2492 соединении с бэкендами логгировались на уровне info вместо error.
2493
2494 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows.
2495
2496 *) Исправление: SPDY-соединения могли неожиданно закрываться, если
2497 использовалось кэширование.
2498
2499
2500 Изменения в nginx 1.7.2 17.06.2014
2501
2502 *) Добавление: директива hash в блоке upstream.
2503
2504 *) Добавление: дефрагментация свободных блоков разделяемой памяти.
2505 Спасибо Wandenberg Peixoto и Yichun Zhang.
2506
2507 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2508 если использовалось значение access_log по умолчанию; ошибка
2509 появилась в 1.7.0.
2510 Спасибо Piotr Sikora.
2511
2512 *) Исправление: завершающий слэш ошибочно удалялся из последнего
2513 параметра директивы try_files.
2514
2515 *) Исправление: nginx мог не собираться на OS X.
2516
2517 *) Исправление: в модуле ngx_http_spdy_module.
2518
2519
2520 Изменения в nginx 1.7.1 27.05.2014
2521
2522 *) Добавление: переменные "$upstream_cookie_...".
2523
2524 *) Добавление: переменная $ssl_client_fingerprint.
2525
2526 *) Добавление: директивы error_log и access_log теперь поддерживают
2527 логгирование в syslog.
2528
2529 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
2530 соединении.
2531
2532 *) Исправление: утечки памяти при использовании директивы
2533 "ssl_stapling".
2534 Спасибо Filipe da Silva.
2535
2536 *) Исправление: директива alias внутри location'а, заданного регулярным
2537 выражением, работала неправильно, если использовались директивы if
2538 или limit_except.
2539
2540 *) Исправление: директива charset не ставила кодировку для сжатых
2541 ответов бэкендов.
2542
2543 *) Исправление: директива proxy_pass без URI могла использовать
2544 оригинальный запрос после установки переменной $args.
2545 Спасибо Yichun Zhang.
2546
2547 *) Исправление: в работе параметра none директивы smtp_auth; ошибка
2548 появилась в 1.5.6.
2549 Спасибо Святославу Никольскому.
2550
2551 *) Исправление: при совместном использовании sub_filter и SSI ответы
2552 могли передаваться неверно.
2553
2554 *) Исправление: nginx не собирался с параметром --with-file-aio на
2555 Linux/aarch64.
2556
2557
2558 Изменения в nginx 1.7.0 24.04.2014
2559
2560 *) Добавление: проверка SSL-сертификатов бэкендов.
2561
2562 *) Добавление: поддержка SNI при работе с бэкендами по SSL.
2563
2564 *) Добавление: переменная $ssl_server_name.
2565
2566 *) Добавление: параметр if директивы access_log.
2567
2568
2569 Изменения в nginx 1.5.13 08.04.2014
2570
2571 *) Изменение: улучшена обработка хэш-таблиц; в директивах
2572 variables_hash_max_size и types_hash_bucket_size значения по
2573 умолчанию изменены на 1024 и 64 соответственно.
2574
2575 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
2576
2577 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
2578 сохранении ответов в кэш.
2579
2580 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
2581 failed: no memory" при использовании разделяемой памяти в
2582 ssl_session_cache и в модуле ngx_http_limit_req_module.
2583
2584 *) Исправление: директива underscores_in_headers не разрешала
2585 подчёркивание в первом символе заголовка.
2586 Спасибо Piotr Sikora.
2587
2588 *) Исправление: cache manager мог нагружать процессор при выходе в
2589 nginx/Windows.
2590
2591 *) Исправление: при использовании ssl_session_cache с параметром shared
2592 рабочий процесс nginx/Windows завершался аварийно.
2593
2594 *) Исправление: в модуле ngx_http_spdy_module.
2595
2596
2597 Изменения в nginx 1.5.12 18.03.2014
2598
2599 *) Безопасность: при обработке специально созданного запроса модулем
2600 ngx_http_spdy_module могло происходить переполнение буфера в рабочем
2601 процессе, что потенциально могло приводить к выполнению произвольного
2602 кода (CVE-2014-0133).
2603 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
2604 Buenos Aires, Argentina.
2605
2606 *) Добавление: параметр proxy_protocol в директивах listen и
2607 real_ip_header, переменная $proxy_protocol_addr.
2608
2609 *) Исправление: в директиве fastcgi_next_upstream.
2610 Спасибо Lucas Molas.
2611
2612
2613 Изменения в nginx 1.5.11 04.03.2014
2614
2615 *) Безопасность: при обработке специально созданного запроса модулем
2616 ngx_http_spdy_module на 32-битных платформах могла повреждаться
2617 память рабочего процесса, что потенциально могло приводить к
2618 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
2619 1.5.10.
2620 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
2621 Buenos Aires, Argentina.
2622
2623 *) Добавление: переменная $ssl_session_reused.
2624
2625 *) Исправление: директива client_max_body_size могла не работать при
2626 чтении тела запроса с использованием chunked transfer encoding;
2627 ошибка появилась в 1.3.9.
2628 Спасибо Lucas Molas.
2629
2630 *) Исправление: при проксировании WebSocket-соединений в рабочем
2631 процессе мог произойти segmentation fault.
2632
2633 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2634 если использовался модуль ngx_http_spdy_module на 32-битных
2635 платформах; ошибка появилась в 1.5.10.
2636
2637 *) Исправление: значение переменной $upstream_status могло быть
2638 неверным, если использовались директивы proxy_cache_use_stale или
2639 proxy_cache_revalidate.
2640 Спасибо Piotr Sikora.
2641
2642 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2643 если ошибки с кодом 400 с помощью директивы error_page
2644 перенаправлялись в именованный location.
2645
2646 *) Исправление: nginx/Windows не собирался с Visual Studio 2013.
2647
2648
2649 Изменения в nginx 1.5.10 04.02.2014
2650
2651 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол
2652 SPDY 3.1.
2653 Спасибо Automattic и MaxCDN за спонсирование разработки.
2654
2655 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
2656 имеющие меньшую длину, чем запрошенная перемотка.
2657
2658 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2659 если переменная $ssl_session_id использовалась при логгировании;
2660 ошибка появилась в 1.5.9.
2661
2662 *) Исправление: переменные $date_local и $date_gmt использовали неверный
2663 формат вне модуля ngx_http_ssi_filter_module.
2664
2665 *) Исправление: клиентские соединения могли сразу закрываться, если
2666 использовался отложенный accept; ошибка появилась в 1.3.15.
2667
2668 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
2669 записывались в лог в процессе обновления исполняемого файла на Linux;
2670 ошибка появилась в 1.5.8.
2671 Спасибо Piotr Sikora.
2672
2673
2674 Изменения в nginx 1.5.9 22.01.2014
2675
2676 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
2677 закодированный URI.
2678
2679 *) Добавление: директива ssl_buffer_size.
2680
2681 *) Добавление: директиву limit_rate теперь можно использовать для
2682 ограничения скорости передачи ответов клиенту в SPDY-соединениях.
2683
2684 *) Добавление: директива spdy_chunk_size.
2685
2686 *) Добавление: директива ssl_session_tickets.
2687 Спасибо Dirkjan Bussink.
2688
2689 *) Исправление: переменная $ssl_session_id содержала всю сессию в
2690 сериализованном виде вместо её идентификатора.
2691 Спасибо Ivan Ristić.
2692
2693 *) Исправление: nginx неправильно обрабатывал закодированный символ "?"
2694 в команде SSI include.
2695
2696 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
2697 при обработке методов COPY и MOVE.
2698
2699 *) Исправление: resolver не понимал доменные имена с точкой в конце.
2700 Спасибо Yichun Zhang.
2701
2702 *) Исправление: при проксировании в логах могли появляться сообщения
2703 "zero size buf in output"; ошибка появилась в 1.3.9.
2704
2705 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2706 если использовался модуль ngx_http_spdy_module.
2707
2708 *) Исправление: при использовании методов обработки соединений select,
2709 poll и /dev/poll проксируемые WebSocket-соединения могли зависать
2710 сразу после открытия.
2711
2712 *) Исправление: директива xclient почтового прокси-сервера некорректно
2713 передавала IPv6-адреса.
2714
2715
2716 Изменения в nginx 1.5.8 17.12.2013
2717
2718 *) Добавление: теперь resolver поддерживает IPv6.
2719
2720 *) Добавление: директива listen поддерживает параметр fastopen.
2721 Спасибо Mathew Rodley.
2722
2723 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
2724 Спасибо Roberto De Ioris.
2725
2726 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
2727 Спасибо Evan Miller.
2728
2729 *) Исправление: при чтении тела запроса с использованием chunked
2730 transfer encoding по SSL-соединению мог произойти таймаут.
2731
2732 *) Исправление: директива master_process работала неправильно в
2733 nginx/Windows.
2734
2735 *) Исправление: параметр setfib директивы listen мог не работать.
2736
2737 *) Исправление: в модуле ngx_http_spdy_module.
2738
2739
2740 Изменения в nginx 1.5.7 19.11.2013
2741
2742 *) Безопасность: символ, следующий за незакодированным пробелом в строке
2743 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
2744 в 0.8.41.
2745 Спасибо Ivan Fratric из Google Security Team.
2746
2747 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии
2748 пароля понижен с уровня error до info.
2749
2750 *) Добавление: директивы proxy_cache_revalidate,
2751 fastcgi_cache_revalidate, scgi_cache_revalidate и
2752 uwsgi_cache_revalidate.
2753
2754 *) Добавление: директива ssl_session_ticket_key.
2755 Спасибо Piotr Sikora.
2756
2757 *) Исправление: директива "add_header Cache-Control ''" добавляла строку
2758 заголовка ответа "Cache-Control" с пустым значением.
2759
2760 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
2761 401 при использовании директив auth_request и auth_basic.
2762 Спасибо Jan Marc Hoffmann.
2763
2764 *) Исправление: параметры accept_filter и deferred директивы listen
2765 игнорировались для listen-сокетов, создаваемых в процессе обновления
2766 исполняемого файла.
2767 Спасибо Piotr Sikora.
2768
2769 *) Исправление: часть данных, полученных от бэкенда при
2770 небуферизированном проксировании, могла не отправляться клиенту
2771 сразу, если использовались директивы gzip или gunzip.
2772 Спасибо Yichun Zhang.
2773
2774 *) Исправление: в обработке ошибок в модуле
2775 ngx_http_gunzip_filter_module.
2776
2777 *) Исправление: ответы могли зависать, если использовался модуль
2778 ngx_http_spdy_module и директива auth_request.
2779
2780 *) Исправление: утечки памяти в nginx/Windows.
2781
2782
2783 Изменения в nginx 1.5.6 01.10.2013
2784
2785 *) Добавление: директива fastcgi_buffering.
2786
2787 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
2788 Спасибо Piotr Sikora.
2789
2790 *) Добавление: оптимизация SSL handshake при использовании длинных
2791 цепочек сертификатов.
2792
2793 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
2794
2795 *) Исправление: в модуле ngx_http_auth_basic_module при использовании
2796 метода шифрования паролей "$apr1$".
2797 Спасибо Markus Linnala.
2798
2799 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
2800 мог использоваться неверный location, если для задания location'ов
2801 использовались символы разных регистров.
2802
2803 *) Исправление: автоматическое перенаправление с добавлением
2804 завершающего слэша для проксированных location'ов могло не работать.
2805
2806 *) Исправление: в почтовом прокси-сервере.
2807
2808 *) Исправление: в модуле ngx_http_spdy_module.
2809
2810
2811 Изменения в nginx 1.5.5 17.09.2013
2812
2813 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
2814 определить протокол не удалось.
2815
2816 *) Добавление: директива disable_symlinks теперь использует O_PATH на
2817 Linux.
2818
2819 *) Добавление: для определения того, что клиент закрыл соединение, при
2820 использовании метода epoll теперь используются события EPOLLRDHUP.
2821
2822 *) Исправление: в директиве valid_referers при использовании параметра
2823 server_names.
2824
2825 *) Исправление: переменная $request_time не работала в nginx/Windows.
2826
2827 *) Исправление: в директиве image_filter.
2828 Спасибо Lanshun Zhou.
2829
2830 *) Исправление: совместимость с OpenSSL 1.0.1f.
2831 Спасибо Piotr Sikora.
2832
2833
2834 Изменения в nginx 1.5.4 27.08.2013
2835
2836 *) Изменение: MIME-тип для расширения js изменён на
2837 "application/javascript"; значение по умолчанию директивы
2838 charset_types изменено соответственно.
2839
2840 *) Изменение: теперь директива image_filter с параметром size возвращает
2841 ответ с MIME-типом "application/json".
2842
2843 *) Добавление: модуль ngx_http_auth_request_module.
2844
2845 *) Исправление: на старте или во время переконфигурации мог произойти
2846 segmentation fault, если использовалась директива try_files с пустым
2847 параметром.
2848
2849 *) Исправление: утечки памяти при использовании в директивах root и
2850 auth_basic_user_file относительных путей, заданных с помощью
2851 переменных.
2852
2853 *) Исправление: директива valid_referers неправильно выполняла
2854 регулярные выражения, если заголовок Referer начинался с "https://".
2855 Спасибо Liangbin Li.
2856
2857 *) Исправление: ответы могли зависать, если использовались подзапросы и
2858 при обработке подзапроса происходила ошибка во время SSL handshake с
2859 бэкендом.
2860 Спасибо Aviram Cohen.
2861
2862 *) Исправление: в модуле ngx_http_autoindex_module.
2863
2864 *) Исправление: в модуле ngx_http_spdy_module.
2865
2866
2867 Изменения в nginx 1.5.3 30.07.2013
2868
2869 *) Изменение во внутреннем API: теперь при небуферизированной работе с
2870 бэкендами u->length по умолчанию устанавливается в -1.
2871
2872 *) Изменение: теперь при получении неполного ответа от бэкенда nginx
2873 отправляет полученную часть ответа, после чего закрывает соединение с
2874 клиентом.
2875
2876 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2877 если использовался модуль ngx_http_spdy_module и директива
2878 client_body_in_file_only.
2879
2880 *) Исправление: параметр so_keepalive директивы listen мог работать
2881 некорректно на DragonFlyBSD.
2882 Спасибо Sepherosa Ziehau.
2883
2884 *) Исправление: в модуле ngx_http_xslt_filter_module.
2885
2886 *) Исправление: в модуле ngx_http_sub_filter_module.
2887
2888
2889 Изменения в nginx 1.5.2 02.07.2013
2890
2891 *) Добавление: теперь можно использовать несколько директив error_log.
2892
2893 *) Исправление: метод $r->header_in() встроенного перла не возвращал
2894 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
2895 ошибка появилась в 1.3.14.
2896
2897 *) Исправление: в модуле ngx_http_spdy_module.
2898 Спасибо Jim Radford.
2899
2900 *) Исправление: nginx не собирался на Linux при использовании x32 ABI.
2901 Спасибо Сергею Иванцову.
2902
2903
2904 Изменения в nginx 1.5.1 04.06.2013
2905
2906 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
2907 xslt_last_modified.
2908 Спасибо Алексею Колпакову.
2909
2910 *) Добавление: параметр http_403 в директивах proxy_next_upstream,
2911 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
2912
2913 *) Добавление: директивы allow и deny теперь поддерживают unix domain
2914 сокеты.
2915
2916 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
2917 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
2918
2919 *) Исправление: в директиве proxy_set_body.
2920 Спасибо Lanshun Zhou.
2921
2922 *) Исправление: в директиве lingering_time.
2923 Спасибо Lanshun Zhou.
2924
2925 *) Исправление: параметр fail_timeout директивы server в блоке upstream
2926 мог не работать, если использовался параметр max_fails; ошибка
2927 появилась в 1.3.0.
2928
2929 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2930 если использовалась директива ssl_stapling.
2931 Спасибо Piotr Sikora.
2932
2933 *) Исправление: в почтовом прокси-сервере.
2934 Спасибо Filipe Da Silva.
2935
2936 *) Исправление: nginx/Windows мог перестать принимать соединения, если
2937 использовалось несколько рабочих процессов.
2938
2939
2940 Изменения в nginx 1.5.0 07.05.2013
2941
2942 *) Безопасность: при обработке специально созданного запроса мог
2943 перезаписываться стек рабочего процесса, что могло приводить к
2944 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
2945 1.3.9.
2946 Спасибо Greg MacManus, iSIGHT Partners Labs.
2947
2948
2949 Изменения в nginx 1.4.0 24.04.2013
2950
2951 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
2952 использовался параметр --with-openssl; ошибка появилась в 1.3.16.
2953
2954 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
2955 ошибка появилась в 1.3.9.
2956
2957
2958 Изменения в nginx 1.3.16 16.04.2013
2959
2960 *) Исправление: в рабочем процессе мог произойти segmentation fault,
2961 если использовались подзапросы; ошибка появилась в 1.3.9.
2962
2963 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
2964 WebSocket-соединений в unix domain сокет.
2965
2966 *) Исправление: переменная $upstream_response_length возвращала значение
2967 "0", если не использовалась буферизация.
2968 Спасибо Piotr Sikora.
2969
2970 *) Исправление: в методах обработки соединений eventport и /dev/poll.
2971
2972
2973 Изменения в nginx 1.3.15 26.03.2013
2974
2975 *) Изменение: открытие и закрытие соединения без отправки в нём
2976 каких-либо данных больше не записывается в access_log с кодом ошибки
2977 400.
2978
2979 *) Добавление: модуль ngx_http_spdy_module.
2980 Спасибо Automattic за спонсирование разработки.
2981
2982 *) Добавление: директивы limit_req_status и limit_conn_status.
2983 Спасибо Nick Marden.
2984
2985 *) Добавление: директива image_filter_interlace.
2986 Спасибо Ивану Боброву.
2987
2988 *) Добавление: переменная $connections_waiting в модуле
2989 ngx_http_stub_status_module.
2990
2991 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
2992
2993 *) Исправление: при повторной отправке запроса на бэкенд тело запроса
2994 могло передаваться неправильно; ошибка появилась в 1.3.9.
2995 Спасибо Piotr Sikora.
2996
2997 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
2998 1.3.9.
2999
3000 *) Исправление: ответы могли зависать, если использовались подзапросы и
3001 при обработке подзапроса происходила DNS-ошибка.
3002 Спасибо Lanshun Zhou.
3003
3004 *) Исправление: в процедуре учёта использования бэкендов.
3005
3006
3007 Изменения в nginx 1.3.14 05.03.2013
3008
3009 *) Добавление: переменные $connections_active, $connections_reading и
3010 $connections_writing в модуле ngx_http_stub_status_module.
3011
3012 *) Добавление: поддержка WebSocket-соединений в модулях
3013 ngx_http_uwsgi_module и ngx_http_scgi_module.
3014
3015 *) Исправление: в обработке виртуальных серверов при использовании SNI.
3016
3017 *) Исправление: при использовании директивы "ssl_session_cache shared"
3018 новые сессии могли не сохраняться, если заканчивалось место в
3019 разделяемой памяти.
3020 Спасибо Piotr Sikora.
3021
3022 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались
3023 неправильно.
3024 Спасибо Neal Poole за спонсирование разработки.
3025
3026 *) Исправление: в модуле ngx_http_mp4_module.
3027 Спасибо Gernot Vormayr.
3028
3029
3030 Изменения в nginx 1.3.13 19.02.2013
3031
3032 *) Изменение: теперь для сборки по умолчанию используется компилятор с
3033 именем "cc".
3034
3035 *) Добавление: поддержка проксирования WebSocket-соединений.
3036 Спасибо Apcera и CloudBees за спонсирование разработки.
3037
3038 *) Добавление: директива auth_basic_user_file поддерживает шифрование
3039 паролей методом "{SHA}".
3040 Спасибо Louis Opter.
3041
3042
3043 Изменения в nginx 1.3.12 05.02.2013
3044
3045 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
3046 scgi_bind и uwsgi_bind поддерживают переменные.
3047
3048 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и
3049 $time_local теперь можно использовать не только в директиве
3050 log_format.
3051 Спасибо Kiril Kalchev.
3052
3053 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
3054 Спасибо Gregor Kališnik.
3055
3056 *) Исправление: директива proxy_method работала неверно, если была
3057 указана на уровне http.
3058
3059 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3060 если использовался resolver и метод poll.
3061
3062 *) Исправление: nginx мог нагружать процессор во время SSL handshake с
3063 бэкендом при использовании методов обработки соединений select, poll
3064 и /dev/poll.
3065
3066 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
3067
3068 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в
3069 1.3.9.
3070
3071 *) Исправление: в директиве fastcgi_keep_conn.
3072
3073
3074 Изменения в nginx 1.3.11 10.01.2013
3075
3076 *) Исправление: при записи в лог мог происходить segmentation fault;
3077 ошибка появилась в 1.3.10.
3078
3079 *) Исправление: директива proxy_pass не работала с IP-адресами без
3080 явного указания порта; ошибка появилась в 1.3.10.
3081
3082 *) Исправление: на старте или во время переконфигурации происходил
3083 segmentation fault, если директива keepalive была указана несколько
3084 раз в одном блоке upstream.
3085
3086 *) Исправление: параметр default директивы geo не определял значение по
3087 умолчанию для IPv6-адресов.
3088
3089
3090 Изменения в nginx 1.3.10 25.12.2012
3091
3092 *) Изменение: для указанных в конфигурационном файле доменных имён
3093 теперь используются не только IPv4, но и IPv6 адреса.
3094
3095 *) Изменение: теперь при использовании директивы include с маской на
3096 Unix-системах включаемые файлы сортируются в алфавитном порядке.
3097
3098 *) Изменение: директива add_header добавляет строки в ответы с кодом
3099 201.
3100
3101 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
3102 CIDR.
3103
3104 *) Добавление: параметры flush и gzip в директиве access_log.
3105
3106 *) Добавление: директива auth_basic поддерживает переменные.
3107
3108 *) Исправление: nginx в некоторых случаях не собирался с модулем
3109 ngx_http_perl_module.
3110
3111 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3112 если использовался модуль ngx_http_xslt_module.
3113
3114 *) Исправление: nginx мог не собираться на MacOSX.
3115 Спасибо Piotr Sikora.
3116
3117 *) Исправление: при использовании директивы limit_rate с большими
3118 значениями скорости на 32-битных системах ответ мог возвращаться не
3119 целиком.
3120 Спасибо Алексею Антропову.
3121
3122 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3123 если использовалась директива if.
3124 Спасибо Piotr Sikora.
3125
3126 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
3127 Request Entity Too Large".
3128
3129 *) Исправление: директивы image_filter, image_filter_jpeg_quality и
3130 image_filter_sharpen могли наследоваться некорректно.
3131 Спасибо Ивану Боброву.
3132
3133 *) Исправление: при использовании директивы auth_basic под Linux могли
3134 возникать ошибки "crypt_r() failed".
3135
3136 *) Исправление: в обработке backup-серверов.
3137 Спасибо Thomas Chen.
3138
3139 *) Исправление: при проксировании HEAD-запросов мог возвращаться
3140 некорректный ответ, если использовалась директива gzip.
3141
3142
3143 Изменения в nginx 1.3.9 27.11.2012
3144
3145 *) Добавление: поддержка chunked transfer encoding при получении тела
3146 запроса.
3147
3148 *) Добавление: переменные $request_time и $msec теперь можно
3149 использовать не только в директиве log_format.
3150
3151 *) Исправление: cache manager и cache loader могли не запускаться, если
3152 использовалось более 512 listen-сокетов.
3153
3154 *) Исправление: в модуле ngx_http_dav_module.
3155
3156
3157 Изменения в nginx 1.3.8 30.10.2012
3158
3159 *) Добавление: параметр optional_no_ca директивы ssl_verify_client.
3160 Спасибо Михаилу Казанцеву и Eric O'Connor.
3161
3162 *) Добавление: переменные $bytes_sent, $connection и
3163 $connection_requests теперь можно использовать не только в директиве
3164 log_format.
3165 Спасибо Benjamin Grössing.
3166
3167 *) Добавление: параметр auto директивы worker_processes.
3168
3169 *) Исправление: сообщения "cache file ... has md5 collision".
3170
3171 *) Исправление: в модуле ngx_http_gunzip_filter_module.
3172
3173 *) Исправление: в директиве ssl_stapling.
3174
3175
3176 Изменения в nginx 1.3.7 02.10.2012
3177
3178 *) Добавление: поддержка OCSP stapling.
3179 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
3180
3181 *) Добавление: директива ssl_trusted_certificate.
3182
3183 *) Добавление: теперь resolver случайным образом меняет порядок
3184 возвращаемых закэшированных адресов.
3185 Спасибо Антону Жулину.
3186
3187 *) Исправление: совместимость с OpenSSL 0.9.7.
3188
3189
3190 Изменения в nginx 1.3.6 12.09.2012
3191
3192 *) Добавление: модуль ngx_http_gunzip_filter_module.
3193
3194 *) Добавление: директива memcached_gzip_flag.
3195
3196 *) Добавление: параметр always директивы gzip_static.
3197
3198 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
3199 Спасибо Charles Chen.
3200
3201 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
3202 использовался параметр --with-ipv6.
3203
3204
3205 Изменения в nginx 1.3.5 21.08.2012
3206
3207 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
3208 дорожки в форматах, отличных от H.264 и AAC.
3209
3210 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3211 если в директиве map в качестве значений использовались переменные.
3212
3213 *) Исправление: в рабочем процессе мог произойти segmentation fault при
3214 использовании директивы geo с параметром ranges, но без параметра
3215 default; ошибка появилась в 0.8.43.
3216 Спасибо Zhen Chen и Weibin Yao.
3217
3218 *) Исправление: в обработке параметра командной строки -p.
3219
3220 *) Исправление: в почтовом прокси-сервере.
3221
3222 *) Исправление: незначительных потенциальных ошибок.
3223 Спасибо Coverity.
3224
3225 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
3226 Спасибо HAYASHI Kentaro.
3227
3228
3229 Изменения в nginx 1.3.4 31.07.2012
3230
3231 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
3232 по умолчанию.
3233
3234 *) Добавление: поддержка компилятора Clang.
3235
3236 *) Исправление: могли создаваться лишние слушающие сокеты.
3237 Спасибо Роману Одайскому.
3238
3239 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске
3240 рабочего процесса происходила ошибка.
3241 Спасибо Ricardo Villalobos Guevara.
3242
3243 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
3244 scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
3245 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
3246 наследоваться некорректно.
3247
3248
3249 Изменения в nginx 1.3.3 10.07.2012
3250
3251 *) Добавление: поддержка entity tags и директива etag.
3252
3253 *) Исправление: при использовании директивы map с параметром hostnames
3254 не игнорировалась конечная точка в исходном значении.
3255
3256 *) Исправление: для обработки запроса мог использоваться неверный
3257 location, если переход в именованный location происходил после
3258 изменения URI с помощью директивы rewrite.
3259
3260
3261 Изменения в nginx 1.3.2 26.06.2012
3262
3263 *) Изменение: параметр single директивы keepalive теперь игнорируется.
3264
3265 *) Изменение: сжатие SSL теперь отключено в том числе при использовании
3266 OpenSSL старее 1.0.0.
3267
3268 *) Добавление: директиву "ip_hash" теперь можно использовать для
3269 балансировки IPv6 клиентов.
3270
3271 *) Добавление: переменную $status теперь можно использовать не только в
3272 директиве log_format.
3273
3274 *) Исправление: при завершении рабочего процесса мог произойти
3275 segmentation fault, если использовалась директива resolver.
3276
3277 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3278 если использовался модуль ngx_http_mp4_module.
3279
3280 *) Исправление: в модуле ngx_http_mp4_module.
3281
3282 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3283 если использовались конфликтующие имена серверов с масками.
3284
3285 *) Исправление: на платформе ARM nginx мог аварийно завершаться по
3286 сигналу SIGBUS.
3287
3288 *) Исправление: во время переконфигурации на HP-UX в лог записывался
3289 alert "sendmsg() failed (9: Bad file number)".
3290
3291
3292 Изменения в nginx 1.3.1 05.06.2012
3293
3294 *) Безопасность: теперь nginx/Windows игнорирует точку в конце
3295 компонента URI и не разрешает URI, содержащие последовательность
3296 ":$".
3297 Спасибо Владимиру Кочеткову, Positive Research Center.
3298
3299 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
3300 и директива server в блоке upstream теперь поддерживают IPv6-адреса.
3301
3302 *) Добавление: в директиве resolver теперь можно указывать порт и
3303 задавать IPv6-адреса DNS-серверов.
3304
3305 *) Добавление: директива least_conn в блоке upstream.
3306
3307 *) Добавление: при использовании директивы ip_hash теперь можно задавать
3308 веса серверов.
3309
3310 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3311 если использовалась директива image_filter; ошибка появилась в 1.3.0.
3312
3313 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
3314 появилась в 1.1.12.
3315
3316 *) Исправление: доступ к переменным из SSI и встроенного перла мог не
3317 работать после переконфигурации.
3318 Спасибо Yichun Zhang.
3319
3320 *) Исправление: в модуле ngx_http_xslt_filter_module.
3321 Спасибо Kuramoto Eiji.
3322
3323 *) Исправление: утечки памяти при использовании переменной $geoip_org.
3324 Спасибо Денису Латыпову.
3325
3326 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
3327
3328
3329 Изменения в nginx 1.3.0 15.05.2012
3330
3331 *) Добавление: директива debug_connection теперь поддерживает
3332 IPv6-адреса и параметр "unix:".
3333
3334 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo
3335 теперь поддерживают IPv6-адреса.
3336
3337 *) Добавление: директивы real_ip_recursive, geoip_proxy и
3338 geoip_proxy_recursive.
3339
3340 *) Добавление: параметр proxy_recursive директивы geo.
3341
3342 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3343 если использовалась директива resolver.
3344
3345 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3346 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
3347 и бэкенд возвращал некорректный ответ.
3348
3349 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3350 если использовалась директива rewrite и в новых аргументах запроса в
3351 строке замены использовались переменные.
3352
3353 *) Исправление: nginx мог нагружать процессор, если было достигнуто
3354 ограничение на количество открытых файлов.
3355
3356 *) Исправление: при использовании директивы proxy_next_upstream с
3357 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
3358 блоке upstream был хотя бы один сервер с флагом backup.
3359
3360 *) Исправление: при использовании директивы ip_hash установка параметра
3361 down директивы server могла приводить к ненужному перераспределению
3362 клиентов между бэкендами.
3363
3364 *) Исправление: утечки сокетов.
3365 Спасибо Yichun Zhang.
3366
3367 *) Исправление: в модуле ngx_http_fastcgi_module.
3368
3369
3370 Изменения в nginx 1.2.0 23.04.2012
3371
3372 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3373 если использовалась директива try_files; ошибка появилась в 1.1.19.
3374
3375 *) Исправление: ответ мог быть передан не полностью, если использовалось
3376 больше IOV_MAX буферов.
3377
3378 *) Исправление: в работе параметра crop директивы image_filter.
3379 Спасибо Maxim Bublis.
3380
3381
3382 Изменения в nginx 1.1.19 12.04.2012
3383
3384 *) Безопасность: при обработке специально созданного mp4 файла модулем
3385 ngx_http_mp4_module могли перезаписываться области памяти рабочего
3386 процесса, что могло приводить к выполнению произвольного кода
3387 (CVE-2012-2089).
3388 Спасибо Matthew Daley.
3389
3390 *) Исправление: nginx/Windows мог завершаться аварийно.
3391 Спасибо Vincent Lee.
3392
3393 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3394 были помечены флагом backup.
3395
3396 *) Исправление: директивы allow и deny могли наследоваться некорректно,
3397 если в них использовались IPv6 адреса.
3398
3399 *) Исправление: директивы modern_browser и ancient_browser могли
3400 наследоваться некорректно.
3401
3402 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
3403
3404 *) Исправление: в модуле ngx_http_mp4_module.
3405
3406
3407 Изменения в nginx 1.1.18 28.03.2012
3408
3409 *) Изменение: теперь keepalive соединения не запрещены для Safari по
3410 умолчанию.
3411
3412 *) Добавление: переменная $connection_requests.
3413
3414 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
3415 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
3416
3417 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
3418
3419 *) Добавление: директивы xslt_param и xslt_string_param.
3420 Спасибо Samuel Behan.
3421
3422 *) Исправление: в configure.
3423 Спасибо Piotr Sikora.
3424
3425 *) Исправление: в модуле ngx_http_xslt_filter_module.
3426
3427 *) Исправление: nginx не собирался на Debian GNU/Hurd.
3428
3429
3430 Изменения в nginx 1.1.17 15.03.2012
3431
3432 *) Безопасность: содержимое ранее освобождённой памяти могло быть
3433 отправлено клиенту, если бэкенд возвращал специально созданный ответ.
3434 Спасибо Matthew Daley.
3435
3436 *) Исправление: при использовании встроенного перла из SSI.
3437 Спасибо Matthew Daley.
3438
3439 *) Исправление: в модуле ngx_http_uwsgi_module.
3440
3441
3442 Изменения в nginx 1.1.16 29.02.2012
3443
3444 *) Изменение: ограничение на количество одновременных подзапросов
3445 поднято до 200.
3446
3447 *) Добавление: параметр from в директиве disable_symlinks.
3448
3449 *) Добавление: директивы return и error_page теперь могут использоваться
3450 для возврата перенаправлений с кодом 307.
3451
3452 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3453 если использовалась директива resolver и на глобальном уровне не была
3454 задана директива error_log.
3455 Спасибо Роману Арутюняну.
3456
3457 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3458 если использовались директивы "proxy_http_version 1.1" или
3459 "fastcgi_keep_conn on".
3460
3461 *) Исправление: утечек памяти.
3462 Спасибо Lanshun Zhou.
3463
3464 *) Исправление: в директиве disable_symlinks.
3465
3466 *) Исправление: при использовании ZFS размер кэша на диске мог считаться
3467 некорректно; ошибка появилась в 1.0.1.
3468
3469 *) Исправление: nginx не собирался компилятором icc 12.1.
3470
3471 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
3472 1.1.15.
3473
3474
3475 Изменения в nginx 1.1.15 15.02.2012
3476
3477 *) Добавление: директива disable_symlinks.
3478
3479 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
3480
3481 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
3482 prematurely closed connection" вместо "upstream sent too big header".
3483 Спасибо Feibo Li.
3484
3485 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
3486 использовался параметр --with-openssl.
3487
3488 *) Исправление: количество внутренних перенаправлений в именованные
3489 location'ы не ограничивалось.
3490
3491 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
3492 ошибкам в модуле ngx_http_gzip_filter_module.
3493
3494 *) Исправление: при использовании директивы proxy_store с
3495 SSI-подзапросами временные файлы могли не удаляться.
3496
3497 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
3498 $args) возвращали старое пустое закэшированное значение.
3499
3500 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3501 если одновременно создавалось слишком много SSI-подзапросов; ошибка
3502 появилась в 0.7.25.
3503
3504
3505 Изменения в nginx 1.1.14 30.01.2012
3506
3507 *) Добавление: теперь можно указать несколько ограничений limit_req
3508 одновременно.
3509
3510 *) Исправление: в обработке ошибок при соединении с бэкендом.
3511 Спасибо Piotr Sikora.
3512
3513 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
3514
3515 *) Исправление: в инициализации библиотеки OpenSSL.
3516
3517 *) Исправление: директивы proxy_redirect могли наследоваться
3518 некорректно.
3519
3520 *) Исправление: утечки памяти при переконфигурации, если использовалась
3521 директива pcre_jit.
3522
3523
3524 Изменения в nginx 1.1.13 16.01.2012
3525
3526 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
3527
3528 *) Исправление: параметры директивы limit_req наследовались некорректно;
3529 ошибка появилась в 1.1.12.
3530
3531 *) Исправление: директива proxy_redirect некорректно обрабатывала
3532 заголовок Refresh при использовании регулярных выражений.
3533
3534 *) Исправление: директива proxy_cache_use_stale с параметром error не
3535 возвращала ответ из кэша, если все бэкенды были признаны
3536 неработающими.
3537
3538 *) Исправление: директива worker_cpu_affinity могла не работать.
3539
3540 *) Исправление: nginx не собирался на Solaris; ошибка появилась в
3541 1.1.12.
3542
3543 *) Исправление: в модуле ngx_http_mp4_module.
3544
3545
3546 Изменения в nginx 1.1.12 26.12.2011
3547
3548 *) Изменение: после перенаправления запроса с помощью директивы
3549 error_page директива proxy_pass без URI теперь использует изменённый
3550 URI.
3551 Спасибо Lanshun Zhou.
3552
3553 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
3554 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
3555
3556 *) Добавление: директива pcre_jit.
3557
3558 *) Добавление: SSI команда if поддерживает выделения в регулярных
3559 выражениях.
3560
3561 *) Исправление: SSI команда if не работала внутри команды block.
3562
3563 *) Исправление: директивы limit_conn_log_level и limit_req_log_level
3564 могли не работать.
3565
3566 *) Исправление: директива limit_rate не позволяла передавать на полной
3567 скорости, даже если был указан очень большой лимит.
3568
3569 *) Исправление: директива sendfile_max_chunk не работала, если
3570 использовалась директива limit_rate.
3571
3572 *) Исправление: если в директиве proxy_pass использовались переменные и
3573 не был указан URI, всегда использовался URI исходного запроса.
3574
3575 *) Исправление: после перенаправления запроса с помощью директивы
3576 try_files директива proxy_pass без URI могла использовать URI
3577 исходного запроса.
3578 Спасибо Lanshun Zhou.
3579
3580 *) Исправление: в модуле ngx_http_scgi_module.
3581
3582 *) Исправление: в модуле ngx_http_mp4_module.
3583
3584 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
3585
3586
3587 Изменения в nginx 1.1.11 12.12.2011
3588
3589 *) Добавление: параметр so_keepalive в директиве listen.
3590 Спасибо Всеволоду Стахову.
3591
3592 *) Добавление: параметр if_not_empty в директивах
3593 fastcgi/scgi/uwsgi_param.
3594
3595 *) Добавление: переменная $https.
3596
3597 *) Добавление: директива proxy_redirect поддерживает переменные в первом
3598 параметре.
3599
3600 *) Добавление: директива proxy_redirect поддерживает регулярные
3601 выражения.
3602
3603 *) Исправление: переменная $sent_http_cache_control могла содержать
3604 неверное значение при использовании директивы expires.
3605 Спасибо Yichun Zhang.
3606
3607 *) Исправление: директива read_ahead могла не работать при использовании
3608 совместно с try_files и open_file_cache.
3609
3610 *) Исправление: если в параметре inactive директивы proxy_cache_path
3611 было указано малое время, в рабочем процессе мог произойти
3612 segmentation fault.
3613
3614 *) Исправление: ответы из кэша могли зависать.
3615
3616
3617 Изменения в nginx 1.1.10 30.11.2011
3618
3619 *) Исправление: при использовании AIO на Linux в рабочем процессе
3620 происходил segmentation fault; ошибка появилась в 1.1.9.
3621
3622
3623 Изменения в nginx 1.1.9 28.11.2011
3624
3625 *) Изменение: теперь двойные кавычки экранируется при выводе
3626 SSI-командой echo.
3627 Спасибо Зауру Абасмирзоеву.
3628
3629 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
3630 используется TTL, возвращённый DNS-сервером.
3631 Спасибо Кириллу Коринскому.
3632
3633 *) Исправление: nginx мог перестать отвечать, если рабочий процесс
3634 завершался аварийно.
3635
3636 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3637 если использовалось SNI; ошибка появилась в 1.1.2.
3638
3639 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
3640 Спасибо Александру Усову.
3641
3642 *) Исправление: сигнал SIGWINCH переставал работать после первого
3643 обновления исполняемого файла; ошибка появилась в 1.1.1.
3644
3645 *) Исправление: теперь ответы бэкендов, длина которых не соответствует
3646 заголовку Content-Length, не кэширутся.
3647
3648 *) Исправление: в директиве scgi_param при использовании составных
3649 параметров.
3650
3651 *) Исправление: в методе epoll.
3652 Спасибо Yichun Zhang.
3653
3654 *) Исправление: в модуле ngx_http_flv_module.
3655 Спасибо Piotr Sikora.
3656
3657 *) Исправление: в модуле ngx_http_mp4_module.
3658
3659 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
3660 заголовке Host.
3661
3662 *) Исправление: директивы add_header и expires не работали для ответов с
3663 кодом 206, если запрос проксировался.
3664
3665 *) Исправление: nginx не собирался на FreeBSD 10.
3666
3667 *) Исправление: nginx не собирался на AIX.
3668
3669
3670 Изменения в nginx 1.1.8 14.11.2011
3671
3672 *) Изменение: модуль ngx_http_limit_zone_module переименован в
3673 ngx_http_limit_conn_module.
3674
3675 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
3676 новым синтаксисом.
3677
3678 *) Добавление: поддержка ограничения по нескольким limit_conn на одном
3679 уровне.
3680
3681 *) Добавление: директива image_filter_sharpen.
3682
3683 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3684 если resolver получил большой DNS-ответ.
3685 Спасибо Ben Hawkes.
3686
3687 *) Исправление: в вычислении ключа для кэширования, если использовалась
3688 внутренняя реализация MD5; ошибка появилась в 1.0.4.
3689
3690 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
3691 заголовке запроса клиента могли передаваться бэкенду при кэшировании;
3692 или не передаваться при выключенном кэшировании, если кэширование
3693 было включено в другой части конфигурации.
3694
3695 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
3696 "Content-Length" в заголовке ответа, использовался аргумент start.
3697 Спасибо Piotr Sikora.
3698
3699
3700 Изменения в nginx 1.1.7 31.10.2011
3701
3702 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
3703 Спасибо Кириллу Коринскому.
3704
3705 *) Исправление: на старте или во время переконфигурации происходил
3706 segmentation fault, если директива ssl использовалась на уровне http
3707 и не был указан ssl_certificate.
3708
3709 *) Исправление: уменьшено потребление памяти при проксировании больших
3710 файлов, если они буферизировались на диск.
3711
3712 *) Исправление: в рабочем процессе мог произойти segmentation fault,
3713 если использовалась директива "proxy_http_version 1.1".
3714
3715 *) Исправление: в директиве "expires @time".
3716
3717
3718 Изменения в nginx 1.1.6 17.10.2011
3719
3720 *) Изменение во внутреннем API: теперь при внутреннем редиректе в
3721 именованный location контексты модулей очищаются.
3722 По запросу Yichun Zhang.
3723
3724 *) Изменение: теперь если сервер, описанный в блоке upstream, был
3725 признан неработающим, то после истечения fail_timeout на него будет
3726 отправлен только один запрос; сервер будет считаться работающим, если
3727 успешно ответит на этот запрос.
3728
3729 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
3730 \xXX.
3731
3732 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
3733 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
3734 X-Accel-Charset.
3735
3736 *) Добавление: уменьшение потребления памяти при использовании SSL.
3737
3738 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
3739 Спасибо Алексею Куцу.
3740
3741 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
3742 уровне server, применялись повторно, если для запроса не находилось
3743 ни одного location'а.
3744
3745 *) Исправление: при использовании "aio sendfile" могла происходить
3746 утечка сокетов.
3747
3748 *) Исправление: при использовании файлового AIO соединения с быстрыми
3749 клиентами могли быть закрыты по истечению send_timeout.
3750
3751 *) Исправление: в модуле ngx_http_autoindex_module.
3752
3753 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
3754 32-битных платформах.
3755
3756
3757 Изменения в nginx 1.1.5 05.10.2011
3758
3759 *) Добавление: директивы uwsgi_buffering и scgi_buffering.
3760 Спасибо Peter Smit.
3761
3762 *) Исправление: при использовании proxy_cache_bypass могли быть
3763 закэшированы некэшируемые ответы.
3764 Спасибо John Ferlito.
3765
3766 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
3767 HTTP/1.1.
3768
3769 *) Исправление: закэшированные ответы с пустым телом возвращались
3770 некорректно; ошибка появилась в 0.8.31.
3771
3772 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
3773 некорректны; ошибка появилась в 0.8.32.
3774
3775 *) Исправление: в директиве return.
3776
3777 *) Исправление: при использовании директивы "ssl_session_cache builtin"
3778 происходил segmentation fault; ошибка появилась в 1.1.1.
3779
3780
3781 Изменения в nginx 1.1.4 20.09.2011
3782
3783 *) Добавление: модуль ngx_http_upstream_keepalive.
3784
3785 *) Добавление: директива proxy_http_version.
3786
3787 *) Добавление: директива fastcgi_keep_conn.
3788
3789 *) Добавление: директива worker_aio_requests.
3790
3791 *) Исправление: если nginx был собран с файловым AIO, он не мог
3792 запускаться на Linux без поддержки AIO.
3793
3794 *) Исправление: в обработке ошибок при работе с Linux AIO.
3795 Спасибо Hagai Avrahami.
3796
3797 *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
3798
3799 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
3800 MP4-атом co64.
3801
3802
3803 Изменения в nginx 1.1.3 14.09.2011
3804
3805 *) Добавление: модуль ngx_http_mp4_module.
3806
3807 *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
3808
3809 *) Исправление: open_file_cache не обновлял информацию о файле, если
3810 файл был изменён не атомарно.
3811
3812 *) Исправление: nginx не собирался на MacOSX 10.7.
3813
3814
3815 Изменения в nginx 1.1.2 05.09.2011
3816
3817 *) Изменение: теперь, если суммарный размер всех диапазонов больше
3818 размера исходного ответа, то nginx возвращает только исходный ответ,
3819 не обрабатывая диапазоны.
3820
3821 *) Добавление: директива max_ranges.
3822
3823 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
3824 ssl_prefer_server_cipher могли работать некорректно, если
3825 использовался SNI.
3826
3827 *) Исправление: в директивах proxy/fastcgi/scgi/
3828 uwsgi_ignore_client_abort.
3829
3830
3831 Изменения в nginx 1.1.1 22.08.2011
3832
3833 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
3834 число файлов, указанное в параметре load_files, либо работает не
3835 дольше времени, указанного в параметре loader_threshold.
3836
3837 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
3838
3839 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3840 на Solaris.
3841 Спасибо Денису Иванову.
3842
3843 *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
3844
3845 *) Исправление: nginx не собирался на Linux 3.0.
3846
3847 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
3848 появилась в 1.1.0.
3849
3850 *) Исправление: обработка тела запроса могла быть неверной, если клиент
3851 использовал pipelining.
3852
3853 *) Исправление: в директиве request_body_in_single_buf.
3854
3855 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body
3856 при использовании SSL-соединения с бэкендом.
3857
3858 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3859 были помечены флагом down.
3860
3861 *) Исправление: при переконфигурации мог произойти segmentation fault,
3862 если в предыдущей конфигурации был определён, но не использовался
3863 ssl_session_cache.
3864
3865 *) Исправление: при использовании большого количества backup-серверов в
3866 рабочем процессе мог произойти segmentation fault.
3867
3868 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
3869 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
3870 произойти segmentation fault; ошибка появилась в 0.8.40.
3871
3872
3873 Изменения в nginx 1.1.0 01.08.2011
3874
3875 *) Добавление: уменьшение времени работы загрузчика кэша.
3876
3877 *) Добавление: параметры loader_files, loader_sleep и loader_threshold
3878 директив proxy/fastcgi/scgi/uwsgi_cache_path.
3879
3880 *) Добавление: уменьшение времени загрузки конфигураций с большим
3881 количеством HTTPS серверов.
3882
3883 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
3884 Спасибо Adrian Kotelba.
3885
3886 *) Добавление: директива lingering_close.
3887 Спасибо Максиму Дунину.
3888
3889 *) Исправление: закрытия соединения для pipelined-запросов.
3890 Спасибо Максиму Дунину.
3891
3892 *) Исправление: nginx не запрещал сжатие при получении значения
3893 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
3894
3895 *) Исправление: таймаута при небуферизированном проксировании.
3896 Спасибо Максиму Дунину.
3897
3898 *) Исправление: утечки памяти при использовании переменных в директиве
3899 proxy_pass при работе с бэкендом по HTTPS.
3900 Спасибо Максиму Дунину.
3901
3902 *) Исправление: в проверке параметра директивы proxy_pass, заданного
3903 переменными.
3904 Спасибо Lanshun Zhou.
3905
3906 *) Исправление: SSL не работал на QNX.
3907 Спасибо Максиму Дунину.
3908
3909 *) Исправление: SSL модули не собирались gcc 4.6 без параметра
3910 --with-debug.
3911
3912
3913 Изменения в nginx 1.0.5 19.07.2011
3914
3915 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
3916 "HIGH:!aNULL:!MD5".
3917 Спасибо Rob Stradling.
3918
3919 *) Добавление: директивы referer_hash_max_size и
3920 referer_hash_bucket_size.
3921 Спасибо Witold Filipczyk.
3922
3923 *) Добавление: переменная $uid_reset.
3924
3925 *) Исправление: при использовании кэширования в рабочем процессе мог
3926 произойти segmentation fault.
3927 Спасибо Lanshun Zhou.
3928
3929 *) Исправление: при использовании кэширования рабочие процессы могли
3930 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
3931 Спасибо Максиму Дунину.
3932
3933 *) Исправление: сообщения "stalled cache updating".
3934 Спасибо Максиму Дунину.
3935
3936
3937 Изменения в nginx 1.0.4 01.06.2011
3938
3939 *) Изменение: теперь в регулярных выражениях в директиве map можно
3940 задать чувствительность к регистру с помощью префиксов "~" и "~*".
3941
3942 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
3943 на Linux.
3944 Спасибо Денису Латыпову.
3945
3946 *) Исправление: сообщения "stalled cache updating".
3947
3948 *) Исправление: nginx не собирался с параметром
3949 --without-http_auth_basic_module; ошибка появилась в 1.0.3.
3950
3951
3952 Изменения в nginx 1.0.3 25.05.2011
3953
3954 *) Добавление: директива auth_basic_user_file поддерживает шифрование
3955 пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
3956 Спасибо Максиму Дунину.
3957
3958 *) Добавление: директива geoip_org и переменная $geoip_org.
3959 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
3960
3961 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
3962 поддерживают адреса IPv4, отображённые на IPv6 адреса.
3963
3964 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
3965 рабочем процессе происходил segmentation fault, если директивы access
3966 или deny были определены только для адресов IPv6; ошибка появилась в
3967 0.8.22.
3968
3969 *) Исправление: закэшированный ответ мог быть испорчен, если значения
3970 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
3971 uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
3972
3973
3974 Изменения в nginx 1.0.2 10.05.2011
3975
3976 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
3977
3978 *) Исправление: в работе параметра rotate директивы image_filter.
3979 Спасибо Adam Bocim.
3980
3981 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
3982
3983
3984 Изменения в nginx 1.0.1 03.05.2011
3985
3986 *) Изменение: теперь директива split_clients использует алгоритм
3987 MurmurHash2 из-за лучшего распределения.
3988 Спасибо Олегу Мамонтову.
3989
3990 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
3991 ложными значениями.
3992 Спасибо Максиму Дунину.
3993
3994 *) Изменение: теперь по умолчанию nginx использует значение 511 для
3995 listen backlog на Linux.
3996
3997 *) Добавление: переменные $upstream_... можно использовать в SSI и
3998 перловом модулях.
3999
4000 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
4001 Спасибо Олегу Мамонтову.
4002
4003 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти
4004 segmentation fault; ошибка появилась в 0.8.22.
4005 Спасибо Максиму Дунину.
4006
4007 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
4008
4009 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
4010 появилась в 0.9.3.
4011 Спасибо Dagobert Michelsen.
4012
4013 *) Исправление: переменная $request_time имела неверные значения, если
4014 использовались подзапросы; ошибка появилась в 0.8.47.
4015 Спасибо Игорю А. Валькову.
4016
4017
4018 Изменения в nginx 1.0.0 12.04.2011
4019
4020 *) Исправление: cache manager мог нагружать процессор после
4021 переконфигурации.
4022 Спасибо Максиму Дунину.
4023
4024 *) Исправление: директива "image_filter crop" неправильно работала в
4025 сочетании с "image_filter rotate 180".
4026
4027 *) Исправление: директива "satisfy any" запрещала выдачу
4028 пользовательской страницы для 401 кода.
4029
4030
4031 Изменения в nginx 0.9.7 04.04.2011
4032
4033 *) Добавление: теперь соединения в состоянии keepalive могут быть
4034 закрыты преждевременно, если у воркера нет свободных соединений.
4035 Спасибо Максиму Дунину.
4036
4037 *) Добавление: параметр rotate директивы image_filter.
4038 Спасибо Adam Bocim.
4039
4040 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
4041 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
4042 upstream.
4043
4044
4045 Изменения в nginx 0.9.6 21.03.2011
4046
4047 *) Добавление: директива map поддерживает регулярные выражения в
4048 качестве значения первого параметра.
4049
4050 *) Добавление: переменная $time_iso8601 для access_log.
4051 Спасибо Michael Lustfield.
4052
4053
4054 Изменения в nginx 0.9.5 21.02.2011
4055
4056 *) Изменение: теперь по умолчанию nginx использует значение -1 для
4057 listen backlog на Linux.
4058 Спасибо Андрею Нигматулину.
4059
4060 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
4061 Спасибо Денису Латыпову.
4062
4063 *) Исправление: исправление в умолчательной директиве proxy_redirect,
4064 если в директиве proxy_pass не был описан URI.
4065 Спасибо Максиму Дунину.
4066
4067 *) Исправление: директива error_page не работала с нестандартными кодами
4068 ошибок; ошибка появилась в 0.8.53.
4069 Спасибо Максиму Дунину.
4070
4071
4072 Изменения в nginx 0.9.4 21.01.2011
4073
4074 *) Добавление: директива server_name поддерживает переменную $hostname.
4075
4076 *) Добавление: 494 код для ошибки "Request Header Too Large".
4077
4078
4079 Изменения в nginx 0.9.3 13.12.2010
4080
4081 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
4082 то выделения в регулярных выражениях в директиве server_name не
4083 работали.
4084
4085 *) Исправление: nginx не собирался под Solaris; ошибка появилась в
4086 0.9.0.
4087
4088
4089 Изменения в nginx 0.9.2 06.12.2010
4090
4091 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
4092 запроса клиента.
4093
4094 *) Изменение: использование accept(), если accept4() не реализован;
4095 ошибка появилась в 0.9.0.
4096
4097 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
4098
4099 *) Исправление: уязвимости в OpenSSL CVE-2010-4180.
4100 Спасибо Максиму Дунину.
4101
4102
4103 Изменения в nginx 0.9.1 30.11.2010
4104
4105 *) Исправление: директивы вида "return CODE message" не работали; ошибка
4106 появилась в 0.9.0.
4107
4108
4109 Изменения в nginx 0.9.0 29.11.2010
4110
4111 *) Добавление: директива keepalive_disable.
4112
4113 *) Добавление: директива map поддерживает переменные в качестве значения
4114 определяемой переменной.
4115
4116 *) Добавление: директива map поддерживает пустые строки в качестве
4117 значения первого параметра.
4118
4119 *) Добавление: директива map поддерживает выражения в первом параметре.
4120
4121 *) Добавление: страница руководства nginx(8).
4122 Спасибо Сергею Осокину.
4123
4124 *) Добавление: поддержка accept4() в Linux.
4125 Спасибо Simon Liu.
4126
4127 *) Изменение: устранение предупреждения линкера о "sys_errlist" и
4128 "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
4129
4130 *) Исправление: при использовании директивы auth_basic в рабочем
4131 процессе мог произойти segmentation fault.
4132 Спасибо Михаилу Лалетину.
4133
4134 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
4135 появилась в 0.8.42.
4136
4137
4138 Изменения в nginx 0.8.53 18.10.2010
4139
4140 *) Добавление: теперь директива error_page позволяет менять код статуса
4141 у редиректа.
4142
4143 *) Добавление: директива gzip_disable поддерживает специальную маску
4144 degradation.
4145
4146 *) Исправление: при использовании файлового AIO могла происходить утечка
4147 сокетов.
4148 Спасибо Максиму Дунину.
4149
4150 *) Исправление: если в первом сервере не была описана директива listen и
4151 нигде явно не описан сервер по умолчанию, то сервером по умолчанию
4152 становился следующий сервер с директивой listen; ошибка появилась в
4153 0.8.21.
4154
4155
4156 Изменения в nginx 0.8.52 28.09.2010
4157
4158 *) Исправление: nginx использовал режим SSL для listen сокета, если для
4159 него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
4160
4161
4162 Изменения в nginx 0.8.51 27.09.2010
4163
4164 *) Изменение: директива secure_link_expires упразднена.
4165
4166 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
4167 alert на error.
4168
4169 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
4170 несколько раз.
4171
4172
4173 Изменения в nginx 0.8.50 02.09.2010
4174
4175 *) Добавление: директивы secure_link, secure_link_md5 и
4176 secure_link_expires модуля ngx_http_secure_link_module.
4177
4178 *) Добавление: ключ -q.
4179 Спасибо Геннадию Махомеду.
4180
4181 *) Исправление: при использовании кэширования рабочие процессы и могли
4182 зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
4183
4184 *) Исправление: в директиве gzip_disable.
4185 Спасибо Derrick Petzold.
4186
4187 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
4188 reopen, reload процессу, запущенному в другой сессии.
4189
4190
4191 Изменения в nginx 0.8.49 09.08.2010
4192
4193 *) Добавление: директива image_filter_jpeg_quality поддерживает
4194 переменные.
4195
4196 *) Исправление: при использовании переменной $geoip_region_name в
4197 рабочем процессе мог произойти segmentation fault; ошибка появилась в
4198 0.8.48.
4199
4200 *) Исправление: ошибки, перехваченные error_page, кэшировались только до
4201 следующего запроса; ошибка появилась в 0.8.48.
4202
4203
4204 Изменения в nginx 0.8.48 03.08.2010
4205
4206 *) Изменение: теперь по умолчанию директива server_name имеет значение
4207 пустое имя "".
4208 Спасибо Геннадию Махомеду.
4209
4210 *) Изменение: теперь по умолчанию директива server_name_in_redirect
4211 имеет значение off.
4212
4213 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
4214 $geoip_region_name.
4215 Спасибо Christine McGonagle.
4216
4217 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
4218 scgi_pass не наследовались в блоки limit_except.
4219
4220 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
4221 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
4222 появилась в 0.8.46.
4223
4224 *) Исправление: директива fastcgi_split_path_info неверно использовала
4225 выделения, если в выделения попадала только часть URI.
4226 Спасибо Юрию Тарадаю и Frank Enderle.
4227
4228 *) Исправление: директива rewrite не экранировала символ ";" при
4229 копировании из URI в аргументы.
4230 Спасибо Daisuke Murase.
4231
4232 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
4233 если изображение было больше размера image_filter_buffer.
4234
4235
4236 Изменения в nginx 0.8.47 28.07.2010
4237
4238 *) Исправление: переменная $request_time имела неверные значения для
4239 подзапросов.
4240
4241 *) Исправление: ошибки, перехваченные error_page, не кэшировались.
4242
4243 *) Исправление: если использовался параметр max_size, то cache manager
4244 мог зациклиться; ошибка появилась в 0.8.46.
4245
4246
4247 Изменения в nginx 0.8.46 19.07.2010
4248
4249 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
4250 и scgi_no_cache теперь влияют только на сохранение закэшированного
4251 ответа.
4252
4253 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
4254 uwsgi_cache_bypass и scgi_cache_bypass.
4255
4256 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае
4257 ошибки работы с бэкендом: память освобождалась только по истечении
4258 времени неактивности или при недостатке памяти.
4259
4260
4261 Изменения в nginx 0.8.45 13.07.2010
4262
4263 *) Добавление: улучшения в модуле ngx_http_xslt_filter.
4264 Спасибо Laurence Rowe.
4265
4266 *) Исправление: ответ SSI модуля мог передаваться не полностью после
4267 команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
4268 Спасибо Максиму Дунину.
4269
4270 *) Исправление: директива listen не поддерживала параметр setfib=0.
4271
4272
4273 Изменения в nginx 0.8.44 05.07.2010
4274
4275 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
4276 заголовке которых есть строка "Set-Cookie".
4277
4278 *) Добавление: директива listen поддерживает параметр setfib.
4279 Спасибо Андрею Филонову.
4280
4281 *) Исправление: директива sub_filter могла изменять регистр букв при
4282 частичном совпадении.
4283
4284 *) Исправление: совместимость с HP/UX.
4285
4286 *) Исправление: совместимость с компилятором AIX xlC_r.
4287
4288 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
4289 запросы.
4290 Спасибо Miroslaw Jaworski.
4291
4292
4293 Изменения в nginx 0.8.43 30.06.2010
4294
4295 *) Добавление: ускорение загрузки больших баз geo-диапазонов.
4296
4297 *) Исправление: перенаправление ошибки в "location /zero {return 204;}"
4298 без изменения кода ответа оставляло тело ошибки; ошибка появилась в
4299 0.8.42.
4300
4301 *) Исправление: nginx мог закрывать IPv6 listen сокет во время
4302 переконфигурации.
4303 Спасибо Максиму Дунину.
4304
4305 *) Исправление: переменную $uid_set можно использовать на любой стадии
4306 обработки запроса.
4307
4308
4309 Изменения в nginx 0.8.42 21.06.2010
4310
4311 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными
4312 выражениями, если запрос полностью совпал с location'ом, заданным
4313 строкой префикса. Предыдущее поведение появилось в 0.7.1.
4314
4315 *) Добавление: модуль ngx_http_scgi_module.
4316 Спасибо Manlio Perillo.
4317
4318 *) Добавление: в директиве return можно добавлять текст ответа.
4319
4320
4321 Изменения в nginx 0.8.41 15.06.2010
4322
4323 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
4324 при запросе файла с неверной кодировкой UTF-8.
4325
4326 *) Изменение: теперь nginx разрешает использовать пробелы в строке
4327 запроса.
4328
4329 *) Исправление: директива proxy_redirect неправильно изменяла строку
4330 "Refresh" в заголовке ответа бэкенда.
4331 Спасибо Андрею Андрееву и Максиму Согину.
4332
4333 *) Исправление: nginx не поддерживал путь без имени хоста в строке
4334 "Destination" в заголовке запроса.
4335
4336
4337 Изменения в nginx 0.8.40 07.06.2010
4338
4339 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
4340 умолчанию.
4341 Спасибо Jose Antonio Vazquez Gonzalez.
4342
4343 *) Добавление: модуль ngx_http_uwsgi_module.
4344 Спасибо Roberto De Ioris.
4345
4346 *) Добавление: директива fastcgi_param со значением, начинающимся со
4347 строки "HTTP_", изменяет строку заголовка в запросе клиента.
4348
4349 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4350 заголовке запроса клиента передавались FastCGI-серверу при
4351 кэшировании.
4352
4353 *) Исправление: listen unix domain сокет нельзя было изменить во время
4354 переконфигурации.
4355 Спасибо Максиму Дунину.
4356
4357
4358 Изменения в nginx 0.8.39 31.05.2010
4359
4360 *) Исправление: наследуемая директива alias неправильно работала во
4361 вложенном location'е.
4362
4363 *) Исправление: в комбинации директив alias с переменными и try_files;
4364
4365 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во
4366 время обновления без перерыва.
4367 Спасибо Максиму Дунину.
4368
4369
4370 Изменения в nginx 0.8.38 24.05.2010
4371
4372 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
4373
4374 *) Добавление: теперь при использовании переменной $scheme в директиве
4375 rewrite автоматически делается редирект.
4376 Спасибо Piotr Sikora.
4377
4378 *) Исправление: теперь задержки в директиве limit_req соответствует
4379 описанному алгоритму.
4380 Спасибо Максиму Дунину.
4381
4382 *) Исправление: переменную $uid_got нельзя было использовать в SSI и
4383 перловом модулях.
4384
4385
4386 Изменения в nginx 0.8.37 17.05.2010
4387
4388 *) Добавление: модуль ngx_http_split_clients_module.
4389
4390 *) Добавление: директива map поддерживает ключи больше 255 символов.
4391
4392 *) Исправление: nginx игнорировал значения "private" и "no-store" в
4393 строке "Cache-Control" в заголовке ответа бэкенда.
4394
4395 *) Исправление: параметр stub в SSI-директиве include не использовался,
4396 если пустой ответ имел код 200.
4397
4398 *) Исправление: если проксированный или FastCGI запрос внутренне
4399 перенаправлялся в другой проксированный или FastCGI location, то в
4400 рабочем процессе мог произойти segmentation fault; ошибка появилась в
4401 0.8.33.
4402 Спасибо Yichun Zhang.
4403
4404 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
4405 таймаута.
4406 Спасибо Alan Batie.
4407
4408
4409 Изменения в nginx 0.8.36 22.04.2010
4410
4411 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
4412 методы DELETE, COPY и MOVE для симлинков.
4413
4414 *) Исправление: модуль SSI в подзапросах использовал закэшированные в
4415 основном запросе значения переменных $query_string, $arg_... и им
4416 подобных.
4417
4418 *) Исправление: значение переменной повторно экранировалось после
4419 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
4420
4421 *) Исправление: рабочий процесс зависал при запросе файла FIFO.
4422 Спасибо Vicente Aguilar и Максиму Дунину.
4423
4424 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
4425 Спасибо Максиму Дунину.
4426
4427 *) Исправление: nginx не собирался с параметром --without-http-cache;
4428 ошибка появилась в 0.8.35.
4429
4430
4431 Изменения в nginx 0.8.35 01.04.2010
4432
4433 *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
4434
4435 *) Добавление: директива chunked_transfer_encoding.
4436
4437 *) Исправление: символ "&" при копировании в аргументы в правилах
4438 rewrite не экранировался.
4439
4440 *) Исправление: nginx мог завершаться аварийно во время обработки
4441 сигнала или при использовании директивы timer_resolution на
4442 платформах, не поддерживающих методы kqueue или eventport.
4443 Спасибо George Xie и Максиму Дунину.
4444
4445 *) Исправление: если временные файлы и постоянное место хранения
4446 располагались на разных файловых системах, то у постоянных файлов
4447 время изменения было неверным.
4448 Спасибо Максиму Дунину.
4449
4450 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
4451 "memcached sent invalid trailer".
4452 Спасибо Максиму Дунину.
4453
4454 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
4455 текстов.
4456 Спасибо Максиму Дунину.
4457
4458 *) Исправление: в рабочем процессе происходил segmentation fault, если
4459 перед ответом FastCGI-сервера было много вывода в stderr; ошибка
4460 появилась в 0.8.34.
4461 Спасибо Максиму Дунину.
4462
4463
4464 Изменения в nginx 0.8.34 03.03.2010
4465
4466 *) Исправление: nginx не поддерживал все шифры, используемые в
4467 клиентских сертификатах.
4468 Спасибо Иннокентию Еникееву.
4469
4470 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
4471 ответом было много вывода в stderr.
4472
4473 *) Исправление: nginx не поддерживал HTTPS-рефереры.
4474
4475 *) Исправление: nginx/Windows мог не находить файлы, если путь в
4476 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
4477
4478 *) Исправление: переменная $date_local выдавала неверное время, если
4479 использовался формат "%s".
4480 Спасибо Максиму Дунину.
4481
4482 *) Исправление: если ssl_session_cache не был установлен или установлен
4483 в none, то при проверке клиентского сертификаты могла происходить
4484 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
4485
4486 *) Исправление: geo-диапазон возвращал значение по умолчанию, если
4487 диапазон включал в себя одну и более сетей размером /16 и не
4488 начинался на границе сети размером /16.
4489
4490 *) Исправление: блок, используемый в параметре stub в SSI-директиве
4491 include, выводился с MIME-типом "text/plain".
4492
4493 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
4494
4495
4496 Изменения в nginx 0.8.33 01.02.2010
4497
4498 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
4499 Спасибо Dan Crowley, Core Security Technologies.
4500
4501 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
4502 Спасибо Dan Crowley, Core Security Technologies.
4503
4504 *) Изменение: теперь keepalive соединения после запросов POST не
4505 запрещаются для MSIE 7.0+.
4506 Спасибо Adam Lounds.
4507
4508 *) Изменение: теперь keepalive соединения запрещены для Safari.
4509 Спасибо Joshua Sierles.
4510
4511 *) Исправление: если проксированный или FastCGI запрос внутренне
4512 перенаправлялся в другой проксированный или FastCGI location, то
4513 переменная $upstream_response_time могла иметь ненормально большое
4514 значение; ошибка появилась в 0.8.7.
4515
4516 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4517 отбрасывания тела запроса; ошибка появилась в 0.8.11.
4518
4519
4520 Изменения в nginx 0.8.32 11.01.2010
4521
4522 *) Исправление: ошибки при использовании кодировки UTF-8 в
4523 ngx_http_autoindex_module.
4524 Спасибо Максиму Дунину.
4525
4526 *) Исправление: именованные выделения в регулярных выражениях работали
4527 только для двух переменных.
4528 Спасибо Максиму Дунину.
4529
4530 *) Исправление: теперь в строке заголовка запроса "Host" используется
4531 имя "localhost", если в директиве auth_http указан unix domain сокет.
4532 Спасибо Максиму Дунину.
4533
4534 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
4535 ответов.
4536 Спасибо Julian Reich.
4537
4538 *) Исправление: если директива "expires modified" выставляла дату в
4539 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
4540 отрицательное число.
4541 Спасибо Алексею Капранову.
4542
4543
4544 Изменения в nginx 0.8.31 23.12.2009
4545
4546 *) Добавление: теперь директива error_page может перенаправлять ответы
4547 со статусом 301 и 302.
4548
4549 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
4550 $geoip_longitude.
4551 Спасибо Arvind Sundararajan.
4552
4553 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
4554 EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
4555
4556 *) Исправление: nginx закрывал соединение при запросе закэшированного
4557 ответа с пустым телом.
4558 Спасибо Piotr Sikora.
4559
4560 *) Исправление: nginx мог не собираться gcc 4.x при использовании
4561 оптимизации -O2 и выше.
4562 Спасибо Максиму Дунину и Денису Латыпову.
4563
4564 *) Исправление: регулярные выражения в location всегда тестировались с
4565 учётом регистра; ошибка появилась в 0.8.25.
4566
4567 *) Исправление: nginx кэшировал 304 ответ, если в заголовке
4568 проксируемого запроса была строка "If-None-Match".
4569 Спасибо Tim Dettrick и David Kostal.
4570
4571 *) Исправление: nginx/Windows пытался дважды удалить временный файл при
4572 перезаписи уже существующего файла.
4573
4574
4575 Изменения в nginx 0.8.30 15.12.2009
4576
4577 *) Изменение: теперь по умолчанию размер буфера директивы
4578 large_client_header_buffers равен 8K.
4579 Спасибо Andrew Cholakian.
4580
4581 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
4582
4583 *) Исправление: nginx/Windows пытался дважды переименовать временный
4584 файл при перезаписи уже существующего файла.
4585
4586 *) Исправление: ошибки double free or corruption, возникающей, если имя
4587 хоста не было найдено; ошибка появилась в 0.8.22.
4588 Спасибо Константину Свисту.
4589
4590 *) Исправление: в использовании libatomic на некоторых платформах.
4591 Спасибо W-Mark Kubacki.
4592
4593
4594 Изменения в nginx 0.8.29 30.11.2009
4595
4596 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
4597 ответа "009".
4598
4599 *) Добавление: директивы addition_types, charset_types, gzip_types,
4600 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
4601
4602 *) Добавление: использование встроенных атомарных операций GCC 4.1+.
4603 Спасибо W-Mark Kubacki.
4604
4605 *) Добавление: параметр --with-libatomic[=DIR] в configure.
4606 Спасибо W-Mark Kubacki.
4607
4608 *) Исправление: listen unix domain сокет имели ограниченные права
4609 доступа.
4610
4611 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно
4612 обрабатывались.
4613
4614 *) Исправление: именованные выделения в регулярных выражениях, заданные
4615 как "?P<...>", не работали в директиве server_name.
4616 Спасибо Максиму Дунину.
4617
4618
4619 Изменения в nginx 0.8.28 23.11.2009
4620
4621 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
4622 появилась в 0.8.25.
4623
4624
4625 Изменения в nginx 0.8.27 17.11.2009
4626
4627 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
4628 появилась в 0.8.25.
4629
4630
4631 Изменения в nginx 0.8.26 16.11.2009
4632
4633 *) Исправление: ошибки при использовании выделений в директиве rewrite;
4634 ошибка появилась в 0.8.25.
4635
4636 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4637 появилась в 0.8.25.
4638
4639
4640 Изменения в nginx 0.8.25 16.11.2009
4641
4642 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
4643 не найдена с помощью метода $r->variable().
4644
4645 *) Добавление: модуль ngx_http_degradation_module.
4646
4647 *) Добавление: именованные выделения в регулярных выражениях.
4648
4649 *) Добавление: теперь при использовании переменных в директиве
4650 proxy_pass не требуется задавать URI.
4651
4652 *) Добавление: теперь директива msie_padding работает и для Chrome.
4653
4654 *) Исправление: в рабочем процессе происходил segmentation fault при
4655 недостатке памяти; ошибка появилась в 0.8.18.
4656
4657 *) Исправление: nginx передавал сжатые ответы клиентам, не
4658 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
4659 ошибка появилась в 0.8.16.
4660
4661
4662 Изменения в nginx 0.8.24 11.11.2009
4663
4664 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
4665 заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
4666
4667 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
4668 появилась в 0.8.23.
4669
4670 *) Исправление: параметр "unix:" в директиве set_real_ip_from
4671 неправильно наследовался с предыдущего уровня.
4672
4673 *) Исправление: в resolver'е при определении пустого имени.
4674
4675
4676 Изменения в nginx 0.8.23 11.11.2009
4677
4678 *) Безопасность: теперь SSL/TLS renegotiation запрещён.
4679 Спасибо Максиму Дунину.
4680
4681 *) Исправление: listen unix domain сокет не наследовался во время
4682 обновления без перерыва.
4683
4684 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
4685 без ещё одной директивы с любым IP-адресом.
4686
4687 *) Исправление: segmentation fault и зацикливания в resolver'е.
4688
4689 *) Исправление: в resolver'е.
4690 Спасибо Артёму Бохану.
4691
4692
4693 Изменения в nginx 0.8.22 03.11.2009
4694
4695 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
4696
4697 *) Добавление: директивы access и deny поддерживают IPv6.
4698
4699 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
4700 заголовках запроса.
4701
4702 *) Добавление: параметр "unix:" в директиве set_real_ip_from.
4703
4704 *) Исправление: nginx не удалял unix domain сокет после тестирования
4705 конфигурации.
4706
4707 *) Исправление: nginx удалял unix domain сокет во время обновления без
4708 перерыва.
4709
4710 *) Исправление: оператор "!-x" не работал.
4711 Спасибо Максиму Дунину.
4712
4713 *) Исправление: в рабочем процессе мог произойти segmentation fault при
4714 использовании limit_rate в HTTPS сервере.
4715 Спасибо Максиму Дунину.
4716
4717 *) Исправление: при записи в лог переменной $limit_rate в рабочем
4718 процессе происходил segmentation fault.
4719 Спасибо Максиму Дунину.
4720
4721 *) Исправление: в рабочем процессе мог произойти segmentation fault,
4722 если внутри блока server не было директивы listen; ошибка появилась в
4723 0.8.21.
4724
4725
4726 Изменения в nginx 0.8.21 26.10.2009
4727
4728 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
4729
4730 *) Добавление: директива listen модуля HTTP поддерживает unix domain
4731 сокеты.
4732 Спасибо Hongli Lai.
4733
4734 *) Добавление: параметр "default_server" в директиве listen.
4735
4736 *) Добавление: теперь параметр "default" не обязателен для установки
4737 параметров listen-сокета.
4738
4739 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
4740 платформах;
4741
4742 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4743
4744
4745 Изменения в nginx 0.8.20 14.10.2009
4746
4747 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4748 "HIGH:!ADH:!MD5".
4749
4750 *) Исправление: модуль ngx_http_autoindex_module не показывал последний
4751 слэш для линков на каталоги; ошибка появилась в 0.7.15.
4752
4753 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации
4754 --error-log-path; ошибка появилась в 0.7.53.
4755
4756 *) Исправление: nginx не считал запятую разделителем в строке
4757 "Cache-Control" в заголовке ответа бэкенда.
4758
4759 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
4760 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
4761 не имел достаточно прав для работы с каталогами верхнего уровня.
4762
4763 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
4764 FastCGI-сервера не скрывались при кэшировании, если не использовались
4765 директивы fastcgi_hide_header с любыми параметрами.
4766
4767 *) Исправление: nginx неверно считал размер кэша на диске.
4768
4769
4770 Изменения в nginx 0.8.19 06.10.2009
4771
4772 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
4773
4774 *) Изменение: теперь по умолчанию используются следующие шифры SSL:
4775 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
4776
4777 *) Исправление: директива limit_req не работала; ошибка появилась в
4778 0.8.18.
4779
4780
4781 Изменения в nginx 0.8.18 06.10.2009
4782
4783 *) Добавление: директива read_ahead.
4784
4785 *) Добавление: теперь можно использовать несколько директив
4786 perl_modules.
4787
4788 *) Добавление: директивы limit_req_log_level и limit_conn_log_level.
4789
4790 *) Исправление: теперь директива limit_req соответствует алгоритму leaky
4791 bucket.
4792 Спасибо Максиму Дунину.
4793
4794 *) Исправление: nginx не работал на Linux/sparc.
4795 Спасибо Marcus Ramberg.
4796
4797 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
4798 ответе на запрос MKCOL.
4799 Спасибо Xie Zhenye.
4800
4801 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
4802 появилась в 0.8.11.
4803
4804 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4805
4806
4807 Изменения в nginx 0.8.17 28.09.2009
4808
4809 *) Безопасность: теперь символы "/../" запрещены в строке "Destination"
4810 в заголовке запроса.
4811
4812 *) Изменение: теперь значение переменной $host всегда в нижнем регистре.
4813
4814 *) Добавление: переменная $ssl_session_id.
4815
4816 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
4817
4818
4819 Изменения в nginx 0.8.16 22.09.2009
4820
4821 *) Добавление: директива image_filter_transparency.
4822
4823 *) Исправление: директива "addition_types" была неверно названа
4824 "addtion_types".
4825
4826 *) Исправление: порчи кэша resolver'а.
4827 Спасибо Matthew Dempsky.
4828
4829 *) Исправление: утечки памяти в resolver'е.
4830 Спасибо Matthew Dempsky.
4831
4832 *) Исправление: неверная строка запроса в переменной $request
4833 записывалась в access_log только при использовании error_log на
4834 уровне info или debug.
4835
4836 *) Исправление: в поддержке альфа-канала PNG в модуле
4837 ngx_http_image_filter_module.
4838
4839 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
4840 заголовок ответа, если обе директивы gzip_static и gzip_vary были
4841 включены.
4842
4843 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в
4844 nginx/Windows.
4845
4846 *) Исправление: ошибки при использовании post_action; ошибка появилась в
4847 0.8.11.
4848 Спасибо Игорю Артемьеву.
4849
4850
4851 Изменения в nginx 0.8.15 14.09.2009
4852
4853 *) Безопасность: при обработке специально созданного запроса в рабочем
4854 процессе мог произойти segmentation fault.
4855 Спасибо Chris Ries.
4856
4857 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
4858 .domain-some.tld, то имя .sub.domain.tld попадало под маску
4859 .domain.tld.
4860
4861 *) Исправление: в поддержке прозрачности в модуле
4862 ngx_http_image_filter_module.
4863
4864 *) Исправление: в файловом AIO.
4865
4866 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
4867 появилась в 0.8.11.
4868
4869 *) Исправление: ошибки при использовании встроенного перла; ошибка
4870 появилась в 0.8.11.
4871
4872
4873 Изменения в nginx 0.8.14 07.09.2009
4874
4875 *) Исправление: устаревший закэшированный запрос мог залипнуть в
4876 состоянии "UPDATING".
4877
4878 *) Исправление: при использовании error_log на уровне info или debug в
4879 рабочем процессе мог произойти segmentation fault.
4880 Спасибо Сергею Боченкову.
4881
4882 *) Исправление: ошибки при использовании встроенного перла; ошибка
4883 появилась в 0.8.11.
4884
4885 *) Исправление: директива error_page не перенаправляла ошибку 413;
4886 ошибка появилась в 0.6.10.
4887
4888
4889 Изменения в nginx 0.8.13 31.08.2009
4890
4891 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
4892
4893 *) Исправление: nginx не собирался без параметра --with-file-aio на
4894 FreeBSD; ошибка появилась в 0.8.12.
4895
4896
4897 Изменения в nginx 0.8.12 31.08.2009
4898
4899 *) Добавление: параметр sendfile в директиве aio во FreeBSD.
4900
4901 *) Исправление: ошибки при использовании try_files; ошибка появилась в
4902 0.8.11.
4903
4904 *) Исправление: ошибки при использовании memcached; ошибка появилась в
4905 0.8.11.
4906
4907
4908 Изменения в nginx 0.8.11 28.08.2009
4909
4910 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
4911 для MSIE 6.0 SV1.
4912
4913 *) Добавление: поддержка файлового AIO во FreeBSD и Linux.
4914
4915 *) Добавление: директива directio_alignment.
4916
4917
4918 Изменения в nginx 0.8.10 24.08.2009
4919
4920 *) Исправление: утечек памяти при использовании базы GeoIP City.
4921
4922 *) Исправление: ошибки при копировании временных файлов в постоянное
4923 место хранения; ошибка появилась в 0.8.9.
4924
4925
4926 Изменения в nginx 0.8.9 17.08.2009
4927
4928 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном
4929 процесс; это должно улучшить обработку больших кэшей.
4930
4931 *) Добавление: теперь временные файлы и постоянное место хранения могут
4932 располагаться на разных файловых системах.
4933
4934
4935 Изменения в nginx 0.8.8 10.08.2009
4936
4937 *) Исправление: в обработке заголовков ответа, разделённых в
4938 FastCGI-записях.
4939
4940 *) Исправление: если запрос обрабатывался в двух проксированных или
4941 FastCGI location'ах и в первом из них использовалось кэширование, то
4942 в рабочем процессе происходил segmentation fault; ошибка появилась в
4943 0.8.7.
4944
4945
4946 Изменения в nginx 0.8.7 27.07.2009
4947
4948 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
4949
4950 *) Изменение: параметр ask директивы ssl_verify_client изменён на
4951 параметр optional и теперь он проверяет клиентский сертификат, если
4952 он был предложен.
4953 Спасибо Brice Figureau.
4954
4955 *) Добавление: переменная $ssl_client_verify.
4956 Спасибо Brice Figureau.
4957
4958 *) Добавление: директива ssl_crl.
4959 Спасибо Brice Figureau.
4960
4961 *) Добавление: параметр proxy директивы geo.
4962
4963 *) Добавление: директива image_filter поддерживает переменные для
4964 задания размеров.
4965
4966 *) Исправление: использование переменной $ssl_client_cert портило
4967 память; ошибка появилась в 0.7.7.
4968 Спасибо Сергею Журавлёву.
4969
4970 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
4971 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
4972 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
4973 Спасибо Максиму Дунину.
4974
4975 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
4976 заголовке ответа бэкенда; ошибка появилась в 0.7.44.
4977 Спасибо Максиму Дунину.
4978
4979 *) Исправление: ошибки "[alert] zero size buf" при получении пустых
4980 ответы в подзапросах; ошибка появилась в 0.8.5.
4981
4982
4983 Изменения в nginx 0.8.6 20.07.2009
4984
4985 *) Добавление: модуль ngx_http_geoip_module.
4986
4987 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
4988 document" для правильного документа.
4989 Спасибо Kuramoto Eiji.
4990
4991 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
4992 location'ов, заданных регулярным выражением, теперь всегда делается
4993 сравнение без учёта регистра символов.
4994
4995 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
4996 Спасибо Hugo Leisink.
4997
4998 *) Исправление: имя файла указанного в --conf-path игнорировалось при
4999 установке; ошибка появилась в 0.6.6.
5000 Спасибо Максиму Дунину.
5001
5002
5003 Изменения в nginx 0.8.5 13.07.2009
5004
5005 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
5006
5007 *) Исправление: при использовании HTTP Basic-аутентификации на Windows
5008 для неверных имени/пароля возвращалась 500-ая ошибка.
5009
5010 *) Исправление: ответы модуля ngx_http_perl_module не работали в
5011 подзапросах.
5012
5013 *) Исправление: в модуле ngx_http_limit_req_module.
5014 Спасибо Максиму Дунину.
5015
5016
5017 Изменения в nginx 0.8.4 22.06.2009
5018
5019 *) Исправление: nginx не собирался с параметром --without-http-cache;
5020 ошибка появилась в 0.8.3.
5021
5022
5023 Изменения в nginx 0.8.3 19.06.2009
5024
5025 *) Добавление: переменная $upstream_cache_status.
5026
5027 *) Исправление: nginx не собирался на MacOSX 10.6.
5028
5029 *) Исправление: nginx не собирался с параметром --without-http-cache;
5030 ошибка появилась в 0.8.2.
5031
5032 *) Исправление: если использовался перехват 401 ошибки от бэкенда и
5033 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
5034 в рабочем процессе происходил segmentation fault.
5035 Спасибо Евгению Мычло.
5036
5037
5038 Изменения в nginx 0.8.2 15.06.2009
5039
5040 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
5041 на старте.
5042
5043 *) Исправление: open_file_cache мог кэшировать открытые файлы очень
5044 долго; ошибка появилась в 0.7.4.
5045
5046
5047 Изменения в nginx 0.8.1 08.06.2009
5048
5049 *) Добавление: параметр updating в директивах proxy_cache_use_stale и
5050 fastcgi_cache_use_stale.
5051
5052 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
5053 заголовке запроса клиента передавались бэкенду при кэшировании, если
5054 не использовалась директива proxy_set_header с любыми параметрами.
5055
5056 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
5057 не скрывались при кэшировании, если не использовались директивы
5058 proxy_hide_header/fastcgi_hide_header с любыми параметрами.
5059
5060 *) Исправление: модуль ngx_http_image_filter_module не понимал формат
5061 GIF87a.
5062 Спасибо Денису Ильиных.
5063
5064 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
5065 появилась в 0.7.56.
5066
5067
5068 Изменения в nginx 0.8.0 02.06.2009
5069
5070 *) Добавление: директива keepalive_requests.
5071
5072 *) Добавление: директива limit_rate_after.
5073 Спасибо Ivan Debnar.
5074
5075 *) Исправление: XSLT-фильтр не работал в подзапросах.
5076
5077 *) Исправление: обработке относительных путей в nginx/Windows.
5078
5079 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и
5080 fastcgi_cache в nginx/Windows.
5081
5082 *) Исправление: в обработке ошибок выделения памяти.
5083 Спасибо Максиму Дунину и Кириллу Коринскому.
5084
5085
5086 Изменения в nginx 0.7.59 25.05.2009
5087
5088 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
5089
5090 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
5091 Спасибо Максиму Дунину.
5092
5093 *) Исправление: при использовании переменной $request_body в рабочем
5094 процессе происходил segmentation fault, если в запросе не было тела;
5095 ошибка появилась в 0.7.58.
5096
5097 *) Исправление: SSL-модули могли не собираться на Solaris и Linux;
5098 ошибка появилась в 0.7.56.
5099
5100 *) Исправление: ответы модуля ngx_http_xslt_filter_module не
5101 обрабатывались SSI-, charset- и gzip-фильтрами.
5102
5103 *) Исправление: директива charset не ставила кодировку для ответов
5104 модуля ngx_http_gzip_static_module.
5105
5106
5107 Изменения в nginx 0.7.58 18.05.2009
5108
5109 *) Добавление: директива listen почтового прокси-сервера поддерживает
5110 IPv6.
5111
5112 *) Добавление: директива image_filter_jpeg_quality.
5113
5114 *) Добавление: директива client_body_in_single_buffer.
5115
5116 *) Добавление: переменная $request_body.
5117
5118 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
5119 файлов, содержащих символ ":".
5120
5121 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в
5122 0.7.53.
5123 Спасибо Денису Латыпову.
5124
5125
5126 Изменения в nginx 0.7.57 12.05.2009
5127
5128 *) Исправление: при перенаправлении ошибок модуля
5129 ngx_http_image_filter_module в именованный location в рабочем
5130 процессе происходил floating-point fault; ошибка появилась в 0.7.56.
5131
5132
5133 Изменения в nginx 0.7.56 11.05.2009
5134
5135 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
5136 HTTP.
5137
5138 *) Исправление: в модуле ngx_http_image_filter_module.
5139
5140
5141 Изменения в nginx 0.7.55 06.05.2009
5142
5143 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
5144 fastcgi_cache_use_stale не работали.
5145
5146 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
5147 заголовка.
5148
5149 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
5150 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
5151
5152 *) Исправление: при использовании директивы debug_connection в рабочем
5153 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
5154
5155 *) Исправление: в сборке модуля ngx_http_image_filter_module.
5156
5157 *) Исправление: файлы больше 2G не передавались с использованием
5158 $r->sendfile.
5159 Спасибо Максиму Дунину.
5160
5161
5162 Изменения в nginx 0.7.54 01.05.2009
5163
5164 *) Добавление: модуль ngx_http_image_filter_module.
5165
5166 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
5167
5168 *) Исправление: при использовании переменных "open_file_cache_errors on"
5169 в рабочем процессе мог произойти segmentation fault; ошибка появилась
5170 в 0.7.53.
5171
5172 *) Исправление: директива "port_in_redirect off" не работала; ошибка
5173 появилась в 0.7.39.
5174
5175 *) Исправление: улучшение обработки ошибок метода select.
5176
5177 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
5178
5179 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
5180 ошибка появилась в 0.7.53.
5181
5182
5183 Изменения в nginx 0.7.53 27.04.2009
5184
5185 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с
5186 самого начала работы.
5187
5188 *) Добавление: теперь ошибки и предупреждения при старте записываются в
5189 error_log и выводятся на stderr.
5190
5191 *) Добавление: при сборке с пустым параметром --prefix= nginx использует
5192 как префикс каталог, в котором он был запущен.
5193
5194 *) Добавление: ключ -p.
5195
5196 *) Добавление: ключ -s на Unix-платформах.
5197
5198 *) Добавление: ключи -? и -h.
5199 Спасибо Jerome Loyet.
5200
5201 *) Добавление: теперь ключи можно задавать в сжатой форме.
5202
5203 *) Исправление: nginx/Windows не работал, если файл конфигурации был
5204 задан ключом -c.
5205
5206 *) Исправление: при использовании директив proxy_store, fastcgi_store,
5207 proxy_cache или fastcgi_cache временные файлы могли не удаляться.
5208 Спасибо Максиму Дунину.
5209
5210 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации
5211 почтового прокси-сервера передавалось неверное значение; ошибка
5212 появилась в 0.7.34.
5213 Спасибо Simon Lecaille.
5214
5215 *) Исправление: при логгировании на Linux не писались текстовые описания
5216 системных ошибок; ошибка появилась в 0.7.45.
5217
5218 *) Исправление: директива fastcgi_cache_min_uses не работала.
5219 Спасибо Андрею Воробьёву.
5220
5221
5222 Изменения в nginx 0.7.52 20.04.2009
5223
5224 *) Добавление: первая бинарная версия под Windows.
5225
5226 *) Исправление: корректная обработка метода HEAD при кэшировании.
5227
5228 *) Исправление: корректная обработка строк "If-Modified-Since",
5229 "If-Range" и им подобных в заголовке запроса клиента при кэшировании.
5230
5231 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
5232 заголовке ответа для закэшированных ответов.
5233
5234 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
5235 perl поддерживал потоки, то при выходе основного процесса могла
5236 выдаваться ошибка "panic: MUTEX_LOCK".
5237
5238 *) Исправление: nginx не собирался с параметром --without-http-cache;
5239 ошибка появилась в 0.7.48.
5240
5241 *) Исправление: nginx не собирался на платформах, отличных от i386,
5242 amd64, sparc и ppc; ошибка появилась в 0.7.42.
5243
5244
5245 Изменения в nginx 0.7.51 12.04.2009
5246
5247 *) Добавление: директива try_files поддерживает код ответа в последнем
5248 параметре.
5249
5250 *) Добавление: теперь в директиве return можно использовать любой код
5251 ответа.
5252
5253 *) Исправление: директива error_page делала внешний редирект без строки
5254 запроса; ошибка появилась в 0.7.44.
5255
5256 *) Исправление: если сервера слушали на нескольких явно описанных
5257 адресах, то виртуальные сервера могли не работать; ошибка появилась в
5258 0.7.39.
5259
5260
5261 Изменения в nginx 0.7.50 06.04.2009
5262
5263 *) Исправление: переменные $arg_... не работали; ошибка появилась в
5264 0.7.49.
5265
5266
5267 Изменения в nginx 0.7.49 06.04.2009
5268
5269 *) Исправление: при использовании переменных $arg_... в рабочем процессе
5270 мог произойти segmentation fault; ошибка появилась в 0.7.48.
5271
5272
5273 Изменения в nginx 0.7.48 06.04.2009
5274
5275 *) Добавление: директива proxy_cache_key.
5276
5277 *) Исправление: теперь nginx учитывает при кэшировании строки
5278 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
5279 бэкенда.
5280
5281 *) Исправление: теперь nginx кэширует только ответы на запросы GET.
5282
5283 *) Исправление: директива fastcgi_cache_key не наследовалась.
5284
5285 *) Исправление: переменные $arg_... не работали с SSI-подзапросами.
5286 Спасибо Максиму Дунину.
5287
5288 *) Исправление: nginx не собирался с библиотекой uclibc.
5289 Спасибо Timothy Redaelli.
5290
5291 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась
5292 в 0.7.46.
5293
5294
5295 Изменения в nginx 0.7.47 01.04.2009
5296
5297 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
5298 ошибка появилась в 0.7.46.
5299
5300 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
5301
5302 *) Исправление: если использовался параметр max_size, то cache manager
5303 мог удалить весь кэш; ошибка появилась в 0.7.46.
5304
5305 *) Изменение: в рабочем процессе мог произойти segmentation fault, если
5306 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
5307 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
5308 в 0.7.46.
5309
5310 *) Исправление: в рабочем процессе мог произойти segmentation fault при
5311 перенаправлении запроса проксированному или FastCGI-серверу с помощью
5312 error_page или try_files; ошибка появилась в 0.7.44.
5313
5314
5315 Изменения в nginx 0.7.46 30.03.2009
5316
5317 *) Исправление: архив предыдущего релиза был неверным.
5318
5319
5320 Изменения в nginx 0.7.45 30.03.2009
5321
5322 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
5323 задавать на разных уровнях.
5324
5325 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
5326
5327 *) Добавление: параметр max_size в директиве proxy_cache_path.
5328
5329 *) Добавление: предварительная поддержка кэширования в модуле
5330 ngx_http_fastcgi_module.
5331
5332 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
5333 указываются названия директивы и зоны.
5334
5335 *) Исправление: директива "add_header last-modified ''" не удаляла в
5336 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
5337
5338 *) Исправление: в директиве auth_basic_user_file не работал
5339 относительный путь, заданный строкой без переменных; ошибка появилась
5340 в 0.7.44.
5341 Спасибо Jerome Loyet.
5342
5343 *) Исправление: в директиве alias, заданной переменными без ссылок на
5344 выделения в регулярных выражениях; ошибка появилась в 0.7.42.
5345
5346
5347 Изменения в nginx 0.7.44 23.03.2009
5348
5349 *) Добавление: предварительная поддержка кэширования в модуле
5350 ngx_http_proxy_module.
5351
5352 *) Добавление: параметр --with-pcre в configure.
5353
5354 *) Добавление: теперь директива try_files может быть использована на
5355 уровне server.
5356
5357 *) Исправление: директива try_files неправильно обрабатывала строку
5358 запроса в последнем параметре.
5359
5360 *) Исправление: директива try_files могла неверно тестировать каталоги.
5361
5362 *) Исправление: если для пары адрес:порт описан только один сервер, то
5363 выделения в регулярных выражениях в директиве server_name не
5364 работали.
5365
5366
5367 Изменения в nginx 0.7.43 18.03.2009
5368
5369 *) Исправление: запрос обрабатывался неверно, если директива root
5370 использовала переменные; ошибка появилась в 0.7.42.
5371
5372 *) Исправление: если сервер слушал на адресах типа "*", то значение
5373 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
5374
5375
5376 Изменения в nginx 0.7.42 16.03.2009
5377
5378 *) Изменение: ошибка "Invalid argument", возвращаемая
5379 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
5380
5381 *) Изменение: при отсутствии файла, указанного в директиве
5382 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
5383
5384 *) Добавление: директива auth_basic_user_file поддерживает переменные.
5385 Спасибо Кириллу Коринскому.
5386
5387 *) Добавление: директива listen поддерживает параметр ipv6only.
5388 Спасибо Zhang Hua.
5389
5390 *) Исправление: в директиве alias со ссылками на выделения в регулярных
5391 выражениях; ошибка появилась в 0.7.40.
5392
5393 *) Исправление: совместимость с Tru64 UNIX.
5394 Спасибо Dustin Marquess.
5395
5396 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5397 в 0.7.41.
5398
5399
5400 Изменения в nginx 0.7.41 11.03.2009
5401
5402 *) Исправление: в рабочем процессе мог произойти segmentation fault,
5403 если в server_name или location были выделения в регулярных
5404 выражениях; ошибка появилась в 0.7.40.
5405 Спасибо Владимиру Сопоту.
5406
5407
5408 Изменения в nginx 0.7.40 09.03.2009
5409
5410 *) Добавление: директива location поддерживает выделения в регулярных
5411 выражениях.
5412
5413 *) Добавление: директиву alias с ссылками на выделения в регулярных
5414 выражениях можно использовать внутри location'а, заданного регулярным
5415 выражением с выделениями.
5416
5417 *) Добавление: директива server_name поддерживает выделения в регулярных
5418 выражениях.
5419
5420 *) Изменение: модуль ngx_http_autoindex_module не показывал последний
5421 слэш для каталогов на файловой системе XFS; ошибка появилась в
5422 0.7.15.
5423 Спасибо Дмитрию Кузьменко.
5424
5425
5426 Изменения в nginx 0.7.39 02.03.2009
5427
5428 *) Исправление: при включённом сжатии большие ответы с использованием
5429 SSI могли зависать; ошибка появилась в 0.7.28.
5430 Спасибо Артёму Бохану.
5431
5432 *) Исправление: при использовании коротких статических вариантов в
5433 директиве try_files в рабочем процессе мог произойти segmentation
5434 fault.
5435
5436
5437 Изменения в nginx 0.7.38 23.02.2009
5438
5439 *) Добавление: логгирование ошибок аутентификации.
5440
5441 *) Исправление: имя/пароль, заданные в auth_basic_user_file,
5442 игнорировались после нечётного числа пустых строк.
5443 Спасибо Александру Загребину.
5444
5445 *) Исправление: при использовании длинного пути в unix domain сокете в
5446 главном процессе происходил segmentation fault; ошибка появилась в
5447 0.7.36.
5448
5449
5450 Изменения в nginx 0.7.37 21.02.2009
5451
5452 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка
5453 появилась в 0.7.36.
5454
5455
5456 Изменения в nginx 0.7.36 21.02.2009
5457
5458 *) Добавление: предварительная поддержка IPv6; директива listen модуля
5459 HTTP поддерживает IPv6.
5460
5461 *) Исправление: переменная $ancient_browser не работала для браузеров,
5462 заданных директивами modern_browser.
5463
5464
5465 Изменения в nginx 0.7.35 16.02.2009
5466
5467 *) Исправление: директива ssl_engine не использовала SSL-акселератор для
5468 асимметричных шифров.
5469 Спасибо Marcin Gozdalik.
5470
5471 *) Исправление: директива try_files выставляла MIME-type, исходя из
5472 расширения первоначального запроса.
5473
5474 *) Исправление: в директивах server_name, valid_referers и map
5475 неправильно обрабатывались имена вида "*domain.tld", если
5476 использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
5477 ошибка появилась в 0.7.9.
5478
5479
5480 Изменения в nginx 0.7.34 10.02.2009
5481
5482 *) Добавление: параметр off в директиве if_modified_since.
5483
5484 *) Добавление: теперь после команды XCLIENT nginx посылает команду
5485 HELO/EHLO.
5486 Спасибо Максиму Дунину.
5487
5488 *) Добавление: поддержка Microsoft-специфичного режима
5489 "AUTH LOGIN with User Name" в почтовом прокси-сервере.
5490 Спасибо Максиму Дунину.
5491
5492 *) Исправление: в директиве rewrite, возвращающей редирект, старые
5493 аргументы присоединялись к новым через символ "?" вместо "&";
5494 ошибка появилась в 0.1.18.
5495 Спасибо Максиму Дунину.
5496
5497 *) Исправление: nginx не собирался на AIX.
5498
5499
5500 Изменения в nginx 0.7.33 02.02.2009
5501
5502 *) Исправление: если на запрос с телом возвращался редирект, то ответ
5503 мог быть двойным при использовании методов epoll или rtsig.
5504 Спасибо Eden Li.
5505
5506 *) Исправление: для некоторых типов редиректов в переменной
5507 $sent_http_location было пустое значение.
5508
5509 *) Исправление: при использовании директивы resolver в SMTP
5510 прокси-сервере в рабочем процессе мог произойти segmentation fault.
5511
5512
5513 Изменения в nginx 0.7.32 26.01.2009
5514
5515 *) Добавление: теперь в директиве try_files можно явно указать проверку
5516 каталога.
5517
5518 *) Исправление: fastcgi_store не всегда сохранял файлы.
5519
5520 *) Исправление: в гео-диапазонах.
5521
5522 *) Исправление: ошибки выделения больших блоков в разделяемой памяти,
5523 если nginx был собран без отладки.
5524 Спасибо Андрею Квасову.
5525
5526
5527 Изменения в nginx 0.7.31 19.01.2009
5528
5529 *) Изменение: теперь директива try_files проверяет только файлы,
5530 игнорируя каталоги.
5531
5532 *) Добавление: директива fastcgi_split_path_info.
5533
5534 *) Исправления в поддержке строки "Expect" в заголовке запроса.
5535
5536 *) Исправления в гео-диапазонах.
5537
5538 *) Исправление: при отсутствии ответа ngx_http_memcached_module
5539 возвращал в теле ответа строку "END" вместо 404-ой страницы по
5540 умолчанию; ошибка появилась в 0.7.18.
5541 Спасибо Максиму Дунину.
5542
5543 *) Исправление: при проксировании SMTP nginx выдавал сообщение
5544 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
5545 Спасибо Максиму Дунину.
5546
5547
5548 Изменения в nginx 0.7.30 24.12.2008
5549
5550 *) Исправление: в рабочем процессе происходил segmentation fault, если в
5551 директивах fastcgi_pass или proxy_pass использовались переменные и
5552 имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
5553
5554
5555 Изменения в nginx 0.7.29 24.12.2008
5556
5557 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
5558 переменные при использовании unix domain сокетов.
5559
5560 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
5561
5562 *) Исправление: ответ "100 Continue" выдавался для запросов версии
5563 HTTP/1.0;
5564 Спасибо Максиму Дунину.
5565
5566 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
5567 под Cygwin.
5568
5569
5570 Изменения в nginx 0.7.28 22.12.2008
5571
5572 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
5573
5574 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены
5575 с 4 4k/8k на 32 4k или 16 8k.
5576
5577
5578 Изменения в nginx 0.7.27 15.12.2008
5579
5580 *) Добавление: директива try_files.
5581
5582 *) Добавление: директива fastcgi_pass поддерживает переменные.
5583
5584 *) Добавление: теперь директива geo может брать адрес из переменной.
5585 Спасибо Андрею Нигматулину.
5586
5587 *) Добавление: теперь модификатор location'а можно указывать без пробела
5588 перед названием.
5589
5590 *) Добавление: переменная $upstream_response_length.
5591
5592 *) Исправление: теперь директива add_header не добавляет пустое
5593 значение.
5594
5595 *) Исправление: при запросе файла нулевой длины nginx закрывал
5596 соединение, ничего не передав; ошибка появилась в 0.7.25.
5597
5598 *) Исправление: метод MOVE не мог перемещать файл в несуществующий
5599 каталог.
5600
5601 *) Исправление: если в сервере не был описан ни один именованный
5602 location, но такой location использовался в директиве error_page, то
5603 в рабочем процессе происходил segmentation fault.
5604 Спасибо Сергею Боченкову.
5605
5606
5607 Изменения в nginx 0.7.26 08.12.2008
5608
5609 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
5610
5611
5612 Изменения в nginx 0.7.25 08.12.2008
5613
5614 *) Изменение: в обработке подзапросов.
5615
5616 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
5617 заголовке запроса.
5618
5619 *) Исправление: теперь директивы limit_req и limit_conn указывают
5620 причину запрета запроса.
5621
5622 *) Исправление: в параметре delete директивы geo.
5623
5624
5625 Изменения в nginx 0.7.24 01.12.2008
5626
5627 *) Добавление: директива if_modified_since.
5628
5629 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
5630 ответом сервер передавал много сообщений в stderr.
5631
5632 *) Исправление: переменные "$cookie_..." не работали в SSI and в
5633 перловом модуле.
5634
5635
5636 Изменения в nginx 0.7.23 27.11.2008
5637
5638 *) Добавление: параметры delete и ranges в директиве geo.
5639
5640 *) Добавление: ускорение загрузки geo-базы с большим числом значений.
5641
5642 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
5643
5644
5645 Изменения в nginx 0.7.22 20.11.2008
5646
5647 *) Добавление: параметр none в директиве smtp_auth.
5648 Спасибо Максиму Дунину.
5649
5650 *) Добавление: переменные "$cookie_...".
5651
5652 *) Исправление: директива directio не работала с файловой системой XFS.
5653
5654 *) Исправление: resolver не понимал большие DNS-ответы.
5655 Спасибо Zyb.
5656
5657
5658 Изменения в nginx 0.7.21 11.11.2008
5659
5660 *) Изменения в модуле ngx_http_limit_req_module.
5661
5662 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
5663 Спасибо Денису Латыпову.
5664
5665 *) Изменение: совместимость с glibc 2.3.
5666 Спасибо Eric Benson и Максиму Дунину.
5667
5668 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
5669 ошибка появилась в 0.7.6.
5670
5671
5672 Изменения в nginx 0.7.20 10.11.2008
5673
5674 *) Изменения в модуле ngx_http_gzip_filter_module.
5675
5676 *) Добавление: модуль ngx_http_limit_req_module.
5677
5678 *) Исправление: на платформах sparc и ppc рабочие процессы могли
5679 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
5680 Спасибо Максиму Дунину.
5681
5682 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не
5683 работали; ошибка появилась в 0.7.12.
5684
5685 *) Исправление: при использовании HTTPS запросы могли завершаться с
5686 ошибкой "bad write retry".
5687
5688 *) Исправление: модуль ngx_http_secure_link_module не работал внутри
5689 location'ов с именами меньше 3 символов.
5690
5691 *) Исправление: переменная $server_addr могла не иметь значения.
5692
5693
5694 Изменения в nginx 0.7.19 13.10.2008
5695
5696 *) Исправление: обновление номера версии.
5697
5698
5699 Изменения в nginx 0.7.18 13.10.2008
5700
5701 *) Изменение: директива underscores_in_headers; теперь nginx по
5702 умолчанию не разрешает подчёркивания в именах строк в заголовке
5703 запроса клиента.
5704
5705 *) Добавление: модуль ngx_http_secure_link_module.
5706
5707 *) Добавление: директива real_ip_header поддерживает любой заголовок.
5708
5709 *) Добавление: директива log_subrequest.
5710
5711 *) Добавление: переменная $realpath_root.
5712
5713 *) Добавление: параметры http_502 и http_504 в директиве
5714 proxy_next_upstream.
5715
5716 *) Исправление: параметр http_503 в директивах proxy_next_upstream или
5717 fastcgi_next_upstream не работал.
5718
5719 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
5720 для запросов HEAD.
5721
5722 *) Исправление: теперь accept-лимит зависит от числа worker_connections.
5723
5724
5725 Изменения в nginx 0.7.17 15.09.2008
5726
5727 *) Добавление: директива directio теперь работает на Linux.
5728
5729 *) Добавление: переменная $pid.
5730
5731 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
5732 при использовании open_file_cache.
5733
5734 *) Исправление: access_log с переменными не работал на Linux; ошибка
5735 появилась в 0.7.7.
5736
5737 *) Исправление: модуль ngx_http_charset_module не понимал название
5738 кодировки в кавычках, полученное от бэкенда.
5739
5740
5741 Изменения в nginx 0.7.16 08.09.2008
5742
5743 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
5744 появилась в 0.7.15.
5745
5746
5747 Изменения в nginx 0.7.15 08.09.2008
5748
5749 *) Добавление: модуль ngx_http_random_index_module.
5750
5751 *) Добавление: директива directio оптимизирована для запросов файлов,
5752 начинающихся с произвольной позиции.
5753
5754 *) Добавление: директива directio при необходимости запрещает
5755 использование sendfile.
5756
5757 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в
5758 заголовке запроса клиента.
5759
5760
5761 Изменения в nginx 0.7.14 01.09.2008
5762
5763 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
5764 имеют значений по умолчанию.
5765
5766 *) Добавление: директива listen поддерживает параметр ssl.
5767
5768 *) Добавление: теперь при переконфигурации nginx учитывает изменение
5769 временной зоны на FreeBSD и Linux.
5770
5771 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
5772 прочие, не устанавливались, если сервером по умолчанию был не первый
5773 сервер.
5774
5775 *) Исправление: при использовании в качестве аргументов части URI,
5776 выделенного с помощью директивы rewrite, эти аргументы не
5777 экранировались.
5778
5779 *) Исправление: улучшения тестирования правильности конфигурационного
5780 файла.
5781
5782
5783 Изменения в nginx 0.7.13 26.08.2008
5784
5785 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
5786 в 0.7.12.
5787
5788
5789 Изменения в nginx 0.7.12 26.08.2008
5790
5791 *) Добавление: директива server_name поддерживает пустое имя "".
5792
5793 *) Добавление: директива gzip_disable поддерживает специальную маску
5794 msie6.
5795
5796 *) Исправление: при использовании параметра max_fails=0 в upstream'е с
5797 несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
5798 Спасибо Максиму Дунину.
5799
5800 *) Исправление: при перенаправлении запроса с помощью директивы
5801 error_page терялось тело запроса.
5802
5803 *) Исправление: при перенаправлении запроса с методом HEAD с помощью
5804 директивы error_page возвращался полный ответ.
5805
5806 *) Исправление: метод $r->header_in() не возвращал значения строк
5807 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
5808 появилась в 0.7.0.
5809
5810
5811 Изменения в nginx 0.7.11 18.08.2008
5812
5813 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает
5814 MIME-типом text/css.
5815
5816 *) Добавление: теперь nginx возвращает код 405 для метода POST при
5817 запросе статического файла, только если файл существует.
5818
5819 *) Добавление: директива proxy_ssl_session_reuse.
5820
5821 *) Исправление: после перенаправления запроса с помощью
5822 "X-Accel-Redirect" директива proxy_pass без URI могла использовать
5823 оригинальный запрос.
5824
5825 *) Исправление: если у каталога были права доступа только на поиск
5826 файлов и первый индексный файл отсутствовал, то nginx возвращал
5827 ошибку 500.
5828
5829 *) Исправление: ошибок во вложенных location'ах; ошибки появились в
5830 0.7.1.
5831
5832
5833 Изменения в nginx 0.7.10 13.08.2008
5834
5835 *) Исправление: ошибок в директивах addition_types, charset_types,
5836 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
5837 появились в 0.7.9.
5838
5839 *) Исправление: рекурсивной error_page для 500 ошибки.
5840
5841 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
5842 не для всего keepalive соединения, а для каждого запроса по этому
5843 соединению.
5844
5845
5846 Изменения в nginx 0.7.9 12.08.2008
5847
5848 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со
5849 следующими MIME-типами: text/html, text/css, text/xml, text/plain,
5850 text/vnd.wap.wml, application/x-javascript и application/rss+xml.
5851
5852 *) Добавление: директивы charset_types и addition_types.
5853
5854 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
5855 используют хэш.
5856
5857 *) Добавление: модуль ngx_cpp_test_module.
5858
5859 *) Добавление: директива expires поддерживает суточное время.
5860
5861 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
5862 Спасибо Денису Латыпову и Максиму Дунину.
5863
5864 *) Исправление: директива log_not_found не работала при поиске индексных
5865 файлов.
5866
5867 *) Исправление: HTTPS-соединения могли зависнуть, если использовались
5868 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
5869
5870 *) Исправление: если в директивах server_name, valid_referers и map
5871 использовалась маска вида "*.domain.tld" и при этом полное имя вида
5872 "domain.tld" не было описано, то это имя попадало под маску; ошибка
5873 появилась в 0.3.18.
5874
5875
5876 Изменения в nginx 0.7.8 04.08.2008
5877
5878 *) Добавление: модуль ngx_http_xslt_module.
5879
5880 *) Добавление: переменные "$arg_...".
5881
5882 *) Добавление: поддержка directio в Solaris.
5883 Спасибо Ivan Debnar.
5884
5885 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
5886 в заголовке ответа без строки статуса, то nginx использует код
5887 статуса 302.
5888 Спасибо Максиму Дунину.
5889
5890
5891 Изменения в nginx 0.7.7 30.07.2008
5892
5893 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
5894 временной.
5895
5896 *) Изменение: значением переменной $ssl_client_cert теперь является
5897 сертификат, перед каждой строкой которого, кроме первой, вставляется
5898 символ табуляции; неизменённый сертификат доступен через переменную
5899 $ssl_client_raw_cert.
5900
5901 *) Добавление: параметр ask директивы ssl_verify_client.
5902
5903 *) Добавление: улучшения в обработке byte-range.
5904 Спасибо Максиму Дунину.
5905
5906 *) Добавление: директива directio.
5907 Спасибо Jiang Hong.
5908
5909 *) Добавление: поддержка sendfile() в MacOSX 10.5.
5910
5911 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
5912 делается сравнение без учёта регистра символов; однако, сравнение
5913 ограничено только однобайтными locale'ями.
5914
5915 *) Исправление: соединения почтового прокси-сервера зависали в режиме
5916 SSL, если использовались методы select, poll или /dev/poll.
5917
5918 *) Исправление: ошибки при использовании кодировки UTF-8 в
5919 ngx_http_autoindex_module.
5920
5921
5922 Изменения в nginx 0.7.6 07.07.2008
5923
5924 *) Исправление: теперь при использовании переменных в директиве
5925 access_log всегда проверяется существовании root'а для запроса.
5926
5927 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько
5928 значений в аргументах запроса.
5929
5930
5931 Изменения в nginx 0.7.5 01.07.2008
5932
5933 *) Исправления в поддержке переменных в директиве access_log; ошибки
5934 появились в 0.7.4.
5935
5936 *) Исправление: nginx не собирался с параметром
5937 --without-http_gzip_module; ошибка появилась в 0.7.3.
5938 Спасибо Кириллу Коринскому.
5939
5940 *) Исправление: при совместном использовании sub_filter и SSI ответы
5941 могли передаваться неверно.
5942
5943
5944 Изменения в nginx 0.7.4 30.06.2008
5945
5946 *) Добавление: директива access_log поддерживает переменные.
5947
5948 *) Добавление: директива open_log_file_cache.
5949
5950 *) Добавление: ключ -g.
5951
5952 *) Добавление: поддержка строки "Expect" в заголовке запроса.
5953
5954 *) Исправление: большие включения в SSI могли передавались не полностью.
5955
5956
5957 Изменения в nginx 0.7.3 23.06.2008
5958
5959 *) Изменение: MIME-тип для расширения rss изменён на
5960 "application/rss+xml".
5961
5962 *) Изменение: теперь директива "gzip_vary on" выдаёт строку
5963 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
5964
5965 *) Добавление: теперь при использовании протокола "https://" в директиве
5966 rewrite автоматически делается редирект.
5967
5968 *) Исправление: директива proxy_pass не работала с протоколом HTTPS;
5969 ошибка появилась в 0.6.9.
5970
5971
5972 Изменения в nginx 0.7.2 16.06.2008
5973
5974 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
5975
5976 *) Добавление: директива ssl_dhparam.
5977
5978 *) Добавление: переменная $ssl_client_cert.
5979 Спасибо Manlio Perillo.
5980
5981 *) Исправление: после изменения URI с помощью директивы rewrite nginx не
5982 искал новый location; ошибка появилась в 0.7.1.
5983 Спасибо Максиму Дунину.
5984
5985 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5986 в 0.7.1.
5987
5988 *) Исправление: при редиректе запроса к каталогу с добавлением слэша
5989 nginx не добавлял аргументы из оригинального запроса.
5990
5991
5992 Изменения в nginx 0.7.1 26.05.2008
5993
5994 *) Изменение: теперь поиск location'а делается с помощью дерева.
5995
5996 *) Изменение: директива optimize_server_names упразднена в связи с
5997 появлением директивы server_name_in_redirect.
5998
5999 *) Изменение: некоторые давно устаревшие директивы больше не
6000 поддерживаются.
6001
6002 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
6003 параметр используется по умолчанию.
6004 Спасибо Rob Mueller.
6005
6006 *) Исправление: рабочие процессы могли не реагировать на сигналы
6007 переконфигурации и ротации логов.
6008
6009 *) Исправление: nginx не собирался на последних Fedora 9 Linux.
6010 Спасибо Roxis.
6011
6012
6013 Изменения в nginx 0.7.0 19.05.2008
6014
6015 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
6016 записываются в виде \xXX.
6017 Спасибо Максиму Дунину.
6018
6019 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
6020 запроса.
6021
6022 *) Добавление: директива expires поддерживает флаг modified.
6023
6024 *) Добавление: переменные $uid_got и $uid_set можно использовать на
6025 любой стадии обработки запроса.
6026
6027 *) Добавление: переменная $hostname.
6028 Спасибо Андрею Нигматулину.
6029
6030 *) Добавление: поддержка DESTDIR.
6031 Спасибо Todd A. Fisher и Andras Voroskoi.
6032
6033 *) Исправление: при использовании keepalive на Linux в рабочем процессе
6034 мог произойти segmentation fault.
6035
6036
6037 Изменения в nginx 0.6.31 12.05.2008
6038
6039 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
6040 заголовка ответа была в конце записи FastCGI; ошибка появилась в
6041 0.6.2.
6042 Спасибо Сергею Серову.
6043
6044 *) Исправление: при удалении файла и использовании директивы
6045 open_file_cache_errors off в рабочем процессе мог произойти
6046 segmentation fault.
6047
6048
6049 Изменения в nginx 0.6.30 29.04.2008
6050
6051 *) Изменение: теперь, если маске, заданной в директиве include, не
6052 соответствует ни один файл, то nginx не выдаёт ошибку.
6053
6054 *) Добавление: теперь время в директивах можно задавать без пробела,
6055 например, "1h50m".
6056
6057 *) Исправление: утечек памяти, если директива ssl_verify_client имела
6058 значение on.
6059 Спасибо Chavelle Vincent.
6060
6061 *) Исправление: директива sub_filter могла вставлять заменяемый текст в
6062 вывод.
6063
6064 *) Исправление: директива error_page не воспринимала параметры в
6065 перенаправляемом URI.
6066
6067 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
6068 в бинарном режиме.
6069
6070 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
6071 0.6.15.
6072
6073
6074 Изменения в nginx 0.6.29 18.03.2008
6075
6076 *) Добавление: модуль ngx_google_perftools_module.
6077
6078 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
6079 платформах; ошибка появилась в 0.6.27.
6080
6081
6082 Изменения в nginx 0.6.28 13.03.2008
6083
6084 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
6085
6086
6087 Изменения в nginx 0.6.27 12.03.2008
6088
6089 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
6090 rtsig.
6091
6092 *) Изменение: теперь при перенаправлении запроса в именованный location
6093 с помощью директивы error_page метод запроса не изменяется.
6094
6095 *) Добавление: директивы resolver и resolver_timeout в SMTP
6096 прокси-сервере.
6097
6098 *) Добавление: директива post_action поддерживает именованные
6099 location'ы.
6100
6101 *) Исправление: при перенаправлении запроса из location'а c обработчиком
6102 proxy, FastCGI или memcached в именованный location со статическим
6103 обработчиком в рабочем процессе происходил segmentation fault.
6104
6105 *) Исправление: браузеры не повторяли SSL handshake, если при первом
6106 handshake не оказалось правильного клиентского сертификата.
6107 Спасибо Александру Инюхину.
6108
6109 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
6110 error_page без изменения кода ошибки nginx пытался выделить очень
6111 много памяти.
6112
6113 *) Исправление: утечки памяти в долгоживущих небуфферизированных
6114 соединениях.
6115
6116 *) Исправление: утечки памяти в resolver'е.
6117
6118 *) Исправление: при перенаправлении запроса из location'а c обработчиком
6119 proxy в другой location с обработчиком proxy в рабочем процессе
6120 происходил segmentation fault.
6121
6122 *) Исправление: ошибки в кэшировании переменных $proxy_host и
6123 $proxy_port.
6124 Спасибо Сергею Боченкову.
6125
6126 *) Исправление: директива proxy_pass с переменными использовала порт,
6127 описанной в другой директиве proxy_pass без переменных, но с таким же
6128 именем хоста.
6129 Спасибо Сергею Боченкову.
6130
6131 *) Исправление: во время переконфигурации на некоторых 64-битном
6132 платформах в лог записывался alert "sendmsg() failed (9: Bad file
6133 descriptor)".
6134
6135 *) Исправление: при повторном использовании в SSI пустого block'а в
6136 качестве заглушки в рабочем процессе происходил segmentation fault.
6137
6138 *) Исправление: ошибки при копировании части URI, содержащего
6139 экранированные символы, в аргументы.
6140
6141
6142 Изменения в nginx 0.6.26 11.02.2008
6143
6144 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
6145 ответа.
6146
6147 *) Исправление: при использовании большого значения в директиве expires
6148 в рабочем процессе происходил segmentation fault.
6149 Спасибо Joaquin Cuenca Abela.
6150
6151 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
6152 Спасибо Геннадию Махомеду.
6153
6154 *) Исправление: в проксированных подзапросах и подзапросах к
6155 FastCGI-серверу вместо метода GET использовался оригинальный метод
6156 клиента.
6157
6158 *) Исправление: утечки сокетов в режиме HTTPS при использовании
6159 отложенного accept'а.
6160 Спасибо Ben Maurer.
6161
6162 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
6163 (SSL: )"; ошибка появилась в 0.6.23.
6164
6165 *) Исправление: при использовании HTTPS запросы могли завершаться с
6166 ошибкой "bad write retry"; ошибка появилась в 0.6.23.
6167
6168
6169 Изменения в nginx 0.6.25 08.01.2008
6170
6171 *) Изменение: вместо специального параметра "*" в директиве server_name
6172 теперь используется директива server_name_in_redirect.
6173
6174 *) Изменение: в качестве основного имени в директиве server_name теперь
6175 можно использовать имена с масками и регулярными выражениями.
6176
6177 *) Изменение: директива satisfy_any заменена директивой satisfy.
6178
6179 *) Изменение: после переконфигурации старые рабочие процесс могли сильно
6180 нагружать процессор при запуске под Linux OpenVZ.
6181
6182 *) Добавление: директива min_delete_depth.
6183
6184 *) Исправление: методы COPY и MOVE не работали с одиночными файлами.
6185
6186 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать
6187 модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
6188
6189 *) Исправление: утечки сокетов в режиме HTTPS при использовании
6190 отложенного accept'а.
6191 Спасибо Ben Maurer.
6192
6193 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
6194 в 0.6.23.
6195
6196
6197 Изменения в nginx 0.6.24 27.12.2007
6198
6199 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти
6200 segmentation fault; ошибка появилась в 0.6.23.
6201
6202
6203 Изменения в nginx 0.6.23 27.12.2007
6204
6205 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
6206 параметр используется по умолчанию.
6207
6208 *) Изменение: директива open_file_cache_retest переименована в
6209 open_file_cache_valid.
6210
6211 *) Добавление: директива open_file_cache_min_uses.
6212
6213 *) Добавление: модуль ngx_http_gzip_static_module.
6214
6215 *) Добавление: директива gzip_disable.
6216
6217 *) Добавление: директиву memcached_pass можно использовать внутри блока
6218 if.
6219
6220 *) Исправление: если внутри одного location'а использовались директивы
6221 "memcached_pass" и "if", то в рабочем процессе происходил
6222 segmentation fault.
6223
6224 *) Исправление: если при использовании директивы satisfy_any on" были
6225 заданы директивы не всех модулей доступа, то заданные директивы не
6226 проверялись.
6227
6228 *) Исправление: параметры, заданные регулярным выражением в директиве
6229 valid_referers, не наследовалась с предыдущего уровня.
6230
6231 *) Исправление: директива post_action не работала, если запрос
6232 завершался с кодом 499.
6233
6234 *) Исправление: оптимизация использования 16K буфера для SSL-соединения.
6235 Спасибо Ben Maurer.
6236
6237 *) Исправление: STARTTLS в режиме SMTP не работал.
6238 Спасибо Олегу Мотиенко.
6239
6240 *) Исправление: при использовании HTTPS запросы могли завершаться с
6241 ошибкой "bad write retry"; ошибка появилась в 0.5.13.
6242
6243
6244 Изменения в nginx 0.6.22 19.12.2007
6245
6246 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
6247 значения, скопированные в память, выделенную perl'ом.
6248
6249 *) Исправление: если nginx был собран с модулем ngx_http_perl_module,
6250 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
6251 время переконфигурации основной процесс аварийно выходил; ошибка
6252 появилась в 0.5.9.
6253 Спасибо Борису Жмурову.
6254
6255 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться
6256 неверные результаты выделения в регулярных выражениях.
6257
6258 *) Исправление: если метод $r->has_request_body() вызывался для запроса,
6259 у которого небольшое тело запроса было уже полностью получено, то в
6260 рабочем процессе происходил segmentation fault.
6261
6262 *) Исправление: large_client_header_buffers не освобождались перед
6263 переходом в состояние keep-alive.
6264 Спасибо Олександру Штепе.
6265
6266 *) Исправление: в переменной $upstream_addr не записывался последний
6267 адрес; ошибка появилась в 0.6.18.
6268
6269 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
6270 теперь она возвращает ошибку 502, которую можно направить на
6271 следующий сервер с помощью "fastcgi_next_upstream invalid_header".
6272
6273 *) Исправление: при использовании директивы fastcgi_catch_stderr в
6274 основном процессе происходил segmentation fault; ошибка появилась в
6275 0.6.10.
6276 Спасибо Manlio Perillo.
6277
6278
6279 Изменения в nginx 0.6.21 03.12.2007
6280
6281 *) Изменение: если в значениях переменных директивы proxy_pass
6282 используются только IP-адреса, то указывать resolver не нужно.
6283
6284 *) Исправление: при использовании директивы proxy_pass c URI-частью в
6285 рабочем процессе мог произойти segmentation fault; ошибка появилась в
6286 0.6.19.
6287
6288 *) Исправление: если resolver использовался на платформах, не
6289 поддерживающих метод kqueue, то nginx выдавал alert "name is out of
6290 response".
6291 Спасибо Андрею Нигматулину.
6292
6293 *) Исправление: При использовании переменной $server_protocol в
6294 FastCGI-параметрах и запросе, длина которого была близка к значению
6295 директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
6296 the request record is too big".
6297
6298 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
6299 nginx возвращал обычный ответ.
6300
6301
6302 Изменения в nginx 0.6.20 28.11.2007
6303
6304 *) Исправление: при использовании директивы proxy_pass c URI-частью в
6305 рабочем процессе мог произойти segmentation fault; ошибка появилась в
6306 0.6.19.
6307
6308
6309 Изменения в nginx 0.6.19 27.11.2007
6310
6311 *) Исправление: версия 0.6.18 не собиралась.
6312
6313
6314 Изменения в nginx 0.6.18 27.11.2007
6315
6316 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
6317 процесса добавляет микросекунды на время старта.
6318
6319 *) Изменение: в error_log теперь записывается полная строка запроса
6320 вместо только URI.
6321
6322 *) Добавление: директива proxy_pass поддерживает переменные.
6323
6324 *) Добавление: директивы resolver и resolver_timeout.
6325
6326 *) Добавление: теперь директива "add_header last-modified ''" удаляет в
6327 заголовке ответа строку "Last-Modified".
6328
6329 *) Исправление: директива limit_rate не позволяла передавать на полной
6330 скорости, даже если был указан очень большой лимит.
6331
6332
6333 Изменения в nginx 0.6.17 15.11.2007
6334
6335 *) Добавление: поддержка строки "If-Range" в заголовке запроса.
6336 Спасибо Александру Инюхину.
6337
6338 *) Исправление: при использовании директивы msie_refresh повторно
6339 экранировались уже экранированные символы; ошибка появилась в 0.6.4.
6340
6341 *) Исправление: директива autoindex не работала при использовании "alias
6342 /".
6343
6344 *) Исправление: при использовании подзапросов в рабочем процессе мог
6345 произойти segmentation fault.
6346
6347 *) Исправление: при использовании SSL и gzip большие ответы могли
6348 передаваться не полностью.
6349
6350 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
6351 то переменная $status была равна 0.
6352
6353
6354 Изменения в nginx 0.6.16 29.10.2007
6355
6356 *) Изменение: теперь на Linux используется uname(2) вместо procfs.
6357 Спасибо Илье Новикову.
6358
6359 *) Исправление: если в директиве error_page использовался символ "?", то
6360 он экранировался при проксировании запроса; ошибка появилась в
6361 0.6.11.
6362
6363 *) Исправление: совместимость с mget.
6364
6365
6366 Изменения в nginx 0.6.15 22.10.2007
6367
6368 *) Добавление: совместимость с Cygwin.
6369 Спасибо Владимиру Кутакову.
6370
6371 *) Добавление: директива merge_slashes.
6372
6373 *) Добавление: директива gzip_vary.
6374
6375 *) Добавление: директива server_tokens.
6376
6377 *) Исправление: nginx не раскодировал URI в команде SSI include.
6378
6379 *) Исправление: при использовании переменной в директивах charset или
6380 source_charset на старте или во время переконфигурации происходил
6381 segmentation fault,
6382
6383 *) Исправление: nginx возвращал ошибку 400 на запросы вида
6384 "GET http://www.domain.com HTTP/1.0".
6385 Спасибо James Oakley.
6386
6387 *) Исправление: после перенаправления запроса с телом запроса с помощью
6388 директивы error_page nginx пытался снова прочитать тело запроса;
6389 ошибка появилась в 0.6.7.
6390
6391 *) Исправление: в рабочем процессе происходил segmentation fault, если у
6392 сервера, обрабатывающему запрос, не был явно определён server_name;
6393 ошибка появилась в 0.6.7.
6394
6395
6396 Изменения в nginx 0.6.14 15.10.2007
6397
6398 *) Изменение: теперь по умолчанию команда SSI echo использует
6399 кодирование entity.
6400
6401 *) Добавление: параметр encoding в команде SSI echo.
6402
6403 *) Добавление: директиву access_log можно использовать внутри блока
6404 limit_except.
6405
6406 *) Исправление: если все сервера апстрима оказывались недоступными, то
6407 до восстановления работоспособности у всех серверов вес становился
6408 равным одному; ошибка появилась в 0.6.6.
6409
6410 *) Исправление: при использовании переменных $date_local и $date_gmt вне
6411 модуля ngx_http_ssi_filter_module в рабочем процессе происходил
6412 segmentation fault.
6413
6414 *) Исправление: при использовании включённом отладочном логе в рабочем
6415 процессе мог произойти segmentation fault.
6416 Спасибо Андрею Нигматулину.
6417
6418 *) Исправление: ngx_http_memcached_module не устанавливал
6419 $upstream_response_time.
6420 Спасибо Максиму Дунину.
6421
6422 *) Исправление: рабочий процесс мог зациклиться при использовании
6423 memcached.
6424
6425 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в
6426 строке "Connection" в заголовке запроса только, если они были в
6427 нижнем регистре; ошибка появилась в 0.6.11.
6428
6429 *) Исправление: sub_filter не работал с пустой строкой замены.
6430
6431 *) Исправление: в парсинге sub_filter.
6432
6433
6434 Изменения в nginx 0.6.13 24.09.2007
6435
6436 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
6437 использовался autoindex
6438 Спасибо Arkadiusz Patyk.
6439
6440
6441 Изменения в nginx 0.6.12 21.09.2007
6442
6443 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
6444 и smtp.
6445
6446 *) Добавление: параметры конфигурации --without-mail_pop3_module,
6447 --without-mail_imap_module и --without-mail_smtp_module.
6448
6449 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
6450 ngx_mail_smtp_module.
6451
6452 *) Исправление: wildcard в конце имени сервера не работали; ошибка
6453 появилась в 0.6.9.
6454
6455 *) Исправление: при использовании разделяемой библиотеки PCRE,
6456 расположенной в нестандартном месте, nginx не запускался на Solaris.
6457
6458 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
6459 скрывали строки заголовка ответа с именем больше 32 символов.
6460 Спасибо Manlio Perillo.
6461
6462
6463 Изменения в nginx 0.6.11 11.09.2007
6464
6465 *) Исправление: счётчик активных соединений всегда рос при использовании
6466 почтового прокси-сервера.
6467
6468 *) Исправление: если бэкенд возвращал только заголовок ответа при
6469 небуферизированном проксировании, то nginx закрывал соединение с
6470 бэкендом по таймауту.
6471
6472 *) Исправление: nginx не поддерживал несколько строк "Connection" в
6473 заголовке запроса.
6474
6475 *) Исправление: если в сервере апстрима был задан max_fails, то после
6476 первой же неудачной попытки вес сервера навсегда становился равным
6477 одному; ошибка появилась в 0.6.6.
6478
6479
6480 Изменения в nginx 0.6.10 03.09.2007
6481
6482 *) Добавление: директивы open_file_cache, open_file_cache_retest и
6483 open_file_cache_errors.
6484
6485 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
6486
6487 *) Исправление: В строку заголовка ответа "Content-Type", указанную в
6488 методе $r->send_http_header(), не добавлялась кодировка, указанная в
6489 директиве charset.
6490
6491 *) Исправление: при использовании метода /dev/poll в рабочем процессе
6492 мог произойти segmentation fault.
6493
6494
6495 Изменения в nginx 0.6.9 28.08.2007
6496
6497 *) Исправление: рабочий процесс мог зациклиться при использовании
6498 протокола HTTPS; ошибка появилась в 0.6.7.
6499
6500 *) Исправление: если сервер слушал на двух адресах или портах, то nginx
6501 не запускался при использовании wildcard в конце имени сервера.
6502
6503 *) Исправление: директива ip_hash могла неверно помечать сервера как
6504 нерабочие.
6505
6506 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
6507
6508
6509 Изменения в nginx 0.6.8 20.08.2007
6510
6511 *) Изменение: теперь nginx пытается установить директивы
6512 worker_priority, worker_rlimit_nofile, worker_rlimit_core,
6513 worker_rlimit_sigpending без привилегий root'а.
6514
6515 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
6516 запроса серверу аутентификации почтового прокси-сервера.
6517
6518 *) Изменение: теперь nginx экранирует символ "%" в переменной
6519 $memcached_key.
6520
6521 *) Исправление: при указании относительного пути к конфигурационному
6522 файлу в качестве параметра ключа -c nginx определял путь относительно
6523 конфигурационного префикса; ошибка появилась в 0.6.6.
6524
6525 *) Исправление: nginx не работал на FreeBSD/sparc64.
6526
6527
6528 Изменения в nginx 0.6.7 15.08.2007
6529
6530 *) Изменение: теперь пути, указанные в директивах include,
6531 auth_basic_user_file, perl_modules, ssl_certificate,
6532 ssl_certificate_key и ssl_client_certificate, определяются
6533 относительно каталога конфигурационного файла nginx.conf, а не
6534 относительно префикса.
6535
6536 *) Изменение: параметр --sysconfdir=PATH в configure упразднён.
6537
6538 *) Изменение: для обновления на лету версий 0.1.x создан специальный
6539 сценарий make upgrade1.
6540
6541 *) Добавление: директивы server_name и valid_referers поддерживают
6542 регулярные выражения.
6543
6544 *) Добавление: директива server в блоке upstream поддерживает параметр
6545 backup.
6546
6547 *) Добавление: модуль ngx_http_perl_module поддерживает метод
6548 $r->discard_request_body.
6549
6550 *) Добавление: директива "add_header Last-Modified ..." меняет строку
6551 "Last-Modified" в заголовке ответа.
6552
6553 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
6554 отличным от 200, и после этого запроса соединение переходило в
6555 состояние keep-alive, то на следующий запрос nginx возвращал 400.
6556
6557 *) Исправление: если в директиве auth_http был задан неправильный адрес,
6558 то в рабочем процессе происходил segmentation fault.
6559
6560 *) Исправление: теперь по умолчанию nginx использует значение 511 для
6561 listen backlog на всех платформах, кроме FreeBSD.
6562 Спасибо Jiang Hong.
6563
6564 *) Исправление: рабочий процесс мог зациклиться, если server в блоке
6565 upstream был помечен как down; ошибка появилась в 0.6.6.
6566
6567 *) Исправление: sendfilev() в Solaris теперь не используется при
6568 передаче тела запроса FastCGI-серверу через unix domain сокет.
6569
6570
6571 Изменения в nginx 0.6.6 30.07.2007
6572
6573 *) Добавление: параметр --sysconfdir=PATH в configure.
6574
6575 *) Добавление: именованные location'ы.
6576
6577 *) Добавление: переменную $args можно устанавливать с помощью set.
6578
6579 *) Добавление: переменная $is_args.
6580
6581 *) Исправление: равномерное распределение запросов к апстримам с
6582 большими весами.
6583
6584 *) Исправление: если клиент в почтовом прокси-сервере закрывал
6585 соединение, то nginx мог не закрывать соединение с бэкендом.
6586
6587 *) Исправление: при использовании одного хоста в качестве бэкендов для
6588 протоколов HTTP и HTTPS без явного указания портов, nginx использовал
6589 только один порт - 80 или 443.
6590
6591 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
6592 более ранними версиями; ошибка появилась в 0.6.4.
6593
6594
6595 Изменения в nginx 0.6.5 23.07.2007
6596
6597 *) Добавление: переменная $nginx_version.
6598 Спасибо Николаю Гречуху.
6599
6600 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
6601 IMAP.
6602 Спасибо Максиму Дунину.
6603
6604 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
6605 SMTP.
6606 Спасибо Максиму Дунину.
6607
6608 *) Исправление: теперь nginx экранирует пробел в переменной
6609 $memcached_key.
6610
6611 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
6612 Спасибо Jiang Hong.
6613
6614 *) Исправление: незначительных потенциальных ошибок.
6615 Спасибо Coverity's Scan.
6616
6617
6618 Изменения в nginx 0.6.4 17.07.2007
6619
6620 *) Безопасность: при использовании директивы msie_refresh был возможен
6621 XSS.
6622 Спасибо Максиму Богуку.
6623
6624 *) Изменение: директивы proxy_store и fastcgi_store изменены.
6625
6626 *) Добавление: директивы proxy_store_access и fastcgi_store_access.
6627
6628 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6629 Studio.
6630 Спасибо Андрею Нигматулину.
6631
6632 *) Изменение: обход ошибки в Sun Studio 12.
6633 Спасибо Jiang Hong.
6634
6635
6636 Изменения в nginx 0.6.3 12.07.2007
6637
6638 *) Добавление: директивы proxy_store и fastcgi_store.
6639
6640 *) Исправление: при использовании директивы auth_http_header в рабочем
6641 процессе мог произойти segmentation fault.
6642 Спасибо Максиму Дунину.
6643
6644 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он
6645 не был разрешён, то в рабочем процессе происходил segmentation fault.
6646
6647 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
6648 в рабочем процессе мог произойти segmentation fault.
6649
6650 *) Исправление: в рабочем процессе мог произойти segmentation fault,
6651 если использовался метод eventport.
6652
6653 *) Исправление: директивы proxy_ignore_client_abort и
6654 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
6655
6656
6657 Изменения в nginx 0.6.2 09.07.2007
6658
6659 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
6660 nginx передавал клиенту мусор в таких заголовках.
6661
6662
6663 Изменения в nginx 0.6.1 17.06.2007
6664
6665 *) Исправление: в парсинге SSI.
6666
6667 *) Исправление: при использовании удалённого подзапроса в SSI
6668 последующий подзапрос локального файла мог отдаваться клиенту в
6669 неверном порядке.
6670
6671 *) Исправление: большие включения в SSI, сохранённые во временные файлы,
6672 передавались не полностью.
6673
6674 *) Исправление: значение perl'овой переменной $$ модуля
6675 ngx_http_perl_module было равно номеру главного процесса.
6676
6677
6678 Изменения в nginx 0.6.0 14.06.2007
6679
6680 *) Добавление: директивы "server_name", "map", and "valid_referers"
6681 поддерживают маски вида "www.example.*".
6682
6683
6684 Изменения в nginx 0.5.25 11.06.2007
6685
6686 *) Исправление: nginx не собирался с параметром
6687 --without-http_rewrite_module; ошибка появилась в 0.5.24.
6688
6689
6690 Изменения в nginx 0.5.24 06.06.2007
6691
6692 *) Безопасность: директива ssl_verify_client не работала, если запрос
6693 выполнялся по протоколу HTTP/0.9.
6694
6695 *) Исправление: при использовании сжатия часть ответа могла передаваться
6696 несжатой; ошибка появилась в 0.5.23.
6697
6698
6699 Изменения в nginx 0.5.23 04.06.2007
6700
6701 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
6702 Server Name Indication.
6703
6704 *) Добавление: директива fastcgi_catch_stderr.
6705 Спасибо Николаю Гречуху, проект OWOX.
6706
6707 *) Исправление: на Линуксе в основном процессе происходил segmentation
6708 fault, если два виртуальных сервера должны bind()ится к
6709 пересекающимся портам.
6710
6711 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6712 perl поддерживал потоки, то во время второй переконфигурации
6713 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
6714
6715 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6716
6717
6718 Изменения в nginx 0.5.22 29.05.2007
6719
6720 *) Исправление: большое тело запроса могло не передаваться бэкенду;
6721 ошибка появилась в 0.5.21.
6722
6723
6724 Изменения в nginx 0.5.21 28.05.2007
6725
6726 *) Исправление: если внутри сервера описано больше примерно десяти
6727 location'ов, то location'ы, заданные с помощью регулярного выражения,
6728 могли выполняться не в том, порядке, в каком они описаны.
6729
6730 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
6731 если 33-тий по счёту или последующий бэкенд упал.
6732 Спасибо Антону Поварову.
6733
6734 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
6735 произойти bus error.
6736 Спасибо Андрею Нигматулину.
6737
6738 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6739
6740
6741 Изменения в nginx 0.5.20 07.05.2007
6742
6743 *) Добавление: директива sendfile_max_chunk.
6744
6745 *) Добавление: переменные "$http_...", "$sent_http_..." и
6746 "$upstream_http_..." можно менять директивой set.
6747
6748 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
6749 рабочем процессе мог произойти segmentation fault.
6750
6751 *) Исправление: завершающая строка multipart range ответа передавалась
6752 неверно.
6753 Спасибо Evan Miller.
6754
6755 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
6756 Studio.
6757 Спасибо Андрею Нигматулину.
6758
6759 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
6760 Спасибо Андрею Нигматулину.
6761
6762
6763 Изменения в nginx 0.5.19 24.04.2007
6764
6765 *) Изменение: значение переменной $request_time теперь записывается с
6766 точностью до миллисекунд.
6767
6768 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module
6769 переименован в $r->flush.
6770
6771 *) Добавление: переменная $upstream_addr.
6772
6773 *) Добавление: директивы proxy_headers_hash_max_size и
6774 proxy_headers_hash_bucket_size.
6775 Спасибо Володымыру Костырко.
6776
6777 *) Исправление: при использовании sendfile и limit_rate на 64-битных
6778 платформах нельзя было передавать файлы больше 2G.
6779
6780 *) Исправление: при использовании sendfile на 64-битном Linux нельзя
6781 было передавать файлы больше 2G.
6782
6783
6784 Изменения в nginx 0.5.18 19.04.2007
6785
6786 *) Добавление: модуль ngx_http_sub_filter_module.
6787
6788 *) Добавление: переменные "$upstream_http_...".
6789
6790 *) Добавление: теперь переменные $upstream_status и
6791 $upstream_response_time содержат данные о всех обращениях к
6792 апстримам, сделанным до X-Accel-Redirect.
6793
6794 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и
6795 perl не поддерживал multiplicity, то после первой переконфигурации и
6796 после получения любого сигнала в основном процессе происходил
6797 segmentation fault; ошибка появилась в 0.5.9.
6798
6799 *) Исправление: если perl не поддерживал multiplicity, то после
6800 переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
6801
6802
6803 Изменения в nginx 0.5.17 02.04.2007
6804
6805 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
6806
6807 *) Добавление: теперь nginx поддерживает директиву include внутри блока
6808 types.
6809
6810 *) Исправление: использование переменной $document_root в директиве root
6811 и alias запрещено: оно вызывало рекурсивное переполнение стека.
6812
6813 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
6814
6815 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
6816 $uri) возвращали старое закэшированное значение.
6817
6818
6819 Изменения в nginx 0.5.16 26.03.2007
6820
6821 *) Исправление: в качестве ключа для хэша в директиве ip_hash не
6822 использовалась сеть класса С.
6823 Спасибо Павлу Ярковому.
6824
6825 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
6826 был указан charset и строка завершалась символом ";", то в рабочем
6827 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
6828
6829 *) Исправление: ошибки "[alert] zero size buf" при работе с
6830 FastCGI-сервером, если тело запроса, записанное во временный файл,
6831 было кратно 32K.
6832
6833 *) Исправление: nginx не собирался на Solaris без параметра
6834 --with-debug; ошибка появилась в 0.5.15.
6835
6836
6837 Изменения в nginx 0.5.15 19.03.2007
6838
6839 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
6840 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и
6841 xclient.
6842 Спасибо Антону Южанинову и Максиму Дунину.
6843
6844 *) Добавление: теперь keep-alive соединения закрываются сразу же по
6845 получении сигнала переконфигурации.
6846
6847 *) Изменение: директивы imap и auth переименованы соответственно в mail
6848 и pop3_auth.
6849
6850 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не
6851 был разрешён метод APOP, то в рабочем процессе происходил
6852 segmentation fault.
6853
6854 *) Исправление: при использовании директивы starttls only в протоколе
6855 POP3 nginx разрешал аутентификацию без перехода в режим SSL.
6856
6857 *) Исправление: рабочие процессы не выходили после переконфигурации и не
6858 переоткрывали логи, если использовался метод eventport.
6859
6860 *) Исправление: при использовании директивы ip_hash рабочий процесс мог
6861 зациклиться.
6862
6863 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
6864 используются методы eventport или /dev/poll.
6865
6866
6867 Изменения в nginx 0.5.14 23.02.2007
6868
6869 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
6870 конфигурационного файла.
6871
6872
6873 Изменения в nginx 0.5.13 19.02.2007
6874
6875 *) Добавление: методы COPY и MOVE.
6876
6877 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для
6878 запросов, переданных по keep-alive соединению.
6879
6880 *) Исправление: nginx не работал на 64-битном big-endian Linux.
6881 Спасибо Андрею Нигматулину.
6882
6883 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
6884 теперь сразу закрывает соединение, а не по таймауту.
6885
6886 *) Исправление: если при использовании метода epoll клиент закрывал
6887 преждевременно соединение со своей стороны, то nginx закрывал это
6888 соединение только по истечении таймаута на передачу.
6889
6890 *) Исправление: nginx не собирался на платформах, отличных от i386,
6891 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6892
6893
6894 Изменения в nginx 0.5.12 12.02.2007
6895
6896 *) Исправление: nginx не собирался на платформах, отличных от i386,
6897 amd64, sparc и ppc; ошибка появилась в 0.5.8.
6898
6899 *) Исправление: при использовании временных файлов в время работы с
6900 FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
6901 ошибка появилась в 0.5.8.
6902
6903 *) Исправление: если переменная $fastcgi_script_name записывалась в лог,
6904 то в рабочем процессе мог произойти segmentation fault.
6905
6906 *) Исправление: ngx_http_perl_module не собирался на Solaris.
6907
6908
6909 Изменения в nginx 0.5.11 05.02.2007
6910
6911 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
6912 Спасибо Chris McGrath.
6913
6914 *) Исправление: ответ был неверным, если запрашивалось несколько
6915 диапазонов; ошибка появилась в 0.5.6.
6916
6917 *) Исправление: директива create_full_put_path не могла создавать
6918 промежуточные каталоги, если не была установлена директива
6919 dav_access.
6920 Спасибо Evan Miller.
6921
6922 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
6923 записываться код "0".
6924
6925 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6926 произойти segmentation fault.
6927
6928
6929 Изменения в nginx 0.5.10 26.01.2007
6930
6931 *) Исправление: во время обновления исполняемого файла новый процесс не
6932 наследовал слушающие сокеты; ошибка появилась в 0.5.9.
6933
6934 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
6935 произойти segmentation fault; ошибка появилась в 0.5.1.
6936
6937
6938 Изменения в nginx 0.5.9 25.01.2007
6939
6940 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
6941 использует значение переменной $memcached_key.
6942
6943 *) Добавление: переменная $memcached_key.
6944
6945 *) Добавление: параметр clean в директиве client_body_in_file_only.
6946
6947 *) Добавление: директива env.
6948
6949 *) Добавление: директива sendfile работает внутри блока if.
6950
6951 *) Добавление: теперь при ошибке записи в access_log nginx записывает
6952 сообщение в error_log, но не чаще одного раза в минуту.
6953
6954 *) Исправление: директива "access_log off" не всегда запрещала запись в
6955 лог.
6956
6957
6958 Изменения в nginx 0.5.8 19.01.2007
6959
6960 *) Исправление: если использовалась директива
6961 "client_body_in_file_only on" и тело запроса было небольшое, то мог
6962 произойти segmentation fault.
6963
6964 *) Исправление: происходил segmentation fault, если использовались
6965 директивы "client_body_in_file_only on" и
6966 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
6967 делался переход к следующему бэкенду.
6968
6969 *) Исправление: если при использовании директивы "proxy_buffering off"
6970 соединение с клиентом было неактивно, то оно закрывалось по таймауту,
6971 заданному директивой send_timeout; ошибка появилась в 0.4.7.
6972
6973 *) Исправление: если при использовании метода epoll клиент закрывал
6974 преждевременно соединение со своей стороны, то nginx закрывал это
6975 соединение только по истечении таймаута на передачу.
6976
6977 *) Исправление: ошибки "[alert] zero size buf" при работе с
6978 FastCGI-сервером.
6979
6980 *) Исправление ошибок в директиве limit_zone.
6981
6982
6983 Изменения в nginx 0.5.7 15.01.2007
6984
6985 *) Добавление: оптимизация использования памяти в ssl_session_cache.
6986
6987 *) Исправление ошибок в директивах ssl_session_cache и limit_zone.
6988
6989 *) Исправление: на старте или во время переконфигурации происходил
6990 segmentation fault, если директивы ssl_session_cache или limit_zone
6991 использовались на 64-битных платформах.
6992
6993 *) Исправление: при использовании директив add_before_body или
6994 add_after_body происходил segmentation fault, если в заголовке ответа
6995 нет строки "Content-Type".
6996
6997 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
6998 потоков.
6999 Спасибо Дену Иванову.
7000
7001 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
7002
7003
7004 Изменения в nginx 0.5.6 09.01.2007
7005
7006 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
7007 кроме GET, HEAD и POST.
7008
7009 *) Добавление: модуль ngx_http_limit_zone_module.
7010
7011 *) Добавление: переменная $binary_remote_addr.
7012
7013 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
7014 ngx_imap_ssl_module.
7015
7016 *) Добавление: метод DELETE поддерживает рекурсивное удаление.
7017
7018 *) Исправление: при использовании $r->sendfile() byte-ranges
7019 передавались неверно.
7020
7021
7022 Изменения в nginx 0.5.5 24.12.2006
7023
7024 *) Изменение: ключ -v больше не выводит информацию о компиляторе.
7025
7026 *) Добавление: ключ -V.
7027
7028 *) Добавление: директива worker_rlimit_core поддерживает указание
7029 размера в K, M и G.
7030
7031 *) Исправление: модуль nginx.pm теперь может устанавливаться
7032 непривилегированным пользователем.
7033
7034 *) Исправление: при использовании методов $r->request_body или
7035 $r->request_body_file мог произойти segmentation fault.
7036
7037 *) Исправление: ошибок, специфичных для платформы ppc.
7038
7039
7040 Изменения в nginx 0.5.4 15.12.2006
7041
7042 *) Добавление: директиву perl можно использовать внутри блока
7043 limit_except.
7044
7045 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
7046 заголовке запроса для метода DELETE.
7047
7048 *) Исправление: при использовании одного параметра в директиве
7049 dav_access nginx мог сообщить об ошибке в конфигурации.
7050
7051 *) Исправление: при использовании переменной $host мог произойти
7052 segmentation fault; ошибка появилась в 0.4.14.
7053
7054
7055 Изменения в nginx 0.5.3 13.12.2006
7056
7057 *) Добавление: модуль ngx_http_perl_module поддерживает методы
7058 $r->status, $r->log_error и $r->sleep.
7059
7060 *) Добавление: метод $r->variable поддерживает переменные, неописанные в
7061 конфигурации nginx'а.
7062
7063 *) Исправление: метод $r->has_request_body не работал.
7064
7065
7066 Изменения в nginx 0.5.2 11.12.2006
7067
7068 *) Исправление: если в директивах proxy_pass использовалось имя,
7069 указанное в upstream, то nginx пытался найти IP-адрес этого имени;
7070 ошибка появилась в 0.5.1.
7071
7072
7073 Изменения в nginx 0.5.1 11.12.2006
7074
7075 *) Исправление: директива post_action могла не работать после неудачного
7076 завершения запроса.
7077
7078 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
7079 Спасибо Bron Gondwana.
7080
7081 *) Исправление: при указании в директиве fastcgi_pass имени описанного
7082 upstream'а выдавалось сообщение "no port in upstream"; ошибка
7083 появилась в 0.5.0.
7084
7085 *) Исправление: если в директивах proxy_pass и fastcgi_pass
7086 использовались одинаковых имена серверов, но с разными портами, то
7087 эти директивы использовали первый описанный порт; ошибка появилась в
7088 0.5.0.
7089
7090 *) Исправление: если в директивах proxy_pass и fastcgi_pass
7091 использовались unix domain сокеты, то эти директивы использовали
7092 первый описанный сокет; ошибка появилась в 0.5.0.
7093
7094 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
7095 если он был указан в последней строке файла паролей и после пароля не
7096 было перевода строки, возврата каретки или символа ":".
7097
7098 *) Исправление: переменная $upstream_response_time могла быть равна
7099 "0.000", хотя время обработки было больше 1 миллисекунды.
7100
7101
7102 Изменения в nginx 0.5.0 04.12.2006
7103
7104 *) Изменение: параметры в виде "%name" в директиве log_format больше не
7105 поддерживаются.
7106
7107 *) Изменение: директивы proxy_upstream_max_fails,
7108 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
7109 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
7110 memcached_upstream_fail_timeout больше не поддерживаются.
7111
7112 *) Добавление: директива server в блоке upstream поддерживает параметры
7113 max_fails, fail_timeout и down.
7114
7115 *) Добавление: директива ip_hash в блоке upstream.
7116
7117 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа
7118 сервера аутентификации IMAP/POP3 прокси.
7119
7120 *) Исправление: nginx не собирался на 64-битных платформах; ошибка
7121 появилась в 0.4.14.
7122
7123
7124 Изменения в nginx 0.4.14 27.11.2006
7125
7126 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
7127
7128 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
7129 Linux и NetBSD.
7130
7131 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с
7132 поддержкой потоков; ошибка появилась в 0.3.38.
7133
7134 *) Исправление: ngx_http_perl_module не работал корректно, если перл
7135 вызывался рекурсивно.
7136
7137 *) Исправление: nginx игнорировал имя сервера в строке запроса.
7138
7139 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
7140 процесс мог зациклиться.
7141
7142 *) Исправление: при изменении системного времени переменная
7143 $upstream_response_time могла быть отрицательной.
7144
7145 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
7146 прокси не передавался параметр Auth-Login-Attempt.
7147
7148 *) Исправление: при ошибке соединения с сервером аутентификации
7149 IMAP/POP3 прокси мог произойти segmentation fault.
7150
7151
7152 Изменения в nginx 0.4.13 15.11.2006
7153
7154 *) Добавление: директиву proxy_pass можно использовать внутри блока
7155 limit_except.
7156
7157 *) Добавление: директива limit_except поддерживает все WebDAV методы.
7158
7159 *) Исправление: при использовании директивы add_before_body без
7160 директивы add_after_body ответ передавался не полностью.
7161
7162 *) Исправление: большое тело запроса не принималось, если использовались
7163 метод epoll и deferred accept().
7164
7165 *) Исправление: для ответов модуля ngx_http_autoindex_module не
7166 выставлялась кодировка; ошибка появилась в 0.3.50.
7167
7168 *) Исправление: ошибки "[alert] zero size buf" при работе с
7169 FastCGI-сервером;
7170
7171 *) Исправление: параметр конфигурации --group= игнорировался.
7172 Спасибо Thomas Moschny.
7173
7174 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
7175 в 0.3.50.
7176
7177
7178 Изменения в nginx 0.4.12 31.10.2006
7179
7180 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7181 $r->variable.
7182
7183 *) Исправление: при включении в ответ большого статического файла с
7184 помощью SSI ответ мог передаваться не полностью.
7185
7186 *) Исправление: nginx не убирал "#fragment" в URI.
7187
7188
7189 Изменения в nginx 0.4.11 25.10.2006
7190
7191 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
7192
7193 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7194 $r->allow_ranges.
7195
7196 *) Исправление: при включённой поддержке команды APOP в POP3 прокси
7197 могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
7198
7199
7200 Изменения в nginx 0.4.10 23.10.2006
7201
7202 *) Добавление: POP3 прокси поддерживает APOP.
7203
7204 *) Исправление: при использовании методов select, poll и /dev/poll во
7205 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
7206 нагружал процессор.
7207
7208 *) Исправление: при использовании переменной $server_addr в директиве
7209 map мог произойти segmentation fault.
7210
7211 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
7212 для полных ответов; ошибка появилась в 0.4.7.
7213
7214 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
7215 0.4.9.
7216
7217
7218 Изменения в nginx 0.4.9 13.10.2006
7219
7220 *) Добавление: параметр set в команде SSI include.
7221
7222 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию
7223 модуля nginx.pm.
7224
7225
7226 Изменения в nginx 0.4.8 11.10.2006
7227
7228 *) Исправление: если до команды SSI include с параметром wait
7229 выполнялась ещё одна команда SSI include, то параметр wait мог не
7230 работать.
7231
7232 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
7233 полных ответов.
7234 Спасибо Алексею Ковырину.
7235
7236
7237 Изменения в nginx 0.4.7 10.10.2006
7238
7239 *) Добавление: модуль ngx_http_flv_module.
7240
7241 *) Добавление: переменная $request_body_file.
7242
7243 *) Добавление: директивы charset и source_charset поддерживают
7244 переменные.
7245
7246 *) Исправление: если до команды SSI include с параметром wait
7247 выполнялась ещё одна команда SSI include, то параметр wait мог не
7248 работать.
7249
7250 *) Исправление: при использовании директивы "proxy_buffering off" или
7251 при работе с memcached соединения могли не закрываться по таймауту.
7252
7253 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
7254 amd64, sparc64 и ppc64.
7255
7256
7257 Изменения в nginx 0.4.6 06.10.2006
7258
7259 *) Исправление: nginx не запускался на 64-битных платформах, отличных от
7260 amd64, sparc64 и ppc64.
7261
7262 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
7263 chunk'ами, если длина ответа в методе
7264 $r->headers_out("Content-Length", ...) была задана текстовой строкой.
7265
7266 *) Исправление: после перенаправления ошибки с помощью директивы
7267 error_page любая директива модуля ngx_http_rewrite_module возвращала
7268 эту ошибку; ошибка появилась в 0.4.4.
7269
7270
7271 Изменения в nginx 0.4.5 02.10.2006
7272
7273 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
7274 в 0.4.4.
7275
7276
7277 Изменения в nginx 0.4.4 02.10.2006
7278
7279 *) Добавление: переменная $scheme.
7280
7281 *) Добавление: директива expires поддерживает параметр max.
7282
7283 *) Добавление: директива include поддерживает маску "*".
7284 Спасибо Jonathan Dance.
7285
7286 *) Исправление: директива return всегда изменяла код ответа,
7287 перенаправленного директивой error_page.
7288
7289 *) Исправление: происходил segmentation fault, если в методе PUT
7290 передавалось тело нулевой длины.
7291
7292 *) Исправление: при использовании переменных в директиве proxy_redirect
7293 редирект изменялся неверно.
7294
7295
7296 Изменения в nginx 0.4.3 26.09.2006
7297
7298 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
7299 error_page.
7300
7301 *) Добавление: поддержка Solaris 10 event ports.
7302
7303 *) Добавление: модуль ngx_http_browser_module.
7304
7305 *) Исправление: при перенаправлении ошибки 400 проксированному серверу
7306 помощью директивы error_page мог произойти segmentation fault.
7307
7308 *) Исправление: происходил segmentation fault, если в директиве
7309 proxy_pass использовался unix domain сокет; ошибка появилась в
7310 0.3.47.
7311
7312 *) Исправление: SSI не работал с ответами memcached и
7313 небуферизированными проксированными ответами.
7314
7315 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
7316
7317
7318 Изменения в nginx 0.4.2 14.09.2006
7319
7320 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
7321 появилась в 0.4.1.
7322
7323
7324 Изменения в nginx 0.4.1 14.09.2006
7325
7326 *) Исправление: совместимость с DragonFlyBSD.
7327 Спасибо Павлу Назарову.
7328
7329 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
7330 файлов больше 2G.
7331
7332 *) Добавление: теперь на Linux nginx для статических запросов использует
7333 флаг O_NOATIME.
7334 Спасибо Yusuf Goolamabbas.
7335
7336
7337 Изменения в nginx 0.4.0 30.08.2006
7338
7339 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
7340 фазы init module в фазу HTTP postconfiguration.
7341
7342 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
7343 считывается заранее: нужно явно инициировать чтение с помощью метода
7344 $r->has_request_body.
7345
7346 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата
7347 DECLINED.
7348
7349 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
7350 заголовка "Date" для метода PUT.
7351
7352 *) Добавление: директива ssi работает внутри блока if.
7353
7354 *) Исправление: происходил segmentation fault, если в директиве index
7355 использовалась переменные и при этом первое имя индексного файла было
7356 без переменных; ошибка появилась в 0.1.29.
7357
7358
7359 Изменения в nginx 0.3.61 28.08.2006
7360
7361 *) Изменение: директива tcp_nodelay теперь по умолчанию включена.
7362
7363 *) Добавление: директива msie_refresh.
7364
7365 *) Добавление: директива recursive_error_pages.
7366
7367 *) Исправление: директива rewrite возвращала неправильный редирект, если
7368 редирект включал в себя выделенные закодированные символы из
7369 оригинального URI.
7370
7371
7372 Изменения в nginx 0.3.60 18.08.2006
7373
7374 *) Исправление: во время перенаправления ошибки рабочий процесс мог
7375 зациклиться; ошибка появилась в 0.3.59.
7376
7377
7378 Изменения в nginx 0.3.59 16.08.2006
7379
7380 *) Добавление: теперь можно делать несколько перенаправлений через
7381 директиву error_page.
7382
7383 *) Исправление: директива dav_access не поддерживала три параметра.
7384
7385 *) Исправление: директива error_page не изменяла строку "Content-Type"
7386 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
7387 в 0.3.58.
7388
7389
7390 Изменения в nginx 0.3.58 14.08.2006
7391
7392 *) Добавление: директива error_page поддерживает переменные.
7393
7394 *) Изменение: теперь на Linux используется интерфейс procfs вместо
7395 sysctl.
7396
7397 *) Изменение: теперь при использовании "X-Accel-Redirect" строка
7398 "Content-Type" наследуется из первоначального ответа.
7399
7400 *) Исправление: директива error_page не перенаправляла ошибку 413.
7401
7402 *) Исправление: завершающий "?" не удалял старые аргументы, если в
7403 переписанном URI не было новых аргументов.
7404
7405 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
7406
7407
7408 Изменения в nginx 0.3.57 09.08.2006
7409
7410 *) Добавление: переменная $ssl_client_serial.
7411
7412 *) Исправление: в операторе "!-e" в директиве if.
7413 Спасибо Андриану Буданцову.
7414
7415 *) Исправление: при проверке клиентского сертификата nginx не передавал
7416 клиенту информацию о требуемых сертификатах.
7417
7418 *) Исправление: переменная $document_root не поддерживала переменные в
7419 директиве root.
7420
7421
7422 Изменения в nginx 0.3.56 04.08.2006
7423
7424 *) Добавление: директива dav_access.
7425
7426 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
7427 "!-e", "-x" и "!-x".
7428
7429 *) Исправление: при записи в access_log некоторых передаваемых клиенту
7430 строк заголовков происходил segmentation fault, если запрос возвращал
7431 редирект.
7432
7433
7434 Изменения в nginx 0.3.55 28.07.2006
7435
7436 *) Добавление: параметр stub в команде SSI include.
7437
7438 *) Добавление: команда SSI block.
7439
7440 *) Добавление: скрипт unicode2nginx добавлен в contrib.
7441
7442 *) Исправление: если root был задан только переменной, то корень
7443 задавался относительно префикса сервера.
7444
7445 *) Исправление: если в запросе был "//" или "/.", и после этого
7446 закодированные символы в виде "%XX", то проксируемый запрос
7447 передавался незакодированным.
7448
7449 *) Исправление: метод $r->header_in("Cookie") модуля
7450 ngx_http_perl_module теперь возвращает все строки "Cookie" в
7451 заголовке запроса.
7452
7453 *) Исправление: происходил segmentation fault, если использовался
7454 "client_body_in_file_only on" и делался переход к следующему бэкенду.
7455
7456 *) Исправление: при некоторых условиях во время переконфигурации коды
7457 символов внутри директивы charset_map могли считаться неверными;
7458 ошибка появилась в 0.3.50.
7459
7460
7461 Изменения в nginx 0.3.54 11.07.2006
7462
7463 *) Добавление: nginx теперь записывает в лог информацию о подзапросах.
7464
7465 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
7466 memcached_next_upstream поддерживают параметр off.
7467
7468 *) Добавление: директива debug_connection поддерживает запись адресов в
7469 формате CIDR.
7470
7471 *) Исправление: при перекодировании ответа проксированного сервера или
7472 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
7473 полностью.
7474
7475 *) Исправление: переменная $upstream_response_time содержала время
7476 только первого обращения к бэкенду.
7477
7478 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась
7479 в 0.3.53.
7480
7481
7482 Изменения в nginx 0.3.53 07.07.2006
7483
7484 *) Изменение: директива add_header добавляет строки в ответы с кодом
7485 204, 301 и 302.
7486
7487 *) Добавление: директива server в блоке upstream поддерживает параметр
7488 weight.
7489
7490 *) Добавление: директива server_name поддерживает маску "*".
7491
7492 *) Добавление: nginx поддерживает тело запроса больше 2G.
7493
7494 *) Исправление: если при использовании "satisfy_any on" клиент успешно
7495 проходил аутентификацию, в лог всё равно записалоcь сообщение "access
7496 forbidden by rule".
7497
7498 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
7499 409.
7500
7501 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
7502 ошибку, nginx продолжал проксирование.
7503
7504
7505 Изменения в nginx 0.3.52 03.07.2006
7506
7507 *) Изменение: восстановлено поведение модуля ngx_http_index_module для
7508 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
7509 ошибку 405.
7510
7511 *) Исправление: при использовании ограничения скорости рабочий процесс
7512 мог зациклиться; ошибка появилась в 0.3.37.
7513
7514 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
7515 "unknown charset", даже если перекодировка не требовалась; ошибка
7516 появилась в 0.3.50.
7517
7518 *) Исправление: если в результате запроса PUT возвращался код 409, то
7519 временный файл не удалялся.
7520
7521
7522 Изменения в nginx 0.3.51 30.06.2006
7523
7524 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
7525 ошибка появилась в 0.3.50.
7526
7527
7528 Изменения в nginx 0.3.50 28.06.2006
7529
7530 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
7531 переименованы соответственно в proxy_intercept_errors и
7532 fastcgi_intercept_errors.
7533
7534 *) Добавление: модуль ngx_http_charset_module поддерживает
7535 перекодирование из однобайтных кодировок в UTF-8 и обратно.
7536
7537 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7538 "X-Accel-Charset" в ответе бэкенда.
7539
7540 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
7541 только если также использовался символ "$".
7542
7543 *) Исправление: при некоторых условиях в SSI после вставки могла быть
7544 добавлена строка "<!--".
7545
7546 *) Исправление: если в заголовке ответа была строка "Content-Length: 0",
7547 то при использовании небуферизированного проксировании не закрывалось
7548 соединение с клиентом.
7549
7550
7551 Изменения в nginx 0.3.49 31.05.2006
7552
7553 *) Исправление: в директиве set.
7554
7555 *) Исправление: при включении в ssi двух и более подзапросов,
7556 обрабатываемых через FastCGI, вместо вывода второго и остальных
7557 подзапросов в ответ включался вывод первого подзапроса.
7558
7559
7560 Изменения в nginx 0.3.48 29.05.2006
7561
7562 *) Изменение: теперь модуль ngx_http_charset_module работает для
7563 подзапросов, в ответах которых нет строки заголовка "Content-Type".
7564
7565 *) Исправление: если в директиве proxy_pass не было URI, то директива
7566 "proxy_redirect default" добавляла в переписанный редирект в начало
7567 лишний слэш.
7568
7569 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
7570 GET, теперь это делается только для редиректов, выполняемых с помощью
7571 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
7572 0.3.42.
7573
7574 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был
7575 с поддержкой потоков; ошибка появилась в 0.3.46.
7576
7577
7578 Изменения в nginx 0.3.47 23.05.2006
7579
7580 *) Добавление: директива upstream.
7581
7582 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
7583 всегда убирается.
7584
7585
7586 Изменения в nginx 0.3.46 11.05.2006
7587
7588 *) Добавление: директивы proxy_hide_header, proxy_pass_header,
7589 fastcgi_hide_header и fastcgi_pass_header.
7590
7591 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
7592 proxy_pass_server упразднены.
7593
7594 *) Добавление: в режиме прокси поддерживается строка заголовка
7595 "X-Accel-Buffering" в ответе бэкенда.
7596
7597 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле
7598 ngx_http_perl_module.
7599
7600
7601 Изменения в nginx 0.3.45 06.05.2006
7602
7603 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и
7604 ssl_client_certificate.
7605
7606 *) Изменение: теперь переменная $request_method возвращает метод только
7607 основного запроса.
7608
7609 *) Изменение: в таблице перекодировки koi-win изменены коды символа
7610 &deg;.
7611
7612 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
7613 номера.
7614
7615 *) Исправление: если nginx распределял запросы на несколько машин, то
7616 при падении одной из них запросы, предназначенные для этой машины,
7617 перенаправлялись только на одну машину вместо того, чтобы равномерно
7618 распределяться между остальными.
7619
7620
7621 Изменения в nginx 0.3.44 04.05.2006
7622
7623 *) Добавление: параметр wait в команде SSI include.
7624
7625 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и
7626 белорусские символы.
7627
7628 *) Исправление: в SSI.
7629
7630
7631 Изменения в nginx 0.3.43 26.04.2006
7632
7633 *) Исправление: в SSI.
7634
7635
7636 Изменения в nginx 0.3.42 26.04.2006
7637
7638 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
7639
7640 *) Исправление: ошибки при использовании в директиве rewrite одного и
7641 того же выделения более одного раза.
7642
7643 *) Исправление: в лог не записывались переменные
7644 $sent_http_content_type, $sent_http_content_length,
7645 $sent_http_last_modified, $sent_http_connection,
7646 $sent_http_keep_alive и $sent_http_transfer_encoding.
7647
7648 *) Исправление: переменная $sent_http_cache_control возвращала
7649 содержимое только одной строки "Cache-Control" в заголовке ответа.
7650
7651
7652 Изменения в nginx 0.3.41 21.04.2006
7653
7654 *) Добавление: ключ -v.
7655
7656 *) Исправление: при включении в SSI удалённых подзапросов мог произойти
7657 segmentation fault.
7658
7659 *) Исправление: в обработке FastCGI.
7660
7661 *) Исправление: если путь к перловым модулям не был указан с помощью
7662 --with-perl_modules_path=PATH или директивы perl_modules, то на
7663 старте происходил segmentation fault.
7664
7665
7666 Изменения в nginx 0.3.40 19.04.2006
7667
7668 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
7669
7670 *) Добавление: директива create_full_put_path.
7671
7672 *) Добавление: переменная $limit_rate.
7673
7674
7675 Изменения в nginx 0.3.39 17.04.2006
7676
7677 *) Добавление: директива uninitialized_variable_warn; уровень
7678 логгирования сообщения о неинициализированной переменной понижен с
7679 уровня alert на warn.
7680
7681 *) Добавление: директива override_charset.
7682
7683 *) Изменение: при использовании неизвестной переменной в SSI-командах
7684 echo и if expr='$name' теперь не записывается в лог сообщение о
7685 неизвестной переменной.
7686
7687 *) Исправление: счётчик активных соединений рос при превышении лимита
7688 соединений, заданного директивой worker_connections; ошибка появилась
7689 в 0.2.0.
7690
7691 *) Исправление: при некоторых условия ограничение скорости соединения
7692 могло не работать; ошибка появилась в 0.3.38.
7693
7694
7695 Изменения в nginx 0.3.38 14.04.2006
7696
7697 *) Добавление: модуль ngx_http_dav_module.
7698
7699 *) Изменение: оптимизация модуля ngx_http_perl_module.
7700 Спасибо Сергею Скворцову.
7701
7702 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7703 $r->request_body_file.
7704
7705 *) Добавление: директива client_body_in_file_only.
7706
7707 *) Изменение: теперь при переполнении диска nginx пытается писать
7708 access_log'и только раз в секунду.
7709 Спасибо Антону Южанинову и Максиму Дунину.
7710
7711 *) Исправление: теперь директива limit_rate точнее ограничивает скорость
7712 при значениях больше 100 Kbyte/s.
7713 Спасибо ForJest.
7714
7715 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
7716 символы "\r" и "\n" в логине и пароле в закодированном виде.
7717 Спасибо Максиму Дунину.
7718
7719
7720 Изменения в nginx 0.3.37 07.04.2006
7721
7722 *) Добавление: директива limit_except.
7723
7724 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
7725 "!-f".
7726
7727 *) Добавление: модуль ngx_http_perl_module поддерживает метод
7728 $r->request_body.
7729
7730 *) Исправление: в модуле ngx_http_addition_filter_module.
7731
7732
7733 Изменения в nginx 0.3.36 05.04.2006
7734
7735 *) Добавление: модуль ngx_http_addition_filter_module.
7736
7737 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
7738 внутри блока if.
7739
7740 *) Добавление: директивы proxy_ignore_client_abort и
7741 fastcgi_ignore_client_abort.
7742
7743 *) Добавление: переменная $request_completion.
7744
7745 *) Добавление: модуль ngx_http_perl_module поддерживает методы
7746 $r->request_method и $r->remote_addr.
7747
7748 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
7749
7750 *) Исправление: строка "\/" в начале выражения команды if модуля
7751 ngx_http_ssi_module воспринималась неверно.
7752
7753 *) Исправление: в использовании регулярных выражениях в команде if
7754 модуля ngx_http_ssi_module.
7755
7756 *) Исправление: при задании относительного пути в директивах
7757 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
7758 perl_modules использовался каталог относительно текущего каталога, а
7759 не относительно префикса сервера.
7760
7761
7762 Изменения в nginx 0.3.35 22.03.2006
7763
7764 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
7765 для первой директивы listen; ошибка появилась в 0.3.31.
7766
7767 *) Исправление: в директиве proxy_pass без URI при использовании в
7768 подзапросе.
7769
7770
7771 Изменения в nginx 0.3.34 21.03.2006
7772
7773 *) Добавление: директива add_header поддерживает переменные.
7774
7775
7776 Изменения в nginx 0.3.33 15.03.2006
7777
7778 *) Добавление: параметр http_503 в директивах proxy_next_upstream или
7779 fastcgi_next_upstream.
7780
7781 *) Исправление: ngx_http_perl_module не работал со встроенным в
7782 конфигурационный файл кодом, если он не начинался сразу же с "sub".
7783
7784 *) Исправление: в директиве post_action.
7785
7786
7787 Изменения в nginx 0.3.32 11.03.2006
7788
7789 *) Исправление: удаление отладочного логгирования на старте и при
7790 переконфигурации; ошибка появилась в 0.3.31.
7791
7792
7793 Изменения в nginx 0.3.31 10.03.2006
7794
7795 *) Изменение: теперь nginx передаёт неверные ответы проксированного
7796 бэкенда.
7797
7798 *) Добавление: директивы listen поддерживают адрес в виде "*:порт".
7799
7800 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
7801
7802 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
7803 64-битном ядре MacOSX.
7804 Спасибо Андрею Нигматулину.
7805
7806 *) Исправление: если внутри одного сервера описаны несколько директив
7807 listen, слушающих на разных адресах, то имена серверов вида
7808 "*.domain.tld" работали только для первого адреса; ошибка появилась в
7809 0.3.18.
7810
7811 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7812 не передавались запросы с телом, записанным во временный файл.
7813
7814 *) Исправление: совместимость с perl 5.8.8.
7815
7816
7817 Изменения в nginx 0.3.30 22.02.2006
7818
7819 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
7820 с уровня crit.
7821
7822 *) Исправление: модуль ngx_http_perl_module не собирался без модуля
7823 ngx_http_ssi_filter_module.
7824
7825 *) Исправление: nginx не собирался на i386 платформе, если использовался
7826 PIC; ошибка появилась в 0.3.27.
7827
7828
7829 Изменения в nginx 0.3.29 20.02.2006
7830
7831 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
7832 FastCGI передаёт большое количество предупреждений перед ответом.
7833
7834 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
7835 строка заголовка "Transfer-Encoding: chunked".
7836
7837 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
7838 передавал полные строки заголовка ответа в отдельных FastCGI записях.
7839
7840 *) Исправление: если в директиве post_action был указан проксируемый
7841 URI, то он выполнялся только после успешного завершения запроса.
7842
7843
7844 Изменения в nginx 0.3.28 16.02.2006
7845
7846 *) Добавление: директива restrict_host_names упразднена.
7847
7848 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
7849
7850 *) Исправление: при некоторых условиях проксированное соединение с
7851 клиентом завершалось преждевременно.
7852 Спасибо Владимиру Шутову.
7853
7854 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
7855 запросов, перенаправленных с помощью строки "X-Accel-Redirect".
7856
7857 *) Исправление: директива post_action работала только после успешного
7858 завершения запроса.
7859
7860 *) Исправление: тело проксированного ответа, создаваемого директивой
7861 post_action, передавалось клиенту.
7862
7863
7864 Изменения в nginx 0.3.27 08.02.2006
7865
7866 *) Изменение: директивы variables_hash_max_size и
7867 variables_hash_bucket_size.
7868
7869 *) Добавление: переменная $body_bytes_sent доступна не только в
7870 директиве log_format.
7871
7872 *) Добавление: переменные $ssl_protocol и $ssl_cipher.
7873
7874 *) Добавление: определение размера строки кэша распространённых
7875 процессоров при старте.
7876
7877 *) Добавление: директива accept_mutex теперь поддерживается посредством
7878 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
7879
7880 *) Добавление: директива lock_file и параметр автоконфигурации
7881 --with-lock-path=PATH.
7882
7883 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7884 не передавались запросы с телом.
7885
7886
7887 Изменения в nginx 0.3.26 03.02.2006
7888
7889 *) Изменение: директива optimize_host_names переименована в
7890 optimize_server_names.
7891
7892 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался
7893 URI основного запроса, если в директиве proxy_pass отсутствовал URI.
7894
7895
7896 Изменения в nginx 0.3.25 01.02.2006
7897
7898 *) Исправление: при неверной конфигурации на старте или во время
7899 переконфигурации происходил segmentation fault; ошибка появилась в
7900 0.3.24.
7901
7902
7903 Изменения в nginx 0.3.24 01.02.2006
7904
7905 *) Изменение: обход ошибки в kqueue во FreeBSD.
7906
7907 *) Исправление: ответ, создаваемый директивой post_action, теперь не
7908 передаётся клиенту.
7909
7910 *) Исправление: при использовании большого количества лог-файлов
7911 происходила утечка памяти.
7912
7913 *) Исправление: внутри одного location работала только первая директива
7914 proxy_redirect.
7915
7916 *) Исправление: на 64-битных платформах при старте мог произойти
7917 segmentation fault, если использовалось большое количество имён в
7918 директивах server_name; ошибка появилась в 0.3.18.
7919
7920
7921 Изменения в nginx 0.3.23 24.01.2006
7922
7923 *) Добавление: директива optimize_host_names.
7924
7925 *) Исправление: ошибки при использовании переменных в директивах path и
7926 alias.
7927
7928 *) Исправление: модуль ngx_http_perl_module неправильно собирался на
7929 Linux и Solaris.
7930
7931
7932 Изменения в nginx 0.3.22 17.01.2006
7933
7934 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
7935 и $r->unescape.
7936
7937 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module
7938 упразднён.
7939
7940 *) Исправление: если в директиве valid_referers указаны только none или
7941 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
7942
7943
7944 Изменения в nginx 0.3.21 16.01.2006
7945
7946 *) Добавление: модуль ngx_http_perl_module.
7947
7948 *) Изменение: директива valid_referers разрешает использовать рефереры
7949 совсем без URI.
7950
7951
7952 Изменения в nginx 0.3.20 11.01.2006
7953
7954 *) Исправление: ошибки в обработке SSI.
7955
7956 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
7957 виде /uri?args.
7958
7959
7960 Изменения в nginx 0.3.19 28.12.2005
7961
7962 *) Добавление: директивы path и alias поддерживают переменные.
7963
7964 *) Изменение: теперь директива valid_referers опять учитывает URI.
7965
7966 *) Исправление: ошибки в обработке SSI.
7967
7968
7969 Изменения в nginx 0.3.18 26.12.2005
7970
7971 *) Добавление: директива server_names поддерживает имена вида
7972 ".domain.tld".
7973
7974 *) Добавление: директива server_names использует хэш для имён вида
7975 "*.domain.tld" и более эффективный хэш для обычных имён.
7976
7977 *) Изменение: директивы server_names_hash_max_size и
7978 server_names_hash_bucket_size.
7979
7980 *) Изменение: директивы server_names_hash и server_names_hash_threshold
7981 упразднены.
7982
7983 *) Добавление: директива valid_referers использует хэш для имён сайтов.
7984
7985 *) Изменение: теперь директива valid_referers проверяет только имена
7986 сайтов без учёта URI.
7987
7988 *) Исправление: некоторые имена вида ".domain.tld" неверно
7989 обрабатывались модулем ngx_http_map_module.
7990
7991 *) Исправление: если конфигурационного файла не было, то происходил
7992 segmentation fault; ошибка появилась в 0.3.12.
7993
7994 *) Исправление: на 64-битных платформах при старте мог произойти
7995 segmentation fault; ошибка появилась в 0.3.16.
7996
7997
7998 Изменения в nginx 0.3.17 18.12.2005
7999
8000 *) Изменение: на Linux configure теперь проверяет наличие epoll и
8001 sendfile64() в ядре.
8002
8003 *) Добавление: директива map поддерживает доменные имена в формате
8004 ".domain.tld".
8005
8006 *) Исправление: во время SSL handshake не иcпользовались таймауты;
8007 ошибка появилась в 0.2.4.
8008
8009 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
8010
8011 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass
8012 по умолчанию использовался порт 80.
8013
8014
8015 Изменения в nginx 0.3.16 16.12.2005
8016
8017 *) Добавление: модуль ngx_http_map_module.
8018
8019 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
8020
8021 *) Добавление: директива ssi_value_length.
8022
8023 *) Добавление: директива worker_rlimit_core.
8024
8025 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
8026 Pentium 4 номер соединения в логах всегда был равен 1.
8027
8028 *) Исправление: команда config timefmt в SSI задавала неверный формат
8029 времени.
8030
8031 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
8032 использовании SSL соединений; ошибка появилась в 0.3.13.
8033 Спасибо Rob Mueller.
8034
8035 *) Исправление: segmentation fault мог произойти во время SSL shutdown;
8036 ошибка появилась в 0.3.13.
8037
8038
8039 Изменения в nginx 0.3.15 07.12.2005
8040
8041 *) Добавление: новой код 444 в директиве return для закрытия соединения.
8042
8043 *) Добавление: директива so_keepalive в IMAP/POP3 прокси.
8044
8045 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
8046 соединений только при плавном выходе и включённой директиве
8047 debug_points.
8048
8049
8050 Изменения в nginx 0.3.14 05.12.2005
8051
8052 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
8053 в 0.3.13.
8054
8055
8056 Изменения в nginx 0.3.13 05.12.2005
8057
8058 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
8059
8060 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
8061 /dev/poll.
8062
8063 *) Исправление: ошибки в обработке SSI.
8064
8065 *) Исправление: sendfilev() в Solaris теперь не используется при
8066 передаче тела запроса FastCGI-серверу через unix domain сокет.
8067
8068 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
8069 появилась в 0.3.11.
8070
8071
8072 Изменения в nginx 0.3.12 26.11.2005
8073
8074 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
8075 то при использовании директивы "satisfy_any on" директивы доступа и
8076 аутентификации не работали. Модуль ngx_http_realip_module не
8077 собирался и не собирается по умолчанию.
8078
8079 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
8080
8081 *) Изменение: директивы proxy_header_buffer_size и
8082 fastcgi_header_buffer_size переименованы соответственно в
8083 proxy_buffer_size и fastcgi_buffer_size.
8084
8085 *) Добавление: модуль ngx_http_memcached_module.
8086
8087 *) Добавление: директива proxy_buffering.
8088
8089 *) Исправление: изменение в работе с accept mutex при использовании
8090 метода rtsig; ошибка появилась в 0.3.0.
8091
8092 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
8093 в заголовке запроса, то nginx теперь выдаёт ошибку 411.
8094
8095 *) Исправление: при наследовании директивы auth_basic с уровня http в
8096 строке "WWW-Authenticate" заголовка ответа выводился realm без текста
8097 "Basic realm".
8098
8099 *) Исправление: если в директиве access_log был явно указан формат
8100 combined, то в лог записывались пустые строки; ошибка появилась в
8101 0.3.8.
8102
8103 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
8104 Solaris.
8105
8106 *) Исправление: в директиве if теперь не нужно разделять пробелом строку
8107 в кавычках и закрывающую скобку.
8108
8109
8110 Изменения в nginx 0.3.11 15.11.2005
8111
8112 *) Исправление: nginx не передавал при проксировании тело запроса и
8113 строки заголовка клиента; ошибка появилась в 0.3.10.
8114
8115
8116 Изменения в nginx 0.3.10 15.11.2005
8117
8118 *) Изменение: директива valid_referers и переменная $invalid_referer
8119 перенесены из модуля ngx_http_rewrite_module в новый модуль
8120 ngx_http_referer_module.
8121
8122 *) Изменение: имя переменной "$apache_bytes_sent" изменено на
8123 "$body_bytes_sent".
8124
8125 *) Добавление: переменные "$sent_http_...".
8126
8127 *) Добавление: директива if поддерживает операции "=" и "!=".
8128
8129 *) Добавление: директива proxy_pass поддерживает протокол HTTPS.
8130
8131 *) Добавление: директива proxy_set_body.
8132
8133 *) Добавление: директива post_action.
8134
8135 *) Добавление: модуль ngx_http_empty_gif_module.
8136
8137 *) Добавление: директива worker_cpu_affinity для Linux.
8138
8139 *) Исправление: директива rewrite не раскодировала символы в редиректах
8140 в URI, теперь символы раскодируются, кроме символов %00-%25 и
8141 %7F-%FF.
8142
8143 *) Исправление: nginx не собирался компилятором icc 9.0.
8144
8145 *) Исправление: если для статического файла нулевого размера был
8146 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
8147
8148
8149 Изменения в nginx 0.3.9 10.11.2005
8150
8151 *) Исправление: nginx считал небезопасными URI, в которых между двумя
8152 слэшами находилось два любых символа; ошибка появилась в 0.3.8.
8153
8154
8155 Изменения в nginx 0.3.8 09.11.2005
8156
8157 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
8158 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
8159 наличие путей "/../" и нулей.
8160
8161 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в
8162 строке "Authorization" в заголовке запроса.
8163
8164 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
8165 и ngx_imap_ssl_module.
8166
8167 *) Добавление: директива auth_http_header модуля
8168 ngx_imap_auth_http_module.
8169
8170 *) Добавление: директива add_header.
8171
8172 *) Добавление: модуль ngx_http_realip_module.
8173
8174 *) Добавление: новые переменные для использования в директиве
8175 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
8176 $uri, $request_time, $request_length, $upstream_status,
8177 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
8178 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут
8179 упразднены.
8180
8181 *) Изменение: в директиве "if" ложными значениями переменных теперь
8182 являются пустая строка "" и строки, начинающиеся на "0".
8183
8184 *) Исправление: при работает с проксированными или FastCGI-серверами
8185 nginx мог оставлять открытыми соединения и временные файлы с
8186 запросами клиентов.
8187
8188 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при
8189 плавном выходе.
8190
8191 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем
8192 запрос проксировался в location, заданном регулярным выражением, то
8193 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
8194
8195 *) Исправление: директива expires не удаляла уже установленную строку
8196 заголовка "Expires".
8197
8198 *) Исправление: при использовании метода rtsig и нескольких рабочих
8199 процессах nginx мог перестать принимать запросы.
8200
8201 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и
8202 "\'".
8203
8204 *) Исправление: если ответ заканчивался сразу же после SSI команды, то
8205 при использовании сжатия ответ передавался не до конца или не
8206 передавался вообще.
8207
8208
8209 Изменения в nginx 0.3.7 27.10.2005
8210
8211 *) Добавление: директива access_log поддерживает параметр buffer=.
8212
8213 *) Исправление: nginx не собирался на платформах, отличных от i386,
8214 amd64, sparc и ppc; ошибка появилась в 0.3.2.
8215
8216
8217 Изменения в nginx 0.3.6 24.10.2005
8218
8219 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
8220 пустой логин.
8221
8222 *) Добавление: директива log_format поддерживает переменные в виде
8223 $name.
8224
8225 *) Исправление: если хотя бы в одном сервере не было описано ни одной
8226 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
8227 0.3.3.
8228
8229 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
8230 использовался порт 80.
8231
8232
8233 Изменения в nginx 0.3.5 21.10.2005
8234
8235 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
8236 мог произойти segmentation fault; ошибка появилась в 0.2.2.
8237
8238 *) Исправление: accept mutex не работал, все соединения обрабатывались
8239 одним рабочим процессом; ошибка появилась в 0.3.3.
8240
8241 *) Исправление: при использовании метода rtsig и директивы
8242 timer_resolution не работали таймауты.
8243
8244
8245 Изменения в nginx 0.3.4 19.10.2005
8246
8247 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
8248 появилась в 0.3.3.
8249
8250
8251 Изменения в nginx 0.3.3 19.10.2005
8252
8253 *) Изменение: параметры "bl" и "af" директивы listen переименованы в
8254 "backlog" и "accept_filter".
8255
8256 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
8257
8258 *) Изменение: параметр лога $msec теперь не требует дополнительного
8259 системного вызова gettimeofday().
8260
8261 *) Добавление: ключ -t теперь проверяет директивы listen.
8262
8263 *) Исправление: если в директиве listen был указан неверный адрес, то
8264 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
8265
8266 *) Исправление: для индексных файлов, содержащих в имени переменную, мог
8267 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
8268
8269 *) Добавление: директива timer_resolution.
8270
8271 *) Добавление: параметр лога $upstream_response_time в миллисекундах.
8272
8273 *) Исправление: временный файл с телом запроса клиента теперь удаляется
8274 сразу после того, как клиенту передан заголовок ответа.
8275
8276 *) Исправление: совместимость с OpenSSL 0.9.6.
8277
8278 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
8279 относительными.
8280
8281 *) Исправление: директива ssl_prefer_server_ciphers не работала для
8282 модуля ngx_imap_ssl_module.
8283
8284 *) Исправление: директива ssl_protocols позволяла задать только один
8285 протокол.
8286
8287
8288 Изменения в nginx 0.3.2 12.10.2005
8289
8290 *) Добавление: поддержка Sun Studio 10 C compiler.
8291
8292 *) Добавление: директивы proxy_upstream_max_fails,
8293 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
8294 fastcgi_upstream_fail_timeout.
8295
8296
8297 Изменения в nginx 0.3.1 10.10.2005
8298
8299 *) Исправление: во время переполнения очереди сигналов при использовании
8300 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
8301
8302 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
8303
8304
8305 Изменения в nginx 0.3.0 07.10.2005
8306
8307 *) Изменение: убрано десятидневное ограничение времени работы рабочего
8308 процесса. Ограничение было введено из-за переполнения миллисекундных
8309 таймеров.
8310
8311
8312 Изменения в nginx 0.2.6 05.10.2005
8313
8314 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
8315 бэкенду при использовании распределения нагрузки.
8316
8317 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
8318 запрос теперь передаётся, если в директиве proxy_pass отсутствует
8319 URI.
8320
8321 *) Добавление: директива error_page поддерживает редиректы и позволяет
8322 более гибко менять код ошибки.
8323
8324 *) Изменение: в проксированных подзапросах теперь игнорируется
8325 переданный charset.
8326
8327 *) Исправление: если после изменения URI в блоке if для запроса не
8328 находилась новая конфигурация, то правила модуля
8329 ngx_http_rewrite_module выполнялись снова.
8330
8331 *) Исправление: если директива set устанавливала переменную модуля
8332 ngx_http_geo_module в какой-либо части конфигурации, то эта
8333 переменная не была доступна в других частях конфигурации и выдавалась
8334 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
8335
8336
8337 Изменения в nginx 0.2.5 04.10.2005
8338
8339 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
8340 теперь выдаёт предупреждение и изменяет старое значение.
8341
8342 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
8343
8344 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
8345 команде include.
8346
8347 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
8348 значений переменных в выражениях команды if.
8349
8350
8351 Изменения в nginx 0.2.4 03.10.2005
8352
8353 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения
8354 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
8355 if.
8356
8357 *) Исправление: ошибки при проксировании location без слэша в конце;
8358 ошибка появилась в 0.1.44.
8359
8360 *) Исправление: при использовании метода rtsig мог произойти
8361 segmentation fault; ошибка появилась в 0.2.0.
8362
8363
8364 Изменения в nginx 0.2.3 30.09.2005
8365
8366 *) Исправление: nginx не собирался без параметра --with-debug; ошибка
8367 появилась в 0.2.2.
8368
8369
8370 Изменения в nginx 0.2.2 30.09.2005
8371
8372 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
8373
8374 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять
8375 директивой set.
8376
8377 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
8378 модулей ngx_http_ssl_module и ngx_imap_ssl_module.
8379
8380 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8381 длинных имён файлов;
8382
8383 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает
8384 файлы, начинающиеся на точку.
8385
8386 *) Исправление: если SSL handshake завершался с ошибкой, то это могло
8387 привести также к закрытию другого соединения.
8388 Спасибо Rob Mueller.
8389
8390 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по
8391 HTTPS.
8392
8393
8394 Изменения в nginx 0.2.1 23.09.2005
8395
8396 *) Исправление: если все бэкенды, используемые для балансировки
8397 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8398 nginx мог зациклится; ошибка появилась в 0.2.0.
8399
8400
8401 Изменения в nginx 0.2.0 23.09.2005
8402
8403 *) Изменились имена pid-файлов, используемые во время обновления
8404 исполняемого файла. Ручное переименование теперь не нужно. Старый
8405 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
8406 запускает новый исполняемый файл. Новый основной процесс создаёт
8407 обычный pid-файл без суффикса ".newbin". Если новый основной процесс
8408 выходит, то старый процесс переименовывает свой pid-файл c суффиксом
8409 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
8410 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
8411 0.2.0 - используют pid-файл без суффиксов.
8412
8413 *) Изменение: директива worker_connections, новое название директивы
8414 connections; директива теперь задаёт максимальное число соединений, а
8415 не максимально возможный номер дескриптора для сокета.
8416
8417 *) Добавление: SSL поддерживает кэширование сессий в пределах одного
8418 рабочего процесса.
8419
8420 *) Добавление: директива satisfy_any.
8421
8422 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
8423 не работают для подзапросов.
8424
8425 *) Добавление: директивы worker_rlimit_nofile и
8426 worker_rlimit_sigpending.
8427
8428 *) Исправление: если все бэкенды, используемые для балансировки
8429 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8430 nginx не обращался к ним в течение 60 секунд.
8431
8432 *) Исправление: в парсинге аргументов IMAP/POP3 команд.
8433 Спасибо Rob Mueller.
8434
8435 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
8436
8437 *) Исправление: ошибки при использовании SSI и сжатия.
8438
8439 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа
8440 "Expires" и "Cache-Control".
8441 Спасибо Александру Кукушкину.
8442
8443
8444 Изменения в nginx 0.1.45 08.09.2005
8445
8446 *) Изменение: директива ssl_engine упразднена в модуле
8447 ngx_http_ssl_module и перенесена на глобальный уровень.
8448
8449 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не
8450 передавались через SSL соединение.
8451
8452 *) Разные исправления в IMAP/POP3 прокси.
8453
8454
8455 Изменения в nginx 0.1.44 06.09.2005
8456
8457 *) Добавление: IMAP/POP3 прокси поддерживает SSL.
8458
8459 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
8460
8461 *) Добавление: директива userid_mark.
8462
8463 *) Добавление: значение переменной $remote_user определяется независимо
8464 от того, используется ли авторизация или нет.
8465
8466
8467 Изменения в nginx 0.1.43 30.08.2005
8468
8469 *) Добавление: listen(2) backlog в директиве listen можно менять по
8470 сигналу -HUP.
8471
8472 *) Добавление: скрипт geo2nginx.pl добавлен в contrib.
8473
8474 *) Изменение: параметры FastCGI с пустым значениями теперь передаются
8475 серверу.
8476
8477 *) Исправление: если в ответе проксированного сервера или FastCGI
8478 сервера была строка "Cache-Control", то при использовании директивы
8479 expires происходил segmentation fault или рабочий процесс мог
8480 зациклится; в режиме прокси ошибка появилась в 0.1.29.
8481
8482
8483 Изменения в nginx 0.1.42 23.08.2005
8484
8485 *) Исправление: если URI запроса получался нулевой длины после обработки
8486 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
8487 происходил segmentation fault или bus error.
8488
8489 *) Исправление: директива limit_rate не работала внутри блока if; ошибка
8490 появилась в 0.1.38.
8491
8492
8493 Изменения в nginx 0.1.41 25.07.2005
8494
8495 *) Исправление: если переменная использовалась в файле конфигурации, то
8496 она не могла использоваться в SSI.
8497
8498
8499 Изменения в nginx 0.1.40 22.07.2005
8500
8501 *) Исправление: если клиент слал очень длинную строку заголовка, то в
8502 логе не помещалась информация, связанная с этим запросом.
8503
8504 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
8505 строка "Set-Cookie"; ошибка появилась в 0.1.39.
8506
8507 *) Исправление: при использовании "X-Accel-Redirect" не передавалась
8508 строка "Content-Disposition".
8509
8510 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
8511 на которых он слушал.
8512
8513 *) Исправление: после обновления исполняемого файла на лету на Linux и
8514 Solaris название процесса в команде ps становилось короче.
8515
8516
8517 Изменения в nginx 0.1.39 14.07.2005
8518
8519 *) Изменения в модуле ngx_http_charset_module: директива default_charset
8520 упразднена; директива charset задаёт кодировку ответа; директива
8521 source_charset задаёт только исходную кодировку.
8522
8523 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
8524 не передавалась строка заголовка "WWW-Authenticate".
8525
8526 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
8527 могли закрыть соединение до того, как что-нибудь было передано
8528 клиенту; ошибка появилась в 0.1.38.
8529
8530 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
8531
8532 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
8533 URI в команде include virtual.
8534
8535 *) Исправление: если в строке заголовка ответа бэкенда была строка
8536 "Location", которую nginx не должен был изменять, то в ответе
8537 передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
8538
8539 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и
8540 ngx_http_fastcgi_module не наследовались с уровня server на уровень
8541 location; ошибка появилась в 0.1.29.
8542
8543 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
8544 сертификатов.
8545
8546 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8547 длинных имён файлов; ошибка появилась в 0.1.38.
8548
8549 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
8550 стадии login.
8551
8552
8553 Изменения в nginx 0.1.38 08.07.2005
8554
8555 *) Добавление: директива limit_rate поддерживается в режиме прокси и
8556 FastCGI.
8557
8558 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8559 "X-Accel-Limit-Rate" в ответе бэкенда.
8560
8561 *) Добавление: директива break.
8562
8563 *) Добавление: директива log_not_found.
8564
8565 *) Исправление: при перенаправлении запроса с помощью строки заголовка
8566 "X-Accel-Redirect" не изменялся код ответа.
8567
8568 *) Исправление: переменные, установленные директивой set не могли
8569 использоваться в SSI.
8570
8571 *) Исправление: при включении в SSI более одного удалённого подзапроса
8572 мог произойти segmentation fault.
8573
8574 *) Исправление: если статусная строка в ответе бэкенда передавалась в
8575 двух пакетах, то nginx считал ответ неверным; ошибка появилась в
8576 0.1.29.
8577
8578 *) Добавление: директива ssi_types.
8579
8580 *) Добавление: директива autoindex_exact_size.
8581
8582 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
8583 имена файлов в UTF-8.
8584
8585 *) Добавление: IMAP/POP3 прокси.
8586
8587
8588 Изменения в nginx 0.1.37 23.06.2005
8589
8590 *) Изменение: в конце файла nginx.pid теперь добавляется "\n".
8591
8592 *) Исправление: при включении большого количества вставок или нескольких
8593 больших вставок с помощью SSI ответ мог передаваться не полностью.
8594
8595 *) Исправление: если все бэкенды возвращали ответ 404, то при
8596 использовании параметра http_404 в директивах proxy_next_upstream или
8597 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
8598
8599
8600 Изменения в nginx 0.1.36 15.06.2005
8601
8602 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host",
8603 "Connection", "Content-Length" и "Authorization", то nginx теперь
8604 выдаёт ошибку 400.
8605
8606 *) Изменение: директива post_accept_timeout упразднена.
8607
8608 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве
8609 listen.
8610
8611 *) Добавление: поддержка accept фильтров во FreeBSD.
8612
8613 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
8614
8615 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
8616 файлов в UTF-8.
8617
8618 *) Исправление: после добавления новый лог-файл ротация этого лога по
8619 сигналу -USR1 выполнялась, только если переконфигурировать nginx два
8620 раза по сигналу -HUP.
8621
8622
8623 Изменения в nginx 0.1.35 07.06.2005
8624
8625 *) Добавление: директива working_directory.
8626
8627 *) Добавление: директива port_in_redirect.
8628
8629 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
8630 то происходил segmentation fault; ошибка появилась в 0.1.29.
8631
8632 *) Исправление: если было сконфигурировано более 10 серверов или в
8633 сервере не описана директива "listen", то при запуске мог произойти
8634 segmentation fault.
8635
8636 *) Исправление: если ответ не помещался во временный файл, то мог
8637 произойти segmentation fault.
8638
8639 *) Исправление: nginx возвращал ошибку 400 на запросы вида
8640 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
8641
8642
8643 Изменения в nginx 0.1.34 26.05.2005
8644
8645 *) Исправление: при включении больших ответов с помощью SSI рабочий
8646 процесс мог зациклиться.
8647
8648 *) Исправление: переменные, устанавливаемые директивой "set", не были
8649 доступны в SSI.
8650
8651 *) Добавление: директива autoindex_localtime.
8652
8653 *) Исправление: пустое значение в директиве proxy_set_header запрещает
8654 передачу заголовка.
8655
8656
8657 Изменения в nginx 0.1.33 23.05.2005
8658
8659 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка
8660 появилась в 0.1.29.
8661
8662 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
8663 вызывали bus fault при запуске.
8664
8665 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол
8666 HTTP.
8667
8668 *) Исправление: если директива rewrite использовала выделения внутри
8669 директивы if, то возвращалась ошибка 500.
8670
8671
8672 Изменения в nginx 0.1.32 19.05.2005
8673
8674 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
8675 передавались аргументы; ошибка появилась в 0.1.29.
8676
8677 *) Добавление: директива if поддерживает выделения в регулярных
8678 выражениях.
8679
8680 *) Добавление: директива set поддерживает переменные и выделения из
8681 регулярных выражений.
8682
8683 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
8684 "X-Accel-Redirect" в ответе бэкенда.
8685
8686
8687 Изменения в nginx 0.1.31 16.05.2005
8688
8689 *) Исправление: при использовании SSL ответ мог передаваться не до
8690 конца.
8691
8692 *) Исправление: ошибки при обработке SSI в ответе, полученного от
8693 FastCGI-сервера.
8694
8695 *) Исправление: ошибки при использовании SSI и сжатия.
8696
8697 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
8698 появилась в 0.1.30.
8699
8700
8701 Изменения в nginx 0.1.30 14.05.2005
8702
8703 *) Исправление: при использовании SSI рабочий процесс мог зациклиться.
8704
8705 *) Исправление: при использовании SSL ответ мог передаваться не до
8706 конца.
8707
8708 *) Исправление: если длина части ответа, полученного за один раз от
8709 проксируемого или FastCGI сервера была равна 500 байт, то nginx
8710 возвращал код ответа 500; в режиме прокси ошибка появилась только в
8711 0.1.29.
8712
8713 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
8714 параметрами.
8715
8716 *) Добавление: директива return может возвращать код ответа 204.
8717
8718 *) Добавление: директива ignore_invalid_headers.
8719
8720
8721 Изменения в nginx 0.1.29 12.05.2005
8722
8723 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include
8724 virtual.
8725
8726 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
8727 вида 'if expr="$NAME"' и команды else и endif. Допускается только
8728 один уровень вложенности.
8729
8730 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
8731 DATE_LOCAL и DATE_GMT и команду config timefmt.
8732
8733 *) Добавление: директива ssi_ignore_recycled_buffers.
8734
8735 *) Исправление: если переменная QUERY_STRING не была определена, то в
8736 команде echo не ставилось значение по умолчанию.
8737
8738 *) Изменение: модуль ngx_http_proxy_module полностью переписан.
8739
8740 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
8741 proxy_pass_request_body и proxy_method.
8742
8743 *) Добавление: директива proxy_set_header. Директива proxy_x_var
8744 упразднена и должна быть заменена директивой proxy_set_header.
8745
8746 *) Изменение: директива proxy_preserve_host упразднена и должна быть
8747 заменена директивами "proxy_set_header Host $host" и "proxy_redirect
8748 off" или директивой "proxy_set_header Host $host:$proxy_port" и
8749 соответствующими ей директивами proxy_redirect.
8750
8751 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
8752 заменена директивой "proxy_set_header X-Real-IP $remote_addr".
8753
8754 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
8755 быть заменена директивой
8756 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
8757
8758 *) Изменение: директива proxy_set_x_url упразднена и должна быть
8759 заменена директивой
8760 "proxy_set_header X-URL http://$host:$server_port$request_uri".
8761
8762 *) Добавление: директива fastcgi_param.
8763
8764 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
8765 упразднены и должны быть замены директивами fastcgi_param.
8766
8767 *) Добавление: директива index может использовать переменные.
8768
8769 *) Добавление: директива index может быть указана на уровне http и
8770 server.
8771
8772 *) Изменение: только последний параметр в директиве index может быть
8773 абсолютным.
8774
8775 *) Добавление: в директиве rewrite могут использоваться переменные.
8776
8777 *) Добавление: директива internal.
8778
8779 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
8780 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
8781 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
8782
8783 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
8784 клиента и ответа бэкенда.
8785
8786 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был
8787 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
8788
8789 *) Исправление: если бэкенд передавал неверную строку в заголовке
8790 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
8791
8792 *) Исправление: при использовании отказоустойчивой конфигурации в
8793 FastCGI мог происходить segmentation fault.
8794
8795 *) Исправление: директива expires не удаляла уже установленные строки
8796 заголовка "Expires" и "Cache-Control".
8797
8798 *) Исправление: nginx не учитывал завершающую точку в строке заголовка
8799 запроса "Host".
8800
8801 *) Исправление: модуль ngx_http_auth_module не работал на Linux.
8802
8803 *) Исправление: директива rewrite неверно работала, если в запросе
8804 присутствовали аргументы.
8805
8806 *) Исправление: nginx не собирался на MacOS X.
8807
8808
8809 Изменения в nginx 0.1.28 08.04.2005
8810
8811 *) Исправление: при проксировании больших файлов nginx сильно нагружал
8812 процессор.
8813
8814 *) Исправление: nginx не собирался gcc 4.0 на Linux.
8815
8816
8817 Изменения в nginx 0.1.27 28.03.2005
8818
8819 *) Добавление: параметр blocked в директиве valid_referers.
8820
8821 *) Изменение: ошибки обработки заголовка запроса теперь записываются на
8822 уровне info, в лог также записывается имя сервера и строки заголовка
8823 запроса "Host" и "Referer".
8824
8825 *) Изменение: при записи ошибок в лог записывается также строка
8826 заголовка запроса "Host".
8827
8828 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
8829 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
8830
8831 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
8832 параметр конфигурации --without-ngx_http_auth_basic_module.
8833
8834
8835 Изменения в nginx 0.1.26 22.03.2005
8836
8837 *) Изменение: неверные строки заголовка, переданные клиентом, теперь
8838 игнорируется и записываются в error_log на уровне info.
8839
8840 *) Изменение: при записи ошибок в лог записывается также имя сервера,
8841 при обращении к которому произошла ошибка.
8842
8843 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
8844 и auth_basic_user_file.
8845
8846
8847 Изменения в nginx 0.1.25 19.03.2005
8848
8849 *) Исправление: nginx не работал на Linux parisc.
8850
8851 *) Добавление: nginx теперь не запускается под FreeBSD, если значение
8852 sysctl kern.ipc.somaxconn слишком большое.
8853
8854 *) Исправление: если модуль ngx_http_index_module делал внутреннее
8855 перенаправление запроса в модули ngx_http_proxy_module или
8856 ngx_http_fastcgi_module, то файл индекса не закрывался после
8857 обслуживания запроса.
8858
8859 *) Добавление: директива proxy_pass может использоваться в location,
8860 заданных регулярным выражением.
8861
8862 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
8863 условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
8864
8865 *) Исправление: nginx очень медленно запускался при большом количестве
8866 адресов и использовании текстовых значений в директиве geo.
8867
8868 *) Изменение: имя переменной в директиве geo нужно указывать, как $name.
8869 Прежний вариант без "$" пока работает, но вскоре будет убран.
8870
8871 *) Добавление: параметр лога "%{VARIABLE}v".
8872
8873 *) Добавление: директива "set $name value".
8874
8875 *) Исправление: совместимость с gcc 4.0.
8876
8877 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
8878
8879
8880 Изменения в nginx 0.1.24 04.03.2005
8881
8882 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
8883 QUERY_STRING и DOCUMENT_URI.
8884
8885 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
8886 на существующий каталог, если этот каталог был указан как alias.
8887
8888 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
8889 при больших ответах.
8890
8891 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось
8892 правильным referrer'ом.
8893
8894
8895 Изменения в nginx 0.1.23 01.03.2005
8896
8897 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
8898 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
8899 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
8900
8901 *) Добавление: параметр лога %request_time.
8902
8903 *) Добавление: если запрос пришёл без строки заголовка "Host", то
8904 директива proxy_preserve_host устанавливает в качестве этого
8905 заголовка первое имя сервера из директивы server_name.
8906
8907 *) Исправление: nginx не собирался на платформах, отличных от i386,
8908 amd64, sparc и ppc; ошибка появилась в 0.1.22.
8909
8910 *) Исправление: модуль ngx_http_autoindex_module теперь показывает
8911 информацию не о символическом линке, а о файле или каталоге, на
8912 который он указывает.
8913
8914 *) Исправление: если клиенту ничего не передавалось, то параметр
8915 %apache_length записывал в лог отрицательную длину заголовка ответа.
8916
8917
8918 Изменения в nginx 0.1.22 22.02.2005
8919
8920 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8921 статистику для обработанных соединений, если использовалось
8922 проксирование или FastCGI-сервер.
8923
8924 *) Исправление: на Linux и Solaris установочные пути были неверно
8925 заключены в кавычки; ошибка появилась в 0.1.21.
8926
8927
8928 Изменения в nginx 0.1.21 22.02.2005
8929
8930 *) Исправление: модуль ngx_http_stub_status_module показывал неверную
8931 статистику при использовании метода rtsig или при использовании
8932 нескольких рабочих процессов на SMP машине.
8933
8934 *) Исправление: nginx не собирался компилятором icc под Линуксом или
8935 если библиотека zlib-1.2.x собиралась из исходных текстов.
8936
8937 *) Исправление: nginx не собирался под NetBSD 2.0.
8938
8939
8940 Изменения в nginx 0.1.20 17.02.2005
8941
8942 *) Добавление: новые параметры script_filename и remote_port в директиве
8943 fastcgi_params.
8944
8945 *) Исправление: неправильно обрабатывался поток stderr от
8946 FastCGI-сервера.
8947
8948
8949 Изменения в nginx 0.1.19 16.02.2005
8950
8951 *) Исправление: если в запросе есть нуль, то для локальных запросов
8952 теперь возвращается ошибка 404.
8953
8954 *) Исправление: nginx не собирался под NetBSD 2.0.
8955
8956 *) Исправление: во время чтения тела запроса клиента в SSL соединении
8957 мог произойти таймаут.
8958
8959
8960 Изменения в nginx 0.1.18 09.02.2005
8961
8962 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
8963 и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
8964
8965 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
8966 наследовались.
8967
8968 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы
8969 присоединялись к URI через символ "&" вместо "?".
8970
8971 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
8972 включённом файле игнорировались.
8973
8974 *) Добавление: модуль ngx_http_stub_status_module.
8975
8976 *) Исправление: неизвестный формат лог-файла в директиве access_log
8977 вызывал segmentation fault.
8978
8979 *) Добавление: новый параметр document_root в директиве fastcgi_params.
8980
8981 *) Добавление: директива fastcgi_redirect_errors.
8982
8983 *) Добавление: новый модификатор break в директиве rewrite позволяет
8984 прекратить цикл rewrite/location и устанавливает текущую конфигурацию
8985 для запроса.
8986
8987
8988 Изменения в nginx 0.1.17 03.02.2005
8989
8990 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
8991 можно делать редиректы, возвращать коды ошибок и проверять переменные
8992 и рефереры. Эти директивы можно использовать внутри location.
8993 Директива redirect упразднена.
8994
8995 *) Добавление: модуль ngx_http_geo_module.
8996
8997 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
8998
8999 *) Исправление: конфигурация location с модификатором "=" могла
9000 использоваться в другом location.
9001
9002 *) Исправление: правильный тип ответа выставлялся только для запросов, у
9003 которых в расширении были только маленькие буквы.
9004
9005 *) Исправление: если для location установлен proxy_pass или
9006 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
9007 на статическую страницу, то происходил segmentation fault.
9008
9009 *) Исправление: если в проксированном ответе в заголовке "Location"
9010 передавался относительный URL, то к нему добавлялось имя хоста и
9011 слэш; ошибка появилась в 0.1.14.
9012
9013 *) Исправление: на Linux в лог не записывался текст системной ошибки.
9014
9015
9016 Изменения в nginx 0.1.16 25.01.2005
9017
9018 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
9019 выдавался завершающий chunk.
9020
9021 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
9022 директива keepalive_timeout запрещала использование keep-alive.
9023
9024 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
9025 segmentation fault.
9026
9027 *) Исправление: при использовании SSL сжатый ответ мог передаваться не
9028 до конца.
9029
9030 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
9031 для TCP сокетов, не используются для unix domain сокетов.
9032
9033 *) Добавление: директива rewrite поддерживает перезаписывание
9034 аргументов.
9035
9036 *) Исправление: на запрос POST с заголовком "Content-Length: 0"
9037 возвращался ответ 400; ошибка появилась в 0.1.14.
9038
9039
9040 Изменения в nginx 0.1.15 19.01.2005
9041
9042 *) Исправление: ошибка соединения с FastCGI-сервером вызывала
9043 segmentation fault.
9044
9045 *) Исправление: корректная обработка регулярного выражения, в котором
9046 число выделенных частей не совпадает с числом подстановок.
9047
9048 *) Добавление: location, который передаётся FastCGI-серверу, может быть
9049 задан с помощью регулярного выражения.
9050
9051 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
9052 аргументами и в том виде, в котором был получен от клиента.
9053
9054 *) Исправление: для использования регулярных выражений в location нужно
9055 было собирать nginx вместе с ngx_http_rewrite_module.
9056
9057 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
9058 директивы "proxy_preserve_host on" в заголовке "Host" указывался
9059 также порт 80; ошибка появилась в 0.1.14.
9060
9061 *) Исправление: если задать одинаковые пути в параметрах
9062 автоконфигурации --http-client-body-temp-path=PATH и
9063 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
9064 --http-fastcgi-temp-path=PATH, то происходил segmentation fault.
9065
9066
9067 Изменения в nginx 0.1.14 18.01.2005
9068
9069 *) Добавление: параметры автоконфигурации
9070 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
9071 --http-fastcgi-temp-path=PATH
9072
9073 *) Изменение: имя каталога с временными файлами, содержащие тело запроса
9074 клиента, задаётся директивой client_body_temp_path, по умолчанию
9075 <prefix>/client_body_temp.
9076
9077 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
9078 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
9079 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
9080 fastcgi_header_buffer_size, fastcgi_buffers,
9081 fastcgi_busy_buffers_size, fastcgi_temp_path,
9082 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
9083 fastcgi_next_upstream и fastcgi_x_powered_by.
9084
9085 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
9086 0.1.3.
9087
9088 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI
9089 после имени хоста.
9090
9091 *) Изменение: если в URI встречался символ %3F, то он считался началом
9092 строки аргументов.
9093
9094 *) Добавление: поддержка unix domain сокетов в модуле
9095 ngx_http_proxy_module.
9096
9097 *) Добавление: директивы ssl_engine и ssl_ciphers.
9098 Спасибо Сергею Скворцову за SSL-акселератор.
9099
9100
9101 Изменения в nginx 0.1.13 21.12.2004
9102
9103 *) Добавление: директивы server_names_hash и
9104 server_names_hash_threshold.
9105
9106 *) Исправление: имена *.domain.tld в директиве server_name не работали.
9107
9108 *) Исправление: параметр лога %request_length записывал неверную длину.
9109
9110
9111 Изменения в nginx 0.1.12 06.12.2004
9112
9113 *) Добавление: параметр лога %request_length.
9114
9115 *) Исправление: при использовании /dev/poll, select и poll на
9116 платформах, где возможны ложные срабатывания указанных методов, могли
9117 быть длительные задержки при обработке запроса по keep-alive
9118 соединению. Наблюдалось по крайней мере на Solaris с использованием
9119 /dev/poll.
9120
9121 *) Исправление: директива send_lowat игнорируется на Linux, так как
9122 Linux не поддерживает опцию SO_SNDLOWAT.
9123
9124
9125 Изменения в nginx 0.1.11 02.12.2004
9126
9127 *) Добавление: директива worker_priority.
9128
9129 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
9130 влияют на передачу ответа.
9131
9132 *) Исправление: nginx не вызывал initgroups().
9133 Спасибо Андрею Ситникову и Андрею Нигматулину.
9134
9135 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
9136 байтах.
9137
9138 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
9139 каталоге есть битый symlink.
9140
9141 *) Исправление: файлы больше 4G не передавались с использованием
9142 sendfile.
9143
9144 *) Исправление: если бэкенд резолвился в несколько адресов и при
9145 ожидании от него ответа происходила ошибка, то процесс зацикливался.
9146
9147 *) Исправление: при использовании метода /dev/poll рабочий процесс мог
9148 завершиться с сообщением "unknown cycle".
9149
9150 *) Исправление: ошибки "close() channel failed".
9151
9152 *) Исправление: автоматическое определение групп nobody и nogroup.
9153
9154 *) Исправление: директива send_lowat не работала на Linux.
9155
9156 *) Исправление: если в конфигурации не было раздела events, то
9157 происходил segmentation fault.
9158
9159 *) Исправление: nginx не собирался под OpenBSD.
9160
9161 *) Исправление: двойные слэшы в "://" в URI превращались в ":/".
9162
9163
9164 Изменения в nginx 0.1.10 26.11.2004
9165
9166 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
9167 или "%XX", то терялся последний символ в строке запроса; ошибка
9168 появилась в 0.1.9.
9169
9170 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
9171 не работало.
9172
9173
9174 Изменения в nginx 0.1.9 25.11.2004
9175
9176 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
9177 проксируемый запрос передавался без аргументов.
9178
9179 *) Исправление: при сжатии больших ответов иногда они передавались не
9180 полностью.
9181
9182 *) Исправление: не передавались файлы больше 2G на Linux,
9183 неподдерживающем sendfile64().
9184
9185 *) Исправление: на Linux при конфигурации сборки нужно было обязательно
9186 использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
9187
9188
9189 Изменения в nginx 0.1.8 20.11.2004
9190
9191 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
9192 длинных имён файлов.
9193
9194 *) Добавление: модификатор "^~" в директиве location.
9195
9196 *) Добавление: директива proxy_max_temp_file_size.
9197
9198
9199 Изменения в nginx 0.1.7 12.11.2004
9200
9201 *) Исправление: при использовании sendfile, если передаваемый файл
9202 менялся, то мог произойти segmentation fault на FreeBSD; ошибка
9203 появилась в 0.1.5.
9204
9205
9206 Изменения в nginx 0.1.6 11.11.2004
9207
9208 *) Исправление: при некоторых комбинациях директив location c
9209 регулярными выражениями использовалась конфигурация не из того
9210 location.
9211
9212
9213 Изменения в nginx 0.1.5 11.11.2004
9214
9215 *) Исправление: на Solaris и Linux могло быть очень много сообщений
9216 "recvmsg() returned not enough data".
9217
9218 *) Исправление: в режиме прокси без использования sendfile на Solaris
9219 возникала ошибка "writev() failed (22: Invalid argument)". На других
9220 платформах, не поддерживающих sendfile, процесс зацикливался.
9221
9222 *) Исправление: при использовании sendfile в режиме прокси на Solaris
9223 возникал segmentation fault.
9224
9225 *) Исправление: segmentation fault на Solaris.
9226
9227 *) Исправление: обновление исполняемого файла на лету не работало на
9228 Linux.
9229
9230 *) Исправление: в списке файлов, выдаваемом модулем
9231 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
9232 знаки процента.
9233
9234 *) Изменение: уменьшение операций копирования.
9235
9236 *) Добавление: директива userid_p3p.
9237
9238
9239 Изменения в nginx 0.1.4 26.10.2004
9240
9241 *) Исправление: ошибка в модуле ngx_http_autoindex_module.
9242
9243
9244 Изменения в nginx 0.1.3 25.10.2004
9245
9246 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
9247
9248 *) Добавление: директива proxy_set_x_url.
9249
9250 *) Исправление: модуль проксировании мог привести к зацикливанию, если
9251 не использовался sendfile.
9252
9253
9254 Изменения в nginx 0.1.2 21.10.2004
9255
9256 *) Добавление: параметры --user=USER, --group=GROUP и
9257 --with-ld-opt=OPTIONS в configure.
9258
9259 *) Добавление: директива server_name поддерживает *.domain.tld.
9260
9261 *) Исправление: улучшена переносимость на неизвестные платформы.
9262
9263 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный
9264 файл указан в командной строке; ошибка появилась в 0.1.1.
9265
9266 *) Исправление: модуль проксировании мог привести к зацикливанию, если
9267 не использовался sendfile.
9268
9269 *) Исправление: при использовании sendfile текст ответа не
9270 перекодировался согласно директивам модуля charset; ошибка появилась
9271 в 0.1.1.
9272
9273 *) Исправление: очень редкая ошибка при обработке kqueue.
9274
9275 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
9276 проксировании.
9277
9278
9279 Изменения в nginx 0.1.1 11.10.2004
9280
9281 *) Добавление: директива gzip_types.
9282
9283 *) Добавление: директива tcp_nodelay.
9284
9285 *) Добавление: директива send_lowat работает не только на платформах,
9286 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
9287 SO_SNDLOWAT.
9288
9289 *) Добавление: эмуляция setproctitle() для Linux и Solaris.
9290
9291 *) Исправление: ошибка при переписывании заголовка "Location" при
9292 проксировании.
9293
9294 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
9295 зацикливанию.
9296
9297 *) Исправление: ошибки в модуле /dev/poll.
9298
9299 *) Исправление: при проксировании и использовании временных файлов
9300 ответы портились.
9301
9302 *) Исправление: бэкенду передавались запросы с неперекодированными
9303 символами.
9304
9305 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было
9306 обязательно использовать параметр --with-poll_module.
9307
9308
9309 Изменения в nginx 0.1.0 04.10.2004
9310
9311 *) Первая публично доступная версия.
9312