-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.ru
8883 lines (5495 loc) · 464 KB
/
CHANGES.ru
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Изменения в nginx 1.20.0 20.04.2021
*) Стабильная ветка 1.20.x.
Изменения в nginx 1.19.10 13.04.2021
*) Изменение: в директиве keepalive_requests значение по умолчанию
изменено на 1000.
*) Добавление: директива keepalive_time.
*) Добавление: переменная $connection_time.
*) Изменение: при использовании zlib-ng в логах появлялись сообщения
"gzip filter failed to use preallocated memory".
Изменения в nginx 1.19.9 30.03.2021
*) Исправление: nginx не собирался с почтовым прокси-сервером, но без
модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8.
*) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
"upstream sent response body larger than indicated content length";
ошибка появилась в 1.19.1.
*) Исправление: если клиент закрывал соединение в момент отбрасывания
тела запроса, nginx мог не закрыть соединение до истечения
keepalive-таймаута.
*) Исправление: при ожидании задержки limit_req или auth_delay, а также
при работе с бэкендами nginx мог не обнаружить, что соединение уже
закрыто клиентом.
*) Исправление: в методе обработки соединений eventport.
Изменения в nginx 1.19.8 09.03.2021
*) Добавление: в директиве proxy_cookie_flags теперь флаги можно
задавать с помощью переменных.
*) Добавление: параметр proxy_protocol в директиве listen, директивы
proxy_protocol и set_real_ip_from в почтовом прокси-сервере.
*) Исправление: HTTP/2-соединения сразу закрывались при использовании
"keepalive_timeout 0"; ошибка появилась в 1.19.7.
*) Исправление: некоторые ошибки логгировались как неизвестные, если
nginx был собран с glibc 2.32.
*) Исправление: в методе обработки соединений eventport.
Изменения в nginx 1.19.7 16.02.2021
*) Изменение: обработка соединений в HTTP/2 была изменена и теперь более
соответствует HTTP/1.x; директивы http2_recv_timeout,
http2_idle_timeout и http2_max_requests упразднены, вместо них
следует использовать директивы keepalive_timeout и
keepalive_requests.
*) Изменение: директивы http2_max_field_size и http2_max_header_size
упразднены, вместо них следует использовать директиву
large_client_header_buffers.
*) Добавление: теперь при исчерпании свободных соединений nginx
закрывает не только keepalive-соединения, но и соединения в lingering
close.
*) Исправление: в логах могли появляться сообщения "zero size buf in
output", если бэкенд возвращал некорректный ответ при
небуферизированном проксировании; ошибка появилась в 1.19.1.
*) Исправление: при использовании директивы return вместе с image_filter
или xslt_stylesheet HEAD-запросы обрабатывались некорректно.
*) Исправление: в директиве add_trailer.
Изменения в nginx 1.19.6 15.12.2020
*) Исправление: ошибки "no live upstreams", если server в блоке upstream
был помечен как down.
*) Исправление: при использовании HTTPS в рабочем процессе мог произойти
segmentation fault; ошибка появилась в 1.19.5.
*) Исправление: nginx возвращал ошибку 400 на запросы вида
"GET http://example.com?args HTTP/1.0".
*) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module.
Спасибо Chris Newton.
Изменения в nginx 1.19.5 24.11.2020
*) Добавление: ключ -e.
*) Добавление: при сборке дополнительных модулей теперь можно указывать
одни и те же исходные файлы в разных модулях.
*) Исправление: SSL shutdown не работал при закрытии соединений с
ожиданием дополнительных данных (lingering close).
*) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
"upstream sent frame for closed stream".
*) Исправление: во внутреннем API для обработки тела запроса.
Изменения в nginx 1.19.4 27.10.2020
*) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command,
grpc_ssl_conf_command и uwsgi_ssl_conf_command.
*) Добавление: директива ssl_reject_handshake.
*) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере.
Изменения в nginx 1.19.3 29.09.2020
*) Добавление: модуль ngx_stream_set_module.
*) Добавление: директива proxy_cookie_flags.
*) Добавление: директива userid_flags.
*) Исправление: расширение управления кэшированием stale-if-error
ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502,
503, 504, 403, 404 или 429.
*) Исправление: если использовалось кэширование и бэкенд возвращал
ответы с строкой заголовка Vary, в логах могли появляться сообщения
"[crit] cache file ... has too long header".
*) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться
сообщения "[crit] SSL_write() failed".
*) Исправление: в логах могли появляться сообщения "SSL_shutdown()
failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2.
*) Исправление: при использовании HTTP/2 в рабочем процессе мог
произойти segmentation fault, если ошибки с кодом 400 с помощью
директивы error_page перенаправлялись в проксируемый location.
*) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в
модуле njs.
Изменения в nginx 1.19.2 11.08.2020
*) Изменение: теперь nginx начинает закрывать keepalive-соединения, не
дожидаясь исчерпания всех свободных соединений, а также пишет об этом
предупреждение в лог ошибок.
*) Изменение: оптимизация чтения тела запроса при использовании chunked
transfer encoding.
*) Исправление: утечки памяти при использовании директивы ssl_ocsp.
*) Исправление: в логах могли появляться сообщения "zero size buf in
output", если FastCGI-сервер возвращал некорректный ответ; ошибка
появилась в 1.19.1.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если размеры large_client_header_buffers отличались в разных
виртуальных серверах.
*) Исправление: SSL shutdown мог не работать.
*) Исправление: в логах могли появляться сообщения "SSL_shutdown()
failed (SSL: ... bad write retry)".
*) Исправление: в модуле ngx_http_slice_module.
*) Исправление: в модуле ngx_http_xslt_filter_module.
Изменения в nginx 1.19.1 07.07.2020
*) Изменение: директивы lingering_close, lingering_time и
lingering_timeout теперь работают при использовании HTTP/2.
*) Изменение: теперь лишние данные, присланные бэкендом, всегда
отбрасываются.
*) Изменение: теперь при получении слишком короткого ответа от
FastCGI-сервера nginx пытается отправить клиенту доступную часть
ответа, после чего закрывает соединение с клиентом.
*) Изменение: теперь при получении ответа некорректной длины от
gRPC-бэкенда nginx прекращает обработку ответа с ошибкой.
*) Добавление: параметр min_free в директивах proxy_cache_path,
fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path.
Спасибо Adam Bambuch.
*) Исправление: nginx не удалял unix domain listen-сокеты при плавном
завершении по сигналу SIGQUIT.
*) Исправление: UDP-пакеты нулевого размера не проксировались.
*) Исправление: проксирование на uwsgi-бэкенды с использованием SSL
могло не работать.
Спасибо Guanzhong Chen.
*) Исправление: в обработке ошибок при использовании директивы ssl_ocsp.
*) Исправление: при использовании файловых систем XFS и NFS размер кэша
на диске мог считаться некорректно.
*) Исправление: если сервер memcached возвращал некорректный ответ, в
логах могли появляться сообщения "negative size buf in writer".
Изменения в nginx 1.19.0 26.05.2020
*) Добавление: проверка клиентских сертификатов с помощью OCSP.
*) Исправление: при работе с gRPC-бэкендами могли возникать ошибки
"upstream sent frame for closed stream".
*) Исправление: OCSP stapling мог не работать, если не была указана
директива resolver.
*) Исправление: соединения с некорректным HTTP/2 preface не
логгировались.
Изменения в nginx 1.17.10 14.04.2020
*) Добавление: директива auth_delay.
Изменения в nginx 1.17.9 03.03.2020
*) Изменение: теперь nginx не разрешает несколько строк "Host" в
заголовке запроса.
*) Исправление: nginx игнорировал дополнительные строки
"Transfer-Encoding" в заголовке запроса.
*) Исправление: утечки сокетов при использовании HTTP/2.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался OCSP stapling.
*) Исправление: в модуле ngx_http_mp4_module.
*) Исправление: при перенаправлении ошибок с кодом 494 с помощью
директивы error_page nginx возвращал ответ с кодом 494 вместо 400.
*) Исправление: утечки сокетов при использовании подзапросов в модуле
njs и директивы aio.
Изменения в nginx 1.17.8 21.01.2020
*) Добавление: директива grpc_pass поддерживает переменные.
*) Исправление: при обработке pipelined-запросов по SSL-соединению мог
произойти таймаут; ошибка появилась в 1.17.5.
*) Исправление: в директиве debug_points при использовании HTTP/2.
Спасибо Даниилу Бондареву.
Изменения в nginx 1.17.7 24.12.2019
*) Исправление: на старте или во время переконфигурации мог произойти
segmentation fault, если в конфигурации использовалась директива
rewrite с пустой строкой замены.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если директива break использовалась совместно с директивой alias или
директивой proxy_pass с URI.
*) Исправление: строка Location заголовка ответа могла содержать мусор,
если URI запроса был изменён на URI, содержащий нулевой символ.
*) Исправление: при возврате перенаправлений с помощью директивы
error_page запросы с телом обрабатывались некорректно; ошибка
появилась в 0.7.12.
*) Исправление: утечки сокетов при использовании HTTP/2.
*) Исправление: при обработке pipelined-запросов по SSL-соединению мог
произойти таймаут; ошибка появилась в 1.17.5.
*) Исправление: в модуле ngx_http_dav_module.
Изменения в nginx 1.17.6 19.11.2019
*) Добавление: переменные $proxy_protocol_server_addr и
$proxy_protocol_server_port.
*) Добавление: директива limit_conn_dry_run.
*) Добавление: переменные $limit_req_status и $limit_conn_status.
Изменения в nginx 1.17.5 22.10.2019
*) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он
доступен, чтобы избежать чтения из быстрого соединения в течение
долгого времени.
*) Исправление: неполные закодированные символы в конце URI запроса
игнорировались.
*) Исправление: "/." и "/.." в конце URI запроса не нормализовывались.
*) Исправление: в директиве merge_slashes.
*) Исправление: в директиве ignore_invalid_headers.
Спасибо Alan Kemp.
*) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее.
Изменения в nginx 1.17.4 24.09.2019
*) Изменение: улучшено детектирование некорректного поведения клиентов в
HTTP/2.
*) Изменение: в обработке непрочитанного тела запроса при возврате
ошибок в HTTP/2.
*) Исправление: директива worker_shutdown_timeout могла не работать при
использовании HTTP/2.
*) Исправление: при использовании HTTP/2 и директивы
proxy_request_buffering в рабочем процессе мог произойти segmentation
fault.
*) Исправление: на Windows при использовании SSL уровень записи в лог
ошибки ECONNABORTED был "crit" вместо "error".
*) Исправление: nginx игнорировал лишние данные при использовании
chunked transfer encoding.
*) Исправление: если использовалась директива return и при чтении тела
запроса возникала ошибка, nginx всегда возвращал ошибку 500.
*) Исправление: в обработке ошибок выделения памяти.
Изменения в nginx 1.17.3 13.08.2019
*) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
потребление памяти и ресурсов процессора (CVE-2019-9511,
CVE-2019-9513, CVE-2019-9516).
*) Исправление: при использовании сжатия в логах могли появляться
сообщения "zero size buf"; ошибка появилась в 1.17.2.
*) Исправление: при использовании директивы resolver в SMTP
прокси-сервере в рабочем процессе мог произойти segmentation fault.
Изменения в nginx 1.17.2 23.07.2019
*) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4.
Спасибо Илье Леошкевичу.
*) Изменение: метод $r->internal_redirect() встроенного перла теперь
ожидает закодированный URI.
*) Добавление: теперь с помощью метода $r->internal_redirect()
встроенного перла можно перейти в именованный location.
*) Исправление: в обработке ошибок во встроенном перле.
*) Исправление: на старте или во время переконфигурации мог произойти
segmentation fault, если в конфигурации использовалось значение hash
bucket size больше 64 килобайт.
*) Исправление: при использовании методов обработки соединений select,
poll и /dev/poll nginx мог нагружать процессор во время
небуферизованного проксирования и при проксировании
WebSocket-соединений.
*) Исправление: в модуле ngx_http_xslt_filter_module.
*) Исправление: в модуле ngx_http_ssi_filter_module.
Изменения в nginx 1.17.1 25.06.2019
*) Добавление: директива limit_req_dry_run.
*) Добавление: при использовании директивы hash в блоке upstream пустой
ключ хэширования теперь приводит к переключению на round-robin
балансировку.
Спасибо Niklas Keller.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалось кэширование и директива image_filter, а ошибки с
кодом 415 перенаправлялись с помощью директивы error_page; ошибка
появилась в 1.11.10.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался встроенный перл; ошибка появилась в 1.7.3.
Изменения в nginx 1.17.0 21.05.2019
*) Добавление: директивы limit_rate и limit_rate_after поддерживают
переменные.
*) Добавление: директивы proxy_upload_rate и proxy_download_rate в
модуле stream поддерживают переменные.
*) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8.
*) Изменение: теперь postpone-фильтр собирается всегда.
*) Исправление: директива include не работала в блоках if и
limit_except.
*) Исправление: в обработке byte ranges.
Изменения в nginx 1.15.12 16.04.2019
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если в директивах ssl_certificate или ssl_certificate_key
использовались переменные и был включён OCSP stapling.
Изменения в nginx 1.15.11 09.04.2019
*) Исправление: в директиве ssl_stapling_file на Windows.
Изменения в nginx 1.15.10 26.03.2019
*) Изменение: теперь при использовании имени хоста в директиве listen
nginx создаёт listen-сокеты для всех адресов, соответствующих этому
имени (ранее использовался только первый адрес).
*) Добавление: диапазоны портов в директиве listen.
*) Добавление: возможность загрузки SSL-сертификатов и секретных ключей
из переменных.
*) Изменение: переменная $ssl_server_name могла быть пустой при
использовании OpenSSL 1.1.1.
*) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее;
ошибка появилась в 1.15.9.
Изменения в nginx 1.15.9 26.02.2019
*) Добавление: директивы ssl_certificate и ssl_certificate_key
поддерживают переменные.
*) Добавление: метод poll теперь доступен на Windows при использовании
Windows Vista и новее.
*) Исправление: если при использовании метода select на Windows
происходила ошибка при установлении соединения с бэкендом, nginx
ожидал истечения таймаута на установление соединения.
*) Исправление: директивы proxy_upload_rate и proxy_download_rate в
модуле stream работали некорректно при проксировании UDP-пакетов.
Изменения в nginx 1.15.8 25.12.2018
*) Добавление: переменная $upstream_bytes_sent.
Спасибо Piotr Sikora.
*) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
Спасибо Геннадию Махомеду.
*) Исправление: в директиве proxy_cache_background_update.
*) Исправление: в директиве geo при использовании unix domain
listen-сокетов.
*) Изменение: при использовании директивы ssl_early_data с OpenSSL в
логах могли появляться сообщения "ignoring stale global SSL error ...
bad length".
*) Исправление: в nginx/Windows.
*) Исправление: в модуле ngx_http_autoindex_module на 32-битных
платформах.
Изменения в nginx 1.15.7 27.11.2018
*) Добавление: директива proxy_requests в модуле stream.
*) Добавление: параметр "delay" директивы "limit_req".
Спасибо Владиславу Шабанову и Петру Щучкину.
*) Исправление: утечки памяти в случае ошибок при переконфигурации.
*) Исправление: в переменных $upstream_response_time,
$upstream_connect_time и $upstream_header_time.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовался модуль ngx_http_mp4_module на 32-битных
платформах.
Изменения в nginx 1.15.6 06.11.2018
*) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное
потреблению памяти (CVE-2018-16843) и ресурсов процессора
(CVE-2018-16844).
*) Безопасность: при обработке специально созданного mp4-файла модулем
ngx_http_mp4_module содержимое памяти рабочего процесса могло быть
отправлено клиенту (CVE-2018-16845).
*) Добавление: директивы proxy_socket_keepalive,
fastcgi_socket_keepalive, grpc_socket_keepalive,
memcached_socket_keepalive, scgi_socket_keepalive и
uwsgi_socket_keepalive.
*) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с
OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён.
*) Исправление: при работе с gRPC-бэкендами могло расходоваться большое
количество памяти.
Изменения в nginx 1.15.5 02.10.2018
*) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем
процессе мог произойти segmentation fault; ошибка появилась в 1.15.4.
*) Исправление: незначительных потенциальных ошибок.
Изменения в nginx 1.15.4 25.09.2018
*) Добавление: теперь директиву ssl_early_data можно использовать с
OpenSSL.
*) Исправление: в модуле ngx_http_uwsgi_module.
Спасибо Chris Caputo.
*) Исправление: соединения к некоторым gRPC-бэкендам могли не
кэшироваться при использовании директивы keepalive.
*) Исправление: при использовании директивы error_page для
перенаправления ошибок, возникающих на ранних этапах обработки
запроса, в частности ошибок с кодом 400, могла происходить утечка
сокетов.
*) Исправление: директива return при возврате ошибок не изменяла код
ответа, если запрос был перенаправлен с помощью директивы error_page.
*) Исправление: стандартные сообщения об ошибках и ответы модуля
ngx_http_autoindex_module содержали атрибут bgcolor, что могло
приводить к их некорректному отображению при использовании
пользовательских настроек цветов в браузерах.
Спасибо Nova DasSarma.
*) Изменение: уровень логгирования ошибок SSL "no suitable key share" и
"no suitable signature algorithm" понижен с уровня crit до info.
Изменения в nginx 1.15.3 28.08.2018
*) Добавление: теперь TLSv1.3 можно использовать с BoringSSL.
*) Добавление: директива ssl_early_data, сейчас доступна при
использовании BoringSSL.
*) Добавление: директивы keepalive_timeout и keepalive_requests в блоке
upstream.
*) Исправление: модуль ngx_http_dav_module при копировании файла поверх
существующего файла с помощью метода COPY не обнулял целевой файл.
*) Исправление: модуль ngx_http_dav_module при перемещении файла между
файловыми системами с помощью метода MOVE устанавливал нулевые права
доступа на результирующий файл и не сохранял время изменения файла.
*) Исправление: модуль ngx_http_dav_module при копировании файла с
помощью метода COPY для результирующего файла использовал права
доступа по умолчанию.
*) Изменение: некоторые клиенты могли не работать при использовании
HTTP/2; ошибка появилась в 1.13.5.
*) Исправление: nginx не собирался с LibreSSL 2.8.0.
Изменения в nginx 1.15.2 24.07.2018
*) Добавление: переменная $ssl_preread_protocol в модуле
ngx_stream_ssl_preread_module.
*) Добавление: теперь при использовании директивы
reset_timedout_connection nginx сбрасывает соединения, закрываемые с
кодом 444.
*) Изменение: уровень логгирования ошибок SSL "http request", "https
proxy request", "unsupported protocol" и "version too low" понижен с
уровня crit до info.
*) Исправление: запросы к DNS-серверу не отправлялись повторно, если при
первой попытке отправки происходила ошибка.
*) Исправление: параметр reuseport директивы listen игнорировался, если
количество рабочих процессов было задано после директивы listen.
*) Исправление: при использовании OpenSSL 1.1.0 и новее директиву
ssl_prefer_server_ciphers нельзя было выключить в виртуальном
сервере, если она была включена в сервере по умолчанию.
*) Исправление: повторное использование SSL-сессий к бэкендам не
работало с протоколом TLS 1.3.
Изменения в nginx 1.15.1 03.07.2018
*) Добавление: директива random в блоке upstream.
*) Добавление: улучшена производительность при использовании директив
hash и ip_hash совместно с директивой zone.
*) Добавление: параметр reuseport директивы listen теперь использует
SO_REUSEPORT_LB на FreeBSD 12.
*) Исправление: HTTP/2 server push не работал, если SSL терминировался
прокси-сервером перед nginx'ом.
*) Исправление: директива tcp_nopush всегда использовалась для
соединений к бэкендам.
*) Исправление: при отправке сохранённого на диск тела запроса на
gRPC-бэкенд могли возникать ошибки.
Изменения в nginx 1.15.0 05.06.2018
*) Изменение: директива "ssl" теперь считается устаревшей; вместо неё
следует использовать параметр ssl директивы listen.
*) Изменение: теперь при использовании директивы listen с параметром ssl
nginx определяет отсутствие SSL-сертификатов при тестировании
конфигурации.
*) Добавление: теперь модуль stream умеет обрабатывать несколько
входящих UDP-пакетов от клиента в рамках одной сессии.
*) Исправление: в директиве proxy_cache_valid можно было указать
некорректный код ответа.
*) Исправление: nginx не собирался gcc 8.1.
*) Исправление: логгирование в syslog останавливалось при изменении
локального IP-адреса.
*) Исправление: nginx не собирался компилятором clang, если был
установлен CUDA SDK; ошибка появилась в 1.13.8.
*) Исправление: при использовании unix domain listen-сокетов на FreeBSD
в процессе обновления исполняемого файла в логе могли появляться
сообщения "getsockopt(TCP_FASTOPEN) ... failed".
*) Исправление: nginx не собирался на Fedora 28 Linux.
*) Исправление: при использовании директивы limit_req заданная скорость
обработки запросов могла не соблюдаться.
*) Исправление: в обработке адресов клиентов при использовании unix
domain listen-сокетов для работы с датаграммами на Linux.
*) Исправление: в обработке ошибок выделения памяти.
Изменения в nginx 1.13.12 10.04.2018
*) Исправление: при возврате большого ответа соединения с gRPC-бэкендами
могли неожиданно закрываться.
Изменения в nginx 1.13.11 03.04.2018
*) Добавление: параметр proxy_protocol директивы listen теперь
поддерживает протокол PROXY версии 2.
*) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux.
*) Исправление: в параметрах http_404, http_500 и им подобных директивы
proxy_next_upstream.
Изменения в nginx 1.13.10 20.03.2018
*) Добавление: теперь параметр set в SSI-директиве include позволяет
сохранять в переменную любые ответы; максимальный размер ответа
задаётся директивой subrequest_output_buffer_size.
*) Добавление: теперь nginx использует вызов
clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет
избежать некорректного срабатывания таймаутов при изменениях
системного времени.
*) Добавление: параметр "escape=none" директивы log_format.
Спасибо Johannes Baiter и Calin Don.
*) Добавление: переменная $ssl_preread_alpn_protocols в модуле
ngx_stream_ssl_preread_module.
*) Добавление: модуль ngx_http_grpc_module.
*) Исправление: в обработке ошибок выделения памяти в директиве geo.
*) Исправление: при использовании переменных в директиве
auth_basic_user_file в лог мог выводиться символ '\0'.
Спасибо Вадиму Филимонову.
Изменения в nginx 1.13.9 20.02.2018
*) Добавление: поддержка HTTP/2 server push; директивы http2_push и
http2_push_preload.
*) Исправление: при использовании кэша в логах могли появляться
сообщения "header already sent"; ошибка появилась в 1.9.13.
*) Исправление: при использовании директивы ssl_verify_client в рабочем
процессе мог произойти segmentation fault, если в виртуальном сервере
не был указан SSL-сертификат.
*) Исправление: в модуле ngx_http_v2_module.
*) Исправление: в модуле ngx_http_dav_module.
Изменения в nginx 1.13.8 26.12.2017
*) Добавление: теперь при использовании параметра transparent директив
proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
nginx автоматически сохраняет capability CAP_NET_RAW в рабочих
процессах.
*) Добавление: улучшения в определении размера строки кэша процессора.
Спасибо Debayan Ghosh.
*) Добавление: новые директивы в скриптах подсветки синтаксиса для vim.
Спасибо Геннадию Махомеду.
*) Исправление: процедура обновления исполняемого файла не работала,
если после завершения родительского процесса новым родительским
процессом nginx'а становился процесс с PID, отличным от 1.
*) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал
запросы с телом.
*) Исправление: в директиве proxy_limit_rate при использовании с
директивой keepalive.
*) Исправление: при использовании "proxy_buffering off" часть ответа
могла буферизироваться, если клиентское соединение использовало SSL.
Спасибо Patryk Lesiewicz.
*) Исправление: в директиве proxy_cache_background_update.
*) Исправление: переменную вида "${name}" с именем в фигурных скобках
нельзя было использовать в начале параметра не заключив весь параметр
в кавычки.
Изменения в nginx 1.13.7 21.11.2017
*) Исправление: в переменной $upstream_status.
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
*) Исправление: если при переконфигурации изменялся размер зоны
разделяемой памяти и переконфигурация завершалась неудачно, то в
главном процессе происходил segmentation fault.
*) Исправление: в модуле ngx_http_fastcgi_module.
*) Исправление: nginx возвращал ошибку 500, если в директиве
xslt_stylesheet были заданы параметры без использования переменных.
*) Изменение: при использовании варианта библиотеки zlib от Intel в лог
писались сообщения "gzip filter failed to use preallocated memory".
*) Исправление: директива worker_shutdown_timeout не работала при
использовании почтового прокси-сервера и при проксировании
WebSocket-соединений.
Изменения в nginx 1.13.6 10.10.2017
*) Исправление: при использовании директивы ssl_preread в модуле stream
не работало переключение на следующий бэкенд.
*) Исправление: в модуле ngx_http_v2_module.
Спасибо Piotr Sikora.
*) Исправление: nginx не поддерживал даты после 2038 года на 32-битных
платформах с 64-битным time_t.
*) Исправление: в обработке дат до 1970 года и после 10000 года.
*) Исправление: в модуле stream таймауты ожидания UDP-пакетов от
бэкендов не логгировались или логгировались на уровне info вместо
error.
*) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400,
не указав в логе причину.
*) Исправление: в обработке повреждённых файлов кэша.
*) Исправление: при кэшировании ошибок, перехваченных error_page, не
учитывались заголовки управления кэшированием.
*) Исправление: при использовании HTTP/2 тело запроса могло быть
повреждено.
*) Исправление: в обработке адресов клиентов при использовании unix
domain сокетов.
*) Исправление: при использовании директивы "hash ... consistent" в
блоке upstream nginx нагружал процессор, если использовались большие
веса и все или почти все бэкенды были недоступны.
Изменения в nginx 1.13.5 05.09.2017
*) Добавление: переменная $ssl_client_escaped_cert.
*) Исправление: директива ssl_session_ticket_key и параметр include
директивы geo не работали на Windows.
*) Исправление: на 32-битных платформах при запросе более 4 гигабайт с
помощью нескольких диапазонов возвращалась некорректная длина ответа.
*) Исправление: директива "expires modified" и обработка строки If-Range
заголовка запроса не учитывали время последнего изменения ответа,
если использовалось проксирование без кэширования.
Изменения в nginx 1.13.4 08.08.2017
*) Добавление: модуль ngx_http_mirror_module.
*) Исправление: клиентские соединения могли сбрасываться при
тестировании конфигурации, если использовался параметр reuseport
директивы listen на Linux.
*) Исправление: тело запроса могло быть недоступно в подзапросах, если
оно было сохранено в файл и использовалось проксирование.
*) Исправление: очистка кэша по max_size не работала на Windows.
*) Исправление: любое выделение разделяемой памяти на Windows требовало
4096 байт памяти.
*) Исправление: при использовании директивы zone в блоке upstream на
Windows рабочий процесс мог завершаться аварийно.
Изменения в nginx 1.13.3 11.07.2017
*) Безопасность: специально созданный запрос мог вызвать целочисленное
переполнение в range-фильтре и последующую некорректную обработку
запрошенных диапазонов, что потенциально могло привести к утечке
конфиденциальной информации (CVE-2017-7529).
Изменения в nginx 1.13.2 27.06.2017
*) Изменение: теперь при запросе диапазона, начинающегося с 0, из
пустого файла nginx возвращает ответ 200 вместо 416.
*) Добавление: директива add_trailer.
Спасибо Piotr Sikora.
*) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась
в 1.13.0.
*) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit.
Спасибо Orgad Shaneh.
*) Исправление: при использовании SSI с большим количеством подзапросов
и proxy_pass с переменными в рабочем процессе мог произойти
segmentation fault.
*) Исправление: в модуле ngx_http_v2_module.
Спасибо Piotr Sikora.
Изменения в nginx 1.13.1 30.05.2017
*) Добавление: теперь в качестве параметра директивы set_real_ip_from
можно указывать имя хоста.
*) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
*) Добавление: директива worker_cpu_affinity теперь работает на
DragonFly BSD.
Спасибо Sepherosa Ziehau.
*) Исправление: SSL renegotiation в соединениях к бэкендам не работал
при использовании OpenSSL до 1.1.0.
*) Изменение: nginx не собирался с Oracle Developer Studio 12.5.
*) Изменение: теперь cache manager пропускает заблокированные записи при
очистке кэша по max_size.
*) Исправление: клиентские SSL-соединения сразу закрывались, если
использовался отложенный accept и параметр proxy_protocol директивы
listen.
*) Исправление: в директиве proxy_cache_background_update.
*) Изменение: теперь директива tcp_nodelay устанавливает опцию
TCP_NODELAY перед SSL handshake.
Изменения в nginx 1.13.0 25.04.2017
*) Изменение: теперь SSL renegotiation допускается в соединениях к
бэкендам.
*) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом
прокси-сервере и модуле stream.
*) Добавление: директивы return и error_page теперь могут использоваться
для возврата перенаправлений с кодом 308.
Спасибо Simon Leblanc.
*) Добавление: параметр TLSv1.3 в директиве ssl_protocols.
*) Добавление: при логгировании сигналов теперь указывается PID
отправившего сигнал процесса.
*) Исправление: в обработке ошибок выделения памяти.
*) Исправление: если сервер в модуле stream слушал на wildcard-адресе,
исходящий адрес ответного UDP-пакета мог отличаться от адреса
назначения исходного пакета.
Изменения в nginx 1.11.13 04.04.2017
*) Добавление: параметр http_429 в директивах proxy_next_upstream,
fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream.
Спасибо Piotr Sikora.
*) Исправление: в обработке ошибок выделения памяти.
*) Исправление: при использовании директив sendfile и timer_resolution
на Linux запросы могли зависать.
*) Исправление: при использовании с подзапросами директив sendfile и
aio_write запросы могли зависать.
*) Исправление: в модуле ngx_http_v2_module.
Спасибо Piotr Sikora.
*) Исправление: при использовании HTTP/2 в рабочем процессе мог
произойти segmentation fault.
*) Исправление: запросы могли зависать при использовании с подзапросами
директив limit_rate, sendfile_max_chunk, limit_req или метода
$r->sleep() встроенного перла.
*) Исправление: в модуле ngx_http_slice_module.
Изменения в nginx 1.11.12 24.03.2017
*) Исправление: nginx мог нагружать процессор; ошибка появилась в
1.11.11.
Изменения в nginx 1.11.11 21.03.2017
*) Добавление: директива worker_shutdown_timeout.
*) Добавление: улучшения в скриптах подсветки синтаксиса для vim.
Спасибо Wei-Ko Kao.
*) Исправление: при попытке установить переменную $limit_rate в пустую
строку в рабочем процессе мог произойти segmentation fault.