Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nginx
GitHub Repository: nginx/nginx.org
Path: blob/main/text/ru/CHANGES.ru
1 views
1
2
Изменения в nginx 1.31.1 22.05.2026
3
4
*) Безопасность: при использовании конфигурации модуля
5
ngx_http_rewrite_module с перекрывающимися выделениями могло
6
происходить переполнение буфера в рабочем процессе, что потенциально
7
могло приводить к выполнению произвольного кода (CVE-2026-9256).
8
Спасибо Mufeed VH из Winfunc Research.
9
10
11
Изменения в nginx 1.31.0 13.05.2026
12
13
*) Безопасность: при использовании директивы proxy_set_body атакующий
14
мог вставить данные в проксируемый запрос на HTTP/2-бэкенд
15
(CVE-2026-42926).
16
Спасибо Mufeed VH из Winfunc Research.
17
18
*) Безопасность: при обработке специально созданного запроса модулем
19
ngx_http_rewrite_module могло происходить переполнение буфера в
20
рабочем процессе, что потенциально могло приводить к выполнению
21
произвольного кода (CVE-2026-42945).
22
Спасибо Leo Lin.
23
24
*) Безопасность: при обработке специально созданного ответа модулем
25
ngx_http_scgi_module или ngx_http_uwsgi_module могло происходить
26
чтение данных за границами буфера рабочего процесса, что позволяло
27
атакующему отправить клиенту содержимое памяти рабочего процесса или
28
вызвать segmentation fault в рабочем процессе (CVE-2026-42946).
29
Спасибо Leo Lin.
30
31
*) Безопасность: при обработке специально переданного ответа с
32
декодированием из UTF-8 через директиву charset_map могло происходить
33
чтение данных за границами буфера рабочего процесса, что позволяло
34
атакующему отправить клиенту ограниченное содержимое памяти рабочего
35
процесса или вызвать segmentation fault в рабочем процессе
36
(CVE-2026-42934).
37
Спасибо David Carlier.
38
39
*) Безопасность: при использовании HTTP/3 обработка миграции соединения
40
могла приводить к созданию QUIC-стримов с новым адресом клиента до
41
завершения валидации, что позволяло атакующему выполнить подмену
42
адреса (CVE-2026-40460).
43
Спасибо Rodrigo Laneth.
44
45
*) Безопасность: при использовании директивы ssl_ocsp во время обработки
46
ответов DNS-сервера могло произойти обращение к ранее освобождённой
47
памяти, что позволяло атакующему повредить память рабочего процесса
48
или вызвать segmentation fault в рабочем процессе (CVE-2026-40701).
49
Спасибо Leo Lin.
50
51
*) Изменение: теперь nginx возвращает ошибку, если в запросе по
52
протоколу HTTP/2 или HTTP/3 присутствуют строки заголовка
53
"Connection", "Proxy-Connection", "Keep-Alive", "Transfer-Encoding",
54
"Upgrade", а также "TE" со значением, отличным от "trailers".
55
56
*) Изменение: модуль ngx_http_dav_module теперь возвращает ошибку, если
57
при обработке COPY- или MOVE-запроса исходные и целевые ресурсы
58
совпадают или одна коллекция включает в себя другую.
59
60
*) Изменение: уровень логгирования ошибок SSL "invalid alert", "record
61
layer failure", а также ошибок "SSL alert number N" для любых
62
значений N понижен с уровня crit до info.
63
64
*) Изменение: теперь сборка модуля sticky может быть выключена с помощью
65
параметра configure --without-http_upstream_sticky_module; параметр
66
configure --without-http_upstream_sticky объявлен устаревшим.
67
68
*) Добавление: модуль ngx_http_tunnel_module; поддержка аутентификации
69
через прокси-серверы в директивах auth_basic, satisfy и auth_delay.
70
71
*) Добавление: директива least_time в блоке upstream.
72
73
*) Добавление: директива proxy_ssl_alpn в модуле stream.
74
75
*) Исправление: соединения к HTTP/2-бэкендам могли не кэшироваться при
76
использовании директив proxy_set_body или proxy_pass_request_body.
77
78
*) Исправление: проксированные ответы HTTP/0.9, SCGI или uWSGI могли
79
передаваться неверно, если первая строка была прочитана не целиком.
80
81
82
Изменения в nginx 1.29.8 07.04.2026
83
84
*) Добавление: директива max_headers.
85
Спасибо Максиму Дунину.
86
87
*) Добавление: совместимость с OpenSSL 4.0.
88
89
*) Добавление: теперь директива include внутри блока geo поддерживает
90
маски.
91
92
*) Исправление: в обработке ответов с кодом HTTP 103 (Early Hints) от
93
проксируемого бэкенда.
94
95
*) Исправление: переменные $request_port и $is_request_port были
96
недоступны в подзапросах.
97
98
99
Изменения в nginx 1.29.7 24.03.2026
100
101
*) Безопасность: при обработке COPY- или MOVE-запроса в location'е с
102
включённым alias могло произойти переполнение буфера, что позволяло
103
атакующему модифицировать исходный или целевой путь за пределы
104
document root (CVE-2026-27654).
105
Спасибо Calif.io при содействии Claude и Anthropic Research.
106
107
*) Безопасность: обработка специально созданного mp4-файла модулем
108
ngx_http_mp4_module на 32-битных платформах могла приводить к падению
109
рабочего процесса, а также потенциально могла иметь другие
110
последствия (CVE-2026-27784).
111
Спасибо Prabhav Srinath (sprabhav7).
112
113
*) Безопасность: обработка специально созданного mp4-файла модулем
114
ngx_http_mp4_module могла приводить к падению рабочего процесса, а
115
также потенциально могла иметь другие последствия (CVE-2026-32647).
116
Спасибо Xint Code и Pavel Kohout (Aisle Research).
117
118
*) Безопасность: если использовался метод аутентификации CRAM-MD5 или
119
APOP, то в рабочем процессе мог произойти segmentation fault, если
120
были разрешены повторные попытки аутентификации (CVE-2026-27651).
121
Спасибо Arkadi Vainbrand.
122
123
*) Безопасность: атакующий мог использовать записи PTR DNS чтобы
124
вставить данные в auth_http-запросы, а также в команду XCLIENT в
125
SMTP-соединении к бекенду (CVE-2026-28753).
126
Спасибо Asim Viladi Oglu Manizada, Colin Warren, Xiao Liu (Yunnan
127
University), Yuan Tan (UC Riverside) и Bird Liu (Lanzhou University).
128
129
*) Безопасность: SSL handshake мог завершиться успешно при том, что OCSP
130
отклонил клиентский сертификат в модуле stream (CVE-2026-28755).
131
Спасибо Mufeed VH из Winfunc Research.
132
133
*) Добавление: параметр multipath директивы listen.
134
135
*) Добавление: параметр local директивы keepalive в блоке upstream.
136
137
*) Изменение: теперь директива keepalive в блоке upstream включена по
138
умолчанию.
139
140
*) Изменение: теперь модуль ngx_http_proxy_module поддерживает keepalive
141
по умолчанию; значение proxy_http_version по умолчанию равно "1.1";
142
proxy заголовок "Connection" по умолчанию больше не посылается.
143
144
*) Исправление: некорректный HTTP/2-запрос мог быть отправлен после
145
переключения на следующий бэкенд при использовании буферизованного
146
тела в модуле ngx_http_grpc_module.
147
148
149
Изменения в nginx 1.29.6 10.03.2026
150
151
*) Добавление: режим привязки сессий; директива sticky в блоке upstream
152
модуля http; директива server поддерживает параметры route и drain.
153
154
*) Изменение: теперь nginx ограничивает размер и частоту отправки
155
пакетов QUIC stateless reset.
156
157
*) Исправление: получение QUIC-пакета в другом рабочем процессе могло
158
приводить к разрыву соединения.
159
160
*) Исправление: при отправке закэшированного ответа HTTP/2 в логах могли
161
появляться сообщения "[crit] cache file ... contains invalid header".
162
163
*) Исправление: проксирование на scgi-бэкенды могло не работать при
164
использовании chunked transfer encoding и директивы
165
scgi_request_buffering.
166
Спасибо Mufeed VH.
167
168
*) Исправление: в модуле ngx_http_mp4_module.
169
Спасибо Andrew Lacambra.
170
171
*) Исправление: nginx считал запятую разделителем в строке "Cookie"
172
заголовка запроса при вычислении переменных "$cookie_...".
173
174
*) Исправление: в парсинге литеральных аргументов IMAP команд.
175
176
177
Изменения в nginx 1.29.5 04.02.2026
178
179
*) Безопасность: атакующий мог вставить незашифрованные данные в ответ
180
от SSL-бэкенда (CVE-2026-1642).
181
182
*) Исправление: обращение к ранее освобождённой памяти могло произойти
183
после переключения на следующий gRPC- или HTTP/2-бэкенд.
184
185
*) Исправление: некорректный HTTP/2-запрос мог быть отправлен после
186
переключения на следующий бэкенд.
187
188
*) Исправление: ответ с несколькими диапазонами мог быть больше, чем
189
исходный ответ.
190
191
*) Исправление: исправлена установка переменной HTTP_HOST при
192
проксировании на FastCGI-, SCGI- и uwsgi-бэкенды.
193
194
*) Исправление: устранено предупреждение при компиляции при помощи MSVC
195
2022 x86.
196
197
*) Изменение: уровень логгирования ошибки SSL "ech_required" понижен с
198
уровня crit до info.
199
200
201
Изменения в nginx 1.29.4 09.12.2025
202
203
*) Добавление: модуль ngx_http_proxy_module поддерживает HTTP/2.
204
205
*) Добавление: поддержка расширения TLS Encrypted ClientHello при
206
использовании ветки разработки ECH OpenSSL; директива ssl_ech_file.
207
Спасибо Stephen Farrell.
208
209
*) Изменение: валидация хоста и порта в строке запроса, в заголовке
210
"Host" и псевдо-заголовке ":authority" изменена на соответствующую
211
RFC 3986.
212
213
*) Изменение: теперь одиночный символ LF, используемый для перевода
214
строки в chunked-теле запроса или ответа, считается ошибкой.
215
216
*) Исправление: при использовании HTTP/3 с OpenSSL 3.5.1 и новее в
217
рабочем процессе мог произойти segmentation fault; ошибка появилась в
218
1.29.1.
219
Спасибо Jan Svojanovsky.
220
221
*) Исправление: при совместном использовании директив try_files и
222
proxy_pass с URI в рабочем процессе мог произойти segmentation fault.
223
224
225
Изменения в nginx 1.29.3 28.10.2025
226
227
*) Добавление: директивы add_header_inherit и add_trailer_inherit.
228
229
*) Добавление: переменные $request_port и $is_request_port.
230
231
*) Добавление: переменные $ssl_sigalg и $ssl_client_sigalg.
232
233
*) Добавление: параметр volatile директивы geo.
234
235
*) Добавление: теперь сжатие сертификатов доступно с BoringSSL.
236
237
*) Исправление: теперь сжатие сертификатов запрещено при включенном OCSP
238
stapling.
239
240
241
Изменения в nginx 1.29.2 07.10.2025
242
243
*) Добавление: теперь nginx можно собрать с AWS-LC.
244
Спасибо Samuel Chiang.
245
246
*) Исправление: теперь директива ssl_protocols работает в виртуальном
247
сервере, отличном от сервера по умолчанию, при использовании OpenSSL
248
1.1.1 и новее.
249
250
*) Исправление: при использовании TLSv1.3 с OpenSSL и клиентских
251
сертификатов SSL handshake всегда завершался ошибкой при
252
восстановлении сессии с другим значением SNI; ошибка появилась в
253
1.27.4.
254
255
*) Исправление: при использовании QUIC и директивы ssl_reject_handshake
256
в логах могли появляться сообщения "ignoring stale global SSL error";
257
ошибка появилась в 1.29.0.
258
Спасибо Владимиру Хомутову.
259
260
*) Исправление: в обработке delta-seconds в строке "Cache-Control" в
261
заголовке ответа бэкенда.
262
263
*) Исправление: команда XCLIENT не использовала кодировку xtext.
264
Спасибо Igor Morgenstern из Aisle Research.
265
266
*) Исправление: в кэшировании SSL-сертификатов во время
267
переконфигурации.
268
269
270
Изменения в nginx 1.29.1 13.08.2025
271
272
*) Безопасность: обработка специально созданного логина/пароля при
273
использовании метода аутентификации "none" в модуле
274
ngx_mail_smtp_module могла приводить к отправке серверу
275
аутентификации части содержимого памяти рабочего процесса
276
(CVE-2025-53859).
277
278
*) Изменение: теперь сжатие сертификатов в протоколе TLSv1.3 по
279
умолчанию запрещено.
280
281
*) Добавление: директива ssl_certificate_compression.
282
283
*) Добавление: поддержка 0-RTT в QUIC при использовании OpenSSL 3.5.1 и
284
новее.
285
286
*) Исправление: при использовании HTTP/2 и директивы early_hints ответ
287
103 мог буферизироваться.
288
289
*) Исправление: в обработке заголовков запроса "Host" и ":authority" с
290
одинаковыми значениями при использовании HTTP/2; ошибка появилась в
291
1.17.9.
292
293
*) Исправление: в обработке заголовка запроса "Host" с портом при
294
использовании HTTP/3.
295
296
*) Исправление: nginx не собирался под NetBSD 10.0.
297
298
*) Исправление: в работе параметра none директивы smtp_auth.
299
300
301
Изменения в nginx 1.29.0 24.06.2025
302
303
*) Добавление: поддержка ответа с кодом 103 от proxy- и gRPC-бэкендов;
304
директива early_hints.
305
306
*) Добавление: возможность загрузки секретных ключей с аппаратных
307
устройств с помощью OpenSSL provider.
308
309
*) Добавление: поддержка параметра so_keepalive директивы listen на
310
macOS.
311
312
*) Изменение: уровень логгирования ошибок SSL в QUIC handshake изменён с
313
уровня error на crit для критических ошибок и на info для всех
314
остальных; уровень логгирования неподдерживаемых транспортных
315
параметров QUIC понижен с уровня info до debug.
316
317
*) Изменение: бинарная версия nginx/Windows теперь использует для сборки
318
Windows SDK 10.
319
320
*) Исправление: nginx не собирался gcc 15, если использовались модули
321
ngx_http_v2_module и ngx_http_v3_module.
322
323
*) Исправление: nginx мог не собираться gcc 14 и новее с оптимизацией
324
-O3 -flto, если использовался модуль ngx_http_v3_module.
325
326
*) Исправления и улучшения в HTTP/3.
327
328
329
Изменения в nginx 1.27.5 16.04.2025
330
331
*) Добавление: контроль перегрузки CUBIC в соединениях QUIC.
332
333
*) Изменение: ограничение на максимальный размер кэшируемых в
334
разделяемой памяти SSL-сессий поднято до 8192.
335
336
*) Исправление: в директивах grpc_ssl_password_file,
337
proxy_ssl_password_file и uwsgi_ssl_password_file при загрузке
338
SSL-сертификатов и зашифрованных ключей из переменных; ошибка
339
появилась в 1.23.1.
340
341
*) Исправление: в переменных $ssl_curve и $ssl_curves при использовании
342
подключаемых кривых в OpenSSL.
343
344
*) Исправление: nginx не собирался с musl libc.
345
Спасибо Piotr Sikora.
346
347
*) Улучшения производительности и исправления в HTTP/3.
348
349
350
Изменения в nginx 1.27.4 05.02.2025
351
352
*) Безопасность: недостаточная проверка в обработке виртуальных серверов
353
при использовании SNI в TLSv1.3 позволяла повторно использовать
354
SSL-сессию в контексте другого виртуального сервера, чтобы обойти
355
проверку клиентских SSL-сертификатов (CVE-2025-23419).
356
357
*) Добавление: директивы ssl_object_cache_inheritable,
358
ssl_certificate_cache, proxy_ssl_certificate_cache,
359
grpc_ssl_certificate_cache и uwsgi_ssl_certificate_cache.
360
361
*) Добавление: директива keepalive_min_timeout.
362
363
*) Изменение: при использовании zlib-ng в логах появлялись сообщения
364
"gzip filter failed to use preallocated memory".
365
366
*) Исправление: nginx не мог собрать библиотеку libatomic из исходных
367
текстов, если использовался параметр --with-libatomic=DIR.
368
369
*) Исправление: могла происходить ошибка установления соединения при
370
использовании 0-RTT в QUIC; ошибка появилась в 1.27.1.
371
372
*) Исправление: теперь nginx игнорирует пакеты согласования версий QUIC
373
от клиентов.
374
375
*) Исправление: nginx не собирался на Solaris 10 и более ранних с
376
модулем ngx_http_v3_module.
377
378
*) Исправления в HTTP/3.
379
380
381
Изменения в nginx 1.27.3 26.11.2024
382
383
*) Добавление: директива server в блоке upstream поддерживает параметр
384
resolve.
385
386
*) Добавление: директивы resolver и resolver_timeout в блоке upstream.
387
388
*) Добавление: поддержка SmarterMail-специфичного режима IMAP LOGIN с
389
нетегированным ответом CAPABILITY в почтовом прокси-сервере.
390
391
*) Изменение: теперь протоколы TLSv1 и TLSv1.1 по умолчанию запрещены.
392
393
*) Изменение: IPv6-адрес в квадратных скобках без порта теперь можно
394
указывать в директивах proxy_bind, fastcgi_bind, grpc_bind,
395
memcached_bind, scgi_bind и uwsgi_bind, а также как адрес клиента в
396
модуле ngx_http_realip_module.
397
398
*) Исправление: в модуле ngx_http_mp4_module.
399
Спасибо Nils Bars.
400
401
*) Исправление: параметр so_keepalive директивы listen мог работать
402
некорректно на DragonFly BSD.
403
404
*) Исправление: в директиве proxy_store.
405
406
407
Изменения в nginx 1.27.2 02.10.2024
408
409
*) Добавление: SSL-сертификаты, секретные ключи и списки CRL теперь
410
кэшируются на старте или во время переконфигурации.
411
412
*) Добавление: проверка клиентских сертификатов с помощью OCSP в модуле
413
stream.
414
415
*) Добавление: поддержка OCSP stapling в модуле stream.
416
417
*) Добавление: директива proxy_pass_trailers в модуле
418
ngx_http_proxy_module.
419
420
*) Добавление: директива ssl_client_certificate теперь поддерживает
421
сертификаты с дополнительными данными.
422
423
*) Изменение: теперь наличие директивы ssl_client_certificate не
424
обязательно для проверки клиентских SSL-сертификатов.
425
426
427
Изменения в nginx 1.27.1 14.08.2024
428
429
*) Безопасность: обработка специально созданного mp4-файла модулем
430
ngx_http_mp4_module могла приводить к падению рабочего процесса
431
(CVE-2024-7347).
432
Спасибо Nils Bars.
433
434
*) Изменение: теперь обработчик в модуле stream не является
435
обязательным.
436
437
*) Исправление: новые HTTP/2-соединения могли игнорировать плавное
438
завершение старых рабочих процессов.
439
Спасибо Kasei Wang.
440
441
*) Исправления в HTTP/3.
442
443
444
Изменения в nginx 1.27.0 29.05.2024
445
446
*) Безопасность: при использовании HTTP/3 обработка специально созданной
447
QUIC-сессии могла приводить к падению рабочего процесса, отправке
448
клиенту содержимого памяти рабочего процесса на системах с MTU больше
449
4096 байт, а также потенциально могла иметь другие последствия
450
(CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).
451
Спасибо Nils Bars из CISPA.
452
453
*) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
454
scgi_limit_rate и uwsgi_limit_rate поддерживают переменные.
455
456
*) Исправление: уменьшено потребление памяти для долгоживущих запросов,
457
если используются директивы gzip, gunzip, ssi, sub_filter или
458
grpc_pass.
459
460
*) Исправление: nginx не собирался gcc 14, если использовался параметр
461
--with-libatomic.
462
Спасибо Edgar Bonet.
463
464
*) Исправления в HTTP/3.
465
466
467
Изменения в nginx 1.25.5 16.04.2024
468
469
*) Добавление: виртуальные сервера в модуле stream.
470
471
*) Добавление: модуль ngx_stream_pass_module.
472
473
*) Добавление: параметры deferred, accept_filter и setfib директивы
474
listen в модуле stream.
475
476
*) Добавление: определение размера строки кэша процессора для некоторых
477
архитектур.
478
Спасибо Piotr Sikora.
479
480
*) Добавление: поддержка Homebrew на Apple Silicon.
481
Спасибо Piotr Sikora.
482
483
*) Исправление: улучшения и исправления кросс-компиляции для Windows.
484
Спасибо Piotr Sikora.
485
486
*) Исправление: неожиданное закрытие соединения при использовании 0-RTT
487
в QUIC.
488
Спасибо Владимиру Хомутову.
489
490
491
Изменения в nginx 1.25.4 14.02.2024
492
493
*) Безопасность: при использовании HTTP/3 в рабочем процессе мог
494
произойти segmentation fault во время обработки специально созданной
495
QUIC-сессии (CVE-2024-24989, CVE-2024-24990).
496
497
*) Исправление: соединения с незавершенными AIO-операциями могли
498
закрываться преждевременно во время плавного завершения старых
499
рабочих процессов.
500
501
*) Исправление: теперь nginx не пишет в лог сообщения об утечке сокетов,
502
если во время плавного завершения старых рабочих процессов было
503
запрошено быстрое завершение.
504
505
*) Исправление: при использовании AIO в подзапросе могла происходить
506
ошибка на сокете, утечка сокетов, либо segmentation fault в рабочем
507
процессе (при SSL-проксировании).
508
509
*) Исправление: в рабочем процессе мог произойти segmentation fault,
510
если использовалось SSL-проксирование и директива image_filter, а
511
ошибки с кодом 415 перенаправлялись с помощью директивы error_page.
512
513
*) Исправления и улучшения в HTTP/3.
514
515
516
Изменения в nginx 1.25.3 24.10.2023
517
518
*) Изменение: улучшено детектирование некорректного поведения клиентов
519
при использовании HTTP/2.
520
521
*) Добавление: уменьшение времени запуска при использовании большого
522
количества location'ов.
523
Спасибо Yusuke Nojima.
524
525
*) Исправление: при использовании HTTP/2 без SSL в рабочем процессе мог
526
произойти segmentation fault; ошибка появилась в 1.25.1.
527
528
*) Исправление: строка "Status" в заголовке ответа бэкенда с пустой
529
поясняющей фразой обрабатывалась некорректно.
530
531
*) Исправление: утечки памяти во время переконфигурации при
532
использовании библиотеки PCRE2.
533
Спасибо ZhenZhong Wu.
534
535
*) Исправления и улучшения в HTTP/3.
536
537
538
Изменения в nginx 1.25.2 15.08.2023
539
540
*) Добавление: path MTU discovery при использовании HTTP/3.
541
542
*) Добавление: поддержка шифра TLS_AES_128_CCM_SHA256 при использовании
543
HTTP/3.
544
545
*) Изменение: теперь при загрузке конфигурации OpenSSL nginx использует
546
appname "nginx".
547
548
*) Изменение: теперь nginx не пытается загружать конфигурацию OpenSSL,
549
если для сборки OpenSSL использовался параметр --with-openssl и
550
переменная окружения OPENSSL_CONF не установлена.
551
552
*) Исправление: в переменной $body_bytes_sent при использовании HTTP/3.
553
554
*) Исправление: в HTTP/3.
555
556
557
Изменения в nginx 1.25.1 13.06.2023
558
559
*) Добавление: директива http2, позволяющая включать HTTP/2 в отдельных
560
блоках server; параметр http2 директивы listen объявлен устаревшим.
561
562
*) Изменение: поддержка HTTP/2 server push упразднена.
563
564
*) Изменение: устаревшая директива ssl больше не поддерживается.
565
566
*) Исправление: в HTTP/3 при использовании OpenSSL.
567
568
569
Изменения в nginx 1.25.0 23.05.2023
570
571
*) Добавление: экспериментальная поддержка HTTP/3.
572
573
574
Изменения в nginx 1.23.4 28.03.2023
575
576
*) Изменение: теперь протокол TLSv1.3 разрешён по умолчанию.
577
578
*) Изменение: теперь nginx выдаёт предупреждение при переопределении
579
параметров listen-сокета, задающих используемые протоколы.
580
581
*) Изменение: теперь, если клиент использует pipelining, nginx закрывает
582
соединения с ожиданием дополнительных данных (lingering close).
583
584
*) Добавление: поддержка byte ranges для ответов модуля
585
ngx_http_gzip_static_module.
586
587
*) Исправление: диапазоны портов в директиве listen не работали; ошибка
588
появилась в 1.23.3.
589
Спасибо Валентину Бартеневу.
590
591
*) Исправление: для обработки запроса мог быть выбран неверный location,
592
если в конфигурации использовался префиксный location длиннее 255
593
символов.
594
595
*) Исправление: не-ASCII символы в именах файлов на Windows не
596
поддерживались модулями ngx_http_autoindex_module и
597
ngx_http_dav_module, а также директивой include.
598
599
*) Изменение: уровень логгирования ошибок SSL "data length too long",
600
"length too short", "bad legacy version", "no shared signature
601
algorithms", "bad digest length", "missing sigalgs extension",
602
"encrypted length too long", "bad length", "bad key update", "mixed
603
handshake and non handshake data", "ccs received early", "data
604
between ccs and finished", "packet length too long", "too many warn
605
alerts", "record too small", и "got a fin before a ccs" понижен с
606
уровня crit до info.
607
608
*) Исправление: при использовании HTTP/2 и директивы error_page для
609
перенаправления ошибок с кодом 400 могла происходить утечка сокетов.
610
611
*) Исправление: сообщения об ошибках записи в syslog не содержали
612
информации о том, что ошибки происходили в процессе записи в syslog.
613
Спасибо Safar Safarly.
614
615
*) Изменение: при использовании zlib-ng в логах появлялись сообщения
616
"gzip filter failed to use preallocated memory".
617
618
*) Исправление: в почтовом прокси-сервере.
619
620
621
Изменения в nginx 1.23.3 13.12.2022
622
623
*) Исправление: при чтении заголовка протокола PROXY версии 2,
624
содержащего большое количество TLV, могла возникать ошибка.
625
626
*) Исправление: при использовании SSI для обработки подзапросов,
627
созданных другими модулями, в рабочем процессе мог произойти
628
segmentation fault.
629
Спасибо Ciel Zhao.
630
631
*) Изменение: теперь, если при преобразовании в адреса имени хоста,
632
указанного в директиве listen, возвращается несколько адресов, nginx
633
игнорирует дубликаты среди этих адресов.
634
635
*) Исправление: nginx мог нагружать процессор при небуферизированном
636
проксировании, если использовались SSL-соединения с бэкендами.
637
638
639
Изменения в nginx 1.23.2 19.10.2022
640
641
*) Безопасность: обработка специально созданного mp4-файла модулем
642
ngx_http_mp4_module могла приводить к падению рабочего процесса,
643
отправке клиенту части содержимого памяти рабочего процесса, а также
644
потенциально могла иметь другие последствия (CVE-2022-41741,
645
CVE-2022-41742).
646
647
*) Добавление: переменные "$proxy_protocol_tlv_...".
648
649
*) Добавление: ключи шифрования TLS session tickets теперь автоматически
650
меняются при использовании разделяемой памяти в ssl_session_cache.
651
652
*) Изменение: уровень логгирования ошибок SSL "bad record type" понижен
653
с уровня crit до info.
654
Спасибо Murilo Andrade.
655
656
*) Изменение: теперь при использовании разделяемой памяти в
657
ssl_session_cache сообщения "could not allocate new session"
658
логгируются на уровне warn вместо alert и не чаще одного раза в
659
секунду.
660
661
*) Исправление: nginx/Windows не собирался с OpenSSL 3.0.x.
662
663
*) Исправление: в логгировании ошибок протокола PROXY.
664
Спасибо Сергею Брестеру.
665
666
*) Изменение: при использовании TLSv1.3 с OpenSSL разделяемая память из
667
ssl_session_cache расходовалась в том числе на сессии, использующие
668
TLS session tickets.
669
670
*) Изменение: таймаут, заданный с помощью директивы ssl_session_timeout,
671
не работал при использовании TLSv1.3 с OpenSSL или BoringSSL.
672
673
674
Изменения в nginx 1.23.1 19.07.2022
675
676
*) Добавление: оптимизация использования памяти в конфигурациях с
677
SSL-проксированием.
678
679
*) Добавление: теперь с помощью параметра "ipv4=off" директивы
680
"resolver" можно запретить поиск IPv4-адресов при преобразовании имён
681
в адреса.
682
683
*) Изменение: уровень логгирования ошибок SSL "bad key share", "bad
684
extension", "bad cipher" и "bad ecpoint" понижен с уровня crit до
685
info.
686
687
*) Исправление: при возврате диапазонов nginx не удалял строку заголовка
688
"Content-Range", если она присутствовала в исходном ответе бэкенда.
689
690
*) Исправление: проксированный ответ мог быть отправлен не полностью при
691
переконфигурации на Linux; ошибка появилась в 1.17.5.
692
693
694
Изменения в nginx 1.23.0 21.06.2022
695
696
*) Изменение во внутреннем API: теперь строки заголовков представлены
697
связными списками.
698
699
*) Изменение: теперь nginx объединяет произвольные строки заголовков с
700
одинаковыми именами при отправке на FastCGI-, SCGI- и uwsgi-бэкенды,
701
в методе $r->header_in() модуля ngx_http_perl_module, и при доступе
702
через переменные "$http_...", "$sent_http_...", "$sent_trailer_...",
703
"$upstream_http_..." и "$upstream_trailer_...".
704
705
*) Исправление: если в заголовке ответа бэкенда было несколько строк
706
"Vary", при кэшировании nginx учитывал только последнюю из них.
707
708
*) Исправление: если в заголовке ответа бэкенда было несколько строк
709
"WWW-Authenticate" и использовался перехват ошибок с кодом 401 от
710
бэкенда или директива auth_request, nginx пересылал клиенту только
711
первую из этих строк.
712
713
*) Изменение: уровень логгирования ошибок SSL "application data after
714
close notify" понижен с уровня crit до info.
715
716
*) Исправление: соединения могли зависать, если nginx был собран на
717
Linux 2.6.17 и новее, а использовался на системах без поддержки
718
EPOLLRDHUP, в частности, на системах с эмуляцией epoll; ошибка
719
появилась в 1.17.5.
720
Спасибо Marcus Ball.
721
722
*) Исправление: nginx не кэшировал ответ, если строка заголовка ответа
723
"Expires" запрещала кэширование, а последующая строка заголовка
724
"Cache-Control" разрешала кэширование.
725
726
727
Изменения в nginx 1.21.6 25.01.2022
728
729
*) Исправление: при использование EPOLLEXCLUSIVE на Linux распределение
730
клиентских соединений между рабочими процессами было неравномерным.
731
732
*) Исправление: во время плавного завершения старых рабочих процессов
733
nginx возвращал в ответах строку заголовка "Connection: keep-alive".
734
735
*) Исправление: в директиве ssl_session_ticket_key при использовании
736
TLSv1.3.
737
738
739
Изменения в nginx 1.21.5 28.12.2021
740
741
*) Изменение: теперь nginx по умолчанию собирается с библиотекой PCRE2.
742
743
*) Изменение: теперь nginx всегда использует sendfile(SF_NODISKIO) на
744
FreeBSD.
745
746
*) Добавление: поддержка sendfile(SF_NOCACHE) на FreeBSD.
747
748
*) Добавление: переменная $ssl_curve.
749
750
*) Исправление: при использовании HTTP/2 без SSL вместе с директивами
751
sendfile и aio соединения могли зависать.
752
753
754
Изменения в nginx 1.21.4 02.11.2021
755
756
*) Изменение: поддержка NPN вместо ALPN для установления
757
HTTP/2-соединений упразднена.
758
759
*) Изменение: теперь nginx закрывает SSL соединение, если клиент
760
использует ALPN, но nginx не поддерживает ни один из присланных
761
клиентом протоколов.
762
763
*) Изменение: в директиве sendfile_max_chunk значение по умолчанию
764
изменено на 2 мегабайта.
765
766
*) Добавление: директива proxy_half_close в модуле stream.
767
768
*) Добавление: директива ssl_alpn в модуле stream.
769
770
*) Добавление: переменная $ssl_alpn_protocol.
771
772
*) Добавление: поддержка SSL_sendfile() при использовании OpenSSL 3.0.
773
774
*) Добавление: директива mp4_start_key_frame в модуле
775
ngx_http_mp4_module.
776
Спасибо Tracey Jaquith.
777
778
*) Исправление: в переменной $content_length при использовании chunked
779
transfer encoding.
780
781
*) Исправление: при получении ответа некорректной длины от проксируемого
782
бэкенда nginx мог тем не менее закэшировать соединение.
783
Спасибо Awdhesh Mathpal.
784
785
*) Исправление: некорректные заголовки от бэкендов логгировались на
786
уровне info вместо error; ошибка появилась в 1.21.1.
787
788
*) Исправление: при использовании HTTP/2 и директивы aio_write запросы
789
могли зависать.
790
791
792
Изменения в nginx 1.21.3 07.09.2021
793
794
*) Изменение: оптимизация чтения тела запроса при использовании HTTP/2.
795
796
*) Исправление: во внутреннем API для обработки тела запроса при
797
использовании HTTP/2 и буферизации обрабатываемых данных.
798
799
800
Изменения в nginx 1.21.2 31.08.2021
801
802
*) Изменение: теперь nginx возвращает ошибку, если в запросе по
803
протоколу HTTP/1.0 присутствует строка заголовка "Transfer-Encoding".
804
805
*) Изменение: экспортные шифры больше не поддерживаются.
806
807
*) Добавление: совместимость с OpenSSL 3.0.
808
809
*) Добавление: теперь серверу аутентификации почтового прокси-сервера
810
передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher".
811
Спасибо Rob Mueller.
812
813
*) Добавление: API для обработки тела запроса теперь позволяет
814
буферизировать обрабатываемые данные.
815
816
*) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать
817
после SSL handshake.
818
819
*) Исправление: уровень безопасности, доступный в OpenSSL 1.1.0 и новее,
820
не учитывался при загрузке сертификатов сервера, если был задан через
821
"@SECLEVEL=N" в директиве ssl_ciphers.
822
823
*) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если
824
использовались методы select, poll или /dev/poll.
825
826
*) Исправление: при использовании HTTP/2 тело запроса всегда
827
записывалось на диск, если в запросе не было строки заголовка
828
"Content-Length".
829
830
831
Изменения в nginx 1.21.1 06.07.2021
832
833
*) Изменение: теперь nginx для метода CONNECT всегда возвращает ошибку.
834
835
*) Изменение: теперь nginx всегда возвращает ошибку, если в запросе
836
одновременно присутствуют строки заголовка "Content-Length" и
837
"Transfer-Encoding".
838
839
*) Изменение: теперь nginx всегда возвращает ошибку, если в строке
840
запроса используются пробелы или управляющие символы.
841
842
*) Изменение: теперь nginx всегда возвращает ошибку, если в имени
843
заголовка используются пробелы или управляющие символы.
844
845
*) Изменение: теперь nginx всегда возвращает ошибку, если в строке
846
"Host" заголовка запроса используются пробелы или управляющие
847
символы.
848
849
*) Изменение: оптимизация тестирования конфигурации при использовании
850
большого количества listen-сокетов.
851
852
*) Исправление: nginx не экранировал символы """, "<", ">", "\", "^",
853
"`", "{", "|", и "}" при проксировании с изменением URI запроса.
854
855
*) Исправление: SSL-переменные могли быть пустыми при записи в лог;
856
ошибка появилась в 1.19.5.
857
858
*) Исправление: keepalive-соединения с gRPC-бэкендами могли не
859
закрываться после получения GOAWAY-фрейма.
860
861
*) Исправление: уменьшено потребление памяти для долгоживущих запросов
862
при проксировании с использованием более 64 буферов.
863
864
865
Изменения в nginx 1.21.0 25.05.2021
866
867
*) Безопасность: при использовании директивы resolver во время обработки
868
ответа DNS-сервера могла происходить перезапись одного байта памяти,
869
что позволяло атакующему, имеющему возможность подделывать UDP-пакеты
870
от DNS-сервера, вызвать падение рабочего процесса или, потенциально,
871
выполнение произвольного кода (CVE-2021-23017).
872
873
*) Добавление: директивы proxy_ssl_certificate,
874
proxy_ssl_certificate_key, grpc_ssl_certificate,
875
grpc_ssl_certificate_key, uwsgi_ssl_certificate и
876
uwsgi_ssl_certificate_key поддерживают переменные.
877
878
*) Добавление: директива max_errors в почтовом прокси-сервере.
879
880
*) Добавление: почтовый прокси-сервер поддерживает POP3 и IMAP
881
pipelining.
882
883
*) Добавление: параметр fastopen директивы listen в модуле stream.
884
Спасибо Anbang Wen.
885
886
*) Исправление: специальные символы не экранировались при автоматическом
887
перенаправлении с добавлением завершающего слэша.
888
889
*) Исправление: при использовании SMTP pipelining соединения с клиентами
890
в почтовом прокси-сервере могли неожиданно закрываться.
891
892
893
Изменения в nginx 1.19.10 13.04.2021
894
895
*) Изменение: в директиве keepalive_requests значение по умолчанию
896
изменено на 1000.
897
898
*) Добавление: директива keepalive_time.
899
900
*) Добавление: переменная $connection_time.
901
902
*) Изменение: при использовании zlib-ng в логах появлялись сообщения
903
"gzip filter failed to use preallocated memory".
904
905
906
Изменения в nginx 1.19.9 30.03.2021
907
908
*) Исправление: nginx не собирался с почтовым прокси-сервером, но без
909
модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8.
910
911
*) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
912
"upstream sent response body larger than indicated content length";
913
ошибка появилась в 1.19.1.
914
915
*) Исправление: если клиент закрывал соединение в момент отбрасывания
916
тела запроса, nginx мог не закрыть соединение до истечения
917
keepalive-таймаута.
918
919
*) Исправление: при ожидании задержки limit_req или auth_delay, а также
920
при работе с бэкендами nginx мог не обнаружить, что соединение уже
921
закрыто клиентом.
922
923
*) Исправление: в методе обработки соединений eventport.
924
925
926
Изменения в nginx 1.19.8 09.03.2021
927
928
*) Добавление: в директиве proxy_cookie_flags теперь флаги можно
929
задавать с помощью переменных.
930
931
*) Добавление: параметр proxy_protocol в директиве listen, директивы
932
proxy_protocol и set_real_ip_from в почтовом прокси-сервере.
933
934
*) Исправление: HTTP/2-соединения сразу закрывались при использовании
935
"keepalive_timeout 0"; ошибка появилась в 1.19.7.
936
937
*) Исправление: некоторые ошибки логгировались как неизвестные, если
938
nginx был собран с glibc 2.32.
939
940
*) Исправление: в методе обработки соединений eventport.
941
942
943
Изменения в nginx 1.19.7 16.02.2021
944
945
*) Изменение: обработка соединений в HTTP/2 была изменена и теперь более
946
соответствует HTTP/1.x; директивы http2_recv_timeout,
947
http2_idle_timeout и http2_max_requests упразднены, вместо них
948
следует использовать директивы keepalive_timeout и
949
keepalive_requests.
950
951
*) Изменение: директивы http2_max_field_size и http2_max_header_size
952
упразднены, вместо них следует использовать директиву
953
large_client_header_buffers.
954
955
*) Добавление: теперь при исчерпании свободных соединений nginx
956
закрывает не только keepalive-соединения, но и соединения в lingering
957
close.
958
959
*) Исправление: в логах могли появляться сообщения "zero size buf in
960
output", если бэкенд возвращал некорректный ответ при
961
небуферизированном проксировании; ошибка появилась в 1.19.1.
962
963
*) Исправление: при использовании директивы return вместе с image_filter
964
или xslt_stylesheet HEAD-запросы обрабатывались некорректно.
965
966
*) Исправление: в директиве add_trailer.
967
968
969
Изменения в nginx 1.19.6 15.12.2020
970
971
*) Исправление: ошибки "no live upstreams", если server в блоке upstream
972
был помечен как down.
973
974
*) Исправление: при использовании HTTPS в рабочем процессе мог произойти
975
segmentation fault; ошибка появилась в 1.19.5.
976
977
*) Исправление: nginx возвращал ошибку 400 на запросы вида
978
"GET http://example.com?args HTTP/1.0".
979
980
*) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module.
981
Спасибо Chris Newton.
982
983
984
Изменения в nginx 1.19.5 24.11.2020
985
986
*) Добавление: ключ -e.
987
988
*) Добавление: при сборке дополнительных модулей теперь можно указывать
989
одни и те же исходные файлы в разных модулях.
990
991
*) Исправление: SSL shutdown не работал при закрытии соединений с
992
ожиданием дополнительных данных (lingering close).
993
994
*) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
995
"upstream sent frame for closed stream".
996
997
*) Исправление: во внутреннем API для обработки тела запроса.
998
999
1000
Изменения в nginx 1.19.4 27.10.2020
1001
1002
*) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
1003
grpc_ssl_conf_command и uwsgi_ssl_conf_command.
1004
1005
*) Добавление: директива ssl_reject_handshake.
1006
1007
*) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере.
1008
1009
1010
Изменения в nginx 1.19.3 29.09.2020
1011
1012
*) Добавление: модуль ngx_stream_set_module.
1013
1014
*) Добавление: директива proxy_cookie_flags.
1015
1016
*) Добавление: директива userid_flags.
1017
1018
*) Исправление: расширение управления кэшированием stale-if-error
1019
ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502,
1020
503, 504, 403, 404 или 429.
1021
1022
*) Исправление: если использовалось кэширование и бэкенд возвращал
1023
ответы с строкой заголовка Vary, в логах могли появляться сообщения
1024
"[crit] cache file ... has too long header".
1025
1026
*) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться
1027
сообщения "[crit] SSL_write() failed".
1028
1029
*) Исправление: в логах могли появляться сообщения "SSL_shutdown()
1030
failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2.
1031
1032
*) Исправление: при использовании HTTP/2 в рабочем процессе мог
1033
произойти segmentation fault, если ошибки с кодом 400 с помощью
1034
директивы error_page перенаправлялись в проксируемый location.
1035
1036
*) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в
1037
модуле njs.
1038
1039
1040
Изменения в nginx 1.19.2 11.08.2020
1041
1042
*) Изменение: теперь nginx начинает закрывать keepalive-соединения, не
1043
дожидаясь исчерпания всех свободных соединений, а также пишет об этом
1044
предупреждение в лог ошибок.
1045
1046
*) Изменение: оптимизация чтения тела запроса при использовании chunked
1047
transfer encoding.
1048
1049
*) Исправление: утечки памяти при использовании директивы ssl_ocsp.
1050
1051
*) Исправление: в логах могли появляться сообщения "zero size buf in
1052
output", если FastCGI-сервер возвращал некорректный ответ; ошибка
1053
появилась в 1.19.1.
1054
1055
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1056
если размеры large_client_header_buffers отличались в разных
1057
виртуальных серверах.
1058
1059
*) Исправление: SSL shutdown мог не работать.
1060
1061
*) Исправление: в логах могли появляться сообщения "SSL_shutdown()
1062
failed (SSL: ... bad write retry)".
1063
1064
*) Исправление: в модуле ngx_http_slice_module.
1065
1066
*) Исправление: в модуле ngx_http_xslt_filter_module.
1067
1068
1069
Изменения в nginx 1.19.1 07.07.2020
1070
1071
*) Изменение: директивы lingering_close, lingering_time и
1072
lingering_timeout теперь работают при использовании HTTP/2.
1073
1074
*) Изменение: теперь лишние данные, присланные бэкендом, всегда
1075
отбрасываются.
1076
1077
*) Изменение: теперь при получении слишком короткого ответа от
1078
FastCGI-сервера nginx пытается отправить клиенту доступную часть
1079
ответа, после чего закрывает соединение с клиентом.
1080
1081
*) Изменение: теперь при получении ответа некорректной длины от
1082
gRPC-бэкенда nginx прекращает обработку ответа с ошибкой.
1083
1084
*) Добавление: параметр min_free в директивах proxy_cache_path,
1085
fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
1086
Спасибо Adam Bambuch.
1087
1088
*) Исправление: nginx не удалял unix domain listen-сокеты при плавном
1089
завершении по сигналу SIGQUIT.
1090
1091
*) Исправление: UDP-пакеты нулевого размера не проксировались.
1092
1093
*) Исправление: проксирование на uwsgi-бэкенды с использованием SSL
1094
могло не работать.
1095
Спасибо Guanzhong Chen.
1096
1097
*) Исправление: в обработке ошибок при использовании директивы ssl_ocsp.
1098
1099
*) Исправление: при использовании файловых систем XFS и NFS размер кэша
1100
на диске мог считаться некорректно.
1101
1102
*) Исправление: если сервер memcached возвращал некорректный ответ, в
1103
логах могли появляться сообщения "negative size buf in writer".
1104
1105
1106
Изменения в nginx 1.19.0 26.05.2020
1107
1108
*) Добавление: проверка клиентских сертификатов с помощью OCSP.
1109
1110
*) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
1111
"upstream sent frame for closed stream".
1112
1113
*) Исправление: OCSP stapling мог не работать, если не была указана
1114
директива resolver.
1115
1116
*) Исправление: соединения с некорректным HTTP/2 preface не
1117
логгировались.
1118
1119
1120
Изменения в nginx 1.17.10 14.04.2020
1121
1122
*) Добавление: директива auth_delay.
1123
1124
1125
Изменения в nginx 1.17.9 03.03.2020
1126
1127
*) Изменение: теперь nginx не разрешает несколько строк "Host" в
1128
заголовке запроса.
1129
1130
*) Исправление: nginx игнорировал дополнительные строки
1131
"Transfer-Encoding" в заголовке запроса.
1132
1133
*) Исправление: утечки сокетов при использовании HTTP/2.
1134
1135
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1136
если использовался OCSP stapling.
1137
1138
*) Исправление: в модуле ngx_http_mp4_module.
1139
1140
*) Исправление: при перенаправлении ошибок с кодом 494 с помощью
1141
директивы error_page nginx возвращал ответ с кодом 494 вместо 400.
1142
1143
*) Исправление: утечки сокетов при использовании подзапросов в модуле
1144
njs и директивы aio.
1145
1146
1147
Изменения в nginx 1.17.8 21.01.2020
1148
1149
*) Добавление: директива grpc_pass поддерживает переменные.
1150
1151
*) Исправление: при обработке pipelined-запросов по SSL-соединению мог
1152
произойти таймаут; ошибка появилась в 1.17.5.
1153
1154
*) Исправление: в директиве debug_points при использовании HTTP/2.
1155
Спасибо Даниилу Бондареву.
1156
1157
1158
Изменения в nginx 1.17.7 24.12.2019
1159
1160
*) Исправление: на старте или во время переконфигурации мог произойти
1161
segmentation fault, если в конфигурации использовалась директива
1162
rewrite с пустой строкой замены.
1163
1164
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1165
если директива break использовалась совместно с директивой alias или
1166
директивой proxy_pass с URI.
1167
1168
*) Исправление: строка Location заголовка ответа могла содержать мусор,
1169
если URI запроса был изменён на URI, содержащий нулевой символ.
1170
1171
*) Исправление: при возврате перенаправлений с помощью директивы
1172
error_page запросы с телом обрабатывались некорректно; ошибка
1173
появилась в 0.7.12.
1174
1175
*) Исправление: утечки сокетов при использовании HTTP/2.
1176
1177
*) Исправление: при обработке pipelined-запросов по SSL-соединению мог
1178
произойти таймаут; ошибка появилась в 1.17.5.
1179
1180
*) Исправление: в модуле ngx_http_dav_module.
1181
1182
1183
Изменения в nginx 1.17.6 19.11.2019
1184
1185
*) Добавление: переменные $proxy_protocol_server_addr и
1186
$proxy_protocol_server_port.
1187
1188
*) Добавление: директива limit_conn_dry_run.
1189
1190
*) Добавление: переменные $limit_req_status и $limit_conn_status.
1191
1192
1193
Изменения в nginx 1.17.5 22.10.2019
1194
1195
*) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
1196
доступен, чтобы избежать чтения из быстрого соединения в течение
1197
долгого времени.
1198
1199
*) Исправление: неполные закодированные символы в конце URI запроса
1200
игнорировались.
1201
1202
*) Исправление: "/." и "/.." в конце URI запроса не нормализовывались.
1203
1204
*) Исправление: в директиве merge_slashes.
1205
1206
*) Исправление: в директиве ignore_invalid_headers.
1207
Спасибо Alan Kemp.
1208
1209
*) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее.
1210
1211
1212
Изменения в nginx 1.17.4 24.09.2019
1213
1214
*) Изменение: улучшено детектирование некорректного поведения клиентов в
1215
HTTP/2.
1216
1217
*) Изменение: в обработке непрочитанного тела запроса при возврате
1218
ошибок в HTTP/2.
1219
1220
*) Исправление: директива worker_shutdown_timeout могла не работать при
1221
использовании HTTP/2.
1222
1223
*) Исправление: при использовании HTTP/2 и директивы
1224
proxy_request_buffering в рабочем процессе мог произойти segmentation
1225
fault.
1226
1227
*) Исправление: на Windows при использовании SSL уровень записи в лог
1228
ошибки ECONNABORTED был "crit" вместо "error".
1229
1230
*) Исправление: nginx игнорировал лишние данные при использовании
1231
chunked transfer encoding.
1232
1233
*) Исправление: если использовалась директива return и при чтении тела
1234
запроса возникала ошибка, nginx всегда возвращал ошибку 500.
1235
1236
*) Исправление: в обработке ошибок выделения памяти.
1237
1238
1239
Изменения в nginx 1.17.3 13.08.2019
1240
1241
*) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
1242
потребление памяти и ресурсов процессора (CVE-2019-9511,
1243
CVE-2019-9513, CVE-2019-9516).
1244
1245
*) Исправление: при использовании сжатия в логах могли появляться
1246
сообщения "zero size buf"; ошибка появилась в 1.17.2.
1247
1248
*) Исправление: при использовании директивы resolver в SMTP
1249
прокси-сервере в рабочем процессе мог произойти segmentation fault.
1250
1251
1252
Изменения в nginx 1.17.2 23.07.2019
1253
1254
*) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4.
1255
Спасибо Илье Леошкевичу.
1256
1257
*) Изменение: метод $r->internal_redirect() встроенного перла теперь
1258
ожидает закодированный URI.
1259
1260
*) Добавление: теперь с помощью метода $r->internal_redirect()
1261
встроенного перла можно перейти в именованный location.
1262
1263
*) Исправление: в обработке ошибок во встроенном перле.
1264
1265
*) Исправление: на старте или во время переконфигурации мог произойти
1266
segmentation fault, если в конфигурации использовалось значение hash
1267
bucket size больше 64 килобайт.
1268
1269
*) Исправление: при использовании методов обработки соединений select,
1270
poll и /dev/poll nginx мог нагружать процессор во время
1271
небуферизованного проксирования и при проксировании
1272
WebSocket-соединений.
1273
1274
*) Исправление: в модуле ngx_http_xslt_filter_module.
1275
1276
*) Исправление: в модуле ngx_http_ssi_filter_module.
1277
1278
1279
Изменения в nginx 1.17.1 25.06.2019
1280
1281
*) Добавление: директива limit_req_dry_run.
1282
1283
*) Добавление: при использовании директивы hash в блоке upstream пустой
1284
ключ хэширования теперь приводит к переключению на round-robin
1285
балансировку.
1286
Спасибо Niklas Keller.
1287
1288
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1289
если использовалось кэширование и директива image_filter, а ошибки с
1290
кодом 415 перенаправлялись с помощью директивы error_page; ошибка
1291
появилась в 1.11.10.
1292
1293
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1294
если использовался встроенный перл; ошибка появилась в 1.7.3.
1295
1296
1297
Изменения в nginx 1.17.0 21.05.2019
1298
1299
*) Добавление: директивы limit_rate и limit_rate_after поддерживают
1300
переменные.
1301
1302
*) Добавление: директивы proxy_upload_rate и proxy_download_rate в
1303
модуле stream поддерживают переменные.
1304
1305
*) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8.
1306
1307
*) Изменение: теперь postpone-фильтр собирается всегда.
1308
1309
*) Исправление: директива include не работала в блоках if и
1310
limit_except.
1311
1312
*) Исправление: в обработке byte ranges.
1313
1314
1315
Изменения в nginx 1.15.12 16.04.2019
1316
1317
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1318
если в директивах ssl_certificate или ssl_certificate_key
1319
использовались переменные и был включён OCSP stapling.
1320
1321
1322
Изменения в nginx 1.15.11 09.04.2019
1323
1324
*) Исправление: в директиве ssl_stapling_file на Windows.
1325
1326
1327
Изменения в nginx 1.15.10 26.03.2019
1328
1329
*) Изменение: теперь при использовании имени хоста в директиве listen
1330
nginx создаёт listen-сокеты для всех адресов, соответствующих этому
1331
имени (ранее использовался только первый адрес).
1332
1333
*) Добавление: диапазоны портов в директиве listen.
1334
1335
*) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
1336
из переменных.
1337
1338
*) Изменение: переменная $ssl_server_name могла быть пустой при
1339
использовании OpenSSL 1.1.1.
1340
1341
*) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
1342
ошибка появилась в 1.15.9.
1343
1344
1345
Изменения в nginx 1.15.9 26.02.2019
1346
1347
*) Добавление: директивы ssl_certificate и ssl_certificate_key
1348
поддерживают переменные.
1349
1350
*) Добавление: метод poll теперь доступен на Windows при использовании
1351
Windows Vista и новее.
1352
1353
*) Исправление: если при использовании метода select на Windows
1354
происходила ошибка при установлении соединения с бэкендом, nginx
1355
ожидал истечения таймаута на установление соединения.
1356
1357
*) Исправление: директивы proxy_upload_rate и proxy_download_rate в
1358
модуле stream работали некорректно при проксировании UDP-пакетов.
1359
1360
1361
Изменения в nginx 1.15.8 25.12.2018
1362
1363
*) Добавление: переменная $upstream_bytes_sent.
1364
Спасибо Piotr Sikora.
1365
1366
*) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
1367
Спасибо Геннадию Махомеду.
1368
1369
*) Исправление: в директиве proxy_cache_background_update.
1370
1371
*) Исправление: в директиве geo при использовании unix domain
1372
listen-сокетов.
1373
1374
*) Изменение: при использовании директивы ssl_early_data с OpenSSL в
1375
логах могли появляться сообщения "ignoring stale global SSL error ...
1376
bad length".
1377
1378
*) Исправление: в nginx/Windows.
1379
1380
*) Исправление: в модуле ngx_http_autoindex_module на 32-битных
1381
платформах.
1382
1383
1384
Изменения в nginx 1.15.7 27.11.2018
1385
1386
*) Добавление: директива proxy_requests в модуле stream.
1387
1388
*) Добавление: параметр "delay" директивы "limit_req".
1389
Спасибо Владиславу Шабанову и Петру Щучкину.
1390
1391
*) Исправление: утечки памяти в случае ошибок при переконфигурации.
1392
1393
*) Исправление: в переменных $upstream_response_time,
1394
$upstream_connect_time и $upstream_header_time.
1395
1396
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1397
если использовался модуль ngx_http_mp4_module на 32-битных
1398
платформах.
1399
1400
1401
Изменения в nginx 1.15.6 06.11.2018
1402
1403
*) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
1404
потреблению памяти (CVE-2018-16843) и ресурсов процессора
1405
(CVE-2018-16844).
1406
1407
*) Безопасность: при обработке специально созданного mp4-файла модулем
1408
ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
1409
отправлено клиенту (CVE-2018-16845).
1410
1411
*) Добавление: директивы proxy_socket_keepalive,
1412
fastcgi_socket_keepalive, grpc_socket_keepalive,
1413
memcached_socket_keepalive, scgi_socket_keepalive и
1414
uwsgi_socket_keepalive.
1415
1416
*) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
1417
OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.
1418
1419
*) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
1420
количество памяти.
1421
1422
1423
Изменения в nginx 1.15.5 02.10.2018
1424
1425
*) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
1426
процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.
1427
1428
*) Исправление: незначительных потенциальных ошибок.
1429
1430
1431
Изменения в nginx 1.15.4 25.09.2018
1432
1433
*) Добавление: теперь директиву ssl_early_data можно использовать с
1434
OpenSSL.
1435
1436
*) Исправление: в модуле ngx_http_uwsgi_module.
1437
Спасибо Chris Caputo.
1438
1439
*) Исправление: соединения к некоторым gRPC-бэкендам могли не
1440
кэшироваться при использовании директивы keepalive.
1441
1442
*) Исправление: при использовании директивы error_page для
1443
перенаправления ошибок, возникающих на ранних этапах обработки
1444
запроса, в частности ошибок с кодом 400, могла происходить утечка
1445
сокетов.
1446
1447
*) Исправление: директива return при возврате ошибок не изменяла код
1448
ответа, если запрос был перенаправлен с помощью директивы error_page.
1449
1450
*) Исправление: стандартные сообщения об ошибках и ответы модуля
1451
ngx_http_autoindex_module содержали атрибут bgcolor, что могло
1452
приводить к их некорректному отображению при использовании
1453
пользовательских настроек цветов в браузерах.
1454
Спасибо Nova DasSarma.
1455
1456
*) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
1457
"no suitable signature algorithm" понижен с уровня crit до info.
1458
1459
1460
Изменения в nginx 1.15.3 28.08.2018
1461
1462
*) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.
1463
1464
*) Добавление: директива ssl_early_data, сейчас доступна при
1465
использовании BoringSSL.
1466
1467
*) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
1468
upstream.
1469
1470
*) Исправление: модуль ngx_http_dav_module при копировании файла поверх
1471
существующего файла с помощью метода COPY не обнулял целевой файл.
1472
1473
*) Исправление: модуль ngx_http_dav_module при перемещении файла между
1474
файловыми системами с помощью метода MOVE устанавливал нулевые права
1475
доступа на результирующий файл и не сохранял время изменения файла.
1476
1477
*) Исправление: модуль ngx_http_dav_module при копировании файла с
1478
помощью метода COPY для результирующего файла использовал права
1479
доступа по умолчанию.
1480
1481
*) Изменение: некоторые клиенты могли не работать при использовании
1482
HTTP/2; ошибка появилась в 1.13.5.
1483
1484
*) Исправление: nginx не собирался с LibreSSL 2.8.0.
1485
1486
1487
Изменения в nginx 1.15.2 24.07.2018
1488
1489
*) Добавление: переменная $ssl_preread_protocol в модуле
1490
ngx_stream_ssl_preread_module.
1491
1492
*) Добавление: теперь при использовании директивы
1493
reset_timedout_connection nginx сбрасывает соединения, закрываемые с
1494
кодом 444.
1495
1496
*) Изменение: уровень логгирования ошибок SSL "http request", "https
1497
proxy request", "unsupported protocol" и "version too low" понижен с
1498
уровня crit до info.
1499
1500
*) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
1501
первой попытке отправки происходила ошибка.
1502
1503
*) Исправление: параметр reuseport директивы listen игнорировался, если
1504
количество рабочих процессов было задано после директивы listen.
1505
1506
*) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
1507
ssl_prefer_server_ciphers нельзя было выключить в виртуальном
1508
сервере, если она была включена в сервере по умолчанию.
1509
1510
*) Исправление: повторное использование SSL-сессий к бэкендам не
1511
работало с протоколом TLS 1.3.
1512
1513
1514
Изменения в nginx 1.15.1 03.07.2018
1515
1516
*) Добавление: директива random в блоке upstream.
1517
1518
*) Добавление: улучшена производительность при использовании директив
1519
hash и ip_hash совместно с директивой zone.
1520
1521
*) Добавление: параметр reuseport директивы listen теперь использует
1522
SO_REUSEPORT_LB на FreeBSD 12.
1523
1524
*) Исправление: HTTP/2 server push не работал, если SSL терминировался
1525
прокси-сервером перед nginx'ом.
1526
1527
*) Исправление: директива tcp_nopush всегда использовалась для
1528
соединений к бэкендам.
1529
1530
*) Исправление: при отправке сохранённого на диск тела запроса на
1531
gRPC-бэкенд могли возникать ошибки.
1532
1533
1534
Изменения в nginx 1.15.0 05.06.2018
1535
1536
*) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
1537
следует использовать параметр ssl директивы listen.
1538
1539
*) Изменение: теперь при использовании директивы listen с параметром ssl
1540
nginx определяет отсутствие SSL-сертификатов при тестировании
1541
конфигурации.
1542
1543
*) Добавление: теперь модуль stream умеет обрабатывать несколько
1544
входящих UDP-пакетов от клиента в рамках одной сессии.
1545
1546
*) Исправление: в директиве proxy_cache_valid можно было указать
1547
некорректный код ответа.
1548
1549
*) Исправление: nginx не собирался gcc 8.1.
1550
1551
*) Исправление: логгирование в syslog останавливалось при изменении
1552
локального IP-адреса.
1553
1554
*) Исправление: nginx не собирался компилятором clang, если был
1555
установлен CUDA SDK; ошибка появилась в 1.13.8.
1556
1557
*) Исправление: при использовании unix domain listen-сокетов на FreeBSD
1558
в процессе обновления исполняемого файла в логе могли появляться
1559
сообщения "getsockopt(TCP_FASTOPEN) ... failed".
1560
1561
*) Исправление: nginx не собирался на Fedora 28 Linux.
1562
1563
*) Исправление: при использовании директивы limit_req заданная скорость
1564
обработки запросов могла не соблюдаться.
1565
1566
*) Исправление: в обработке адресов клиентов при использовании unix
1567
domain listen-сокетов для работы с датаграммами на Linux.
1568
1569
*) Исправление: в обработке ошибок выделения памяти.
1570
1571
1572
Изменения в nginx 1.13.12 10.04.2018
1573
1574
*) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
1575
могли неожиданно закрываться.
1576
1577
1578
Изменения в nginx 1.13.11 03.04.2018
1579
1580
*) Добавление: параметр proxy_protocol директивы listen теперь
1581
поддерживает протокол PROXY версии 2.
1582
1583
*) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.
1584
1585
*) Исправление: в параметрах http_404, http_500 и им подобных директивы
1586
proxy_next_upstream.
1587
1588
1589
Изменения в nginx 1.13.10 20.03.2018
1590
1591
*) Добавление: теперь параметр set в SSI-директиве include позволяет
1592
сохранять в переменную любые ответы; максимальный размер ответа
1593
задаётся директивой subrequest_output_buffer_size.
1594
1595
*) Добавление: теперь nginx использует вызов
1596
clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
1597
избежать некорректного срабатывания таймаутов при изменениях
1598
системного времени.
1599
1600
*) Добавление: параметр "escape=none" директивы log_format.
1601
Спасибо Johannes Baiter и Calin Don.
1602
1603
*) Добавление: переменная $ssl_preread_alpn_protocols в модуле
1604
ngx_stream_ssl_preread_module.
1605
1606
*) Добавление: модуль ngx_http_grpc_module.
1607
1608
*) Исправление: в обработке ошибок выделения памяти в директиве geo.
1609
1610
*) Исправление: при использовании переменных в директиве
1611
auth_basic_user_file в лог мог выводиться символ '\0'.
1612
Спасибо Вадиму Филимонову.
1613
1614
1615
Изменения в nginx 1.13.9 20.02.2018
1616
1617
*) Добавление: поддержка HTTP/2 server push; директивы http2_push и
1618
http2_push_preload.
1619
1620
*) Исправление: при использовании кэша в логах могли появляться
1621
сообщения "header already sent"; ошибка появилась в 1.9.13.
1622
1623
*) Исправление: при использовании директивы ssl_verify_client в рабочем
1624
процессе мог произойти segmentation fault, если в виртуальном сервере
1625
не был указан SSL-сертификат.
1626
1627
*) Исправление: в модуле ngx_http_v2_module.
1628
1629
*) Исправление: в модуле ngx_http_dav_module.
1630
1631
1632
Изменения в nginx 1.13.8 26.12.2017
1633
1634
*) Добавление: теперь при использовании параметра transparent директив
1635
proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
1636
nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
1637
процессах.
1638
1639
*) Добавление: улучшения в определении размера строки кэша процессора.
1640
Спасибо Debayan Ghosh.
1641
1642
*) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
1643
Спасибо Геннадию Махомеду.
1644
1645
*) Исправление: процедура обновления исполняемого файла не работала,
1646
если после завершения родительского процесса новым родительским
1647
процессом nginx'а становился процесс с PID, отличным от 1.
1648
1649
*) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
1650
запросы с телом.
1651
1652
*) Исправление: в директиве proxy_limit_rate при использовании с
1653
директивой keepalive.
1654
1655
*) Исправление: при использовании "proxy_buffering off" часть ответа
1656
могла буферизироваться, если клиентское соединение использовало SSL.
1657
Спасибо Patryk Lesiewicz.
1658
1659
*) Исправление: в директиве proxy_cache_background_update.
1660
1661
*) Исправление: переменную вида "${name}" с именем в фигурных скобках
1662
нельзя было использовать в начале параметра не заключив весь параметр
1663
в кавычки.
1664
1665
1666
Изменения в nginx 1.13.7 21.11.2017
1667
1668
*) Исправление: в переменной $upstream_status.
1669
1670
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1671
если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
1672
1673
*) Исправление: если при переконфигурации изменялся размер зоны
1674
разделяемой памяти и переконфигурация завершалась неудачно, то в
1675
главном процессе происходил segmentation fault.
1676
1677
*) Исправление: в модуле ngx_http_fastcgi_module.
1678
1679
*) Исправление: nginx возвращал ошибку 500, если в директиве
1680
xslt_stylesheet были заданы параметры без использования переменных.
1681
1682
*) Изменение: при использовании варианта библиотеки zlib от Intel в лог
1683
писались сообщения "gzip filter failed to use preallocated memory".
1684
1685
*) Исправление: директива worker_shutdown_timeout не работала при
1686
использовании почтового прокси-сервера и при проксировании
1687
WebSocket-соединений.
1688
1689
1690
Изменения в nginx 1.13.6 10.10.2017
1691
1692
*) Исправление: при использовании директивы ssl_preread в модуле stream
1693
не работало переключение на следующий бэкенд.
1694
1695
*) Исправление: в модуле ngx_http_v2_module.
1696
Спасибо Piotr Sikora.
1697
1698
*) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
1699
платформах с 64-битным time_t.
1700
1701
*) Исправление: в обработке дат до 1970 года и после 10000 года.
1702
1703
*) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
1704
бэкендов не логгировались или логгировались на уровне info вместо
1705
error.
1706
1707
*) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
1708
не указав в логе причину.
1709
1710
*) Исправление: в обработке повреждённых файлов кэша.
1711
1712
*) Исправление: при кэшировании ошибок, перехваченных error_page, не
1713
учитывались заголовки управления кэшированием.
1714
1715
*) Исправление: при использовании HTTP/2 тело запроса могло быть
1716
повреждено.
1717
1718
*) Исправление: в обработке адресов клиентов при использовании unix
1719
domain сокетов.
1720
1721
*) Исправление: при использовании директивы "hash ... consistent" в
1722
блоке upstream nginx нагружал процессор, если использовались большие
1723
веса и все или почти все бэкенды были недоступны.
1724
1725
1726
Изменения в nginx 1.13.5 05.09.2017
1727
1728
*) Добавление: переменная $ssl_client_escaped_cert.
1729
1730
*) Исправление: директива ssl_session_ticket_key и параметр include
1731
директивы geo не работали на Windows.
1732
1733
*) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
1734
помощью нескольких диапазонов возвращалась некорректная длина ответа.
1735
1736
*) Исправление: директива "expires modified" и обработка строки If-Range
1737
заголовка запроса не учитывали время последнего изменения ответа,
1738
если использовалось проксирование без кэширования.
1739
1740
1741
Изменения в nginx 1.13.4 08.08.2017
1742
1743
*) Добавление: модуль ngx_http_mirror_module.
1744
1745
*) Исправление: клиентские соединения могли сбрасываться при
1746
тестировании конфигурации, если использовался параметр reuseport
1747
директивы listen на Linux.
1748
1749
*) Исправление: тело запроса могло быть недоступно в подзапросах, если
1750
оно было сохранено в файл и использовалось проксирование.
1751
1752
*) Исправление: очистка кэша по max_size не работала на Windows.
1753
1754
*) Исправление: любое выделение разделяемой памяти на Windows требовало
1755
4096 байт памяти.
1756
1757
*) Исправление: при использовании директивы zone в блоке upstream на
1758
Windows рабочий процесс мог завершаться аварийно.
1759
1760
1761
Изменения в nginx 1.13.3 11.07.2017
1762
1763
*) Безопасность: специально созданный запрос мог вызвать целочисленное
1764
переполнение в range-фильтре и последующую некорректную обработку
1765
запрошенных диапазонов, что потенциально могло привести к утечке
1766
конфиденциальной информации (CVE-2017-7529).
1767
1768
1769
Изменения в nginx 1.13.2 27.06.2017
1770
1771
*) Изменение: теперь при запросе диапазона, начинающегося с 0, из
1772
пустого файла nginx возвращает ответ 200 вместо 416.
1773
1774
*) Добавление: директива add_trailer.
1775
Спасибо Piotr Sikora.
1776
1777
*) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
1778
в 1.13.0.
1779
1780
*) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
1781
Спасибо Orgad Shaneh.
1782
1783
*) Исправление: при использовании SSI с большим количеством подзапросов
1784
и proxy_pass с переменными в рабочем процессе мог произойти
1785
segmentation fault.
1786
1787
*) Исправление: в модуле ngx_http_v2_module.
1788
Спасибо Piotr Sikora.
1789
1790
1791
Изменения в nginx 1.13.1 30.05.2017
1792
1793
*) Добавление: теперь в качестве параметра директивы set_real_ip_from
1794
можно указывать имя хоста.
1795
1796
*) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
1797
1798
*) Добавление: директива worker_cpu_affinity теперь работает на
1799
DragonFly BSD.
1800
Спасибо Sepherosa Ziehau.
1801
1802
*) Исправление: SSL renegotiation в соединениях к бэкендам не работал
1803
при использовании OpenSSL до 1.1.0.
1804
1805
*) Изменение: nginx не собирался с Oracle Developer Studio 12.5.
1806
1807
*) Изменение: теперь cache manager пропускает заблокированные записи при
1808
очистке кэша по max_size.
1809
1810
*) Исправление: клиентские SSL-соединения сразу закрывались, если
1811
использовался отложенный accept и параметр proxy_protocol директивы
1812
listen.
1813
1814
*) Исправление: в директиве proxy_cache_background_update.
1815
1816
*) Изменение: теперь директива tcp_nodelay устанавливает опцию
1817
TCP_NODELAY перед SSL handshake.
1818
1819
1820
Изменения в nginx 1.13.0 25.04.2017
1821
1822
*) Изменение: теперь SSL renegotiation допускается в соединениях к
1823
бэкендам.
1824
1825
*) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
1826
прокси-сервере и модуле stream.
1827
1828
*) Добавление: директивы return и error_page теперь могут использоваться
1829
для возврата перенаправлений с кодом 308.
1830
Спасибо Simon Leblanc.
1831
1832
*) Добавление: параметр TLSv1.3 в директиве ssl_protocols.
1833
1834
*) Добавление: при логгировании сигналов теперь указывается PID
1835
отправившего сигнал процесса.
1836
1837
*) Исправление: в обработке ошибок выделения памяти.
1838
1839
*) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
1840
исходящий адрес ответного UDP-пакета мог отличаться от адреса
1841
назначения исходного пакета.
1842
1843
1844
Изменения в nginx 1.11.13 04.04.2017
1845
1846
*) Добавление: параметр http_429 в директивах proxy_next_upstream,
1847
fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
1848
Спасибо Piotr Sikora.
1849
1850
*) Исправление: в обработке ошибок выделения памяти.
1851
1852
*) Исправление: при использовании директив sendfile и timer_resolution
1853
на Linux запросы могли зависать.
1854
1855
*) Исправление: при использовании с подзапросами директив sendfile и
1856
aio_write запросы могли зависать.
1857
1858
*) Исправление: в модуле ngx_http_v2_module.
1859
Спасибо Piotr Sikora.
1860
1861
*) Исправление: при использовании HTTP/2 в рабочем процессе мог
1862
произойти segmentation fault.
1863
1864
*) Исправление: запросы могли зависать при использовании с подзапросами
1865
директив limit_rate, sendfile_max_chunk, limit_req или метода
1866
$r->sleep() встроенного перла.
1867
1868
*) Исправление: в модуле ngx_http_slice_module.
1869
1870
1871
Изменения в nginx 1.11.12 24.03.2017
1872
1873
*) Исправление: nginx мог нагружать процессор; ошибка появилась в
1874
1.11.11.
1875
1876
1877
Изменения в nginx 1.11.11 21.03.2017
1878
1879
*) Добавление: директива worker_shutdown_timeout.
1880
1881
*) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
1882
Спасибо Wei-Ko Kao.
1883
1884
*) Исправление: при попытке установить переменную $limit_rate в пустую
1885
строку в рабочем процессе мог произойти segmentation fault.
1886
1887
*) Исправление: директивы proxy_cache_background_update,
1888
fastcgi_cache_background_update, scgi_cache_background_update и
1889
uwsgi_cache_background_update могли работать некорректно, если
1890
использовалась директива if.
1891
1892
*) Исправление: в рабочем процессе мог произойти segmentation fault,
1893
если количество large_client_header_buffers в виртуальном сервере
1894
отличалось от такового в сервере по умолчанию.
1895
1896
*) Исправление: в почтовом прокси-сервере.
1897
1898
1899
Изменения в nginx 1.11.10 14.02.2017
1900
1901
*) Изменение: формат заголовка кэша был изменен, ранее закэшированные
1902
ответы будут загружены заново.
1903
1904
*) Добавление: поддержка расширений stale-while-revalidate и
1905
stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда.
1906
1907
*) Добавление: директивы proxy_cache_background_update,
1908
fastcgi_cache_background_update, scgi_cache_background_update и
1909
uwsgi_cache_background_update.
1910
1911
*) Добавление: теперь nginx может кэшировать ответы со строкой Vary
1912
заголовка длиной до 128 символов (вместо 42 символов в предыдущих
1913
версиях).
1914
1915
*) Добавление: параметр build директивы server_tokens.
1916
Спасибо Tom Thorogood.
1917
1918
*) Исправление: при обработке запросов со строкой "Expect: 100-continue"
1919
в заголовке запроса в логах могли появляться сообщения "[crit]
1920
SSL_write() failed".
1921
1922
*) Исправление: модуль ngx_http_slice_module не работал в именованных
1923
location'ах.
1924
1925
*) Исправление: при использовании AIO после перенаправления запроса с
1926
помощью X-Accel-Redirect в рабочем процессе мог произойти
1927
segmentation fault.
1928
1929
*) Исправление: уменьшено потребление памяти для долгоживущих запросов,
1930
использующих сжатие.
1931
1932
1933
Изменения в nginx 1.11.9 24.01.2017
1934
1935
*) Исправление: при использовании модуля stream nginx мог нагружать
1936
процессор; ошибка появилась в 1.11.5.
1937
1938
*) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере
1939
можно было использовать, даже если он не был разрешён в конфигурации.
1940
1941
*) Исправление: при использовании директивы ssl_verify_client модуля
1942
stream в рабочем процессе мог произойти segmentation fault.
1943
1944
*) Исправление: директива ssl_verify_client модуля stream могла не
1945
работать.
1946
1947
*) Исправление: при исчерпании рабочим процессом свободных соединений
1948
keepalive-соединения могли закрываться излишне агрессивно.
1949
Спасибо Joel Cunningham.
1950
1951
*) Исправление: при использовании директивы sendfile на FreeBSD и macOS
1952
мог возвращаться некорректный ответ; ошибка появилась в 1.7.8.
1953
1954
*) Исправление: при использовании директивы aio_write ответ мог
1955
сохраняться в кэш не полностью.
1956
1957
*) Исправление: при использовании директивы aio_write могла происходить
1958
утечка сокетов.
1959
1960
1961
Изменения в nginx 1.11.8 27.12.2016
1962
1963
*) Добавление: директива absolute_redirect.
1964
1965
*) Добавление: параметр escape директивы log_format.
1966
1967
*) Добавление: проверка клиентских SSL-сертификатов в модуле stream.
1968
1969
*) Добавление: директива ssl_session_ticket_key поддерживает шифрование
1970
TLS session tickets с помощью AES256 при использовании с 80-байтными
1971
ключами.
1972
1973
*) Добавление: поддержка vim-commentary в скриптах для vim.
1974
Спасибо Armin Grodon.
1975
1976
*) Исправление: рекурсия при получении значений переменных не
1977
ограничивалась.
1978
1979
*) Исправление: в модуле ngx_stream_ssl_preread_module.
1980
1981
*) Исправление: если сервер, описанный в блоке upstream в модуле stream,
1982
был признан неработающим, то после истечения fail_timeout он
1983
признавался работающим только после завершения тестового соединения;
1984
теперь достаточно, чтобы соединение было успешно установлено.
1985
1986
*) Исправление: nginx/Windows не собирался с 64-битным Visual Studio.
1987
1988
*) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0.
1989
1990
1991
Изменения в nginx 1.11.7 13.12.2016
1992
1993
*) Изменение: переменная $ssl_client_verify теперь в случае ошибки
1994
проверки клиентского сертификата содержит строку с описанием ошибки,
1995
например, "FAILED:certificate has expired".
1996
1997
*) Добавление: переменные $ssl_ciphers, $ssl_curves,
1998
$ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
1999
2000
*) Добавление: параметр volatile директивы map.
2001
2002
*) Исправление: при сборке динамических модулей не учитывались заданные
2003
для модуля зависимости.
2004
2005
*) Исправление: при использовании HTTP/2 и директив limit_req или
2006
auth_request тело запроса могло быть повреждено; ошибка появилась в
2007
1.11.0.
2008
2009
*) Исправление: при использовании HTTP/2 в рабочем процессе мог
2010
произойти segmentation fault; ошибка появилась в 1.11.3.
2011
2012
*) Исправление: в модуле ngx_http_mp4_module.
2013
Спасибо Congcong Hu.
2014
2015
*) Исправление: в модуле ngx_http_perl_module.
2016
2017
2018
Изменения в nginx 1.11.6 15.11.2016
2019
2020
*) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn
2021
изменён на соответствующий RFC 2253 (RFC 4514); значения в старом
2022
формате доступны через переменные $ssl_client_s_dn_legacy и
2023
$ssl_client_i_dn_legacy.
2024
2025
*) Изменение: при сохранении временных файлов в каталоге кэша они теперь
2026
располагаются не в отдельном подкаталоге для временных файлов, а в
2027
том же подкаталоге, что и соответствующие файлы в кэше.
2028
2029
*) Добавление: поддержка метода аутентификации EXTERNAL в почтовом
2030
прокси-сервере.
2031
Спасибо Robert Norris.
2032
2033
*) Добавление: поддержка WebP в модуле ngx_http_image_filter_module.
2034
2035
*) Добавление: директива proxy_method поддерживает переменные.
2036
Спасибо Дмитрию Лазуркину.
2037
2038
*) Добавление: директива http2_max_requests в модуле ngx_http_v2_module.
2039
2040
*) Добавление: директивы proxy_cache_max_range_offset,
2041
fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и
2042
uwsgi_cache_max_range_offset.
2043
2044
*) Исправление: плавное завершение старых рабочих процессов могло
2045
занимать бесконечное время при использовании HTTP/2.
2046
2047
*) Исправление: в модуле ngx_http_mp4_module.
2048
2049
*) Исправление: при проксировании WebSocket-соединений и включённом
2050
кэшировании в логах могли появляться сообщения "ignore long locked
2051
inactive cache entry".
2052
2053
*) Исправление: если во время SSL handshake с бэкендом происходил
2054
таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502
2055
вместо 504.
2056
2057
2058
Изменения в nginx 1.11.5 11.10.2016
2059
2060
*) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6
2061
теперь собирается автоматически.
2062
2063
*) Изменение: теперь, если в блоке upstream не оказалось доступных
2064
серверов, nginx не сбрасывает статистику ошибок всех серверов, как
2065
делал ранее, а ожидает истечения fail_timeout.
2066
2067
*) Добавление: модуль ngx_stream_ssl_preread_module.
2068
2069
*) Добавление: директива server в блоке upstream поддерживает параметр
2070
max_conns.
2071
2072
*) Добавление: параметр configure --with-compat.
2073
2074
*) Добавление: параметры manager_files, manager_threshold и
2075
manager_sleep директив proxy_cache_path, fastcgi_cache_path,
2076
scgi_cache_path и uwsgi_cache_path.
2077
2078
*) Исправление: при сборке perl-модуля не использовались флаги, заданные
2079
с помощью параметра configure --with-ld-opt.
2080
2081
*) Исправление: в директиве add_after_body при использовании совместно с
2082
директивой sub_filter.
2083
2084
*) Исправление: в переменной $realip_remote_addr.
2085
2086
*) Исправление: директивы dav_access, proxy_store_access,
2087
fastcgi_store_access, scgi_store_access и uwsgi_store_access
2088
игнорировали права, заданные для пользователя.
2089
2090
*) Исправление: unix domain listen-сокеты могли не наследоваться при
2091
обновлении исполняемого файла на Linux.
2092
2093
*) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в
2094
HTTP-методе.
2095
2096
2097
Изменения в nginx 1.11.4 13.09.2016
2098
2099
*) Добавление: переменная $upstream_bytes_received.
2100
2101
*) Добавление: переменные $bytes_received, $session_time, $protocol,
2102
$status, $upstream_addr, $upstream_bytes_sent,
2103
$upstream_bytes_received, $upstream_connect_time,
2104
$upstream_first_byte_time и $upstream_session_time в модуле stream.
2105
2106
*) Добавление: модуль ngx_stream_log_module.
2107
2108
*) Добавление: параметр proxy_protocol в директиве listen, переменные
2109
$proxy_protocol_addr и $proxy_protocol_port в модуле stream.
2110
2111
*) Добавление: модуль ngx_stream_realip_module.
2112
2113
*) Исправление: nginx не собирался с модулем stream и модулем
2114
ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка
2115
появилась в 1.11.3.
2116
2117
*) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
2118
ошибка появилась в 1.11.2.
2119
2120
*) Исправление: в параметре ranges директивы geo.
2121
2122
*) Исправление: при использовании директив "aio threads" и sendfile мог
2123
возвращаться некорректный ответ; ошибка появилась в 1.9.13.
2124
2125
2126
Изменения в nginx 1.11.3 26.07.2016
2127
2128
*) Изменение: теперь accept_mutex по умолчанию выключен.
2129
2130
*) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux.
2131
2132
*) Добавление: модуль ngx_stream_geo_module.
2133
2134
*) Добавление: модуль ngx_stream_geoip_module.
2135
2136
*) Добавление: модуль ngx_stream_split_clients_module.
2137
2138
*) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream
2139
поддерживают переменные.
2140
2141
*) Исправление: утечки сокетов при использовании HTTP/2.
2142
2143
*) Исправление: в configure.
2144
Спасибо Piotr Sikora.
2145
2146
2147
Изменения в nginx 1.11.2 05.07.2016
2148
2149
*) Изменение: теперь nginx всегда использует внутренние реализации MD5 и
2150
SHA1; параметры configure --with-md5 и --with-sha1 упразднены.
2151
2152
*) Добавление: поддержка переменных в модуле stream.
2153
2154
*) Добавление: модуль ngx_stream_map_module.
2155
2156
*) Добавление: модуль ngx_stream_return_module.
2157
2158
*) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind,
2159
scgi_bind и uwsgi_bind теперь можно указывать порт.
2160
2161
*) Добавление: теперь nginx использует опцию сокета
2162
IP_BIND_ADDRESS_NO_PORT, если она доступна.
2163
2164
*) Исправление: при использовании HTTP/2 и директивы
2165
proxy_request_buffering в рабочем процессе мог произойти segmentation
2166
fault.
2167
2168
*) Исправление: при использовании HTTP/2 к запросам, передаваемым на
2169
бэкенд, всегда добавлялась строка заголовка "Content-Length", даже
2170
если у запроса не было тела.
2171
2172
*) Исправление: при использовании HTTP/2 в логах могли появляться
2173
сообщения "http request count is zero".
2174
2175
*) Исправление: при использовании директивы sub_filter могло
2176
буферизироваться больше данных, чем это необходимо; проблема
2177
появилась в 1.9.4.
2178
2179
2180
Изменения в nginx 1.11.1 31.05.2016
2181
2182
*) Безопасность: при записи тела специально созданного запроса во
2183
временный файл в рабочем процессе мог происходить segmentation fault
2184
(CVE-2016-4450); ошибка появилась в 1.3.9.
2185
2186
2187
Изменения в nginx 1.11.0 24.05.2016
2188
2189
*) Добавление: параметр transparent директив proxy_bind, fastcgi_bind,
2190
memcached_bind, scgi_bind и uwsgi_bind.
2191
2192
*) Добавление: переменная $request_id.
2193
2194
*) Добавление: директива map поддерживает комбинации нескольких
2195
переменных в качестве результирующих значений.
2196
2197
*) Добавление: теперь при использовании метода epoll nginx проверяет,
2198
поддерживает ли ядро события EPOLLRDHUP, и соответственно
2199
оптимизирует обработку соединений.
2200
2201
*) Добавление: директивы ssl_certificate и ssl_certificate_key теперь
2202
можно указывать несколько раз для загрузки сертификатов разных типов
2203
(например, RSA и ECDSA).
2204
2205
*) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью
2206
директивы ssl_ecdh_curve теперь можно задать список кривых; по
2207
умолчанию используется встроенный в OpenSSL список кривых.
2208
2209
*) Изменение: для использования DHE-шифров теперь надо явно задавать
2210
файл параметров с помощью директивы ssl_dhparam.
2211
2212
*) Добавление: переменная $proxy_protocol_port.
2213
2214
*) Добавление: переменная $realip_remote_port в модуле
2215
ngx_http_realip_module.
2216
2217
*) Добавление: модуль ngx_http_realip_module теперь позволяет
2218
устанавливать не только адрес, но и порт клиента.
2219
2220
*) Изменение: при попытке запросить виртуальный сервер, отличающийся от
2221
согласованного в процессе SSL handshake, теперь возвращается ответ
2222
"421 Misdirected Request"; это улучшает совместимость с некоторыми
2223
HTTP/2-клиентами в случае использования клиентских сертификатов.
2224
2225
*) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса;
2226
директива http2_body_preread_size позволяет указать размер буфера,
2227
который будет использоваться до того, как nginx начнёт читать тело.
2228
2229
*) Исправление: при использовании директивы proxy_cache_bypass не
2230
обновлялись закэшированные ошибочные ответы.
2231
2232
2233
Изменения в nginx 1.9.15 19.04.2016
2234
2235
*) Исправление: при использовании HHVM в качестве FastCGI-сервера могли
2236
возникать ошибки "recv() failed".
2237
2238
*) Исправление: при использовании HTTP/2 и директив limit_req или
2239
auth_request при чтении тела запроса мог произойти таймаут или ошибка
2240
"client violated flow control"; ошибка появилась в 1.9.14.
2241
2242
*) Изменение: при использовании HTTP/2 ответ мог не показываться
2243
некоторыми браузерами, если тело запроса было прочитано не целиком;
2244
ошибка появилась в 1.9.14.
2245
2246
*) Исправление: при использовании директивы "aio threads" соединения
2247
могли зависать.
2248
Спасибо Mindaugas Rasiukevicius.
2249
2250
2251
Изменения в nginx 1.9.14 05.04.2016
2252
2253
*) Добавление: совместимость с OpenSSL 1.1.0.
2254
2255
*) Добавление: директивы proxy_request_buffering,
2256
fastcgi_request_buffering, scgi_request_buffering и
2257
uwsgi_request_buffering теперь работают при использовании HTTP/2.
2258
2259
*) Исправление: при использовании HTTP/2 в логах могли появляться
2260
сообщения "zero size buf in output".
2261
2262
*) Исправление: при использовании HTTP/2 директива client_max_body_size
2263
могла работать неверно.
2264
2265
*) Исправление: незначительных ошибок логгирования.
2266
2267
2268
Изменения в nginx 1.9.13 29.03.2016
2269
2270
*) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по
2271
умолчанию не передаются на другой сервер, если запрос уже был
2272
отправлен на бэкенд; параметр non_idempotent директивы
2273
proxy_next_upstream явно разрешает повторять такие запросы.
2274
2275
*) Добавление: модуль ngx_http_perl_module теперь можно собрать
2276
динамически.
2277
2278
*) Добавление: поддержка UDP в модуле stream.
2279
2280
*) Добавление: директива aio_write.
2281
2282
*) Добавление: теперь cache manager следит за количеством элементов в
2283
кэше и старается не допускать переполнений зоны разделяемой памяти.
2284
2285
*) Исправление: при использовании директив sendfile и aio с подзапросами
2286
в логах могли появляться сообщения "task already active" и "second
2287
aio post".
2288
2289
*) Исправление: при использовании кэширования в логах могли появляться
2290
сообщения "zero size buf in output", если клиент закрывал соединение
2291
преждевременно.
2292
2293
*) Исправление: при использовании кэширования соединения с клиентами
2294
могли закрываться без необходимости.
2295
Спасибо Justin Li.
2296
2297
*) Исправление: nginx мог нагружать процессор при использовании
2298
директивы sendfile на Linux и Solaris, если отправляемый файл был
2299
изменён в процессе отправки.
2300
2301
*) Исправление: при использовании директив sendfile и "aio threads"
2302
соединения могли зависать.
2303
2304
*) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и
2305
uwsgi_pass при использовании переменных.
2306
Спасибо Piotr Sikora.
2307
2308
*) Исправление: в модуле ngx_http_sub_filter_module.
2309
2310
*) Исправление: если в закэшированном соединении к бэкенду происходила
2311
ошибка, запрос передавался на другой сервер без учёта директивы
2312
proxy_next_upstream.
2313
2314
*) Исправление: ошибки "CreateFile() failed" при создании временных
2315
файлов на Windows.
2316
2317
2318
Изменения в nginx 1.9.12 24.02.2016
2319
2320
*) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2.
2321
Спасибо Владу Краснову.
2322
2323
*) Добавление: директива worker_cpu_affinity теперь поддерживает более
2324
64 процессоров.
2325
2326
*) Исправление: совместимость со сторонними модулями на C++; ошибка
2327
появилась в 1.9.11.
2328
Спасибо Piotr Sikora.
2329
2330
*) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка
2331
появилась в 1.9.11.
2332
2333
*) Исправление: директива "add_header ... always" с пустым значением не
2334
удаляла из заголовков ошибочных ответов строки Last-Modified и ETag.
2335
2336
*) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться
2337
сообщения "called a function you should not call" и "shutdown while
2338
in init".
2339
2340
*) Исправление: ошибочные заголовки могли логгироваться некорректно.
2341
2342
*) Исправление: утечки сокетов при использовании HTTP/2.
2343
2344
*) Исправление: в модуле ngx_http_v2_module.
2345
2346
2347
Изменения в nginx 1.9.11 09.02.2016
2348
2349
*) Добавление: теперь resolver поддерживает TCP.
2350
2351
*) Добавление: динамические модули.
2352
2353
*) Исправление: при использовании HTTP/2 переменная $request_length не
2354
учитывала размер заголовков запроса.
2355
2356
*) Исправление: в модуле ngx_http_v2_module.
2357
2358
2359
Изменения в nginx 1.9.10 26.01.2016
2360
2361
*) Безопасность: при использовании директивы resolver во время обработки
2362
ответов DNS-сервера могло происходить разыменование некорректного
2363
адреса, что позволяло атакующему, имеющему возможность подделывать
2364
UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем
2365
процессе (CVE-2016-0742).
2366
2367
*) Безопасность: при использовании директивы resolver во время обработки
2368
CNAME-записей могло произойти обращение к ранее освобождённой памяти,
2369
что позволяло атакующему, имеющему возможность инициировать
2370
преобразование произвольных имён в адреса, вызвать segmentation fault
2371
в рабочем процессе, а также потенциально могло иметь другие
2372
последствия (CVE-2016-0746).
2373
2374
*) Безопасность: при использовании директивы resolver во время обработки
2375
CNAME-записей не во всех случаях проверялось ограничение на
2376
максимальное количество записей в цепочке, что позволяло атакующему,
2377
имеющему возможность инициировать преобразование произвольных имён в
2378
адреса, вызвать чрезмерное потребление ресурсов рабочими процессами
2379
(CVE-2016-0747).
2380
2381
*) Добавление: параметр auto директивы worker_cpu_affinity.
2382
2383
*) Исправление: параметр proxy_protocol директивы listen не работал с
2384
IPv6 listen-сокетами.
2385
2386
*) Исправление: при использовании директивы keepalive соединения к
2387
бэкендам могли кэшироваться некорректно.
2388
2389
*) Исправление: после перенаправления запроса с помощью X-Accel-Redirect
2390
при проксировании использовался HTTP-метод оригинального запроса.
2391
2392
2393
Изменения в nginx 1.9.9 09.12.2015
2394
2395
*) Исправление: проксирование в unix domain сокеты не работало при
2396
использовании переменных; ошибка появилась в 1.9.8.
2397
2398
2399
Изменения в nginx 1.9.8 08.12.2015
2400
2401
*) Добавление: поддержка pwritev().
2402
2403
*) Добавление: директива include в блоке upstream.
2404
2405
*) Добавление: модуль ngx_http_slice_module.
2406
2407
*) Исправление: при использовании LibreSSL в рабочем процессе мог
2408
произойти segmentation fault; ошибка появилась в 1.9.6.
2409
2410
*) Исправление: nginx мог не собираться на OS X.
2411
2412
2413
Изменения в nginx 1.9.7 17.11.2015
2414
2415
*) Добавление: параметр nohostname логгирования в syslog.
2416
2417
*) Добавление: директива proxy_cache_convert_head.
2418
2419
*) Добавление: переменная $realip_remote_addr в модуле
2420
ngx_http_realip_module.
2421
2422
*) Исправление: директива expires могла не срабатывать при использовании
2423
переменных.
2424
2425
*) Исправление: при использовании HTTP/2 в рабочем процессе мог
2426
произойти segmentation fault; ошибка появилась в 1.9.6.
2427
2428
*) Исправление: если nginx был собран с модулем ngx_http_v2_module,
2429
протокол HTTP/2 мог быть использован клиентом, даже если не был
2430
указан параметр http2 директивы listen.
2431
2432
*) Исправление: в модуле ngx_http_v2_module.
2433
2434
2435
Изменения в nginx 1.9.6 27.10.2015
2436
2437
*) Исправление: при использовании HTTP/2 в рабочем процессе мог
2438
произойти segmentation fault.
2439
Спасибо Piotr Sikora и Denis Andzakovic.
2440
2441
*) Исправление: при использовании HTTP/2 переменная $server_protocol
2442
была пустой.
2443
2444
*) Исправление: SSL-соединения к бэкендам в модуле stream могли
2445
неожиданно завершаться по таймауту.
2446
2447
*) Исправление: при использовании различных настроек ssl_session_cache в
2448
разных виртуальных серверах в рабочем процессе мог произойти
2449
segmentation fault.
2450
2451
*) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась
2452
в 1.9.4.
2453
Спасибо Kouhei Sutou.
2454
2455
*) Исправление: при использовании директивы timer_resolution на Windows
2456
время не обновлялось.
2457
2458
*) Незначительные исправления и улучшения.
2459
Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
2460
2461
2462
Изменения в nginx 1.9.5 22.09.2015
2463
2464
*) Добавление: модуль ngx_http_v2_module (заменяет модуль
2465
ngx_http_spdy_module).
2466
Спасибо Dropbox и Automattic за спонсирование разработки.
2467
2468
*) Изменение: теперь по умолчанию директива output_buffers использует
2469
два буфера.
2470
2471
*) Изменение: теперь nginx ограничивает максимальную вложенность
2472
подзапросов, а не количество одновременных подзапросов.
2473
2474
*) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ
2475
полностью.
2476
Спасибо Геннадию Махомеду и Сергею Брестеру.
2477
2478
*) Исправление: при использовании кэша в логах могли появляться
2479
сообщения "header already sent"; ошибка появилась в 1.7.5.
2480
2481
*) Исправление: при использовании CephFS и директивы timer_resolution на
2482
Linux в логах могли появляться сообщения "writev() failed (4:
2483
Interrupted system call)".
2484
2485
*) Исправление: в обработке ошибок конфигурации.
2486
Спасибо Markus Linnala.
2487
2488
*) Исправление: при использовании директивы sub_filter на уровне http в
2489
рабочем процессе происходил segmentation fault; ошибка появилась в
2490
1.9.4.
2491
2492
2493
Изменения в nginx 1.9.4 18.08.2015
2494
2495
*) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer
2496
в модуле stream заменены директивой proxy_buffer_size.
2497
2498
*) Добавление: директива tcp_nodelay в модуле stream.
2499
2500
*) Добавление: теперь можно указать несколько директив sub_filter
2501
одновременно.
2502
2503
*) Добавление: директива sub_filter поддерживает переменные в строке
2504
поиска.
2505
2506
*) Изменение: тестирование конфигурации могло не работать под Linux
2507
OpenVZ.
2508
Спасибо Геннадию Махомеду.
2509
2510
*) Исправление: после переконфигурации старые рабочие процессы могли
2511
сильно нагружать процессор при больших значениях worker_connections.
2512
2513
*) Исправление: при совместном использовании директив try_files и alias
2514
внутри location'а, заданного регулярным выражением, в рабочем
2515
процессе мог произойти segmentation fault; ошибка появилась в 1.7.1.
2516
2517
*) Исправление: директива try_files внутри вложенного location'а,
2518
заданного регулярным выражением, работала неправильно, если во
2519
внешнем location'е использовалась директива alias.
2520
2521
*) Исправление: в обработке ошибок при построении хэш-таблиц.
2522
2523
*) Исправление: nginx не собирался с Visual Studio 2015.
2524
2525
2526
Изменения в nginx 1.9.3 14.07.2015
2527
2528
*) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены.
2529
2530
*) Добавление: ограничение количества соединений в модуле stream.
2531
2532
*) Добавление: ограничение скорости в модуле stream.
2533
2534
*) Исправление: директива zone в блоке upstream не работала на Windows.
2535
2536
*) Исправление: совместимость с LibreSSL в модуле stream.
2537
Спасибо Piotr Sikora.
2538
2539
*) Исправление: в параметре --builddir в configure.
2540
Спасибо Piotr Sikora.
2541
2542
*) Исправление: директива ssl_stapling_file не работала; ошибка
2543
появилась в 1.9.2.
2544
Спасибо Faidon Liambotis и Brandon Black.
2545
2546
*) Исправление: при использовании директивы ssl_stapling в рабочем
2547
процессе мог произойти segmentation fault; ошибка появилась в 1.9.2.
2548
Спасибо Matthew Baldwin.
2549
2550
2551
Изменения в nginx 1.9.2 16.06.2015
2552
2553
*) Добавление: параметр backlog директивы listen в почтовом
2554
прокси-сервере и модуле stream.
2555
2556
*) Добавление: директивы allow и deny в модуле stream.
2557
2558
*) Добавление: директива proxy_bind в модуле stream.
2559
2560
*) Добавление: директива proxy_protocol в модуле stream.
2561
2562
*) Добавление: ключ -T.
2563
2564
*) Добавление: параметр REQUEST_SCHEME добавлен в стандартные
2565
конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и
2566
uwsgi_params.
2567
2568
*) Исправление: параметр reuseport директивы listen в модуле stream не
2569
работал.
2570
2571
*) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший
2572
OCSP-ответ.
2573
2574
2575
Изменения в nginx 1.9.1 26.05.2015
2576
2577
*) Изменение: теперь протокол SSLv3 по умолчанию запрещён.
2578
2579
*) Изменение: некоторые давно устаревшие директивы больше не
2580
поддерживаются.
2581
2582
*) Добавление: параметр reuseport директивы listen.
2583
Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
2584
2585
*) Добавление: переменная $upstream_connect_time.
2586
2587
*) Исправление: в директиве hash на big-endian платформах.
2588
2589
*) Исправление: nginx мог не запускаться на некоторых старых версиях
2590
Linux; ошибка появилась в 1.7.11.
2591
2592
*) Исправление: в парсинге IP-адресов.
2593
Спасибо Сергею Половко.
2594
2595
2596
Изменения в nginx 1.9.0 28.04.2015
2597
2598
*) Изменение: устаревшие методы обработки соединений aio и rtsig больше
2599
не поддерживаются.
2600
2601
*) Добавление: директива zone в блоке upstream.
2602
2603
*) Добавление: модуль stream.
2604
2605
*) Добавление: поддержка byte ranges для ответов модуля
2606
ngx_http_memcached_module.
2607
Спасибо Martin Mlynář.
2608
2609
*) Добавление: разделяемую память теперь можно использовать на версиях
2610
Windows с рандомизацией адресного пространства.
2611
Спасибо Сергею Брестеру.
2612
2613
*) Добавление: директиву error_log теперь можно использовать на уровнях
2614
mail и server в почтовом прокси-сервере.
2615
2616
*) Исправление: параметр proxy_protocol директивы listen не работал,
2617
если не был указан в первой директиве listen для данного
2618
listen-сокета.
2619
2620
2621
Изменения в nginx 1.7.12 07.04.2015
2622
2623
*) Добавление: теперь директива tcp_nodelay работает для SSL-соединений
2624
с бэкендами.
2625
2626
*) Добавление: теперь потоки могут использоваться для чтения заголовков
2627
файлов в кэше.
2628
2629
*) Исправление: в директиве proxy_request_buffering.
2630
2631
*) Исправление: при использовании потоков на Linux в рабочем процессе
2632
мог произойти segmentation fault.
2633
2634
*) Исправление: в обработке ошибок при использовании директивы
2635
ssl_stapling.
2636
Спасибо Filipe da Silva.
2637
2638
*) Исправление: в модуле ngx_http_spdy_module.
2639
2640
2641
Изменения в nginx 1.7.11 24.03.2015
2642
2643
*) Изменение: параметр sendfile директивы aio более не нужен; теперь
2644
nginx автоматически использует AIO для подгрузки данных для sendfile,
2645
если одновременно используются директивы aio и sendfile.
2646
2647
*) Добавление: экспериментальная поддержка потоков.
2648
2649
*) Добавление: директивы proxy_request_buffering,
2650
fastcgi_request_buffering, scgi_request_buffering и
2651
uwsgi_request_buffering.
2652
2653
*) Добавление: экспериментальное API для обработки тела запроса.
2654
2655
*) Добавление: проверка клиентских SSL-сертификатов в почтовом
2656
прокси-сервере.
2657
Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
2658
2659
*) Добавление: уменьшение времени запуска при использовании директивы
2660
"hash ... consistent" в блоке upstream.
2661
Спасибо Wai Keen Woon.
2662
2663
*) Добавление: отладочное логгирование в кольцевой буфер в памяти.
2664
2665
*) Исправление: в обработке хэш-таблиц.
2666
Спасибо Chris West.
2667
2668
*) Исправление: в директиве proxy_cache_revalidate.
2669
2670
*) Исправление: SSL-соединения могли зависать, если использовался
2671
отложенный accept или параметр proxy_protocol директивы listen.
2672
Спасибо James Hamlin.
2673
2674
*) Исправление: переменная $upstream_response_time могла содержать
2675
неверное значение при использовании директивы image_filter.
2676
2677
*) Исправление: в обработке целочисленных переполнений.
2678
Спасибо Régis Leroy.
2679
2680
*) Исправление: при использовании LibreSSL было невозможно включить
2681
поддержку SSLv3.
2682
2683
*) Исправление: при использовании LibreSSL в логах появлялись сообщения
2684
"ignoring stale global SSL error ... called a function you should not
2685
call".
2686
2687
*) Исправление: сертификаты, указанные в директивах
2688
ssl_client_certificate и ssl_trusted_certificate, использовались для
2689
автоматического построения цепочек сертификатов.
2690
2691
2692
Изменения в nginx 1.7.10 10.02.2015
2693
2694
*) Добавление: параметр use_temp_path директив proxy_cache_path,
2695
fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
2696
2697
*) Добавление: переменная $upstream_header_time.
2698
2699
*) Изменение: теперь при переполнении диска nginx пытается писать
2700
error_log'и только раз в секунду.
2701
2702
*) Исправление: директива try_files при тестировании каталогов не
2703
игнорировала обычные файлы.
2704
Спасибо Damien Tournoud.
2705
2706
*) Исправление: при использовании директивы sendfile на OS X возникали
2707
ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8.
2708
2709
*) Исправление: в лог могли писаться сообщения "sem_post() failed".
2710
2711
*) Исправление: nginx не собирался с musl libc.
2712
Спасибо James Taylor.
2713
2714
*) Исправление: nginx не собирался на Tru64 UNIX.
2715
Спасибо Goetz T. Fischer.
2716
2717
2718
Изменения в nginx 1.7.9 23.12.2014
2719
2720
*) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и
2721
uwsgi_cache поддерживают переменные.
2722
2723
*) Добавление: директива expires поддерживает переменные.
2724
2725
*) Добавление: возможность загрузки секретных ключей с аппаратных
2726
устройств с помощью OpenSSL engines.
2727
Спасибо Дмитрию Пичулину.
2728
2729
*) Добавление: директива autoindex_format.
2730
2731
*) Исправление: ревалидация элементов кэша теперь используется только
2732
для ответов с кодами 200 и 206.
2733
Спасибо Piotr Sikora.
2734
2735
*) Исправление: строка "TE" заголовка запроса клиента передавалась на
2736
бэкенд при проксировании.
2737
2738
*) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и
2739
uwsgi_pass могли неправильно работать внутри блоков if и
2740
limit_except.
2741
2742
*) Исправление: директива proxy_store с параметром "on" игнорировалась,
2743
если на предыдущем уровне использовалась директива proxy_store с явно
2744
заданным путём к файлам.
2745
2746
*) Исправление: nginx не собирался с BoringSSL.
2747
Спасибо Lukas Tribus.
2748
2749
2750
Изменения в nginx 1.7.8 02.12.2014
2751
2752
*) Изменение: теперь строки "If-Modified-Since", "If-Range" и им
2753
подобные в заголовке запроса клиента передаются бэкенду при
2754
включённом кэшировании, если nginx заранее знает, что не будет
2755
кэшировать ответ (например, при использовании proxy_cache_min_uses).
2756
2757
*) Изменение: теперь после истечения proxy_cache_lock_timeout nginx
2758
отправляет запрос на бэкенд без кэширования; новые директивы
2759
proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и
2760
uwsgi_cache_lock_age позволяют указать, через какое время блокировка
2761
будет принудительно снята и будет сделана ещё одна попытка
2762
закэшировать ответ.
2763
2764
*) Изменение: директива log_format теперь может использоваться только на
2765
уровне http.
2766
2767
*) Добавление: директивы proxy_ssl_certificate,
2768
proxy_ssl_certificate_key, proxy_ssl_password_file,
2769
uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и
2770
uwsgi_ssl_password_file.
2771
Спасибо Piotr Sikora.
2772
2773
*) Добавление: теперь с помощью X-Accel-Redirect можно перейти в
2774
именованный location.
2775
Спасибо Toshikuni Fukaya.
2776
2777
*) Добавление: теперь директива tcp_nodelay работает для
2778
SPDY-соединений.
2779
2780
*) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
2781
Спасибо Peter Wu.
2782
2783
*) Исправление: nginx игнорировал значение "s-maxage" в строке
2784
"Cache-Control" в заголовке ответа бэкенда.
2785
Спасибо Piotr Sikora.
2786
2787
*) Исправление: в модуле ngx_http_spdy_module.
2788
Спасибо Piotr Sikora.
2789
2790
*) Исправление: в директиве ssl_password_file при использовании OpenSSL
2791
0.9.8zc, 1.0.0o, 1.0.1j.
2792
2793
*) Исправление: при использовании директивы post_action в лог писались
2794
сообщения "header already sent"; ошибка появилась в nginx 1.5.4.
2795
2796
*) Исправление: при использовании директивы "postpone_output 0" с
2797
SSI-подзапросами в лог могли писаться сообщения "the http output
2798
chain is empty".
2799
2800
*) Исправление: в директиве proxy_cache_lock при использовании
2801
SSI-подзапросов.
2802
Спасибо Yichun Zhang.
2803
2804
2805
Изменения в nginx 1.7.7 28.10.2014
2806
2807
*) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
2808
заголовке ответа бэкенда.
2809
2810
*) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
2811
scgi_force_ranges и uwsgi_force_ranges.
2812
2813
*) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
2814
scgi_limit_rate и uwsgi_limit_rate.
2815
2816
*) Добавление: параметр Vary директив proxy_ignore_headers,
2817
fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.
2818
2819
*) Исправление: последняя часть ответа, полученного от бэкенда при
2820
небуферизированном проксировании, могла не отправляться клиенту, если
2821
использовались директивы gzip или gunzip.
2822
2823
*) Исправление: в директиве proxy_cache_revalidate.
2824
Спасибо Piotr Sikora.
2825
2826
*) Исправление: в обработке ошибок.
2827
Спасибо Yichun Zhang и Даниилу Бондареву.
2828
2829
*) Исправление: в директивах proxy_next_upstream_tries и
2830
proxy_next_upstream_timeout.
2831
Спасибо Feng Gu.
2832
2833
*) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
2834
Спасибо Kouhei Sutou.
2835
2836
2837
Изменения в nginx 1.7.6 30.09.2014
2838
2839
*) Изменение: устаревшая директива limit_zone больше не поддерживается.
2840
2841
*) Добавление: в директивах limit_conn_zone и limit_req_zone теперь
2842
можно использовать комбинации нескольких переменных.
2843
2844
*) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело
2845
запроса могло передаваться неправильно.
2846
2847
*) Исправление: в логгировании в syslog.
2848
2849
2850
Изменения в nginx 1.7.5 16.09.2014
2851
2852
*) Безопасность: при использовании общего для нескольких блоков server
2853
разделяемого кэша SSL-сессий или общего ключа для шифрования TLS
2854
session tickets было возможно повторно использовать SSL-сессию в
2855
контексте другого блока server (CVE-2014-3616).
2856
Спасибо Antoine Delignat-Lavaud.
2857
2858
*) Изменение: директиву stub_status теперь можно указывать без
2859
параметров.
2860
2861
*) Добавление: параметр always директивы add_header.
2862
2863
*) Добавление: директивы proxy_next_upstream_tries,
2864
proxy_next_upstream_timeout, fastcgi_next_upstream_tries,
2865
fastcgi_next_upstream_timeout, memcached_next_upstream_tries,
2866
memcached_next_upstream_timeout, scgi_next_upstream_tries,
2867
scgi_next_upstream_timeout, uwsgi_next_upstream_tries и
2868
uwsgi_next_upstream_timeout.
2869
2870
*) Исправление: в параметре if директивы access_log.
2871
2872
*) Исправление: в модуле ngx_http_perl_module.
2873
Спасибо Piotr Sikora.
2874
2875
*) Исправление: директива listen почтового прокси-сервера не позволяла
2876
указать более двух параметров.
2877
2878
*) Исправление: директива sub_filter не работала с заменяемой строкой из
2879
одного символа.
2880
2881
*) Исправление: запросы могли зависать, если использовался resolver и в
2882
процессе обращения к DNS-серверу происходил таймаут.
2883
2884
*) Исправление: в модуле ngx_http_spdy_module при использовании
2885
совместно с AIO.
2886
2887
*) Исправление: в рабочем процессе мог произойти segmentation fault,
2888
если с помощью директивы set изменялись переменные "$http_...",
2889
"$sent_http_..." или "$upstream_http_...".
2890
2891
*) Исправление: в обработке ошибок выделения памяти.
2892
Спасибо Markus Linnala и Feng Gu.
2893
2894
2895
Изменения в nginx 1.7.4 05.08.2014
2896
2897
*) Безопасность: pipelined-команды не отбрасывались после команды
2898
STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в
2899
1.5.6.
2900
Спасибо Chris Boulton.
2901
2902
*) Изменение: экранирование символов в URI теперь использует
2903
шестнадцатеричные цифры в верхнем регистре.
2904
Спасибо Piotr Sikora.
2905
2906
*) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL.
2907
Спасибо Piotr Sikora.
2908
2909
*) Исправление: запросы могли зависать, если использовался resolver и
2910
DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8.
2911
2912
*) Исправление: в модуле ngx_http_spdy_module.
2913
Спасибо Piotr Sikora.
2914
2915
*) Исправление: переменная $uri могла содержать мусор при возврате
2916
ошибок с кодом 400.
2917
Спасибо Сергею Боброву.
2918
2919
*) Исправление: в обработке ошибок в директиве proxy_store и в модуле
2920
ngx_http_dav_module.
2921
Спасибо Feng Gu.
2922
2923
*) Исправление: при логгировании ошибок в syslog мог происходить
2924
segmentation fault; ошибка появилась в 1.7.1.
2925
2926
*) Исправление: переменные $geoip_latitude, $geoip_longitude,
2927
$geoip_dma_code и $geoip_area_code могли не работать.
2928
Спасибо Yichun Zhang.
2929
2930
*) Исправление: в обработке ошибок выделения памяти.
2931
Спасибо Tatsuhiko Kubo и Piotr Sikora.
2932
2933
2934
Изменения в nginx 1.7.3 08.07.2014
2935
2936
*) Добавление: weak entity tags теперь не удаляются при изменениях
2937
ответа, а strong entity tags преобразуются в weak.
2938
2939
*) Добавление: ревалидация элементов кэша теперь, если это возможно,
2940
использует заголовок If-None-Match.
2941
2942
*) Добавление: директива ssl_password_file.
2943
2944
*) Исправление: при возврате ответа из кэша заголовок запроса
2945
If-None-Match игнорировался, если в ответе не было заголовка
2946
Last-Modified.
2947
2948
*) Исправление: сообщения "peer closed connection in SSL handshake" при
2949
соединении с бэкендами логгировались на уровне info вместо error.
2950
2951
*) Исправление: в модуле ngx_http_dav_module в nginx/Windows.
2952
2953
*) Исправление: SPDY-соединения могли неожиданно закрываться, если
2954
использовалось кэширование.
2955
2956
2957
Изменения в nginx 1.7.2 17.06.2014
2958
2959
*) Добавление: директива hash в блоке upstream.
2960
2961
*) Добавление: дефрагментация свободных блоков разделяемой памяти.
2962
Спасибо Wandenberg Peixoto и Yichun Zhang.
2963
2964
*) Исправление: в рабочем процессе мог произойти segmentation fault,
2965
если использовалось значение access_log по умолчанию; ошибка
2966
появилась в 1.7.0.
2967
Спасибо Piotr Sikora.
2968
2969
*) Исправление: завершающий слэш ошибочно удалялся из последнего
2970
параметра директивы try_files.
2971
2972
*) Исправление: nginx мог не собираться на OS X.
2973
2974
*) Исправление: в модуле ngx_http_spdy_module.
2975
2976
2977
Изменения в nginx 1.7.1 27.05.2014
2978
2979
*) Добавление: переменные "$upstream_cookie_...".
2980
2981
*) Добавление: переменная $ssl_client_fingerprint.
2982
2983
*) Добавление: директивы error_log и access_log теперь поддерживают
2984
логгирование в syslog.
2985
2986
*) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при
2987
соединении.
2988
2989
*) Исправление: утечки памяти при использовании директивы
2990
"ssl_stapling".
2991
Спасибо Filipe da Silva.
2992
2993
*) Исправление: директива alias внутри location'а, заданного регулярным
2994
выражением, работала неправильно, если использовались директивы if
2995
или limit_except.
2996
2997
*) Исправление: директива charset не ставила кодировку для сжатых
2998
ответов бэкендов.
2999
3000
*) Исправление: директива proxy_pass без URI могла использовать
3001
оригинальный запрос после установки переменной $args.
3002
Спасибо Yichun Zhang.
3003
3004
*) Исправление: в работе параметра none директивы smtp_auth; ошибка
3005
появилась в 1.5.6.
3006
Спасибо Святославу Никольскому.
3007
3008
*) Исправление: при совместном использовании sub_filter и SSI ответы
3009
могли передаваться неверно.
3010
3011
*) Исправление: nginx не собирался с параметром --with-file-aio на
3012
Linux/aarch64.
3013
3014
3015
Изменения в nginx 1.7.0 24.04.2014
3016
3017
*) Добавление: проверка SSL-сертификатов бэкендов.
3018
3019
*) Добавление: поддержка SNI при работе с бэкендами по SSL.
3020
3021
*) Добавление: переменная $ssl_server_name.
3022
3023
*) Добавление: параметр if директивы access_log.
3024
3025
3026
Изменения в nginx 1.5.13 08.04.2014
3027
3028
*) Изменение: улучшена обработка хэш-таблиц; в директивах
3029
variables_hash_max_size и types_hash_bucket_size значения по
3030
умолчанию изменены на 1024 и 64 соответственно.
3031
3032
*) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end.
3033
3034
*) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при
3035
сохранении ответов в кэш.
3036
3037
*) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc()
3038
failed: no memory" при использовании разделяемой памяти в
3039
ssl_session_cache и в модуле ngx_http_limit_req_module.
3040
3041
*) Исправление: директива underscores_in_headers не разрешала
3042
подчёркивание в первом символе заголовка.
3043
Спасибо Piotr Sikora.
3044
3045
*) Исправление: cache manager мог нагружать процессор при выходе в
3046
nginx/Windows.
3047
3048
*) Исправление: при использовании ssl_session_cache с параметром shared
3049
рабочий процесс nginx/Windows завершался аварийно.
3050
3051
*) Исправление: в модуле ngx_http_spdy_module.
3052
3053
3054
Изменения в nginx 1.5.12 18.03.2014
3055
3056
*) Безопасность: при обработке специально созданного запроса модулем
3057
ngx_http_spdy_module могло происходить переполнение буфера в рабочем
3058
процессе, что потенциально могло приводить к выполнению произвольного
3059
кода (CVE-2014-0133).
3060
Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
3061
Buenos Aires, Argentina.
3062
3063
*) Добавление: параметр proxy_protocol в директивах listen и
3064
real_ip_header, переменная $proxy_protocol_addr.
3065
3066
*) Исправление: в директиве fastcgi_next_upstream.
3067
Спасибо Lucas Molas.
3068
3069
3070
Изменения в nginx 1.5.11 04.03.2014
3071
3072
*) Безопасность: при обработке специально созданного запроса модулем
3073
ngx_http_spdy_module на 32-битных платформах могла повреждаться
3074
память рабочего процесса, что потенциально могло приводить к
3075
выполнению произвольного кода (CVE-2014-0088); ошибка появилась в
3076
1.5.10.
3077
Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky,
3078
Buenos Aires, Argentina.
3079
3080
*) Добавление: переменная $ssl_session_reused.
3081
3082
*) Исправление: директива client_max_body_size могла не работать при
3083
чтении тела запроса с использованием chunked transfer encoding;
3084
ошибка появилась в 1.3.9.
3085
Спасибо Lucas Molas.
3086
3087
*) Исправление: при проксировании WebSocket-соединений в рабочем
3088
процессе мог произойти segmentation fault.
3089
3090
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3091
если использовался модуль ngx_http_spdy_module на 32-битных
3092
платформах; ошибка появилась в 1.5.10.
3093
3094
*) Исправление: значение переменной $upstream_status могло быть
3095
неверным, если использовались директивы proxy_cache_use_stale или
3096
proxy_cache_revalidate.
3097
Спасибо Piotr Sikora.
3098
3099
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3100
если ошибки с кодом 400 с помощью директивы error_page
3101
перенаправлялись в именованный location.
3102
3103
*) Исправление: nginx/Windows не собирался с Visual Studio 2013.
3104
3105
3106
Изменения в nginx 1.5.10 04.02.2014
3107
3108
*) Добавление: модуль ngx_http_spdy_module теперь использует протокол
3109
SPDY 3.1.
3110
Спасибо Automattic и MaxCDN за спонсирование разработки.
3111
3112
*) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки,
3113
имеющие меньшую длину, чем запрошенная перемотка.
3114
3115
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3116
если переменная $ssl_session_id использовалась при логгировании;
3117
ошибка появилась в 1.5.9.
3118
3119
*) Исправление: переменные $date_local и $date_gmt использовали неверный
3120
формат вне модуля ngx_http_ssi_filter_module.
3121
3122
*) Исправление: клиентские соединения могли сразу закрываться, если
3123
использовался отложенный accept; ошибка появилась в 1.3.15.
3124
3125
*) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed"
3126
записывались в лог в процессе обновления исполняемого файла на Linux;
3127
ошибка появилась в 1.5.8.
3128
Спасибо Piotr Sikora.
3129
3130
3131
Изменения в nginx 1.5.9 22.01.2014
3132
3133
*) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает
3134
закодированный URI.
3135
3136
*) Добавление: директива ssl_buffer_size.
3137
3138
*) Добавление: директиву limit_rate теперь можно использовать для
3139
ограничения скорости передачи ответов клиенту в SPDY-соединениях.
3140
3141
*) Добавление: директива spdy_chunk_size.
3142
3143
*) Добавление: директива ssl_session_tickets.
3144
Спасибо Dirkjan Bussink.
3145
3146
*) Исправление: переменная $ssl_session_id содержала всю сессию в
3147
сериализованном виде вместо её идентификатора.
3148
Спасибо Ivan Ristić.
3149
3150
*) Исправление: nginx неправильно обрабатывал закодированный символ "?"
3151
в команде SSI include.
3152
3153
*) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI
3154
при обработке методов COPY и MOVE.
3155
3156
*) Исправление: resolver не понимал доменные имена с точкой в конце.
3157
Спасибо Yichun Zhang.
3158
3159
*) Исправление: при проксировании в логах могли появляться сообщения
3160
"zero size buf in output"; ошибка появилась в 1.3.9.
3161
3162
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3163
если использовался модуль ngx_http_spdy_module.
3164
3165
*) Исправление: при использовании методов обработки соединений select,
3166
poll и /dev/poll проксируемые WebSocket-соединения могли зависать
3167
сразу после открытия.
3168
3169
*) Исправление: директива xclient почтового прокси-сервера некорректно
3170
передавала IPv6-адреса.
3171
3172
3173
Изменения в nginx 1.5.8 17.12.2013
3174
3175
*) Добавление: теперь resolver поддерживает IPv6.
3176
3177
*) Добавление: директива listen поддерживает параметр fastopen.
3178
Спасибо Mathew Rodley.
3179
3180
*) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module.
3181
Спасибо Roberto De Ioris.
3182
3183
*) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib.
3184
Спасибо Evan Miller.
3185
3186
*) Исправление: при чтении тела запроса с использованием chunked
3187
transfer encoding по SSL-соединению мог произойти таймаут.
3188
3189
*) Исправление: директива master_process работала неправильно в
3190
nginx/Windows.
3191
3192
*) Исправление: параметр setfib директивы listen мог не работать.
3193
3194
*) Исправление: в модуле ngx_http_spdy_module.
3195
3196
3197
Изменения в nginx 1.5.7 19.11.2013
3198
3199
*) Безопасность: символ, следующий за незакодированным пробелом в строке
3200
запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась
3201
в 0.8.41.
3202
Спасибо Ivan Fratric из Google Security Team.
3203
3204
*) Изменение: уровень логгирования ошибок auth_basic об отсутствии
3205
пароля понижен с уровня error до info.
3206
3207
*) Добавление: директивы proxy_cache_revalidate,
3208
fastcgi_cache_revalidate, scgi_cache_revalidate и
3209
uwsgi_cache_revalidate.
3210
3211
*) Добавление: директива ssl_session_ticket_key.
3212
Спасибо Piotr Sikora.
3213
3214
*) Исправление: директива "add_header Cache-Control ''" добавляла строку
3215
заголовка ответа "Cache-Control" с пустым значением.
3216
3217
*) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо
3218
401 при использовании директив auth_request и auth_basic.
3219
Спасибо Jan Marc Hoffmann.
3220
3221
*) Исправление: параметры accept_filter и deferred директивы listen
3222
игнорировались для listen-сокетов, создаваемых в процессе обновления
3223
исполняемого файла.
3224
Спасибо Piotr Sikora.
3225
3226
*) Исправление: часть данных, полученных от бэкенда при
3227
небуферизированном проксировании, могла не отправляться клиенту
3228
сразу, если использовались директивы gzip или gunzip.
3229
Спасибо Yichun Zhang.
3230
3231
*) Исправление: в обработке ошибок в модуле
3232
ngx_http_gunzip_filter_module.
3233
3234
*) Исправление: ответы могли зависать, если использовался модуль
3235
ngx_http_spdy_module и директива auth_request.
3236
3237
*) Исправление: утечки памяти в nginx/Windows.
3238
3239
3240
Изменения в nginx 1.5.6 01.10.2013
3241
3242
*) Добавление: директива fastcgi_buffering.
3243
3244
*) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers.
3245
Спасибо Piotr Sikora.
3246
3247
*) Добавление: оптимизация SSL handshake при использовании длинных
3248
цепочек сертификатов.
3249
3250
*) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining.
3251
3252
*) Исправление: в модуле ngx_http_auth_basic_module при использовании
3253
метода шифрования паролей "$apr1$".
3254
Спасибо Markus Linnala.
3255
3256
*) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса
3257
мог использоваться неверный location, если для задания location'ов
3258
использовались символы разных регистров.
3259
3260
*) Исправление: автоматическое перенаправление с добавлением
3261
завершающего слэша для проксированных location'ов могло не работать.
3262
3263
*) Исправление: в почтовом прокси-сервере.
3264
3265
*) Исправление: в модуле ngx_http_spdy_module.
3266
3267
3268
Изменения в nginx 1.5.5 17.09.2013
3269
3270
*) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно
3271
определить протокол не удалось.
3272
3273
*) Добавление: директива disable_symlinks теперь использует O_PATH на
3274
Linux.
3275
3276
*) Добавление: для определения того, что клиент закрыл соединение, при
3277
использовании метода epoll теперь используются события EPOLLRDHUP.
3278
3279
*) Исправление: в директиве valid_referers при использовании параметра
3280
server_names.
3281
3282
*) Исправление: переменная $request_time не работала в nginx/Windows.
3283
3284
*) Исправление: в директиве image_filter.
3285
Спасибо Lanshun Zhou.
3286
3287
*) Исправление: совместимость с OpenSSL 1.0.1f.
3288
Спасибо Piotr Sikora.
3289
3290
3291
Изменения в nginx 1.5.4 27.08.2013
3292
3293
*) Изменение: MIME-тип для расширения js изменён на
3294
"application/javascript"; значение по умолчанию директивы
3295
charset_types изменено соответственно.
3296
3297
*) Изменение: теперь директива image_filter с параметром size возвращает
3298
ответ с MIME-типом "application/json".
3299
3300
*) Добавление: модуль ngx_http_auth_request_module.
3301
3302
*) Исправление: на старте или во время переконфигурации мог произойти
3303
segmentation fault, если использовалась директива try_files с пустым
3304
параметром.
3305
3306
*) Исправление: утечки памяти при использовании в директивах root и
3307
auth_basic_user_file относительных путей, заданных с помощью
3308
переменных.
3309
3310
*) Исправление: директива valid_referers неправильно выполняла
3311
регулярные выражения, если заголовок Referer начинался с "https://".
3312
Спасибо Liangbin Li.
3313
3314
*) Исправление: ответы могли зависать, если использовались подзапросы и
3315
при обработке подзапроса происходила ошибка во время SSL handshake с
3316
бэкендом.
3317
Спасибо Aviram Cohen.
3318
3319
*) Исправление: в модуле ngx_http_autoindex_module.
3320
3321
*) Исправление: в модуле ngx_http_spdy_module.
3322
3323
3324
Изменения в nginx 1.5.3 30.07.2013
3325
3326
*) Изменение во внутреннем API: теперь при небуферизированной работе с
3327
бэкендами u->length по умолчанию устанавливается в -1.
3328
3329
*) Изменение: теперь при получении неполного ответа от бэкенда nginx
3330
отправляет полученную часть ответа, после чего закрывает соединение с
3331
клиентом.
3332
3333
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3334
если использовался модуль ngx_http_spdy_module и директива
3335
client_body_in_file_only.
3336
3337
*) Исправление: параметр so_keepalive директивы listen мог работать
3338
некорректно на DragonFlyBSD.
3339
Спасибо Sepherosa Ziehau.
3340
3341
*) Исправление: в модуле ngx_http_xslt_filter_module.
3342
3343
*) Исправление: в модуле ngx_http_sub_filter_module.
3344
3345
3346
Изменения в nginx 1.5.2 02.07.2013
3347
3348
*) Добавление: теперь можно использовать несколько директив error_log.
3349
3350
*) Исправление: метод $r->header_in() встроенного перла не возвращал
3351
значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса;
3352
ошибка появилась в 1.3.14.
3353
3354
*) Исправление: в модуле ngx_http_spdy_module.
3355
Спасибо Jim Radford.
3356
3357
*) Исправление: nginx не собирался на Linux при использовании x32 ABI.
3358
Спасибо Сергею Иванцову.
3359
3360
3361
Изменения в nginx 1.5.1 04.06.2013
3362
3363
*) Добавление: директивы ssi_last_modified, sub_filter_last_modified и
3364
xslt_last_modified.
3365
Спасибо Алексею Колпакову.
3366
3367
*) Добавление: параметр http_403 в директивах proxy_next_upstream,
3368
fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
3369
3370
*) Добавление: директивы allow и deny теперь поддерживают unix domain
3371
сокеты.
3372
3373
*) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без
3374
модуля ngx_http_ssl_module; ошибка появилась в 1.3.14.
3375
3376
*) Исправление: в директиве proxy_set_body.
3377
Спасибо Lanshun Zhou.
3378
3379
*) Исправление: в директиве lingering_time.
3380
Спасибо Lanshun Zhou.
3381
3382
*) Исправление: параметр fail_timeout директивы server в блоке upstream
3383
мог не работать, если использовался параметр max_fails; ошибка
3384
появилась в 1.3.0.
3385
3386
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3387
если использовалась директива ssl_stapling.
3388
Спасибо Piotr Sikora.
3389
3390
*) Исправление: в почтовом прокси-сервере.
3391
Спасибо Filipe Da Silva.
3392
3393
*) Исправление: nginx/Windows мог перестать принимать соединения, если
3394
использовалось несколько рабочих процессов.
3395
3396
3397
Изменения в nginx 1.5.0 07.05.2013
3398
3399
*) Безопасность: при обработке специально созданного запроса мог
3400
перезаписываться стек рабочего процесса, что могло приводить к
3401
выполнению произвольного кода (CVE-2013-2028); ошибка появилась в
3402
1.3.9.
3403
Спасибо Greg MacManus, iSIGHT Partners Labs.
3404
3405
3406
Изменения в nginx 1.4.0 24.04.2013
3407
3408
*) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
3409
использовался параметр --with-openssl; ошибка появилась в 1.3.16.
3410
3411
*) Исправление: в работе с телом запроса из модуля ngx_http_perl_module;
3412
ошибка появилась в 1.3.9.
3413
3414
3415
Изменения в nginx 1.3.16 16.04.2013
3416
3417
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3418
если использовались подзапросы; ошибка появилась в 1.3.9.
3419
3420
*) Исправление: директива tcp_nodelay вызывала ошибку при проксировании
3421
WebSocket-соединений в unix domain сокет.
3422
3423
*) Исправление: переменная $upstream_response_length возвращала значение
3424
"0", если не использовалась буферизация.
3425
Спасибо Piotr Sikora.
3426
3427
*) Исправление: в методах обработки соединений eventport и /dev/poll.
3428
3429
3430
Изменения в nginx 1.3.15 26.03.2013
3431
3432
*) Изменение: открытие и закрытие соединения без отправки в нём
3433
каких-либо данных больше не записывается в access_log с кодом ошибки
3434
400.
3435
3436
*) Добавление: модуль ngx_http_spdy_module.
3437
Спасибо Automattic за спонсирование разработки.
3438
3439
*) Добавление: директивы limit_req_status и limit_conn_status.
3440
Спасибо Nick Marden.
3441
3442
*) Добавление: директива image_filter_interlace.
3443
Спасибо Ивану Боброву.
3444
3445
*) Добавление: переменная $connections_waiting в модуле
3446
ngx_http_stub_status_module.
3447
3448
*) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
3449
3450
*) Исправление: при повторной отправке запроса на бэкенд тело запроса
3451
могло передаваться неправильно; ошибка появилась в 1.3.9.
3452
Спасибо Piotr Sikora.
3453
3454
*) Исправление: в директиве client_body_in_file_only; ошибка появилась в
3455
1.3.9.
3456
3457
*) Исправление: ответы могли зависать, если использовались подзапросы и
3458
при обработке подзапроса происходила DNS-ошибка.
3459
Спасибо Lanshun Zhou.
3460
3461
*) Исправление: в процедуре учёта использования бэкендов.
3462
3463
3464
Изменения в nginx 1.3.14 05.03.2013
3465
3466
*) Добавление: переменные $connections_active, $connections_reading и
3467
$connections_writing в модуле ngx_http_stub_status_module.
3468
3469
*) Добавление: поддержка WebSocket-соединений в модулях
3470
ngx_http_uwsgi_module и ngx_http_scgi_module.
3471
3472
*) Исправление: в обработке виртуальных серверов при использовании SNI.
3473
3474
*) Исправление: при использовании директивы "ssl_session_cache shared"
3475
новые сессии могли не сохраняться, если заканчивалось место в
3476
разделяемой памяти.
3477
Спасибо Piotr Sikora.
3478
3479
*) Исправление: несколько заголовков X-Forwarded-For обрабатывались
3480
неправильно.
3481
Спасибо Neal Poole за спонсирование разработки.
3482
3483
*) Исправление: в модуле ngx_http_mp4_module.
3484
Спасибо Gernot Vormayr.
3485
3486
3487
Изменения в nginx 1.3.13 19.02.2013
3488
3489
*) Изменение: теперь для сборки по умолчанию используется компилятор с
3490
именем "cc".
3491
3492
*) Добавление: поддержка проксирования WebSocket-соединений.
3493
Спасибо Apcera и CloudBees за спонсирование разработки.
3494
3495
*) Добавление: директива auth_basic_user_file поддерживает шифрование
3496
паролей методом "{SHA}".
3497
Спасибо Louis Opter.
3498
3499
3500
Изменения в nginx 1.3.12 05.02.2013
3501
3502
*) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind,
3503
scgi_bind и uwsgi_bind поддерживают переменные.
3504
3505
*) Добавление: переменные $pipe, $request_length, $time_iso8601 и
3506
$time_local теперь можно использовать не только в директиве
3507
log_format.
3508
Спасибо Kiril Kalchev.
3509
3510
*) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module.
3511
Спасибо Gregor Kališnik.
3512
3513
*) Исправление: директива proxy_method работала неверно, если была
3514
указана на уровне http.
3515
3516
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3517
если использовался resolver и метод poll.
3518
3519
*) Исправление: nginx мог нагружать процессор во время SSL handshake с
3520
бэкендом при использовании методов обработки соединений select, poll
3521
и /dev/poll.
3522
3523
*) Исправление: ошибка "[crit] SSL_write() failed (SSL:)".
3524
3525
*) Исправление: в директиве client_body_in_file_only; ошибка появилась в
3526
1.3.9.
3527
3528
*) Исправление: в директиве fastcgi_keep_conn.
3529
3530
3531
Изменения в nginx 1.3.11 10.01.2013
3532
3533
*) Исправление: при записи в лог мог происходить segmentation fault;
3534
ошибка появилась в 1.3.10.
3535
3536
*) Исправление: директива proxy_pass не работала с IP-адресами без
3537
явного указания порта; ошибка появилась в 1.3.10.
3538
3539
*) Исправление: на старте или во время переконфигурации происходил
3540
segmentation fault, если директива keepalive была указана несколько
3541
раз в одном блоке upstream.
3542
3543
*) Исправление: параметр default директивы geo не определял значение по
3544
умолчанию для IPv6-адресов.
3545
3546
3547
Изменения в nginx 1.3.10 25.12.2012
3548
3549
*) Изменение: для указанных в конфигурационном файле доменных имён
3550
теперь используются не только IPv4, но и IPv6 адреса.
3551
3552
*) Изменение: теперь при использовании директивы include с маской на
3553
Unix-системах включаемые файлы сортируются в алфавитном порядке.
3554
3555
*) Изменение: директива add_header добавляет строки в ответы с кодом
3556
201.
3557
3558
*) Добавление: директива geo теперь поддерживает IPv6 адреса в формате
3559
CIDR.
3560
3561
*) Добавление: параметры flush и gzip в директиве access_log.
3562
3563
*) Добавление: директива auth_basic поддерживает переменные.
3564
3565
*) Исправление: nginx в некоторых случаях не собирался с модулем
3566
ngx_http_perl_module.
3567
3568
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3569
если использовался модуль ngx_http_xslt_module.
3570
3571
*) Исправление: nginx мог не собираться на MacOSX.
3572
Спасибо Piotr Sikora.
3573
3574
*) Исправление: при использовании директивы limit_rate с большими
3575
значениями скорости на 32-битных системах ответ мог возвращаться не
3576
целиком.
3577
Спасибо Алексею Антропову.
3578
3579
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3580
если использовалась директива if.
3581
Спасибо Piotr Sikora.
3582
3583
*) Исправление: ответ "100 Continue" выдавался вместе с ответом "413
3584
Request Entity Too Large".
3585
3586
*) Исправление: директивы image_filter, image_filter_jpeg_quality и
3587
image_filter_sharpen могли наследоваться некорректно.
3588
Спасибо Ивану Боброву.
3589
3590
*) Исправление: при использовании директивы auth_basic под Linux могли
3591
возникать ошибки "crypt_r() failed".
3592
3593
*) Исправление: в обработке backup-серверов.
3594
Спасибо Thomas Chen.
3595
3596
*) Исправление: при проксировании HEAD-запросов мог возвращаться
3597
некорректный ответ, если использовалась директива gzip.
3598
3599
3600
Изменения в nginx 1.3.9 27.11.2012
3601
3602
*) Добавление: поддержка chunked transfer encoding при получении тела
3603
запроса.
3604
3605
*) Добавление: переменные $request_time и $msec теперь можно
3606
использовать не только в директиве log_format.
3607
3608
*) Исправление: cache manager и cache loader могли не запускаться, если
3609
использовалось более 512 listen-сокетов.
3610
3611
*) Исправление: в модуле ngx_http_dav_module.
3612
3613
3614
Изменения в nginx 1.3.8 30.10.2012
3615
3616
*) Добавление: параметр optional_no_ca директивы ssl_verify_client.
3617
Спасибо Михаилу Казанцеву и Eric O'Connor.
3618
3619
*) Добавление: переменные $bytes_sent, $connection и
3620
$connection_requests теперь можно использовать не только в директиве
3621
log_format.
3622
Спасибо Benjamin Grössing.
3623
3624
*) Добавление: параметр auto директивы worker_processes.
3625
3626
*) Исправление: сообщения "cache file ... has md5 collision".
3627
3628
*) Исправление: в модуле ngx_http_gunzip_filter_module.
3629
3630
*) Исправление: в директиве ssl_stapling.
3631
3632
3633
Изменения в nginx 1.3.7 02.10.2012
3634
3635
*) Добавление: поддержка OCSP stapling.
3636
Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
3637
3638
*) Добавление: директива ssl_trusted_certificate.
3639
3640
*) Добавление: теперь resolver случайным образом меняет порядок
3641
возвращаемых закэшированных адресов.
3642
Спасибо Антону Жулину.
3643
3644
*) Исправление: совместимость с OpenSSL 0.9.7.
3645
3646
3647
Изменения в nginx 1.3.6 12.09.2012
3648
3649
*) Добавление: модуль ngx_http_gunzip_filter_module.
3650
3651
*) Добавление: директива memcached_gzip_flag.
3652
3653
*) Добавление: параметр always директивы gzip_static.
3654
3655
*) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14.
3656
Спасибо Charles Chen.
3657
3658
*) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если
3659
использовался параметр --with-ipv6.
3660
3661
3662
Изменения в nginx 1.3.5 21.08.2012
3663
3664
*) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает
3665
дорожки в форматах, отличных от H.264 и AAC.
3666
3667
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3668
если в директиве map в качестве значений использовались переменные.
3669
3670
*) Исправление: в рабочем процессе мог произойти segmentation fault при
3671
использовании директивы geo с параметром ranges, но без параметра
3672
default; ошибка появилась в 0.8.43.
3673
Спасибо Zhen Chen и Weibin Yao.
3674
3675
*) Исправление: в обработке параметра командной строки -p.
3676
3677
*) Исправление: в почтовом прокси-сервере.
3678
3679
*) Исправление: незначительных потенциальных ошибок.
3680
Спасибо Coverity.
3681
3682
*) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express.
3683
Спасибо HAYASHI Kentaro.
3684
3685
3686
Изменения в nginx 1.3.4 31.07.2012
3687
3688
*) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён
3689
по умолчанию.
3690
3691
*) Добавление: поддержка компилятора Clang.
3692
3693
*) Исправление: могли создаваться лишние слушающие сокеты.
3694
Спасибо Роману Одайскому.
3695
3696
*) Исправление: nginx/Windows мог нагружать процессор, если при запуске
3697
рабочего процесса происходила ошибка.
3698
Спасибо Ricardo Villalobos Guevara.
3699
3700
*) Исправление: директивы proxy_pass_header, fastcgi_pass_header,
3701
scgi_pass_header, uwsgi_pass_header, proxy_hide_header,
3702
fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли
3703
наследоваться некорректно.
3704
3705
3706
Изменения в nginx 1.3.3 10.07.2012
3707
3708
*) Добавление: поддержка entity tags и директива etag.
3709
3710
*) Исправление: при использовании директивы map с параметром hostnames
3711
не игнорировалась конечная точка в исходном значении.
3712
3713
*) Исправление: для обработки запроса мог использоваться неверный
3714
location, если переход в именованный location происходил после
3715
изменения URI с помощью директивы rewrite.
3716
3717
3718
Изменения в nginx 1.3.2 26.06.2012
3719
3720
*) Изменение: параметр single директивы keepalive теперь игнорируется.
3721
3722
*) Изменение: сжатие SSL теперь отключено в том числе при использовании
3723
OpenSSL старее 1.0.0.
3724
3725
*) Добавление: директиву "ip_hash" теперь можно использовать для
3726
балансировки IPv6 клиентов.
3727
3728
*) Добавление: переменную $status теперь можно использовать не только в
3729
директиве log_format.
3730
3731
*) Исправление: при завершении рабочего процесса мог произойти
3732
segmentation fault, если использовалась директива resolver.
3733
3734
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3735
если использовался модуль ngx_http_mp4_module.
3736
3737
*) Исправление: в модуле ngx_http_mp4_module.
3738
3739
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3740
если использовались конфликтующие имена серверов с масками.
3741
3742
*) Исправление: на платформе ARM nginx мог аварийно завершаться по
3743
сигналу SIGBUS.
3744
3745
*) Исправление: во время переконфигурации на HP-UX в лог записывался
3746
alert "sendmsg() failed (9: Bad file number)".
3747
3748
3749
Изменения в nginx 1.3.1 05.06.2012
3750
3751
*) Безопасность: теперь nginx/Windows игнорирует точку в конце
3752
компонента URI и не разрешает URI, содержащие последовательность
3753
":$".
3754
Спасибо Владимиру Кочеткову, Positive Research Center.
3755
3756
*) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
3757
и директива server в блоке upstream теперь поддерживают IPv6-адреса.
3758
3759
*) Добавление: в директиве resolver теперь можно указывать порт и
3760
задавать IPv6-адреса DNS-серверов.
3761
3762
*) Добавление: директива least_conn в блоке upstream.
3763
3764
*) Добавление: при использовании директивы ip_hash теперь можно задавать
3765
веса серверов.
3766
3767
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3768
если использовалась директива image_filter; ошибка появилась в 1.3.0.
3769
3770
*) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка
3771
появилась в 1.1.12.
3772
3773
*) Исправление: доступ к переменным из SSI и встроенного перла мог не
3774
работать после переконфигурации.
3775
Спасибо Yichun Zhang.
3776
3777
*) Исправление: в модуле ngx_http_xslt_filter_module.
3778
Спасибо Kuramoto Eiji.
3779
3780
*) Исправление: утечки памяти при использовании переменной $geoip_org.
3781
Спасибо Денису Латыпову.
3782
3783
*) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path.
3784
3785
3786
Изменения в nginx 1.3.0 15.05.2012
3787
3788
*) Добавление: директива debug_connection теперь поддерживает
3789
IPv6-адреса и параметр "unix:".
3790
3791
*) Добавление: директива set_real_ip_from и параметр proxy директивы geo
3792
теперь поддерживают IPv6-адреса.
3793
3794
*) Добавление: директивы real_ip_recursive, geoip_proxy и
3795
geoip_proxy_recursive.
3796
3797
*) Добавление: параметр proxy_recursive директивы geo.
3798
3799
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3800
если использовалась директива resolver.
3801
3802
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3803
если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
3804
и бэкенд возвращал некорректный ответ.
3805
3806
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3807
если использовалась директива rewrite и в новых аргументах запроса в
3808
строке замены использовались переменные.
3809
3810
*) Исправление: nginx мог нагружать процессор, если было достигнуто
3811
ограничение на количество открытых файлов.
3812
3813
*) Исправление: при использовании директивы proxy_next_upstream с
3814
параметром http_404 nginx мог бесконечно перебирать бэкенды, если в
3815
блоке upstream был хотя бы один сервер с флагом backup.
3816
3817
*) Исправление: при использовании директивы ip_hash установка параметра
3818
down директивы server могла приводить к ненужному перераспределению
3819
клиентов между бэкендами.
3820
3821
*) Исправление: утечки сокетов.
3822
Спасибо Yichun Zhang.
3823
3824
*) Исправление: в модуле ngx_http_fastcgi_module.
3825
3826
3827
Изменения в nginx 1.2.0 23.04.2012
3828
3829
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3830
если использовалась директива try_files; ошибка появилась в 1.1.19.
3831
3832
*) Исправление: ответ мог быть передан не полностью, если использовалось
3833
больше IOV_MAX буферов.
3834
3835
*) Исправление: в работе параметра crop директивы image_filter.
3836
Спасибо Maxim Bublis.
3837
3838
3839
Изменения в nginx 1.1.19 12.04.2012
3840
3841
*) Безопасность: при обработке специально созданного mp4 файла модулем
3842
ngx_http_mp4_module могли перезаписываться области памяти рабочего
3843
процесса, что могло приводить к выполнению произвольного кода
3844
(CVE-2012-2089).
3845
Спасибо Matthew Daley.
3846
3847
*) Исправление: nginx/Windows мог завершаться аварийно.
3848
Спасибо Vincent Lee.
3849
3850
*) Исправление: nginx нагружал процессор, если все серверы в upstream'е
3851
были помечены флагом backup.
3852
3853
*) Исправление: директивы allow и deny могли наследоваться некорректно,
3854
если в них использовались IPv6 адреса.
3855
3856
*) Исправление: директивы modern_browser и ancient_browser могли
3857
наследоваться некорректно.
3858
3859
*) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
3860
3861
*) Исправление: в модуле ngx_http_mp4_module.
3862
3863
3864
Изменения в nginx 1.1.18 28.03.2012
3865
3866
*) Изменение: теперь keepalive соединения не запрещены для Safari по
3867
умолчанию.
3868
3869
*) Добавление: переменная $connection_requests.
3870
3871
*) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
3872
$tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
3873
3874
*) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
3875
3876
*) Добавление: директивы xslt_param и xslt_string_param.
3877
Спасибо Samuel Behan.
3878
3879
*) Исправление: в configure.
3880
Спасибо Piotr Sikora.
3881
3882
*) Исправление: в модуле ngx_http_xslt_filter_module.
3883
3884
*) Исправление: nginx не собирался на Debian GNU/Hurd.
3885
3886
3887
Изменения в nginx 1.1.17 15.03.2012
3888
3889
*) Безопасность: содержимое ранее освобождённой памяти могло быть
3890
отправлено клиенту, если бэкенд возвращал специально созданный ответ.
3891
Спасибо Matthew Daley.
3892
3893
*) Исправление: при использовании встроенного перла из SSI.
3894
Спасибо Matthew Daley.
3895
3896
*) Исправление: в модуле ngx_http_uwsgi_module.
3897
3898
3899
Изменения в nginx 1.1.16 29.02.2012
3900
3901
*) Изменение: ограничение на количество одновременных подзапросов
3902
поднято до 200.
3903
3904
*) Добавление: параметр from в директиве disable_symlinks.
3905
3906
*) Добавление: директивы return и error_page теперь могут использоваться
3907
для возврата перенаправлений с кодом 307.
3908
3909
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3910
если использовалась директива resolver и на глобальном уровне не была
3911
задана директива error_log.
3912
Спасибо Роману Арутюняну.
3913
3914
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3915
если использовались директивы "proxy_http_version 1.1" или
3916
"fastcgi_keep_conn on".
3917
3918
*) Исправление: утечек памяти.
3919
Спасибо Lanshun Zhou.
3920
3921
*) Исправление: в директиве disable_symlinks.
3922
3923
*) Исправление: при использовании ZFS размер кэша на диске мог считаться
3924
некорректно; ошибка появилась в 1.0.1.
3925
3926
*) Исправление: nginx не собирался компилятором icc 12.1.
3927
3928
*) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
3929
1.1.15.
3930
3931
3932
Изменения в nginx 1.1.15 15.02.2012
3933
3934
*) Добавление: директива disable_symlinks.
3935
3936
*) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
3937
3938
*) Исправление: nginx мог некорректно сообщать об ошибке "upstream
3939
prematurely closed connection" вместо "upstream sent too big header".
3940
Спасибо Feibo Li.
3941
3942
*) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
3943
использовался параметр --with-openssl.
3944
3945
*) Исправление: количество внутренних перенаправлений в именованные
3946
location'ы не ограничивалось.
3947
3948
*) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
3949
ошибкам в модуле ngx_http_gzip_filter_module.
3950
3951
*) Исправление: при использовании директивы proxy_store с
3952
SSI-подзапросами временные файлы могли не удаляться.
3953
3954
*) Исправление: в некоторых случаях некэшируемые переменные (такие, как
3955
$args) возвращали старое пустое закэшированное значение.
3956
3957
*) Исправление: в рабочем процессе мог произойти segmentation fault,
3958
если одновременно создавалось слишком много SSI-подзапросов; ошибка
3959
появилась в 0.7.25.
3960
3961
3962
Изменения в nginx 1.1.14 30.01.2012
3963
3964
*) Добавление: теперь можно указать несколько ограничений limit_req
3965
одновременно.
3966
3967
*) Исправление: в обработке ошибок при соединении с бэкендом.
3968
Спасибо Piotr Sikora.
3969
3970
*) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
3971
3972
*) Исправление: в инициализации библиотеки OpenSSL.
3973
3974
*) Исправление: директивы proxy_redirect могли наследоваться
3975
некорректно.
3976
3977
*) Исправление: утечки памяти при переконфигурации, если использовалась
3978
директива pcre_jit.
3979
3980
3981
Изменения в nginx 1.1.13 16.01.2012
3982
3983
*) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
3984
3985
*) Исправление: параметры директивы limit_req наследовались некорректно;
3986
ошибка появилась в 1.1.12.
3987
3988
*) Исправление: директива proxy_redirect некорректно обрабатывала
3989
заголовок Refresh при использовании регулярных выражений.
3990
3991
*) Исправление: директива proxy_cache_use_stale с параметром error не
3992
возвращала ответ из кэша, если все бэкенды были признаны
3993
неработающими.
3994
3995
*) Исправление: директива worker_cpu_affinity могла не работать.
3996
3997
*) Исправление: nginx не собирался на Solaris; ошибка появилась в
3998
1.1.12.
3999
4000
*) Исправление: в модуле ngx_http_mp4_module.
4001
4002
4003
Изменения в nginx 1.1.12 26.12.2011
4004
4005
*) Изменение: после перенаправления запроса с помощью директивы
4006
error_page директива proxy_pass без URI теперь использует изменённый
4007
URI.
4008
Спасибо Lanshun Zhou.
4009
4010
*) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
4011
proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
4012
4013
*) Добавление: директива pcre_jit.
4014
4015
*) Добавление: SSI команда if поддерживает выделения в регулярных
4016
выражениях.
4017
4018
*) Исправление: SSI команда if не работала внутри команды block.
4019
4020
*) Исправление: директивы limit_conn_log_level и limit_req_log_level
4021
могли не работать.
4022
4023
*) Исправление: директива limit_rate не позволяла передавать на полной
4024
скорости, даже если был указан очень большой лимит.
4025
4026
*) Исправление: директива sendfile_max_chunk не работала, если
4027
использовалась директива limit_rate.
4028
4029
*) Исправление: если в директиве proxy_pass использовались переменные и
4030
не был указан URI, всегда использовался URI исходного запроса.
4031
4032
*) Исправление: после перенаправления запроса с помощью директивы
4033
try_files директива proxy_pass без URI могла использовать URI
4034
исходного запроса.
4035
Спасибо Lanshun Zhou.
4036
4037
*) Исправление: в модуле ngx_http_scgi_module.
4038
4039
*) Исправление: в модуле ngx_http_mp4_module.
4040
4041
*) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
4042
4043
4044
Изменения в nginx 1.1.11 12.12.2011
4045
4046
*) Добавление: параметр so_keepalive в директиве listen.
4047
Спасибо Всеволоду Стахову.
4048
4049
*) Добавление: параметр if_not_empty в директивах
4050
fastcgi/scgi/uwsgi_param.
4051
4052
*) Добавление: переменная $https.
4053
4054
*) Добавление: директива proxy_redirect поддерживает переменные в первом
4055
параметре.
4056
4057
*) Добавление: директива proxy_redirect поддерживает регулярные
4058
выражения.
4059
4060
*) Исправление: переменная $sent_http_cache_control могла содержать
4061
неверное значение при использовании директивы expires.
4062
Спасибо Yichun Zhang.
4063
4064
*) Исправление: директива read_ahead могла не работать при использовании
4065
совместно с try_files и open_file_cache.
4066
4067
*) Исправление: если в параметре inactive директивы proxy_cache_path
4068
было указано малое время, в рабочем процессе мог произойти
4069
segmentation fault.
4070
4071
*) Исправление: ответы из кэша могли зависать.
4072
4073
4074
Изменения в nginx 1.1.10 30.11.2011
4075
4076
*) Исправление: при использовании AIO на Linux в рабочем процессе
4077
происходил segmentation fault; ошибка появилась в 1.1.9.
4078
4079
4080
Изменения в nginx 1.1.9 28.11.2011
4081
4082
*) Изменение: теперь двойные кавычки экранируется при выводе
4083
SSI-командой echo.
4084
Спасибо Зауру Абасмирзоеву.
4085
4086
*) Добавление: параметр valid в директиве resolver. По умолчанию теперь
4087
используется TTL, возвращённый DNS-сервером.
4088
Спасибо Кириллу Коринскому.
4089
4090
*) Исправление: nginx мог перестать отвечать, если рабочий процесс
4091
завершался аварийно.
4092
4093
*) Исправление: в рабочем процессе мог произойти segmentation fault,
4094
если использовалось SNI; ошибка появилась в 1.1.2.
4095
4096
*) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
4097
Спасибо Александру Усову.
4098
4099
*) Исправление: сигнал SIGWINCH переставал работать после первого
4100
обновления исполняемого файла; ошибка появилась в 1.1.1.
4101
4102
*) Исправление: теперь ответы бэкендов, длина которых не соответствует
4103
заголовку Content-Length, не кэширутся.
4104
4105
*) Исправление: в директиве scgi_param при использовании составных
4106
параметров.
4107
4108
*) Исправление: в методе epoll.
4109
Спасибо Yichun Zhang.
4110
4111
*) Исправление: в модуле ngx_http_flv_module.
4112
Спасибо Piotr Sikora.
4113
4114
*) Исправление: в модуле ngx_http_mp4_module.
4115
4116
*) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
4117
заголовке Host.
4118
4119
*) Исправление: директивы add_header и expires не работали для ответов с
4120
кодом 206, если запрос проксировался.
4121
4122
*) Исправление: nginx не собирался на FreeBSD 10.
4123
4124
*) Исправление: nginx не собирался на AIX.
4125
4126
4127
Изменения в nginx 1.1.8 14.11.2011
4128
4129
*) Изменение: модуль ngx_http_limit_zone_module переименован в
4130
ngx_http_limit_conn_module.
4131
4132
*) Изменение: директива limit_zone заменена директивой limit_conn_zone с
4133
новым синтаксисом.
4134
4135
*) Добавление: поддержка ограничения по нескольким limit_conn на одном
4136
уровне.
4137
4138
*) Добавление: директива image_filter_sharpen.
4139
4140
*) Исправление: в рабочем процессе мог произойти segmentation fault,
4141
если resolver получил большой DNS-ответ.
4142
Спасибо Ben Hawkes.
4143
4144
*) Исправление: в вычислении ключа для кэширования, если использовалась
4145
внутренняя реализация MD5; ошибка появилась в 1.0.4.
4146
4147
*) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4148
заголовке запроса клиента могли передаваться бэкенду при кэшировании;
4149
или не передаваться при выключенном кэшировании, если кэширование
4150
было включено в другой части конфигурации.
4151
4152
*) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
4153
"Content-Length" в заголовке ответа, использовался аргумент start.
4154
Спасибо Piotr Sikora.
4155
4156
4157
Изменения в nginx 1.1.7 31.10.2011
4158
4159
*) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
4160
Спасибо Кириллу Коринскому.
4161
4162
*) Исправление: на старте или во время переконфигурации происходил
4163
segmentation fault, если директива ssl использовалась на уровне http
4164
и не был указан ssl_certificate.
4165
4166
*) Исправление: уменьшено потребление памяти при проксировании больших
4167
файлов, если они буферизировались на диск.
4168
4169
*) Исправление: в рабочем процессе мог произойти segmentation fault,
4170
если использовалась директива "proxy_http_version 1.1".
4171
4172
*) Исправление: в директиве "expires @time".
4173
4174
4175
Изменения в nginx 1.1.6 17.10.2011
4176
4177
*) Изменение во внутреннем API: теперь при внутреннем редиректе в
4178
именованный location контексты модулей очищаются.
4179
По запросу Yichun Zhang.
4180
4181
*) Изменение: теперь если сервер, описанный в блоке upstream, был
4182
признан неработающим, то после истечения fail_timeout на него будет
4183
отправлен только один запрос; сервер будет считаться работающим, если
4184
успешно ответит на этот запрос.
4185
4186
*) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
4187
\xXX.
4188
4189
*) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
4190
теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
4191
X-Accel-Charset.
4192
4193
*) Добавление: уменьшение потребления памяти при использовании SSL.
4194
4195
*) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
4196
Спасибо Алексею Куцу.
4197
4198
*) Исправление: директивы модуля ngx_http_rewrite_module, заданные на
4199
уровне server, применялись повторно, если для запроса не находилось
4200
ни одного location'а.
4201
4202
*) Исправление: при использовании "aio sendfile" могла происходить
4203
утечка сокетов.
4204
4205
*) Исправление: при использовании файлового AIO соединения с быстрыми
4206
клиентами могли быть закрыты по истечению send_timeout.
4207
4208
*) Исправление: в модуле ngx_http_autoindex_module.
4209
4210
*) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
4211
32-битных платформах.
4212
4213
4214
Изменения в nginx 1.1.5 05.10.2011
4215
4216
*) Добавление: директивы uwsgi_buffering и scgi_buffering.
4217
Спасибо Peter Smit.
4218
4219
*) Исправление: при использовании proxy_cache_bypass могли быть
4220
закэшированы некэшируемые ответы.
4221
Спасибо John Ferlito.
4222
4223
*) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
4224
HTTP/1.1.
4225
4226
*) Исправление: закэшированные ответы с пустым телом возвращались
4227
некорректно; ошибка появилась в 0.8.31.
4228
4229
*) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были
4230
некорректны; ошибка появилась в 0.8.32.
4231
4232
*) Исправление: в директиве return.
4233
4234
*) Исправление: при использовании директивы "ssl_session_cache builtin"
4235
происходил segmentation fault; ошибка появилась в 1.1.1.
4236
4237
4238
Изменения в nginx 1.1.4 20.09.2011
4239
4240
*) Добавление: модуль ngx_http_upstream_keepalive.
4241
4242
*) Добавление: директива proxy_http_version.
4243
4244
*) Добавление: директива fastcgi_keep_conn.
4245
4246
*) Добавление: директива worker_aio_requests.
4247
4248
*) Исправление: если nginx был собран с файловым AIO, он не мог
4249
запускаться на Linux без поддержки AIO.
4250
4251
*) Исправление: в обработке ошибок при работе с Linux AIO.
4252
Спасибо Hagai Avrahami.
4253
4254
*) Исправление: уменьшено потребление памяти для долгоживущих запросов.
4255
4256
*) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
4257
MP4-атом co64.
4258
4259
4260
Изменения в nginx 1.1.3 14.09.2011
4261
4262
*) Добавление: модуль ngx_http_mp4_module.
4263
4264
*) Исправление: в Linux AIO, используемым совместно с open_file_cache.
4265
4266
*) Исправление: open_file_cache не обновлял информацию о файле, если
4267
файл был изменён не атомарно.
4268
4269
*) Исправление: nginx не собирался на MacOSX 10.7.
4270
4271
4272
Изменения в nginx 1.1.2 05.09.2011
4273
4274
*) Изменение: теперь, если суммарный размер всех диапазонов больше
4275
размера исходного ответа, то nginx возвращает только исходный ответ,
4276
не обрабатывая диапазоны.
4277
4278
*) Добавление: директива max_ranges.
4279
4280
*) Исправление: директивы ssl_verify_client, ssl_verify_depth и
4281
ssl_prefer_server_cipher могли работать некорректно, если
4282
использовался SNI.
4283
4284
*) Исправление: в директивах proxy/fastcgi/scgi/
4285
uwsgi_ignore_client_abort.
4286
4287
4288
Изменения в nginx 1.1.1 22.08.2011
4289
4290
*) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
4291
число файлов, указанное в параметре load_files, либо работает не
4292
дольше времени, указанного в параметре loader_threshold.
4293
4294
*) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
4295
4296
*) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
4297
на Solaris.
4298
Спасибо Денису Иванову.
4299
4300
*) Добавление: теперь на NetBSD поддерживаются accept фильтры.
4301
4302
*) Исправление: nginx не собирался на Linux 3.0.
4303
4304
*) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
4305
появилась в 1.1.0.
4306
4307
*) Исправление: обработка тела запроса могла быть неверной, если клиент
4308
использовал pipelining.
4309
4310
*) Исправление: в директиве request_body_in_single_buf.
4311
4312
*) Исправление: в директивах proxy_set_body и proxy_pass_request_body
4313
при использовании SSL-соединения с бэкендом.
4314
4315
*) Исправление: nginx нагружал процессор, если все серверы в upstream'е
4316
были помечены флагом down.
4317
4318
*) Исправление: при переконфигурации мог произойти segmentation fault,
4319
если в предыдущей конфигурации был определён, но не использовался
4320
ssl_session_cache.
4321
4322
*) Исправление: при использовании большого количества backup-серверов в
4323
рабочем процессе мог произойти segmentation fault.
4324
4325
*) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
4326
значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
4327
произойти segmentation fault; ошибка появилась в 0.8.40.
4328
4329
4330
Изменения в nginx 1.1.0 01.08.2011
4331
4332
*) Добавление: уменьшение времени работы загрузчика кэша.
4333
4334
*) Добавление: параметры loader_files, loader_sleep и loader_threshold
4335
директив proxy/fastcgi/scgi/uwsgi_cache_path.
4336
4337
*) Добавление: уменьшение времени загрузки конфигураций с большим
4338
количеством HTTPS серверов.
4339
4340
*) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами.
4341
Спасибо Adrian Kotelba.
4342
4343
*) Добавление: директива lingering_close.
4344
Спасибо Максиму Дунину.
4345
4346
*) Исправление: закрытия соединения для pipelined-запросов.
4347
Спасибо Максиму Дунину.
4348
4349
*) Исправление: nginx не запрещал сжатие при получении значения
4350
"gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
4351
4352
*) Исправление: таймаута при небуферизированном проксировании.
4353
Спасибо Максиму Дунину.
4354
4355
*) Исправление: утечки памяти при использовании переменных в директиве
4356
proxy_pass при работе с бэкендом по HTTPS.
4357
Спасибо Максиму Дунину.
4358
4359
*) Исправление: в проверке параметра директивы proxy_pass, заданного
4360
переменными.
4361
Спасибо Lanshun Zhou.
4362
4363
*) Исправление: SSL не работал на QNX.
4364
Спасибо Максиму Дунину.
4365
4366
*) Исправление: SSL модули не собирались gcc 4.6 без параметра
4367
--with-debug.
4368
4369
4370
Изменения в nginx 1.0.5 19.07.2011
4371
4372
*) Изменение: теперь по умолчанию используются следующие шифры SSL:
4373
"HIGH:!aNULL:!MD5".
4374
Спасибо Rob Stradling.
4375
4376
*) Добавление: директивы referer_hash_max_size и
4377
referer_hash_bucket_size.
4378
Спасибо Witold Filipczyk.
4379
4380
*) Добавление: переменная $uid_reset.
4381
4382
*) Исправление: при использовании кэширования в рабочем процессе мог
4383
произойти segmentation fault.
4384
Спасибо Lanshun Zhou.
4385
4386
*) Исправление: при использовании кэширования рабочие процессы могли
4387
зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
4388
Спасибо Максиму Дунину.
4389
4390
*) Исправление: сообщения "stalled cache updating".
4391
Спасибо Максиму Дунину.
4392
4393
4394
Изменения в nginx 1.0.4 01.06.2011
4395
4396
*) Изменение: теперь в регулярных выражениях в директиве map можно
4397
задать чувствительность к регистру с помощью префиксов "~" и "~*".
4398
4399
*) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
4400
на Linux.
4401
Спасибо Денису Латыпову.
4402
4403
*) Исправление: сообщения "stalled cache updating".
4404
4405
*) Исправление: nginx не собирался с параметром
4406
--without-http_auth_basic_module; ошибка появилась в 1.0.3.
4407
4408
4409
Изменения в nginx 1.0.3 25.05.2011
4410
4411
*) Добавление: директива auth_basic_user_file поддерживает шифрование
4412
пароля методами "$apr1", "{PLAIN}" и "{SSHA}".
4413
Спасибо Максиму Дунину.
4414
4415
*) Добавление: директива geoip_org и переменная $geoip_org.
4416
Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
4417
4418
*) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module
4419
поддерживают адреса IPv4, отображённые на IPv6 адреса.
4420
4421
*) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в
4422
рабочем процессе происходил segmentation fault, если директивы access
4423
или deny были определены только для адресов IPv6; ошибка появилась в
4424
0.8.22.
4425
4426
*) Исправление: закэшированный ответ мог быть испорчен, если значения
4427
директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/
4428
uwsgi_no_cache были разными; ошибка появилась в 0.8.46.
4429
4430
4431
Изменения в nginx 1.0.2 10.05.2011
4432
4433
*) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX.
4434
4435
*) Исправление: в работе параметра rotate директивы image_filter.
4436
Спасибо Adam Bocim.
4437
4438
*) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1.
4439
4440
4441
Изменения в nginx 1.0.1 03.05.2011
4442
4443
*) Изменение: теперь директива split_clients использует алгоритм
4444
MurmurHash2 из-за лучшего распределения.
4445
Спасибо Олегу Мамонтову.
4446
4447
*) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются
4448
ложными значениями.
4449
Спасибо Максиму Дунину.
4450
4451
*) Изменение: теперь по умолчанию nginx использует значение 511 для
4452
listen backlog на Linux.
4453
4454
*) Добавление: переменные $upstream_... можно использовать в SSI и
4455
перловом модулях.
4456
4457
*) Исправление: теперь nginx лучше ограничивает размер кэша на диске.
4458
Спасибо Олегу Мамонтову.
4459
4460
*) Исправление: при парсинге неправильного IPv4 адреса мог произойти
4461
segmentation fault; ошибка появилась в 0.8.22.
4462
Спасибо Максиму Дунину.
4463
4464
*) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug.
4465
4466
*) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка
4467
появилась в 0.9.3.
4468
Спасибо Dagobert Michelsen.
4469
4470
*) Исправление: переменная $request_time имела неверные значения, если
4471
использовались подзапросы; ошибка появилась в 0.8.47.
4472
Спасибо Игорю А. Валькову.
4473
4474
4475
Изменения в nginx 1.0.0 12.04.2011
4476
4477
*) Исправление: cache manager мог нагружать процессор после
4478
переконфигурации.
4479
Спасибо Максиму Дунину.
4480
4481
*) Исправление: директива "image_filter crop" неправильно работала в
4482
сочетании с "image_filter rotate 180".
4483
4484
*) Исправление: директива "satisfy any" запрещала выдачу
4485
пользовательской страницы для 401 кода.
4486
4487
4488
Изменения в nginx 0.9.7 04.04.2011
4489
4490
*) Добавление: теперь соединения в состоянии keepalive могут быть
4491
закрыты преждевременно, если у воркера нет свободных соединений.
4492
Спасибо Максиму Дунину.
4493
4494
*) Добавление: параметр rotate директивы image_filter.
4495
Спасибо Adam Bocim.
4496
4497
*) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass,
4498
scgi_pass или uwsgi_pass задан выражением и ссылается на описанный
4499
upstream.
4500
4501
4502
Изменения в nginx 0.9.6 21.03.2011
4503
4504
*) Добавление: директива map поддерживает регулярные выражения в
4505
качестве значения первого параметра.
4506
4507
*) Добавление: переменная $time_iso8601 для access_log.
4508
Спасибо Michael Lustfield.
4509
4510
4511
Изменения в nginx 0.9.5 21.02.2011
4512
4513
*) Изменение: теперь по умолчанию nginx использует значение -1 для
4514
listen backlog на Linux.
4515
Спасибо Андрею Нигматулину.
4516
4517
*) Добавление: параметр utf8 в директивах geoip_country и geoip_city.
4518
Спасибо Денису Латыпову.
4519
4520
*) Исправление: исправление в умолчательной директиве proxy_redirect,
4521
если в директиве proxy_pass не был описан URI.
4522
Спасибо Максиму Дунину.
4523
4524
*) Исправление: директива error_page не работала с нестандартными кодами
4525
ошибок; ошибка появилась в 0.8.53.
4526
Спасибо Максиму Дунину.
4527
4528
4529
Изменения в nginx 0.9.4 21.01.2011
4530
4531
*) Добавление: директива server_name поддерживает переменную $hostname.
4532
4533
*) Добавление: 494 код для ошибки "Request Header Too Large".
4534
4535
4536
Изменения в nginx 0.9.3 13.12.2010
4537
4538
*) Исправление: если для пары IPv6-адрес:порт описан только один сервер,
4539
то выделения в регулярных выражениях в директиве server_name не
4540
работали.
4541
4542
*) Исправление: nginx не собирался под Solaris; ошибка появилась в
4543
0.9.0.
4544
4545
4546
Изменения в nginx 0.9.2 06.12.2010
4547
4548
*) Добавление: поддержка строки "If-Unmodified-Since" в заголовке
4549
запроса клиента.
4550
4551
*) Изменение: использование accept(), если accept4() не реализован;
4552
ошибка появилась в 0.9.0.
4553
4554
*) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0.
4555
4556
*) Исправление: уязвимости в OpenSSL CVE-2010-4180.
4557
Спасибо Максиму Дунину.
4558
4559
4560
Изменения в nginx 0.9.1 30.11.2010
4561
4562
*) Исправление: директивы вида "return CODE message" не работали; ошибка
4563
появилась в 0.9.0.
4564
4565
4566
Изменения в nginx 0.9.0 29.11.2010
4567
4568
*) Добавление: директива keepalive_disable.
4569
4570
*) Добавление: директива map поддерживает переменные в качестве значения
4571
определяемой переменной.
4572
4573
*) Добавление: директива map поддерживает пустые строки в качестве
4574
значения первого параметра.
4575
4576
*) Добавление: директива map поддерживает выражения в первом параметре.
4577
4578
*) Добавление: страница руководства nginx(8).
4579
Спасибо Сергею Осокину.
4580
4581
*) Добавление: поддержка accept4() в Linux.
4582
Спасибо Simon Liu.
4583
4584
*) Изменение: устранение предупреждения линкера о "sys_errlist" и
4585
"sys_nerr" под Linux; предупреждение появилось в 0.8.35.
4586
4587
*) Исправление: при использовании директивы auth_basic в рабочем
4588
процессе мог произойти segmentation fault.
4589
Спасибо Михаилу Лалетину.
4590
4591
*) Исправление: совместимость с модулем ngx_http_eval_module; ошибка
4592
появилась в 0.8.42.
4593
4594
4595
Изменения в nginx 0.8.53 18.10.2010
4596
4597
*) Добавление: теперь директива error_page позволяет менять код статуса
4598
у редиректа.
4599
4600
*) Добавление: директива gzip_disable поддерживает специальную маску
4601
degradation.
4602
4603
*) Исправление: при использовании файлового AIO могла происходить утечка
4604
сокетов.
4605
Спасибо Максиму Дунину.
4606
4607
*) Исправление: если в первом сервере не была описана директива listen и
4608
нигде явно не описан сервер по умолчанию, то сервером по умолчанию
4609
становился следующий сервер с директивой listen; ошибка появилась в
4610
0.8.21.
4611
4612
4613
Изменения в nginx 0.8.52 28.09.2010
4614
4615
*) Исправление: nginx использовал режим SSL для listen сокета, если для
4616
него был установлен любой listen-параметр; ошибка появилась в 0.8.51.
4617
4618
4619
Изменения в nginx 0.8.51 27.09.2010
4620
4621
*) Изменение: директива secure_link_expires упразднена.
4622
4623
*) Изменение: уровень логгирования ошибок resolver'а понижен с уровня
4624
alert на error.
4625
4626
*) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать
4627
несколько раз.
4628
4629
4630
Изменения в nginx 0.8.50 02.09.2010
4631
4632
*) Добавление: директивы secure_link, secure_link_md5 и
4633
secure_link_expires модуля ngx_http_secure_link_module.
4634
4635
*) Добавление: ключ -q.
4636
Спасибо Геннадию Махомеду.
4637
4638
*) Исправление: при использовании кэширования рабочие процессы и могли
4639
зациклиться во время переконфигурации; ошибка появилась в 0.8.48.
4640
4641
*) Исправление: в директиве gzip_disable.
4642
Спасибо Derrick Petzold.
4643
4644
*) Исправление: nginx/Windows не мог посылать сигналы stop, quit,
4645
reopen, reload процессу, запущенному в другой сессии.
4646
4647
4648
Изменения в nginx 0.8.49 09.08.2010
4649
4650
*) Добавление: директива image_filter_jpeg_quality поддерживает
4651
переменные.
4652
4653
*) Исправление: при использовании переменной $geoip_region_name в
4654
рабочем процессе мог произойти segmentation fault; ошибка появилась в
4655
0.8.48.
4656
4657
*) Исправление: ошибки, перехваченные error_page, кэшировались только до
4658
следующего запроса; ошибка появилась в 0.8.48.
4659
4660
4661
Изменения в nginx 0.8.48 03.08.2010
4662
4663
*) Изменение: теперь по умолчанию директива server_name имеет значение
4664
пустое имя "".
4665
Спасибо Геннадию Махомеду.
4666
4667
*) Изменение: теперь по умолчанию директива server_name_in_redirect
4668
имеет значение off.
4669
4670
*) Добавление: переменные $geoip_dma_code, $geoip_area_code и
4671
$geoip_region_name.
4672
Спасибо Christine McGonagle.
4673
4674
*) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
4675
scgi_pass не наследовались в блоки limit_except.
4676
4677
*) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
4678
uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
4679
появилась в 0.8.46.
4680
4681
*) Исправление: директива fastcgi_split_path_info неверно использовала
4682
выделения, если в выделения попадала только часть URI.
4683
Спасибо Юрию Тарадаю и Frank Enderle.
4684
4685
*) Исправление: директива rewrite не экранировала символ ";" при
4686
копировании из URI в аргументы.
4687
Спасибо Daisuke Murase.
4688
4689
*) Исправление: модуль ngx_http_image_filter_module закрывал соединение,
4690
если изображение было больше размера image_filter_buffer.
4691
4692
4693
Изменения в nginx 0.8.47 28.07.2010
4694
4695
*) Исправление: переменная $request_time имела неверные значения для
4696
подзапросов.
4697
4698
*) Исправление: ошибки, перехваченные error_page, не кэшировались.
4699
4700
*) Исправление: если использовался параметр max_size, то cache manager
4701
мог зациклиться; ошибка появилась в 0.8.46.
4702
4703
4704
Изменения в nginx 0.8.46 19.07.2010
4705
4706
*) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
4707
и scgi_no_cache теперь влияют только на сохранение закэшированного
4708
ответа.
4709
4710
*) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass,
4711
uwsgi_cache_bypass и scgi_cache_bypass.
4712
4713
*) Исправление: nginx не освобождал память в keys_zone кэшей в случае
4714
ошибки работы с бэкендом: память освобождалась только по истечении
4715
времени неактивности или при недостатке памяти.
4716
4717
4718
Изменения в nginx 0.8.45 13.07.2010
4719
4720
*) Добавление: улучшения в модуле ngx_http_xslt_filter.
4721
Спасибо Laurence Rowe.
4722
4723
*) Исправление: ответ SSI модуля мог передаваться не полностью после
4724
команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
4725
Спасибо Максиму Дунину.
4726
4727
*) Исправление: директива listen не поддерживала параметр setfib=0.
4728
4729
4730
Изменения в nginx 0.8.44 05.07.2010
4731
4732
*) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
4733
заголовке которых есть строка "Set-Cookie".
4734
4735
*) Добавление: директива listen поддерживает параметр setfib.
4736
Спасибо Андрею Филонову.
4737
4738
*) Исправление: директива sub_filter могла изменять регистр букв при
4739
частичном совпадении.
4740
4741
*) Исправление: совместимость с HP/UX.
4742
4743
*) Исправление: совместимость с компилятором AIX xlC_r.
4744
4745
*) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
4746
запросы.
4747
Спасибо Miroslaw Jaworski.
4748
4749
4750
Изменения в nginx 0.8.43 30.06.2010
4751
4752
*) Добавление: ускорение загрузки больших баз geo-диапазонов.
4753
4754
*) Исправление: перенаправление ошибки в "location /zero {return 204;}"
4755
без изменения кода ответа оставляло тело ошибки; ошибка появилась в
4756
0.8.42.
4757
4758
*) Исправление: nginx мог закрывать IPv6 listen сокет во время
4759
переконфигурации.
4760
Спасибо Максиму Дунину.
4761
4762
*) Исправление: переменную $uid_set можно использовать на любой стадии
4763
обработки запроса.
4764
4765
4766
Изменения в nginx 0.8.42 21.06.2010
4767
4768
*) Изменение: теперь nginx проверяет location'ы, заданные регулярными
4769
выражениями, если запрос полностью совпал с location'ом, заданным
4770
строкой префикса. Предыдущее поведение появилось в 0.7.1.
4771
4772
*) Добавление: модуль ngx_http_scgi_module.
4773
Спасибо Manlio Perillo.
4774
4775
*) Добавление: в директиве return можно добавлять текст ответа.
4776
4777
4778
Изменения в nginx 0.8.41 15.06.2010
4779
4780
*) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно
4781
при запросе файла с неверной кодировкой UTF-8.
4782
4783
*) Изменение: теперь nginx разрешает использовать пробелы в строке
4784
запроса.
4785
4786
*) Исправление: директива proxy_redirect неправильно изменяла строку
4787
"Refresh" в заголовке ответа бэкенда.
4788
Спасибо Андрею Андрееву и Максиму Согину.
4789
4790
*) Исправление: nginx не поддерживал путь без имени хоста в строке
4791
"Destination" в заголовке запроса.
4792
4793
4794
Изменения в nginx 0.8.40 07.06.2010
4795
4796
*) Безопасность: теперь nginx/Windows игнорирует имя потока файла по
4797
умолчанию.
4798
Спасибо Jose Antonio Vazquez Gonzalez.
4799
4800
*) Добавление: модуль ngx_http_uwsgi_module.
4801
Спасибо Roberto De Ioris.
4802
4803
*) Добавление: директива fastcgi_param со значением, начинающимся со
4804
строки "HTTP_", изменяет строку заголовка в запросе клиента.
4805
4806
*) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
4807
заголовке запроса клиента передавались FastCGI-серверу при
4808
кэшировании.
4809
4810
*) Исправление: listen unix domain сокет нельзя было изменить во время
4811
переконфигурации.
4812
Спасибо Максиму Дунину.
4813
4814
4815
Изменения в nginx 0.8.39 31.05.2010
4816
4817
*) Исправление: наследуемая директива alias неправильно работала во
4818
вложенном location'е.
4819
4820
*) Исправление: в комбинации директив alias с переменными и try_files;
4821
4822
*) Исправление: listen unix domain и IPv6 сокеты не наследовались во
4823
время обновления без перерыва.
4824
Спасибо Максиму Дунину.
4825
4826
4827
Изменения в nginx 0.8.38 24.05.2010
4828
4829
*) Добавление: директивы proxy_no_cache и fastcgi_no_cache.
4830
4831
*) Добавление: теперь при использовании переменной $scheme в директиве
4832
rewrite автоматически делается редирект.
4833
Спасибо Piotr Sikora.
4834
4835
*) Исправление: теперь задержки в директиве limit_req соответствует
4836
описанному алгоритму.
4837
Спасибо Максиму Дунину.
4838
4839
*) Исправление: переменную $uid_got нельзя было использовать в SSI и
4840
перловом модулях.
4841
4842
4843
Изменения в nginx 0.8.37 17.05.2010
4844
4845
*) Добавление: модуль ngx_http_split_clients_module.
4846
4847
*) Добавление: директива map поддерживает ключи больше 255 символов.
4848
4849
*) Исправление: nginx игнорировал значения "private" и "no-store" в
4850
строке "Cache-Control" в заголовке ответа бэкенда.
4851
4852
*) Исправление: параметр stub в SSI-директиве include не использовался,
4853
если пустой ответ имел код 200.
4854
4855
*) Исправление: если проксированный или FastCGI запрос внутренне
4856
перенаправлялся в другой проксированный или FastCGI location, то в
4857
рабочем процессе мог произойти segmentation fault; ошибка появилась в
4858
0.8.33.
4859
Спасибо Yichun Zhang.
4860
4861
*) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до
4862
таймаута.
4863
Спасибо Alan Batie.
4864
4865
4866
Изменения в nginx 0.8.36 22.04.2010
4867
4868
*) Исправление: модуль ngx_http_dav_module неправильно обрабатывал
4869
методы DELETE, COPY и MOVE для симлинков.
4870
4871
*) Исправление: модуль SSI в подзапросах использовал закэшированные в
4872
основном запросе значения переменных $query_string, $arg_... и им
4873
подобных.
4874
4875
*) Исправление: значение переменной повторно экранировалось после
4876
каждого вывода SSI-команды echo; ошибка появилась в 0.6.14.
4877
4878
*) Исправление: рабочий процесс зависал при запросе файла FIFO.
4879
Спасибо Vicente Aguilar и Максиму Дунину.
4880
4881
*) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux.
4882
Спасибо Максиму Дунину.
4883
4884
*) Исправление: nginx не собирался с параметром --without-http-cache;
4885
ошибка появилась в 0.8.35.
4886
4887
4888
Изменения в nginx 0.8.35 01.04.2010
4889
4890
*) Изменение: теперь charset-фильтр работает до SSI-фильтра.
4891
4892
*) Добавление: директива chunked_transfer_encoding.
4893
4894
*) Исправление: символ "&" при копировании в аргументы в правилах
4895
rewrite не экранировался.
4896
4897
*) Исправление: nginx мог завершаться аварийно во время обработки
4898
сигнала или при использовании директивы timer_resolution на
4899
платформах, не поддерживающих методы kqueue или eventport.
4900
Спасибо George Xie и Максиму Дунину.
4901
4902
*) Исправление: если временные файлы и постоянное место хранения
4903
располагались на разных файловых системах, то у постоянных файлов
4904
время изменения было неверным.
4905
Спасибо Максиму Дунину.
4906
4907
*) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
4908
"memcached sent invalid trailer".
4909
Спасибо Максиму Дунину.
4910
4911
*) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
4912
текстов.
4913
Спасибо Максиму Дунину.
4914
4915
*) Исправление: в рабочем процессе происходил segmentation fault, если
4916
перед ответом FastCGI-сервера было много вывода в stderr; ошибка
4917
появилась в 0.8.34.
4918
Спасибо Максиму Дунину.
4919
4920
4921
Изменения в nginx 0.8.34 03.03.2010
4922
4923
*) Исправление: nginx не поддерживал все шифры, используемые в
4924
клиентских сертификатах.
4925
Спасибо Иннокентию Еникееву.
4926
4927
*) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед
4928
ответом было много вывода в stderr.
4929
4930
*) Исправление: nginx не поддерживал HTTPS-рефереры.
4931
4932
*) Исправление: nginx/Windows мог не находить файлы, если путь в
4933
конфигурации был задан в другом регистре; ошибка появилась в 0.8.33.
4934
4935
*) Исправление: переменная $date_local выдавала неверное время, если
4936
использовался формат "%s".
4937
Спасибо Максиму Дунину.
4938
4939
*) Исправление: если ssl_session_cache не был установлен или установлен
4940
в none, то при проверке клиентского сертификаты могла происходить
4941
ошибка "session id context uninitialized"; ошибка появилась в 0.7.1.
4942
4943
*) Исправление: geo-диапазон возвращал значение по умолчанию, если
4944
диапазон включал в себя одну и более сетей размером /16 и не
4945
начинался на границе сети размером /16.
4946
4947
*) Исправление: блок, используемый в параметре stub в SSI-директиве
4948
include, выводился с MIME-типом "text/plain".
4949
4950
*) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11.
4951
4952
4953
Изменения в nginx 0.8.33 01.02.2010
4954
4955
*) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI.
4956
Спасибо Dan Crowley, Core Security Technologies.
4957
4958
*) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов.
4959
Спасибо Dan Crowley, Core Security Technologies.
4960
4961
*) Изменение: теперь keepalive соединения после запросов POST не
4962
запрещаются для MSIE 7.0+.
4963
Спасибо Adam Lounds.
4964
4965
*) Изменение: теперь keepalive соединения запрещены для Safari.
4966
Спасибо Joshua Sierles.
4967
4968
*) Исправление: если проксированный или FastCGI запрос внутренне
4969
перенаправлялся в другой проксированный или FastCGI location, то
4970
переменная $upstream_response_time могла иметь ненормально большое
4971
значение; ошибка появилась в 0.8.7.
4972
4973
*) Исправление: в рабочем процессе мог произойти segmentation fault при
4974
отбрасывания тела запроса; ошибка появилась в 0.8.11.
4975
4976
4977
Изменения в nginx 0.8.32 11.01.2010
4978
4979
*) Исправление: ошибки при использовании кодировки UTF-8 в
4980
ngx_http_autoindex_module.
4981
Спасибо Максиму Дунину.
4982
4983
*) Исправление: именованные выделения в регулярных выражениях работали
4984
только для двух переменных.
4985
Спасибо Максиму Дунину.
4986
4987
*) Исправление: теперь в строке заголовка запроса "Host" используется
4988
имя "localhost", если в директиве auth_http указан unix domain сокет.
4989
Спасибо Максиму Дунину.
4990
4991
*) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых
4992
ответов.
4993
Спасибо Julian Reich.
4994
4995
*) Исправление: если директива "expires modified" выставляла дату в
4996
прошлом, то в строке заголовка ответа "Cache-Control" выдавалось
4997
отрицательное число.
4998
Спасибо Алексею Капранову.
4999
5000
5001
Изменения в nginx 0.8.31 23.12.2009
5002
5003
*) Добавление: теперь директива error_page может перенаправлять ответы
5004
со статусом 301 и 302.
5005
5006
*) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и
5007
$geoip_longitude.
5008
Спасибо Arvind Sundararajan.
5009
5010
*) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет
5011
EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
5012
5013
*) Исправление: nginx закрывал соединение при запросе закэшированного
5014
ответа с пустым телом.
5015
Спасибо Piotr Sikora.
5016
5017
*) Исправление: nginx мог не собираться gcc 4.x при использовании
5018
оптимизации -O2 и выше.
5019
Спасибо Максиму Дунину и Денису Латыпову.
5020
5021
*) Исправление: регулярные выражения в location всегда тестировались с
5022
учётом регистра; ошибка появилась в 0.8.25.
5023
5024
*) Исправление: nginx кэшировал 304 ответ, если в заголовке
5025
проксируемого запроса была строка "If-None-Match".
5026
Спасибо Tim Dettrick и David Kostal.
5027
5028
*) Исправление: nginx/Windows пытался дважды удалить временный файл при
5029
перезаписи уже существующего файла.
5030
5031
5032
Изменения в nginx 0.8.30 15.12.2009
5033
5034
*) Изменение: теперь по умолчанию размер буфера директивы
5035
large_client_header_buffers равен 8K.
5036
Спасибо Andrew Cholakian.
5037
5038
*) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI.
5039
5040
*) Исправление: nginx/Windows пытался дважды переименовать временный
5041
файл при перезаписи уже существующего файла.
5042
5043
*) Исправление: ошибки double free or corruption, возникающей, если имя
5044
хоста не было найдено; ошибка появилась в 0.8.22.
5045
Спасибо Константину Свисту.
5046
5047
*) Исправление: в использовании libatomic на некоторых платформах.
5048
Спасибо W-Mark Kubacki.
5049
5050
5051
Изменения в nginx 0.8.29 30.11.2009
5052
5053
*) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код
5054
ответа "009".
5055
5056
*) Добавление: директивы addition_types, charset_types, gzip_types,
5057
ssi_types, sub_filter_types и xslt_types поддерживают параметр "*".
5058
5059
*) Добавление: использование встроенных атомарных операций GCC 4.1+.
5060
Спасибо W-Mark Kubacki.
5061
5062
*) Добавление: параметр --with-libatomic[=DIR] в configure.
5063
Спасибо W-Mark Kubacki.
5064
5065
*) Исправление: listen unix domain сокет имели ограниченные права
5066
доступа.
5067
5068
*) Исправление: закэшированные ответы HTTP/0.9 неправильно
5069
обрабатывались.
5070
5071
*) Исправление: именованные выделения в регулярных выражениях, заданные
5072
как "?P<...>", не работали в директиве server_name.
5073
Спасибо Максиму Дунину.
5074
5075
5076
Изменения в nginx 0.8.28 23.11.2009
5077
5078
*) Исправление: nginx не собирался с параметром --without-pcre; ошибка
5079
появилась в 0.8.25.
5080
5081
5082
Изменения в nginx 0.8.27 17.11.2009
5083
5084
*) Исправление: регулярные выражения не работали в nginx/Windows; ошибка
5085
появилась в 0.8.25.
5086
5087
5088
Изменения в nginx 0.8.26 16.11.2009
5089
5090
*) Исправление: ошибки при использовании выделений в директиве rewrite;
5091
ошибка появилась в 0.8.25.
5092
5093
*) Исправление: nginx не собирался без параметра --with-debug; ошибка
5094
появилась в 0.8.25.
5095
5096
5097
Изменения в nginx 0.8.25 16.11.2009
5098
5099
*) Изменение: теперь в лог ошибок не пишется сообщение, если переменная
5100
не найдена с помощью метода $r->variable().
5101
5102
*) Добавление: модуль ngx_http_degradation_module.
5103
5104
*) Добавление: именованные выделения в регулярных выражениях.
5105
5106
*) Добавление: теперь при использовании переменных в директиве
5107
proxy_pass не требуется задавать URI.
5108
5109
*) Добавление: теперь директива msie_padding работает и для Chrome.
5110
5111
*) Исправление: в рабочем процессе происходил segmentation fault при
5112
недостатке памяти; ошибка появилась в 0.8.18.
5113
5114
*) Исправление: nginx передавал сжатые ответы клиентам, не
5115
поддерживающим сжатие, при настройках gzip_static on и gzip_vary off;
5116
ошибка появилась в 0.8.16.
5117
5118
5119
Изменения в nginx 0.8.24 11.11.2009
5120
5121
*) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в
5122
заголовок 304-ых ответов модуля ngx_http_gzip_static_module.
5123
5124
*) Исправление: nginx не собирался без параметра --with-debug; ошибка
5125
появилась в 0.8.23.
5126
5127
*) Исправление: параметр "unix:" в директиве set_real_ip_from
5128
неправильно наследовался с предыдущего уровня.
5129
5130
*) Исправление: в resolver'е при определении пустого имени.
5131
5132
5133
Изменения в nginx 0.8.23 11.11.2009
5134
5135
*) Безопасность: теперь SSL/TLS renegotiation запрещён.
5136
Спасибо Максиму Дунину.
5137
5138
*) Исправление: listen unix domain сокет не наследовался во время
5139
обновления без перерыва.
5140
5141
*) Исправление: параметр "unix:" в директиве set_real_ip_from не работал
5142
без ещё одной директивы с любым IP-адресом.
5143
5144
*) Исправление: segmentation fault и зацикливания в resolver'е.
5145
5146
*) Исправление: в resolver'е.
5147
Спасибо Артёму Бохану.
5148
5149
5150
Изменения в nginx 0.8.22 03.11.2009
5151
5152
*) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind.
5153
5154
*) Добавление: директивы access и deny поддерживают IPv6.
5155
5156
*) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в
5157
заголовках запроса.
5158
5159
*) Добавление: параметр "unix:" в директиве set_real_ip_from.
5160
5161
*) Исправление: nginx не удалял unix domain сокет после тестирования
5162
конфигурации.
5163
5164
*) Исправление: nginx удалял unix domain сокет во время обновления без
5165
перерыва.
5166
5167
*) Исправление: оператор "!-x" не работал.
5168
Спасибо Максиму Дунину.
5169
5170
*) Исправление: в рабочем процессе мог произойти segmentation fault при
5171
использовании limit_rate в HTTPS сервере.
5172
Спасибо Максиму Дунину.
5173
5174
*) Исправление: при записи в лог переменной $limit_rate в рабочем
5175
процессе происходил segmentation fault.
5176
Спасибо Максиму Дунину.
5177
5178
*) Исправление: в рабочем процессе мог произойти segmentation fault,
5179
если внутри блока server не было директивы listen; ошибка появилась в
5180
0.8.21.
5181
5182
5183
Изменения в nginx 0.8.21 26.10.2009
5184
5185
*) Добавление: теперь ключ -V показывает статус поддержки TLS SNI.
5186
5187
*) Добавление: директива listen модуля HTTP поддерживает unix domain
5188
сокеты.
5189
Спасибо Hongli Lai.
5190
5191
*) Добавление: параметр "default_server" в директиве listen.
5192
5193
*) Добавление: теперь параметр "default" не обязателен для установки
5194
параметров listen-сокета.
5195
5196
*) Исправление: nginx не поддерживал даты в 2038 году на 32-битных
5197
платформах;
5198
5199
*) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
5200
5201
5202
Изменения в nginx 0.8.20 14.10.2009
5203
5204
*) Изменение: теперь по умолчанию используются следующие шифры SSL:
5205
"HIGH:!ADH:!MD5".
5206
5207
*) Исправление: модуль ngx_http_autoindex_module не показывал последний
5208
слэш для линков на каталоги; ошибка появилась в 0.7.15.
5209
5210
*) Исправление: nginx не закрывал лог, заданный параметром конфигурации
5211
--error-log-path; ошибка появилась в 0.7.53.
5212
5213
*) Исправление: nginx не считал запятую разделителем в строке
5214
"Cache-Control" в заголовке ответа бэкенда.
5215
5216
*) Исправление: nginx/Windows мог не создать временный файл, файл в кэше
5217
или файл с помощью директив proxy/fastcgi_store, если рабочий процесс
5218
не имел достаточно прав для работы с каталогами верхнего уровня.
5219
5220
*) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
5221
FastCGI-сервера не скрывались при кэшировании, если не использовались
5222
директивы fastcgi_hide_header с любыми параметрами.
5223
5224
*) Исправление: nginx неверно считал размер кэша на диске.
5225
5226
5227
Изменения в nginx 0.8.19 06.10.2009
5228
5229
*) Изменение: теперь протокол SSLv2 по умолчанию запрещён.
5230
5231
*) Изменение: теперь по умолчанию используются следующие шифры SSL:
5232
"ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
5233
5234
*) Исправление: директива limit_req не работала; ошибка появилась в
5235
0.8.18.
5236
5237
5238
Изменения в nginx 0.8.18 06.10.2009
5239
5240
*) Добавление: директива read_ahead.
5241
5242
*) Добавление: теперь можно использовать несколько директив
5243
perl_modules.
5244
5245
*) Добавление: директивы limit_req_log_level и limit_conn_log_level.
5246
5247
*) Исправление: теперь директива limit_req соответствует алгоритму leaky
5248
bucket.
5249
Спасибо Максиму Дунину.
5250
5251
*) Исправление: nginx не работал на Linux/sparc.
5252
Спасибо Marcus Ramberg.
5253
5254
*) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в
5255
ответе на запрос MKCOL.
5256
Спасибо Xie Zhenye.
5257
5258
*) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка
5259
появилась в 0.8.11.
5260
5261
*) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
5262
5263
5264
Изменения в nginx 0.8.17 28.09.2009
5265
5266
*) Безопасность: теперь символы "/../" запрещены в строке "Destination"
5267
в заголовке запроса.
5268
5269
*) Изменение: теперь значение переменной $host всегда в нижнем регистре.
5270
5271
*) Добавление: переменная $ssl_session_id.
5272
5273
*) Исправление: утечки сокетов; ошибка появилась в 0.8.11.
5274
5275
5276
Изменения в nginx 0.8.16 22.09.2009
5277
5278
*) Добавление: директива image_filter_transparency.
5279
5280
*) Исправление: директива "addition_types" была неверно названа
5281
"addtion_types".
5282
5283
*) Исправление: порчи кэша resolver'а.
5284
Спасибо Matthew Dempsky.
5285
5286
*) Исправление: утечки памяти в resolver'е.
5287
Спасибо Matthew Dempsky.
5288
5289
*) Исправление: неверная строка запроса в переменной $request
5290
записывалась в access_log только при использовании error_log на
5291
уровне info или debug.
5292
5293
*) Исправление: в поддержке альфа-канала PNG в модуле
5294
ngx_http_image_filter_module.
5295
5296
*) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в
5297
заголовок ответа, если обе директивы gzip_static и gzip_vary были
5298
включены.
5299
5300
*) Исправление: в поддержке кодировки UTF-8 директивой try_files в
5301
nginx/Windows.
5302
5303
*) Исправление: ошибки при использовании post_action; ошибка появилась в
5304
0.8.11.
5305
Спасибо Игорю Артемьеву.
5306
5307
5308
Изменения в nginx 0.8.15 14.09.2009
5309
5310
*) Безопасность: при обработке специально созданного запроса в рабочем
5311
процессе мог произойти segmentation fault.
5312
Спасибо Chris Ries.
5313
5314
*) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и
5315
.domain-some.tld, то имя .sub.domain.tld попадало под маску
5316
.domain.tld.
5317
5318
*) Исправление: в поддержке прозрачности в модуле
5319
ngx_http_image_filter_module.
5320
5321
*) Исправление: в файловом AIO.
5322
5323
*) Исправление: ошибки при использовании X-Accel-Redirect; ошибка
5324
появилась в 0.8.11.
5325
5326
*) Исправление: ошибки при использовании встроенного перла; ошибка
5327
появилась в 0.8.11.
5328
5329
5330
Изменения в nginx 0.8.14 07.09.2009
5331
5332
*) Исправление: устаревший закэшированный запрос мог залипнуть в
5333
состоянии "UPDATING".
5334
5335
*) Исправление: при использовании error_log на уровне info или debug в
5336
рабочем процессе мог произойти segmentation fault.
5337
Спасибо Сергею Боченкову.
5338
5339
*) Исправление: ошибки при использовании встроенного перла; ошибка
5340
появилась в 0.8.11.
5341
5342
*) Исправление: директива error_page не перенаправляла ошибку 413;
5343
ошибка появилась в 0.6.10.
5344
5345
5346
Изменения в nginx 0.8.13 31.08.2009
5347
5348
*) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12.
5349
5350
*) Исправление: nginx не собирался без параметра --with-file-aio на
5351
FreeBSD; ошибка появилась в 0.8.12.
5352
5353
5354
Изменения в nginx 0.8.12 31.08.2009
5355
5356
*) Добавление: параметр sendfile в директиве aio во FreeBSD.
5357
5358
*) Исправление: ошибки при использовании try_files; ошибка появилась в
5359
0.8.11.
5360
5361
*) Исправление: ошибки при использовании memcached; ошибка появилась в
5362
0.8.11.
5363
5364
5365
Изменения в nginx 0.8.11 28.08.2009
5366
5367
*) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие
5368
для MSIE 6.0 SV1.
5369
5370
*) Добавление: поддержка файлового AIO во FreeBSD и Linux.
5371
5372
*) Добавление: директива directio_alignment.
5373
5374
5375
Изменения в nginx 0.8.10 24.08.2009
5376
5377
*) Исправление: утечек памяти при использовании базы GeoIP City.
5378
5379
*) Исправление: ошибки при копировании временных файлов в постоянное
5380
место хранения; ошибка появилась в 0.8.9.
5381
5382
5383
Изменения в nginx 0.8.9 17.08.2009
5384
5385
*) Добавление: теперь стартовый загрузчик кэша работает в отдельном
5386
процесс; это должно улучшить обработку больших кэшей.
5387
5388
*) Добавление: теперь временные файлы и постоянное место хранения могут
5389
располагаться на разных файловых системах.
5390
5391
5392
Изменения в nginx 0.8.8 10.08.2009
5393
5394
*) Исправление: в обработке заголовков ответа, разделённых в
5395
FastCGI-записях.
5396
5397
*) Исправление: если запрос обрабатывался в двух проксированных или
5398
FastCGI location'ах и в первом из них использовалось кэширование, то
5399
в рабочем процессе происходил segmentation fault; ошибка появилась в
5400
0.8.7.
5401
5402
5403
Изменения в nginx 0.8.7 27.07.2009
5404
5405
*) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7.
5406
5407
*) Изменение: параметр ask директивы ssl_verify_client изменён на
5408
параметр optional и теперь он проверяет клиентский сертификат, если
5409
он был предложен.
5410
Спасибо Brice Figureau.
5411
5412
*) Добавление: переменная $ssl_client_verify.
5413
Спасибо Brice Figureau.
5414
5415
*) Добавление: директива ssl_crl.
5416
Спасибо Brice Figureau.
5417
5418
*) Добавление: параметр proxy директивы geo.
5419
5420
*) Добавление: директива image_filter поддерживает переменные для
5421
задания размеров.
5422
5423
*) Исправление: использование переменной $ssl_client_cert портило
5424
память; ошибка появилась в 0.7.7.
5425
Спасибо Сергею Журавлёву.
5426
5427
*) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не
5428
передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate",
5429
"X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда.
5430
Спасибо Максиму Дунину.
5431
5432
*) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в
5433
заголовке ответа бэкенда; ошибка появилась в 0.7.44.
5434
Спасибо Максиму Дунину.
5435
5436
*) Исправление: ошибки "[alert] zero size buf" при получении пустых
5437
ответы в подзапросах; ошибка появилась в 0.8.5.
5438
5439
5440
Изменения в nginx 0.8.6 20.07.2009
5441
5442
*) Добавление: модуль ngx_http_geoip_module.
5443
5444
*) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML
5445
document" для правильного документа.
5446
Спасибо Kuramoto Eiji.
5447
5448
*) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке
5449
location'ов, заданных регулярным выражением, теперь всегда делается
5450
сравнение без учёта регистра символов.
5451
5452
*) Исправление: теперь nginx/Windows игнорирует точки в конце URI.
5453
Спасибо Hugo Leisink.
5454
5455
*) Исправление: имя файла указанного в --conf-path игнорировалось при
5456
установке; ошибка появилась в 0.6.6.
5457
Спасибо Максиму Дунину.
5458
5459
5460
Изменения в nginx 0.8.5 13.07.2009
5461
5462
*) Исправление: теперь nginx разрешает подчёркивания в методе запроса.
5463
5464
*) Исправление: при использовании HTTP Basic-аутентификации на Windows
5465
для неверных имени/пароля возвращалась 500-ая ошибка.
5466
5467
*) Исправление: ответы модуля ngx_http_perl_module не работали в
5468
подзапросах.
5469
5470
*) Исправление: в модуле ngx_http_limit_req_module.
5471
Спасибо Максиму Дунину.
5472
5473
5474
Изменения в nginx 0.8.4 22.06.2009
5475
5476
*) Исправление: nginx не собирался с параметром --without-http-cache;
5477
ошибка появилась в 0.8.3.
5478
5479
5480
Изменения в nginx 0.8.3 19.06.2009
5481
5482
*) Добавление: переменная $upstream_cache_status.
5483
5484
*) Исправление: nginx не собирался на MacOSX 10.6.
5485
5486
*) Исправление: nginx не собирался с параметром --without-http-cache;
5487
ошибка появилась в 0.8.2.
5488
5489
*) Исправление: если использовался перехват 401 ошибки от бэкенда и
5490
бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то
5491
в рабочем процессе происходил segmentation fault.
5492
Спасибо Евгению Мычло.
5493
5494
5495
Изменения в nginx 0.8.2 15.06.2009
5496
5497
*) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша
5498
на старте.
5499
5500
*) Исправление: open_file_cache мог кэшировать открытые файлы очень
5501
долго; ошибка появилась в 0.7.4.
5502
5503
5504
Изменения в nginx 0.8.1 08.06.2009
5505
5506
*) Добавление: параметр updating в директивах proxy_cache_use_stale и
5507
fastcgi_cache_use_stale.
5508
5509
*) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
5510
заголовке запроса клиента передавались бэкенду при кэшировании, если
5511
не использовалась директива proxy_set_header с любыми параметрами.
5512
5513
*) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда
5514
не скрывались при кэшировании, если не использовались директивы
5515
proxy_hide_header/fastcgi_hide_header с любыми параметрами.
5516
5517
*) Исправление: модуль ngx_http_image_filter_module не понимал формат
5518
GIF87a.
5519
Спасибо Денису Ильиных.
5520
5521
*) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка
5522
появилась в 0.7.56.
5523
5524
5525
Изменения в nginx 0.8.0 02.06.2009
5526
5527
*) Добавление: директива keepalive_requests.
5528
5529
*) Добавление: директива limit_rate_after.
5530
Спасибо Ivan Debnar.
5531
5532
*) Исправление: XSLT-фильтр не работал в подзапросах.
5533
5534
*) Исправление: обработке относительных путей в nginx/Windows.
5535
5536
*) Исправление: в proxy_store, fastcgi_store, proxy_cache и
5537
fastcgi_cache в nginx/Windows.
5538
5539
*) Исправление: в обработке ошибок выделения памяти.
5540
Спасибо Максиму Дунину и Кириллу Коринскому.
5541
5542
5543
Изменения в nginx 0.7.59 25.05.2009
5544
5545
*) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods.
5546
5547
*) Исправление: утечки сокетов; ошибка появилась в 0.7.25.
5548
Спасибо Максиму Дунину.
5549
5550
*) Исправление: при использовании переменной $request_body в рабочем
5551
процессе происходил segmentation fault, если в запросе не было тела;
5552
ошибка появилась в 0.7.58.
5553
5554
*) Исправление: SSL-модули могли не собираться на Solaris и Linux;
5555
ошибка появилась в 0.7.56.
5556
5557
*) Исправление: ответы модуля ngx_http_xslt_filter_module не
5558
обрабатывались SSI-, charset- и gzip-фильтрами.
5559
5560
*) Исправление: директива charset не ставила кодировку для ответов
5561
модуля ngx_http_gzip_static_module.
5562
5563
5564
Изменения в nginx 0.7.58 18.05.2009
5565
5566
*) Добавление: директива listen почтового прокси-сервера поддерживает
5567
IPv6.
5568
5569
*) Добавление: директива image_filter_jpeg_quality.
5570
5571
*) Добавление: директива client_body_in_single_buffer.
5572
5573
*) Добавление: переменная $request_body.
5574
5575
*) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена
5576
файлов, содержащих символ ":".
5577
5578
*) Исправление: процедура "make upgrade" не работала; ошибка появилась в
5579
0.7.53.
5580
Спасибо Денису Латыпову.
5581
5582
5583
Изменения в nginx 0.7.57 12.05.2009
5584
5585
*) Исправление: при перенаправлении ошибок модуля
5586
ngx_http_image_filter_module в именованный location в рабочем
5587
процессе происходил floating-point fault; ошибка появилась в 0.7.56.
5588
5589
5590
Изменения в nginx 0.7.56 11.05.2009
5591
5592
*) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля
5593
HTTP.
5594
5595
*) Исправление: в модуле ngx_http_image_filter_module.
5596
5597
5598
Изменения в nginx 0.7.55 06.05.2009
5599
5600
*) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и
5601
fastcgi_cache_use_stale не работали.
5602
5603
*) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из
5604
заголовка.
5605
5606
*) Исправление: ошибки "select() failed (9: Bad file descriptor)" в
5607
nginx/Unix и "select() failed (10038: ...)" в nginx/Windows.
5608
5609
*) Исправление: при использовании директивы debug_connection в рабочем
5610
процессе мог произойти segmentation fault; ошибка появилась в 0.7.54.
5611
5612
*) Исправление: в сборке модуля ngx_http_image_filter_module.
5613
5614
*) Исправление: файлы больше 2G не передавались с использованием
5615
$r->sendfile.
5616
Спасибо Максиму Дунину.
5617
5618
5619
Изменения в nginx 0.7.54 01.05.2009
5620
5621
*) Добавление: модуль ngx_http_image_filter_module.
5622
5623
*) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers.
5624
5625
*) Исправление: при использовании переменных "open_file_cache_errors on"
5626
в рабочем процессе мог произойти segmentation fault; ошибка появилась
5627
в 0.7.53.
5628
5629
*) Исправление: директива "port_in_redirect off" не работала; ошибка
5630
появилась в 0.7.39.
5631
5632
*) Исправление: улучшение обработки ошибок метода select.
5633
5634
*) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows.
5635
5636
*) Исправление: в текстовых сообщениях об ошибках в nginx/Windows;
5637
ошибка появилась в 0.7.53.
5638
5639
5640
Изменения в nginx 0.7.53 27.04.2009
5641
5642
*) Изменение: теперь лог, указанный в --error-log-path, создаётся с
5643
самого начала работы.
5644
5645
*) Добавление: теперь ошибки и предупреждения при старте записываются в
5646
error_log и выводятся на stderr.
5647
5648
*) Добавление: при сборке с пустым параметром --prefix= nginx использует
5649
как префикс каталог, в котором он был запущен.
5650
5651
*) Добавление: ключ -p.
5652
5653
*) Добавление: ключ -s на Unix-платформах.
5654
5655
*) Добавление: ключи -? и -h.
5656
Спасибо Jerome Loyet.
5657
5658
*) Добавление: теперь ключи можно задавать в сжатой форме.
5659
5660
*) Исправление: nginx/Windows не работал, если файл конфигурации был
5661
задан ключом -c.
5662
5663
*) Исправление: при использовании директив proxy_store, fastcgi_store,
5664
proxy_cache или fastcgi_cache временные файлы могли не удаляться.
5665
Спасибо Максиму Дунину.
5666
5667
*) Исправление: в заголовке Auth-Method запроса серверу аутентификации
5668
почтового прокси-сервера передавалось неверное значение; ошибка
5669
появилась в 0.7.34.
5670
Спасибо Simon Lecaille.
5671
5672
*) Исправление: при логгировании на Linux не писались текстовые описания
5673
системных ошибок; ошибка появилась в 0.7.45.
5674
5675
*) Исправление: директива fastcgi_cache_min_uses не работала.
5676
Спасибо Андрею Воробьёву.
5677
5678
5679
Изменения в nginx 0.7.52 20.04.2009
5680
5681
*) Добавление: первая бинарная версия под Windows.
5682
5683
*) Исправление: корректная обработка метода HEAD при кэшировании.
5684
5685
*) Исправление: корректная обработка строк "If-Modified-Since",
5686
"If-Range" и им подобных в заголовке запроса клиента при кэшировании.
5687
5688
*) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в
5689
заголовке ответа для закэшированных ответов.
5690
5691
*) Исправление: если nginx был собран с модулем ngx_http_perl_module и
5692
perl поддерживал потоки, то при выходе основного процесса могла
5693
выдаваться ошибка "panic: MUTEX_LOCK".
5694
5695
*) Исправление: nginx не собирался с параметром --without-http-cache;
5696
ошибка появилась в 0.7.48.
5697
5698
*) Исправление: nginx не собирался на платформах, отличных от i386,
5699
amd64, sparc и ppc; ошибка появилась в 0.7.42.
5700
5701
5702
Изменения в nginx 0.7.51 12.04.2009
5703
5704
*) Добавление: директива try_files поддерживает код ответа в последнем
5705
параметре.
5706
5707
*) Добавление: теперь в директиве return можно использовать любой код
5708
ответа.
5709
5710
*) Исправление: директива error_page делала внешний редирект без строки
5711
запроса; ошибка появилась в 0.7.44.
5712
5713
*) Исправление: если сервера слушали на нескольких явно описанных
5714
адресах, то виртуальные сервера могли не работать; ошибка появилась в
5715
0.7.39.
5716
5717
5718
Изменения в nginx 0.7.50 06.04.2009
5719
5720
*) Исправление: переменные $arg_... не работали; ошибка появилась в
5721
0.7.49.
5722
5723
5724
Изменения в nginx 0.7.49 06.04.2009
5725
5726
*) Исправление: при использовании переменных $arg_... в рабочем процессе
5727
мог произойти segmentation fault; ошибка появилась в 0.7.48.
5728
5729
5730
Изменения в nginx 0.7.48 06.04.2009
5731
5732
*) Добавление: директива proxy_cache_key.
5733
5734
*) Исправление: теперь nginx учитывает при кэшировании строки
5735
"X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа
5736
бэкенда.
5737
5738
*) Исправление: теперь nginx кэширует только ответы на запросы GET.
5739
5740
*) Исправление: директива fastcgi_cache_key не наследовалась.
5741
5742
*) Исправление: переменные $arg_... не работали с SSI-подзапросами.
5743
Спасибо Максиму Дунину.
5744
5745
*) Исправление: nginx не собирался с библиотекой uclibc.
5746
Спасибо Timothy Redaelli.
5747
5748
*) Исправление: nginx не собирался на OpenBSD; ошибка появилась
5749
в 0.7.46.
5750
5751
5752
Изменения в nginx 0.7.47 01.04.2009
5753
5754
*) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях;
5755
ошибка появилась в 0.7.46.
5756
5757
*) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46.
5758
5759
*) Исправление: если использовался параметр max_size, то cache manager
5760
мог удалить весь кэш; ошибка появилась в 0.7.46.
5761
5762
*) Изменение: в рабочем процессе мог произойти segmentation fault, если
5763
директивы proxy_cache/fastcgi_cache и proxy_cache_valid/
5764
fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась
5765
в 0.7.46.
5766
5767
*) Исправление: в рабочем процессе мог произойти segmentation fault при
5768
перенаправлении запроса проксированному или FastCGI-серверу с помощью
5769
error_page или try_files; ошибка появилась в 0.7.44.
5770
5771
5772
Изменения в nginx 0.7.46 30.03.2009
5773
5774
*) Исправление: архив предыдущего релиза был неверным.
5775
5776
5777
Изменения в nginx 0.7.45 30.03.2009
5778
5779
*) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно
5780
задавать на разных уровнях.
5781
5782
*) Изменение: параметр clean_time в директиве proxy_cache_path удалён.
5783
5784
*) Добавление: параметр max_size в директиве proxy_cache_path.
5785
5786
*) Добавление: предварительная поддержка кэширования в модуле
5787
ngx_http_fastcgi_module.
5788
5789
*) Добавление: теперь при ошибках выделения в разделяемой памяти в логе
5790
указываются названия директивы и зоны.
5791
5792
*) Исправление: директива "add_header last-modified ''" не удаляла в
5793
заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44.
5794
5795
*) Исправление: в директиве auth_basic_user_file не работал
5796
относительный путь, заданный строкой без переменных; ошибка появилась
5797
в 0.7.44.
5798
Спасибо Jerome Loyet.
5799
5800
*) Исправление: в директиве alias, заданной переменными без ссылок на
5801
выделения в регулярных выражениях; ошибка появилась в 0.7.42.
5802
5803
5804
Изменения в nginx 0.7.44 23.03.2009
5805
5806
*) Добавление: предварительная поддержка кэширования в модуле
5807
ngx_http_proxy_module.
5808
5809
*) Добавление: параметр --with-pcre в configure.
5810
5811
*) Добавление: теперь директива try_files может быть использована на
5812
уровне server.
5813
5814
*) Исправление: директива try_files неправильно обрабатывала строку
5815
запроса в последнем параметре.
5816
5817
*) Исправление: директива try_files могла неверно тестировать каталоги.
5818
5819
*) Исправление: если для пары адрес:порт описан только один сервер, то
5820
выделения в регулярных выражениях в директиве server_name не
5821
работали.
5822
5823
5824
Изменения в nginx 0.7.43 18.03.2009
5825
5826
*) Исправление: запрос обрабатывался неверно, если директива root
5827
использовала переменные; ошибка появилась в 0.7.42.
5828
5829
*) Исправление: если сервер слушал на адресах типа "*", то значение
5830
переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36.
5831
5832
5833
Изменения в nginx 0.7.42 16.03.2009
5834
5835
*) Изменение: ошибка "Invalid argument", возвращаемая
5836
setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется.
5837
5838
*) Изменение: при отсутствии файла, указанного в директиве
5839
auth_basic_user_file, теперь возвращается ошибка 403 вместо 500.
5840
5841
*) Добавление: директива auth_basic_user_file поддерживает переменные.
5842
Спасибо Кириллу Коринскому.
5843
5844
*) Добавление: директива listen поддерживает параметр ipv6only.
5845
Спасибо Zhang Hua.
5846
5847
*) Исправление: в директиве alias со ссылками на выделения в регулярных
5848
выражениях; ошибка появилась в 0.7.40.
5849
5850
*) Исправление: совместимость с Tru64 UNIX.
5851
Спасибо Dustin Marquess.
5852
5853
*) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
5854
в 0.7.41.
5855
5856
5857
Изменения в nginx 0.7.41 11.03.2009
5858
5859
*) Исправление: в рабочем процессе мог произойти segmentation fault,
5860
если в server_name или location были выделения в регулярных
5861
выражениях; ошибка появилась в 0.7.40.
5862
Спасибо Владимиру Сопоту.
5863
5864
5865
Изменения в nginx 0.7.40 09.03.2009
5866
5867
*) Добавление: директива location поддерживает выделения в регулярных
5868
выражениях.
5869
5870
*) Добавление: директиву alias с ссылками на выделения в регулярных
5871
выражениях можно использовать внутри location'а, заданного регулярным
5872
выражением с выделениями.
5873
5874
*) Добавление: директива server_name поддерживает выделения в регулярных
5875
выражениях.
5876
5877
*) Изменение: модуль ngx_http_autoindex_module не показывал последний
5878
слэш для каталогов на файловой системе XFS; ошибка появилась в
5879
0.7.15.
5880
Спасибо Дмитрию Кузьменко.
5881
5882
5883
Изменения в nginx 0.7.39 02.03.2009
5884
5885
*) Исправление: при включённом сжатии большие ответы с использованием
5886
SSI могли зависать; ошибка появилась в 0.7.28.
5887
Спасибо Артёму Бохану.
5888
5889
*) Исправление: при использовании коротких статических вариантов в
5890
директиве try_files в рабочем процессе мог произойти segmentation
5891
fault.
5892
5893
5894
Изменения в nginx 0.7.38 23.02.2009
5895
5896
*) Добавление: логгирование ошибок аутентификации.
5897
5898
*) Исправление: имя/пароль, заданные в auth_basic_user_file,
5899
игнорировались после нечётного числа пустых строк.
5900
Спасибо Александру Загребину.
5901
5902
*) Исправление: при использовании длинного пути в unix domain сокете в
5903
главном процессе происходил segmentation fault; ошибка появилась в
5904
0.7.36.
5905
5906
5907
Изменения в nginx 0.7.37 21.02.2009
5908
5909
*) Исправление: директивы, использующие upstream'ы, не работали; ошибка
5910
появилась в 0.7.36.
5911
5912
5913
Изменения в nginx 0.7.36 21.02.2009
5914
5915
*) Добавление: предварительная поддержка IPv6; директива listen модуля
5916
HTTP поддерживает IPv6.
5917
5918
*) Исправление: переменная $ancient_browser не работала для браузеров,
5919
заданных директивами modern_browser.
5920
5921
5922
Изменения в nginx 0.7.35 16.02.2009
5923
5924
*) Исправление: директива ssl_engine не использовала SSL-акселератор для
5925
асимметричных шифров.
5926
Спасибо Marcin Gozdalik.
5927
5928
*) Исправление: директива try_files выставляла MIME-type, исходя из
5929
расширения первоначального запроса.
5930
5931
*) Исправление: в директивах server_name, valid_referers и map
5932
неправильно обрабатывались имена вида "*domain.tld", если
5933
использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
5934
ошибка появилась в 0.7.9.
5935
5936
5937
Изменения в nginx 0.7.34 10.02.2009
5938
5939
*) Добавление: параметр off в директиве if_modified_since.
5940
5941
*) Добавление: теперь после команды XCLIENT nginx посылает команду
5942
HELO/EHLO.
5943
Спасибо Максиму Дунину.
5944
5945
*) Добавление: поддержка Microsoft-специфичного режима
5946
"AUTH LOGIN with User Name" в почтовом прокси-сервере.
5947
Спасибо Максиму Дунину.
5948
5949
*) Исправление: в директиве rewrite, возвращающей редирект, старые
5950
аргументы присоединялись к новым через символ "?" вместо "&";
5951
ошибка появилась в 0.1.18.
5952
Спасибо Максиму Дунину.
5953
5954
*) Исправление: nginx не собирался на AIX.
5955
5956
5957
Изменения в nginx 0.7.33 02.02.2009
5958
5959
*) Исправление: если на запрос с телом возвращался редирект, то ответ
5960
мог быть двойным при использовании методов epoll или rtsig.
5961
Спасибо Eden Li.
5962
5963
*) Исправление: для некоторых типов редиректов в переменной
5964
$sent_http_location было пустое значение.
5965
5966
*) Исправление: при использовании директивы resolver в SMTP
5967
прокси-сервере в рабочем процессе мог произойти segmentation fault.
5968
5969
5970
Изменения в nginx 0.7.32 26.01.2009
5971
5972
*) Добавление: теперь в директиве try_files можно явно указать проверку
5973
каталога.
5974
5975
*) Исправление: fastcgi_store не всегда сохранял файлы.
5976
5977
*) Исправление: в гео-диапазонах.
5978
5979
*) Исправление: ошибки выделения больших блоков в разделяемой памяти,
5980
если nginx был собран без отладки.
5981
Спасибо Андрею Квасову.
5982
5983
5984
Изменения в nginx 0.7.31 19.01.2009
5985
5986
*) Изменение: теперь директива try_files проверяет только файлы,
5987
игнорируя каталоги.
5988
5989
*) Добавление: директива fastcgi_split_path_info.
5990
5991
*) Исправления в поддержке строки "Expect" в заголовке запроса.
5992
5993
*) Исправления в гео-диапазонах.
5994
5995
*) Исправление: при отсутствии ответа ngx_http_memcached_module
5996
возвращал в теле ответа строку "END" вместо 404-ой страницы по
5997
умолчанию; ошибка появилась в 0.7.18.
5998
Спасибо Максиму Дунину.
5999
6000
*) Исправление: при проксировании SMTP nginx выдавал сообщение
6001
"250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22.
6002
Спасибо Максиму Дунину.
6003
6004
6005
Изменения в nginx 0.7.30 24.12.2008
6006
6007
*) Исправление: в рабочем процессе происходил segmentation fault, если в
6008
директивах fastcgi_pass или proxy_pass использовались переменные и
6009
имя хоста должно было резолвиться; ошибка появилась в 0.7.29.
6010
6011
6012
Изменения в nginx 0.7.29 24.12.2008
6013
6014
*) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали
6015
переменные при использовании unix domain сокетов.
6016
6017
*) Исправления в обработке подзапросов; ошибки появились в 0.7.25.
6018
6019
*) Исправление: ответ "100 Continue" выдавался для запросов версии
6020
HTTP/1.0;
6021
Спасибо Максиму Дунину.
6022
6023
*) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module
6024
под Cygwin.
6025
6026
6027
Изменения в nginx 0.7.28 22.12.2008
6028
6029
*) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module.
6030
6031
*) Изменение: значения по умолчанию для директивы gzip_buffers изменены
6032
с 4 4k/8k на 32 4k или 16 8k.
6033
6034
6035
Изменения в nginx 0.7.27 15.12.2008
6036
6037
*) Добавление: директива try_files.
6038
6039
*) Добавление: директива fastcgi_pass поддерживает переменные.
6040
6041
*) Добавление: теперь директива geo может брать адрес из переменной.
6042
Спасибо Андрею Нигматулину.
6043
6044
*) Добавление: теперь модификатор location'а можно указывать без пробела
6045
перед названием.
6046
6047
*) Добавление: переменная $upstream_response_length.
6048
6049
*) Исправление: теперь директива add_header не добавляет пустое
6050
значение.
6051
6052
*) Исправление: при запросе файла нулевой длины nginx закрывал
6053
соединение, ничего не передав; ошибка появилась в 0.7.25.
6054
6055
*) Исправление: метод MOVE не мог перемещать файл в несуществующий
6056
каталог.
6057
6058
*) Исправление: если в сервере не был описан ни один именованный
6059
location, но такой location использовался в директиве error_page, то
6060
в рабочем процессе происходил segmentation fault.
6061
Спасибо Сергею Боченкову.
6062
6063
6064
Изменения в nginx 0.7.26 08.12.2008
6065
6066
*) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25.
6067
6068
6069
Изменения в nginx 0.7.25 08.12.2008
6070
6071
*) Изменение: в обработке подзапросов.
6072
6073
*) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в
6074
заголовке запроса.
6075
6076
*) Исправление: теперь директивы limit_req и limit_conn указывают
6077
причину запрета запроса.
6078
6079
*) Исправление: в параметре delete директивы geo.
6080
6081
6082
Изменения в nginx 0.7.24 01.12.2008
6083
6084
*) Добавление: директива if_modified_since.
6085
6086
*) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед
6087
ответом сервер передавал много сообщений в stderr.
6088
6089
*) Исправление: переменные "$cookie_..." не работали в SSI and в
6090
перловом модуле.
6091
6092
6093
Изменения в nginx 0.7.23 27.11.2008
6094
6095
*) Добавление: параметры delete и ranges в директиве geo.
6096
6097
*) Добавление: ускорение загрузки geo-базы с большим числом значений.
6098
6099
*) Добавление: уменьшение памяти, необходимой для загрузки geo-базы.
6100
6101
6102
Изменения в nginx 0.7.22 20.11.2008
6103
6104
*) Добавление: параметр none в директиве smtp_auth.
6105
Спасибо Максиму Дунину.
6106
6107
*) Добавление: переменные "$cookie_...".
6108
6109
*) Исправление: директива directio не работала с файловой системой XFS.
6110
6111
*) Исправление: resolver не понимал большие DNS-ответы.
6112
Спасибо Zyb.
6113
6114
6115
Изменения в nginx 0.7.21 11.11.2008
6116
6117
*) Изменения в модуле ngx_http_limit_req_module.
6118
6119
*) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module.
6120
Спасибо Денису Латыпову.
6121
6122
*) Изменение: совместимость с glibc 2.3.
6123
Спасибо Eric Benson и Максиму Дунину.
6124
6125
*) Исправление: nginx не запускался на MacOSX 10.4 и более ранних;
6126
ошибка появилась в 0.7.6.
6127
6128
6129
Изменения в nginx 0.7.20 10.11.2008
6130
6131
*) Изменения в модуле ngx_http_gzip_filter_module.
6132
6133
*) Добавление: модуль ngx_http_limit_req_module.
6134
6135
*) Исправление: на платформах sparc и ppc рабочие процессы могли
6136
выходить по сигналу SIGBUS; ошибка появилась в 0.7.3.
6137
Спасибо Максиму Дунину.
6138
6139
*) Исправление: директивы вида "proxy_pass http://host/some:uri" не
6140
работали; ошибка появилась в 0.7.12.
6141
6142
*) Исправление: при использовании HTTPS запросы могли завершаться с
6143
ошибкой "bad write retry".
6144
6145
*) Исправление: модуль ngx_http_secure_link_module не работал внутри
6146
location'ов с именами меньше 3 символов.
6147
6148
*) Исправление: переменная $server_addr могла не иметь значения.
6149
6150
6151
Изменения в nginx 0.7.19 13.10.2008
6152
6153
*) Исправление: обновление номера версии.
6154
6155
6156
Изменения в nginx 0.7.18 13.10.2008
6157
6158
*) Изменение: директива underscores_in_headers; теперь nginx по
6159
умолчанию не разрешает подчёркивания в именах строк в заголовке
6160
запроса клиента.
6161
6162
*) Добавление: модуль ngx_http_secure_link_module.
6163
6164
*) Добавление: директива real_ip_header поддерживает любой заголовок.
6165
6166
*) Добавление: директива log_subrequest.
6167
6168
*) Добавление: переменная $realpath_root.
6169
6170
*) Добавление: параметры http_502 и http_504 в директиве
6171
proxy_next_upstream.
6172
6173
*) Исправление: параметр http_503 в директивах proxy_next_upstream или
6174
fastcgi_next_upstream не работал.
6175
6176
*) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked"
6177
для запросов HEAD.
6178
6179
*) Исправление: теперь accept-лимит зависит от числа worker_connections.
6180
6181
6182
Изменения в nginx 0.7.17 15.09.2008
6183
6184
*) Добавление: директива directio теперь работает на Linux.
6185
6186
*) Добавление: переменная $pid.
6187
6188
*) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала
6189
при использовании open_file_cache.
6190
6191
*) Исправление: access_log с переменными не работал на Linux; ошибка
6192
появилась в 0.7.7.
6193
6194
*) Исправление: модуль ngx_http_charset_module не понимал название
6195
кодировки в кавычках, полученное от бэкенда.
6196
6197
6198
Изменения в nginx 0.7.16 08.09.2008
6199
6200
*) Исправление: nginx не собирался на 64-битных платформах; ошибка
6201
появилась в 0.7.15.
6202
6203
6204
Изменения в nginx 0.7.15 08.09.2008
6205
6206
*) Добавление: модуль ngx_http_random_index_module.
6207
6208
*) Добавление: директива directio оптимизирована для запросов файлов,
6209
начинающихся с произвольной позиции.
6210
6211
*) Добавление: директива directio при необходимости запрещает
6212
использование sendfile.
6213
6214
*) Добавление: теперь nginx разрешает подчёркивания в именах строк в
6215
заголовке запроса клиента.
6216
6217
6218
Изменения в nginx 0.7.14 01.09.2008
6219
6220
*) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не
6221
имеют значений по умолчанию.
6222
6223
*) Добавление: директива listen поддерживает параметр ssl.
6224
6225
*) Добавление: теперь при переконфигурации nginx учитывает изменение
6226
временной зоны на FreeBSD и Linux.
6227
6228
*) Исправление: параметры директивы listen, такие как backlog, rcvbuf и
6229
прочие, не устанавливались, если сервером по умолчанию был не первый
6230
сервер.
6231
6232
*) Исправление: при использовании в качестве аргументов части URI,
6233
выделенного с помощью директивы rewrite, эти аргументы не
6234
экранировались.
6235
6236
*) Исправление: улучшения тестирования правильности конфигурационного
6237
файла.
6238
6239
6240
Изменения в nginx 0.7.13 26.08.2008
6241
6242
*) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
6243
в 0.7.12.
6244
6245
6246
Изменения в nginx 0.7.12 26.08.2008
6247
6248
*) Добавление: директива server_name поддерживает пустое имя "".
6249
6250
*) Добавление: директива gzip_disable поддерживает специальную маску
6251
msie6.
6252
6253
*) Исправление: при использовании параметра max_fails=0 в upstream'е с
6254
несколькими серверами рабочий процесс выходил по сигналу SIGFPE.
6255
Спасибо Максиму Дунину.
6256
6257
*) Исправление: при перенаправлении запроса с помощью директивы
6258
error_page терялось тело запроса.
6259
6260
*) Исправление: при перенаправлении запроса с методом HEAD с помощью
6261
директивы error_page возвращался полный ответ.
6262
6263
*) Исправление: метод $r->header_in() не возвращал значения строк
6264
"Host", "User-Agent", и "Connection" из заголовка запроса; ошибка
6265
появилась в 0.7.0.
6266
6267
6268
Изменения в nginx 0.7.11 18.08.2008
6269
6270
*) Изменение: теперь ngx_http_charset_module по умолчанию не работает
6271
MIME-типом text/css.
6272
6273
*) Добавление: теперь nginx возвращает код 405 для метода POST при
6274
запросе статического файла, только если файл существует.
6275
6276
*) Добавление: директива proxy_ssl_session_reuse.
6277
6278
*) Исправление: после перенаправления запроса с помощью
6279
"X-Accel-Redirect" директива proxy_pass без URI могла использовать
6280
оригинальный запрос.
6281
6282
*) Исправление: если у каталога были права доступа только на поиск
6283
файлов и первый индексный файл отсутствовал, то nginx возвращал
6284
ошибку 500.
6285
6286
*) Исправление: ошибок во вложенных location'ах; ошибки появились в
6287
0.7.1.
6288
6289
6290
Изменения в nginx 0.7.10 13.08.2008
6291
6292
*) Исправление: ошибок в директивах addition_types, charset_types,
6293
gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки
6294
появились в 0.7.9.
6295
6296
*) Исправление: рекурсивной error_page для 500 ошибки.
6297
6298
*) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес
6299
не для всего keepalive соединения, а для каждого запроса по этому
6300
соединению.
6301
6302
6303
Изменения в nginx 0.7.9 12.08.2008
6304
6305
*) Изменение: теперь ngx_http_charset_module по умолчанию работает со
6306
следующими MIME-типами: text/html, text/css, text/xml, text/plain,
6307
text/vnd.wap.wml, application/x-javascript и application/rss+xml.
6308
6309
*) Добавление: директивы charset_types и addition_types.
6310
6311
*) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types
6312
используют хэш.
6313
6314
*) Добавление: модуль ngx_cpp_test_module.
6315
6316
*) Добавление: директива expires поддерживает суточное время.
6317
6318
*) Добавление: улучшения и исправления в модуле ngx_http_xslt_module.
6319
Спасибо Денису Латыпову и Максиму Дунину.
6320
6321
*) Исправление: директива log_not_found не работала при поиске индексных
6322
файлов.
6323
6324
*) Исправление: HTTPS-соединения могли зависнуть, если использовались
6325
методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7.
6326
6327
*) Исправление: если в директивах server_name, valid_referers и map
6328
использовалась маска вида "*.domain.tld" и при этом полное имя вида
6329
"domain.tld" не было описано, то это имя попадало под маску; ошибка
6330
появилась в 0.3.18.
6331
6332
6333
Изменения в nginx 0.7.8 04.08.2008
6334
6335
*) Добавление: модуль ngx_http_xslt_module.
6336
6337
*) Добавление: переменные "$arg_...".
6338
6339
*) Добавление: поддержка directio в Solaris.
6340
Спасибо Ivan Debnar.
6341
6342
*) Исправление: теперь, если FastCGI-сервер присылает строку "Location"
6343
в заголовке ответа без строки статуса, то nginx использует код
6344
статуса 302.
6345
Спасибо Максиму Дунину.
6346
6347
6348
Изменения в nginx 0.7.7 30.07.2008
6349
6350
*) Изменение: теперь ошибка EAGAIN при вызове connect() не считается
6351
временной.
6352
6353
*) Изменение: значением переменной $ssl_client_cert теперь является
6354
сертификат, перед каждой строкой которого, кроме первой, вставляется
6355
символ табуляции; неизменённый сертификат доступен через переменную
6356
$ssl_client_raw_cert.
6357
6358
*) Добавление: параметр ask директивы ssl_verify_client.
6359
6360
*) Добавление: улучшения в обработке byte-range.
6361
Спасибо Максиму Дунину.
6362
6363
*) Добавление: директива directio.
6364
Спасибо Jiang Hong.
6365
6366
*) Добавление: поддержка sendfile() в MacOSX 10.5.
6367
6368
*) Исправление: в MacOSX и Cygwin при проверке location'ов теперь
6369
делается сравнение без учёта регистра символов; однако, сравнение
6370
ограничено только однобайтными locale'ями.
6371
6372
*) Исправление: соединения почтового прокси-сервера зависали в режиме
6373
SSL, если использовались методы select, poll или /dev/poll.
6374
6375
*) Исправление: ошибки при использовании кодировки UTF-8 в
6376
ngx_http_autoindex_module.
6377
6378
6379
Изменения в nginx 0.7.6 07.07.2008
6380
6381
*) Исправление: теперь при использовании переменных в директиве
6382
access_log всегда проверяется существовании root'а для запроса.
6383
6384
*) Исправление: модуль ngx_http_flv_module не поддерживал несколько
6385
значений в аргументах запроса.
6386
6387
6388
Изменения в nginx 0.7.5 01.07.2008
6389
6390
*) Исправления в поддержке переменных в директиве access_log; ошибки
6391
появились в 0.7.4.
6392
6393
*) Исправление: nginx не собирался с параметром
6394
--without-http_gzip_module; ошибка появилась в 0.7.3.
6395
Спасибо Кириллу Коринскому.
6396
6397
*) Исправление: при совместном использовании sub_filter и SSI ответы
6398
могли передаваться неверно.
6399
6400
6401
Изменения в nginx 0.7.4 30.06.2008
6402
6403
*) Добавление: директива access_log поддерживает переменные.
6404
6405
*) Добавление: директива open_log_file_cache.
6406
6407
*) Добавление: ключ -g.
6408
6409
*) Добавление: поддержка строки "Expect" в заголовке запроса.
6410
6411
*) Исправление: большие включения в SSI могли передавались не полностью.
6412
6413
6414
Изменения в nginx 0.7.3 23.06.2008
6415
6416
*) Изменение: MIME-тип для расширения rss изменён на
6417
"application/rss+xml".
6418
6419
*) Изменение: теперь директива "gzip_vary on" выдаёт строку
6420
"Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов.
6421
6422
*) Добавление: теперь при использовании протокола "https://" в директиве
6423
rewrite автоматически делается редирект.
6424
6425
*) Исправление: директива proxy_pass не работала с протоколом HTTPS;
6426
ошибка появилась в 0.6.9.
6427
6428
6429
Изменения в nginx 0.7.2 16.06.2008
6430
6431
*) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами.
6432
6433
*) Добавление: директива ssl_dhparam.
6434
6435
*) Добавление: переменная $ssl_client_cert.
6436
Спасибо Manlio Perillo.
6437
6438
*) Исправление: после изменения URI с помощью директивы rewrite nginx не
6439
искал новый location; ошибка появилась в 0.7.1.
6440
Спасибо Максиму Дунину.
6441
6442
*) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
6443
в 0.7.1.
6444
6445
*) Исправление: при редиректе запроса к каталогу с добавлением слэша
6446
nginx не добавлял аргументы из оригинального запроса.
6447
6448
6449
Изменения в nginx 0.7.1 26.05.2008
6450
6451
*) Изменение: теперь поиск location'а делается с помощью дерева.
6452
6453
*) Изменение: директива optimize_server_names упразднена в связи с
6454
появлением директивы server_name_in_redirect.
6455
6456
*) Изменение: некоторые давно устаревшие директивы больше не
6457
поддерживаются.
6458
6459
*) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот
6460
параметр используется по умолчанию.
6461
Спасибо Rob Mueller.
6462
6463
*) Исправление: рабочие процессы могли не реагировать на сигналы
6464
переконфигурации и ротации логов.
6465
6466
*) Исправление: nginx не собирался на последних Fedora 9 Linux.
6467
Спасибо Roxis.
6468
6469
6470
Изменения в nginx 0.7.0 19.05.2008
6471
6472
*) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log
6473
записываются в виде \xXX.
6474
Спасибо Максиму Дунину.
6475
6476
*) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке
6477
запроса.
6478
6479
*) Добавление: директива expires поддерживает флаг modified.
6480
6481
*) Добавление: переменные $uid_got и $uid_set можно использовать на
6482
любой стадии обработки запроса.
6483
6484
*) Добавление: переменная $hostname.
6485
Спасибо Андрею Нигматулину.
6486
6487
*) Добавление: поддержка DESTDIR.
6488
Спасибо Todd A. Fisher и Andras Voroskoi.
6489
6490
*) Исправление: при использовании keepalive на Linux в рабочем процессе
6491
мог произойти segmentation fault.
6492
6493
6494
Изменения в nginx 0.6.31 12.05.2008
6495
6496
*) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка
6497
заголовка ответа была в конце записи FastCGI; ошибка появилась в
6498
0.6.2.
6499
Спасибо Сергею Серову.
6500
6501
*) Исправление: при удалении файла и использовании директивы
6502
open_file_cache_errors off в рабочем процессе мог произойти
6503
segmentation fault.
6504
6505
6506
Изменения в nginx 0.6.30 29.04.2008
6507
6508
*) Изменение: теперь, если маске, заданной в директиве include, не
6509
соответствует ни один файл, то nginx не выдаёт ошибку.
6510
6511
*) Добавление: теперь время в директивах можно задавать без пробела,
6512
например, "1h50m".
6513
6514
*) Исправление: утечек памяти, если директива ssl_verify_client имела
6515
значение on.
6516
Спасибо Chavelle Vincent.
6517
6518
*) Исправление: директива sub_filter могла вставлять заменяемый текст в
6519
вывод.
6520
6521
*) Исправление: директива error_page не воспринимала параметры в
6522
перенаправляемом URI.
6523
6524
*) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы
6525
в бинарном режиме.
6526
6527
*) Исправление: nginx не собирался под OpenBSD; ошибка появилась в
6528
0.6.15.
6529
6530
6531
Изменения в nginx 0.6.29 18.03.2008
6532
6533
*) Добавление: модуль ngx_google_perftools_module.
6534
6535
*) Исправление: модуль ngx_http_perl_module не собирался на 64-битных
6536
платформах; ошибка появилась в 0.6.27.
6537
6538
6539
Изменения в nginx 0.6.28 13.03.2008
6540
6541
*) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27.
6542
6543
6544
Изменения в nginx 0.6.27 12.03.2008
6545
6546
*) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод
6547
rtsig.
6548
6549
*) Изменение: теперь при перенаправлении запроса в именованный location
6550
с помощью директивы error_page метод запроса не изменяется.
6551
6552
*) Добавление: директивы resolver и resolver_timeout в SMTP
6553
прокси-сервере.
6554
6555
*) Добавление: директива post_action поддерживает именованные
6556
location'ы.
6557
6558
*) Исправление: при перенаправлении запроса из location'а c обработчиком
6559
proxy, FastCGI или memcached в именованный location со статическим
6560
обработчиком в рабочем процессе происходил segmentation fault.
6561
6562
*) Исправление: браузеры не повторяли SSL handshake, если при первом
6563
handshake не оказалось правильного клиентского сертификата.
6564
Спасибо Александру Инюхину.
6565
6566
*) Исправление: при перенаправлении ошибок 495-497 с помощью директивы
6567
error_page без изменения кода ошибки nginx пытался выделить очень
6568
много памяти.
6569
6570
*) Исправление: утечки памяти в долгоживущих небуфферизированных
6571
соединениях.
6572
6573
*) Исправление: утечки памяти в resolver'е.
6574
6575
*) Исправление: при перенаправлении запроса из location'а c обработчиком
6576
proxy в другой location с обработчиком proxy в рабочем процессе
6577
происходил segmentation fault.
6578
6579
*) Исправление: ошибки в кэшировании переменных $proxy_host и
6580
$proxy_port.
6581
Спасибо Сергею Боченкову.
6582
6583
*) Исправление: директива proxy_pass с переменными использовала порт,
6584
описанной в другой директиве proxy_pass без переменных, но с таким же
6585
именем хоста.
6586
Спасибо Сергею Боченкову.
6587
6588
*) Исправление: во время переконфигурации на некоторых 64-битном
6589
платформах в лог записывался alert "sendmsg() failed (9: Bad file
6590
descriptor)".
6591
6592
*) Исправление: при повторном использовании в SSI пустого block'а в
6593
качестве заглушки в рабочем процессе происходил segmentation fault.
6594
6595
*) Исправление: ошибки при копировании части URI, содержащего
6596
экранированные символы, в аргументы.
6597
6598
6599
Изменения в nginx 0.6.26 11.02.2008
6600
6601
*) Исправление: директивы proxy_store и fastcgi_store не проверяли длину
6602
ответа.
6603
6604
*) Исправление: при использовании большого значения в директиве expires
6605
в рабочем процессе происходил segmentation fault.
6606
Спасибо Joaquin Cuenca Abela.
6607
6608
*) Исправление: nginx неверно определял длину строки кэша на Pentium 4.
6609
Спасибо Геннадию Махомеду.
6610
6611
*) Исправление: в проксированных подзапросах и подзапросах к
6612
FastCGI-серверу вместо метода GET использовался оригинальный метод
6613
клиента.
6614
6615
*) Исправление: утечки сокетов в режиме HTTPS при использовании
6616
отложенного accept'а.
6617
Спасибо Ben Maurer.
6618
6619
*) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed
6620
(SSL: )"; ошибка появилась в 0.6.23.
6621
6622
*) Исправление: при использовании HTTPS запросы могли завершаться с
6623
ошибкой "bad write retry"; ошибка появилась в 0.6.23.
6624
6625
6626
Изменения в nginx 0.6.25 08.01.2008
6627
6628
*) Изменение: вместо специального параметра "*" в директиве server_name
6629
теперь используется директива server_name_in_redirect.
6630
6631
*) Изменение: в качестве основного имени в директиве server_name теперь
6632
можно использовать имена с масками и регулярными выражениями.
6633
6634
*) Изменение: директива satisfy_any заменена директивой satisfy.
6635
6636
*) Изменение: после переконфигурации старые рабочие процесс могли сильно
6637
нагружать процессор при запуске под Linux OpenVZ.
6638
6639
*) Добавление: директива min_delete_depth.
6640
6641
*) Исправление: методы COPY и MOVE не работали с одиночными файлами.
6642
6643
*) Исправление: модуль ngx_http_gzip_static_module не позволял работать
6644
модулю ngx_http_dav_module; ошибка появилась в 0.6.23.
6645
6646
*) Исправление: утечки сокетов в режиме HTTPS при использовании
6647
отложенного accept'а.
6648
Спасибо Ben Maurer.
6649
6650
*) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась
6651
в 0.6.23.
6652
6653
6654
Изменения в nginx 0.6.24 27.12.2007
6655
6656
*) Исправление: при использовании HTTPS в рабочем процессе мог произойти
6657
segmentation fault; ошибка появилась в 0.6.23.
6658
6659
6660
Изменения в nginx 0.6.23 27.12.2007
6661
6662
*) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот
6663
параметр используется по умолчанию.
6664
6665
*) Изменение: директива open_file_cache_retest переименована в
6666
open_file_cache_valid.
6667
6668
*) Добавление: директива open_file_cache_min_uses.
6669
6670
*) Добавление: модуль ngx_http_gzip_static_module.
6671
6672
*) Добавление: директива gzip_disable.
6673
6674
*) Добавление: директиву memcached_pass можно использовать внутри блока
6675
if.
6676
6677
*) Исправление: если внутри одного location'а использовались директивы
6678
"memcached_pass" и "if", то в рабочем процессе происходил
6679
segmentation fault.
6680
6681
*) Исправление: если при использовании директивы satisfy_any on" были
6682
заданы директивы не всех модулей доступа, то заданные директивы не
6683
проверялись.
6684
6685
*) Исправление: параметры, заданные регулярным выражением в директиве
6686
valid_referers, не наследовалась с предыдущего уровня.
6687
6688
*) Исправление: директива post_action не работала, если запрос
6689
завершался с кодом 499.
6690
6691
*) Исправление: оптимизация использования 16K буфера для SSL-соединения.
6692
Спасибо Ben Maurer.
6693
6694
*) Исправление: STARTTLS в режиме SMTP не работал.
6695
Спасибо Олегу Мотиенко.
6696
6697
*) Исправление: при использовании HTTPS запросы могли завершаться с
6698
ошибкой "bad write retry"; ошибка появилась в 0.5.13.
6699
6700
6701
Изменения в nginx 0.6.22 19.12.2007
6702
6703
*) Изменение: теперь все методы модуля ngx_http_perl_module возвращают
6704
значения, скопированные в память, выделенную perl'ом.
6705
6706
*) Исправление: если nginx был собран с модулем ngx_http_perl_module,
6707
использовался perl до версии 5.8.6 и perl поддерживал потоки, то во
6708
время переконфигурации основной процесс аварийно выходил; ошибка
6709
появилась в 0.5.9.
6710
Спасибо Борису Жмурову.
6711
6712
*) Исправление: в методы модуля ngx_http_perl_module могли передаваться
6713
неверные результаты выделения в регулярных выражениях.
6714
6715
*) Исправление: если метод $r->has_request_body() вызывался для запроса,
6716
у которого небольшое тело запроса было уже полностью получено, то в
6717
рабочем процессе происходил segmentation fault.
6718
6719
*) Исправление: large_client_header_buffers не освобождались перед
6720
переходом в состояние keep-alive.
6721
Спасибо Олександру Штепе.
6722
6723
*) Исправление: в переменной $upstream_addr не записывался последний
6724
адрес; ошибка появилась в 0.6.18.
6725
6726
*) Исправление: директива fastcgi_catch_stderr не возвращала ошибку;
6727
теперь она возвращает ошибку 502, которую можно направить на
6728
следующий сервер с помощью "fastcgi_next_upstream invalid_header".
6729
6730
*) Исправление: при использовании директивы fastcgi_catch_stderr в
6731
основном процессе происходил segmentation fault; ошибка появилась в
6732
0.6.10.
6733
Спасибо Manlio Perillo.
6734
6735
6736
Изменения в nginx 0.6.21 03.12.2007
6737
6738
*) Изменение: если в значениях переменных директивы proxy_pass
6739
используются только IP-адреса, то указывать resolver не нужно.
6740
6741
*) Исправление: при использовании директивы proxy_pass c URI-частью в
6742
рабочем процессе мог произойти segmentation fault; ошибка появилась в
6743
0.6.19.
6744
6745
*) Исправление: если resolver использовался на платформах, не
6746
поддерживающих метод kqueue, то nginx выдавал alert "name is out of
6747
response".
6748
Спасибо Андрею Нигматулину.
6749
6750
*) Исправление: При использовании переменной $server_protocol в
6751
FastCGI-параметрах и запросе, длина которого была близка к значению
6752
директивы client_header_buffer_size, nginx выдавал alert "fastcgi:
6753
the request record is too big".
6754
6755
*) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу
6756
nginx возвращал обычный ответ.
6757
6758
6759
Изменения в nginx 0.6.20 28.11.2007
6760
6761
*) Исправление: при использовании директивы proxy_pass c URI-частью в
6762
рабочем процессе мог произойти segmentation fault; ошибка появилась в
6763
0.6.19.
6764
6765
6766
Изменения в nginx 0.6.19 27.11.2007
6767
6768
*) Исправление: версия 0.6.18 не собиралась.
6769
6770
6771
Изменения в nginx 0.6.18 27.11.2007
6772
6773
*) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером
6774
процесса добавляет микросекунды на время старта.
6775
6776
*) Изменение: в error_log теперь записывается полная строка запроса
6777
вместо только URI.
6778
6779
*) Добавление: директива proxy_pass поддерживает переменные.
6780
6781
*) Добавление: директивы resolver и resolver_timeout.
6782
6783
*) Добавление: теперь директива "add_header last-modified ''" удаляет в
6784
заголовке ответа строку "Last-Modified".
6785
6786
*) Исправление: директива limit_rate не позволяла передавать на полной
6787
скорости, даже если был указан очень большой лимит.
6788
6789
6790
Изменения в nginx 0.6.17 15.11.2007
6791
6792
*) Добавление: поддержка строки "If-Range" в заголовке запроса.
6793
Спасибо Александру Инюхину.
6794
6795
*) Исправление: при использовании директивы msie_refresh повторно
6796
экранировались уже экранированные символы; ошибка появилась в 0.6.4.
6797
6798
*) Исправление: директива autoindex не работала при использовании "alias
6799
/".
6800
6801
*) Исправление: при использовании подзапросов в рабочем процессе мог
6802
произойти segmentation fault.
6803
6804
*) Исправление: при использовании SSL и gzip большие ответы могли
6805
передаваться не полностью.
6806
6807
*) Исправление: если ответ проксированного сервера был версии HTTP/0.9,
6808
то переменная $status была равна 0.
6809
6810
6811
Изменения в nginx 0.6.16 29.10.2007
6812
6813
*) Изменение: теперь на Linux используется uname(2) вместо procfs.
6814
Спасибо Илье Новикову.
6815
6816
*) Исправление: если в директиве error_page использовался символ "?", то
6817
он экранировался при проксировании запроса; ошибка появилась в
6818
0.6.11.
6819
6820
*) Исправление: совместимость с mget.
6821
6822
6823
Изменения в nginx 0.6.15 22.10.2007
6824
6825
*) Добавление: совместимость с Cygwin.
6826
Спасибо Владимиру Кутакову.
6827
6828
*) Добавление: директива merge_slashes.
6829
6830
*) Добавление: директива gzip_vary.
6831
6832
*) Добавление: директива server_tokens.
6833
6834
*) Исправление: nginx не раскодировал URI в команде SSI include.
6835
6836
*) Исправление: при использовании переменной в директивах charset или
6837
source_charset на старте или во время переконфигурации происходил
6838
segmentation fault,
6839
6840
*) Исправление: nginx возвращал ошибку 400 на запросы вида
6841
"GET http://www.domain.com HTTP/1.0".
6842
Спасибо James Oakley.
6843
6844
*) Исправление: после перенаправления запроса с телом запроса с помощью
6845
директивы error_page nginx пытался снова прочитать тело запроса;
6846
ошибка появилась в 0.6.7.
6847
6848
*) Исправление: в рабочем процессе происходил segmentation fault, если у
6849
сервера, обрабатывающему запрос, не был явно определён server_name;
6850
ошибка появилась в 0.6.7.
6851
6852
6853
Изменения в nginx 0.6.14 15.10.2007
6854
6855
*) Изменение: теперь по умолчанию команда SSI echo использует
6856
кодирование entity.
6857
6858
*) Добавление: параметр encoding в команде SSI echo.
6859
6860
*) Добавление: директиву access_log можно использовать внутри блока
6861
limit_except.
6862
6863
*) Исправление: если все сервера апстрима оказывались недоступными, то
6864
до восстановления работоспособности у всех серверов вес становился
6865
равным одному; ошибка появилась в 0.6.6.
6866
6867
*) Исправление: при использовании переменных $date_local и $date_gmt вне
6868
модуля ngx_http_ssi_filter_module в рабочем процессе происходил
6869
segmentation fault.
6870
6871
*) Исправление: при использовании включённом отладочном логе в рабочем
6872
процессе мог произойти segmentation fault.
6873
Спасибо Андрею Нигматулину.
6874
6875
*) Исправление: ngx_http_memcached_module не устанавливал
6876
$upstream_response_time.
6877
Спасибо Максиму Дунину.
6878
6879
*) Исправление: рабочий процесс мог зациклиться при использовании
6880
memcached.
6881
6882
*) Исправление: nginx распознавал параметры "close" и "keep-alive" в
6883
строке "Connection" в заголовке запроса только, если они были в
6884
нижнем регистре; ошибка появилась в 0.6.11.
6885
6886
*) Исправление: sub_filter не работал с пустой строкой замены.
6887
6888
*) Исправление: в парсинге sub_filter.
6889
6890
6891
Изменения в nginx 0.6.13 24.09.2007
6892
6893
*) Исправление: nginx не закрывал файл каталога для запроса HEAD, если
6894
использовался autoindex
6895
Спасибо Arkadiusz Patyk.
6896
6897
6898
Изменения в nginx 0.6.12 21.09.2007
6899
6900
*) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap
6901
и smtp.
6902
6903
*) Добавление: параметры конфигурации --without-mail_pop3_module,
6904
--without-mail_imap_module и --without-mail_smtp_module.
6905
6906
*) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля
6907
ngx_mail_smtp_module.
6908
6909
*) Исправление: wildcard в конце имени сервера не работали; ошибка
6910
появилась в 0.6.9.
6911
6912
*) Исправление: при использовании разделяемой библиотеки PCRE,
6913
расположенной в нестандартном месте, nginx не запускался на Solaris.
6914
6915
*) Исправление: директивы proxy_hide_header и fastcgi_hide_header не
6916
скрывали строки заголовка ответа с именем больше 32 символов.
6917
Спасибо Manlio Perillo.
6918
6919
6920
Изменения в nginx 0.6.11 11.09.2007
6921
6922
*) Исправление: счётчик активных соединений всегда рос при использовании
6923
почтового прокси-сервера.
6924
6925
*) Исправление: если бэкенд возвращал только заголовок ответа при
6926
небуферизированном проксировании, то nginx закрывал соединение с
6927
бэкендом по таймауту.
6928
6929
*) Исправление: nginx не поддерживал несколько строк "Connection" в
6930
заголовке запроса.
6931
6932
*) Исправление: если в сервере апстрима был задан max_fails, то после
6933
первой же неудачной попытки вес сервера навсегда становился равным
6934
одному; ошибка появилась в 0.6.6.
6935
6936
6937
Изменения в nginx 0.6.10 03.09.2007
6938
6939
*) Добавление: директивы open_file_cache, open_file_cache_retest и
6940
open_file_cache_errors.
6941
6942
*) Исправление: утечки сокетов; ошибка появилась в 0.6.7.
6943
6944
*) Исправление: В строку заголовка ответа "Content-Type", указанную в
6945
методе $r->send_http_header(), не добавлялась кодировка, указанная в
6946
директиве charset.
6947
6948
*) Исправление: при использовании метода /dev/poll в рабочем процессе
6949
мог произойти segmentation fault.
6950
6951
6952
Изменения в nginx 0.6.9 28.08.2007
6953
6954
*) Исправление: рабочий процесс мог зациклиться при использовании
6955
протокола HTTPS; ошибка появилась в 0.6.7.
6956
6957
*) Исправление: если сервер слушал на двух адресах или портах, то nginx
6958
не запускался при использовании wildcard в конце имени сервера.
6959
6960
*) Исправление: директива ip_hash могла неверно помечать сервера как
6961
нерабочие.
6962
6963
*) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8.
6964
6965
6966
Изменения в nginx 0.6.8 20.08.2007
6967
6968
*) Изменение: теперь nginx пытается установить директивы
6969
worker_priority, worker_rlimit_nofile, worker_rlimit_core,
6970
worker_rlimit_sigpending без привилегий root'а.
6971
6972
*) Изменение: теперь nginx экранирует символы пробела и "%" при передаче
6973
запроса серверу аутентификации почтового прокси-сервера.
6974
6975
*) Изменение: теперь nginx экранирует символ "%" в переменной
6976
$memcached_key.
6977
6978
*) Исправление: при указании относительного пути к конфигурационному
6979
файлу в качестве параметра ключа -c nginx определял путь относительно
6980
конфигурационного префикса; ошибка появилась в 0.6.6.
6981
6982
*) Исправление: nginx не работал на FreeBSD/sparc64.
6983
6984
6985
Изменения в nginx 0.6.7 15.08.2007
6986
6987
*) Изменение: теперь пути, указанные в директивах include,
6988
auth_basic_user_file, perl_modules, ssl_certificate,
6989
ssl_certificate_key и ssl_client_certificate, определяются
6990
относительно каталога конфигурационного файла nginx.conf, а не
6991
относительно префикса.
6992
6993
*) Изменение: параметр --sysconfdir=PATH в configure упразднён.
6994
6995
*) Изменение: для обновления на лету версий 0.1.x создан специальный
6996
сценарий make upgrade1.
6997
6998
*) Добавление: директивы server_name и valid_referers поддерживают
6999
регулярные выражения.
7000
7001
*) Добавление: директива server в блоке upstream поддерживает параметр
7002
backup.
7003
7004
*) Добавление: модуль ngx_http_perl_module поддерживает метод
7005
$r->discard_request_body.
7006
7007
*) Добавление: директива "add_header Last-Modified ..." меняет строку
7008
"Last-Modified" в заголовке ответа.
7009
7010
*) Исправление: если на запрос с телом возвращался ответ с кодом HTTP
7011
отличным от 200, и после этого запроса соединение переходило в
7012
состояние keep-alive, то на следующий запрос nginx возвращал 400.
7013
7014
*) Исправление: если в директиве auth_http был задан неправильный адрес,
7015
то в рабочем процессе происходил segmentation fault.
7016
7017
*) Исправление: теперь по умолчанию nginx использует значение 511 для
7018
listen backlog на всех платформах, кроме FreeBSD.
7019
Спасибо Jiang Hong.
7020
7021
*) Исправление: рабочий процесс мог зациклиться, если server в блоке
7022
upstream был помечен как down; ошибка появилась в 0.6.6.
7023
7024
*) Исправление: sendfilev() в Solaris теперь не используется при
7025
передаче тела запроса FastCGI-серверу через unix domain сокет.
7026
7027
7028
Изменения в nginx 0.6.6 30.07.2007
7029
7030
*) Добавление: параметр --sysconfdir=PATH в configure.
7031
7032
*) Добавление: именованные location'ы.
7033
7034
*) Добавление: переменную $args можно устанавливать с помощью set.
7035
7036
*) Добавление: переменная $is_args.
7037
7038
*) Исправление: равномерное распределение запросов к апстримам с
7039
большими весами.
7040
7041
*) Исправление: если клиент в почтовом прокси-сервере закрывал
7042
соединение, то nginx мог не закрывать соединение с бэкендом.
7043
7044
*) Исправление: при использовании одного хоста в качестве бэкендов для
7045
протоколов HTTP и HTTPS без явного указания портов, nginx использовал
7046
только один порт - 80 или 443.
7047
7048
*) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и
7049
более ранними версиями; ошибка появилась в 0.6.4.
7050
7051
7052
Изменения в nginx 0.6.5 23.07.2007
7053
7054
*) Добавление: переменная $nginx_version.
7055
Спасибо Николаю Гречуху.
7056
7057
*) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме
7058
IMAP.
7059
Спасибо Максиму Дунину.
7060
7061
*) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме
7062
SMTP.
7063
Спасибо Максиму Дунину.
7064
7065
*) Исправление: теперь nginx экранирует пробел в переменной
7066
$memcached_key.
7067
7068
*) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64.
7069
Спасибо Jiang Hong.
7070
7071
*) Исправление: незначительных потенциальных ошибок.
7072
Спасибо Coverity's Scan.
7073
7074
7075
Изменения в nginx 0.6.4 17.07.2007
7076
7077
*) Безопасность: при использовании директивы msie_refresh был возможен
7078
XSS.
7079
Спасибо Максиму Богуку.
7080
7081
*) Изменение: директивы proxy_store и fastcgi_store изменены.
7082
7083
*) Добавление: директивы proxy_store_access и fastcgi_store_access.
7084
7085
*) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
7086
Studio.
7087
Спасибо Андрею Нигматулину.
7088
7089
*) Изменение: обход ошибки в Sun Studio 12.
7090
Спасибо Jiang Hong.
7091
7092
7093
Изменения в nginx 0.6.3 12.07.2007
7094
7095
*) Добавление: директивы proxy_store и fastcgi_store.
7096
7097
*) Исправление: при использовании директивы auth_http_header в рабочем
7098
процессе мог произойти segmentation fault.
7099
Спасибо Максиму Дунину.
7100
7101
*) Исправление: если использовался метод аутентификации CRAM-MD5, но он
7102
не был разрешён, то в рабочем процессе происходил segmentation fault.
7103
7104
*) Исправление: при использовании протокола HTTPS в директиве proxy_pass
7105
в рабочем процессе мог произойти segmentation fault.
7106
7107
*) Исправление: в рабочем процессе мог произойти segmentation fault,
7108
если использовался метод eventport.
7109
7110
*) Исправление: директивы proxy_ignore_client_abort и
7111
fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13.
7112
7113
7114
Изменения в nginx 0.6.2 09.07.2007
7115
7116
*) Исправление: если заголовок ответа был разделён в FastCGI-записях, то
7117
nginx передавал клиенту мусор в таких заголовках.
7118
7119
7120
Изменения в nginx 0.6.1 17.06.2007
7121
7122
*) Исправление: в парсинге SSI.
7123
7124
*) Исправление: при использовании удалённого подзапроса в SSI
7125
последующий подзапрос локального файла мог отдаваться клиенту в
7126
неверном порядке.
7127
7128
*) Исправление: большие включения в SSI, сохранённые во временные файлы,
7129
передавались не полностью.
7130
7131
*) Исправление: значение perl'овой переменной $$ модуля
7132
ngx_http_perl_module было равно номеру главного процесса.
7133
7134
7135
Изменения в nginx 0.6.0 14.06.2007
7136
7137
*) Добавление: директивы "server_name", "map", and "valid_referers"
7138
поддерживают маски вида "www.example.*".
7139
7140
7141
Изменения в nginx 0.5.25 11.06.2007
7142
7143
*) Исправление: nginx не собирался с параметром
7144
--without-http_rewrite_module; ошибка появилась в 0.5.24.
7145
7146
7147
Изменения в nginx 0.5.24 06.06.2007
7148
7149
*) Безопасность: директива ssl_verify_client не работала, если запрос
7150
выполнялся по протоколу HTTP/0.9.
7151
7152
*) Исправление: при использовании сжатия часть ответа могла передаваться
7153
несжатой; ошибка появилась в 0.5.23.
7154
7155
7156
Изменения в nginx 0.5.23 04.06.2007
7157
7158
*) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS
7159
Server Name Indication.
7160
7161
*) Добавление: директива fastcgi_catch_stderr.
7162
Спасибо Николаю Гречуху, проект OWOX.
7163
7164
*) Исправление: на Линуксе в основном процессе происходил segmentation
7165
fault, если два виртуальных сервера должны bind()ится к
7166
пересекающимся портам.
7167
7168
*) Исправление: если nginx был собран с модулем ngx_http_perl_module и
7169
perl поддерживал потоки, то во время второй переконфигурации
7170
выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
7171
7172
*) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
7173
7174
7175
Изменения в nginx 0.5.22 29.05.2007
7176
7177
*) Исправление: большое тело запроса могло не передаваться бэкенду;
7178
ошибка появилась в 0.5.21.
7179
7180
7181
Изменения в nginx 0.5.21 28.05.2007
7182
7183
*) Исправление: если внутри сервера описано больше примерно десяти
7184
location'ов, то location'ы, заданные с помощью регулярного выражения,
7185
могли выполняться не в том, порядке, в каком они описаны.
7186
7187
*) Исправление: на 64-битной платформе рабочий процесс мог зациклиться,
7188
если 33-тий по счёту или последующий бэкенд упал.
7189
Спасибо Антону Поварову.
7190
7191
*) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог
7192
произойти bus error.
7193
Спасибо Андрею Нигматулину.
7194
7195
*) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
7196
7197
7198
Изменения в nginx 0.5.20 07.05.2007
7199
7200
*) Добавление: директива sendfile_max_chunk.
7201
7202
*) Добавление: переменные "$http_...", "$sent_http_..." и
7203
"$upstream_http_..." можно менять директивой set.
7204
7205
*) Исправление: при использовании SSI-команды 'if expr="$var = /"' в
7206
рабочем процессе мог произойти segmentation fault.
7207
7208
*) Исправление: завершающая строка multipart range ответа передавалась
7209
неверно.
7210
Спасибо Evan Miller.
7211
7212
*) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun
7213
Studio.
7214
Спасибо Андрею Нигматулину.
7215
7216
*) Исправление: модуль ngx_http_perl_module не собирался make в Solaris.
7217
Спасибо Андрею Нигматулину.
7218
7219
7220
Изменения в nginx 0.5.19 24.04.2007
7221
7222
*) Изменение: значение переменной $request_time теперь записывается с
7223
точностью до миллисекунд.
7224
7225
*) Изменение: метод $r->rflush в модуле ngx_http_perl_module
7226
переименован в $r->flush.
7227
7228
*) Добавление: переменная $upstream_addr.
7229
7230
*) Добавление: директивы proxy_headers_hash_max_size и
7231
proxy_headers_hash_bucket_size.
7232
Спасибо Володымыру Костырко.
7233
7234
*) Исправление: при использовании sendfile и limit_rate на 64-битных
7235
платформах нельзя было передавать файлы больше 2G.
7236
7237
*) Исправление: при использовании sendfile на 64-битном Linux нельзя
7238
было передавать файлы больше 2G.
7239
7240
7241
Изменения в nginx 0.5.18 19.04.2007
7242
7243
*) Добавление: модуль ngx_http_sub_filter_module.
7244
7245
*) Добавление: переменные "$upstream_http_...".
7246
7247
*) Добавление: теперь переменные $upstream_status и
7248
$upstream_response_time содержат данные о всех обращениях к
7249
апстримам, сделанным до X-Accel-Redirect.
7250
7251
*) Исправление: если nginx был собран с модулем ngx_http_perl_module и
7252
perl не поддерживал multiplicity, то после первой переконфигурации и
7253
после получения любого сигнала в основном процессе происходил
7254
segmentation fault; ошибка появилась в 0.5.9.
7255
7256
*) Исправление: если perl не поддерживал multiplicity, то после
7257
переконфигурации перловый код не работал; ошибка появилась в 0.3.38.
7258
7259
7260
Изменения в nginx 0.5.17 02.04.2007
7261
7262
*) Изменение: теперь nginx для метода TRACE всегда возвращает код 405.
7263
7264
*) Добавление: теперь nginx поддерживает директиву include внутри блока
7265
types.
7266
7267
*) Исправление: использование переменной $document_root в директиве root
7268
и alias запрещено: оно вызывало рекурсивное переполнение стека.
7269
7270
*) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
7271
7272
*) Исправление: в некоторых случаях некэшируемые переменные (такие, как
7273
$uri) возвращали старое закэшированное значение.
7274
7275
7276
Изменения в nginx 0.5.16 26.03.2007
7277
7278
*) Исправление: в качестве ключа для хэша в директиве ip_hash не
7279
использовалась сеть класса С.
7280
Спасибо Павлу Ярковому.
7281
7282
*) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда
7283
был указан charset и строка завершалась символом ";", то в рабочем
7284
процессе мог произойти segmentation fault; ошибка появилась в 0.3.50.
7285
7286
*) Исправление: ошибки "[alert] zero size buf" при работе с
7287
FastCGI-сервером, если тело запроса, записанное во временный файл,
7288
было кратно 32K.
7289
7290
*) Исправление: nginx не собирался на Solaris без параметра
7291
--with-debug; ошибка появилась в 0.5.15.
7292
7293
7294
Изменения в nginx 0.5.15 19.03.2007
7295
7296
*) Добавление: почтовый прокси-сервер поддерживает аутентифицированное
7297
SMTP-проксирование и директивы smtp_auth, smtp_capabilities и
7298
xclient.
7299
Спасибо Антону Южанинову и Максиму Дунину.
7300
7301
*) Добавление: теперь keep-alive соединения закрываются сразу же по
7302
получении сигнала переконфигурации.
7303
7304
*) Изменение: директивы imap и auth переименованы соответственно в mail
7305
и pop3_auth.
7306
7307
*) Исправление: если использовался метод аутентификации CRAM-MD5 и не
7308
был разрешён метод APOP, то в рабочем процессе происходил
7309
segmentation fault.
7310
7311
*) Исправление: при использовании директивы starttls only в протоколе
7312
POP3 nginx разрешал аутентификацию без перехода в режим SSL.
7313
7314
*) Исправление: рабочие процессы не выходили после переконфигурации и не
7315
переоткрывали логи, если использовался метод eventport.
7316
7317
*) Исправление: при использовании директивы ip_hash рабочий процесс мог
7318
зациклиться.
7319
7320
*) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если
7321
используются методы eventport или /dev/poll.
7322
7323
7324
Изменения в nginx 0.5.14 23.02.2007
7325
7326
*) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце
7327
конфигурационного файла.
7328
7329
7330
Изменения в nginx 0.5.13 19.02.2007
7331
7332
*) Добавление: методы COPY и MOVE.
7333
7334
*) Исправление: модуль ngx_http_realip_module устанавливал мусор для
7335
запросов, переданных по keep-alive соединению.
7336
7337
*) Исправление: nginx не работал на 64-битном big-endian Linux.
7338
Спасибо Андрею Нигматулину.
7339
7340
*) Исправление: при получении слишком длинной команды IMAP/POP3-прокси
7341
теперь сразу закрывает соединение, а не по таймауту.
7342
7343
*) Исправление: если при использовании метода epoll клиент закрывал
7344
преждевременно соединение со своей стороны, то nginx закрывал это
7345
соединение только по истечении таймаута на передачу.
7346
7347
*) Исправление: nginx не собирался на платформах, отличных от i386,
7348
amd64, sparc и ppc; ошибка появилась в 0.5.8.
7349
7350
7351
Изменения в nginx 0.5.12 12.02.2007
7352
7353
*) Исправление: nginx не собирался на платформах, отличных от i386,
7354
amd64, sparc и ppc; ошибка появилась в 0.5.8.
7355
7356
*) Исправление: при использовании временных файлов в время работы с
7357
FastCGI-сервером в рабочем процессе мог произойти segmentation fault;
7358
ошибка появилась в 0.5.8.
7359
7360
*) Исправление: если переменная $fastcgi_script_name записывалась в лог,
7361
то в рабочем процессе мог произойти segmentation fault.
7362
7363
*) Исправление: ngx_http_perl_module не собирался на Solaris.
7364
7365
7366
Изменения в nginx 0.5.11 05.02.2007
7367
7368
*) Добавление: теперь configure определяет библиотеку PCRE в MacPorts.
7369
Спасибо Chris McGrath.
7370
7371
*) Исправление: ответ был неверным, если запрашивалось несколько
7372
диапазонов; ошибка появилась в 0.5.6.
7373
7374
*) Исправление: директива create_full_put_path не могла создавать
7375
промежуточные каталоги, если не была установлена директива
7376
dav_access.
7377
Спасибо Evan Miller.
7378
7379
*) Исправление: вместо кодов ошибок "400" и "408" в access_log мог
7380
записываться код "0".
7381
7382
*) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
7383
произойти segmentation fault.
7384
7385
7386
Изменения в nginx 0.5.10 26.01.2007
7387
7388
*) Исправление: во время обновления исполняемого файла новый процесс не
7389
наследовал слушающие сокеты; ошибка появилась в 0.5.9.
7390
7391
*) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог
7392
произойти segmentation fault; ошибка появилась в 0.5.1.
7393
7394
7395
Изменения в nginx 0.5.9 25.01.2007
7396
7397
*) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа
7398
использует значение переменной $memcached_key.
7399
7400
*) Добавление: переменная $memcached_key.
7401
7402
*) Добавление: параметр clean в директиве client_body_in_file_only.
7403
7404
*) Добавление: директива env.
7405
7406
*) Добавление: директива sendfile работает внутри блока if.
7407
7408
*) Добавление: теперь при ошибке записи в access_log nginx записывает
7409
сообщение в error_log, но не чаще одного раза в минуту.
7410
7411
*) Исправление: директива "access_log off" не всегда запрещала запись в
7412
лог.
7413
7414
7415
Изменения в nginx 0.5.8 19.01.2007
7416
7417
*) Исправление: если использовалась директива
7418
"client_body_in_file_only on" и тело запроса было небольшое, то мог
7419
произойти segmentation fault.
7420
7421
*) Исправление: происходил segmentation fault, если использовались
7422
директивы "client_body_in_file_only on" и
7423
"proxy_pass_request_body off" или "fastcgi_pass_request_body off", и
7424
делался переход к следующему бэкенду.
7425
7426
*) Исправление: если при использовании директивы "proxy_buffering off"
7427
соединение с клиентом было неактивно, то оно закрывалось по таймауту,
7428
заданному директивой send_timeout; ошибка появилась в 0.4.7.
7429
7430
*) Исправление: если при использовании метода epoll клиент закрывал
7431
преждевременно соединение со своей стороны, то nginx закрывал это
7432
соединение только по истечении таймаута на передачу.
7433
7434
*) Исправление: ошибки "[alert] zero size buf" при работе с
7435
FastCGI-сервером.
7436
7437
*) Исправление ошибок в директиве limit_zone.
7438
7439
7440
Изменения в nginx 0.5.7 15.01.2007
7441
7442
*) Добавление: оптимизация использования памяти в ssl_session_cache.
7443
7444
*) Исправление ошибок в директивах ssl_session_cache и limit_zone.
7445
7446
*) Исправление: на старте или во время переконфигурации происходил
7447
segmentation fault, если директивы ssl_session_cache или limit_zone
7448
использовались на 64-битных платформах.
7449
7450
*) Исправление: при использовании директив add_before_body или
7451
add_after_body происходил segmentation fault, если в заголовке ответа
7452
нет строки "Content-Type".
7453
7454
*) Исправление: библиотека OpenSSL всегда собиралась с поддержкой
7455
потоков.
7456
Спасибо Дену Иванову.
7457
7458
*) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc.
7459
7460
7461
Изменения в nginx 0.5.6 09.01.2007
7462
7463
*) Изменение: теперь модуль ngx_http_index_module игнорирует все методы,
7464
кроме GET, HEAD и POST.
7465
7466
*) Добавление: модуль ngx_http_limit_zone_module.
7467
7468
*) Добавление: переменная $binary_remote_addr.
7469
7470
*) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и
7471
ngx_imap_ssl_module.
7472
7473
*) Добавление: метод DELETE поддерживает рекурсивное удаление.
7474
7475
*) Исправление: при использовании $r->sendfile() byte-ranges
7476
передавались неверно.
7477
7478
7479
Изменения в nginx 0.5.5 24.12.2006
7480
7481
*) Изменение: ключ -v больше не выводит информацию о компиляторе.
7482
7483
*) Добавление: ключ -V.
7484
7485
*) Добавление: директива worker_rlimit_core поддерживает указание
7486
размера в K, M и G.
7487
7488
*) Исправление: модуль nginx.pm теперь может устанавливаться
7489
непривилегированным пользователем.
7490
7491
*) Исправление: при использовании методов $r->request_body или
7492
$r->request_body_file мог произойти segmentation fault.
7493
7494
*) Исправление: ошибок, специфичных для платформы ppc.
7495
7496
7497
Изменения в nginx 0.5.4 15.12.2006
7498
7499
*) Добавление: директиву perl можно использовать внутри блока
7500
limit_except.
7501
7502
*) Исправление: модуль ngx_http_dav_module требовал строку "Date" в
7503
заголовке запроса для метода DELETE.
7504
7505
*) Исправление: при использовании одного параметра в директиве
7506
dav_access nginx мог сообщить об ошибке в конфигурации.
7507
7508
*) Исправление: при использовании переменной $host мог произойти
7509
segmentation fault; ошибка появилась в 0.4.14.
7510
7511
7512
Изменения в nginx 0.5.3 13.12.2006
7513
7514
*) Добавление: модуль ngx_http_perl_module поддерживает методы
7515
$r->status, $r->log_error и $r->sleep.
7516
7517
*) Добавление: метод $r->variable поддерживает переменные, неописанные в
7518
конфигурации nginx'а.
7519
7520
*) Исправление: метод $r->has_request_body не работал.
7521
7522
7523
Изменения в nginx 0.5.2 11.12.2006
7524
7525
*) Исправление: если в директивах proxy_pass использовалось имя,
7526
указанное в upstream, то nginx пытался найти IP-адрес этого имени;
7527
ошибка появилась в 0.5.1.
7528
7529
7530
Изменения в nginx 0.5.1 11.12.2006
7531
7532
*) Исправление: директива post_action могла не работать после неудачного
7533
завершения запроса.
7534
7535
*) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11.
7536
Спасибо Bron Gondwana.
7537
7538
*) Исправление: при указании в директиве fastcgi_pass имени описанного
7539
upstream'а выдавалось сообщение "no port in upstream"; ошибка
7540
появилась в 0.5.0.
7541
7542
*) Исправление: если в директивах proxy_pass и fastcgi_pass
7543
использовались одинаковых имена серверов, но с разными портами, то
7544
эти директивы использовали первый описанный порт; ошибка появилась в
7545
0.5.0.
7546
7547
*) Исправление: если в директивах proxy_pass и fastcgi_pass
7548
использовались unix domain сокеты, то эти директивы использовали
7549
первый описанный сокет; ошибка появилась в 0.5.0.
7550
7551
*) Исправление: ngx_http_auth_basic_module игнорировал пользователя,
7552
если он был указан в последней строке файла паролей и после пароля не
7553
было перевода строки, возврата каретки или символа ":".
7554
7555
*) Исправление: переменная $upstream_response_time могла быть равна
7556
"0.000", хотя время обработки было больше 1 миллисекунды.
7557
7558
7559
Изменения в nginx 0.5.0 04.12.2006
7560
7561
*) Изменение: параметры в виде "%name" в директиве log_format больше не
7562
поддерживаются.
7563
7564
*) Изменение: директивы proxy_upstream_max_fails,
7565
proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и
7566
fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и
7567
memcached_upstream_fail_timeout больше не поддерживаются.
7568
7569
*) Добавление: директива server в блоке upstream поддерживает параметры
7570
max_fails, fail_timeout и down.
7571
7572
*) Добавление: директива ip_hash в блоке upstream.
7573
7574
*) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа
7575
сервера аутентификации IMAP/POP3 прокси.
7576
7577
*) Исправление: nginx не собирался на 64-битных платформах; ошибка
7578
появилась в 0.4.14.
7579
7580
7581
Изменения в nginx 0.4.14 27.11.2006
7582
7583
*) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси.
7584
7585
*) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD,
7586
Linux и NetBSD.
7587
7588
*) Исправление: ngx_http_perl_module не работал с перлом, собранным с
7589
поддержкой потоков; ошибка появилась в 0.3.38.
7590
7591
*) Исправление: ngx_http_perl_module не работал корректно, если перл
7592
вызывался рекурсивно.
7593
7594
*) Исправление: nginx игнорировал имя сервера в строке запроса.
7595
7596
*) Исправление: если FastCGI сервер передавал много в stderr, то рабочий
7597
процесс мог зациклиться.
7598
7599
*) Исправление: при изменении системного времени переменная
7600
$upstream_response_time могла быть отрицательной.
7601
7602
*) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3
7603
прокси не передавался параметр Auth-Login-Attempt.
7604
7605
*) Исправление: при ошибке соединения с сервером аутентификации
7606
IMAP/POP3 прокси мог произойти segmentation fault.
7607
7608
7609
Изменения в nginx 0.4.13 15.11.2006
7610
7611
*) Добавление: директиву proxy_pass можно использовать внутри блока
7612
limit_except.
7613
7614
*) Добавление: директива limit_except поддерживает все WebDAV методы.
7615
7616
*) Исправление: при использовании директивы add_before_body без
7617
директивы add_after_body ответ передавался не полностью.
7618
7619
*) Исправление: большое тело запроса не принималось, если использовались
7620
метод epoll и deferred accept().
7621
7622
*) Исправление: для ответов модуля ngx_http_autoindex_module не
7623
выставлялась кодировка; ошибка появилась в 0.3.50.
7624
7625
*) Исправление: ошибки "[alert] zero size buf" при работе с
7626
FastCGI-сервером;
7627
7628
*) Исправление: параметр конфигурации --group= игнорировался.
7629
Спасибо Thomas Moschny.
7630
7631
*) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась
7632
в 0.3.50.
7633
7634
7635
Изменения в nginx 0.4.12 31.10.2006
7636
7637
*) Добавление: модуль ngx_http_perl_module поддерживает метод
7638
$r->variable.
7639
7640
*) Исправление: при включении в ответ большого статического файла с
7641
помощью SSI ответ мог передаваться не полностью.
7642
7643
*) Исправление: nginx не убирал "#fragment" в URI.
7644
7645
7646
Изменения в nginx 0.4.11 25.10.2006
7647
7648
*) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
7649
7650
*) Добавление: модуль ngx_http_perl_module поддерживает метод
7651
$r->allow_ranges.
7652
7653
*) Исправление: при включённой поддержке команды APOP в POP3 прокси
7654
могли не работать команды USER/PASS; ошибка появилась в 0.4.10.
7655
7656
7657
Изменения в nginx 0.4.10 23.10.2006
7658
7659
*) Добавление: POP3 прокси поддерживает APOP.
7660
7661
*) Исправление: при использовании методов select, poll и /dev/poll во
7662
время ожидания ответа от сервера аутентификации IMAP/POP3 прокси
7663
нагружал процессор.
7664
7665
*) Исправление: при использовании переменной $server_addr в директиве
7666
map мог произойти segmentation fault.
7667
7668
*) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges
7669
для полных ответов; ошибка появилась в 0.4.7.
7670
7671
*) Исправление: nginx не собирался на Debian amd64; ошибка появилась в
7672
0.4.9.
7673
7674
7675
Изменения в nginx 0.4.9 13.10.2006
7676
7677
*) Добавление: параметр set в команде SSI include.
7678
7679
*) Добавление: модуль ngx_http_perl_module теперь проверяет версию
7680
модуля nginx.pm.
7681
7682
7683
Изменения в nginx 0.4.8 11.10.2006
7684
7685
*) Исправление: если до команды SSI include с параметром wait
7686
выполнялась ещё одна команда SSI include, то параметр wait мог не
7687
работать.
7688
7689
*) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для
7690
полных ответов.
7691
Спасибо Алексею Ковырину.
7692
7693
7694
Изменения в nginx 0.4.7 10.10.2006
7695
7696
*) Добавление: модуль ngx_http_flv_module.
7697
7698
*) Добавление: переменная $request_body_file.
7699
7700
*) Добавление: директивы charset и source_charset поддерживают
7701
переменные.
7702
7703
*) Исправление: если до команды SSI include с параметром wait
7704
выполнялась ещё одна команда SSI include, то параметр wait мог не
7705
работать.
7706
7707
*) Исправление: при использовании директивы "proxy_buffering off" или
7708
при работе с memcached соединения могли не закрываться по таймауту.
7709
7710
*) Исправление: nginx не запускался на 64-битных платформах, отличных от
7711
amd64, sparc64 и ppc64.
7712
7713
7714
Изменения в nginx 0.4.6 06.10.2006
7715
7716
*) Исправление: nginx не запускался на 64-битных платформах, отличных от
7717
amd64, sparc64 и ppc64.
7718
7719
*) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ
7720
chunk'ами, если длина ответа в методе
7721
$r->headers_out("Content-Length", ...) была задана текстовой строкой.
7722
7723
*) Исправление: после перенаправления ошибки с помощью директивы
7724
error_page любая директива модуля ngx_http_rewrite_module возвращала
7725
эту ошибку; ошибка появилась в 0.4.4.
7726
7727
7728
Изменения в nginx 0.4.5 02.10.2006
7729
7730
*) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась
7731
в 0.4.4.
7732
7733
7734
Изменения в nginx 0.4.4 02.10.2006
7735
7736
*) Добавление: переменная $scheme.
7737
7738
*) Добавление: директива expires поддерживает параметр max.
7739
7740
*) Добавление: директива include поддерживает маску "*".
7741
Спасибо Jonathan Dance.
7742
7743
*) Исправление: директива return всегда изменяла код ответа,
7744
перенаправленного директивой error_page.
7745
7746
*) Исправление: происходил segmentation fault, если в методе PUT
7747
передавалось тело нулевой длины.
7748
7749
*) Исправление: при использовании переменных в директиве proxy_redirect
7750
редирект изменялся неверно.
7751
7752
7753
Изменения в nginx 0.4.3 26.09.2006
7754
7755
*) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы
7756
error_page.
7757
7758
*) Добавление: поддержка Solaris 10 event ports.
7759
7760
*) Добавление: модуль ngx_http_browser_module.
7761
7762
*) Исправление: при перенаправлении ошибки 400 проксированному серверу
7763
помощью директивы error_page мог произойти segmentation fault.
7764
7765
*) Исправление: происходил segmentation fault, если в директиве
7766
proxy_pass использовался unix domain сокет; ошибка появилась в
7767
0.3.47.
7768
7769
*) Исправление: SSI не работал с ответами memcached и
7770
небуферизированными проксированными ответами.
7771
7772
*) Изменение: обход ошибки PAUSE hardware capability в Sun Studio.
7773
7774
7775
Изменения в nginx 0.4.2 14.09.2006
7776
7777
*) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка
7778
появилась в 0.4.1.
7779
7780
7781
Изменения в nginx 0.4.1 14.09.2006
7782
7783
*) Исправление: совместимость с DragonFlyBSD.
7784
Спасибо Павлу Назарову.
7785
7786
*) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче
7787
файлов больше 2G.
7788
7789
*) Добавление: теперь на Linux nginx для статических запросов использует
7790
флаг O_NOATIME.
7791
Спасибо Yusuf Goolamabbas.
7792
7793
7794
Изменения в nginx 0.4.0 30.08.2006
7795
7796
*) Изменение во внутреннем API: инициализация модулей HTTP перенесена из
7797
фазы init module в фазу HTTP postconfiguration.
7798
7799
*) Изменение: теперь тело запроса в модуле ngx_http_perl_module не
7800
считывается заранее: нужно явно инициировать чтение с помощью метода
7801
$r->has_request_body.
7802
7803
*) Добавление: модуль ngx_http_perl_module поддерживает код возврата
7804
DECLINED.
7805
7806
*) Добавление: модуль ngx_http_dav_module поддерживает входящую строку
7807
заголовка "Date" для метода PUT.
7808
7809
*) Добавление: директива ssi работает внутри блока if.
7810
7811
*) Исправление: происходил segmentation fault, если в директиве index
7812
использовалась переменные и при этом первое имя индексного файла было
7813
без переменных; ошибка появилась в 0.1.29.
7814
7815
7816
Изменения в nginx 0.3.61 28.08.2006
7817
7818
*) Изменение: директива tcp_nodelay теперь по умолчанию включена.
7819
7820
*) Добавление: директива msie_refresh.
7821
7822
*) Добавление: директива recursive_error_pages.
7823
7824
*) Исправление: директива rewrite возвращала неправильный редирект, если
7825
редирект включал в себя выделенные закодированные символы из
7826
оригинального URI.
7827
7828
7829
Изменения в nginx 0.3.60 18.08.2006
7830
7831
*) Исправление: во время перенаправления ошибки рабочий процесс мог
7832
зациклиться; ошибка появилась в 0.3.59.
7833
7834
7835
Изменения в nginx 0.3.59 16.08.2006
7836
7837
*) Добавление: теперь можно делать несколько перенаправлений через
7838
директиву error_page.
7839
7840
*) Исправление: директива dav_access не поддерживала три параметра.
7841
7842
*) Исправление: директива error_page не изменяла строку "Content-Type"
7843
после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась
7844
в 0.3.58.
7845
7846
7847
Изменения в nginx 0.3.58 14.08.2006
7848
7849
*) Добавление: директива error_page поддерживает переменные.
7850
7851
*) Изменение: теперь на Linux используется интерфейс procfs вместо
7852
sysctl.
7853
7854
*) Изменение: теперь при использовании "X-Accel-Redirect" строка
7855
"Content-Type" наследуется из первоначального ответа.
7856
7857
*) Исправление: директива error_page не перенаправляла ошибку 413.
7858
7859
*) Исправление: завершающий "?" не удалял старые аргументы, если в
7860
переписанном URI не было новых аргументов.
7861
7862
*) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
7863
7864
7865
Изменения в nginx 0.3.57 09.08.2006
7866
7867
*) Добавление: переменная $ssl_client_serial.
7868
7869
*) Исправление: в операторе "!-e" в директиве if.
7870
Спасибо Андриану Буданцову.
7871
7872
*) Исправление: при проверке клиентского сертификата nginx не передавал
7873
клиенту информацию о требуемых сертификатах.
7874
7875
*) Исправление: переменная $document_root не поддерживала переменные в
7876
директиве root.
7877
7878
7879
Изменения в nginx 0.3.56 04.08.2006
7880
7881
*) Добавление: директива dav_access.
7882
7883
*) Добавление: директива if поддерживает операторы "-d", "!-d", "-e",
7884
"!-e", "-x" и "!-x".
7885
7886
*) Исправление: при записи в access_log некоторых передаваемых клиенту
7887
строк заголовков происходил segmentation fault, если запрос возвращал
7888
редирект.
7889
7890
7891
Изменения в nginx 0.3.55 28.07.2006
7892
7893
*) Добавление: параметр stub в команде SSI include.
7894
7895
*) Добавление: команда SSI block.
7896
7897
*) Добавление: скрипт unicode2nginx добавлен в contrib.
7898
7899
*) Исправление: если root был задан только переменной, то корень
7900
задавался относительно префикса сервера.
7901
7902
*) Исправление: если в запросе был "//" или "/.", и после этого
7903
закодированные символы в виде "%XX", то проксируемый запрос
7904
передавался незакодированным.
7905
7906
*) Исправление: метод $r->header_in("Cookie") модуля
7907
ngx_http_perl_module теперь возвращает все строки "Cookie" в
7908
заголовке запроса.
7909
7910
*) Исправление: происходил segmentation fault, если использовался
7911
"client_body_in_file_only on" и делался переход к следующему бэкенду.
7912
7913
*) Исправление: при некоторых условиях во время переконфигурации коды
7914
символов внутри директивы charset_map могли считаться неверными;
7915
ошибка появилась в 0.3.50.
7916
7917
7918
Изменения в nginx 0.3.54 11.07.2006
7919
7920
*) Добавление: nginx теперь записывает в лог информацию о подзапросах.
7921
7922
*) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и
7923
memcached_next_upstream поддерживают параметр off.
7924
7925
*) Добавление: директива debug_connection поддерживает запись адресов в
7926
формате CIDR.
7927
7928
*) Исправление: при перекодировании ответа проксированного сервера или
7929
сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не
7930
полностью.
7931
7932
*) Исправление: переменная $upstream_response_time содержала время
7933
только первого обращения к бэкенду.
7934
7935
*) Исправление: nginx не собирался на платформе amd64; ошибка появилась
7936
в 0.3.53.
7937
7938
7939
Изменения в nginx 0.3.53 07.07.2006
7940
7941
*) Изменение: директива add_header добавляет строки в ответы с кодом
7942
204, 301 и 302.
7943
7944
*) Добавление: директива server в блоке upstream поддерживает параметр
7945
weight.
7946
7947
*) Добавление: директива server_name поддерживает маску "*".
7948
7949
*) Добавление: nginx поддерживает тело запроса больше 2G.
7950
7951
*) Исправление: если при использовании "satisfy_any on" клиент успешно
7952
проходил аутентификацию, в лог всё равно записалоcь сообщение "access
7953
forbidden by rule".
7954
7955
*) Исправление: метод PUT мог ошибочно не создать файл и вернуть код
7956
409.
7957
7958
*) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал
7959
ошибку, nginx продолжал проксирование.
7960
7961
7962
Изменения в nginx 0.3.52 03.07.2006
7963
7964
*) Изменение: восстановлено поведение модуля ngx_http_index_module для
7965
запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт
7966
ошибку 405.
7967
7968
*) Исправление: при использовании ограничения скорости рабочий процесс
7969
мог зациклиться; ошибка появилась в 0.3.37.
7970
7971
*) Исправление: модуль ngx_http_charset_module записывал в лог ошибку
7972
"unknown charset", даже если перекодировка не требовалась; ошибка
7973
появилась в 0.3.50.
7974
7975
*) Исправление: если в результате запроса PUT возвращался код 409, то
7976
временный файл не удалялся.
7977
7978
7979
Изменения в nginx 0.3.51 30.06.2006
7980
7981
*) Исправление: при некоторых условиях в SSI мог пропадать символы "<";
7982
ошибка появилась в 0.3.50.
7983
7984
7985
Изменения в nginx 0.3.50 28.06.2006
7986
7987
*) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors
7988
переименованы соответственно в proxy_intercept_errors и
7989
fastcgi_intercept_errors.
7990
7991
*) Добавление: модуль ngx_http_charset_module поддерживает
7992
перекодирование из однобайтных кодировок в UTF-8 и обратно.
7993
7994
*) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
7995
"X-Accel-Charset" в ответе бэкенда.
7996
7997
*) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался,
7998
только если также использовался символ "$".
7999
8000
*) Исправление: при некоторых условиях в SSI после вставки могла быть
8001
добавлена строка "<!--".
8002
8003
*) Исправление: если в заголовке ответа была строка "Content-Length: 0",
8004
то при использовании небуферизированного проксировании не закрывалось
8005
соединение с клиентом.
8006
8007
8008
Изменения в nginx 0.3.49 31.05.2006
8009
8010
*) Исправление: в директиве set.
8011
8012
*) Исправление: при включении в ssi двух и более подзапросов,
8013
обрабатываемых через FastCGI, вместо вывода второго и остальных
8014
подзапросов в ответ включался вывод первого подзапроса.
8015
8016
8017
Изменения в nginx 0.3.48 29.05.2006
8018
8019
*) Изменение: теперь модуль ngx_http_charset_module работает для
8020
подзапросов, в ответах которых нет строки заголовка "Content-Type".
8021
8022
*) Исправление: если в директиве proxy_pass не было URI, то директива
8023
"proxy_redirect default" добавляла в переписанный редирект в начало
8024
лишний слэш.
8025
8026
*) Исправление: внутренний редирект всегда превращал любой HTTP-метод в
8027
GET, теперь это делается только для редиректов, выполняемых с помощью
8028
X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в
8029
0.3.42.
8030
8031
*) Исправление: модуль ngx_http_perl_module не собирался, если перл был
8032
с поддержкой потоков; ошибка появилась в 0.3.46.
8033
8034
8035
Изменения в nginx 0.3.47 23.05.2006
8036
8037
*) Добавление: директива upstream.
8038
8039
*) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь
8040
всегда убирается.
8041
8042
8043
Изменения в nginx 0.3.46 11.05.2006
8044
8045
*) Добавление: директивы proxy_hide_header, proxy_pass_header,
8046
fastcgi_hide_header и fastcgi_pass_header.
8047
8048
*) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и
8049
proxy_pass_server упразднены.
8050
8051
*) Добавление: в режиме прокси поддерживается строка заголовка
8052
"X-Accel-Buffering" в ответе бэкенда.
8053
8054
*) Исправление: ошибок и утечек памяти при переконфигурации в модуле
8055
ngx_http_perl_module.
8056
8057
8058
Изменения в nginx 0.3.45 06.05.2006
8059
8060
*) Добавление: директивы ssl_verify_client, ssl_verify_depth и
8061
ssl_client_certificate.
8062
8063
*) Изменение: теперь переменная $request_method возвращает метод только
8064
основного запроса.
8065
8066
*) Изменение: в таблице перекодировки koi-win изменены коды символа
8067
&deg;.
8068
8069
*) Добавление: в таблицу перекодировки koi-win добавлены символы евро и
8070
номера.
8071
8072
*) Исправление: если nginx распределял запросы на несколько машин, то
8073
при падении одной из них запросы, предназначенные для этой машины,
8074
перенаправлялись только на одну машину вместо того, чтобы равномерно
8075
распределяться между остальными.
8076
8077
8078
Изменения в nginx 0.3.44 04.05.2006
8079
8080
*) Добавление: параметр wait в команде SSI include.
8081
8082
*) Добавление: в таблицу перекодировки koi-win добавлены украинские и
8083
белорусские символы.
8084
8085
*) Исправление: в SSI.
8086
8087
8088
Изменения в nginx 0.3.43 26.04.2006
8089
8090
*) Исправление: в SSI.
8091
8092
8093
Изменения в nginx 0.3.42 26.04.2006
8094
8095
*) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси.
8096
8097
*) Исправление: ошибки при использовании в директиве rewrite одного и
8098
того же выделения более одного раза.
8099
8100
*) Исправление: в лог не записывались переменные
8101
$sent_http_content_type, $sent_http_content_length,
8102
$sent_http_last_modified, $sent_http_connection,
8103
$sent_http_keep_alive и $sent_http_transfer_encoding.
8104
8105
*) Исправление: переменная $sent_http_cache_control возвращала
8106
содержимое только одной строки "Cache-Control" в заголовке ответа.
8107
8108
8109
Изменения в nginx 0.3.41 21.04.2006
8110
8111
*) Добавление: ключ -v.
8112
8113
*) Исправление: при включении в SSI удалённых подзапросов мог произойти
8114
segmentation fault.
8115
8116
*) Исправление: в обработке FastCGI.
8117
8118
*) Исправление: если путь к перловым модулям не был указан с помощью
8119
--with-perl_modules_path=PATH или директивы perl_modules, то на
8120
старте происходил segmentation fault.
8121
8122
8123
Изменения в nginx 0.3.40 19.04.2006
8124
8125
*) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL.
8126
8127
*) Добавление: директива create_full_put_path.
8128
8129
*) Добавление: переменная $limit_rate.
8130
8131
8132
Изменения в nginx 0.3.39 17.04.2006
8133
8134
*) Добавление: директива uninitialized_variable_warn; уровень
8135
логгирования сообщения о неинициализированной переменной понижен с
8136
уровня alert на warn.
8137
8138
*) Добавление: директива override_charset.
8139
8140
*) Изменение: при использовании неизвестной переменной в SSI-командах
8141
echo и if expr='$name' теперь не записывается в лог сообщение о
8142
неизвестной переменной.
8143
8144
*) Исправление: счётчик активных соединений рос при превышении лимита
8145
соединений, заданного директивой worker_connections; ошибка появилась
8146
в 0.2.0.
8147
8148
*) Исправление: при некоторых условия ограничение скорости соединения
8149
могло не работать; ошибка появилась в 0.3.38.
8150
8151
8152
Изменения в nginx 0.3.38 14.04.2006
8153
8154
*) Добавление: модуль ngx_http_dav_module.
8155
8156
*) Изменение: оптимизация модуля ngx_http_perl_module.
8157
Спасибо Сергею Скворцову.
8158
8159
*) Добавление: модуль ngx_http_perl_module поддерживает метод
8160
$r->request_body_file.
8161
8162
*) Добавление: директива client_body_in_file_only.
8163
8164
*) Изменение: теперь при переполнении диска nginx пытается писать
8165
access_log'и только раз в секунду.
8166
Спасибо Антону Южанинову и Максиму Дунину.
8167
8168
*) Исправление: теперь директива limit_rate точнее ограничивает скорость
8169
при значениях больше 100 Kbyte/s.
8170
Спасибо ForJest.
8171
8172
*) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации
8173
символы "\r" и "\n" в логине и пароле в закодированном виде.
8174
Спасибо Максиму Дунину.
8175
8176
8177
Изменения в nginx 0.3.37 07.04.2006
8178
8179
*) Добавление: директива limit_except.
8180
8181
*) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и
8182
"!-f".
8183
8184
*) Добавление: модуль ngx_http_perl_module поддерживает метод
8185
$r->request_body.
8186
8187
*) Исправление: в модуле ngx_http_addition_filter_module.
8188
8189
8190
Изменения в nginx 0.3.36 05.04.2006
8191
8192
*) Добавление: модуль ngx_http_addition_filter_module.
8193
8194
*) Добавление: директивы proxy_pass и fastcgi_pass можно использовать
8195
внутри блока if.
8196
8197
*) Добавление: директивы proxy_ignore_client_abort и
8198
fastcgi_ignore_client_abort.
8199
8200
*) Добавление: переменная $request_completion.
8201
8202
*) Добавление: модуль ngx_http_perl_module поддерживает методы
8203
$r->request_method и $r->remote_addr.
8204
8205
*) Добавление: модуль ngx_http_ssi_module поддерживает команду elif.
8206
8207
*) Исправление: строка "\/" в начале выражения команды if модуля
8208
ngx_http_ssi_module воспринималась неверно.
8209
8210
*) Исправление: в использовании регулярных выражениях в команде if
8211
модуля ngx_http_ssi_module.
8212
8213
*) Исправление: при задании относительного пути в директивах
8214
client_body_temp_path, proxy_temp_path, fastcgi_temp_path и
8215
perl_modules использовался каталог относительно текущего каталога, а
8216
не относительно префикса сервера.
8217
8218
8219
Изменения в nginx 0.3.35 22.03.2006
8220
8221
*) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только
8222
для первой директивы listen; ошибка появилась в 0.3.31.
8223
8224
*) Исправление: в директиве proxy_pass без URI при использовании в
8225
подзапросе.
8226
8227
8228
Изменения в nginx 0.3.34 21.03.2006
8229
8230
*) Добавление: директива add_header поддерживает переменные.
8231
8232
8233
Изменения в nginx 0.3.33 15.03.2006
8234
8235
*) Добавление: параметр http_503 в директивах proxy_next_upstream или
8236
fastcgi_next_upstream.
8237
8238
*) Исправление: ngx_http_perl_module не работал со встроенным в
8239
конфигурационный файл кодом, если он не начинался сразу же с "sub".
8240
8241
*) Исправление: в директиве post_action.
8242
8243
8244
Изменения в nginx 0.3.32 11.03.2006
8245
8246
*) Исправление: удаление отладочного логгирования на старте и при
8247
переконфигурации; ошибка появилась в 0.3.31.
8248
8249
8250
Изменения в nginx 0.3.31 10.03.2006
8251
8252
*) Изменение: теперь nginx передаёт неверные ответы проксированного
8253
бэкенда.
8254
8255
*) Добавление: директивы listen поддерживают адрес в виде "*:порт".
8256
8257
*) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4.
8258
8259
*) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в
8260
64-битном ядре MacOSX.
8261
Спасибо Андрею Нигматулину.
8262
8263
*) Исправление: если внутри одного сервера описаны несколько директив
8264
listen, слушающих на разных адресах, то имена серверов вида
8265
"*.domain.tld" работали только для первого адреса; ошибка появилась в
8266
0.3.18.
8267
8268
*) Исправление: при использовании протокола HTTPS в директиве proxy_pass
8269
не передавались запросы с телом, записанным во временный файл.
8270
8271
*) Исправление: совместимость с perl 5.8.8.
8272
8273
8274
Изменения в nginx 0.3.30 22.02.2006
8275
8276
*) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error
8277
с уровня crit.
8278
8279
*) Исправление: модуль ngx_http_perl_module не собирался без модуля
8280
ngx_http_ssi_filter_module.
8281
8282
*) Исправление: nginx не собирался на i386 платформе, если использовался
8283
PIC; ошибка появилась в 0.3.27.
8284
8285
8286
Изменения в nginx 0.3.29 20.02.2006
8287
8288
*) Добавление: теперь nginx использует меньше памяти, если PHP в режиме
8289
FastCGI передаёт большое количество предупреждений перед ответом.
8290
8291
*) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась
8292
строка заголовка "Transfer-Encoding: chunked".
8293
8294
*) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер
8295
передавал полные строки заголовка ответа в отдельных FastCGI записях.
8296
8297
*) Исправление: если в директиве post_action был указан проксируемый
8298
URI, то он выполнялся только после успешного завершения запроса.
8299
8300
8301
Изменения в nginx 0.3.28 16.02.2006
8302
8303
*) Добавление: директива restrict_host_names упразднена.
8304
8305
*) Добавление: параметр конфигурации --with-cpu-opt=ppc64.
8306
8307
*) Исправление: при некоторых условиях проксированное соединение с
8308
клиентом завершалось преждевременно.
8309
Спасибо Владимиру Шутову.
8310
8311
*) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для
8312
запросов, перенаправленных с помощью строки "X-Accel-Redirect".
8313
8314
*) Исправление: директива post_action работала только после успешного
8315
завершения запроса.
8316
8317
*) Исправление: тело проксированного ответа, создаваемого директивой
8318
post_action, передавалось клиенту.
8319
8320
8321
Изменения в nginx 0.3.27 08.02.2006
8322
8323
*) Изменение: директивы variables_hash_max_size и
8324
variables_hash_bucket_size.
8325
8326
*) Добавление: переменная $body_bytes_sent доступна не только в
8327
директиве log_format.
8328
8329
*) Добавление: переменные $ssl_protocol и $ssl_cipher.
8330
8331
*) Добавление: определение размера строки кэша распространённых
8332
процессоров при старте.
8333
8334
*) Добавление: директива accept_mutex теперь поддерживается посредством
8335
fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc.
8336
8337
*) Добавление: директива lock_file и параметр автоконфигурации
8338
--with-lock-path=PATH.
8339
8340
*) Исправление: при использовании протокола HTTPS в директиве proxy_pass
8341
не передавались запросы с телом.
8342
8343
8344
Изменения в nginx 0.3.26 03.02.2006
8345
8346
*) Изменение: директива optimize_host_names переименована в
8347
optimize_server_names.
8348
8349
*) Исправление: при проксировании подзапроса в SSI бэкенду передавался
8350
URI основного запроса, если в директиве proxy_pass отсутствовал URI.
8351
8352
8353
Изменения в nginx 0.3.25 01.02.2006
8354
8355
*) Исправление: при неверной конфигурации на старте или во время
8356
переконфигурации происходил segmentation fault; ошибка появилась в
8357
0.3.24.
8358
8359
8360
Изменения в nginx 0.3.24 01.02.2006
8361
8362
*) Изменение: обход ошибки в kqueue во FreeBSD.
8363
8364
*) Исправление: ответ, создаваемый директивой post_action, теперь не
8365
передаётся клиенту.
8366
8367
*) Исправление: при использовании большого количества лог-файлов
8368
происходила утечка памяти.
8369
8370
*) Исправление: внутри одного location работала только первая директива
8371
proxy_redirect.
8372
8373
*) Исправление: на 64-битных платформах при старте мог произойти
8374
segmentation fault, если использовалось большое количество имён в
8375
директивах server_name; ошибка появилась в 0.3.18.
8376
8377
8378
Изменения в nginx 0.3.23 24.01.2006
8379
8380
*) Добавление: директива optimize_host_names.
8381
8382
*) Исправление: ошибки при использовании переменных в директивах path и
8383
alias.
8384
8385
*) Исправление: модуль ngx_http_perl_module неправильно собирался на
8386
Linux и Solaris.
8387
8388
8389
Изменения в nginx 0.3.22 17.01.2006
8390
8391
*) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args
8392
и $r->unescape.
8393
8394
*) Добавление: метод $r->query_string в модуле ngx_http_perl_module
8395
упразднён.
8396
8397
*) Исправление: если в директиве valid_referers указаны только none или
8398
blocked, то происходил segmentation fault; ошибка появилась в 0.3.18.
8399
8400
8401
Изменения в nginx 0.3.21 16.01.2006
8402
8403
*) Добавление: модуль ngx_http_perl_module.
8404
8405
*) Изменение: директива valid_referers разрешает использовать рефереры
8406
совсем без URI.
8407
8408
8409
Изменения в nginx 0.3.20 11.01.2006
8410
8411
*) Исправление: ошибки в обработке SSI.
8412
8413
*) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в
8414
виде /uri?args.
8415
8416
8417
Изменения в nginx 0.3.19 28.12.2005
8418
8419
*) Добавление: директивы path и alias поддерживают переменные.
8420
8421
*) Изменение: теперь директива valid_referers опять учитывает URI.
8422
8423
*) Исправление: ошибки в обработке SSI.
8424
8425
8426
Изменения в nginx 0.3.18 26.12.2005
8427
8428
*) Добавление: директива server_names поддерживает имена вида
8429
".domain.tld".
8430
8431
*) Добавление: директива server_names использует хэш для имён вида
8432
"*.domain.tld" и более эффективный хэш для обычных имён.
8433
8434
*) Изменение: директивы server_names_hash_max_size и
8435
server_names_hash_bucket_size.
8436
8437
*) Изменение: директивы server_names_hash и server_names_hash_threshold
8438
упразднены.
8439
8440
*) Добавление: директива valid_referers использует хэш для имён сайтов.
8441
8442
*) Изменение: теперь директива valid_referers проверяет только имена
8443
сайтов без учёта URI.
8444
8445
*) Исправление: некоторые имена вида ".domain.tld" неверно
8446
обрабатывались модулем ngx_http_map_module.
8447
8448
*) Исправление: если конфигурационного файла не было, то происходил
8449
segmentation fault; ошибка появилась в 0.3.12.
8450
8451
*) Исправление: на 64-битных платформах при старте мог произойти
8452
segmentation fault; ошибка появилась в 0.3.16.
8453
8454
8455
Изменения в nginx 0.3.17 18.12.2005
8456
8457
*) Изменение: на Linux configure теперь проверяет наличие epoll и
8458
sendfile64() в ядре.
8459
8460
*) Добавление: директива map поддерживает доменные имена в формате
8461
".domain.tld".
8462
8463
*) Исправление: во время SSL handshake не иcпользовались таймауты;
8464
ошибка появилась в 0.2.4.
8465
8466
*) Исправление: в использовании протокола HTTPS в директиве proxy_pass.
8467
8468
*) Исправление: при использовании протокола HTTPS в директиве proxy_pass
8469
по умолчанию использовался порт 80.
8470
8471
8472
Изменения в nginx 0.3.16 16.12.2005
8473
8474
*) Добавление: модуль ngx_http_map_module.
8475
8476
*) Добавление: директивы types_hash_max_size и types_hash_bucket_size.
8477
8478
*) Добавление: директива ssi_value_length.
8479
8480
*) Добавление: директива worker_rlimit_core.
8481
8482
*) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
8483
Pentium 4 номер соединения в логах всегда был равен 1.
8484
8485
*) Исправление: команда config timefmt в SSI задавала неверный формат
8486
времени.
8487
8488
*) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при
8489
использовании SSL соединений; ошибка появилась в 0.3.13.
8490
Спасибо Rob Mueller.
8491
8492
*) Исправление: segmentation fault мог произойти во время SSL shutdown;
8493
ошибка появилась в 0.3.13.
8494
8495
8496
Изменения в nginx 0.3.15 07.12.2005
8497
8498
*) Добавление: новой код 444 в директиве return для закрытия соединения.
8499
8500
*) Добавление: директива so_keepalive в IMAP/POP3 прокси.
8501
8502
*) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых
8503
соединений только при плавном выходе и включённой директиве
8504
debug_points.
8505
8506
8507
Изменения в nginx 0.3.14 05.12.2005
8508
8509
*) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась
8510
в 0.3.13.
8511
8512
8513
Изменения в nginx 0.3.13 05.12.2005
8514
8515
*) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS.
8516
8517
*) Исправление: IMAP/POP3 прокси не работала с методами select, poll и
8518
/dev/poll.
8519
8520
*) Исправление: ошибки в обработке SSI.
8521
8522
*) Исправление: sendfilev() в Solaris теперь не используется при
8523
передаче тела запроса FastCGI-серверу через unix domain сокет.
8524
8525
*) Исправление: директива auth_basic не запрещала аутентификацию; ошибка
8526
появилась в 0.3.11.
8527
8528
8529
Изменения в nginx 0.3.12 26.11.2005
8530
8531
*) Безопасность: если nginx был собран с модулем ngx_http_realip_module,
8532
то при использовании директивы "satisfy_any on" директивы доступа и
8533
аутентификации не работали. Модуль ngx_http_realip_module не
8534
собирался и не собирается по умолчанию.
8535
8536
*) Изменение: имя переменной "$time_gmt" изменено на "$time_local".
8537
8538
*) Изменение: директивы proxy_header_buffer_size и
8539
fastcgi_header_buffer_size переименованы соответственно в
8540
proxy_buffer_size и fastcgi_buffer_size.
8541
8542
*) Добавление: модуль ngx_http_memcached_module.
8543
8544
*) Добавление: директива proxy_buffering.
8545
8546
*) Исправление: изменение в работе с accept mutex при использовании
8547
метода rtsig; ошибка появилась в 0.3.0.
8548
8549
*) Исправление: если клиент передал строку "Transfer-Encoding: chunked"
8550
в заголовке запроса, то nginx теперь выдаёт ошибку 411.
8551
8552
*) Исправление: при наследовании директивы auth_basic с уровня http в
8553
строке "WWW-Authenticate" заголовка ответа выводился realm без текста
8554
"Basic realm".
8555
8556
*) Исправление: если в директиве access_log был явно указан формат
8557
combined, то в лог записывались пустые строки; ошибка появилась в
8558
0.3.8.
8559
8560
*) Исправление: nginx не работал на платформе sparc под любыми OS, кроме
8561
Solaris.
8562
8563
*) Исправление: в директиве if теперь не нужно разделять пробелом строку
8564
в кавычках и закрывающую скобку.
8565
8566
8567
Изменения в nginx 0.3.11 15.11.2005
8568
8569
*) Исправление: nginx не передавал при проксировании тело запроса и
8570
строки заголовка клиента; ошибка появилась в 0.3.10.
8571
8572
8573
Изменения в nginx 0.3.10 15.11.2005
8574
8575
*) Изменение: директива valid_referers и переменная $invalid_referer
8576
перенесены из модуля ngx_http_rewrite_module в новый модуль
8577
ngx_http_referer_module.
8578
8579
*) Изменение: имя переменной "$apache_bytes_sent" изменено на
8580
"$body_bytes_sent".
8581
8582
*) Добавление: переменные "$sent_http_...".
8583
8584
*) Добавление: директива if поддерживает операции "=" и "!=".
8585
8586
*) Добавление: директива proxy_pass поддерживает протокол HTTPS.
8587
8588
*) Добавление: директива proxy_set_body.
8589
8590
*) Добавление: директива post_action.
8591
8592
*) Добавление: модуль ngx_http_empty_gif_module.
8593
8594
*) Добавление: директива worker_cpu_affinity для Linux.
8595
8596
*) Исправление: директива rewrite не раскодировала символы в редиректах
8597
в URI, теперь символы раскодируются, кроме символов %00-%25 и
8598
%7F-%FF.
8599
8600
*) Исправление: nginx не собирался компилятором icc 9.0.
8601
8602
*) Исправление: если для статического файла нулевого размера был
8603
разрешён SSI, то ответ передавался неверно при кодировании chunk'ами.
8604
8605
8606
Изменения в nginx 0.3.9 10.11.2005
8607
8608
*) Исправление: nginx считал небезопасными URI, в которых между двумя
8609
слэшами находилось два любых символа; ошибка появилась в 0.3.8.
8610
8611
8612
Изменения в nginx 0.3.8 09.11.2005
8613
8614
*) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
8615
строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на
8616
наличие путей "/../" и нулей.
8617
8618
*) Изменение: nginx теперь не воспринимает пустое имя как правильное в
8619
строке "Authorization" в заголовке запроса.
8620
8621
*) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module
8622
и ngx_imap_ssl_module.
8623
8624
*) Добавление: директива auth_http_header модуля
8625
ngx_imap_auth_http_module.
8626
8627
*) Добавление: директива add_header.
8628
8629
*) Добавление: модуль ngx_http_realip_module.
8630
8631
*) Добавление: новые переменные для использования в директиве
8632
log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
8633
$uri, $request_time, $request_length, $upstream_status,
8634
$upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
8635
$connection, $pipe и $msec. Параметры в виде "%name" скоро будут
8636
упразднены.
8637
8638
*) Изменение: в директиве "if" ложными значениями переменных теперь
8639
являются пустая строка "" и строки, начинающиеся на "0".
8640
8641
*) Исправление: при работает с проксированными или FastCGI-серверами
8642
nginx мог оставлять открытыми соединения и временные файлы с
8643
запросами клиентов.
8644
8645
*) Исправление: рабочие процессы не сбрасывали буферизированные логи при
8646
плавном выходе.
8647
8648
*) Исправление: если URI запроса изменялось с помощью rewrite, а затем
8649
запрос проксировался в location, заданном регулярным выражением, то
8650
бэкенду передавался неверный запрос; ошибка появилась в 0.2.6.
8651
8652
*) Исправление: директива expires не удаляла уже установленную строку
8653
заголовка "Expires".
8654
8655
*) Исправление: при использовании метода rtsig и нескольких рабочих
8656
процессах nginx мог перестать принимать запросы.
8657
8658
*) Исправление: в SSI командах неверно обрабатывались строки "\"" и
8659
"\'".
8660
8661
*) Исправление: если ответ заканчивался сразу же после SSI команды, то
8662
при использовании сжатия ответ передавался не до конца или не
8663
передавался вообще.
8664
8665
8666
Изменения в nginx 0.3.7 27.10.2005
8667
8668
*) Добавление: директива access_log поддерживает параметр buffer=.
8669
8670
*) Исправление: nginx не собирался на платформах, отличных от i386,
8671
amd64, sparc и ppc; ошибка появилась в 0.3.2.
8672
8673
8674
Изменения в nginx 0.3.6 24.10.2005
8675
8676
*) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации
8677
пустой логин.
8678
8679
*) Добавление: директива log_format поддерживает переменные в виде
8680
$name.
8681
8682
*) Исправление: если хотя бы в одном сервере не было описано ни одной
8683
директивы listen, то nginx не слушал на 80 порту; ошибка появилась в
8684
0.3.3.
8685
8686
*) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда
8687
использовался порт 80.
8688
8689
8690
Изменения в nginx 0.3.5 21.10.2005
8691
8692
*) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то
8693
мог произойти segmentation fault; ошибка появилась в 0.2.2.
8694
8695
*) Исправление: accept mutex не работал, все соединения обрабатывались
8696
одним рабочим процессом; ошибка появилась в 0.3.3.
8697
8698
*) Исправление: при использовании метода rtsig и директивы
8699
timer_resolution не работали таймауты.
8700
8701
8702
Изменения в nginx 0.3.4 19.10.2005
8703
8704
*) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка
8705
появилась в 0.3.3.
8706
8707
8708
Изменения в nginx 0.3.3 19.10.2005
8709
8710
*) Изменение: параметры "bl" и "af" директивы listen переименованы в
8711
"backlog" и "accept_filter".
8712
8713
*) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen.
8714
8715
*) Изменение: параметр лога $msec теперь не требует дополнительного
8716
системного вызова gettimeofday().
8717
8718
*) Добавление: ключ -t теперь проверяет директивы listen.
8719
8720
*) Исправление: если в директиве listen был указан неверный адрес, то
8721
nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
8722
8723
*) Исправление: для индексных файлов, содержащих в имени переменную, мог
8724
неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0.
8725
8726
*) Добавление: директива timer_resolution.
8727
8728
*) Добавление: параметр лога $upstream_response_time в миллисекундах.
8729
8730
*) Исправление: временный файл с телом запроса клиента теперь удаляется
8731
сразу после того, как клиенту передан заголовок ответа.
8732
8733
*) Исправление: совместимость с OpenSSL 0.9.6.
8734
8735
*) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть
8736
относительными.
8737
8738
*) Исправление: директива ssl_prefer_server_ciphers не работала для
8739
модуля ngx_imap_ssl_module.
8740
8741
*) Исправление: директива ssl_protocols позволяла задать только один
8742
протокол.
8743
8744
8745
Изменения в nginx 0.3.2 12.10.2005
8746
8747
*) Добавление: поддержка Sun Studio 10 C compiler.
8748
8749
*) Добавление: директивы proxy_upstream_max_fails,
8750
proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и
8751
fastcgi_upstream_fail_timeout.
8752
8753
8754
Изменения в nginx 0.3.1 10.10.2005
8755
8756
*) Исправление: во время переполнения очереди сигналов при использовании
8757
метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0.
8758
8759
*) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
8760
8761
8762
Изменения в nginx 0.3.0 07.10.2005
8763
8764
*) Изменение: убрано десятидневное ограничение времени работы рабочего
8765
процесса. Ограничение было введено из-за переполнения миллисекундных
8766
таймеров.
8767
8768
8769
Изменения в nginx 0.2.6 05.10.2005
8770
8771
*) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к
8772
бэкенду при использовании распределения нагрузки.
8773
8774
*) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный
8775
запрос теперь передаётся, если в директиве proxy_pass отсутствует
8776
URI.
8777
8778
*) Добавление: директива error_page поддерживает редиректы и позволяет
8779
более гибко менять код ошибки.
8780
8781
*) Изменение: в проксированных подзапросах теперь игнорируется
8782
переданный charset.
8783
8784
*) Исправление: если после изменения URI в блоке if для запроса не
8785
находилась новая конфигурация, то правила модуля
8786
ngx_http_rewrite_module выполнялись снова.
8787
8788
*) Исправление: если директива set устанавливала переменную модуля
8789
ngx_http_geo_module в какой-либо части конфигурации, то эта
8790
переменная не была доступна в других частях конфигурации и выдавалась
8791
ошибка "using uninitialized variable"; ошибка появилась в 0.2.2.
8792
8793
8794
Изменения в nginx 0.2.5 04.10.2005
8795
8796
*) Изменение: дублирующее значение переменной модуля ngx_http_geo_module
8797
теперь выдаёт предупреждение и изменяет старое значение.
8798
8799
*) Добавление: модуль ngx_http_ssi_module поддерживает команду set.
8800
8801
*) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в
8802
команде include.
8803
8804
*) Добавление: модуль ngx_http_ssi_module поддерживает подстановку
8805
значений переменных в выражениях команды if.
8806
8807
8808
Изменения в nginx 0.2.4 03.10.2005
8809
8810
*) Добавление: модуль ngx_http_ssi_module поддерживает выражения
8811
"$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде
8812
if.
8813
8814
*) Исправление: ошибки при проксировании location без слэша в конце;
8815
ошибка появилась в 0.1.44.
8816
8817
*) Исправление: при использовании метода rtsig мог произойти
8818
segmentation fault; ошибка появилась в 0.2.0.
8819
8820
8821
Изменения в nginx 0.2.3 30.09.2005
8822
8823
*) Исправление: nginx не собирался без параметра --with-debug; ошибка
8824
появилась в 0.2.2.
8825
8826
8827
Изменения в nginx 0.2.2 30.09.2005
8828
8829
*) Добавление: команда config errmsg в модуле ngx_http_ssi_module.
8830
8831
*) Изменение: переменные модуля ngx_http_geo_module можно переопределять
8832
директивой set.
8833
8834
*) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers
8835
модулей ngx_http_ssl_module и ngx_imap_ssl_module.
8836
8837
*) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
8838
длинных имён файлов;
8839
8840
*) Исправление: модуль ngx_http_autoindex_module теперь не показывает
8841
файлы, начинающиеся на точку.
8842
8843
*) Исправление: если SSL handshake завершался с ошибкой, то это могло
8844
привести также к закрытию другого соединения.
8845
Спасибо Rob Mueller.
8846
8847
*) Исправление: экспортные версии MSIE 5.x не могли соединиться по
8848
HTTPS.
8849
8850
8851
Изменения в nginx 0.2.1 23.09.2005
8852
8853
*) Исправление: если все бэкенды, используемые для балансировки
8854
нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8855
nginx мог зациклится; ошибка появилась в 0.2.0.
8856
8857
8858
Изменения в nginx 0.2.0 23.09.2005
8859
8860
*) Изменились имена pid-файлов, используемые во время обновления
8861
исполняемого файла. Ручное переименование теперь не нужно. Старый
8862
основной процесс добавляет к своему pid-файл суффикс ".oldbin" и
8863
запускает новый исполняемый файл. Новый основной процесс создаёт
8864
обычный pid-файл без суффикса ".newbin". Если новый основной процесс
8865
выходит, то старый процесс переименовывает свой pid-файл c суффиксом
8866
".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до
8867
0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый
8868
0.2.0 - используют pid-файл без суффиксов.
8869
8870
*) Изменение: директива worker_connections, новое название директивы
8871
connections; директива теперь задаёт максимальное число соединений, а
8872
не максимально возможный номер дескриптора для сокета.
8873
8874
*) Добавление: SSL поддерживает кэширование сессий в пределах одного
8875
рабочего процесса.
8876
8877
*) Добавление: директива satisfy_any.
8878
8879
*) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module
8880
не работают для подзапросов.
8881
8882
*) Добавление: директивы worker_rlimit_nofile и
8883
worker_rlimit_sigpending.
8884
8885
*) Исправление: если все бэкенды, используемые для балансировки
8886
нагрузки, оказывались в нерабочем состоянии после одной ошибки, то
8887
nginx не обращался к ним в течение 60 секунд.
8888
8889
*) Исправление: в парсинге аргументов IMAP/POP3 команд.
8890
Спасибо Rob Mueller.
8891
8892
*) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси.
8893
8894
*) Исправление: ошибки при использовании SSI и сжатия.
8895
8896
*) Исправление: в ответах 304 не добавлялись строки заголовка ответа
8897
"Expires" и "Cache-Control".
8898
Спасибо Александру Кукушкину.
8899
8900
8901
Изменения в nginx 0.1.45 08.09.2005
8902
8903
*) Изменение: директива ssl_engine упразднена в модуле
8904
ngx_http_ssl_module и перенесена на глобальный уровень.
8905
8906
*) Исправление: ответы с подзапросами, включённые с помощью SSI, не
8907
передавались через SSL соединение.
8908
8909
*) Разные исправления в IMAP/POP3 прокси.
8910
8911
8912
Изменения в nginx 0.1.44 06.09.2005
8913
8914
*) Добавление: IMAP/POP3 прокси поддерживает SSL.
8915
8916
*) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module.
8917
8918
*) Добавление: директива userid_mark.
8919
8920
*) Добавление: значение переменной $remote_user определяется независимо
8921
от того, используется ли авторизация или нет.
8922
8923
8924
Изменения в nginx 0.1.43 30.08.2005
8925
8926
*) Добавление: listen(2) backlog в директиве listen можно менять по
8927
сигналу -HUP.
8928
8929
*) Добавление: скрипт geo2nginx.pl добавлен в contrib.
8930
8931
*) Изменение: параметры FastCGI с пустым значениями теперь передаются
8932
серверу.
8933
8934
*) Исправление: если в ответе проксированного сервера или FastCGI
8935
сервера была строка "Cache-Control", то при использовании директивы
8936
expires происходил segmentation fault или рабочий процесс мог
8937
зациклится; в режиме прокси ошибка появилась в 0.1.29.
8938
8939
8940
Изменения в nginx 0.1.42 23.08.2005
8941
8942
*) Исправление: если URI запроса получался нулевой длины после обработки
8943
модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module
8944
происходил segmentation fault или bus error.
8945
8946
*) Исправление: директива limit_rate не работала внутри блока if; ошибка
8947
появилась в 0.1.38.
8948
8949
8950
Изменения в nginx 0.1.41 25.07.2005
8951
8952
*) Исправление: если переменная использовалась в файле конфигурации, то
8953
она не могла использоваться в SSI.
8954
8955
8956
Изменения в nginx 0.1.40 22.07.2005
8957
8958
*) Исправление: если клиент слал очень длинную строку заголовка, то в
8959
логе не помещалась информация, связанная с этим запросом.
8960
8961
*) Исправление: при использовании "X-Accel-Redirect" не передавалась
8962
строка "Set-Cookie"; ошибка появилась в 0.1.39.
8963
8964
*) Исправление: при использовании "X-Accel-Redirect" не передавалась
8965
строка "Content-Disposition".
8966
8967
*) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты,
8968
на которых он слушал.
8969
8970
*) Исправление: после обновления исполняемого файла на лету на Linux и
8971
Solaris название процесса в команде ps становилось короче.
8972
8973
8974
Изменения в nginx 0.1.39 14.07.2005
8975
8976
*) Изменения в модуле ngx_http_charset_module: директива default_charset
8977
упразднена; директива charset задаёт кодировку ответа; директива
8978
source_charset задаёт только исходную кодировку.
8979
8980
*) Исправление: при перенаправлении ошибки 401, полученной от бэкенда,
8981
не передавалась строка заголовка "WWW-Authenticate".
8982
8983
*) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module
8984
могли закрыть соединение до того, как что-нибудь было передано
8985
клиенту; ошибка появилась в 0.1.38.
8986
8987
*) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc.
8988
8989
*) Исправление: модуль ngx_http_ssi_module не поддерживал относительные
8990
URI в команде include virtual.
8991
8992
*) Исправление: если в строке заголовка ответа бэкенда была строка
8993
"Location", которую nginx не должен был изменять, то в ответе
8994
передавалось тело 500 ошибки; ошибка появилась в 0.1.29.
8995
8996
*) Исправление: некоторые директивы модулей ngx_http_proxy_module и
8997
ngx_http_fastcgi_module не наследовались с уровня server на уровень
8998
location; ошибка появилась в 0.1.29.
8999
9000
*) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки
9001
сертификатов.
9002
9003
*) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
9004
длинных имён файлов; ошибка появилась в 0.1.38.
9005
9006
*) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на
9007
стадии login.
9008
9009
9010
Изменения в nginx 0.1.38 08.07.2005
9011
9012
*) Добавление: директива limit_rate поддерживается в режиме прокси и
9013
FastCGI.
9014
9015
*) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
9016
"X-Accel-Limit-Rate" в ответе бэкенда.
9017
9018
*) Добавление: директива break.
9019
9020
*) Добавление: директива log_not_found.
9021
9022
*) Исправление: при перенаправлении запроса с помощью строки заголовка
9023
"X-Accel-Redirect" не изменялся код ответа.
9024
9025
*) Исправление: переменные, установленные директивой set не могли
9026
использоваться в SSI.
9027
9028
*) Исправление: при включении в SSI более одного удалённого подзапроса
9029
мог произойти segmentation fault.
9030
9031
*) Исправление: если статусная строка в ответе бэкенда передавалась в
9032
двух пакетах, то nginx считал ответ неверным; ошибка появилась в
9033
0.1.29.
9034
9035
*) Добавление: директива ssi_types.
9036
9037
*) Добавление: директива autoindex_exact_size.
9038
9039
*) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные
9040
имена файлов в UTF-8.
9041
9042
*) Добавление: IMAP/POP3 прокси.
9043
9044
9045
Изменения в nginx 0.1.37 23.06.2005
9046
9047
*) Изменение: в конце файла nginx.pid теперь добавляется "\n".
9048
9049
*) Исправление: при включении большого количества вставок или нескольких
9050
больших вставок с помощью SSI ответ мог передаваться не полностью.
9051
9052
*) Исправление: если все бэкенды возвращали ответ 404, то при
9053
использовании параметра http_404 в директивах proxy_next_upstream или
9054
fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова.
9055
9056
9057
Изменения в nginx 0.1.36 15.06.2005
9058
9059
*) Изменение: если в заголовке запроса есть дублирующиеся строки "Host",
9060
"Connection", "Content-Length" и "Authorization", то nginx теперь
9061
выдаёт ошибку 400.
9062
9063
*) Изменение: директива post_accept_timeout упразднена.
9064
9065
*) Добавление: параметры default, af=, bl=, deferred и bind в директиве
9066
listen.
9067
9068
*) Добавление: поддержка accept фильтров во FreeBSD.
9069
9070
*) Добавление: поддержка TCP_DEFER_ACCEPT в Linux.
9071
9072
*) Исправление: модуль ngx_http_autoindex_module не поддерживал имена
9073
файлов в UTF-8.
9074
9075
*) Исправление: после добавления новый лог-файл ротация этого лога по
9076
сигналу -USR1 выполнялась, только если переконфигурировать nginx два
9077
раза по сигналу -HUP.
9078
9079
9080
Изменения в nginx 0.1.35 07.06.2005
9081
9082
*) Добавление: директива working_directory.
9083
9084
*) Добавление: директива port_in_redirect.
9085
9086
*) Исправление: если заголовок ответа бэкенда не помещался в один пакет,
9087
то происходил segmentation fault; ошибка появилась в 0.1.29.
9088
9089
*) Исправление: если было сконфигурировано более 10 серверов или в
9090
сервере не описана директива "listen", то при запуске мог произойти
9091
segmentation fault.
9092
9093
*) Исправление: если ответ не помещался во временный файл, то мог
9094
произойти segmentation fault.
9095
9096
*) Исправление: nginx возвращал ошибку 400 на запросы вида
9097
"GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28.
9098
9099
9100
Изменения в nginx 0.1.34 26.05.2005
9101
9102
*) Исправление: при включении больших ответов с помощью SSI рабочий
9103
процесс мог зациклиться.
9104
9105
*) Исправление: переменные, устанавливаемые директивой "set", не были
9106
доступны в SSI.
9107
9108
*) Добавление: директива autoindex_localtime.
9109
9110
*) Исправление: пустое значение в директиве proxy_set_header запрещает
9111
передачу заголовка.
9112
9113
9114
Изменения в nginx 0.1.33 23.05.2005
9115
9116
*) Исправление: nginx не собирался с параметром --without-pcre; ошибка
9117
появилась в 0.1.29.
9118
9119
*) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне
9120
вызывали bus fault при запуске.
9121
9122
*) Исправление: в редиректах внутри HTTPS сервера был указан протокол
9123
HTTP.
9124
9125
*) Исправление: если директива rewrite использовала выделения внутри
9126
директивы if, то возвращалась ошибка 500.
9127
9128
9129
Изменения в nginx 0.1.32 19.05.2005
9130
9131
*) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не
9132
передавались аргументы; ошибка появилась в 0.1.29.
9133
9134
*) Добавление: директива if поддерживает выделения в регулярных
9135
выражениях.
9136
9137
*) Добавление: директива set поддерживает переменные и выделения из
9138
регулярных выражений.
9139
9140
*) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка
9141
"X-Accel-Redirect" в ответе бэкенда.
9142
9143
9144
Изменения в nginx 0.1.31 16.05.2005
9145
9146
*) Исправление: при использовании SSL ответ мог передаваться не до
9147
конца.
9148
9149
*) Исправление: ошибки при обработке SSI в ответе, полученного от
9150
FastCGI-сервера.
9151
9152
*) Исправление: ошибки при использовании SSI и сжатия.
9153
9154
*) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка
9155
появилась в 0.1.30.
9156
9157
9158
Изменения в nginx 0.1.30 14.05.2005
9159
9160
*) Исправление: при использовании SSI рабочий процесс мог зациклиться.
9161
9162
*) Исправление: при использовании SSL ответ мог передаваться не до
9163
конца.
9164
9165
*) Исправление: если длина части ответа, полученного за один раз от
9166
проксируемого или FastCGI сервера была равна 500 байт, то nginx
9167
возвращал код ответа 500; в режиме прокси ошибка появилась только в
9168
0.1.29.
9169
9170
*) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю
9171
параметрами.
9172
9173
*) Добавление: директива return может возвращать код ответа 204.
9174
9175
*) Добавление: директива ignore_invalid_headers.
9176
9177
9178
Изменения в nginx 0.1.29 12.05.2005
9179
9180
*) Добавление: модуль ngx_http_ssi_module поддерживает команду include
9181
virtual.
9182
9183
*) Добавление: модуль ngx_http_ssi_module поддерживает условную команду
9184
вида 'if expr="$NAME"' и команды else и endif. Допускается только
9185
один уровень вложенности.
9186
9187
*) Добавление: модуль ngx_http_ssi_module поддерживает две переменные
9188
DATE_LOCAL и DATE_GMT и команду config timefmt.
9189
9190
*) Добавление: директива ssi_ignore_recycled_buffers.
9191
9192
*) Исправление: если переменная QUERY_STRING не была определена, то в
9193
команде echo не ставилось значение по умолчанию.
9194
9195
*) Изменение: модуль ngx_http_proxy_module полностью переписан.
9196
9197
*) Добавление: директивы proxy_redirect, proxy_pass_request_headers,
9198
proxy_pass_request_body и proxy_method.
9199
9200
*) Добавление: директива proxy_set_header. Директива proxy_x_var
9201
упразднена и должна быть заменена директивой proxy_set_header.
9202
9203
*) Изменение: директива proxy_preserve_host упразднена и должна быть
9204
заменена директивами "proxy_set_header Host $host" и "proxy_redirect
9205
off" или директивой "proxy_set_header Host $host:$proxy_port" и
9206
соответствующими ей директивами proxy_redirect.
9207
9208
*) Изменение: директива proxy_set_x_real_ip упразднена и должна быть
9209
заменена директивой "proxy_set_header X-Real-IP $remote_addr".
9210
9211
*) Изменение: директива proxy_add_x_forwarded_for упразднена и должна
9212
быть заменена директивой
9213
"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".
9214
9215
*) Изменение: директива proxy_set_x_url упразднена и должна быть
9216
заменена директивой
9217
"proxy_set_header X-URL http://$host:$server_port$request_uri".
9218
9219
*) Добавление: директива fastcgi_param.
9220
9221
*) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params
9222
упразднены и должны быть замены директивами fastcgi_param.
9223
9224
*) Добавление: директива index может использовать переменные.
9225
9226
*) Добавление: директива index может быть указана на уровне http и
9227
server.
9228
9229
*) Изменение: только последний параметр в директиве index может быть
9230
абсолютным.
9231
9232
*) Добавление: в директиве rewrite могут использоваться переменные.
9233
9234
*) Добавление: директива internal.
9235
9236
*) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT,
9237
SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT,
9238
SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
9239
9240
*) Изменение: nginx теперь передаёт неверные строки в заголовках запроса
9241
клиента и ответа бэкенда.
9242
9243
*) Исправление: если бэкенд долго не передавал ответ и send_timeout был
9244
меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408.
9245
9246
*) Исправление: если бэкенд передавал неверную строку в заголовке
9247
ответа, то происходил segmentation fault; ошибка появилась в 0.1.26.
9248
9249
*) Исправление: при использовании отказоустойчивой конфигурации в
9250
FastCGI мог происходить segmentation fault.
9251
9252
*) Исправление: директива expires не удаляла уже установленные строки
9253
заголовка "Expires" и "Cache-Control".
9254
9255
*) Исправление: nginx не учитывал завершающую точку в строке заголовка
9256
запроса "Host".
9257
9258
*) Исправление: модуль ngx_http_auth_module не работал на Linux.
9259
9260
*) Исправление: директива rewrite неверно работала, если в запросе
9261
присутствовали аргументы.
9262
9263
*) Исправление: nginx не собирался на MacOS X.
9264
9265
9266
Изменения в nginx 0.1.28 08.04.2005
9267
9268
*) Исправление: при проксировании больших файлов nginx сильно нагружал
9269
процессор.
9270
9271
*) Исправление: nginx не собирался gcc 4.0 на Linux.
9272
9273
9274
Изменения в nginx 0.1.27 28.03.2005
9275
9276
*) Добавление: параметр blocked в директиве valid_referers.
9277
9278
*) Изменение: ошибки обработки заголовка запроса теперь записываются на
9279
уровне info, в лог также записывается имя сервера и строки заголовка
9280
запроса "Host" и "Referer".
9281
9282
*) Изменение: при записи ошибок в лог записывается также строка
9283
заголовка запроса "Host".
9284
9285
*) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка
9286
символов "://" в URI, введённая в версии 0.1.11, теперь упразднена.
9287
9288
*) Исправление: nginx не собирался на FreeBSD и Linux, если был указан
9289
параметр конфигурации --without-ngx_http_auth_basic_module.
9290
9291
9292
Изменения в nginx 0.1.26 22.03.2005
9293
9294
*) Изменение: неверные строки заголовка, переданные клиентом, теперь
9295
игнорируется и записываются в error_log на уровне info.
9296
9297
*) Изменение: при записи ошибок в лог записывается также имя сервера,
9298
при обращении к которому произошла ошибка.
9299
9300
*) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic
9301
и auth_basic_user_file.
9302
9303
9304
Изменения в nginx 0.1.25 19.03.2005
9305
9306
*) Исправление: nginx не работал на Linux parisc.
9307
9308
*) Добавление: nginx теперь не запускается под FreeBSD, если значение
9309
sysctl kern.ipc.somaxconn слишком большое.
9310
9311
*) Исправление: если модуль ngx_http_index_module делал внутреннее
9312
перенаправление запроса в модули ngx_http_proxy_module или
9313
ngx_http_fastcgi_module, то файл индекса не закрывался после
9314
обслуживания запроса.
9315
9316
*) Добавление: директива proxy_pass может использоваться в location,
9317
заданных регулярным выражением.
9318
9319
*) Добавление: модуль ngx_http_rewrite_filter_module поддерживает
9320
условия вида "if ($HTTP_USER_AGENT ~ MSIE)".
9321
9322
*) Исправление: nginx очень медленно запускался при большом количестве
9323
адресов и использовании текстовых значений в директиве geo.
9324
9325
*) Изменение: имя переменной в директиве geo нужно указывать, как $name.
9326
Прежний вариант без "$" пока работает, но вскоре будет убран.
9327
9328
*) Добавление: параметр лога "%{VARIABLE}v".
9329
9330
*) Добавление: директива "set $name value".
9331
9332
*) Исправление: совместимость с gcc 4.0.
9333
9334
*) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS.
9335
9336
9337
Изменения в nginx 0.1.24 04.03.2005
9338
9339
*) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные
9340
QUERY_STRING и DOCUMENT_URI.
9341
9342
*) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404
9343
на существующий каталог, если этот каталог был указан как alias.
9344
9345
*) Исправление: модуль ngx_http_ssi_filter_module неправильно работал
9346
при больших ответах.
9347
9348
*) Исправление: отсутствие строки заголовка "Referer" всегда считалось
9349
правильным referrer'ом.
9350
9351
9352
Изменения в nginx 0.1.23 01.03.2005
9353
9354
*) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi,
9355
ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo
9356
var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'.
9357
9358
*) Добавление: параметр лога %request_time.
9359
9360
*) Добавление: если запрос пришёл без строки заголовка "Host", то
9361
директива proxy_preserve_host устанавливает в качестве этого
9362
заголовка первое имя сервера из директивы server_name.
9363
9364
*) Исправление: nginx не собирался на платформах, отличных от i386,
9365
amd64, sparc и ppc; ошибка появилась в 0.1.22.
9366
9367
*) Исправление: модуль ngx_http_autoindex_module теперь показывает
9368
информацию не о символическом линке, а о файле или каталоге, на
9369
который он указывает.
9370
9371
*) Исправление: если клиенту ничего не передавалось, то параметр
9372
%apache_length записывал в лог отрицательную длину заголовка ответа.
9373
9374
9375
Изменения в nginx 0.1.22 22.02.2005
9376
9377
*) Исправление: модуль ngx_http_stub_status_module показывал неверную
9378
статистику для обработанных соединений, если использовалось
9379
проксирование или FastCGI-сервер.
9380
9381
*) Исправление: на Linux и Solaris установочные пути были неверно
9382
заключены в кавычки; ошибка появилась в 0.1.21.
9383
9384
9385
Изменения в nginx 0.1.21 22.02.2005
9386
9387
*) Исправление: модуль ngx_http_stub_status_module показывал неверную
9388
статистику при использовании метода rtsig или при использовании
9389
нескольких рабочих процессов на SMP машине.
9390
9391
*) Исправление: nginx не собирался компилятором icc под Линуксом или
9392
если библиотека zlib-1.2.x собиралась из исходных текстов.
9393
9394
*) Исправление: nginx не собирался под NetBSD 2.0.
9395
9396
9397
Изменения в nginx 0.1.20 17.02.2005
9398
9399
*) Добавление: новые параметры script_filename и remote_port в директиве
9400
fastcgi_params.
9401
9402
*) Исправление: неправильно обрабатывался поток stderr от
9403
FastCGI-сервера.
9404
9405
9406
Изменения в nginx 0.1.19 16.02.2005
9407
9408
*) Исправление: если в запросе есть нуль, то для локальных запросов
9409
теперь возвращается ошибка 404.
9410
9411
*) Исправление: nginx не собирался под NetBSD 2.0.
9412
9413
*) Исправление: во время чтения тела запроса клиента в SSL соединении
9414
мог произойти таймаут.
9415
9416
9417
Изменения в nginx 0.1.18 09.02.2005
9418
9419
*) Изменение: для совместимости с Solaris 10 в директивах devpoll_events
9420
и devpoll_changes значения по умолчанию уменьшены с 512 до 32.
9421
9422
*) Исправление: директивы proxy_set_x_var и fastcgi_set_var не
9423
наследовались.
9424
9425
*) Исправление: в директиве rewrite, возвращающей редирект, аргументы
9426
присоединялись к URI через символ "&" вместо "?".
9427
9428
*) Исправление: строки для модуля ngx_http_geo_module без символа ";" во
9429
включённом файле игнорировались.
9430
9431
*) Добавление: модуль ngx_http_stub_status_module.
9432
9433
*) Исправление: неизвестный формат лог-файла в директиве access_log
9434
вызывал segmentation fault.
9435
9436
*) Добавление: новый параметр document_root в директиве fastcgi_params.
9437
9438
*) Добавление: директива fastcgi_redirect_errors.
9439
9440
*) Добавление: новый модификатор break в директиве rewrite позволяет
9441
прекратить цикл rewrite/location и устанавливает текущую конфигурацию
9442
для запроса.
9443
9444
9445
Изменения в nginx 0.1.17 03.02.2005
9446
9447
*) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь
9448
можно делать редиректы, возвращать коды ошибок и проверять переменные
9449
и рефереры. Эти директивы можно использовать внутри location.
9450
Директива redirect упразднена.
9451
9452
*) Добавление: модуль ngx_http_geo_module.
9453
9454
*) Добавление: директивы proxy_set_x_var и fastcgi_set_var.
9455
9456
*) Исправление: конфигурация location с модификатором "=" могла
9457
использоваться в другом location.
9458
9459
*) Исправление: правильный тип ответа выставлялся только для запросов, у
9460
которых в расширении были только маленькие буквы.
9461
9462
*) Исправление: если для location установлен proxy_pass или
9463
fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась
9464
на статическую страницу, то происходил segmentation fault.
9465
9466
*) Исправление: если в проксированном ответе в заголовке "Location"
9467
передавался относительный URL, то к нему добавлялось имя хоста и
9468
слэш; ошибка появилась в 0.1.14.
9469
9470
*) Исправление: на Linux в лог не записывался текст системной ошибки.
9471
9472
9473
Изменения в nginx 0.1.16 25.01.2005
9474
9475
*) Исправление: если ответ передавался chunk'ами, то при запросе HEAD
9476
выдавался завершающий chunk.
9477
9478
*) Исправление: заголовок "Connection: keep-alive" выдавался, даже если
9479
директива keepalive_timeout запрещала использование keep-alive.
9480
9481
*) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали
9482
segmentation fault.
9483
9484
*) Исправление: при использовании SSL сжатый ответ мог передаваться не
9485
до конца.
9486
9487
*) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные
9488
для TCP сокетов, не используются для unix domain сокетов.
9489
9490
*) Добавление: директива rewrite поддерживает перезаписывание
9491
аргументов.
9492
9493
*) Исправление: на запрос POST с заголовком "Content-Length: 0"
9494
возвращался ответ 400; ошибка появилась в 0.1.14.
9495
9496
9497
Изменения в nginx 0.1.15 19.01.2005
9498
9499
*) Исправление: ошибка соединения с FastCGI-сервером вызывала
9500
segmentation fault.
9501
9502
*) Исправление: корректная обработка регулярного выражения, в котором
9503
число выделенных частей не совпадает с числом подстановок.
9504
9505
*) Добавление: location, который передаётся FastCGI-серверу, может быть
9506
задан с помощью регулярного выражения.
9507
9508
*) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с
9509
аргументами и в том виде, в котором был получен от клиента.
9510
9511
*) Исправление: для использования регулярных выражений в location нужно
9512
было собирать nginx вместе с ngx_http_rewrite_module.
9513
9514
*) Исправление: если бэкенд слушал на 80-ом порту, то при использовании
9515
директивы "proxy_preserve_host on" в заголовке "Host" указывался
9516
также порт 80; ошибка появилась в 0.1.14.
9517
9518
*) Исправление: если задать одинаковые пути в параметрах
9519
автоконфигурации --http-client-body-temp-path=PATH и
9520
--http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и
9521
--http-fastcgi-temp-path=PATH, то происходил segmentation fault.
9522
9523
9524
Изменения в nginx 0.1.14 18.01.2005
9525
9526
*) Добавление: параметры автоконфигурации
9527
--http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и
9528
--http-fastcgi-temp-path=PATH
9529
9530
*) Изменение: имя каталога с временными файлами, содержащие тело запроса
9531
клиента, задаётся директивой client_body_temp_path, по умолчанию
9532
<prefix>/client_body_temp.
9533
9534
*) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass,
9535
fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout,
9536
fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat,
9537
fastcgi_header_buffer_size, fastcgi_buffers,
9538
fastcgi_busy_buffers_size, fastcgi_temp_path,
9539
fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
9540
fastcgi_next_upstream и fastcgi_x_powered_by.
9541
9542
*) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в
9543
0.1.3.
9544
9545
*) Изменение: в директиве proxy_pass нужно обязательно указывать URI
9546
после имени хоста.
9547
9548
*) Изменение: если в URI встречался символ %3F, то он считался началом
9549
строки аргументов.
9550
9551
*) Добавление: поддержка unix domain сокетов в модуле
9552
ngx_http_proxy_module.
9553
9554
*) Добавление: директивы ssl_engine и ssl_ciphers.
9555
Спасибо Сергею Скворцову за SSL-акселератор.
9556
9557
9558
Изменения в nginx 0.1.13 21.12.2004
9559
9560
*) Добавление: директивы server_names_hash и
9561
server_names_hash_threshold.
9562
9563
*) Исправление: имена *.domain.tld в директиве server_name не работали.
9564
9565
*) Исправление: параметр лога %request_length записывал неверную длину.
9566
9567
9568
Изменения в nginx 0.1.12 06.12.2004
9569
9570
*) Добавление: параметр лога %request_length.
9571
9572
*) Исправление: при использовании /dev/poll, select и poll на
9573
платформах, где возможны ложные срабатывания указанных методов, могли
9574
быть длительные задержки при обработке запроса по keep-alive
9575
соединению. Наблюдалось по крайней мере на Solaris с использованием
9576
/dev/poll.
9577
9578
*) Исправление: директива send_lowat игнорируется на Linux, так как
9579
Linux не поддерживает опцию SO_SNDLOWAT.
9580
9581
9582
Изменения в nginx 0.1.11 02.12.2004
9583
9584
*) Добавление: директива worker_priority.
9585
9586
*) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
9587
влияют на передачу ответа.
9588
9589
*) Исправление: nginx не вызывал initgroups().
9590
Спасибо Андрею Ситникову и Андрею Нигматулину.
9591
9592
*) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
9593
байтах.
9594
9595
*) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
9596
каталоге есть битый symlink.
9597
9598
*) Исправление: файлы больше 4G не передавались с использованием
9599
sendfile.
9600
9601
*) Исправление: если бэкенд резолвился в несколько адресов и при
9602
ожидании от него ответа происходила ошибка, то процесс зацикливался.
9603
9604
*) Исправление: при использовании метода /dev/poll рабочий процесс мог
9605
завершиться с сообщением "unknown cycle".
9606
9607
*) Исправление: ошибки "close() channel failed".
9608
9609
*) Исправление: автоматическое определение групп nobody и nogroup.
9610
9611
*) Исправление: директива send_lowat не работала на Linux.
9612
9613
*) Исправление: если в конфигурации не было раздела events, то
9614
происходил segmentation fault.
9615
9616
*) Исправление: nginx не собирался под OpenBSD.
9617
9618
*) Исправление: двойные слэшы в "://" в URI превращались в ":/".
9619
9620
9621
Изменения в nginx 0.1.10 26.11.2004
9622
9623
*) Исправление: если в запросе без аргументов есть "//", "/./", "/../"
9624
или "%XX", то терялся последний символ в строке запроса; ошибка
9625
появилась в 0.1.9.
9626
9627
*) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux
9628
не работало.
9629
9630
9631
Изменения в nginx 0.1.9 25.11.2004
9632
9633
*) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то
9634
проксируемый запрос передавался без аргументов.
9635
9636
*) Исправление: при сжатии больших ответов иногда они передавались не
9637
полностью.
9638
9639
*) Исправление: не передавались файлы больше 2G на Linux,
9640
неподдерживающем sendfile64().
9641
9642
*) Исправление: на Linux при конфигурации сборки нужно было обязательно
9643
использовать параметр --with-poll_module; ошибка появилась в 0.1.8.
9644
9645
9646
Изменения в nginx 0.1.8 20.11.2004
9647
9648
*) Исправление: ошибка в модуле ngx_http_autoindex_module при показе
9649
длинных имён файлов.
9650
9651
*) Добавление: модификатор "^~" в директиве location.
9652
9653
*) Добавление: директива proxy_max_temp_file_size.
9654
9655
9656
Изменения в nginx 0.1.7 12.11.2004
9657
9658
*) Исправление: при использовании sendfile, если передаваемый файл
9659
менялся, то мог произойти segmentation fault на FreeBSD; ошибка
9660
появилась в 0.1.5.
9661
9662
9663
Изменения в nginx 0.1.6 11.11.2004
9664
9665
*) Исправление: при некоторых комбинациях директив location c
9666
регулярными выражениями использовалась конфигурация не из того
9667
location.
9668
9669
9670
Изменения в nginx 0.1.5 11.11.2004
9671
9672
*) Исправление: на Solaris и Linux могло быть очень много сообщений
9673
"recvmsg() returned not enough data".
9674
9675
*) Исправление: в режиме прокси без использования sendfile на Solaris
9676
возникала ошибка "writev() failed (22: Invalid argument)". На других
9677
платформах, не поддерживающих sendfile, процесс зацикливался.
9678
9679
*) Исправление: при использовании sendfile в режиме прокси на Solaris
9680
возникал segmentation fault.
9681
9682
*) Исправление: segmentation fault на Solaris.
9683
9684
*) Исправление: обновление исполняемого файла на лету не работало на
9685
Linux.
9686
9687
*) Исправление: в списке файлов, выдаваемом модулем
9688
ngx_http_autoindex_module, не перекодировались пробелы, кавычки и
9689
знаки процента.
9690
9691
*) Изменение: уменьшение операций копирования.
9692
9693
*) Добавление: директива userid_p3p.
9694
9695
9696
Изменения в nginx 0.1.4 26.10.2004
9697
9698
*) Исправление: ошибка в модуле ngx_http_autoindex_module.
9699
9700
9701
Изменения в nginx 0.1.3 25.10.2004
9702
9703
*) Добавление: модуль ngx_http_autoindex_module и директива autoindex.
9704
9705
*) Добавление: директива proxy_set_x_url.
9706
9707
*) Исправление: модуль проксировании мог привести к зацикливанию, если
9708
не использовался sendfile.
9709
9710
9711
Изменения в nginx 0.1.2 21.10.2004
9712
9713
*) Добавление: параметры --user=USER, --group=GROUP и
9714
--with-ld-opt=OPTIONS в configure.
9715
9716
*) Добавление: директива server_name поддерживает *.domain.tld.
9717
9718
*) Исправление: улучшена переносимость на неизвестные платформы.
9719
9720
*) Исправление: нельзя переконфигурировать nginx, если конфигурационный
9721
файл указан в командной строке; ошибка появилась в 0.1.1.
9722
9723
*) Исправление: модуль проксировании мог привести к зацикливанию, если
9724
не использовался sendfile.
9725
9726
*) Исправление: при использовании sendfile текст ответа не
9727
перекодировался согласно директивам модуля charset; ошибка появилась
9728
в 0.1.1.
9729
9730
*) Исправление: очень редкая ошибка при обработке kqueue.
9731
9732
*) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при
9733
проксировании.
9734
9735
9736
Изменения в nginx 0.1.1 11.10.2004
9737
9738
*) Добавление: директива gzip_types.
9739
9740
*) Добавление: директива tcp_nodelay.
9741
9742
*) Добавление: директива send_lowat работает не только на платформах,
9743
поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих
9744
SO_SNDLOWAT.
9745
9746
*) Добавление: эмуляция setproctitle() для Linux и Solaris.
9747
9748
*) Исправление: ошибка при переписывании заголовка "Location" при
9749
проксировании.
9750
9751
*) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к
9752
зацикливанию.
9753
9754
*) Исправление: ошибки в модуле /dev/poll.
9755
9756
*) Исправление: при проксировании и использовании временных файлов
9757
ответы портились.
9758
9759
*) Исправление: бэкенду передавались запросы с неперекодированными
9760
символами.
9761
9762
*) Исправление: на Linux 2.4 при конфигурации сборки нужно было
9763
обязательно использовать параметр --with-poll_module.
9764
9765
9766
Изменения в nginx 0.1.0 04.10.2004
9767
9768
*) Первая публично доступная версия.
9769
9770
9771