1 2Изменения в nginx 1.20.0 20.04.2021 3 4 *) Стабильная ветка 1.20.x. 5 6 7Изменения в nginx 1.19.10 13.04.2021 8 9 *) Изменение: в директиве keepalive_requests значение по умолчанию 10 изменено на 1000. 11 12 *) Добавление: директива keepalive_time. 13 14 *) Добавление: переменная $connection_time. 15 16 *) Изменение: при использовании zlib-ng в логах появлялись сообщения 17 "gzip filter failed to use preallocated memory". 18 19 20Изменения в nginx 1.19.9 30.03.2021 21 22 *) Исправление: nginx не собирался с почтовым прокси-сервером, но без 23 модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8. 24 25 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки 26 "upstream sent response body larger than indicated content length"; 27 ошибка появилась в 1.19.1. 28 29 *) Исправление: если клиент закрывал соединение в момент отбрасывания 30 тела запроса, nginx мог не закрыть соединение до истечения 31 keepalive-таймаута. 32 33 *) Исправление: при ожидании задержки limit_req или auth_delay, а также 34 при работе с бэкендами nginx мог не обнаружить, что соединение уже 35 закрыто клиентом. 36 37 *) Исправление: в методе обработки соединений eventport. 38 39 40Изменения в nginx 1.19.8 09.03.2021 41 42 *) Добавление: в директиве proxy_cookie_flags теперь флаги можно 43 задавать с помощью переменных. 44 45 *) Добавление: параметр proxy_protocol в директиве listen, директивы 46 proxy_protocol и set_real_ip_from в почтовом прокси-сервере. 47 48 *) Исправление: HTTP/2-соединения сразу закрывались при использовании 49 "keepalive_timeout 0"; ошибка появилась в 1.19.7. 50 51 *) Исправление: некоторые ошибки логгировались как неизвестные, если 52 nginx был собран с glibc 2.32. 53 54 *) Исправление: в методе обработки соединений eventport. 55 56 57Изменения в nginx 1.19.7 16.02.2021 58 59 *) Изменение: обработка соединений в HTTP/2 была изменена и теперь более 60 соответствует HTTP/1.x; директивы http2_recv_timeout, 61 http2_idle_timeout и http2_max_requests упразднены, вместо них 62 следует использовать директивы keepalive_timeout и 63 keepalive_requests. 64 65 *) Изменение: директивы http2_max_field_size и http2_max_header_size 66 упразднены, вместо них следует использовать директиву 67 large_client_header_buffers. 68 69 *) Добавление: теперь при исчерпании свободных соединений nginx 70 закрывает не только keepalive-соединения, но и соединения в lingering 71 close. 72 73 *) Исправление: в логах могли появляться сообщения "zero size buf in 74 output", если бэкенд возвращал некорректный ответ при 75 небуферизированном проксировании; ошибка появилась в 1.19.1. 76 77 *) Исправление: при использовании директивы return вместе с image_filter 78 или xslt_stylesheet HEAD-запросы обрабатывались некорректно. 79 80 *) Исправление: в директиве add_trailer. 81 82 83Изменения в nginx 1.19.6 15.12.2020 84 85 *) Исправление: ошибки "no live upstreams", если server в блоке upstream 86 был помечен как down. 87 88 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти 89 segmentation fault; ошибка появилась в 1.19.5. 90 91 *) Исправление: nginx возвращал ошибку 400 на запросы вида 92 "GET http://example.com?args HTTP/1.0". 93 94 *) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module. 95 Спасибо Chris Newton. 96 97 98Изменения в nginx 1.19.5 24.11.2020 99 100 *) Добавление: ключ -e. 101 102 *) Добавление: при сборке дополнительных модулей теперь можно указывать 103 одни и те же исходные файлы в разных модулях. 104 105 *) Исправление: SSL shutdown не работал при закрытии соединений с 106 ожиданием дополнительных данных (lingering close). 107 108 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки 109 "upstream sent frame for closed stream". 110 111 *) Исправление: во внутреннем API для обработки тела запроса. 112 113 114Изменения в nginx 1.19.4 27.10.2020 115 116 *) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command, 117 grpc_ssl_conf_command и uwsgi_ssl_conf_command. 118 119 *) Добавление: директива ssl_reject_handshake. 120 121 *) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере. 122 123 124Изменения в nginx 1.19.3 29.09.2020 125 126 *) Добавление: модуль ngx_stream_set_module. 127 128 *) Добавление: директива proxy_cookie_flags. 129 130 *) Добавление: директива userid_flags. 131 132 *) Исправление: расширение управления кэшированием stale-if-error 133 ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502, 134 503, 504, 403, 404 или 429. 135 136 *) Исправление: если использовалось кэширование и бэкенд возвращал 137 ответы с строкой заголовка Vary, в логах могли появляться сообщения 138 "[crit] cache file ... has too long header". 139 140 *) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться 141 сообщения "[crit] SSL_write() failed". 142 143 *) Исправление: в логах могли появляться сообщения "SSL_shutdown() 144 failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2. 145 146 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 147 произойти segmentation fault, если ошибки с кодом 400 с помощью 148 директивы error_page перенаправлялись в проксируемый location. 149 150 *) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в 151 модуле njs. 152 153 154Изменения в nginx 1.19.2 11.08.2020 155 156 *) Изменение: теперь nginx начинает закрывать keepalive-соединения, не 157 дожидаясь исчерпания всех свободных соединений, а также пишет об этом 158 предупреждение в лог ошибок. 159 160 *) Изменение: оптимизация чтения тела запроса при использовании chunked 161 transfer encoding. 162 163 *) Исправление: утечки памяти при использовании директивы ssl_ocsp. 164 165 *) Исправление: в логах могли появляться сообщения "zero size buf in 166 output", если FastCGI-сервер возвращал некорректный ответ; ошибка 167 появилась в 1.19.1. 168 169 *) Исправление: в рабочем процессе мог произойти segmentation fault, 170 если размеры large_client_header_buffers отличались в разных 171 виртуальных серверах. 172 173 *) Исправление: SSL shutdown мог не работать. 174 175 *) Исправление: в логах могли появляться сообщения "SSL_shutdown() 176 failed (SSL: ... bad write retry)". 177 178 *) Исправление: в модуле ngx_http_slice_module. 179 180 *) Исправление: в модуле ngx_http_xslt_filter_module. 181 182 183Изменения в nginx 1.19.1 07.07.2020 184 185 *) Изменение: директивы lingering_close, lingering_time и 186 lingering_timeout теперь работают при использовании HTTP/2. 187 188 *) Изменение: теперь лишние данные, присланные бэкендом, всегда 189 отбрасываются. 190 191 *) Изменение: теперь при получении слишком короткого ответа от 192 FastCGI-сервера nginx пытается отправить клиенту доступную часть 193 ответа, после чего закрывает соединение с клиентом. 194 195 *) Изменение: теперь при получении ответа некорректной длины от 196 gRPC-бэкенда nginx прекращает обработку ответа с ошибкой. 197 198 *) Добавление: параметр min_free в директивах proxy_cache_path, 199 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path. 200 Спасибо Adam Bambuch. 201 202 *) Исправление: nginx не удалял unix domain listen-сокеты при плавном 203 завершении по сигналу SIGQUIT. 204 205 *) Исправление: UDP-пакеты нулевого размера не проксировались. 206 207 *) Исправление: проксирование на uwsgi-бэкенды с использованием SSL 208 могло не работать. 209 Спасибо Guanzhong Chen. 210 211 *) Исправление: в обработке ошибок при использовании директивы ssl_ocsp. 212 213 *) Исправление: при использовании файловых систем XFS и NFS размер кэша 214 на диске мог считаться некорректно. 215 216 *) Исправление: если сервер memcached возвращал некорректный ответ, в 217 логах могли появляться сообщения "negative size buf in writer". 218 219 220Изменения в nginx 1.19.0 26.05.2020 221 222 *) Добавление: проверка клиентских сертификатов с помощью OCSP. 223 224 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки 225 "upstream sent frame for closed stream". 226 227 *) Исправление: OCSP stapling мог не работать, если не была указана 228 директива resolver. 229 230 *) Исправление: соединения с некорректным HTTP/2 preface не 231 логгировались. 232 233 234Изменения в nginx 1.17.10 14.04.2020 235 236 *) Добавление: директива auth_delay. 237 238 239Изменения в nginx 1.17.9 03.03.2020 240 241 *) Изменение: теперь nginx не разрешает несколько строк "Host" в 242 заголовке запроса. 243 244 *) Исправление: nginx игнорировал дополнительные строки 245 "Transfer-Encoding" в заголовке запроса. 246 247 *) Исправление: утечки сокетов при использовании HTTP/2. 248 249 *) Исправление: в рабочем процессе мог произойти segmentation fault, 250 если использовался OCSP stapling. 251 252 *) Исправление: в модуле ngx_http_mp4_module. 253 254 *) Исправление: при перенаправлении ошибок с кодом 494 с помощью 255 директивы error_page nginx возвращал ответ с кодом 494 вместо 400. 256 257 *) Исправление: утечки сокетов при использовании подзапросов в модуле 258 njs и директивы aio. 259 260 261Изменения в nginx 1.17.8 21.01.2020 262 263 *) Добавление: директива grpc_pass поддерживает переменные. 264 265 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог 266 произойти таймаут; ошибка появилась в 1.17.5. 267 268 *) Исправление: в директиве debug_points при использовании HTTP/2. 269 Спасибо Даниилу Бондареву. 270 271 272Изменения в nginx 1.17.7 24.12.2019 273 274 *) Исправление: на старте или во время переконфигурации мог произойти 275 segmentation fault, если в конфигурации использовалась директива 276 rewrite с пустой строкой замены. 277 278 *) Исправление: в рабочем процессе мог произойти segmentation fault, 279 если директива break использовалась совместно с директивой alias или 280 директивой proxy_pass с URI. 281 282 *) Исправление: строка Location заголовка ответа могла содержать мусор, 283 если URI запроса был изменён на URI, содержащий нулевой символ. 284 285 *) Исправление: при возврате перенаправлений с помощью директивы 286 error_page запросы с телом обрабатывались некорректно; ошибка 287 появилась в 0.7.12. 288 289 *) Исправление: утечки сокетов при использовании HTTP/2. 290 291 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог 292 произойти таймаут; ошибка появилась в 1.17.5. 293 294 *) Исправление: в модуле ngx_http_dav_module. 295 296 297Изменения в nginx 1.17.6 19.11.2019 298 299 *) Добавление: переменные $proxy_protocol_server_addr и 300 $proxy_protocol_server_port. 301 302 *) Добавление: директива limit_conn_dry_run. 303 304 *) Добавление: переменные $limit_req_status и $limit_conn_status. 305 306 307Изменения в nginx 1.17.5 22.10.2019 308 309 *) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он 310 доступен, чтобы избежать чтения из быстрого соединения в течение 311 долгого времени. 312 313 *) Исправление: неполные закодированные символы в конце URI запроса 314 игнорировались. 315 316 *) Исправление: "/." и "/.." в конце URI запроса не нормализовывались. 317 318 *) Исправление: в директиве merge_slashes. 319 320 *) Исправление: в директиве ignore_invalid_headers. 321 Спасибо Alan Kemp. 322 323 *) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее. 324 325 326Изменения в nginx 1.17.4 24.09.2019 327 328 *) Изменение: улучшено детектирование некорректного поведения клиентов в 329 HTTP/2. 330 331 *) Изменение: в обработке непрочитанного тела запроса при возврате 332 ошибок в HTTP/2. 333 334 *) Исправление: директива worker_shutdown_timeout могла не работать при 335 использовании HTTP/2. 336 337 *) Исправление: при использовании HTTP/2 и директивы 338 proxy_request_buffering в рабочем процессе мог произойти segmentation 339 fault. 340 341 *) Исправление: на Windows при использовании SSL уровень записи в лог 342 ошибки ECONNABORTED был "crit" вместо "error". 343 344 *) Исправление: nginx игнорировал лишние данные при использовании 345 chunked transfer encoding. 346 347 *) Исправление: если использовалась директива return и при чтении тела 348 запроса возникала ошибка, nginx всегда возвращал ошибку 500. 349 350 *) Исправление: в обработке ошибок выделения памяти. 351 352 353Изменения в nginx 1.17.3 13.08.2019 354 355 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное 356 потребление памяти и ресурсов процессора (CVE-2019-9511, 357 CVE-2019-9513, CVE-2019-9516). 358 359 *) Исправление: при использовании сжатия в логах могли появляться 360 сообщения "zero size buf"; ошибка появилась в 1.17.2. 361 362 *) Исправление: при использовании директивы resolver в SMTP 363 прокси-сервере в рабочем процессе мог произойти segmentation fault. 364 365 366Изменения в nginx 1.17.2 23.07.2019 367 368 *) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4. 369 Спасибо Илье Леошкевичу. 370 371 *) Изменение: метод $r->internal_redirect() встроенного перла теперь 372 ожидает закодированный URI. 373 374 *) Добавление: теперь с помощью метода $r->internal_redirect() 375 встроенного перла можно перейти в именованный location. 376 377 *) Исправление: в обработке ошибок во встроенном перле. 378 379 *) Исправление: на старте или во время переконфигурации мог произойти 380 segmentation fault, если в конфигурации использовалось значение hash 381 bucket size больше 64 килобайт. 382 383 *) Исправление: при использовании методов обработки соединений select, 384 poll и /dev/poll nginx мог нагружать процессор во время 385 небуферизованного проксирования и при проксировании 386 WebSocket-соединений. 387 388 *) Исправление: в модуле ngx_http_xslt_filter_module. 389 390 *) Исправление: в модуле ngx_http_ssi_filter_module. 391 392 393Изменения в nginx 1.17.1 25.06.2019 394 395 *) Добавление: директива limit_req_dry_run. 396 397 *) Добавление: при использовании директивы hash в блоке upstream пустой 398 ключ хэширования теперь приводит к переключению на round-robin 399 балансировку. 400 Спасибо Niklas Keller. 401 402 *) Исправление: в рабочем процессе мог произойти segmentation fault, 403 если использовалось кэширование и директива image_filter, а ошибки с 404 кодом 415 перенаправлялись с помощью директивы error_page; ошибка 405 появилась в 1.11.10. 406 407 *) Исправление: в рабочем процессе мог произойти segmentation fault, 408 если использовался встроенный перл; ошибка появилась в 1.7.3. 409 410 411Изменения в nginx 1.17.0 21.05.2019 412 413 *) Добавление: директивы limit_rate и limit_rate_after поддерживают 414 переменные. 415 416 *) Добавление: директивы proxy_upload_rate и proxy_download_rate в 417 модуле stream поддерживают переменные. 418 419 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8. 420 421 *) Изменение: теперь postpone-фильтр собирается всегда. 422 423 *) Исправление: директива include не работала в блоках if и 424 limit_except. 425 426 *) Исправление: в обработке byte ranges. 427 428 429Изменения в nginx 1.15.12 16.04.2019 430 431 *) Исправление: в рабочем процессе мог произойти segmentation fault, 432 если в директивах ssl_certificate или ssl_certificate_key 433 использовались переменные и был включён OCSP stapling. 434 435 436Изменения в nginx 1.15.11 09.04.2019 437 438 *) Исправление: в директиве ssl_stapling_file на Windows. 439 440 441Изменения в nginx 1.15.10 26.03.2019 442 443 *) Изменение: теперь при использовании имени хоста в директиве listen 444 nginx создаёт listen-сокеты для всех адресов, соответствующих этому 445 имени (ранее использовался только первый адрес). 446 447 *) Добавление: диапазоны портов в директиве listen. 448 449 *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей 450 из переменных. 451 452 *) Изменение: переменная $ssl_server_name могла быть пустой при 453 использовании OpenSSL 1.1.1. 454 455 *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее; 456 ошибка появилась в 1.15.9. 457 458 459Изменения в nginx 1.15.9 26.02.2019 460 461 *) Добавление: директивы ssl_certificate и ssl_certificate_key 462 поддерживают переменные. 463 464 *) Добавление: метод poll теперь доступен на Windows при использовании 465 Windows Vista и новее. 466 467 *) Исправление: если при использовании метода select на Windows 468 происходила ошибка при установлении соединения с бэкендом, nginx 469 ожидал истечения таймаута на установление соединения. 470 471 *) Исправление: директивы proxy_upload_rate и proxy_download_rate в 472 модуле stream работали некорректно при проксировании UDP-пакетов. 473 474 475Изменения в nginx 1.15.8 25.12.2018 476 477 *) Добавление: переменная $upstream_bytes_sent. 478 Спасибо Piotr Sikora. 479 480 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim. 481 Спасибо Геннадию Махомеду. 482 483 *) Исправление: в директиве proxy_cache_background_update. 484 485 *) Исправление: в директиве geo при использовании unix domain 486 listen-сокетов. 487 488 *) Изменение: при использовании директивы ssl_early_data с OpenSSL в 489 логах могли появляться сообщения "ignoring stale global SSL error ... 490 bad length". 491 492 *) Исправление: в nginx/Windows. 493 494 *) Исправление: в модуле ngx_http_autoindex_module на 32-битных 495 платформах. 496 497 498Изменения в nginx 1.15.7 27.11.2018 499 500 *) Добавление: директива proxy_requests в модуле stream. 501 502 *) Добавление: параметр "delay" директивы "limit_req". 503 Спасибо Владиславу Шабанову и Петру Щучкину. 504 505 *) Исправление: утечки памяти в случае ошибок при переконфигурации. 506 507 *) Исправление: в переменных $upstream_response_time, 508 $upstream_connect_time и $upstream_header_time. 509 510 *) Исправление: в рабочем процессе мог произойти segmentation fault, 511 если использовался модуль ngx_http_mp4_module на 32-битных 512 платформах. 513 514 515Изменения в nginx 1.15.6 06.11.2018 516 517 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное 518 потреблению памяти (CVE-2018-16843) и ресурсов процессора 519 (CVE-2018-16844). 520 521 *) Безопасность: при обработке специально созданного mp4-файла модулем 522 ngx_http_mp4_module содержимое памяти рабочего процесса могло быть 523 отправлено клиенту (CVE-2018-16845). 524 525 *) Добавление: директивы proxy_socket_keepalive, 526 fastcgi_socket_keepalive, grpc_socket_keepalive, 527 memcached_socket_keepalive, scgi_socket_keepalive и 528 uwsgi_socket_keepalive. 529 530 *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с 531 OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён. 532 533 *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое 534 количество памяти. 535 536 537Изменения в nginx 1.15.5 02.10.2018 538 539 *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем 540 процессе мог произойти segmentation fault; ошибка появилась в 1.15.4. 541 542 *) Исправление: незначительных потенциальных ошибок. 543 544 545Изменения в nginx 1.15.4 25.09.2018 546 547 *) Добавление: теперь директиву ssl_early_data можно использовать с 548 OpenSSL. 549 550 *) Исправление: в модуле ngx_http_uwsgi_module. 551 Спасибо Chris Caputo. 552 553 *) Исправление: соединения к некоторым gRPC-бэкендам могли не 554 кэшироваться при использовании директивы keepalive. 555 556 *) Исправление: при использовании директивы error_page для 557 перенаправления ошибок, возникающих на ранних этапах обработки 558 запроса, в частности ошибок с кодом 400, могла происходить утечка 559 сокетов. 560 561 *) Исправление: директива return при возврате ошибок не изменяла код 562 ответа, если запрос был перенаправлен с помощью директивы error_page. 563 564 *) Исправление: стандартные сообщения об ошибках и ответы модуля 565 ngx_http_autoindex_module содержали атрибут bgcolor, что могло 566 приводить к их некорректному отображению при использовании 567 пользовательских настроек цветов в браузерах. 568 Спасибо Nova DasSarma. 569 570 *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и 571 "no suitable signature algorithm" понижен с уровня crit до info. 572 573 574Изменения в nginx 1.15.3 28.08.2018 575 576 *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL. 577 578 *) Добавление: директива ssl_early_data, сейчас доступна при 579 использовании BoringSSL. 580 581 *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке 582 upstream. 583 584 *) Исправление: модуль ngx_http_dav_module при копировании файла поверх 585 существующего файла с помощью метода COPY не обнулял целевой файл. 586 587 *) Исправление: модуль ngx_http_dav_module при перемещении файла между 588 файловыми системами с помощью метода MOVE устанавливал нулевые права 589 доступа на результирующий файл и не сохранял время изменения файла. 590 591 *) Исправление: модуль ngx_http_dav_module при копировании файла с 592 помощью метода COPY для результирующего файла использовал права 593 доступа по умолчанию. 594 595 *) Изменение: некоторые клиенты могли не работать при использовании 596 HTTP/2; ошибка появилась в 1.13.5. 597 598 *) Исправление: nginx не собирался с LibreSSL 2.8.0. 599 600 601Изменения в nginx 1.15.2 24.07.2018 602 603 *) Добавление: переменная $ssl_preread_protocol в модуле 604 ngx_stream_ssl_preread_module. 605 606 *) Добавление: теперь при использовании директивы 607 reset_timedout_connection nginx сбрасывает соединения, закрываемые с 608 кодом 444. 609 610 *) Изменение: уровень логгирования ошибок SSL "http request", "https 611 proxy request", "unsupported protocol" и "version too low" понижен с 612 уровня crit до info. 613 614 *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при 615 первой попытке отправки происходила ошибка. 616 617 *) Исправление: параметр reuseport директивы listen игнорировался, если 618 количество рабочих процессов было задано после директивы listen. 619 620 *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву 621 ssl_prefer_server_ciphers нельзя было выключить в виртуальном 622 сервере, если она была включена в сервере по умолчанию. 623 624 *) Исправление: повторное использование SSL-сессий к бэкендам не 625 работало с протоколом TLS 1.3. 626 627 628Изменения в nginx 1.15.1 03.07.2018 629 630 *) Добавление: директива random в блоке upstream. 631 632 *) Добавление: улучшена производительность при использовании директив 633 hash и ip_hash совместно с директивой zone. 634 635 *) Добавление: параметр reuseport директивы listen теперь использует 636 SO_REUSEPORT_LB на FreeBSD 12. 637 638 *) Исправление: HTTP/2 server push не работал, если SSL терминировался 639 прокси-сервером перед nginx'ом. 640 641 *) Исправление: директива tcp_nopush всегда использовалась для 642 соединений к бэкендам. 643 644 *) Исправление: при отправке сохранённого на диск тела запроса на 645 gRPC-бэкенд могли возникать ошибки. 646 647 648Изменения в nginx 1.15.0 05.06.2018 649 650 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё 651 следует использовать параметр ssl директивы listen. 652 653 *) Изменение: теперь при использовании директивы listen с параметром ssl 654 nginx определяет отсутствие SSL-сертификатов при тестировании 655 конфигурации. 656 657 *) Добавление: теперь модуль stream умеет обрабатывать несколько 658 входящих UDP-пакетов от клиента в рамках одной сессии. 659 660 *) Исправление: в директиве proxy_cache_valid можно было указать 661 некорректный код ответа. 662 663 *) Исправление: nginx не собирался gcc 8.1. 664 665 *) Исправление: логгирование в syslog останавливалось при изменении 666 локального IP-адреса. 667 668 *) Исправление: nginx не собирался компилятором clang, если был 669 установлен CUDA SDK; ошибка появилась в 1.13.8. 670 671 *) Исправление: при использовании unix domain listen-сокетов на FreeBSD 672 в процессе обновления исполняемого файла в логе могли появляться 673 сообщения "getsockopt(TCP_FASTOPEN) ... failed". 674 675 *) Исправление: nginx не собирался на Fedora 28 Linux. 676 677 *) Исправление: при использовании директивы limit_req заданная скорость 678 обработки запросов могла не соблюдаться. 679 680 *) Исправление: в обработке адресов клиентов при использовании unix 681 domain listen-сокетов для работы с датаграммами на Linux. 682 683 *) Исправление: в обработке ошибок выделения памяти. 684 685 686Изменения в nginx 1.13.12 10.04.2018 687 688 *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами 689 могли неожиданно закрываться. 690 691 692Изменения в nginx 1.13.11 03.04.2018 693 694 *) Добавление: параметр proxy_protocol директивы listen теперь 695 поддерживает протокол PROXY версии 2. 696 697 *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux. 698 699 *) Исправление: в параметрах http_404, http_500 и им подобных директивы 700 proxy_next_upstream. 701 702 703Изменения в nginx 1.13.10 20.03.2018 704 705 *) Добавление: теперь параметр set в SSI-директиве include позволяет 706 сохранять в переменную любые ответы; максимальный размер ответа 707 задаётся директивой subrequest_output_buffer_size. 708 709 *) Добавление: теперь nginx использует вызов 710 clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет 711 избежать некорректного срабатывания таймаутов при изменениях 712 системного времени. 713 714 *) Добавление: параметр "escape=none" директивы log_format. 715 Спасибо Johannes Baiter и Calin Don. 716 717 *) Добавление: переменная $ssl_preread_alpn_protocols в модуле 718 ngx_stream_ssl_preread_module. 719 720 *) Добавление: модуль ngx_http_grpc_module. 721 722 *) Исправление: в обработке ошибок выделения памяти в директиве geo. 723 724 *) Исправление: при использовании переменных в директиве 725 auth_basic_user_file в лог мог выводиться символ '\0'. 726 Спасибо Вадиму Филимонову. 727 728 729Изменения в nginx 1.13.9 20.02.2018 730 731 *) Добавление: поддержка HTTP/2 server push; директивы http2_push и 732 http2_push_preload. 733 734 *) Исправление: при использовании кэша в логах могли появляться 735 сообщения "header already sent"; ошибка появилась в 1.9.13. 736 737 *) Исправление: при использовании директивы ssl_verify_client в рабочем 738 процессе мог произойти segmentation fault, если в виртуальном сервере 739 не был указан SSL-сертификат. 740 741 *) Исправление: в модуле ngx_http_v2_module. 742 743 *) Исправление: в модуле ngx_http_dav_module. 744 745 746Изменения в nginx 1.13.8 26.12.2017 747 748 *) Добавление: теперь при использовании параметра transparent директив 749 proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind 750 nginx автоматически сохраняет capability CAP_NET_RAW в рабочих 751 процессах. 752 753 *) Добавление: улучшения в определении размера строки кэша процессора. 754 Спасибо Debayan Ghosh. 755 756 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim. 757 Спасибо Геннадию Махомеду. 758 759 *) Исправление: процедура обновления исполняемого файла не работала, 760 если после завершения родительского процесса новым родительским 761 процессом nginx'а становился процесс с PID, отличным от 1. 762 763 *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал 764 запросы с телом. 765 766 *) Исправление: в директиве proxy_limit_rate при использовании с 767 директивой keepalive. 768 769 *) Исправление: при использовании "proxy_buffering off" часть ответа 770 могла буферизироваться, если клиентское соединение использовало SSL. 771 Спасибо Patryk Lesiewicz. 772 773 *) Исправление: в директиве proxy_cache_background_update. 774 775 *) Исправление: переменную вида "${name}" с именем в фигурных скобках 776 нельзя было использовать в начале параметра не заключив весь параметр 777 в кавычки. 778 779 780Изменения в nginx 1.13.7 21.11.2017 781 782 *) Исправление: в переменной $upstream_status. 783 784 *) Исправление: в рабочем процессе мог произойти segmentation fault, 785 если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос. 786 787 *) Исправление: если при переконфигурации изменялся размер зоны 788 разделяемой памяти и переконфигурация завершалась неудачно, то в 789 главном процессе происходил segmentation fault. 790 791 *) Исправление: в модуле ngx_http_fastcgi_module. 792 793 *) Исправление: nginx возвращал ошибку 500, если в директиве 794 xslt_stylesheet были заданы параметры без использования переменных. 795 796 *) Изменение: при использовании варианта библиотеки zlib от Intel в лог 797 писались сообщения "gzip filter failed to use preallocated memory". 798 799 *) Исправление: директива worker_shutdown_timeout не работала при 800 использовании почтового прокси-сервера и при проксировании 801 WebSocket-соединений. 802 803 804Изменения в nginx 1.13.6 10.10.2017 805 806 *) Исправление: при использовании директивы ssl_preread в модуле stream 807 не работало переключение на следующий бэкенд. 808 809 *) Исправление: в модуле ngx_http_v2_module. 810 Спасибо Piotr Sikora. 811 812 *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных 813 платформах с 64-битным time_t. 814 815 *) Исправление: в обработке дат до 1970 года и после 10000 года. 816 817 *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от 818 бэкендов не логгировались или логгировались на уровне info вместо 819 error. 820 821 *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400, 822 не указав в логе причину. 823 824 *) Исправление: в обработке повреждённых файлов кэша. 825 826 *) Исправление: при кэшировании ошибок, перехваченных error_page, не 827 учитывались заголовки управления кэшированием. 828 829 *) Исправление: при использовании HTTP/2 тело запроса могло быть 830 повреждено. 831 832 *) Исправление: в обработке адресов клиентов при использовании unix 833 domain сокетов. 834 835 *) Исправление: при использовании директивы "hash ... consistent" в 836 блоке upstream nginx нагружал процессор, если использовались большие 837 веса и все или почти все бэкенды были недоступны. 838 839 840Изменения в nginx 1.13.5 05.09.2017 841 842 *) Добавление: переменная $ssl_client_escaped_cert. 843 844 *) Исправление: директива ssl_session_ticket_key и параметр include 845 директивы geo не работали на Windows. 846 847 *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с 848 помощью нескольких диапазонов возвращалась некорректная длина ответа. 849 850 *) Исправление: директива "expires modified" и обработка строки If-Range 851 заголовка запроса не учитывали время последнего изменения ответа, 852 если использовалось проксирование без кэширования. 853 854 855Изменения в nginx 1.13.4 08.08.2017 856 857 *) Добавление: модуль ngx_http_mirror_module. 858 859 *) Исправление: клиентские соединения могли сбрасываться при 860 тестировании конфигурации, если использовался параметр reuseport 861 директивы listen на Linux. 862 863 *) Исправление: тело запроса могло быть недоступно в подзапросах, если 864 оно было сохранено в файл и использовалось проксирование. 865 866 *) Исправление: очистка кэша по max_size не работала на Windows. 867 868 *) Исправление: любое выделение разделяемой памяти на Windows требовало 869 4096 байт памяти. 870 871 *) Исправление: при использовании директивы zone в блоке upstream на 872 Windows рабочий процесс мог завершаться аварийно. 873 874 875Изменения в nginx 1.13.3 11.07.2017 876 877 *) Безопасность: специально созданный запрос мог вызвать целочисленное 878 переполнение в range-фильтре и последующую некорректную обработку 879 запрошенных диапазонов, что потенциально могло привести к утечке 880 конфиденциальной информации (CVE-2017-7529). 881 882 883Изменения в nginx 1.13.2 27.06.2017 884 885 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из 886 пустого файла nginx возвращает ответ 200 вместо 416. 887 888 *) Добавление: директива add_trailer. 889 Спасибо Piotr Sikora. 890 891 *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась 892 в 1.13.0. 893 894 *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit. 895 Спасибо Orgad Shaneh. 896 897 *) Исправление: при использовании SSI с большим количеством подзапросов 898 и proxy_pass с переменными в рабочем процессе мог произойти 899 segmentation fault. 900 901 *) Исправление: в модуле ngx_http_v2_module. 902 Спасибо Piotr Sikora. 903 904 905Изменения в nginx 1.13.1 30.05.2017 906 907 *) Добавление: теперь в качестве параметра директивы set_real_ip_from 908 можно указывать имя хоста. 909 910 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim. 911 912 *) Добавление: директива worker_cpu_affinity теперь работает на 913 DragonFly BSD. 914 Спасибо Sepherosa Ziehau. 915 916 *) Исправление: SSL renegotiation в соединениях к бэкендам не работал 917 при использовании OpenSSL до 1.1.0. 918 919 *) Изменение: nginx не собирался с Oracle Developer Studio 12.5. 920 921 *) Изменение: теперь cache manager пропускает заблокированные записи при 922 очистке кэша по max_size. 923 924 *) Исправление: клиентские SSL-соединения сразу закрывались, если 925 использовался отложенный accept и параметр proxy_protocol директивы 926 listen. 927 928 *) Исправление: в директиве proxy_cache_background_update. 929 930 *) Изменение: теперь директива tcp_nodelay устанавливает опцию 931 TCP_NODELAY перед SSL handshake. 932 933 934Изменения в nginx 1.13.0 25.04.2017 935 936 *) Изменение: теперь SSL renegotiation допускается в соединениях к 937 бэкендам. 938 939 *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом 940 прокси-сервере и модуле stream. 941 942 *) Добавление: директивы return и error_page теперь могут использоваться 943 для возврата перенаправлений с кодом 308. 944 Спасибо Simon Leblanc. 945 946 *) Добавление: параметр TLSv1.3 в директиве ssl_protocols. 947 948 *) Добавление: при логгировании сигналов теперь указывается PID 949 отправившего сигнал процесса. 950 951 *) Исправление: в обработке ошибок выделения памяти. 952 953 *) Исправление: если сервер в модуле stream слушал на wildcard-адресе, 954 исходящий адрес ответного UDP-пакета мог отличаться от адреса 955 назначения исходного пакета. 956 957 958Изменения в nginx 1.11.13 04.04.2017 959 960 *) Добавление: параметр http_429 в директивах proxy_next_upstream, 961 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream. 962 Спасибо Piotr Sikora. 963 964 *) Исправление: в обработке ошибок выделения памяти. 965 966 *) Исправление: при использовании директив sendfile и timer_resolution 967 на Linux запросы могли зависать. 968 969 *) Исправление: при использовании с подзапросами директив sendfile и 970 aio_write запросы могли зависать. 971 972 *) Исправление: в модуле ngx_http_v2_module. 973 Спасибо Piotr Sikora. 974 975 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 976 произойти segmentation fault. 977 978 *) Исправление: запросы могли зависать при использовании с подзапросами 979 директив limit_rate, sendfile_max_chunk, limit_req или метода 980 $r->sleep() встроенного перла. 981 982 *) Исправление: в модуле ngx_http_slice_module. 983 984 985Изменения в nginx 1.11.12 24.03.2017 986 987 *) Исправление: nginx мог нагружать процессор; ошибка появилась в 988 1.11.11. 989 990 991Изменения в nginx 1.11.11 21.03.2017 992 993 *) Добавление: директива worker_shutdown_timeout. 994 995 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim. 996 Спасибо Wei-Ko Kao. 997 998 *) Исправление: при попытке установить переменную $limit_rate в пустую 999 строку в рабочем процессе мог произойти segmentation fault. 1000 1001 *) Исправление: директивы proxy_cache_background_update, 1002 fastcgi_cache_background_update, scgi_cache_background_update и 1003 uwsgi_cache_background_update могли работать некорректно, если 1004 использовалась директива if. 1005 1006 *) Исправление: в рабочем процессе мог произойти segmentation fault, 1007 если количество large_client_header_buffers в виртуальном сервере 1008 отличалось от такового в сервере по умолчанию. 1009 1010 *) Исправление: в почтовом прокси-сервере. 1011 1012 1013Изменения в nginx 1.11.10 14.02.2017 1014 1015 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные 1016 ответы будут загружены заново. 1017 1018 *) Добавление: поддержка расширений stale-while-revalidate и 1019 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда. 1020 1021 *) Добавление: директивы proxy_cache_background_update, 1022 fastcgi_cache_background_update, scgi_cache_background_update и 1023 uwsgi_cache_background_update. 1024 1025 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary 1026 заголовка длиной до 128 символов (вместо 42 символов в предыдущих 1027 версиях). 1028 1029 *) Добавление: параметр build директивы server_tokens. 1030 Спасибо Tom Thorogood. 1031 1032 *) Исправление: при обработке запросов со строкой "Expect: 100-continue" 1033 в заголовке запроса в логах могли появляться сообщения "[crit] 1034 SSL_write() failed". 1035 1036 *) Исправление: модуль ngx_http_slice_module не работал в именованных 1037 location'ах. 1038 1039 *) Исправление: при использовании AIO после перенаправления запроса с 1040 помощью X-Accel-Redirect в рабочем процессе мог произойти 1041 segmentation fault. 1042 1043 *) Исправление: уменьшено потребление памяти для долгоживущих запросов, 1044 использующих сжатие. 1045 1046 1047Изменения в nginx 1.11.9 24.01.2017 1048 1049 *) Исправление: при использовании модуля stream nginx мог нагружать 1050 процессор; ошибка появилась в 1.11.5. 1051 1052 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере 1053 можно было использовать, даже если он не был разрешён в конфигурации. 1054 1055 *) Исправление: при использовании директивы ssl_verify_client модуля 1056 stream в рабочем процессе мог произойти segmentation fault. 1057 1058 *) Исправление: директива ssl_verify_client модуля stream могла не 1059 работать. 1060 1061 *) Исправление: при исчерпании рабочим процессом свободных соединений 1062 keepalive-соединения могли закрываться излишне агрессивно. 1063 Спасибо Joel Cunningham. 1064 1065 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS 1066 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8. 1067 1068 *) Исправление: при использовании директивы aio_write ответ мог 1069 сохраняться в кэш не полностью. 1070 1071 *) Исправление: при использовании директивы aio_write могла происходить 1072 утечка сокетов. 1073 1074 1075Изменения в nginx 1.11.8 27.12.2016 1076 1077 *) Добавление: директива absolute_redirect. 1078 1079 *) Добавление: параметр escape директивы log_format. 1080 1081 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream. 1082 1083 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование 1084 TLS session tickets с помощью AES256 при использовании с 80-байтными 1085 ключами. 1086 1087 *) Добавление: поддержка vim-commentary в скриптах для vim. 1088 Спасибо Armin Grodon. 1089 1090 *) Исправление: рекурсия при получении значений переменных не 1091 ограничивалась. 1092 1093 *) Исправление: в модуле ngx_stream_ssl_preread_module. 1094 1095 *) Исправление: если сервер, описанный в блоке upstream в модуле stream, 1096 был признан неработающим, то после истечения fail_timeout он 1097 признавался работающим только после завершения тестового соединения; 1098 теперь достаточно, чтобы соединение было успешно установлено. 1099 1100 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio. 1101 1102 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0. 1103 1104 1105Изменения в nginx 1.11.7 13.12.2016 1106 1107 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки 1108 проверки клиентского сертификата содержит строку с описанием ошибки, 1109 например, "FAILED:certificate has expired". 1110 1111 *) Добавление: переменные $ssl_ciphers, $ssl_curves, 1112 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain. 1113 1114 *) Добавление: параметр volatile директивы map. 1115 1116 *) Исправление: при сборке динамических модулей не учитывались заданные 1117 для модуля зависимости. 1118 1119 *) Исправление: при использовании HTTP/2 и директив limit_req или 1120 auth_request тело запроса могло быть повреждено; ошибка появилась в 1121 1.11.0. 1122 1123 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 1124 произойти segmentation fault; ошибка появилась в 1.11.3. 1125 1126 *) Исправление: в модуле ngx_http_mp4_module. 1127 Спасибо Congcong Hu. 1128 1129 *) Исправление: в модуле ngx_http_perl_module. 1130 1131 1132Изменения в nginx 1.11.6 15.11.2016 1133 1134 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn 1135 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом 1136 формате доступны через переменные $ssl_client_s_dn_legacy и 1137 $ssl_client_i_dn_legacy. 1138 1139 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь 1140 располагаются не в отдельном подкаталоге для временных файлов, а в 1141 том же подкаталоге, что и соответствующие файлы в кэше. 1142 1143 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом 1144 прокси-сервере. 1145 Спасибо Robert Norris. 1146 1147 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module. 1148 1149 *) Добавление: директива proxy_method поддерживает переменные. 1150 Спасибо Дмитрию Лазуркину. 1151 1152 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module. 1153 1154 *) Добавление: директивы proxy_cache_max_range_offset, 1155 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и 1156 uwsgi_cache_max_range_offset. 1157 1158 *) Исправление: плавное завершение старых рабочих процессов могло 1159 занимать бесконечное время при использовании HTTP/2. 1160 1161 *) Исправление: в модуле ngx_http_mp4_module. 1162 1163 *) Исправление: при проксировании WebSocket-соединений и включённом 1164 кэшировании в логах могли появляться сообщения "ignore long locked 1165 inactive cache entry". 1166 1167 *) Исправление: если во время SSL handshake с бэкендом происходил 1168 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502 1169 вместо 504. 1170 1171 1172Изменения в nginx 1.11.5 11.10.2016 1173 1174 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6 1175 теперь собирается автоматически. 1176 1177 *) Изменение: теперь, если в блоке upstream не оказалось доступных 1178 серверов, nginx не сбрасывает статистику ошибок всех серверов, как 1179 делал ранее, а ожидает истечения fail_timeout. 1180 1181 *) Добавление: модуль ngx_stream_ssl_preread_module. 1182 1183 *) Добавление: директива server в блоке upstream поддерживает параметр 1184 max_conns. 1185 1186 *) Добавление: параметр configure --with-compat. 1187 1188 *) Добавление: параметры manager_files, manager_threshold и 1189 manager_sleep директив proxy_cache_path, fastcgi_cache_path, 1190 scgi_cache_path и uwsgi_cache_path. 1191 1192 *) Исправление: при сборке perl-модуля не использовались флаги, заданные 1193 с помощью параметра configure --with-ld-opt. 1194 1195 *) Исправление: в директиве add_after_body при использовании совместно с 1196 директивой sub_filter. 1197 1198 *) Исправление: в переменной $realip_remote_addr. 1199 1200 *) Исправление: директивы dav_access, proxy_store_access, 1201 fastcgi_store_access, scgi_store_access и uwsgi_store_access 1202 игнорировали права, заданные для пользователя. 1203 1204 *) Исправление: unix domain listen-сокеты могли не наследоваться при 1205 обновлении исполняемого файла на Linux. 1206 1207 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в 1208 HTTP-методе. 1209 1210 1211Изменения в nginx 1.11.4 13.09.2016 1212 1213 *) Добавление: переменная $upstream_bytes_received. 1214 1215 *) Добавление: переменные $bytes_received, $session_time, $protocol, 1216 $status, $upstream_addr, $upstream_bytes_sent, 1217 $upstream_bytes_received, $upstream_connect_time, 1218 $upstream_first_byte_time и $upstream_session_time в модуле stream. 1219 1220 *) Добавление: модуль ngx_stream_log_module. 1221 1222 *) Добавление: параметр proxy_protocol в директиве listen, переменные 1223 $proxy_protocol_addr и $proxy_protocol_port в модуле stream. 1224 1225 *) Добавление: модуль ngx_stream_realip_module. 1226 1227 *) Исправление: nginx не собирался с модулем stream и модулем 1228 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка 1229 появилась в 1.11.3. 1230 1231 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась; 1232 ошибка появилась в 1.11.2. 1233 1234 *) Исправление: в параметре ranges директивы geo. 1235 1236 *) Исправление: при использовании директив "aio threads" и sendfile мог 1237 возвращаться некорректный ответ; ошибка появилась в 1.9.13. 1238 1239 1240Изменения в nginx 1.11.3 26.07.2016 1241 1242 *) Изменение: теперь accept_mutex по умолчанию выключен. 1243 1244 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux. 1245 1246 *) Добавление: модуль ngx_stream_geo_module. 1247 1248 *) Добавление: модуль ngx_stream_geoip_module. 1249 1250 *) Добавление: модуль ngx_stream_split_clients_module. 1251 1252 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream 1253 поддерживают переменные. 1254 1255 *) Исправление: утечки сокетов при использовании HTTP/2. 1256 1257 *) Исправление: в configure. 1258 Спасибо Piotr Sikora. 1259 1260 1261Изменения в nginx 1.11.2 05.07.2016 1262 1263 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и 1264 SHA1; параметры configure --with-md5 и --with-sha1 упразднены. 1265 1266 *) Добавление: поддержка переменных в модуле stream. 1267 1268 *) Добавление: модуль ngx_stream_map_module. 1269 1270 *) Добавление: модуль ngx_stream_return_module. 1271 1272 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind, 1273 scgi_bind и uwsgi_bind теперь можно указывать порт. 1274 1275 *) Добавление: теперь nginx использует опцию сокета 1276 IP_BIND_ADDRESS_NO_PORT, если она доступна. 1277 1278 *) Исправление: при использовании HTTP/2 и директивы 1279 proxy_request_buffering в рабочем процессе мог произойти segmentation 1280 fault. 1281 1282 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на 1283 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже 1284 если у запроса не было тела. 1285 1286 *) Исправление: при использовании HTTP/2 в логах могли появляться 1287 сообщения "http request count is zero". 1288 1289 *) Исправление: при использовании директивы sub_filter могло 1290 буферизироваться больше данных, чем это необходимо; проблема 1291 появилась в 1.9.4. 1292 1293 1294Изменения в nginx 1.11.1 31.05.2016 1295 1296 *) Безопасность: при записи тела специально созданного запроса во 1297 временный файл в рабочем процессе мог происходить segmentation fault 1298 (CVE-2016-4450); ошибка появилась в 1.3.9. 1299 1300 1301Изменения в nginx 1.11.0 24.05.2016 1302 1303 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind, 1304 memcached_bind, scgi_bind и uwsgi_bind. 1305 1306 *) Добавление: переменная $request_id. 1307 1308 *) Добавление: директива map поддерживает комбинации нескольких 1309 переменных в качестве результирующих значений. 1310 1311 *) Добавление: теперь при использовании метода epoll nginx проверяет, 1312 поддерживает ли ядро события EPOLLRDHUP, и соответственно 1313 оптимизирует обработку соединений. 1314 1315 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь 1316 можно указывать несколько раз для загрузки сертификатов разных типов 1317 (например, RSA и ECDSA). 1318 1319 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью 1320 директивы ssl_ecdh_curve теперь можно задать список кривых; по 1321 умолчанию используется встроенный в OpenSSL список кривых. 1322 1323 *) Изменение: для использования DHE-шифров теперь надо явно задавать 1324 файл параметров с помощью директивы ssl_dhparam. 1325 1326 *) Добавление: переменная $proxy_protocol_port. 1327 1328 *) Добавление: переменная $realip_remote_port в модуле 1329 ngx_http_realip_module. 1330 1331 *) Добавление: модуль ngx_http_realip_module теперь позволяет 1332 устанавливать не только адрес, но и порт клиента. 1333 1334 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от 1335 согласованного в процессе SSL handshake, теперь возвращается ответ 1336 "421 Misdirected Request"; это улучшает совместимость с некоторыми 1337 HTTP/2-клиентами в случае использования клиентских сертификатов. 1338 1339 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса; 1340 директива http2_body_preread_size позволяет указать размер буфера, 1341 который будет использоваться до того, как nginx начнёт читать тело. 1342 1343 *) Исправление: при использовании директивы proxy_cache_bypass не 1344 обновлялись закэшированные ошибочные ответы. 1345 1346 1347Изменения в nginx 1.9.15 19.04.2016 1348 1349 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли 1350 возникать ошибки "recv() failed". 1351 1352 *) Исправление: при использовании HTTP/2 и директив limit_req или 1353 auth_request при чтении тела запроса мог произойти таймаут или ошибка 1354 "client violated flow control"; ошибка появилась в 1.9.14. 1355 1356 *) Изменение: при использовании HTTP/2 ответ мог не показываться 1357 некоторыми браузерами, если тело запроса было прочитано не целиком; 1358 ошибка появилась в 1.9.14. 1359 1360 *) Исправление: при использовании директивы "aio threads" соединения 1361 могли зависать. 1362 Спасибо Mindaugas Rasiukevicius. 1363 1364 1365Изменения в nginx 1.9.14 05.04.2016 1366 1367 *) Добавление: совместимость с OpenSSL 1.1.0. 1368 1369 *) Добавление: директивы proxy_request_buffering, 1370 fastcgi_request_buffering, scgi_request_buffering и 1371 uwsgi_request_buffering теперь работают при использовании HTTP/2. 1372 1373 *) Исправление: при использовании HTTP/2 в логах могли появляться 1374 сообщения "zero size buf in output". 1375 1376 *) Исправление: при использовании HTTP/2 директива client_max_body_size 1377 могла работать неверно. 1378 1379 *) Исправление: незначительных ошибок логгирования. 1380 1381 1382Изменения в nginx 1.9.13 29.03.2016 1383 1384 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по 1385 умолчанию не передаются на другой сервер, если запрос уже был 1386 отправлен на бэкенд; параметр non_idempotent директивы 1387 proxy_next_upstream явно разрешает повторять такие запросы. 1388 1389 *) Добавление: модуль ngx_http_perl_module теперь можно собрать 1390 динамически. 1391 1392 *) Добавление: поддержка UDP в модуле stream. 1393 1394 *) Добавление: директива aio_write. 1395 1396 *) Добавление: теперь cache manager следит за количеством элементов в 1397 кэше и старается не допускать переполнений зоны разделяемой памяти. 1398 1399 *) Исправление: при использовании директив sendfile и aio с подзапросами 1400 в логах могли появляться сообщения "task already active" и "second 1401 aio post". 1402 1403 *) Исправление: при использовании кэширования в логах могли появляться 1404 сообщения "zero size buf in output", если клиент закрывал соединение 1405 преждевременно. 1406 1407 *) Исправление: при использовании кэширования соединения с клиентами 1408 могли закрываться без необходимости. 1409 Спасибо Justin Li. 1410 1411 *) Исправление: nginx мог нагружать процессор при использовании 1412 директивы sendfile на Linux и Solaris, если отправляемый файл был 1413 изменён в процессе отправки. 1414 1415 *) Исправление: при использовании директив sendfile и "aio threads" 1416 соединения могли зависать. 1417 1418 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и 1419 uwsgi_pass при использовании переменных. 1420 Спасибо Piotr Sikora. 1421 1422 *) Исправление: в модуле ngx_http_sub_filter_module. 1423 1424 *) Исправление: если в закэшированном соединении к бэкенду происходила 1425 ошибка, запрос передавался на другой сервер без учёта директивы 1426 proxy_next_upstream. 1427 1428 *) Исправление: ошибки "CreateFile() failed" при создании временных 1429 файлов на Windows. 1430 1431 1432Изменения в nginx 1.9.12 24.02.2016 1433 1434 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2. 1435 Спасибо Владу Краснову. 1436 1437 *) Добавление: директива worker_cpu_affinity теперь поддерживает более 1438 64 процессоров. 1439 1440 *) Исправление: совместимость со сторонними модулями на C++; ошибка 1441 появилась в 1.9.11. 1442 Спасибо Piotr Sikora. 1443 1444 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка 1445 появилась в 1.9.11. 1446 1447 *) Исправление: директива "add_header ... always" с пустым значением не 1448 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag. 1449 1450 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться 1451 сообщения "called a function you should not call" и "shutdown while 1452 in init". 1453 1454 *) Исправление: ошибочные заголовки могли логгироваться некорректно. 1455 1456 *) Исправление: утечки сокетов при использовании HTTP/2. 1457 1458 *) Исправление: в модуле ngx_http_v2_module. 1459 1460 1461Изменения в nginx 1.9.11 09.02.2016 1462 1463 *) Добавление: теперь resolver поддерживает TCP. 1464 1465 *) Добавление: динамические модули. 1466 1467 *) Исправление: при использовании HTTP/2 переменная $request_length не 1468 учитывала размер заголовков запроса. 1469 1470 *) Исправление: в модуле ngx_http_v2_module. 1471 1472 1473Изменения в nginx 1.9.10 26.01.2016 1474 1475 *) Безопасность: при использовании директивы resolver во время обработки 1476 ответов DNS-сервера могло происходить разыменование некорректного 1477 адреса, что позволяло атакующему, имеющему возможность подделывать 1478 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем 1479 процессе (CVE-2016-0742). 1480 1481 *) Безопасность: при использовании директивы resolver во время обработки 1482 CNAME-записей могло произойти обращение к ранее освобождённой памяти, 1483 что позволяло атакующему, имеющему возможность инициировать 1484 преобразование произвольных имён в адреса, вызвать segmentation fault 1485 в рабочем процессе, а также потенциально могло иметь другие 1486 последствия (CVE-2016-0746). 1487 1488 *) Безопасность: при использовании директивы resolver во время обработки 1489 CNAME-записей не во всех случаях проверялось ограничение на 1490 максимальное количество записей в цепочке, что позволяло атакующему, 1491 имеющему возможность инициировать преобразование произвольных имён в 1492 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами 1493 (CVE-2016-0747). 1494 1495 *) Добавление: параметр auto директивы worker_cpu_affinity. 1496 1497 *) Исправление: параметр proxy_protocol директивы listen не работал с 1498 IPv6 listen-сокетами. 1499 1500 *) Исправление: при использовании директивы keepalive соединения к 1501 бэкендам могли кэшироваться некорректно. 1502 1503 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect 1504 при проксировании использовался HTTP-метод оригинального запроса. 1505 1506 1507Изменения в nginx 1.9.9 09.12.2015 1508 1509 *) Исправление: проксирование в unix domain сокеты не работало при 1510 использовании переменных; ошибка появилась в 1.9.8. 1511 1512 1513Изменения в nginx 1.9.8 08.12.2015 1514 1515 *) Добавление: поддержка pwritev(). 1516 1517 *) Добавление: директива include в блоке upstream. 1518 1519 *) Добавление: модуль ngx_http_slice_module. 1520 1521 *) Исправление: при использовании LibreSSL в рабочем процессе мог 1522 произойти segmentation fault; ошибка появилась в 1.9.6. 1523 1524 *) Исправление: nginx мог не собираться на OS X. 1525 1526 1527Изменения в nginx 1.9.7 17.11.2015 1528 1529 *) Добавление: параметр nohostname логгирования в syslog. 1530 1531 *) Добавление: директива proxy_cache_convert_head. 1532 1533 *) Добавление: переменная $realip_remote_addr в модуле 1534 ngx_http_realip_module. 1535 1536 *) Исправление: директива expires могла не срабатывать при использовании 1537 переменных. 1538 1539 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 1540 произойти segmentation fault; ошибка появилась в 1.9.6. 1541 1542 *) Исправление: если nginx был собран с модулем ngx_http_v2_module, 1543 протокол HTTP/2 мог быть использован клиентом, даже если не был 1544 указан параметр http2 директивы listen. 1545 1546 *) Исправление: в модуле ngx_http_v2_module. 1547 1548 1549Изменения в nginx 1.9.6 27.10.2015 1550 1551 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 1552 произойти segmentation fault. 1553 Спасибо Piotr Sikora и Denis Andzakovic. 1554 1555 *) Исправление: при использовании HTTP/2 переменная $server_protocol 1556 была пустой. 1557 1558 *) Исправление: SSL-соединения к бэкендам в модуле stream могли 1559 неожиданно завершаться по таймауту. 1560 1561 *) Исправление: при использовании различных настроек ssl_session_cache в 1562 разных виртуальных серверах в рабочем процессе мог произойти 1563 segmentation fault. 1564 1565 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась 1566 в 1.9.4. 1567 Спасибо Kouhei Sutou. 1568 1569 *) Исправление: при использовании директивы timer_resolution на Windows 1570 время не обновлялось. 1571 1572 *) Незначительные исправления и улучшения. 1573 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora. 1574 1575 1576Изменения в nginx 1.9.5 22.09.2015 1577 1578 *) Добавление: модуль ngx_http_v2_module (заменяет модуль 1579 ngx_http_spdy_module). 1580 Спасибо Dropbox и Automattic за спонсирование разработки. 1581 1582 *) Изменение: теперь по умолчанию директива output_buffers использует 1583 два буфера. 1584 1585 *) Изменение: теперь nginx ограничивает максимальную вложенность 1586 подзапросов, а не количество одновременных подзапросов. 1587 1588 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ 1589 полностью. 1590 Спасибо Геннадию Махомеду и Сергею Брестеру. 1591 1592 *) Исправление: при использовании кэша в логах могли появляться 1593 сообщения "header already sent"; ошибка появилась в 1.7.5. 1594 1595 *) Исправление: при использовании CephFS и директивы timer_resolution на 1596 Linux в логах могли появляться сообщения "writev() failed (4: 1597 Interrupted system call)". 1598 1599 *) Исправление: в обработке ошибок конфигурации. 1600 Спасибо Markus Linnala. 1601 1602 *) Исправление: при использовании директивы sub_filter на уровне http в 1603 рабочем процессе происходил segmentation fault; ошибка появилась в 1604 1.9.4. 1605 1606 1607Изменения в nginx 1.9.4 18.08.2015 1608 1609 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer 1610 в модуле stream заменены директивой proxy_buffer_size. 1611 1612 *) Добавление: директива tcp_nodelay в модуле stream. 1613 1614 *) Добавление: теперь можно указать несколько директив sub_filter 1615 одновременно. 1616 1617 *) Добавление: директива sub_filter поддерживает переменные в строке 1618 поиска. 1619 1620 *) Изменение: тестирование конфигурации могло не работать под Linux 1621 OpenVZ. 1622 Спасибо Геннадию Махомеду. 1623 1624 *) Исправление: после переконфигурации старые рабочие процессы могли 1625 сильно нагружать процессор при больших значениях worker_connections. 1626 1627 *) Исправление: при совместном использовании директив try_files и alias 1628 внутри location'а, заданного регулярным выражением, в рабочем 1629 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1. 1630 1631 *) Исправление: директива try_files внутри вложенного location'а, 1632 заданного регулярным выражением, работала неправильно, если во 1633 внешнем location'е использовалась директива alias. 1634 1635 *) Исправление: в обработке ошибок при построении хэш-таблиц. 1636 1637 *) Исправление: nginx не собирался с Visual Studio 2015. 1638 1639 1640Изменения в nginx 1.9.3 14.07.2015 1641 1642 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены. 1643 1644 *) Добавление: ограничение количества соединений в модуле stream. 1645 1646 *) Добавление: ограничение скорости в модуле stream. 1647 1648 *) Исправление: директива zone в блоке upstream не работала на Windows. 1649 1650 *) Исправление: совместимость с LibreSSL в модуле stream. 1651 Спасибо Piotr Sikora. 1652 1653 *) Исправление: в параметре --builddir в configure. 1654 Спасибо Piotr Sikora. 1655 1656 *) Исправление: директива ssl_stapling_file не работала; ошибка 1657 появилась в 1.9.2. 1658 Спасибо Faidon Liambotis и Brandon Black. 1659 1660 *) Исправление: при использовании директивы ssl_stapling в рабочем 1661 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2. 1662 Спасибо Matthew Baldwin. 1663 1664 1665Изменения в nginx 1.9.2 16.06.2015 1666 1667 *) Добавление: параметр backlog директивы listen в почтовом 1668 прокси-сервере и модуле stream. 1669 1670 *) Добавление: директивы allow и deny в модуле stream. 1671 1672 *) Добавление: директива proxy_bind в модуле stream. 1673 1674 *) Добавление: директива proxy_protocol в модуле stream. 1675 1676 *) Добавление: ключ -T. 1677 1678 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные 1679 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и 1680 uwsgi_params. 1681 1682 *) Исправление: параметр reuseport директивы listen в модуле stream не 1683 работал. 1684 1685 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший 1686 OCSP-ответ. 1687 1688 1689Изменения в nginx 1.9.1 26.05.2015 1690 1691 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён. 1692 1693 *) Изменение: некоторые давно устаревшие директивы больше не 1694 поддерживаются. 1695 1696 *) Добавление: параметр reuseport директивы listen. 1697 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau. 1698 1699 *) Добавление: переменная $upstream_connect_time. 1700 1701 *) Исправление: в директиве hash на big-endian платформах. 1702 1703 *) Исправление: nginx мог не запускаться на некоторых старых версиях 1704 Linux; ошибка появилась в 1.7.11. 1705 1706 *) Исправление: в парсинге IP-адресов. 1707 Спасибо Сергею Половко. 1708 1709 1710Изменения в nginx 1.9.0 28.04.2015 1711 1712 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше 1713 не поддерживаются. 1714 1715 *) Добавление: директива zone в блоке upstream. 1716 1717 *) Добавление: модуль stream. 1718 1719 *) Добавление: поддержка byte ranges для ответов модуля 1720 ngx_http_memcached_module. 1721 Спасибо Martin Mlynář. 1722 1723 *) Добавление: разделяемую память теперь можно использовать на версиях 1724 Windows с рандомизацией адресного пространства. 1725 Спасибо Сергею Брестеру. 1726 1727 *) Добавление: директиву error_log теперь можно использовать на уровнях 1728 mail и server в почтовом прокси-сервере. 1729 1730 *) Исправление: параметр proxy_protocol директивы listen не работал, 1731 если не был указан в первой директиве listen для данного 1732 listen-сокета. 1733 1734 1735Изменения в nginx 1.7.12 07.04.2015 1736 1737 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений 1738 с бэкендами. 1739 1740 *) Добавление: теперь потоки могут использоваться для чтения заголовков 1741 файлов в кэше. 1742 1743 *) Исправление: в директиве proxy_request_buffering. 1744 1745 *) Исправление: при использовании потоков на Linux в рабочем процессе 1746 мог произойти segmentation fault. 1747 1748 *) Исправление: в обработке ошибок при использовании директивы 1749 ssl_stapling. 1750 Спасибо Filipe da Silva. 1751 1752 *) Исправление: в модуле ngx_http_spdy_module. 1753 1754 1755Изменения в nginx 1.7.11 24.03.2015 1756 1757 *) Изменение: параметр sendfile директивы aio более не нужен; теперь 1758 nginx автоматически использует AIO для подгрузки данных для sendfile, 1759 если одновременно используются директивы aio и sendfile. 1760 1761 *) Добавление: экспериментальная поддержка потоков. 1762 1763 *) Добавление: директивы proxy_request_buffering, 1764 fastcgi_request_buffering, scgi_request_buffering и 1765 uwsgi_request_buffering. 1766 1767 *) Добавление: экспериментальное API для обработки тела запроса. 1768 1769 *) Добавление: проверка клиентских SSL-сертификатов в почтовом 1770 прокси-сервере. 1771 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva. 1772 1773 *) Добавление: уменьшение времени запуска при использовании директивы 1774 "hash ... consistent" в блоке upstream. 1775 Спасибо Wai Keen Woon. 1776 1777 *) Добавление: отладочное логгирование в кольцевой буфер в памяти. 1778 1779 *) Исправление: в обработке хэш-таблиц. 1780 Спасибо Chris West. 1781 1782 *) Исправление: в директиве proxy_cache_revalidate. 1783 1784 *) Исправление: SSL-соединения могли зависать, если использовался 1785 отложенный accept или параметр proxy_protocol директивы listen. 1786 Спасибо James Hamlin. 1787 1788 *) Исправление: переменная $upstream_response_time могла содержать 1789 неверное значение при использовании директивы image_filter. 1790 1791 *) Исправление: в обработке целочисленных переполнений. 1792 Спасибо Régis Leroy. 1793 1794 *) Исправление: при использовании LibreSSL было невозможно включить 1795 поддержку SSLv3. 1796 1797 *) Исправление: при использовании LibreSSL в логах появлялись сообщения 1798 "ignoring stale global SSL error ... called a function you should not 1799 call". 1800 1801 *) Исправление: сертификаты, указанные в директивах 1802 ssl_client_certificate и ssl_trusted_certificate, использовались для 1803 автоматического построения цепочек сертификатов. 1804 1805 1806Изменения в nginx 1.7.10 10.02.2015 1807 1808 *) Добавление: параметр use_temp_path директив proxy_cache_path, 1809 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path. 1810 1811 *) Добавление: переменная $upstream_header_time. 1812 1813 *) Изменение: теперь при переполнении диска nginx пытается писать 1814 error_log'и только раз в секунду. 1815 1816 *) Исправление: директива try_files при тестировании каталогов не 1817 игнорировала обычные файлы. 1818 Спасибо Damien Tournoud. 1819 1820 *) Исправление: при использовании директивы sendfile на OS X возникали 1821 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8. 1822 1823 *) Исправление: в лог могли писаться сообщения "sem_post() failed". 1824 1825 *) Исправление: nginx не собирался с musl libc. 1826 Спасибо James Taylor. 1827 1828 *) Исправление: nginx не собирался на Tru64 UNIX. 1829 Спасибо Goetz T. Fischer. 1830 1831 1832Изменения в nginx 1.7.9 23.12.2014 1833 1834 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и 1835 uwsgi_cache поддерживают переменные. 1836 1837 *) Добавление: директива expires поддерживает переменные. 1838 1839 *) Добавление: возможность загрузки секретных ключей с аппаратных 1840 устройств с помощью OpenSSL engines. 1841 Спасибо Дмитрию Пичулину. 1842 1843 *) Добавление: директива autoindex_format. 1844 1845 *) Исправление: ревалидация элементов кэша теперь используется только 1846 для ответов с кодами 200 и 206. 1847 Спасибо Piotr Sikora. 1848 1849 *) Исправление: строка "TE" заголовка запроса клиента передавалась на 1850 бэкенд при проксировании. 1851 1852 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и 1853 uwsgi_pass могли неправильно работать внутри блоков if и 1854 limit_except. 1855 1856 *) Исправление: директива proxy_store с параметром "on" игнорировалась, 1857 если на предыдущем уровне использовалась директива proxy_store с явно 1858 заданным путём к файлам. 1859 1860 *) Исправление: nginx не собирался с BoringSSL. 1861 Спасибо Lukas Tribus. 1862 1863 1864Изменения в nginx 1.7.8 02.12.2014 1865 1866 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им 1867 подобные в заголовке запроса клиента передаются бэкенду при 1868 включённом кэшировании, если nginx заранее знает, что не будет 1869 кэшировать ответ (например, при использовании proxy_cache_min_uses). 1870 1871 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx 1872 отправляет запрос на бэкенд без кэширования; новые директивы 1873 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и 1874 uwsgi_cache_lock_age позволяют указать, через какое время блокировка 1875 будет принудительно снята и будет сделана ещё одна попытка 1876 закэшировать ответ. 1877 1878 *) Изменение: директива log_format теперь может использоваться только на 1879 уровне http. 1880 1881 *) Добавление: директивы proxy_ssl_certificate, 1882 proxy_ssl_certificate_key, proxy_ssl_password_file, 1883 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и 1884 uwsgi_ssl_password_file. 1885 Спасибо Piotr Sikora. 1886 1887 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в 1888 именованный location. 1889 Спасибо Toshikuni Fukaya. 1890 1891 *) Добавление: теперь директива tcp_nodelay работает для 1892 SPDY-соединений. 1893 1894 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim. 1895 Спасибо Peter Wu. 1896 1897 *) Исправление: nginx игнорировал значение "s-maxage" в строке 1898 "Cache-Control" в заголовке ответа бэкенда. 1899 Спасибо Piotr Sikora. 1900 1901 *) Исправление: в модуле ngx_http_spdy_module. 1902 Спасибо Piotr Sikora. 1903 1904 *) Исправление: в директиве ssl_password_file при использовании OpenSSL 1905 0.9.8zc, 1.0.0o, 1.0.1j. 1906 1907 *) Исправление: при использовании директивы post_action в лог писались 1908 сообщения "header already sent"; ошибка появилась в nginx 1.5.4. 1909 1910 *) Исправление: при использовании директивы "postpone_output 0" с 1911 SSI-подзапросами в лог могли писаться сообщения "the http output 1912 chain is empty". 1913 1914 *) Исправление: в директиве proxy_cache_lock при использовании 1915 SSI-подзапросов. 1916 Спасибо Yichun Zhang. 1917 1918 1919Изменения в nginx 1.7.7 28.10.2014 1920 1921 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в 1922 заголовке ответа бэкенда. 1923 1924 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges, 1925 scgi_force_ranges и uwsgi_force_ranges. 1926 1927 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate, 1928 scgi_limit_rate и uwsgi_limit_rate. 1929 1930 *) Добавление: параметр Vary директив proxy_ignore_headers, 1931 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers. 1932 1933 *) Исправление: последняя часть ответа, полученного от бэкенда при 1934 небуферизированном проксировании, могла не отправляться клиенту, если 1935 использовались директивы gzip или gunzip. 1936 1937 *) Исправление: в директиве proxy_cache_revalidate. 1938 Спасибо Piotr Sikora. 1939 1940 *) Исправление: в обработке ошибок. 1941 Спасибо Yichun Zhang и Даниилу Бондареву. 1942 1943 *) Исправление: в директивах proxy_next_upstream_tries и 1944 proxy_next_upstream_timeout. 1945 Спасибо Feng Gu. 1946 1947 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc. 1948 Спасибо Kouhei Sutou. 1949 1950 1951Изменения в nginx 1.7.6 30.09.2014 1952 1953 *) Изменение: устаревшая директива limit_zone больше не поддерживается. 1954 1955 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь 1956 можно использовать комбинации нескольких переменных. 1957 1958 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело 1959 запроса могло передаваться неправильно. 1960 1961 *) Исправление: в логгировании в syslog. 1962 1963 1964Изменения в nginx 1.7.5 16.09.2014 1965 1966 *) Безопасность: при использовании общего для нескольких блоков server 1967 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS 1968 session tickets было возможно повторно использовать SSL-сессию в 1969 контексте другого блока server (CVE-2014-3616). 1970 Спасибо Antoine Delignat-Lavaud. 1971 1972 *) Изменение: директиву stub_status теперь можно указывать без 1973 параметров. 1974 1975 *) Добавление: параметр always директивы add_header. 1976 1977 *) Добавление: директивы proxy_next_upstream_tries, 1978 proxy_next_upstream_timeout, fastcgi_next_upstream_tries, 1979 fastcgi_next_upstream_timeout, memcached_next_upstream_tries, 1980 memcached_next_upstream_timeout, scgi_next_upstream_tries, 1981 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и 1982 uwsgi_next_upstream_timeout. 1983 1984 *) Исправление: в параметре if директивы access_log. 1985 1986 *) Исправление: в модуле ngx_http_perl_module. 1987 Спасибо Piotr Sikora. 1988 1989 *) Исправление: директива listen почтового прокси-сервера не позволяла 1990 указать более двух параметров. 1991 1992 *) Исправление: директива sub_filter не работала с заменяемой строкой из 1993 одного символа. 1994 1995 *) Исправление: запросы могли зависать, если использовался resolver и в 1996 процессе обращения к DNS-серверу происходил таймаут. 1997 1998 *) Исправление: в модуле ngx_http_spdy_module при использовании 1999 совместно с AIO. 2000 2001 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2002 если с помощью директивы set изменялись переменные "$http_...", 2003 "$sent_http_..." или "$upstream_http_...". 2004 2005 *) Исправление: в обработке ошибок выделения памяти. 2006 Спасибо Markus Linnala и Feng Gu. 2007 2008 2009Изменения в nginx 1.7.4 05.08.2014 2010 2011 *) Безопасность: pipelined-команды не отбрасывались после команды 2012 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в 2013 1.5.6. 2014 Спасибо Chris Boulton. 2015 2016 *) Изменение: экранирование символов в URI теперь использует 2017 шестнадцатеричные цифры в верхнем регистре. 2018 Спасибо Piotr Sikora. 2019 2020 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL. 2021 Спасибо Piotr Sikora. 2022 2023 *) Исправление: запросы могли зависать, если использовался resolver и 2024 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8. 2025 2026 *) Исправление: в модуле ngx_http_spdy_module. 2027 Спасибо Piotr Sikora. 2028 2029 *) Исправление: переменная $uri могла содержать мусор при возврате 2030 ошибок с кодом 400. 2031 Спасибо Сергею Боброву. 2032 2033 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле 2034 ngx_http_dav_module. 2035 Спасибо Feng Gu. 2036 2037 *) Исправление: при логгировании ошибок в syslog мог происходить 2038 segmentation fault; ошибка появилась в 1.7.1. 2039 2040 *) Исправление: переменные $geoip_latitude, $geoip_longitude, 2041 $geoip_dma_code и $geoip_area_code могли не работать. 2042 Спасибо Yichun Zhang. 2043 2044 *) Исправление: в обработке ошибок выделения памяти. 2045 Спасибо Tatsuhiko Kubo и Piotr Sikora. 2046 2047 2048Изменения в nginx 1.7.3 08.07.2014 2049 2050 *) Добавление: weak entity tags теперь не удаляются при изменениях 2051 ответа, а strong entity tags преобразуются в weak. 2052 2053 *) Добавление: ревалидация элементов кэша теперь, если это возможно, 2054 использует заголовок If-None-Match. 2055 2056 *) Добавление: директива ssl_password_file. 2057 2058 *) Исправление: при возврате ответа из кэша заголовок запроса 2059 If-None-Match игнорировался, если в ответе не было заголовка 2060 Last-Modified. 2061 2062 *) Исправление: сообщения "peer closed connection in SSL handshake" при 2063 соединении с бэкендами логгировались на уровне info вместо error. 2064 2065 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows. 2066 2067 *) Исправление: SPDY-соединения могли неожиданно закрываться, если 2068 использовалось кэширование. 2069 2070 2071Изменения в nginx 1.7.2 17.06.2014 2072 2073 *) Добавление: директива hash в блоке upstream. 2074 2075 *) Добавление: дефрагментация свободных блоков разделяемой памяти. 2076 Спасибо Wandenberg Peixoto и Yichun Zhang. 2077 2078 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2079 если использовалось значение access_log по умолчанию; ошибка 2080 появилась в 1.7.0. 2081 Спасибо Piotr Sikora. 2082 2083 *) Исправление: завершающий слэш ошибочно удалялся из последнего 2084 параметра директивы try_files. 2085 2086 *) Исправление: nginx мог не собираться на OS X. 2087 2088 *) Исправление: в модуле ngx_http_spdy_module. 2089 2090 2091Изменения в nginx 1.7.1 27.05.2014 2092 2093 *) Добавление: переменные "$upstream_cookie_...". 2094 2095 *) Добавление: переменная $ssl_client_fingerprint. 2096 2097 *) Добавление: директивы error_log и access_log теперь поддерживают 2098 логгирование в syslog. 2099 2100 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при 2101 соединении. 2102 2103 *) Исправление: утечки памяти при использовании директивы 2104 "ssl_stapling". 2105 Спасибо Filipe da Silva. 2106 2107 *) Исправление: директива alias внутри location'а, заданного регулярным 2108 выражением, работала неправильно, если использовались директивы if 2109 или limit_except. 2110 2111 *) Исправление: директива charset не ставила кодировку для сжатых 2112 ответов бэкендов. 2113 2114 *) Исправление: директива proxy_pass без URI могла использовать 2115 оригинальный запрос после установки переменной $args. 2116 Спасибо Yichun Zhang. 2117 2118 *) Исправление: в работе параметра none директивы smtp_auth; ошибка 2119 появилась в 1.5.6. 2120 Спасибо Святославу Никольскому. 2121 2122 *) Исправление: при совместном использовании sub_filter и SSI ответы 2123 могли передаваться неверно. 2124 2125 *) Исправление: nginx не собирался с параметром --with-file-aio на 2126 Linux/aarch64. 2127 2128 2129Изменения в nginx 1.7.0 24.04.2014 2130 2131 *) Добавление: проверка SSL-сертификатов бэкендов. 2132 2133 *) Добавление: поддержка SNI при работе с бэкендами по SSL. 2134 2135 *) Добавление: переменная $ssl_server_name. 2136 2137 *) Добавление: параметр if директивы access_log. 2138 2139 2140Изменения в nginx 1.5.13 08.04.2014 2141 2142 *) Изменение: улучшена обработка хэш-таблиц; в директивах 2143 variables_hash_max_size и types_hash_bucket_size значения по 2144 умолчанию изменены на 1024 и 64 соответственно. 2145 2146 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end. 2147 2148 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при 2149 сохранении ответов в кэш. 2150 2151 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc() 2152 failed: no memory" при использовании разделяемой памяти в 2153 ssl_session_cache и в модуле ngx_http_limit_req_module. 2154 2155 *) Исправление: директива underscores_in_headers не разрешала 2156 подчёркивание в первом символе заголовка. 2157 Спасибо Piotr Sikora. 2158 2159 *) Исправление: cache manager мог нагружать процессор при выходе в 2160 nginx/Windows. 2161 2162 *) Исправление: при использовании ssl_session_cache с параметром shared 2163 рабочий процесс nginx/Windows завершался аварийно. 2164 2165 *) Исправление: в модуле ngx_http_spdy_module. 2166 2167 2168Изменения в nginx 1.5.12 18.03.2014 2169 2170 *) Безопасность: при обработке специально созданного запроса модулем 2171 ngx_http_spdy_module могло происходить переполнение буфера в рабочем 2172 процессе, что потенциально могло приводить к выполнению произвольного 2173 кода (CVE-2014-0133). 2174 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky, 2175 Buenos Aires, Argentina. 2176 2177 *) Добавление: параметр proxy_protocol в директивах listen и 2178 real_ip_header, переменная $proxy_protocol_addr. 2179 2180 *) Исправление: в директиве fastcgi_next_upstream. 2181 Спасибо Lucas Molas. 2182 2183 2184Изменения в nginx 1.5.11 04.03.2014 2185 2186 *) Безопасность: при обработке специально созданного запроса модулем 2187 ngx_http_spdy_module на 32-битных платформах могла повреждаться 2188 память рабочего процесса, что потенциально могло приводить к 2189 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в 2190 1.5.10. 2191 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky, 2192 Buenos Aires, Argentina. 2193 2194 *) Добавление: переменная $ssl_session_reused. 2195 2196 *) Исправление: директива client_max_body_size могла не работать при 2197 чтении тела запроса с использованием chunked transfer encoding; 2198 ошибка появилась в 1.3.9. 2199 Спасибо Lucas Molas. 2200 2201 *) Исправление: при проксировании WebSocket-соединений в рабочем 2202 процессе мог произойти segmentation fault. 2203 2204 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2205 если использовался модуль ngx_http_spdy_module на 32-битных 2206 платформах; ошибка появилась в 1.5.10. 2207 2208 *) Исправление: значение переменной $upstream_status могло быть 2209 неверным, если использовались директивы proxy_cache_use_stale или 2210 proxy_cache_revalidate. 2211 Спасибо Piotr Sikora. 2212 2213 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2214 если ошибки с кодом 400 с помощью директивы error_page 2215 перенаправлялись в именованный location. 2216 2217 *) Исправление: nginx/Windows не собирался с Visual Studio 2013. 2218 2219 2220Изменения в nginx 1.5.10 04.02.2014 2221 2222 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол 2223 SPDY 3.1. 2224 Спасибо Automattic и MaxCDN за спонсирование разработки. 2225 2226 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки, 2227 имеющие меньшую длину, чем запрошенная перемотка. 2228 2229 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2230 если переменная $ssl_session_id использовалась при логгировании; 2231 ошибка появилась в 1.5.9. 2232 2233 *) Исправление: переменные $date_local и $date_gmt использовали неверный 2234 формат вне модуля ngx_http_ssi_filter_module. 2235 2236 *) Исправление: клиентские соединения могли сразу закрываться, если 2237 использовался отложенный accept; ошибка появилась в 1.3.15. 2238 2239 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed" 2240 записывались в лог в процессе обновления исполняемого файла на Linux; 2241 ошибка появилась в 1.5.8. 2242 Спасибо Piotr Sikora. 2243 2244 2245Изменения в nginx 1.5.9 22.01.2014 2246 2247 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает 2248 закодированный URI. 2249 2250 *) Добавление: директива ssl_buffer_size. 2251 2252 *) Добавление: директиву limit_rate теперь можно использовать для 2253 ограничения скорости передачи ответов клиенту в SPDY-соединениях. 2254 2255 *) Добавление: директива spdy_chunk_size. 2256 2257 *) Добавление: директива ssl_session_tickets. 2258 Спасибо Dirkjan Bussink. 2259 2260 *) Исправление: переменная $ssl_session_id содержала всю сессию в 2261 сериализованном виде вместо её идентификатора. 2262 Спасибо Ivan Ristić. 2263 2264 *) Исправление: nginx неправильно обрабатывал закодированный символ "?" 2265 в команде SSI include. 2266 2267 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI 2268 при обработке методов COPY и MOVE. 2269 2270 *) Исправление: resolver не понимал доменные имена с точкой в конце. 2271 Спасибо Yichun Zhang. 2272 2273 *) Исправление: при проксировании в логах могли появляться сообщения 2274 "zero size buf in output"; ошибка появилась в 1.3.9. 2275 2276 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2277 если использовался модуль ngx_http_spdy_module. 2278 2279 *) Исправление: при использовании методов обработки соединений select, 2280 poll и /dev/poll проксируемые WebSocket-соединения могли зависать 2281 сразу после открытия. 2282 2283 *) Исправление: директива xclient почтового прокси-сервера некорректно 2284 передавала IPv6-адреса. 2285 2286 2287Изменения в nginx 1.5.8 17.12.2013 2288 2289 *) Добавление: теперь resolver поддерживает IPv6. 2290 2291 *) Добавление: директива listen поддерживает параметр fastopen. 2292 Спасибо Mathew Rodley. 2293 2294 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module. 2295 Спасибо Roberto De Ioris. 2296 2297 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib. 2298 Спасибо Evan Miller. 2299 2300 *) Исправление: при чтении тела запроса с использованием chunked 2301 transfer encoding по SSL-соединению мог произойти таймаут. 2302 2303 *) Исправление: директива master_process работала неправильно в 2304 nginx/Windows. 2305 2306 *) Исправление: параметр setfib директивы listen мог не работать. 2307 2308 *) Исправление: в модуле ngx_http_spdy_module. 2309 2310 2311Изменения в nginx 1.5.7 19.11.2013 2312 2313 *) Безопасность: символ, следующий за незакодированным пробелом в строке 2314 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась 2315 в 0.8.41. 2316 Спасибо Ivan Fratric из Google Security Team. 2317 2318 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии 2319 пароля понижен с уровня error до info. 2320 2321 *) Добавление: директивы proxy_cache_revalidate, 2322 fastcgi_cache_revalidate, scgi_cache_revalidate и 2323 uwsgi_cache_revalidate. 2324 2325 *) Добавление: директива ssl_session_ticket_key. 2326 Спасибо Piotr Sikora. 2327 2328 *) Исправление: директива "add_header Cache-Control ''" добавляла строку 2329 заголовка ответа "Cache-Control" с пустым значением. 2330 2331 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо 2332 401 при использовании директив auth_request и auth_basic. 2333 Спасибо Jan Marc Hoffmann. 2334 2335 *) Исправление: параметры accept_filter и deferred директивы listen 2336 игнорировались для listen-сокетов, создаваемых в процессе обновления 2337 исполняемого файла. 2338 Спасибо Piotr Sikora. 2339 2340 *) Исправление: часть данных, полученных от бэкенда при 2341 небуферизированном проксировании, могла не отправляться клиенту 2342 сразу, если использовались директивы gzip или gunzip. 2343 Спасибо Yichun Zhang. 2344 2345 *) Исправление: в обработке ошибок в модуле 2346 ngx_http_gunzip_filter_module. 2347 2348 *) Исправление: ответы могли зависать, если использовался модуль 2349 ngx_http_spdy_module и директива auth_request. 2350 2351 *) Исправление: утечки памяти в nginx/Windows. 2352 2353 2354Изменения в nginx 1.5.6 01.10.2013 2355 2356 *) Добавление: директива fastcgi_buffering. 2357 2358 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers. 2359 Спасибо Piotr Sikora. 2360 2361 *) Добавление: оптимизация SSL handshake при использовании длинных 2362 цепочек сертификатов. 2363 2364 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining. 2365 2366 *) Исправление: в модуле ngx_http_auth_basic_module при использовании 2367 метода шифрования паролей "$apr1$". 2368 Спасибо Markus Linnala. 2369 2370 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса 2371 мог использоваться неверный location, если для задания location'ов 2372 использовались символы разных регистров. 2373 2374 *) Исправление: автоматическое перенаправление с добавлением 2375 завершающего слэша для проксированных location'ов могло не работать. 2376 2377 *) Исправление: в почтовом прокси-сервере. 2378 2379 *) Исправление: в модуле ngx_http_spdy_module. 2380 2381 2382Изменения в nginx 1.5.5 17.09.2013 2383 2384 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно 2385 определить протокол не удалось. 2386 2387 *) Добавление: директива disable_symlinks теперь использует O_PATH на 2388 Linux. 2389 2390 *) Добавление: для определения того, что клиент закрыл соединение, при 2391 использовании метода epoll теперь используются события EPOLLRDHUP. 2392 2393 *) Исправление: в директиве valid_referers при использовании параметра 2394 server_names. 2395 2396 *) Исправление: переменная $request_time не работала в nginx/Windows. 2397 2398 *) Исправление: в директиве image_filter. 2399 Спасибо Lanshun Zhou. 2400 2401 *) Исправление: совместимость с OpenSSL 1.0.1f. 2402 Спасибо Piotr Sikora. 2403 2404 2405Изменения в nginx 1.5.4 27.08.2013 2406 2407 *) Изменение: MIME-тип для расширения js изменён на 2408 "application/javascript"; значение по умолчанию директивы 2409 charset_types изменено соответственно. 2410 2411 *) Изменение: теперь директива image_filter с параметром size возвращает 2412 ответ с MIME-типом "application/json". 2413 2414 *) Добавление: модуль ngx_http_auth_request_module. 2415 2416 *) Исправление: на старте или во время переконфигурации мог произойти 2417 segmentation fault, если использовалась директива try_files с пустым 2418 параметром. 2419 2420 *) Исправление: утечки памяти при использовании в директивах root и 2421 auth_basic_user_file относительных путей, заданных с помощью 2422 переменных. 2423 2424 *) Исправление: директива valid_referers неправильно выполняла 2425 регулярные выражения, если заголовок Referer начинался с "https://". 2426 Спасибо Liangbin Li. 2427 2428 *) Исправление: ответы могли зависать, если использовались подзапросы и 2429 при обработке подзапроса происходила ошибка во время SSL handshake с 2430 бэкендом. 2431 Спасибо Aviram Cohen. 2432 2433 *) Исправление: в модуле ngx_http_autoindex_module. 2434 2435 *) Исправление: в модуле ngx_http_spdy_module. 2436 2437 2438Изменения в nginx 1.5.3 30.07.2013 2439 2440 *) Изменение во внутреннем API: теперь при небуферизированной работе с 2441 бэкендами u->length по умолчанию устанавливается в -1. 2442 2443 *) Изменение: теперь при получении неполного ответа от бэкенда nginx 2444 отправляет полученную часть ответа, после чего закрывает соединение с 2445 клиентом. 2446 2447 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2448 если использовался модуль ngx_http_spdy_module и директива 2449 client_body_in_file_only. 2450 2451 *) Исправление: параметр so_keepalive директивы listen мог работать 2452 некорректно на DragonFlyBSD. 2453 Спасибо Sepherosa Ziehau. 2454 2455 *) Исправление: в модуле ngx_http_xslt_filter_module. 2456 2457 *) Исправление: в модуле ngx_http_sub_filter_module. 2458 2459 2460Изменения в nginx 1.5.2 02.07.2013 2461 2462 *) Добавление: теперь можно использовать несколько директив error_log. 2463 2464 *) Исправление: метод $r->header_in() встроенного перла не возвращал 2465 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса; 2466 ошибка появилась в 1.3.14. 2467 2468 *) Исправление: в модуле ngx_http_spdy_module. 2469 Спасибо Jim Radford. 2470 2471 *) Исправление: nginx не собирался на Linux при использовании x32 ABI. 2472 Спасибо Сергею Иванцову. 2473 2474 2475Изменения в nginx 1.5.1 04.06.2013 2476 2477 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и 2478 xslt_last_modified. 2479 Спасибо Алексею Колпакову. 2480 2481 *) Добавление: параметр http_403 в директивах proxy_next_upstream, 2482 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream. 2483 2484 *) Добавление: директивы allow и deny теперь поддерживают unix domain 2485 сокеты. 2486 2487 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без 2488 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14. 2489 2490 *) Исправление: в директиве proxy_set_body. 2491 Спасибо Lanshun Zhou. 2492 2493 *) Исправление: в директиве lingering_time. 2494 Спасибо Lanshun Zhou. 2495 2496 *) Исправление: параметр fail_timeout директивы server в блоке upstream 2497 мог не работать, если использовался параметр max_fails; ошибка 2498 появилась в 1.3.0. 2499 2500 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2501 если использовалась директива ssl_stapling. 2502 Спасибо Piotr Sikora. 2503 2504 *) Исправление: в почтовом прокси-сервере. 2505 Спасибо Filipe Da Silva. 2506 2507 *) Исправление: nginx/Windows мог перестать принимать соединения, если 2508 использовалось несколько рабочих процессов. 2509 2510 2511Изменения в nginx 1.5.0 07.05.2013 2512 2513 *) Безопасность: при обработке специально созданного запроса мог 2514 перезаписываться стек рабочего процесса, что могло приводить к 2515 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в 2516 1.3.9. 2517 Спасибо Greg MacManus, iSIGHT Partners Labs. 2518 2519 2520Изменения в nginx 1.4.0 24.04.2013 2521 2522 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если 2523 использовался параметр --with-openssl; ошибка появилась в 1.3.16. 2524 2525 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module; 2526 ошибка появилась в 1.3.9. 2527 2528 2529Изменения в nginx 1.3.16 16.04.2013 2530 2531 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2532 если использовались подзапросы; ошибка появилась в 1.3.9. 2533 2534 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании 2535 WebSocket-соединений в unix domain сокет. 2536 2537 *) Исправление: переменная $upstream_response_length возвращала значение 2538 "0", если не использовалась буферизация. 2539 Спасибо Piotr Sikora. 2540 2541 *) Исправление: в методах обработки соединений eventport и /dev/poll. 2542 2543 2544Изменения в nginx 1.3.15 26.03.2013 2545 2546 *) Изменение: открытие и закрытие соединения без отправки в нём 2547 каких-либо данных больше не записывается в access_log с кодом ошибки 2548 400. 2549 2550 *) Добавление: модуль ngx_http_spdy_module. 2551 Спасибо Automattic за спонсирование разработки. 2552 2553 *) Добавление: директивы limit_req_status и limit_conn_status. 2554 Спасибо Nick Marden. 2555 2556 *) Добавление: директива image_filter_interlace. 2557 Спасибо Ивану Боброву. 2558 2559 *) Добавление: переменная $connections_waiting в модуле 2560 ngx_http_stub_status_module. 2561 2562 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды. 2563 2564 *) Исправление: при повторной отправке запроса на бэкенд тело запроса 2565 могло передаваться неправильно; ошибка появилась в 1.3.9. 2566 Спасибо Piotr Sikora. 2567 2568 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в 2569 1.3.9. 2570 2571 *) Исправление: ответы могли зависать, если использовались подзапросы и 2572 при обработке подзапроса происходила DNS-ошибка. 2573 Спасибо Lanshun Zhou. 2574 2575 *) Исправление: в процедуре учёта использования бэкендов. 2576 2577 2578Изменения в nginx 1.3.14 05.03.2013 2579 2580 *) Добавление: переменные $connections_active, $connections_reading и 2581 $connections_writing в модуле ngx_http_stub_status_module. 2582 2583 *) Добавление: поддержка WebSocket-соединений в модулях 2584 ngx_http_uwsgi_module и ngx_http_scgi_module. 2585 2586 *) Исправление: в обработке виртуальных серверов при использовании SNI. 2587 2588 *) Исправление: при использовании директивы "ssl_session_cache shared" 2589 новые сессии могли не сохраняться, если заканчивалось место в 2590 разделяемой памяти. 2591 Спасибо Piotr Sikora. 2592 2593 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались 2594 неправильно. 2595 Спасибо Neal Poole за спонсирование разработки. 2596 2597 *) Исправление: в модуле ngx_http_mp4_module. 2598 Спасибо Gernot Vormayr. 2599 2600 2601Изменения в nginx 1.3.13 19.02.2013 2602 2603 *) Изменение: теперь для сборки по умолчанию используется компилятор с 2604 именем "cc". 2605 2606 *) Добавление: поддержка проксирования WebSocket-соединений. 2607 Спасибо Apcera и CloudBees за спонсирование разработки. 2608 2609 *) Добавление: директива auth_basic_user_file поддерживает шифрование 2610 паролей методом "{SHA}". 2611 Спасибо Louis Opter. 2612 2613 2614Изменения в nginx 1.3.12 05.02.2013 2615 2616 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind, 2617 scgi_bind и uwsgi_bind поддерживают переменные. 2618 2619 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и 2620 $time_local теперь можно использовать не только в директиве 2621 log_format. 2622 Спасибо Kiril Kalchev. 2623 2624 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module. 2625 Спасибо Gregor Kališnik. 2626 2627 *) Исправление: директива proxy_method работала неверно, если была 2628 указана на уровне http. 2629 2630 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2631 если использовался resolver и метод poll. 2632 2633 *) Исправление: nginx мог нагружать процессор во время SSL handshake с 2634 бэкендом при использовании методов обработки соединений select, poll 2635 и /dev/poll. 2636 2637 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)". 2638 2639 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в 2640 1.3.9. 2641 2642 *) Исправление: в директиве fastcgi_keep_conn. 2643 2644 2645Изменения в nginx 1.3.11 10.01.2013 2646 2647 *) Исправление: при записи в лог мог происходить segmentation fault; 2648 ошибка появилась в 1.3.10. 2649 2650 *) Исправление: директива proxy_pass не работала с IP-адресами без 2651 явного указания порта; ошибка появилась в 1.3.10. 2652 2653 *) Исправление: на старте или во время переконфигурации происходил 2654 segmentation fault, если директива keepalive была указана несколько 2655 раз в одном блоке upstream. 2656 2657 *) Исправление: параметр default директивы geo не определял значение по 2658 умолчанию для IPv6-адресов. 2659 2660 2661Изменения в nginx 1.3.10 25.12.2012 2662 2663 *) Изменение: для указанных в конфигурационном файле доменных имён 2664 теперь используются не только IPv4, но и IPv6 адреса. 2665 2666 *) Изменение: теперь при использовании директивы include с маской на 2667 Unix-системах включаемые файлы сортируются в алфавитном порядке. 2668 2669 *) Изменение: директива add_header добавляет строки в ответы с кодом 2670 201. 2671 2672 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате 2673 CIDR. 2674 2675 *) Добавление: параметры flush и gzip в директиве access_log. 2676 2677 *) Добавление: директива auth_basic поддерживает переменные. 2678 2679 *) Исправление: nginx в некоторых случаях не собирался с модулем 2680 ngx_http_perl_module. 2681 2682 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2683 если использовался модуль ngx_http_xslt_module. 2684 2685 *) Исправление: nginx мог не собираться на MacOSX. 2686 Спасибо Piotr Sikora. 2687 2688 *) Исправление: при использовании директивы limit_rate с большими 2689 значениями скорости на 32-битных системах ответ мог возвращаться не 2690 целиком. 2691 Спасибо Алексею Антропову. 2692 2693 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2694 если использовалась директива if. 2695 Спасибо Piotr Sikora. 2696 2697 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413 2698 Request Entity Too Large". 2699 2700 *) Исправление: директивы image_filter, image_filter_jpeg_quality и 2701 image_filter_sharpen могли наследоваться некорректно. 2702 Спасибо Ивану Боброву. 2703 2704 *) Исправление: при использовании директивы auth_basic под Linux могли 2705 возникать ошибки "crypt_r() failed". 2706 2707 *) Исправление: в обработке backup-серверов. 2708 Спасибо Thomas Chen. 2709 2710 *) Исправление: при проксировании HEAD-запросов мог возвращаться 2711 некорректный ответ, если использовалась директива gzip. 2712 2713 2714Изменения в nginx 1.3.9 27.11.2012 2715 2716 *) Добавление: поддержка chunked transfer encoding при получении тела 2717 запроса. 2718 2719 *) Добавление: переменные $request_time и $msec теперь можно 2720 использовать не только в директиве log_format. 2721 2722 *) Исправление: cache manager и cache loader могли не запускаться, если 2723 использовалось более 512 listen-сокетов. 2724 2725 *) Исправление: в модуле ngx_http_dav_module. 2726 2727 2728Изменения в nginx 1.3.8 30.10.2012 2729 2730 *) Добавление: параметр optional_no_ca директивы ssl_verify_client. 2731 Спасибо Михаилу Казанцеву и Eric O'Connor. 2732 2733 *) Добавление: переменные $bytes_sent, $connection и 2734 $connection_requests теперь можно использовать не только в директиве 2735 log_format. 2736 Спасибо Benjamin Grössing. 2737 2738 *) Добавление: параметр auto директивы worker_processes. 2739 2740 *) Исправление: сообщения "cache file ... has md5 collision". 2741 2742 *) Исправление: в модуле ngx_http_gunzip_filter_module. 2743 2744 *) Исправление: в директиве ssl_stapling. 2745 2746 2747Изменения в nginx 1.3.7 02.10.2012 2748 2749 *) Добавление: поддержка OCSP stapling. 2750 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки. 2751 2752 *) Добавление: директива ssl_trusted_certificate. 2753 2754 *) Добавление: теперь resolver случайным образом меняет порядок 2755 возвращаемых закэшированных адресов. 2756 Спасибо Антону Жулину. 2757 2758 *) Исправление: совместимость с OpenSSL 0.9.7. 2759 2760 2761Изменения в nginx 1.3.6 12.09.2012 2762 2763 *) Добавление: модуль ngx_http_gunzip_filter_module. 2764 2765 *) Добавление: директива memcached_gzip_flag. 2766 2767 *) Добавление: параметр always директивы gzip_static. 2768 2769 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14. 2770 Спасибо Charles Chen. 2771 2772 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если 2773 использовался параметр --with-ipv6. 2774 2775 2776Изменения в nginx 1.3.5 21.08.2012 2777 2778 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает 2779 дорожки в форматах, отличных от H.264 и AAC. 2780 2781 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2782 если в директиве map в качестве значений использовались переменные. 2783 2784 *) Исправление: в рабочем процессе мог произойти segmentation fault при 2785 использовании директивы geo с параметром ranges, но без параметра 2786 default; ошибка появилась в 0.8.43. 2787 Спасибо Zhen Chen и Weibin Yao. 2788 2789 *) Исправление: в обработке параметра командной строки -p. 2790 2791 *) Исправление: в почтовом прокси-сервере. 2792 2793 *) Исправление: незначительных потенциальных ошибок. 2794 Спасибо Coverity. 2795 2796 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express. 2797 Спасибо HAYASHI Kentaro. 2798 2799 2800Изменения в nginx 1.3.4 31.07.2012 2801 2802 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён 2803 по умолчанию. 2804 2805 *) Добавление: поддержка компилятора Clang. 2806 2807 *) Исправление: могли создаваться лишние слушающие сокеты. 2808 Спасибо Роману Одайскому. 2809 2810 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске 2811 рабочего процесса происходила ошибка. 2812 Спасибо Ricardo Villalobos Guevara. 2813 2814 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header, 2815 scgi_pass_header, uwsgi_pass_header, proxy_hide_header, 2816 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли 2817 наследоваться некорректно. 2818 2819 2820Изменения в nginx 1.3.3 10.07.2012 2821 2822 *) Добавление: поддержка entity tags и директива etag. 2823 2824 *) Исправление: при использовании директивы map с параметром hostnames 2825 не игнорировалась конечная точка в исходном значении. 2826 2827 *) Исправление: для обработки запроса мог использоваться неверный 2828 location, если переход в именованный location происходил после 2829 изменения URI с помощью директивы rewrite. 2830 2831 2832Изменения в nginx 1.3.2 26.06.2012 2833 2834 *) Изменение: параметр single директивы keepalive теперь игнорируется. 2835 2836 *) Изменение: сжатие SSL теперь отключено в том числе при использовании 2837 OpenSSL старее 1.0.0. 2838 2839 *) Добавление: директиву "ip_hash" теперь можно использовать для 2840 балансировки IPv6 клиентов. 2841 2842 *) Добавление: переменную $status теперь можно использовать не только в 2843 директиве log_format. 2844 2845 *) Исправление: при завершении рабочего процесса мог произойти 2846 segmentation fault, если использовалась директива resolver. 2847 2848 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2849 если использовался модуль ngx_http_mp4_module. 2850 2851 *) Исправление: в модуле ngx_http_mp4_module. 2852 2853 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2854 если использовались конфликтующие имена серверов с масками. 2855 2856 *) Исправление: на платформе ARM nginx мог аварийно завершаться по 2857 сигналу SIGBUS. 2858 2859 *) Исправление: во время переконфигурации на HP-UX в лог записывался 2860 alert "sendmsg() failed (9: Bad file number)". 2861 2862 2863Изменения в nginx 1.3.1 05.06.2012 2864 2865 *) Безопасность: теперь nginx/Windows игнорирует точку в конце 2866 компонента URI и не разрешает URI, содержащие последовательность 2867 ":$". 2868 Спасибо Владимиру Кочеткову, Positive Research Center. 2869 2870 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass 2871 и директива server в блоке upstream теперь поддерживают IPv6-адреса. 2872 2873 *) Добавление: в директиве resolver теперь можно указывать порт и 2874 задавать IPv6-адреса DNS-серверов. 2875 2876 *) Добавление: директива least_conn в блоке upstream. 2877 2878 *) Добавление: при использовании директивы ip_hash теперь можно задавать 2879 веса серверов. 2880 2881 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2882 если использовалась директива image_filter; ошибка появилась в 1.3.0. 2883 2884 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка 2885 появилась в 1.1.12. 2886 2887 *) Исправление: доступ к переменным из SSI и встроенного перла мог не 2888 работать после переконфигурации. 2889 Спасибо Yichun Zhang. 2890 2891 *) Исправление: в модуле ngx_http_xslt_filter_module. 2892 Спасибо Kuramoto Eiji. 2893 2894 *) Исправление: утечки памяти при использовании переменной $geoip_org. 2895 Спасибо Денису Латыпову. 2896 2897 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path. 2898 2899 2900Изменения в nginx 1.3.0 15.05.2012 2901 2902 *) Добавление: директива debug_connection теперь поддерживает 2903 IPv6-адреса и параметр "unix:". 2904 2905 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo 2906 теперь поддерживают IPv6-адреса. 2907 2908 *) Добавление: директивы real_ip_recursive, geoip_proxy и 2909 geoip_proxy_recursive. 2910 2911 *) Добавление: параметр proxy_recursive директивы geo. 2912 2913 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2914 если использовалась директива resolver. 2915 2916 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2917 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass 2918 и бэкенд возвращал некорректный ответ. 2919 2920 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2921 если использовалась директива rewrite и в новых аргументах запроса в 2922 строке замены использовались переменные. 2923 2924 *) Исправление: nginx мог нагружать процессор, если было достигнуто 2925 ограничение на количество открытых файлов. 2926 2927 *) Исправление: при использовании директивы proxy_next_upstream с 2928 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в 2929 блоке upstream был хотя бы один сервер с флагом backup. 2930 2931 *) Исправление: при использовании директивы ip_hash установка параметра 2932 down директивы server могла приводить к ненужному перераспределению 2933 клиентов между бэкендами. 2934 2935 *) Исправление: утечки сокетов. 2936 Спасибо Yichun Zhang. 2937 2938 *) Исправление: в модуле ngx_http_fastcgi_module. 2939 2940 2941Изменения в nginx 1.2.0 23.04.2012 2942 2943 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2944 если использовалась директива try_files; ошибка появилась в 1.1.19. 2945 2946 *) Исправление: ответ мог быть передан не полностью, если использовалось 2947 больше IOV_MAX буферов. 2948 2949 *) Исправление: в работе параметра crop директивы image_filter. 2950 Спасибо Maxim Bublis. 2951 2952 2953Изменения в nginx 1.1.19 12.04.2012 2954 2955 *) Безопасность: при обработке специально созданного mp4 файла модулем 2956 ngx_http_mp4_module могли перезаписываться области памяти рабочего 2957 процесса, что могло приводить к выполнению произвольного кода 2958 (CVE-2012-2089). 2959 Спасибо Matthew Daley. 2960 2961 *) Исправление: nginx/Windows мог завершаться аварийно. 2962 Спасибо Vincent Lee. 2963 2964 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е 2965 были помечены флагом backup. 2966 2967 *) Исправление: директивы allow и deny могли наследоваться некорректно, 2968 если в них использовались IPv6 адреса. 2969 2970 *) Исправление: директивы modern_browser и ancient_browser могли 2971 наследоваться некорректно. 2972 2973 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC. 2974 2975 *) Исправление: в модуле ngx_http_mp4_module. 2976 2977 2978Изменения в nginx 1.1.18 28.03.2012 2979 2980 *) Изменение: теперь keepalive соединения не запрещены для Safari по 2981 умолчанию. 2982 2983 *) Добавление: переменная $connection_requests. 2984 2985 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar, 2986 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space. 2987 2988 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD. 2989 2990 *) Добавление: директивы xslt_param и xslt_string_param. 2991 Спасибо Samuel Behan. 2992 2993 *) Исправление: в configure. 2994 Спасибо Piotr Sikora. 2995 2996 *) Исправление: в модуле ngx_http_xslt_filter_module. 2997 2998 *) Исправление: nginx не собирался на Debian GNU/Hurd. 2999 3000 3001Изменения в nginx 1.1.17 15.03.2012 3002 3003 *) Безопасность: содержимое ранее освобождённой памяти могло быть 3004 отправлено клиенту, если бэкенд возвращал специально созданный ответ. 3005 Спасибо Matthew Daley. 3006 3007 *) Исправление: при использовании встроенного перла из SSI. 3008 Спасибо Matthew Daley. 3009 3010 *) Исправление: в модуле ngx_http_uwsgi_module. 3011 3012 3013Изменения в nginx 1.1.16 29.02.2012 3014 3015 *) Изменение: ограничение на количество одновременных подзапросов 3016 поднято до 200. 3017 3018 *) Добавление: параметр from в директиве disable_symlinks. 3019 3020 *) Добавление: директивы return и error_page теперь могут использоваться 3021 для возврата перенаправлений с кодом 307. 3022 3023 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3024 если использовалась директива resolver и на глобальном уровне не была 3025 задана директива error_log. 3026 Спасибо Роману Арутюняну. 3027 3028 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3029 если использовались директивы "proxy_http_version 1.1" или 3030 "fastcgi_keep_conn on". 3031 3032 *) Исправление: утечек памяти. 3033 Спасибо Lanshun Zhou. 3034 3035 *) Исправление: в директиве disable_symlinks. 3036 3037 *) Исправление: при использовании ZFS размер кэша на диске мог считаться 3038 некорректно; ошибка появилась в 1.0.1. 3039 3040 *) Исправление: nginx не собирался компилятором icc 12.1. 3041 3042 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в 3043 1.1.15. 3044 3045 3046Изменения в nginx 1.1.15 15.02.2012 3047 3048 *) Добавление: директива disable_symlinks. 3049 3050 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path. 3051 3052 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream 3053 prematurely closed connection" вместо "upstream sent too big header". 3054 Спасибо Feibo Li. 3055 3056 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если 3057 использовался параметр --with-openssl. 3058 3059 *) Исправление: количество внутренних перенаправлений в именованные 3060 location'ы не ограничивалось. 3061 3062 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к 3063 ошибкам в модуле ngx_http_gzip_filter_module. 3064 3065 *) Исправление: при использовании директивы proxy_store с 3066 SSI-подзапросами временные файлы могли не удаляться. 3067 3068 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как 3069 $args) возвращали старое пустое закэшированное значение. 3070 3071 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3072 если одновременно создавалось слишком много SSI-подзапросов; ошибка 3073 появилась в 0.7.25. 3074 3075 3076Изменения в nginx 1.1.14 30.01.2012 3077 3078 *) Добавление: теперь можно указать несколько ограничений limit_req 3079 одновременно. 3080 3081 *) Исправление: в обработке ошибок при соединении с бэкендом. 3082 Спасибо Piotr Sikora. 3083 3084 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD. 3085 3086 *) Исправление: в инициализации библиотеки OpenSSL. 3087 3088 *) Исправление: директивы proxy_redirect могли наследоваться 3089 некорректно. 3090 3091 *) Исправление: утечки памяти при переконфигурации, если использовалась 3092 директива pcre_jit. 3093 3094 3095Изменения в nginx 1.1.13 16.01.2012 3096 3097 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols. 3098 3099 *) Исправление: параметры директивы limit_req наследовались некорректно; 3100 ошибка появилась в 1.1.12. 3101 3102 *) Исправление: директива proxy_redirect некорректно обрабатывала 3103 заголовок Refresh при использовании регулярных выражений. 3104 3105 *) Исправление: директива proxy_cache_use_stale с параметром error не 3106 возвращала ответ из кэша, если все бэкенды были признаны 3107 неработающими. 3108 3109 *) Исправление: директива worker_cpu_affinity могла не работать. 3110 3111 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 3112 1.1.12. 3113 3114 *) Исправление: в модуле ngx_http_mp4_module. 3115 3116 3117Изменения в nginx 1.1.12 26.12.2011 3118 3119 *) Изменение: после перенаправления запроса с помощью директивы 3120 error_page директива proxy_pass без URI теперь использует изменённый 3121 URI. 3122 Спасибо Lanshun Zhou. 3123 3124 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock, 3125 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout. 3126 3127 *) Добавление: директива pcre_jit. 3128 3129 *) Добавление: SSI команда if поддерживает выделения в регулярных 3130 выражениях. 3131 3132 *) Исправление: SSI команда if не работала внутри команды block. 3133 3134 *) Исправление: директивы limit_conn_log_level и limit_req_log_level 3135 могли не работать. 3136 3137 *) Исправление: директива limit_rate не позволяла передавать на полной 3138 скорости, даже если был указан очень большой лимит. 3139 3140 *) Исправление: директива sendfile_max_chunk не работала, если 3141 использовалась директива limit_rate. 3142 3143 *) Исправление: если в директиве proxy_pass использовались переменные и 3144 не был указан URI, всегда использовался URI исходного запроса. 3145 3146 *) Исправление: после перенаправления запроса с помощью директивы 3147 try_files директива proxy_pass без URI могла использовать URI 3148 исходного запроса. 3149 Спасибо Lanshun Zhou. 3150 3151 *) Исправление: в модуле ngx_http_scgi_module. 3152 3153 *) Исправление: в модуле ngx_http_mp4_module. 3154 3155 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9. 3156 3157 3158Изменения в nginx 1.1.11 12.12.2011 3159 3160 *) Добавление: параметр so_keepalive в директиве listen. 3161 Спасибо Всеволоду Стахову. 3162 3163 *) Добавление: параметр if_not_empty в директивах 3164 fastcgi/scgi/uwsgi_param. 3165 3166 *) Добавление: переменная $https. 3167 3168 *) Добавление: директива proxy_redirect поддерживает переменные в первом 3169 параметре. 3170 3171 *) Добавление: директива proxy_redirect поддерживает регулярные 3172 выражения. 3173 3174 *) Исправление: переменная $sent_http_cache_control могла содержать 3175 неверное значение при использовании директивы expires. 3176 Спасибо Yichun Zhang. 3177 3178 *) Исправление: директива read_ahead могла не работать при использовании 3179 совместно с try_files и open_file_cache. 3180 3181 *) Исправление: если в параметре inactive директивы proxy_cache_path 3182 было указано малое время, в рабочем процессе мог произойти 3183 segmentation fault. 3184 3185 *) Исправление: ответы из кэша могли зависать. 3186 3187 3188Изменения в nginx 1.1.10 30.11.2011 3189 3190 *) Исправление: при использовании AIO на Linux в рабочем процессе 3191 происходил segmentation fault; ошибка появилась в 1.1.9. 3192 3193 3194Изменения в nginx 1.1.9 28.11.2011 3195 3196 *) Изменение: теперь двойные кавычки экранируется при выводе 3197 SSI-командой echo. 3198 Спасибо Зауру Абасмирзоеву. 3199 3200 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь 3201 используется TTL, возвращённый DNS-сервером. 3202 Спасибо Кириллу Коринскому. 3203 3204 *) Исправление: nginx мог перестать отвечать, если рабочий процесс 3205 завершался аварийно. 3206 3207 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3208 если использовалось SNI; ошибка появилась в 1.1.2. 3209 3210 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8. 3211 Спасибо Александру Усову. 3212 3213 *) Исправление: сигнал SIGWINCH переставал работать после первого 3214 обновления исполняемого файла; ошибка появилась в 1.1.1. 3215 3216 *) Исправление: теперь ответы бэкендов, длина которых не соответствует 3217 заголовку Content-Length, не кэширутся. 3218 3219 *) Исправление: в директиве scgi_param при использовании составных 3220 параметров. 3221 3222 *) Исправление: в методе epoll. 3223 Спасибо Yichun Zhang. 3224 3225 *) Исправление: в модуле ngx_http_flv_module. 3226 Спасибо Piotr Sikora. 3227 3228 *) Исправление: в модуле ngx_http_mp4_module. 3229 3230 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в 3231 заголовке Host. 3232 3233 *) Исправление: директивы add_header и expires не работали для ответов с 3234 кодом 206, если запрос проксировался. 3235 3236 *) Исправление: nginx не собирался на FreeBSD 10. 3237 3238 *) Исправление: nginx не собирался на AIX. 3239 3240 3241Изменения в nginx 1.1.8 14.11.2011 3242 3243 *) Изменение: модуль ngx_http_limit_zone_module переименован в 3244 ngx_http_limit_conn_module. 3245 3246 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с 3247 новым синтаксисом. 3248 3249 *) Добавление: поддержка ограничения по нескольким limit_conn на одном 3250 уровне. 3251 3252 *) Добавление: директива image_filter_sharpen. 3253 3254 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3255 если resolver получил большой DNS-ответ. 3256 Спасибо Ben Hawkes. 3257 3258 *) Исправление: в вычислении ключа для кэширования, если использовалась 3259 внутренняя реализация MD5; ошибка появилась в 1.0.4. 3260 3261 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в 3262 заголовке запроса клиента могли передаваться бэкенду при кэшировании; 3263 или не передаваться при выключенном кэшировании, если кэширование 3264 было включено в другой части конфигурации. 3265 3266 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку 3267 "Content-Length" в заголовке ответа, использовался аргумент start. 3268 Спасибо Piotr Sikora. 3269 3270 3271Изменения в nginx 1.1.7 31.10.2011 3272 3273 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver". 3274 Спасибо Кириллу Коринскому. 3275 3276 *) Исправление: на старте или во время переконфигурации происходил 3277 segmentation fault, если директива ssl использовалась на уровне http 3278 и не был указан ssl_certificate. 3279 3280 *) Исправление: уменьшено потребление памяти при проксировании больших 3281 файлов, если они буферизировались на диск. 3282 3283 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3284 если использовалась директива "proxy_http_version 1.1". 3285 3286 *) Исправление: в директиве "expires @time". 3287 3288 3289Изменения в nginx 1.1.6 17.10.2011 3290 3291 *) Изменение во внутреннем API: теперь при внутреннем редиректе в 3292 именованный location контексты модулей очищаются. 3293 По запросу Yichun Zhang. 3294 3295 *) Изменение: теперь если сервер, описанный в блоке upstream, был 3296 признан неработающим, то после истечения fail_timeout на него будет 3297 отправлен только один запрос; сервер будет считаться работающим, если 3298 успешно ответит на этот запрос. 3299 3300 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде 3301 \xXX. 3302 3303 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" 3304 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и 3305 X-Accel-Charset. 3306 3307 *) Добавление: уменьшение потребления памяти при использовании SSL. 3308 3309 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно. 3310 Спасибо Алексею Куцу. 3311 3312 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на 3313 уровне server, применялись повторно, если для запроса не находилось 3314 ни одного location'а. 3315 3316 *) Исправление: при использовании "aio sendfile" могла происходить 3317 утечка сокетов. 3318 3319 *) Исправление: при использовании файлового AIO соединения с быстрыми 3320 клиентами могли быть закрыты по истечению send_timeout. 3321 3322 *) Исправление: в модуле ngx_http_autoindex_module. 3323 3324 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на 3325 32-битных платформах. 3326 3327 3328Изменения в nginx 1.1.5 05.10.2011 3329 3330 *) Добавление: директивы uwsgi_buffering и scgi_buffering. 3331 Спасибо Peter Smit. 3332 3333 *) Исправление: при использовании proxy_cache_bypass могли быть 3334 закэшированы некэшируемые ответы. 3335 Спасибо John Ferlito. 3336 3337 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по 3338 HTTP/1.1. 3339 3340 *) Исправление: закэшированные ответы с пустым телом возвращались 3341 некорректно; ошибка появилась в 0.8.31. 3342 3343 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были 3344 некорректны; ошибка появилась в 0.8.32. 3345 3346 *) Исправление: в директиве return. 3347 3348 *) Исправление: при использовании директивы "ssl_session_cache builtin" 3349 происходил segmentation fault; ошибка появилась в 1.1.1. 3350 3351 3352Изменения в nginx 1.1.4 20.09.2011 3353 3354 *) Добавление: модуль ngx_http_upstream_keepalive. 3355 3356 *) Добавление: директива proxy_http_version. 3357 3358 *) Добавление: директива fastcgi_keep_conn. 3359 3360 *) Добавление: директива worker_aio_requests. 3361 3362 *) Исправление: если nginx был собран с файловым AIO, он не мог 3363 запускаться на Linux без поддержки AIO. 3364 3365 *) Исправление: в обработке ошибок при работе с Linux AIO. 3366 Спасибо Hagai Avrahami. 3367 3368 *) Исправление: уменьшено потребление памяти для долгоживущих запросов. 3369 3370 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный 3371 MP4-атом co64. 3372 3373 3374Изменения в nginx 1.1.3 14.09.2011 3375 3376 *) Добавление: модуль ngx_http_mp4_module. 3377 3378 *) Исправление: в Linux AIO, используемым совместно с open_file_cache. 3379 3380 *) Исправление: open_file_cache не обновлял информацию о файле, если 3381 файл был изменён не атомарно. 3382 3383 *) Исправление: nginx не собирался на MacOSX 10.7. 3384 3385 3386Изменения в nginx 1.1.2 05.09.2011 3387 3388 *) Изменение: теперь, если суммарный размер всех диапазонов больше 3389 размера исходного ответа, то nginx возвращает только исходный ответ, 3390 не обрабатывая диапазоны. 3391 3392 *) Добавление: директива max_ranges. 3393 3394 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и 3395 ssl_prefer_server_cipher могли работать некорректно, если 3396 использовался SNI. 3397 3398 *) Исправление: в директивах proxy/fastcgi/scgi/ 3399 uwsgi_ignore_client_abort. 3400 3401 3402Изменения в nginx 1.1.1 22.08.2011 3403 3404 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает 3405 число файлов, указанное в параметре load_files, либо работает не 3406 дольше времени, указанного в параметре loader_threshold. 3407 3408 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона. 3409 3410 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX 3411 на Solaris. 3412 Спасибо Денису Иванову. 3413 3414 *) Добавление: теперь на NetBSD поддерживаются accept фильтры. 3415 3416 *) Исправление: nginx не собирался на Linux 3.0. 3417 3418 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка 3419 появилась в 1.1.0. 3420 3421 *) Исправление: обработка тела запроса могла быть неверной, если клиент 3422 использовал pipelining. 3423 3424 *) Исправление: в директиве request_body_in_single_buf. 3425 3426 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body 3427 при использовании SSL-соединения с бэкендом. 3428 3429 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е 3430 были помечены флагом down. 3431 3432 *) Исправление: при переконфигурации мог произойти segmentation fault, 3433 если в предыдущей конфигурации был определён, но не использовался 3434 ssl_session_cache. 3435 3436 *) Исправление: при использовании большого количества backup-серверов в 3437 рабочем процессе мог произойти segmentation fault. 3438 3439 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со 3440 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог 3441 произойти segmentation fault; ошибка появилась в 0.8.40. 3442 3443 3444Изменения в nginx 1.1.0 01.08.2011 3445 3446 *) Добавление: уменьшение времени работы загрузчика кэша. 3447 3448 *) Добавление: параметры loader_files, loader_sleep и loader_threshold 3449 директив proxy/fastcgi/scgi/uwsgi_cache_path. 3450 3451 *) Добавление: уменьшение времени загрузки конфигураций с большим 3452 количеством HTTPS серверов. 3453 3454 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами. 3455 Спасибо Adrian Kotelba. 3456 3457 *) Добавление: директива lingering_close. 3458 Спасибо Максиму Дунину. 3459 3460 *) Исправление: закрытия соединения для pipelined-запросов. 3461 Спасибо Максиму Дунину. 3462 3463 *) Исправление: nginx не запрещал сжатие при получении значения 3464 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента. 3465 3466 *) Исправление: таймаута при небуферизированном проксировании. 3467 Спасибо Максиму Дунину. 3468 3469 *) Исправление: утечки памяти при использовании переменных в директиве 3470 proxy_pass при работе с бэкендом по HTTPS. 3471 Спасибо Максиму Дунину. 3472 3473 *) Исправление: в проверке параметра директивы proxy_pass, заданного 3474 переменными. 3475 Спасибо Lanshun Zhou. 3476 3477 *) Исправление: SSL не работал на QNX. 3478 Спасибо Максиму Дунину. 3479 3480 *) Исправление: SSL модули не собирались gcc 4.6 без параметра 3481 --with-debug. 3482 3483 3484Изменения в nginx 1.0.5 19.07.2011 3485 3486 *) Изменение: теперь по умолчанию используются следующие шифры SSL: 3487 "HIGH:!aNULL:!MD5". 3488 Спасибо Rob Stradling. 3489 3490 *) Добавление: директивы referer_hash_max_size и 3491 referer_hash_bucket_size. 3492 Спасибо Witold Filipczyk. 3493 3494 *) Добавление: переменная $uid_reset. 3495 3496 *) Исправление: при использовании кэширования в рабочем процессе мог 3497 произойти segmentation fault. 3498 Спасибо Lanshun Zhou. 3499 3500 *) Исправление: при использовании кэширования рабочие процессы могли 3501 зациклиться во время переконфигурации; ошибка появилась в 0.8.48. 3502 Спасибо Максиму Дунину. 3503 3504 *) Исправление: сообщения "stalled cache updating". 3505 Спасибо Максиму Дунину. 3506 3507 3508Изменения в nginx 1.0.4 01.06.2011 3509 3510 *) Изменение: теперь в регулярных выражениях в директиве map можно 3511 задать чувствительность к регистру с помощью префиксов "~" и "~*". 3512 3513 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX 3514 на Linux. 3515 Спасибо Денису Латыпову. 3516 3517 *) Исправление: сообщения "stalled cache updating". 3518 3519 *) Исправление: nginx не собирался с параметром 3520 --without-http_auth_basic_module; ошибка появилась в 1.0.3. 3521 3522 3523Изменения в nginx 1.0.3 25.05.2011 3524 3525 *) Добавление: директива auth_basic_user_file поддерживает шифрование 3526 пароля методами "$apr1", "{PLAIN}" и "{SSHA}". 3527 Спасибо Максиму Дунину. 3528 3529 *) Добавление: директива geoip_org и переменная $geoip_org. 3530 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову. 3531 3532 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module 3533 поддерживают адреса IPv4, отображённые на IPv6 адреса. 3534 3535 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в 3536 рабочем процессе происходил segmentation fault, если директивы access 3537 или deny были определены только для адресов IPv6; ошибка появилась в 3538 0.8.22. 3539 3540 *) Исправление: закэшированный ответ мог быть испорчен, если значения 3541 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/ 3542 uwsgi_no_cache были разными; ошибка появилась в 0.8.46. 3543 3544 3545Изменения в nginx 1.0.2 10.05.2011 3546 3547 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX. 3548 3549 *) Исправление: в работе параметра rotate директивы image_filter. 3550 Спасибо Adam Bocim. 3551 3552 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1. 3553 3554 3555Изменения в nginx 1.0.1 03.05.2011 3556 3557 *) Изменение: теперь директива split_clients использует алгоритм 3558 MurmurHash2 из-за лучшего распределения. 3559 Спасибо Олегу Мамонтову. 3560 3561 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются 3562 ложными значениями. 3563 Спасибо Максиму Дунину. 3564 3565 *) Изменение: теперь по умолчанию nginx использует значение 511 для 3566 listen backlog на Linux. 3567 3568 *) Добавление: переменные $upstream_... можно использовать в SSI и 3569 перловом модулях. 3570 3571 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске. 3572 Спасибо Олегу Мамонтову. 3573 3574 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти 3575 segmentation fault; ошибка появилась в 0.8.22. 3576 Спасибо Максиму Дунину. 3577 3578 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug. 3579 3580 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка 3581 появилась в 0.9.3. 3582 Спасибо Dagobert Michelsen. 3583 3584 *) Исправление: переменная $request_time имела неверные значения, если 3585 использовались подзапросы; ошибка появилась в 0.8.47. 3586 Спасибо Игорю А. Валькову. 3587 3588 3589Изменения в nginx 1.0.0 12.04.2011 3590 3591 *) Исправление: cache manager мог нагружать процессор после 3592 переконфигурации. 3593 Спасибо Максиму Дунину. 3594 3595 *) Исправление: директива "image_filter crop" неправильно работала в 3596 сочетании с "image_filter rotate 180". 3597 3598 *) Исправление: директива "satisfy any" запрещала выдачу 3599 пользовательской страницы для 401 кода. 3600 3601 3602Изменения в nginx 0.9.7 04.04.2011 3603 3604 *) Добавление: теперь соединения в состоянии keepalive могут быть 3605 закрыты преждевременно, если у воркера нет свободных соединений. 3606 Спасибо Максиму Дунину. 3607 3608 *) Добавление: параметр rotate директивы image_filter. 3609 Спасибо Adam Bocim. 3610 3611 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass, 3612 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный 3613 upstream. 3614 3615 3616Изменения в nginx 0.9.6 21.03.2011 3617 3618 *) Добавление: директива map поддерживает регулярные выражения в 3619 качестве значения первого параметра. 3620 3621 *) Добавление: переменная $time_iso8601 для access_log. 3622 Спасибо Michael Lustfield. 3623 3624 3625Изменения в nginx 0.9.5 21.02.2011 3626 3627 *) Изменение: теперь по умолчанию nginx использует значение -1 для 3628 listen backlog на Linux. 3629 Спасибо Андрею Нигматулину. 3630 3631 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city. 3632 Спасибо Денису Латыпову. 3633 3634 *) Исправление: исправление в умолчательной директиве proxy_redirect, 3635 если в директиве proxy_pass не был описан URI. 3636 Спасибо Максиму Дунину. 3637 3638 *) Исправление: директива error_page не работала с нестандартными кодами 3639 ошибок; ошибка появилась в 0.8.53. 3640 Спасибо Максиму Дунину. 3641 3642 3643Изменения в nginx 0.9.4 21.01.2011 3644 3645 *) Добавление: директива server_name поддерживает переменную $hostname. 3646 3647 *) Добавление: 494 код для ошибки "Request Header Too Large". 3648 3649 3650Изменения в nginx 0.9.3 13.12.2010 3651 3652 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер, 3653 то выделения в регулярных выражениях в директиве server_name не 3654 работали. 3655 3656 *) Исправление: nginx не собирался под Solaris; ошибка появилась в 3657 0.9.0. 3658 3659 3660Изменения в nginx 0.9.2 06.12.2010 3661 3662 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке 3663 запроса клиента. 3664 3665 *) Изменение: использование accept(), если accept4() не реализован; 3666 ошибка появилась в 0.9.0. 3667 3668 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0. 3669 3670 *) Исправление: уязвимости в OpenSSL CVE-2010-4180. 3671 Спасибо Максиму Дунину. 3672 3673 3674Изменения в nginx 0.9.1 30.11.2010 3675 3676 *) Исправление: директивы вида "return CODE message" не работали; ошибка 3677 появилась в 0.9.0. 3678 3679 3680Изменения в nginx 0.9.0 29.11.2010 3681 3682 *) Добавление: директива keepalive_disable. 3683 3684 *) Добавление: директива map поддерживает переменные в качестве значения 3685 определяемой переменной. 3686 3687 *) Добавление: директива map поддерживает пустые строки в качестве 3688 значения первого параметра. 3689 3690 *) Добавление: директива map поддерживает выражения в первом параметре. 3691 3692 *) Добавление: страница руководства nginx(8). 3693 Спасибо Сергею Осокину. 3694 3695 *) Добавление: поддержка accept4() в Linux. 3696 Спасибо Simon Liu. 3697 3698 *) Изменение: устранение предупреждения линкера о "sys_errlist" и 3699 "sys_nerr" под Linux; предупреждение появилось в 0.8.35. 3700 3701 *) Исправление: при использовании директивы auth_basic в рабочем 3702 процессе мог произойти segmentation fault. 3703 Спасибо Михаилу Лалетину. 3704 3705 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка 3706 появилась в 0.8.42. 3707 3708 3709Изменения в nginx 0.8.53 18.10.2010 3710 3711 *) Добавление: теперь директива error_page позволяет менять код статуса 3712 у редиректа. 3713 3714 *) Добавление: директива gzip_disable поддерживает специальную маску 3715 degradation. 3716 3717 *) Исправление: при использовании файлового AIO могла происходить утечка 3718 сокетов. 3719 Спасибо Максиму Дунину. 3720 3721 *) Исправление: если в первом сервере не была описана директива listen и 3722 нигде явно не описан сервер по умолчанию, то сервером по умолчанию 3723 становился следующий сервер с директивой listen; ошибка появилась в 3724 0.8.21. 3725 3726 3727Изменения в nginx 0.8.52 28.09.2010 3728 3729 *) Исправление: nginx использовал режим SSL для listen сокета, если для 3730 него был установлен любой listen-параметр; ошибка появилась в 0.8.51. 3731 3732 3733Изменения в nginx 0.8.51 27.09.2010 3734 3735 *) Изменение: директива secure_link_expires упразднена. 3736 3737 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня 3738 alert на error. 3739 3740 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать 3741 несколько раз. 3742 3743 3744Изменения в nginx 0.8.50 02.09.2010 3745 3746 *) Добавление: директивы secure_link, secure_link_md5 и 3747 secure_link_expires модуля ngx_http_secure_link_module. 3748 3749 *) Добавление: ключ -q. 3750 Спасибо Геннадию Махомеду. 3751 3752 *) Исправление: при использовании кэширования рабочие процессы и могли 3753 зациклиться во время переконфигурации; ошибка появилась в 0.8.48. 3754 3755 *) Исправление: в директиве gzip_disable. 3756 Спасибо Derrick Petzold. 3757 3758 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit, 3759 reopen, reload процессу, запущенному в другой сессии. 3760 3761 3762Изменения в nginx 0.8.49 09.08.2010 3763 3764 *) Добавление: директива image_filter_jpeg_quality поддерживает 3765 переменные. 3766 3767 *) Исправление: при использовании переменной $geoip_region_name в 3768 рабочем процессе мог произойти segmentation fault; ошибка появилась в 3769 0.8.48. 3770 3771 *) Исправление: ошибки, перехваченные error_page, кэшировались только до 3772 следующего запроса; ошибка появилась в 0.8.48. 3773 3774 3775Изменения в nginx 0.8.48 03.08.2010 3776 3777 *) Изменение: теперь по умолчанию директива server_name имеет значение 3778 пустое имя "". 3779 Спасибо Геннадию Махомеду. 3780 3781 *) Изменение: теперь по умолчанию директива server_name_in_redirect 3782 имеет значение off. 3783 3784 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и 3785 $geoip_region_name. 3786 Спасибо Christine McGonagle. 3787 3788 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и 3789 scgi_pass не наследовались в блоки limit_except. 3790 3791 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses 3792 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка 3793 появилась в 0.8.46. 3794 3795 *) Исправление: директива fastcgi_split_path_info неверно использовала 3796 выделения, если в выделения попадала только часть URI. 3797 Спасибо Юрию Тарадаю и Frank Enderle. 3798 3799 *) Исправление: директива rewrite не экранировала символ ";" при 3800 копировании из URI в аргументы. 3801 Спасибо Daisuke Murase. 3802 3803 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение, 3804 если изображение было больше размера image_filter_buffer. 3805 3806 3807Изменения в nginx 0.8.47 28.07.2010 3808 3809 *) Исправление: переменная $request_time имела неверные значения для 3810 подзапросов. 3811 3812 *) Исправление: ошибки, перехваченные error_page, не кэшировались. 3813 3814 *) Исправление: если использовался параметр max_size, то cache manager 3815 мог зациклиться; ошибка появилась в 0.8.46. 3816 3817 3818Изменения в nginx 0.8.46 19.07.2010 3819 3820 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache 3821 и scgi_no_cache теперь влияют только на сохранение закэшированного 3822 ответа. 3823 3824 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass, 3825 uwsgi_cache_bypass и scgi_cache_bypass. 3826 3827 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае 3828 ошибки работы с бэкендом: память освобождалась только по истечении 3829 времени неактивности или при недостатке памяти. 3830 3831 3832Изменения в nginx 0.8.45 13.07.2010 3833 3834 *) Добавление: улучшения в модуле ngx_http_xslt_filter. 3835 Спасибо Laurence Rowe. 3836 3837 *) Исправление: ответ SSI модуля мог передаваться не полностью после 3838 команды include с параметром wait="yes"; ошибка появилась в 0.7.25. 3839 Спасибо Максиму Дунину. 3840 3841 *) Исправление: директива listen не поддерживала параметр setfib=0. 3842 3843 3844Изменения в nginx 0.8.44 05.07.2010 3845 3846 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в 3847 заголовке которых есть строка "Set-Cookie". 3848 3849 *) Добавление: директива listen поддерживает параметр setfib. 3850 Спасибо Андрею Филонову. 3851 3852 *) Исправление: директива sub_filter могла изменять регистр букв при 3853 частичном совпадении. 3854 3855 *) Исправление: совместимость с HP/UX. 3856 3857 *) Исправление: совместимость с компилятором AIX xlC_r. 3858 3859 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые 3860 запросы. 3861 Спасибо Miroslaw Jaworski. 3862 3863 3864Изменения в nginx 0.8.43 30.06.2010 3865 3866 *) Добавление: ускорение загрузки больших баз geo-диапазонов. 3867 3868 *) Исправление: перенаправление ошибки в "location /zero {return 204;}" 3869 без изменения кода ответа оставляло тело ошибки; ошибка появилась в 3870 0.8.42. 3871 3872 *) Исправление: nginx мог закрывать IPv6 listen сокет во время 3873 переконфигурации. 3874 Спасибо Максиму Дунину. 3875 3876 *) Исправление: переменную $uid_set можно использовать на любой стадии 3877 обработки запроса. 3878 3879 3880Изменения в nginx 0.8.42 21.06.2010 3881 3882 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными 3883 выражениями, если запрос полностью совпал с location'ом, заданным 3884 строкой префикса. Предыдущее поведение появилось в 0.7.1. 3885 3886 *) Добавление: модуль ngx_http_scgi_module. 3887 Спасибо Manlio Perillo. 3888 3889 *) Добавление: в директиве return можно добавлять текст ответа. 3890 3891 3892Изменения в nginx 0.8.41 15.06.2010 3893 3894 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно 3895 при запросе файла с неверной кодировкой UTF-8. 3896 3897 *) Изменение: теперь nginx разрешает использовать пробелы в строке 3898 запроса. 3899 3900 *) Исправление: директива proxy_redirect неправильно изменяла строку 3901 "Refresh" в заголовке ответа бэкенда. 3902 Спасибо Андрею Андрееву и Максиму Согину. 3903 3904 *) Исправление: nginx не поддерживал путь без имени хоста в строке 3905 "Destination" в заголовке запроса. 3906 3907 3908Изменения в nginx 0.8.40 07.06.2010 3909 3910 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по 3911 умолчанию. 3912 Спасибо Jose Antonio Vazquez Gonzalez. 3913 3914 *) Добавление: модуль ngx_http_uwsgi_module. 3915 Спасибо Roberto De Ioris. 3916 3917 *) Добавление: директива fastcgi_param со значением, начинающимся со 3918 строки "HTTP_", изменяет строку заголовка в запросе клиента. 3919 3920 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в 3921 заголовке запроса клиента передавались FastCGI-серверу при 3922 кэшировании. 3923 3924 *) Исправление: listen unix domain сокет нельзя было изменить во время 3925 переконфигурации. 3926 Спасибо Максиму Дунину. 3927 3928 3929Изменения в nginx 0.8.39 31.05.2010 3930 3931 *) Исправление: наследуемая директива alias неправильно работала во 3932 вложенном location'е. 3933 3934 *) Исправление: в комбинации директив alias с переменными и try_files; 3935 3936 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во 3937 время обновления без перерыва. 3938 Спасибо Максиму Дунину. 3939 3940 3941Изменения в nginx 0.8.38 24.05.2010 3942 3943 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache. 3944 3945 *) Добавление: теперь при использовании переменной $scheme в директиве 3946 rewrite автоматически делается редирект. 3947 Спасибо Piotr Sikora. 3948 3949 *) Исправление: теперь задержки в директиве limit_req соответствует 3950 описанному алгоритму. 3951 Спасибо Максиму Дунину. 3952 3953 *) Исправление: переменную $uid_got нельзя было использовать в SSI и 3954 перловом модулях. 3955 3956 3957Изменения в nginx 0.8.37 17.05.2010 3958 3959 *) Добавление: модуль ngx_http_split_clients_module. 3960 3961 *) Добавление: директива map поддерживает ключи больше 255 символов. 3962 3963 *) Исправление: nginx игнорировал значения "private" и "no-store" в 3964 строке "Cache-Control" в заголовке ответа бэкенда. 3965 3966 *) Исправление: параметр stub в SSI-директиве include не использовался, 3967 если пустой ответ имел код 200. 3968 3969 *) Исправление: если проксированный или FastCGI запрос внутренне 3970 перенаправлялся в другой проксированный или FastCGI location, то в 3971 рабочем процессе мог произойти segmentation fault; ошибка появилась в 3972 0.8.33. 3973 Спасибо Yichun Zhang. 3974 3975 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до 3976 таймаута. 3977 Спасибо Alan Batie. 3978 3979 3980Изменения в nginx 0.8.36 22.04.2010 3981 3982 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал 3983 методы DELETE, COPY и MOVE для симлинков. 3984 3985 *) Исправление: модуль SSI в подзапросах использовал закэшированные в 3986 основном запросе значения переменных $query_string, $arg_... и им 3987 подобных. 3988 3989 *) Исправление: значение переменной повторно экранировалось после 3990 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14. 3991 3992 *) Исправление: рабочий процесс зависал при запросе файла FIFO. 3993 Спасибо Vicente Aguilar и Максиму Дунину. 3994 3995 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux. 3996 Спасибо Максиму Дунину. 3997 3998 *) Исправление: nginx не собирался с параметром --without-http-cache; 3999 ошибка появилась в 0.8.35. 4000 4001 4002Изменения в nginx 0.8.35 01.04.2010 4003 4004 *) Изменение: теперь charset-фильтр работает до SSI-фильтра. 4005 4006 *) Добавление: директива chunked_transfer_encoding. 4007 4008 *) Исправление: символ "&" при копировании в аргументы в правилах 4009 rewrite не экранировался. 4010 4011 *) Исправление: nginx мог завершаться аварийно во время обработки 4012 сигнала или при использовании директивы timer_resolution на 4013 платформах, не поддерживающих методы kqueue или eventport. 4014 Спасибо George Xie и Максиму Дунину. 4015 4016 *) Исправление: если временные файлы и постоянное место хранения 4017 располагались на разных файловых системах, то у постоянных файлов 4018 время изменения было неверным. 4019 Спасибо Максиму Дунину. 4020 4021 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку 4022 "memcached sent invalid trailer". 4023 Спасибо Максиму Дунину. 4024 4025 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных 4026 текстов. 4027 Спасибо Максиму Дунину. 4028 4029 *) Исправление: в рабочем процессе происходил segmentation fault, если 4030 перед ответом FastCGI-сервера было много вывода в stderr; ошибка 4031 появилась в 0.8.34. 4032 Спасибо Максиму Дунину. 4033 4034 4035Изменения в nginx 0.8.34 03.03.2010 4036 4037 *) Исправление: nginx не поддерживал все шифры, используемые в 4038 клиентских сертификатах. 4039 Спасибо Иннокентию Еникееву. 4040 4041 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед 4042 ответом было много вывода в stderr. 4043 4044 *) Исправление: nginx не поддерживал HTTPS-рефереры. 4045 4046 *) Исправление: nginx/Windows мог не находить файлы, если путь в 4047 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33. 4048 4049 *) Исправление: переменная $date_local выдавала неверное время, если 4050 использовался формат "%s". 4051 Спасибо Максиму Дунину. 4052 4053 *) Исправление: если ssl_session_cache не был установлен или установлен 4054 в none, то при проверке клиентского сертификаты могла происходить 4055 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1. 4056 4057 *) Исправление: geo-диапазон возвращал значение по умолчанию, если 4058 диапазон включал в себя одну и более сетей размером /16 и не 4059 начинался на границе сети размером /16. 4060 4061 *) Исправление: блок, используемый в параметре stub в SSI-директиве 4062 include, выводился с MIME-типом "text/plain". 4063 4064 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11. 4065 4066 4067Изменения в nginx 0.8.33 01.02.2010 4068 4069 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI. 4070 Спасибо Dan Crowley, Core Security Technologies. 4071 4072 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов. 4073 Спасибо Dan Crowley, Core Security Technologies. 4074 4075 *) Изменение: теперь keepalive соединения после запросов POST не 4076 запрещаются для MSIE 7.0+. 4077 Спасибо Adam Lounds. 4078 4079 *) Изменение: теперь keepalive соединения запрещены для Safari. 4080 Спасибо Joshua Sierles. 4081 4082 *) Исправление: если проксированный или FastCGI запрос внутренне 4083 перенаправлялся в другой проксированный или FastCGI location, то 4084 переменная $upstream_response_time могла иметь ненормально большое 4085 значение; ошибка появилась в 0.8.7. 4086 4087 *) Исправление: в рабочем процессе мог произойти segmentation fault при 4088 отбрасывания тела запроса; ошибка появилась в 0.8.11. 4089 4090 4091Изменения в nginx 0.8.32 11.01.2010 4092 4093 *) Исправление: ошибки при использовании кодировки UTF-8 в 4094 ngx_http_autoindex_module. 4095 Спасибо Максиму Дунину. 4096 4097 *) Исправление: именованные выделения в регулярных выражениях работали 4098 только для двух переменных. 4099 Спасибо Максиму Дунину. 4100 4101 *) Исправление: теперь в строке заголовка запроса "Host" используется 4102 имя "localhost", если в директиве auth_http указан unix domain сокет. 4103 Спасибо Максиму Дунину. 4104 4105 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых 4106 ответов. 4107 Спасибо Julian Reich. 4108 4109 *) Исправление: если директива "expires modified" выставляла дату в 4110 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось 4111 отрицательное число. 4112 Спасибо Алексею Капранову. 4113 4114 4115Изменения в nginx 0.8.31 23.12.2009 4116 4117 *) Добавление: теперь директива error_page может перенаправлять ответы 4118 со статусом 301 и 302. 4119 4120 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и 4121 $geoip_longitude. 4122 Спасибо Arvind Sundararajan. 4123 4124 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет 4125 EXIF и другие данные, если они занимают больше 5% в JPEG-файле. 4126 4127 *) Исправление: nginx закрывал соединение при запросе закэшированного 4128 ответа с пустым телом. 4129 Спасибо Piotr Sikora. 4130 4131 *) Исправление: nginx мог не собираться gcc 4.x при использовании 4132 оптимизации -O2 и выше. 4133 Спасибо Максиму Дунину и Денису Латыпову. 4134 4135 *) Исправление: регулярные выражения в location всегда тестировались с 4136 учётом регистра; ошибка появилась в 0.8.25. 4137 4138 *) Исправление: nginx кэшировал 304 ответ, если в заголовке 4139 проксируемого запроса была строка "If-None-Match". 4140 Спасибо Tim Dettrick и David Kostal. 4141 4142 *) Исправление: nginx/Windows пытался дважды удалить временный файл при 4143 перезаписи уже существующего файла. 4144 4145 4146Изменения в nginx 0.8.30 15.12.2009 4147 4148 *) Изменение: теперь по умолчанию размер буфера директивы 4149 large_client_header_buffers равен 8K. 4150 Спасибо Andrew Cholakian. 4151 4152 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI. 4153 4154 *) Исправление: nginx/Windows пытался дважды переименовать временный 4155 файл при перезаписи уже существующего файла. 4156 4157 *) Исправление: ошибки double free or corruption, возникающей, если имя 4158 хоста не было найдено; ошибка появилась в 0.8.22. 4159 Спасибо Константину Свисту. 4160 4161 *) Исправление: в использовании libatomic на некоторых платформах. 4162 Спасибо W-Mark Kubacki. 4163 4164 4165Изменения в nginx 0.8.29 30.11.2009 4166 4167 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код 4168 ответа "009". 4169 4170 *) Добавление: директивы addition_types, charset_types, gzip_types, 4171 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*". 4172 4173 *) Добавление: использование встроенных атомарных операций GCC 4.1+. 4174 Спасибо W-Mark Kubacki. 4175 4176 *) Добавление: параметр --with-libatomic[=DIR] в configure. 4177 Спасибо W-Mark Kubacki. 4178 4179 *) Исправление: listen unix domain сокет имели ограниченные права 4180 доступа. 4181 4182 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно 4183 обрабатывались. 4184 4185 *) Исправление: именованные выделения в регулярных выражениях, заданные 4186 как "?P<...>", не работали в директиве server_name. 4187 Спасибо Максиму Дунину. 4188 4189 4190Изменения в nginx 0.8.28 23.11.2009 4191 4192 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка 4193 появилась в 0.8.25. 4194 4195 4196Изменения в nginx 0.8.27 17.11.2009 4197 4198 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка 4199 появилась в 0.8.25. 4200 4201 4202Изменения в nginx 0.8.26 16.11.2009 4203 4204 *) Исправление: ошибки при использовании выделений в директиве rewrite; 4205 ошибка появилась в 0.8.25. 4206 4207 *) Исправление: nginx не собирался без параметра --with-debug; ошибка 4208 появилась в 0.8.25. 4209 4210 4211Изменения в nginx 0.8.25 16.11.2009 4212 4213 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная 4214 не найдена с помощью метода $r->variable(). 4215 4216 *) Добавление: модуль ngx_http_degradation_module. 4217 4218 *) Добавление: именованные выделения в регулярных выражениях. 4219 4220 *) Добавление: теперь при использовании переменных в директиве 4221 proxy_pass не требуется задавать URI. 4222 4223 *) Добавление: теперь директива msie_padding работает и для Chrome. 4224 4225 *) Исправление: в рабочем процессе происходил segmentation fault при 4226 недостатке памяти; ошибка появилась в 0.8.18. 4227 4228 *) Исправление: nginx передавал сжатые ответы клиентам, не 4229 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off; 4230 ошибка появилась в 0.8.16. 4231 4232 4233Изменения в nginx 0.8.24 11.11.2009 4234 4235 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в 4236 заголовок 304-ых ответов модуля ngx_http_gzip_static_module. 4237 4238 *) Исправление: nginx не собирался без параметра --with-debug; ошибка 4239 появилась в 0.8.23. 4240 4241 *) Исправление: параметр "unix:" в директиве set_real_ip_from 4242 неправильно наследовался с предыдущего уровня. 4243 4244 *) Исправление: в resolver'е при определении пустого имени. 4245 4246 4247Изменения в nginx 0.8.23 11.11.2009 4248 4249 *) Безопасность: теперь SSL/TLS renegotiation запрещён. 4250 Спасибо Максиму Дунину. 4251 4252 *) Исправление: listen unix domain сокет не наследовался во время 4253 обновления без перерыва. 4254 4255 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал 4256 без ещё одной директивы с любым IP-адресом. 4257 4258 *) Исправление: segmentation fault и зацикливания в resolver'е. 4259 4260 *) Исправление: в resolver'е. 4261 Спасибо Артёму Бохану. 4262 4263 4264Изменения в nginx 0.8.22 03.11.2009 4265 4266 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind. 4267 4268 *) Добавление: директивы access и deny поддерживают IPv6. 4269 4270 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в 4271 заголовках запроса. 4272 4273 *) Добавление: параметр "unix:" в директиве set_real_ip_from. 4274 4275 *) Исправление: nginx не удалял unix domain сокет после тестирования 4276 конфигурации. 4277 4278 *) Исправление: nginx удалял unix domain сокет во время обновления без 4279 перерыва. 4280 4281 *) Исправление: оператор "!-x" не работал. 4282 Спасибо Максиму Дунину. 4283 4284 *) Исправление: в рабочем процессе мог произойти segmentation fault при 4285 использовании limit_rate в HTTPS сервере. 4286 Спасибо Максиму Дунину. 4287 4288 *) Исправление: при записи в лог переменной $limit_rate в рабочем 4289 процессе происходил segmentation fault. 4290 Спасибо Максиму Дунину. 4291 4292 *) Исправление: в рабочем процессе мог произойти segmentation fault, 4293 если внутри блока server не было директивы listen; ошибка появилась в 4294 0.8.21. 4295 4296 4297Изменения в nginx 0.8.21 26.10.2009 4298 4299 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI. 4300 4301 *) Добавление: директива listen модуля HTTP поддерживает unix domain 4302 сокеты. 4303 Спасибо Hongli Lai. 4304 4305 *) Добавление: параметр "default_server" в директиве listen. 4306 4307 *) Добавление: теперь параметр "default" не обязателен для установки 4308 параметров listen-сокета. 4309 4310 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных 4311 платформах; 4312 4313 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11. 4314 4315 4316Изменения в nginx 0.8.20 14.10.2009 4317 4318 *) Изменение: теперь по умолчанию используются следующие шифры SSL: 4319 "HIGH:!ADH:!MD5". 4320 4321 *) Исправление: модуль ngx_http_autoindex_module не показывал последний 4322 слэш для линков на каталоги; ошибка появилась в 0.7.15. 4323 4324 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации 4325 --error-log-path; ошибка появилась в 0.7.53. 4326 4327 *) Исправление: nginx не считал запятую разделителем в строке 4328 "Cache-Control" в заголовке ответа бэкенда. 4329 4330 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше 4331 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс 4332 не имел достаточно прав для работы с каталогами верхнего уровня. 4333 4334 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа 4335 FastCGI-сервера не скрывались при кэшировании, если не использовались 4336 директивы fastcgi_hide_header с любыми параметрами. 4337 4338 *) Исправление: nginx неверно считал размер кэша на диске. 4339 4340 4341Изменения в nginx 0.8.19 06.10.2009 4342 4343 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён. 4344 4345 *) Изменение: теперь по умолчанию используются следующие шифры SSL: 4346 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM". 4347 4348 *) Исправление: директива limit_req не работала; ошибка появилась в 4349 0.8.18. 4350 4351 4352Изменения в nginx 0.8.18 06.10.2009 4353 4354 *) Добавление: директива read_ahead. 4355 4356 *) Добавление: теперь можно использовать несколько директив 4357 perl_modules. 4358 4359 *) Добавление: директивы limit_req_log_level и limit_conn_log_level. 4360 4361 *) Исправление: теперь директива limit_req соответствует алгоритму leaky 4362 bucket. 4363 Спасибо Максиму Дунину. 4364 4365 *) Исправление: nginx не работал на Linux/sparc. 4366 Спасибо Marcus Ramberg. 4367 4368 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в 4369 ответе на запрос MKCOL. 4370 Спасибо Xie Zhenye. 4371 4372 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка 4373 появилась в 0.8.11. 4374 4375 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11. 4376 4377 4378Изменения в nginx 0.8.17 28.09.2009 4379 4380 *) Безопасность: теперь символы "/../" запрещены в строке "Destination" 4381 в заголовке запроса. 4382 4383 *) Изменение: теперь значение переменной $host всегда в нижнем регистре. 4384 4385 *) Добавление: переменная $ssl_session_id. 4386 4387 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11. 4388 4389 4390Изменения в nginx 0.8.16 22.09.2009 4391 4392 *) Добавление: директива image_filter_transparency. 4393 4394 *) Исправление: директива "addition_types" была неверно названа 4395 "addtion_types". 4396 4397 *) Исправление: порчи кэша resolver'а. 4398 Спасибо Matthew Dempsky. 4399 4400 *) Исправление: утечки памяти в resolver'е. 4401 Спасибо Matthew Dempsky. 4402 4403 *) Исправление: неверная строка запроса в переменной $request 4404 записывалась в access_log только при использовании error_log на 4405 уровне info или debug. 4406 4407 *) Исправление: в поддержке альфа-канала PNG в модуле 4408 ngx_http_image_filter_module. 4409 4410 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в 4411 заголовок ответа, если обе директивы gzip_static и gzip_vary были 4412 включены. 4413 4414 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в 4415 nginx/Windows. 4416 4417 *) Исправление: ошибки при использовании post_action; ошибка появилась в 4418 0.8.11. 4419 Спасибо Игорю Артемьеву. 4420 4421 4422Изменения в nginx 0.8.15 14.09.2009 4423 4424 *) Безопасность: при обработке специально созданного запроса в рабочем 4425 процессе мог произойти segmentation fault. 4426 Спасибо Chris Ries. 4427 4428 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и 4429 .domain-some.tld, то имя .sub.domain.tld попадало под маску 4430 .domain.tld. 4431 4432 *) Исправление: в поддержке прозрачности в модуле 4433 ngx_http_image_filter_module. 4434 4435 *) Исправление: в файловом AIO. 4436 4437 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка 4438 появилась в 0.8.11. 4439 4440 *) Исправление: ошибки при использовании встроенного перла; ошибка 4441 появилась в 0.8.11. 4442 4443 4444Изменения в nginx 0.8.14 07.09.2009 4445 4446 *) Исправление: устаревший закэшированный запрос мог залипнуть в 4447 состоянии "UPDATING". 4448 4449 *) Исправление: при использовании error_log на уровне info или debug в 4450 рабочем процессе мог произойти segmentation fault. 4451 Спасибо Сергею Боченкову. 4452 4453 *) Исправление: ошибки при использовании встроенного перла; ошибка 4454 появилась в 0.8.11. 4455 4456 *) Исправление: директива error_page не перенаправляла ошибку 413; 4457 ошибка появилась в 0.6.10. 4458 4459 4460Изменения в nginx 0.8.13 31.08.2009 4461 4462 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12. 4463 4464 *) Исправление: nginx не собирался без параметра --with-file-aio на 4465 FreeBSD; ошибка появилась в 0.8.12. 4466 4467 4468Изменения в nginx 0.8.12 31.08.2009 4469 4470 *) Добавление: параметр sendfile в директиве aio во FreeBSD. 4471 4472 *) Исправление: ошибки при использовании try_files; ошибка появилась в 4473 0.8.11. 4474 4475 *) Исправление: ошибки при использовании memcached; ошибка появилась в 4476 0.8.11. 4477 4478 4479Изменения в nginx 0.8.11 28.08.2009 4480 4481 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие 4482 для MSIE 6.0 SV1. 4483 4484 *) Добавление: поддержка файлового AIO во FreeBSD и Linux. 4485 4486 *) Добавление: директива directio_alignment. 4487 4488 4489Изменения в nginx 0.8.10 24.08.2009 4490 4491 *) Исправление: утечек памяти при использовании базы GeoIP City. 4492 4493 *) Исправление: ошибки при копировании временных файлов в постоянное 4494 место хранения; ошибка появилась в 0.8.9. 4495 4496 4497Изменения в nginx 0.8.9 17.08.2009 4498 4499 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном 4500 процесс; это должно улучшить обработку больших кэшей. 4501 4502 *) Добавление: теперь временные файлы и постоянное место хранения могут 4503 располагаться на разных файловых системах. 4504 4505 4506Изменения в nginx 0.8.8 10.08.2009 4507 4508 *) Исправление: в обработке заголовков ответа, разделённых в 4509 FastCGI-записях. 4510 4511 *) Исправление: если запрос обрабатывался в двух проксированных или 4512 FastCGI location'ах и в первом из них использовалось кэширование, то 4513 в рабочем процессе происходил segmentation fault; ошибка появилась в 4514 0.8.7. 4515 4516 4517Изменения в nginx 0.8.7 27.07.2009 4518 4519 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7. 4520 4521 *) Изменение: параметр ask директивы ssl_verify_client изменён на 4522 параметр optional и теперь он проверяет клиентский сертификат, если 4523 он был предложен. 4524 Спасибо Brice Figureau. 4525 4526 *) Добавление: переменная $ssl_client_verify. 4527 Спасибо Brice Figureau. 4528 4529 *) Добавление: директива ssl_crl. 4530 Спасибо Brice Figureau. 4531 4532 *) Добавление: параметр proxy директивы geo. 4533 4534 *) Добавление: директива image_filter поддерживает переменные для 4535 задания размеров. 4536 4537 *) Исправление: использование переменной $ssl_client_cert портило 4538 память; ошибка появилась в 0.7.7. 4539 Спасибо Сергею Журавлёву. 4540 4541 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не 4542 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate", 4543 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда. 4544 Спасибо Максиму Дунину. 4545 4546 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в 4547 заголовке ответа бэкенда; ошибка появилась в 0.7.44. 4548 Спасибо Максиму Дунину. 4549 4550 *) Исправление: ошибки "[alert] zero size buf" при получении пустых 4551 ответы в подзапросах; ошибка появилась в 0.8.5. 4552 4553 4554Изменения в nginx 0.8.6 20.07.2009 4555 4556 *) Добавление: модуль ngx_http_geoip_module. 4557 4558 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML 4559 document" для правильного документа. 4560 Спасибо Kuramoto Eiji. 4561 4562 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке 4563 location'ов, заданных регулярным выражением, теперь всегда делается 4564 сравнение без учёта регистра символов. 4565 4566 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI. 4567 Спасибо Hugo Leisink. 4568 4569 *) Исправление: имя файла указанного в --conf-path игнорировалось при 4570 установке; ошибка появилась в 0.6.6. 4571 Спасибо Максиму Дунину. 4572 4573 4574Изменения в nginx 0.8.5 13.07.2009 4575 4576 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса. 4577 4578 *) Исправление: при использовании HTTP Basic-аутентификации на Windows 4579 для неверных имени/пароля возвращалась 500-ая ошибка. 4580 4581 *) Исправление: ответы модуля ngx_http_perl_module не работали в 4582 подзапросах. 4583 4584 *) Исправление: в модуле ngx_http_limit_req_module. 4585 Спасибо Максиму Дунину. 4586 4587 4588Изменения в nginx 0.8.4 22.06.2009 4589 4590 *) Исправление: nginx не собирался с параметром --without-http-cache; 4591 ошибка появилась в 0.8.3. 4592 4593 4594Изменения в nginx 0.8.3 19.06.2009 4595 4596 *) Добавление: переменная $upstream_cache_status. 4597 4598 *) Исправление: nginx не собирался на MacOSX 10.6. 4599 4600 *) Исправление: nginx не собирался с параметром --without-http-cache; 4601 ошибка появилась в 0.8.2. 4602 4603 *) Исправление: если использовался перехват 401 ошибки от бэкенда и 4604 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то 4605 в рабочем процессе происходил segmentation fault. 4606 Спасибо Евгению Мычло. 4607 4608 4609Изменения в nginx 0.8.2 15.06.2009 4610 4611 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша 4612 на старте. 4613 4614 *) Исправление: open_file_cache мог кэшировать открытые файлы очень 4615 долго; ошибка появилась в 0.7.4. 4616 4617 4618Изменения в nginx 0.8.1 08.06.2009 4619 4620 *) Добавление: параметр updating в директивах proxy_cache_use_stale и 4621 fastcgi_cache_use_stale. 4622 4623 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в 4624 заголовке запроса клиента передавались бэкенду при кэшировании, если 4625 не использовалась директива proxy_set_header с любыми параметрами. 4626 4627 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда 4628 не скрывались при кэшировании, если не использовались директивы 4629 proxy_hide_header/fastcgi_hide_header с любыми параметрами. 4630 4631 *) Исправление: модуль ngx_http_image_filter_module не понимал формат 4632 GIF87a. 4633 Спасибо Денису Ильиных. 4634 4635 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка 4636 появилась в 0.7.56. 4637 4638 4639Изменения в nginx 0.8.0 02.06.2009 4640 4641 *) Добавление: директива keepalive_requests. 4642 4643 *) Добавление: директива limit_rate_after. 4644 Спасибо Ivan Debnar. 4645 4646 *) Исправление: XSLT-фильтр не работал в подзапросах. 4647 4648 *) Исправление: обработке относительных путей в nginx/Windows. 4649 4650 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и 4651 fastcgi_cache в nginx/Windows. 4652 4653 *) Исправление: в обработке ошибок выделения памяти. 4654 Спасибо Максиму Дунину и Кириллу Коринскому. 4655 4656 4657Изменения в nginx 0.7.59 25.05.2009 4658 4659 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods. 4660 4661 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25. 4662 Спасибо Максиму Дунину. 4663 4664 *) Исправление: при использовании переменной $request_body в рабочем 4665 процессе происходил segmentation fault, если в запросе не было тела; 4666 ошибка появилась в 0.7.58. 4667 4668 *) Исправление: SSL-модули могли не собираться на Solaris и Linux; 4669 ошибка появилась в 0.7.56. 4670 4671 *) Исправление: ответы модуля ngx_http_xslt_filter_module не 4672 обрабатывались SSI-, charset- и gzip-фильтрами. 4673 4674 *) Исправление: директива charset не ставила кодировку для ответов 4675 модуля ngx_http_gzip_static_module. 4676 4677 4678Изменения в nginx 0.7.58 18.05.2009 4679 4680 *) Добавление: директива listen почтового прокси-сервера поддерживает 4681 IPv6. 4682 4683 *) Добавление: директива image_filter_jpeg_quality. 4684 4685 *) Добавление: директива client_body_in_single_buffer. 4686 4687 *) Добавление: переменная $request_body. 4688 4689 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена 4690 файлов, содержащих символ ":". 4691 4692 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в 4693 0.7.53. 4694 Спасибо Денису Латыпову. 4695 4696 4697Изменения в nginx 0.7.57 12.05.2009 4698 4699 *) Исправление: при перенаправлении ошибок модуля 4700 ngx_http_image_filter_module в именованный location в рабочем 4701 процессе происходил floating-point fault; ошибка появилась в 0.7.56. 4702 4703 4704Изменения в nginx 0.7.56 11.05.2009 4705 4706 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля 4707 HTTP. 4708 4709 *) Исправление: в модуле ngx_http_image_filter_module. 4710 4711 4712Изменения в nginx 0.7.55 06.05.2009 4713 4714 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и 4715 fastcgi_cache_use_stale не работали. 4716 4717 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из 4718 заголовка. 4719 4720 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в 4721 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows. 4722 4723 *) Исправление: при использовании директивы debug_connection в рабочем 4724 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54. 4725 4726 *) Исправление: в сборке модуля ngx_http_image_filter_module. 4727 4728 *) Исправление: файлы больше 2G не передавались с использованием 4729 $r->sendfile. 4730 Спасибо Максиму Дунину. 4731 4732 4733Изменения в nginx 0.7.54 01.05.2009 4734 4735 *) Добавление: модуль ngx_http_image_filter_module. 4736 4737 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers. 4738 4739 *) Исправление: при использовании переменных "open_file_cache_errors on" 4740 в рабочем процессе мог произойти segmentation fault; ошибка появилась 4741 в 0.7.53. 4742 4743 *) Исправление: директива "port_in_redirect off" не работала; ошибка 4744 появилась в 0.7.39. 4745 4746 *) Исправление: улучшение обработки ошибок метода select. 4747 4748 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows. 4749 4750 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows; 4751 ошибка появилась в 0.7.53. 4752 4753 4754Изменения в nginx 0.7.53 27.04.2009 4755 4756 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с 4757 самого начала работы. 4758 4759 *) Добавление: теперь ошибки и предупреждения при старте записываются в 4760 error_log и выводятся на stderr. 4761 4762 *) Добавление: при сборке с пустым параметром --prefix= nginx использует 4763 как префикс каталог, в котором он был запущен. 4764 4765 *) Добавление: ключ -p. 4766 4767 *) Добавление: ключ -s на Unix-платформах. 4768 4769 *) Добавление: ключи -? и -h. 4770 Спасибо Jerome Loyet. 4771 4772 *) Добавление: теперь ключи можно задавать в сжатой форме. 4773 4774 *) Исправление: nginx/Windows не работал, если файл конфигурации был 4775 задан ключом -c. 4776 4777 *) Исправление: при использовании директив proxy_store, fastcgi_store, 4778 proxy_cache или fastcgi_cache временные файлы могли не удаляться. 4779 Спасибо Максиму Дунину. 4780 4781 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации 4782 почтового прокси-сервера передавалось неверное значение; ошибка 4783 появилась в 0.7.34. 4784 Спасибо Simon Lecaille. 4785 4786 *) Исправление: при логгировании на Linux не писались текстовые описания 4787 системных ошибок; ошибка появилась в 0.7.45. 4788 4789 *) Исправление: директива fastcgi_cache_min_uses не работала. 4790 Спасибо Андрею Воробьёву. 4791 4792 4793Изменения в nginx 0.7.52 20.04.2009 4794 4795 *) Добавление: первая бинарная версия под Windows. 4796 4797 *) Исправление: корректная обработка метода HEAD при кэшировании. 4798 4799 *) Исправление: корректная обработка строк "If-Modified-Since", 4800 "If-Range" и им подобных в заголовке запроса клиента при кэшировании. 4801 4802 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в 4803 заголовке ответа для закэшированных ответов. 4804 4805 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и 4806 perl поддерживал потоки, то при выходе основного процесса могла 4807 выдаваться ошибка "panic: MUTEX_LOCK". 4808 4809 *) Исправление: nginx не собирался с параметром --without-http-cache; 4810 ошибка появилась в 0.7.48. 4811 4812 *) Исправление: nginx не собирался на платформах, отличных от i386, 4813 amd64, sparc и ppc; ошибка появилась в 0.7.42. 4814 4815 4816Изменения в nginx 0.7.51 12.04.2009 4817 4818 *) Добавление: директива try_files поддерживает код ответа в последнем 4819 параметре. 4820 4821 *) Добавление: теперь в директиве return можно использовать любой код 4822 ответа. 4823 4824 *) Исправление: директива error_page делала внешний редирект без строки 4825 запроса; ошибка появилась в 0.7.44. 4826 4827 *) Исправление: если сервера слушали на нескольких явно описанных 4828 адресах, то виртуальные сервера могли не работать; ошибка появилась в 4829 0.7.39. 4830 4831 4832Изменения в nginx 0.7.50 06.04.2009 4833 4834 *) Исправление: переменные $arg_... не работали; ошибка появилась в 4835 0.7.49. 4836 4837 4838Изменения в nginx 0.7.49 06.04.2009 4839 4840 *) Исправление: при использовании переменных $arg_... в рабочем процессе 4841 мог произойти segmentation fault; ошибка появилась в 0.7.48. 4842 4843 4844Изменения в nginx 0.7.48 06.04.2009 4845 4846 *) Добавление: директива proxy_cache_key. 4847 4848 *) Исправление: теперь nginx учитывает при кэшировании строки 4849 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа 4850 бэкенда. 4851 4852 *) Исправление: теперь nginx кэширует только ответы на запросы GET. 4853 4854 *) Исправление: директива fastcgi_cache_key не наследовалась. 4855 4856 *) Исправление: переменные $arg_... не работали с SSI-подзапросами. 4857 Спасибо Максиму Дунину. 4858 4859 *) Исправление: nginx не собирался с библиотекой uclibc. 4860 Спасибо Timothy Redaelli. 4861 4862 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась 4863 в 0.7.46. 4864 4865 4866Изменения в nginx 0.7.47 01.04.2009 4867 4868 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях; 4869 ошибка появилась в 0.7.46. 4870 4871 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46. 4872 4873 *) Исправление: если использовался параметр max_size, то cache manager 4874 мог удалить весь кэш; ошибка появилась в 0.7.46. 4875 4876 *) Изменение: в рабочем процессе мог произойти segmentation fault, если 4877 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/ 4878 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась 4879 в 0.7.46. 4880 4881 *) Исправление: в рабочем процессе мог произойти segmentation fault при 4882 перенаправлении запроса проксированному или FastCGI-серверу с помощью 4883 error_page или try_files; ошибка появилась в 0.7.44. 4884 4885 4886Изменения в nginx 0.7.46 30.03.2009 4887 4888 *) Исправление: архив предыдущего релиза был неверным. 4889 4890 4891Изменения в nginx 0.7.45 30.03.2009 4892 4893 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно 4894 задавать на разных уровнях. 4895 4896 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён. 4897 4898 *) Добавление: параметр max_size в директиве proxy_cache_path. 4899 4900 *) Добавление: предварительная поддержка кэширования в модуле 4901 ngx_http_fastcgi_module. 4902 4903 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе 4904 указываются названия директивы и зоны. 4905 4906 *) Исправление: директива "add_header last-modified ''" не удаляла в 4907 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44. 4908 4909 *) Исправление: в директиве auth_basic_user_file не работал 4910 относительный путь, заданный строкой без переменных; ошибка появилась 4911 в 0.7.44. 4912 Спасибо Jerome Loyet. 4913 4914 *) Исправление: в директиве alias, заданной переменными без ссылок на 4915 выделения в регулярных выражениях; ошибка появилась в 0.7.42. 4916 4917 4918Изменения в nginx 0.7.44 23.03.2009 4919 4920 *) Добавление: предварительная поддержка кэширования в модуле 4921 ngx_http_proxy_module. 4922 4923 *) Добавление: параметр --with-pcre в configure. 4924 4925 *) Добавление: теперь директива try_files может быть использована на 4926 уровне server. 4927 4928 *) Исправление: директива try_files неправильно обрабатывала строку 4929 запроса в последнем параметре. 4930 4931 *) Исправление: директива try_files могла неверно тестировать каталоги. 4932 4933 *) Исправление: если для пары адрес:порт описан только один сервер, то 4934 выделения в регулярных выражениях в директиве server_name не 4935 работали. 4936 4937 4938Изменения в nginx 0.7.43 18.03.2009 4939 4940 *) Исправление: запрос обрабатывался неверно, если директива root 4941 использовала переменные; ошибка появилась в 0.7.42. 4942 4943 *) Исправление: если сервер слушал на адресах типа "*", то значение 4944 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36. 4945 4946 4947Изменения в nginx 0.7.42 16.03.2009 4948 4949 *) Изменение: ошибка "Invalid argument", возвращаемая 4950 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется. 4951 4952 *) Изменение: при отсутствии файла, указанного в директиве 4953 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500. 4954 4955 *) Добавление: директива auth_basic_user_file поддерживает переменные. 4956 Спасибо Кириллу Коринскому. 4957 4958 *) Добавление: директива listen поддерживает параметр ipv6only. 4959 Спасибо Zhang Hua. 4960 4961 *) Исправление: в директиве alias со ссылками на выделения в регулярных 4962 выражениях; ошибка появилась в 0.7.40. 4963 4964 *) Исправление: совместимость с Tru64 UNIX. 4965 Спасибо Dustin Marquess. 4966 4967 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась 4968 в 0.7.41. 4969 4970 4971Изменения в nginx 0.7.41 11.03.2009 4972 4973 *) Исправление: в рабочем процессе мог произойти segmentation fault, 4974 если в server_name или location были выделения в регулярных 4975 выражениях; ошибка появилась в 0.7.40. 4976 Спасибо Владимиру Сопоту. 4977 4978 4979Изменения в nginx 0.7.40 09.03.2009 4980 4981 *) Добавление: директива location поддерживает выделения в регулярных 4982 выражениях. 4983 4984 *) Добавление: директиву alias с ссылками на выделения в регулярных 4985 выражениях можно использовать внутри location'а, заданного регулярным 4986 выражением с выделениями. 4987 4988 *) Добавление: директива server_name поддерживает выделения в регулярных 4989 выражениях. 4990 4991 *) Изменение: модуль ngx_http_autoindex_module не показывал последний 4992 слэш для каталогов на файловой системе XFS; ошибка появилась в 4993 0.7.15. 4994 Спасибо Дмитрию Кузьменко. 4995 4996 4997Изменения в nginx 0.7.39 02.03.2009 4998 4999 *) Исправление: при включённом сжатии большие ответы с использованием 5000 SSI могли зависать; ошибка появилась в 0.7.28. 5001 Спасибо Артёму Бохану. 5002 5003 *) Исправление: при использовании коротких статических вариантов в 5004 директиве try_files в рабочем процессе мог произойти segmentation 5005 fault. 5006 5007 5008Изменения в nginx 0.7.38 23.02.2009 5009 5010 *) Добавление: логгирование ошибок аутентификации. 5011 5012 *) Исправление: имя/пароль, заданные в auth_basic_user_file, 5013 игнорировались после нечётного числа пустых строк. 5014 Спасибо Александру Загребину. 5015 5016 *) Исправление: при использовании длинного пути в unix domain сокете в 5017 главном процессе происходил segmentation fault; ошибка появилась в 5018 0.7.36. 5019 5020 5021Изменения в nginx 0.7.37 21.02.2009 5022 5023 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка 5024 появилась в 0.7.36. 5025 5026 5027Изменения в nginx 0.7.36 21.02.2009 5028 5029 *) Добавление: предварительная поддержка IPv6; директива listen модуля 5030 HTTP поддерживает IPv6. 5031 5032 *) Исправление: переменная $ancient_browser не работала для браузеров, 5033 заданных директивами modern_browser. 5034 5035 5036Изменения в nginx 0.7.35 16.02.2009 5037 5038 *) Исправление: директива ssl_engine не использовала SSL-акселератор для 5039 асимметричных шифров. 5040 Спасибо Marcin Gozdalik. 5041 5042 *) Исправление: директива try_files выставляла MIME-type, исходя из 5043 расширения первоначального запроса. 5044 5045 *) Исправление: в директивах server_name, valid_referers и map 5046 неправильно обрабатывались имена вида "*domain.tld", если 5047 использовались маски вида ".domain.tld" и ".subdomain.domain.tld"; 5048 ошибка появилась в 0.7.9. 5049 5050 5051Изменения в nginx 0.7.34 10.02.2009 5052 5053 *) Добавление: параметр off в директиве if_modified_since. 5054 5055 *) Добавление: теперь после команды XCLIENT nginx посылает команду 5056 HELO/EHLO. 5057 Спасибо Максиму Дунину. 5058 5059 *) Добавление: поддержка Microsoft-специфичного режима 5060 "AUTH LOGIN with User Name" в почтовом прокси-сервере. 5061 Спасибо Максиму Дунину. 5062 5063 *) Исправление: в директиве rewrite, возвращающей редирект, старые 5064 аргументы присоединялись к новым через символ "?" вместо "&"; 5065 ошибка появилась в 0.1.18. 5066 Спасибо Максиму Дунину. 5067 5068 *) Исправление: nginx не собирался на AIX. 5069 5070 5071Изменения в nginx 0.7.33 02.02.2009 5072 5073 *) Исправление: если на запрос с телом возвращался редирект, то ответ 5074 мог быть двойным при использовании методов epoll или rtsig. 5075 Спасибо Eden Li. 5076 5077 *) Исправление: для некоторых типов редиректов в переменной 5078 $sent_http_location было пустое значение. 5079 5080 *) Исправление: при использовании директивы resolver в SMTP 5081 прокси-сервере в рабочем процессе мог произойти segmentation fault. 5082 5083 5084Изменения в nginx 0.7.32 26.01.2009 5085 5086 *) Добавление: теперь в директиве try_files можно явно указать проверку 5087 каталога. 5088 5089 *) Исправление: fastcgi_store не всегда сохранял файлы. 5090 5091 *) Исправление: в гео-диапазонах. 5092 5093 *) Исправление: ошибки выделения больших блоков в разделяемой памяти, 5094 если nginx был собран без отладки. 5095 Спасибо Андрею Квасову. 5096 5097 5098Изменения в nginx 0.7.31 19.01.2009 5099 5100 *) Изменение: теперь директива try_files проверяет только файлы, 5101 игнорируя каталоги. 5102 5103 *) Добавление: директива fastcgi_split_path_info. 5104 5105 *) Исправления в поддержке строки "Expect" в заголовке запроса. 5106 5107 *) Исправления в гео-диапазонах. 5108 5109 *) Исправление: при отсутствии ответа ngx_http_memcached_module 5110 возвращал в теле ответа строку "END" вместо 404-ой страницы по 5111 умолчанию; ошибка появилась в 0.7.18. 5112 Спасибо Максиму Дунину. 5113 5114 *) Исправление: при проксировании SMTP nginx выдавал сообщение 5115 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22. 5116 Спасибо Максиму Дунину. 5117 5118 5119Изменения в nginx 0.7.30 24.12.2008 5120 5121 *) Исправление: в рабочем процессе происходил segmentation fault, если в 5122 директивах fastcgi_pass или proxy_pass использовались переменные и 5123 имя хоста должно было резолвиться; ошибка появилась в 0.7.29. 5124 5125 5126Изменения в nginx 0.7.29 24.12.2008 5127 5128 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали 5129 переменные при использовании unix domain сокетов. 5130 5131 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25. 5132 5133 *) Исправление: ответ "100 Continue" выдавался для запросов версии 5134 HTTP/1.0; 5135 Спасибо Максиму Дунину. 5136 5137 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module 5138 под Cygwin. 5139 5140 5141Изменения в nginx 0.7.28 22.12.2008 5142 5143 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module. 5144 5145 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены 5146 с 4 4k/8k на 32 4k или 16 8k. 5147 5148 5149Изменения в nginx 0.7.27 15.12.2008 5150 5151 *) Добавление: директива try_files. 5152 5153 *) Добавление: директива fastcgi_pass поддерживает переменные. 5154 5155 *) Добавление: теперь директива geo может брать адрес из переменной. 5156 Спасибо Андрею Нигматулину. 5157 5158 *) Добавление: теперь модификатор location'а можно указывать без пробела 5159 перед названием. 5160 5161 *) Добавление: переменная $upstream_response_length. 5162 5163 *) Исправление: теперь директива add_header не добавляет пустое 5164 значение. 5165 5166 *) Исправление: при запросе файла нулевой длины nginx закрывал 5167 соединение, ничего не передав; ошибка появилась в 0.7.25. 5168 5169 *) Исправление: метод MOVE не мог перемещать файл в несуществующий 5170 каталог. 5171 5172 *) Исправление: если в сервере не был описан ни один именованный 5173 location, но такой location использовался в директиве error_page, то 5174 в рабочем процессе происходил segmentation fault. 5175 Спасибо Сергею Боченкову. 5176 5177 5178Изменения в nginx 0.7.26 08.12.2008 5179 5180 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25. 5181 5182 5183Изменения в nginx 0.7.25 08.12.2008 5184 5185 *) Изменение: в обработке подзапросов. 5186 5187 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в 5188 заголовке запроса. 5189 5190 *) Исправление: теперь директивы limit_req и limit_conn указывают 5191 причину запрета запроса. 5192 5193 *) Исправление: в параметре delete директивы geo. 5194 5195 5196Изменения в nginx 0.7.24 01.12.2008 5197 5198 *) Добавление: директива if_modified_since. 5199 5200 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед 5201 ответом сервер передавал много сообщений в stderr. 5202 5203 *) Исправление: переменные "$cookie_..." не работали в SSI and в 5204 перловом модуле. 5205 5206 5207Изменения в nginx 0.7.23 27.11.2008 5208 5209 *) Добавление: параметры delete и ranges в директиве geo. 5210 5211 *) Добавление: ускорение загрузки geo-базы с большим числом значений. 5212 5213 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы. 5214 5215 5216Изменения в nginx 0.7.22 20.11.2008 5217 5218 *) Добавление: параметр none в директиве smtp_auth. 5219 Спасибо Максиму Дунину. 5220 5221 *) Добавление: переменные "$cookie_...". 5222 5223 *) Исправление: директива directio не работала с файловой системой XFS. 5224 5225 *) Исправление: resolver не понимал большие DNS-ответы. 5226 Спасибо Zyb. 5227 5228 5229Изменения в nginx 0.7.21 11.11.2008 5230 5231 *) Изменения в модуле ngx_http_limit_req_module. 5232 5233 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module. 5234 Спасибо Денису Латыпову. 5235 5236 *) Изменение: совместимость с glibc 2.3. 5237 Спасибо Eric Benson и Максиму Дунину. 5238 5239 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних; 5240 ошибка появилась в 0.7.6. 5241 5242 5243Изменения в nginx 0.7.20 10.11.2008 5244 5245 *) Изменения в модуле ngx_http_gzip_filter_module. 5246 5247 *) Добавление: модуль ngx_http_limit_req_module. 5248 5249 *) Исправление: на платформах sparc и ppc рабочие процессы могли 5250 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3. 5251 Спасибо Максиму Дунину. 5252 5253 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не 5254 работали; ошибка появилась в 0.7.12. 5255 5256 *) Исправление: при использовании HTTPS запросы могли завершаться с 5257 ошибкой "bad write retry". 5258 5259 *) Исправление: модуль ngx_http_secure_link_module не работал внутри 5260 location'ов с именами меньше 3 символов. 5261 5262 *) Исправление: переменная $server_addr могла не иметь значения. 5263 5264 5265Изменения в nginx 0.7.19 13.10.2008 5266 5267 *) Исправление: обновление номера версии. 5268 5269 5270Изменения в nginx 0.7.18 13.10.2008 5271 5272 *) Изменение: директива underscores_in_headers; теперь nginx по 5273 умолчанию не разрешает подчёркивания в именах строк в заголовке 5274 запроса клиента. 5275 5276 *) Добавление: модуль ngx_http_secure_link_module. 5277 5278 *) Добавление: директива real_ip_header поддерживает любой заголовок. 5279 5280 *) Добавление: директива log_subrequest. 5281 5282 *) Добавление: переменная $realpath_root. 5283 5284 *) Добавление: параметры http_502 и http_504 в директиве 5285 proxy_next_upstream. 5286 5287 *) Исправление: параметр http_503 в директивах proxy_next_upstream или 5288 fastcgi_next_upstream не работал. 5289 5290 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked" 5291 для запросов HEAD. 5292 5293 *) Исправление: теперь accept-лимит зависит от числа worker_connections. 5294 5295 5296Изменения в nginx 0.7.17 15.09.2008 5297 5298 *) Добавление: директива directio теперь работает на Linux. 5299 5300 *) Добавление: переменная $pid. 5301 5302 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала 5303 при использовании open_file_cache. 5304 5305 *) Исправление: access_log с переменными не работал на Linux; ошибка 5306 появилась в 0.7.7. 5307 5308 *) Исправление: модуль ngx_http_charset_module не понимал название 5309 кодировки в кавычках, полученное от бэкенда. 5310 5311 5312Изменения в nginx 0.7.16 08.09.2008 5313 5314 *) Исправление: nginx не собирался на 64-битных платформах; ошибка 5315 появилась в 0.7.15. 5316 5317 5318Изменения в nginx 0.7.15 08.09.2008 5319 5320 *) Добавление: модуль ngx_http_random_index_module. 5321 5322 *) Добавление: директива directio оптимизирована для запросов файлов, 5323 начинающихся с произвольной позиции. 5324 5325 *) Добавление: директива directio при необходимости запрещает 5326 использование sendfile. 5327 5328 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в 5329 заголовке запроса клиента. 5330 5331 5332Изменения в nginx 0.7.14 01.09.2008 5333 5334 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не 5335 имеют значений по умолчанию. 5336 5337 *) Добавление: директива listen поддерживает параметр ssl. 5338 5339 *) Добавление: теперь при переконфигурации nginx учитывает изменение 5340 временной зоны на FreeBSD и Linux. 5341 5342 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и 5343 прочие, не устанавливались, если сервером по умолчанию был не первый 5344 сервер. 5345 5346 *) Исправление: при использовании в качестве аргументов части URI, 5347 выделенного с помощью директивы rewrite, эти аргументы не 5348 экранировались. 5349 5350 *) Исправление: улучшения тестирования правильности конфигурационного 5351 файла. 5352 5353 5354Изменения в nginx 0.7.13 26.08.2008 5355 5356 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась 5357 в 0.7.12. 5358 5359 5360Изменения в nginx 0.7.12 26.08.2008 5361 5362 *) Добавление: директива server_name поддерживает пустое имя "". 5363 5364 *) Добавление: директива gzip_disable поддерживает специальную маску 5365 msie6. 5366 5367 *) Исправление: при использовании параметра max_fails=0 в upstream'е с 5368 несколькими серверами рабочий процесс выходил по сигналу SIGFPE. 5369 Спасибо Максиму Дунину. 5370 5371 *) Исправление: при перенаправлении запроса с помощью директивы 5372 error_page терялось тело запроса. 5373 5374 *) Исправление: при перенаправлении запроса с методом HEAD с помощью 5375 директивы error_page возвращался полный ответ. 5376 5377 *) Исправление: метод $r->header_in() не возвращал значения строк 5378 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка 5379 появилась в 0.7.0. 5380 5381 5382Изменения в nginx 0.7.11 18.08.2008 5383 5384 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает 5385 MIME-типом text/css. 5386 5387 *) Добавление: теперь nginx возвращает код 405 для метода POST при 5388 запросе статического файла, только если файл существует. 5389 5390 *) Добавление: директива proxy_ssl_session_reuse. 5391 5392 *) Исправление: после перенаправления запроса с помощью 5393 "X-Accel-Redirect" директива proxy_pass без URI могла использовать 5394 оригинальный запрос. 5395 5396 *) Исправление: если у каталога были права доступа только на поиск 5397 файлов и первый индексный файл отсутствовал, то nginx возвращал 5398 ошибку 500. 5399 5400 *) Исправление: ошибок во вложенных location'ах; ошибки появились в 5401 0.7.1. 5402 5403 5404Изменения в nginx 0.7.10 13.08.2008 5405 5406 *) Исправление: ошибок в директивах addition_types, charset_types, 5407 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки 5408 появились в 0.7.9. 5409 5410 *) Исправление: рекурсивной error_page для 500 ошибки. 5411 5412 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес 5413 не для всего keepalive соединения, а для каждого запроса по этому 5414 соединению. 5415 5416 5417Изменения в nginx 0.7.9 12.08.2008 5418 5419 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со 5420 следующими MIME-типами: text/html, text/css, text/xml, text/plain, 5421 text/vnd.wap.wml, application/x-javascript и application/rss+xml. 5422 5423 *) Добавление: директивы charset_types и addition_types. 5424 5425 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types 5426 используют хэш. 5427 5428 *) Добавление: модуль ngx_cpp_test_module. 5429 5430 *) Добавление: директива expires поддерживает суточное время. 5431 5432 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module. 5433 Спасибо Денису Латыпову и Максиму Дунину. 5434 5435 *) Исправление: директива log_not_found не работала при поиске индексных 5436 файлов. 5437 5438 *) Исправление: HTTPS-соединения могли зависнуть, если использовались 5439 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7. 5440 5441 *) Исправление: если в директивах server_name, valid_referers и map 5442 использовалась маска вида "*.domain.tld" и при этом полное имя вида 5443 "domain.tld" не было описано, то это имя попадало под маску; ошибка 5444 появилась в 0.3.18. 5445 5446 5447Изменения в nginx 0.7.8 04.08.2008 5448 5449 *) Добавление: модуль ngx_http_xslt_module. 5450 5451 *) Добавление: переменные "$arg_...". 5452 5453 *) Добавление: поддержка directio в Solaris. 5454 Спасибо Ivan Debnar. 5455 5456 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location" 5457 в заголовке ответа без строки статуса, то nginx использует код 5458 статуса 302. 5459 Спасибо Максиму Дунину. 5460 5461 5462Изменения в nginx 0.7.7 30.07.2008 5463 5464 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается 5465 временной. 5466 5467 *) Изменение: значением переменной $ssl_client_cert теперь является 5468 сертификат, перед каждой строкой которого, кроме первой, вставляется 5469 символ табуляции; неизменённый сертификат доступен через переменную 5470 $ssl_client_raw_cert. 5471 5472 *) Добавление: параметр ask директивы ssl_verify_client. 5473 5474 *) Добавление: улучшения в обработке byte-range. 5475 Спасибо Максиму Дунину. 5476 5477 *) Добавление: директива directio. 5478 Спасибо Jiang Hong. 5479 5480 *) Добавление: поддержка sendfile() в MacOSX 10.5. 5481 5482 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь 5483 делается сравнение без учёта регистра символов; однако, сравнение 5484 ограничено только однобайтными locale'ями. 5485 5486 *) Исправление: соединения почтового прокси-сервера зависали в режиме 5487 SSL, если использовались методы select, poll или /dev/poll. 5488 5489 *) Исправление: ошибки при использовании кодировки UTF-8 в 5490 ngx_http_autoindex_module. 5491 5492 5493Изменения в nginx 0.7.6 07.07.2008 5494 5495 *) Исправление: теперь при использовании переменных в директиве 5496 access_log всегда проверяется существовании root'а для запроса. 5497 5498 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько 5499 значений в аргументах запроса. 5500 5501 5502Изменения в nginx 0.7.5 01.07.2008 5503 5504 *) Исправления в поддержке переменных в директиве access_log; ошибки 5505 появились в 0.7.4. 5506 5507 *) Исправление: nginx не собирался с параметром 5508 --without-http_gzip_module; ошибка появилась в 0.7.3. 5509 Спасибо Кириллу Коринскому. 5510 5511 *) Исправление: при совместном использовании sub_filter и SSI ответы 5512 могли передаваться неверно. 5513 5514 5515Изменения в nginx 0.7.4 30.06.2008 5516 5517 *) Добавление: директива access_log поддерживает переменные. 5518 5519 *) Добавление: директива open_log_file_cache. 5520 5521 *) Добавление: ключ -g. 5522 5523 *) Добавление: поддержка строки "Expect" в заголовке запроса. 5524 5525 *) Исправление: большие включения в SSI могли передавались не полностью. 5526 5527 5528Изменения в nginx 0.7.3 23.06.2008 5529 5530 *) Изменение: MIME-тип для расширения rss изменён на 5531 "application/rss+xml". 5532 5533 *) Изменение: теперь директива "gzip_vary on" выдаёт строку 5534 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов. 5535 5536 *) Добавление: теперь при использовании протокола "https://" в директиве 5537 rewrite автоматически делается редирект. 5538 5539 *) Исправление: директива proxy_pass не работала с протоколом HTTPS; 5540 ошибка появилась в 0.6.9. 5541 5542 5543Изменения в nginx 0.7.2 16.06.2008 5544 5545 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами. 5546 5547 *) Добавление: директива ssl_dhparam. 5548 5549 *) Добавление: переменная $ssl_client_cert. 5550 Спасибо Manlio Perillo. 5551 5552 *) Исправление: после изменения URI с помощью директивы rewrite nginx не 5553 искал новый location; ошибка появилась в 0.7.1. 5554 Спасибо Максиму Дунину. 5555 5556 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась 5557 в 0.7.1. 5558 5559 *) Исправление: при редиректе запроса к каталогу с добавлением слэша 5560 nginx не добавлял аргументы из оригинального запроса. 5561 5562 5563Изменения в nginx 0.7.1 26.05.2008 5564 5565 *) Изменение: теперь поиск location'а делается с помощью дерева. 5566 5567 *) Изменение: директива optimize_server_names упразднена в связи с 5568 появлением директивы server_name_in_redirect. 5569 5570 *) Изменение: некоторые давно устаревшие директивы больше не 5571 поддерживаются. 5572 5573 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот 5574 параметр используется по умолчанию. 5575 Спасибо Rob Mueller. 5576 5577 *) Исправление: рабочие процессы могли не реагировать на сигналы 5578 переконфигурации и ротации логов. 5579 5580 *) Исправление: nginx не собирался на последних Fedora 9 Linux. 5581 Спасибо Roxis. 5582 5583 5584Изменения в nginx 0.7.0 19.05.2008 5585 5586 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log 5587 записываются в виде \xXX. 5588 Спасибо Максиму Дунину. 5589 5590 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке 5591 запроса. 5592 5593 *) Добавление: директива expires поддерживает флаг modified. 5594 5595 *) Добавление: переменные $uid_got и $uid_set можно использовать на 5596 любой стадии обработки запроса. 5597 5598 *) Добавление: переменная $hostname. 5599 Спасибо Андрею Нигматулину. 5600 5601 *) Добавление: поддержка DESTDIR. 5602 Спасибо Todd A. Fisher и Andras Voroskoi. 5603 5604 *) Исправление: при использовании keepalive на Linux в рабочем процессе 5605 мог произойти segmentation fault. 5606 5607 5608Изменения в nginx 0.6.31 12.05.2008 5609 5610 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка 5611 заголовка ответа была в конце записи FastCGI; ошибка появилась в 5612 0.6.2. 5613 Спасибо Сергею Серову. 5614 5615 *) Исправление: при удалении файла и использовании директивы 5616 open_file_cache_errors off в рабочем процессе мог произойти 5617 segmentation fault. 5618 5619 5620Изменения в nginx 0.6.30 29.04.2008 5621 5622 *) Изменение: теперь, если маске, заданной в директиве include, не 5623 соответствует ни один файл, то nginx не выдаёт ошибку. 5624 5625 *) Добавление: теперь время в директивах можно задавать без пробела, 5626 например, "1h50m". 5627 5628 *) Исправление: утечек памяти, если директива ssl_verify_client имела 5629 значение on. 5630 Спасибо Chavelle Vincent. 5631 5632 *) Исправление: директива sub_filter могла вставлять заменяемый текст в 5633 вывод. 5634 5635 *) Исправление: директива error_page не воспринимала параметры в 5636 перенаправляемом URI. 5637 5638 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы 5639 в бинарном режиме. 5640 5641 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в 5642 0.6.15. 5643 5644 5645Изменения в nginx 0.6.29 18.03.2008 5646 5647 *) Добавление: модуль ngx_google_perftools_module. 5648 5649 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных 5650 платформах; ошибка появилась в 0.6.27. 5651 5652 5653Изменения в nginx 0.6.28 13.03.2008 5654 5655 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27. 5656 5657 5658Изменения в nginx 0.6.27 12.03.2008 5659 5660 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод 5661 rtsig. 5662 5663 *) Изменение: теперь при перенаправлении запроса в именованный location 5664 с помощью директивы error_page метод запроса не изменяется. 5665 5666 *) Добавление: директивы resolver и resolver_timeout в SMTP 5667 прокси-сервере. 5668 5669 *) Добавление: директива post_action поддерживает именованные 5670 location'ы. 5671 5672 *) Исправление: при перенаправлении запроса из location'а c обработчиком 5673 proxy, FastCGI или memcached в именованный location со статическим 5674 обработчиком в рабочем процессе происходил segmentation fault. 5675 5676 *) Исправление: браузеры не повторяли SSL handshake, если при первом 5677 handshake не оказалось правильного клиентского сертификата. 5678 Спасибо Александру Инюхину. 5679 5680 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы 5681 error_page без изменения кода ошибки nginx пытался выделить очень 5682 много памяти. 5683 5684 *) Исправление: утечки памяти в долгоживущих небуфферизированных 5685 соединениях. 5686 5687 *) Исправление: утечки памяти в resolver'е. 5688 5689 *) Исправление: при перенаправлении запроса из location'а c обработчиком 5690 proxy в другой location с обработчиком proxy в рабочем процессе 5691 происходил segmentation fault. 5692 5693 *) Исправление: ошибки в кэшировании переменных $proxy_host и 5694 $proxy_port. 5695 Спасибо Сергею Боченкову. 5696 5697 *) Исправление: директива proxy_pass с переменными использовала порт, 5698 описанной в другой директиве proxy_pass без переменных, но с таким же 5699 именем хоста. 5700 Спасибо Сергею Боченкову. 5701 5702 *) Исправление: во время переконфигурации на некоторых 64-битном 5703 платформах в лог записывался alert "sendmsg() failed (9: Bad file 5704 descriptor)". 5705 5706 *) Исправление: при повторном использовании в SSI пустого block'а в 5707 качестве заглушки в рабочем процессе происходил segmentation fault. 5708 5709 *) Исправление: ошибки при копировании части URI, содержащего 5710 экранированные символы, в аргументы. 5711 5712 5713Изменения в nginx 0.6.26 11.02.2008 5714 5715 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину 5716 ответа. 5717 5718 *) Исправление: при использовании большого значения в директиве expires 5719 в рабочем процессе происходил segmentation fault. 5720 Спасибо Joaquin Cuenca Abela. 5721 5722 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4. 5723 Спасибо Геннадию Махомеду. 5724 5725 *) Исправление: в проксированных подзапросах и подзапросах к 5726 FastCGI-серверу вместо метода GET использовался оригинальный метод 5727 клиента. 5728 5729 *) Исправление: утечки сокетов в режиме HTTPS при использовании 5730 отложенного accept'а. 5731 Спасибо Ben Maurer. 5732 5733 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed 5734 (SSL: )"; ошибка появилась в 0.6.23. 5735 5736 *) Исправление: при использовании HTTPS запросы могли завершаться с 5737 ошибкой "bad write retry"; ошибка появилась в 0.6.23. 5738 5739 5740Изменения в nginx 0.6.25 08.01.2008 5741 5742 *) Изменение: вместо специального параметра "*" в директиве server_name 5743 теперь используется директива server_name_in_redirect. 5744 5745 *) Изменение: в качестве основного имени в директиве server_name теперь 5746 можно использовать имена с масками и регулярными выражениями. 5747 5748 *) Изменение: директива satisfy_any заменена директивой satisfy. 5749 5750 *) Изменение: после переконфигурации старые рабочие процесс могли сильно 5751 нагружать процессор при запуске под Linux OpenVZ. 5752 5753 *) Добавление: директива min_delete_depth. 5754 5755 *) Исправление: методы COPY и MOVE не работали с одиночными файлами. 5756 5757 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать 5758 модулю ngx_http_dav_module; ошибка появилась в 0.6.23. 5759 5760 *) Исправление: утечки сокетов в режиме HTTPS при использовании 5761 отложенного accept'а. 5762 Спасибо Ben Maurer. 5763 5764 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась 5765 в 0.6.23. 5766 5767 5768Изменения в nginx 0.6.24 27.12.2007 5769 5770 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти 5771 segmentation fault; ошибка появилась в 0.6.23. 5772 5773 5774Изменения в nginx 0.6.23 27.12.2007 5775 5776 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот 5777 параметр используется по умолчанию. 5778 5779 *) Изменение: директива open_file_cache_retest переименована в 5780 open_file_cache_valid. 5781 5782 *) Добавление: директива open_file_cache_min_uses. 5783 5784 *) Добавление: модуль ngx_http_gzip_static_module. 5785 5786 *) Добавление: директива gzip_disable. 5787 5788 *) Добавление: директиву memcached_pass можно использовать внутри блока 5789 if. 5790 5791 *) Исправление: если внутри одного location'а использовались директивы 5792 "memcached_pass" и "if", то в рабочем процессе происходил 5793 segmentation fault. 5794 5795 *) Исправление: если при использовании директивы satisfy_any on" были 5796 заданы директивы не всех модулей доступа, то заданные директивы не 5797 проверялись. 5798 5799 *) Исправление: параметры, заданные регулярным выражением в директиве 5800 valid_referers, не наследовалась с предыдущего уровня. 5801 5802 *) Исправление: директива post_action не работала, если запрос 5803 завершался с кодом 499. 5804 5805 *) Исправление: оптимизация использования 16K буфера для SSL-соединения. 5806 Спасибо Ben Maurer. 5807 5808 *) Исправление: STARTTLS в режиме SMTP не работал. 5809 Спасибо Олегу Мотиенко. 5810 5811 *) Исправление: при использовании HTTPS запросы могли завершаться с 5812 ошибкой "bad write retry"; ошибка появилась в 0.5.13. 5813 5814 5815Изменения в nginx 0.6.22 19.12.2007 5816 5817 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают 5818 значения, скопированные в память, выделенную perl'ом. 5819 5820 *) Исправление: если nginx был собран с модулем ngx_http_perl_module, 5821 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во 5822 время переконфигурации основной процесс аварийно выходил; ошибка 5823 появилась в 0.5.9. 5824 Спасибо Борису Жмурову. 5825 5826 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться 5827 неверные результаты выделения в регулярных выражениях. 5828 5829 *) Исправление: если метод $r->has_request_body() вызывался для запроса, 5830 у которого небольшое тело запроса было уже полностью получено, то в 5831 рабочем процессе происходил segmentation fault. 5832 5833 *) Исправление: large_client_header_buffers не освобождались перед 5834 переходом в состояние keep-alive. 5835 Спасибо Олександру Штепе. 5836 5837 *) Исправление: в переменной $upstream_addr не записывался последний 5838 адрес; ошибка появилась в 0.6.18. 5839 5840 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку; 5841 теперь она возвращает ошибку 502, которую можно направить на 5842 следующий сервер с помощью "fastcgi_next_upstream invalid_header". 5843 5844 *) Исправление: при использовании директивы fastcgi_catch_stderr в 5845 основном процессе происходил segmentation fault; ошибка появилась в 5846 0.6.10. 5847 Спасибо Manlio Perillo. 5848 5849 5850Изменения в nginx 0.6.21 03.12.2007 5851 5852 *) Изменение: если в значениях переменных директивы proxy_pass 5853 используются только IP-адреса, то указывать resolver не нужно. 5854 5855 *) Исправление: при использовании директивы proxy_pass c URI-частью в 5856 рабочем процессе мог произойти segmentation fault; ошибка появилась в 5857 0.6.19. 5858 5859 *) Исправление: если resolver использовался на платформах, не 5860 поддерживающих метод kqueue, то nginx выдавал alert "name is out of 5861 response". 5862 Спасибо Андрею Нигматулину. 5863 5864 *) Исправление: При использовании переменной $server_protocol в 5865 FastCGI-параметрах и запросе, длина которого была близка к значению 5866 директивы client_header_buffer_size, nginx выдавал alert "fastcgi: 5867 the request record is too big". 5868 5869 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу 5870 nginx возвращал обычный ответ. 5871 5872 5873Изменения в nginx 0.6.20 28.11.2007 5874 5875 *) Исправление: при использовании директивы proxy_pass c URI-частью в 5876 рабочем процессе мог произойти segmentation fault; ошибка появилась в 5877 0.6.19. 5878 5879 5880Изменения в nginx 0.6.19 27.11.2007 5881 5882 *) Исправление: версия 0.6.18 не собиралась. 5883 5884 5885Изменения в nginx 0.6.18 27.11.2007 5886 5887 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером 5888 процесса добавляет микросекунды на время старта. 5889 5890 *) Изменение: в error_log теперь записывается полная строка запроса 5891 вместо только URI. 5892 5893 *) Добавление: директива proxy_pass поддерживает переменные. 5894 5895 *) Добавление: директивы resolver и resolver_timeout. 5896 5897 *) Добавление: теперь директива "add_header last-modified ''" удаляет в 5898 заголовке ответа строку "Last-Modified". 5899 5900 *) Исправление: директива limit_rate не позволяла передавать на полной 5901 скорости, даже если был указан очень большой лимит. 5902 5903 5904Изменения в nginx 0.6.17 15.11.2007 5905 5906 *) Добавление: поддержка строки "If-Range" в заголовке запроса. 5907 Спасибо Александру Инюхину. 5908 5909 *) Исправление: при использовании директивы msie_refresh повторно 5910 экранировались уже экранированные символы; ошибка появилась в 0.6.4. 5911 5912 *) Исправление: директива autoindex не работала при использовании "alias 5913 /". 5914 5915 *) Исправление: при использовании подзапросов в рабочем процессе мог 5916 произойти segmentation fault. 5917 5918 *) Исправление: при использовании SSL и gzip большие ответы могли 5919 передаваться не полностью. 5920 5921 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9, 5922 то переменная $status была равна 0. 5923 5924 5925Изменения в nginx 0.6.16 29.10.2007 5926 5927 *) Изменение: теперь на Linux используется uname(2) вместо procfs. 5928 Спасибо Илье Новикову. 5929 5930 *) Исправление: если в директиве error_page использовался символ "?", то 5931 он экранировался при проксировании запроса; ошибка появилась в 5932 0.6.11. 5933 5934 *) Исправление: совместимость с mget. 5935 5936 5937Изменения в nginx 0.6.15 22.10.2007 5938 5939 *) Добавление: совместимость с Cygwin. 5940 Спасибо Владимиру Кутакову. 5941 5942 *) Добавление: директива merge_slashes. 5943 5944 *) Добавление: директива gzip_vary. 5945 5946 *) Добавление: директива server_tokens. 5947 5948 *) Исправление: nginx не раскодировал URI в команде SSI include. 5949 5950 *) Исправление: при использовании переменной в директивах charset или 5951 source_charset на старте или во время переконфигурации происходил 5952 segmentation fault, 5953 5954 *) Исправление: nginx возвращал ошибку 400 на запросы вида 5955 "GET http://www.domain.com HTTP/1.0". 5956 Спасибо James Oakley. 5957 5958 *) Исправление: после перенаправления запроса с телом запроса с помощью 5959 директивы error_page nginx пытался снова прочитать тело запроса; 5960 ошибка появилась в 0.6.7. 5961 5962 *) Исправление: в рабочем процессе происходил segmentation fault, если у 5963 сервера, обрабатывающему запрос, не был явно определён server_name; 5964 ошибка появилась в 0.6.7. 5965 5966 5967Изменения в nginx 0.6.14 15.10.2007 5968 5969 *) Изменение: теперь по умолчанию команда SSI echo использует 5970 кодирование entity. 5971 5972 *) Добавление: параметр encoding в команде SSI echo. 5973 5974 *) Добавление: директиву access_log можно использовать внутри блока 5975 limit_except. 5976 5977 *) Исправление: если все сервера апстрима оказывались недоступными, то 5978 до восстановления работоспособности у всех серверов вес становился 5979 равным одному; ошибка появилась в 0.6.6. 5980 5981 *) Исправление: при использовании переменных $date_local и $date_gmt вне 5982 модуля ngx_http_ssi_filter_module в рабочем процессе происходил 5983 segmentation fault. 5984 5985 *) Исправление: при использовании включённом отладочном логе в рабочем 5986 процессе мог произойти segmentation fault. 5987 Спасибо Андрею Нигматулину. 5988 5989 *) Исправление: ngx_http_memcached_module не устанавливал 5990 $upstream_response_time. 5991 Спасибо Максиму Дунину. 5992 5993 *) Исправление: рабочий процесс мог зациклиться при использовании 5994 memcached. 5995 5996 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в 5997 строке "Connection" в заголовке запроса только, если они были в 5998 нижнем регистре; ошибка появилась в 0.6.11. 5999 6000 *) Исправление: sub_filter не работал с пустой строкой замены. 6001 6002 *) Исправление: в парсинге sub_filter. 6003 6004 6005Изменения в nginx 0.6.13 24.09.2007 6006 6007 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если 6008 использовался autoindex 6009 Спасибо Arkadiusz Patyk. 6010 6011 6012Изменения в nginx 0.6.12 21.09.2007 6013 6014 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap 6015 и smtp. 6016 6017 *) Добавление: параметры конфигурации --without-mail_pop3_module, 6018 --without-mail_imap_module и --without-mail_smtp_module. 6019 6020 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля 6021 ngx_mail_smtp_module. 6022 6023 *) Исправление: wildcard в конце имени сервера не работали; ошибка 6024 появилась в 0.6.9. 6025 6026 *) Исправление: при использовании разделяемой библиотеки PCRE, 6027 расположенной в нестандартном месте, nginx не запускался на Solaris. 6028 6029 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не 6030 скрывали строки заголовка ответа с именем больше 32 символов. 6031 Спасибо Manlio Perillo. 6032 6033 6034Изменения в nginx 0.6.11 11.09.2007 6035 6036 *) Исправление: счётчик активных соединений всегда рос при использовании 6037 почтового прокси-сервера. 6038 6039 *) Исправление: если бэкенд возвращал только заголовок ответа при 6040 небуферизированном проксировании, то nginx закрывал соединение с 6041 бэкендом по таймауту. 6042 6043 *) Исправление: nginx не поддерживал несколько строк "Connection" в 6044 заголовке запроса. 6045 6046 *) Исправление: если в сервере апстрима был задан max_fails, то после 6047 первой же неудачной попытки вес сервера навсегда становился равным 6048 одному; ошибка появилась в 0.6.6. 6049 6050 6051Изменения в nginx 0.6.10 03.09.2007 6052 6053 *) Добавление: директивы open_file_cache, open_file_cache_retest и 6054 open_file_cache_errors. 6055 6056 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7. 6057 6058 *) Исправление: В строку заголовка ответа "Content-Type", указанную в 6059 методе $r->send_http_header(), не добавлялась кодировка, указанная в 6060 директиве charset. 6061 6062 *) Исправление: при использовании метода /dev/poll в рабочем процессе 6063 мог произойти segmentation fault. 6064 6065 6066Изменения в nginx 0.6.9 28.08.2007 6067 6068 *) Исправление: рабочий процесс мог зациклиться при использовании 6069 протокола HTTPS; ошибка появилась в 0.6.7. 6070 6071 *) Исправление: если сервер слушал на двух адресах или портах, то nginx 6072 не запускался при использовании wildcard в конце имени сервера. 6073 6074 *) Исправление: директива ip_hash могла неверно помечать сервера как 6075 нерабочие. 6076 6077 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8. 6078 6079 6080Изменения в nginx 0.6.8 20.08.2007 6081 6082 *) Изменение: теперь nginx пытается установить директивы 6083 worker_priority, worker_rlimit_nofile, worker_rlimit_core, 6084 worker_rlimit_sigpending без привилегий root'а. 6085 6086 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче 6087 запроса серверу аутентификации почтового прокси-сервера. 6088 6089 *) Изменение: теперь nginx экранирует символ "%" в переменной 6090 $memcached_key. 6091 6092 *) Исправление: при указании относительного пути к конфигурационному 6093 файлу в качестве параметра ключа -c nginx определял путь относительно 6094 конфигурационного префикса; ошибка появилась в 0.6.6. 6095 6096 *) Исправление: nginx не работал на FreeBSD/sparc64. 6097 6098 6099Изменения в nginx 0.6.7 15.08.2007 6100 6101 *) Изменение: теперь пути, указанные в директивах include, 6102 auth_basic_user_file, perl_modules, ssl_certificate, 6103 ssl_certificate_key и ssl_client_certificate, определяются 6104 относительно каталога конфигурационного файла nginx.conf, а не 6105 относительно префикса. 6106 6107 *) Изменение: параметр --sysconfdir=PATH в configure упразднён. 6108 6109 *) Изменение: для обновления на лету версий 0.1.x создан специальный 6110 сценарий make upgrade1. 6111 6112 *) Добавление: директивы server_name и valid_referers поддерживают 6113 регулярные выражения. 6114 6115 *) Добавление: директива server в блоке upstream поддерживает параметр 6116 backup. 6117 6118 *) Добавление: модуль ngx_http_perl_module поддерживает метод 6119 $r->discard_request_body. 6120 6121 *) Добавление: директива "add_header Last-Modified ..." меняет строку 6122 "Last-Modified" в заголовке ответа. 6123 6124 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP 6125 отличным от 200, и после этого запроса соединение переходило в 6126 состояние keep-alive, то на следующий запрос nginx возвращал 400. 6127 6128 *) Исправление: если в директиве auth_http был задан неправильный адрес, 6129 то в рабочем процессе происходил segmentation fault. 6130 6131 *) Исправление: теперь по умолчанию nginx использует значение 511 для 6132 listen backlog на всех платформах, кроме FreeBSD. 6133 Спасибо Jiang Hong. 6134 6135 *) Исправление: рабочий процесс мог зациклиться, если server в блоке 6136 upstream был помечен как down; ошибка появилась в 0.6.6. 6137 6138 *) Исправление: sendfilev() в Solaris теперь не используется при 6139 передаче тела запроса FastCGI-серверу через unix domain сокет. 6140 6141 6142Изменения в nginx 0.6.6 30.07.2007 6143 6144 *) Добавление: параметр --sysconfdir=PATH в configure. 6145 6146 *) Добавление: именованные location'ы. 6147 6148 *) Добавление: переменную $args можно устанавливать с помощью set. 6149 6150 *) Добавление: переменная $is_args. 6151 6152 *) Исправление: равномерное распределение запросов к апстримам с 6153 большими весами. 6154 6155 *) Исправление: если клиент в почтовом прокси-сервере закрывал 6156 соединение, то nginx мог не закрывать соединение с бэкендом. 6157 6158 *) Исправление: при использовании одного хоста в качестве бэкендов для 6159 протоколов HTTP и HTTPS без явного указания портов, nginx использовал 6160 только один порт - 80 или 443. 6161 6162 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и 6163 более ранними версиями; ошибка появилась в 0.6.4. 6164 6165 6166Изменения в nginx 0.6.5 23.07.2007 6167 6168 *) Добавление: переменная $nginx_version. 6169 Спасибо Николаю Гречуху. 6170 6171 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме 6172 IMAP. 6173 Спасибо Максиму Дунину. 6174 6175 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме 6176 SMTP. 6177 Спасибо Максиму Дунину. 6178 6179 *) Исправление: теперь nginx экранирует пробел в переменной 6180 $memcached_key. 6181 6182 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64. 6183 Спасибо Jiang Hong. 6184 6185 *) Исправление: незначительных потенциальных ошибок. 6186 Спасибо Coverity's Scan. 6187 6188 6189Изменения в nginx 0.6.4 17.07.2007 6190 6191 *) Безопасность: при использовании директивы msie_refresh был возможен 6192 XSS. 6193 Спасибо Максиму Богуку. 6194 6195 *) Изменение: директивы proxy_store и fastcgi_store изменены. 6196 6197 *) Добавление: директивы proxy_store_access и fastcgi_store_access. 6198 6199 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun 6200 Studio. 6201 Спасибо Андрею Нигматулину. 6202 6203 *) Изменение: обход ошибки в Sun Studio 12. 6204 Спасибо Jiang Hong. 6205 6206 6207Изменения в nginx 0.6.3 12.07.2007 6208 6209 *) Добавление: директивы proxy_store и fastcgi_store. 6210 6211 *) Исправление: при использовании директивы auth_http_header в рабочем 6212 процессе мог произойти segmentation fault. 6213 Спасибо Максиму Дунину. 6214 6215 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он 6216 не был разрешён, то в рабочем процессе происходил segmentation fault. 6217 6218 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass 6219 в рабочем процессе мог произойти segmentation fault. 6220 6221 *) Исправление: в рабочем процессе мог произойти segmentation fault, 6222 если использовался метод eventport. 6223 6224 *) Исправление: директивы proxy_ignore_client_abort и 6225 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13. 6226 6227 6228Изменения в nginx 0.6.2 09.07.2007 6229 6230 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то 6231 nginx передавал клиенту мусор в таких заголовках. 6232 6233 6234Изменения в nginx 0.6.1 17.06.2007 6235 6236 *) Исправление: в парсинге SSI. 6237 6238 *) Исправление: при использовании удалённого подзапроса в SSI 6239 последующий подзапрос локального файла мог отдаваться клиенту в 6240 неверном порядке. 6241 6242 *) Исправление: большие включения в SSI, сохранённые во временные файлы, 6243 передавались не полностью. 6244 6245 *) Исправление: значение perl'овой переменной $$ модуля 6246 ngx_http_perl_module было равно номеру главного процесса. 6247 6248 6249Изменения в nginx 0.6.0 14.06.2007 6250 6251 *) Добавление: директивы "server_name", "map", and "valid_referers" 6252 поддерживают маски вида "www.example.*". 6253 6254 6255Изменения в nginx 0.5.25 11.06.2007 6256 6257 *) Исправление: nginx не собирался с параметром 6258 --without-http_rewrite_module; ошибка появилась в 0.5.24. 6259 6260 6261Изменения в nginx 0.5.24 06.06.2007 6262 6263 *) Безопасность: директива ssl_verify_client не работала, если запрос 6264 выполнялся по протоколу HTTP/0.9. 6265 6266 *) Исправление: при использовании сжатия часть ответа могла передаваться 6267 несжатой; ошибка появилась в 0.5.23. 6268 6269 6270Изменения в nginx 0.5.23 04.06.2007 6271 6272 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS 6273 Server Name Indication. 6274 6275 *) Добавление: директива fastcgi_catch_stderr. 6276 Спасибо Николаю Гречуху, проект OWOX. 6277 6278 *) Исправление: на Линуксе в основном процессе происходил segmentation 6279 fault, если два виртуальных сервера должны bind()ится к 6280 пересекающимся портам. 6281 6282 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и 6283 perl поддерживал потоки, то во время второй переконфигурации 6284 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed". 6285 6286 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. 6287 6288 6289Изменения в nginx 0.5.22 29.05.2007 6290 6291 *) Исправление: большое тело запроса могло не передаваться бэкенду; 6292 ошибка появилась в 0.5.21. 6293 6294 6295Изменения в nginx 0.5.21 28.05.2007 6296 6297 *) Исправление: если внутри сервера описано больше примерно десяти 6298 location'ов, то location'ы, заданные с помощью регулярного выражения, 6299 могли выполняться не в том, порядке, в каком они описаны. 6300 6301 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться, 6302 если 33-тий по счёту или последующий бэкенд упал. 6303 Спасибо Антону Поварову. 6304 6305 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог 6306 произойти bus error. 6307 Спасибо Андрею Нигматулину. 6308 6309 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. 6310 6311 6312Изменения в nginx 0.5.20 07.05.2007 6313 6314 *) Добавление: директива sendfile_max_chunk. 6315 6316 *) Добавление: переменные "$http_...", "$sent_http_..." и 6317 "$upstream_http_..." можно менять директивой set. 6318 6319 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в 6320 рабочем процессе мог произойти segmentation fault. 6321 6322 *) Исправление: завершающая строка multipart range ответа передавалась 6323 неверно. 6324 Спасибо Evan Miller. 6325 6326 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun 6327 Studio. 6328 Спасибо Андрею Нигматулину. 6329 6330 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris. 6331 Спасибо Андрею Нигматулину. 6332 6333 6334Изменения в nginx 0.5.19 24.04.2007 6335 6336 *) Изменение: значение переменной $request_time теперь записывается с 6337 точностью до миллисекунд. 6338 6339 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module 6340 переименован в $r->flush. 6341 6342 *) Добавление: переменная $upstream_addr. 6343 6344 *) Добавление: директивы proxy_headers_hash_max_size и 6345 proxy_headers_hash_bucket_size. 6346 Спасибо Володымыру Костырко. 6347 6348 *) Исправление: при использовании sendfile и limit_rate на 64-битных 6349 платформах нельзя было передавать файлы больше 2G. 6350 6351 *) Исправление: при использовании sendfile на 64-битном Linux нельзя 6352 было передавать файлы больше 2G. 6353 6354 6355Изменения в nginx 0.5.18 19.04.2007 6356 6357 *) Добавление: модуль ngx_http_sub_filter_module. 6358 6359 *) Добавление: переменные "$upstream_http_...". 6360 6361 *) Добавление: теперь переменные $upstream_status и 6362 $upstream_response_time содержат данные о всех обращениях к 6363 апстримам, сделанным до X-Accel-Redirect. 6364 6365 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и 6366 perl не поддерживал multiplicity, то после первой переконфигурации и 6367 после получения любого сигнала в основном процессе происходил 6368 segmentation fault; ошибка появилась в 0.5.9. 6369 6370 *) Исправление: если perl не поддерживал multiplicity, то после 6371 переконфигурации перловый код не работал; ошибка появилась в 0.3.38. 6372 6373 6374Изменения в nginx 0.5.17 02.04.2007 6375 6376 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405. 6377 6378 *) Добавление: теперь nginx поддерживает директиву include внутри блока 6379 types. 6380 6381 *) Исправление: использование переменной $document_root в директиве root 6382 и alias запрещено: оно вызывало рекурсивное переполнение стека. 6383 6384 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. 6385 6386 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как 6387 $uri) возвращали старое закэшированное значение. 6388 6389 6390Изменения в nginx 0.5.16 26.03.2007 6391 6392 *) Исправление: в качестве ключа для хэша в директиве ip_hash не 6393 использовалась сеть класса С. 6394 Спасибо Павлу Ярковому. 6395 6396 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда 6397 был указан charset и строка завершалась символом ";", то в рабочем 6398 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50. 6399 6400 *) Исправление: ошибки "[alert] zero size buf" при работе с 6401 FastCGI-сервером, если тело запроса, записанное во временный файл, 6402 было кратно 32K. 6403 6404 *) Исправление: nginx не собирался на Solaris без параметра 6405 --with-debug; ошибка появилась в 0.5.15. 6406 6407 6408Изменения в nginx 0.5.15 19.03.2007 6409 6410 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное 6411 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и 6412 xclient. 6413 Спасибо Антону Южанинову и Максиму Дунину. 6414 6415 *) Добавление: теперь keep-alive соединения закрываются сразу же по 6416 получении сигнала переконфигурации. 6417 6418 *) Изменение: директивы imap и auth переименованы соответственно в mail 6419 и pop3_auth. 6420 6421 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не 6422 был разрешён метод APOP, то в рабочем процессе происходил 6423 segmentation fault. 6424 6425 *) Исправление: при использовании директивы starttls only в протоколе 6426 POP3 nginx разрешал аутентификацию без перехода в режим SSL. 6427 6428 *) Исправление: рабочие процессы не выходили после переконфигурации и не 6429 переоткрывали логи, если использовался метод eventport. 6430 6431 *) Исправление: при использовании директивы ip_hash рабочий процесс мог 6432 зациклиться. 6433 6434 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если 6435 используются методы eventport или /dev/poll. 6436 6437 6438Изменения в nginx 0.5.14 23.02.2007 6439 6440 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце 6441 конфигурационного файла. 6442 6443 6444Изменения в nginx 0.5.13 19.02.2007 6445 6446 *) Добавление: методы COPY и MOVE. 6447 6448 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для 6449 запросов, переданных по keep-alive соединению. 6450 6451 *) Исправление: nginx не работал на 64-битном big-endian Linux. 6452 Спасибо Андрею Нигматулину. 6453 6454 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси 6455 теперь сразу закрывает соединение, а не по таймауту. 6456 6457 *) Исправление: если при использовании метода epoll клиент закрывал 6458 преждевременно соединение со своей стороны, то nginx закрывал это 6459 соединение только по истечении таймаута на передачу. 6460 6461 *) Исправление: nginx не собирался на платформах, отличных от i386, 6462 amd64, sparc и ppc; ошибка появилась в 0.5.8. 6463 6464 6465Изменения в nginx 0.5.12 12.02.2007 6466 6467 *) Исправление: nginx не собирался на платформах, отличных от i386, 6468 amd64, sparc и ppc; ошибка появилась в 0.5.8. 6469 6470 *) Исправление: при использовании временных файлов в время работы с 6471 FastCGI-сервером в рабочем процессе мог произойти segmentation fault; 6472 ошибка появилась в 0.5.8. 6473 6474 *) Исправление: если переменная $fastcgi_script_name записывалась в лог, 6475 то в рабочем процессе мог произойти segmentation fault. 6476 6477 *) Исправление: ngx_http_perl_module не собирался на Solaris. 6478 6479 6480Изменения в nginx 0.5.11 05.02.2007 6481 6482 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts. 6483 Спасибо Chris McGrath. 6484 6485 *) Исправление: ответ был неверным, если запрашивалось несколько 6486 диапазонов; ошибка появилась в 0.5.6. 6487 6488 *) Исправление: директива create_full_put_path не могла создавать 6489 промежуточные каталоги, если не была установлена директива 6490 dav_access. 6491 Спасибо Evan Miller. 6492 6493 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог 6494 записываться код "0". 6495 6496 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог 6497 произойти segmentation fault. 6498 6499 6500Изменения в nginx 0.5.10 26.01.2007 6501 6502 *) Исправление: во время обновления исполняемого файла новый процесс не 6503 наследовал слушающие сокеты; ошибка появилась в 0.5.9. 6504 6505 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог 6506 произойти segmentation fault; ошибка появилась в 0.5.1. 6507 6508 6509Изменения в nginx 0.5.9 25.01.2007 6510 6511 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа 6512 использует значение переменной $memcached_key. 6513 6514 *) Добавление: переменная $memcached_key. 6515 6516 *) Добавление: параметр clean в директиве client_body_in_file_only. 6517 6518 *) Добавление: директива env. 6519 6520 *) Добавление: директива sendfile работает внутри блока if. 6521 6522 *) Добавление: теперь при ошибке записи в access_log nginx записывает 6523 сообщение в error_log, но не чаще одного раза в минуту. 6524 6525 *) Исправление: директива "access_log off" не всегда запрещала запись в 6526 лог. 6527 6528 6529Изменения в nginx 0.5.8 19.01.2007 6530 6531 *) Исправление: если использовалась директива 6532 "client_body_in_file_only on" и тело запроса было небольшое, то мог 6533 произойти segmentation fault. 6534 6535 *) Исправление: происходил segmentation fault, если использовались 6536 директивы "client_body_in_file_only on" и 6537 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и 6538 делался переход к следующему бэкенду. 6539 6540 *) Исправление: если при использовании директивы "proxy_buffering off" 6541 соединение с клиентом было неактивно, то оно закрывалось по таймауту, 6542 заданному директивой send_timeout; ошибка появилась в 0.4.7. 6543 6544 *) Исправление: если при использовании метода epoll клиент закрывал 6545 преждевременно соединение со своей стороны, то nginx закрывал это 6546 соединение только по истечении таймаута на передачу. 6547 6548 *) Исправление: ошибки "[alert] zero size buf" при работе с 6549 FastCGI-сервером. 6550 6551 *) Исправление ошибок в директиве limit_zone. 6552 6553 6554Изменения в nginx 0.5.7 15.01.2007 6555 6556 *) Добавление: оптимизация использования памяти в ssl_session_cache. 6557 6558 *) Исправление ошибок в директивах ssl_session_cache и limit_zone. 6559 6560 *) Исправление: на старте или во время переконфигурации происходил 6561 segmentation fault, если директивы ssl_session_cache или limit_zone 6562 использовались на 64-битных платформах. 6563 6564 *) Исправление: при использовании директив add_before_body или 6565 add_after_body происходил segmentation fault, если в заголовке ответа 6566 нет строки "Content-Type". 6567 6568 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой 6569 потоков. 6570 Спасибо Дену Иванову. 6571 6572 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc. 6573 6574 6575Изменения в nginx 0.5.6 09.01.2007 6576 6577 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы, 6578 кроме GET, HEAD и POST. 6579 6580 *) Добавление: модуль ngx_http_limit_zone_module. 6581 6582 *) Добавление: переменная $binary_remote_addr. 6583 6584 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и 6585 ngx_imap_ssl_module. 6586 6587 *) Добавление: метод DELETE поддерживает рекурсивное удаление. 6588 6589 *) Исправление: при использовании $r->sendfile() byte-ranges 6590 передавались неверно. 6591 6592 6593Изменения в nginx 0.5.5 24.12.2006 6594 6595 *) Изменение: ключ -v больше не выводит информацию о компиляторе. 6596 6597 *) Добавление: ключ -V. 6598 6599 *) Добавление: директива worker_rlimit_core поддерживает указание 6600 размера в K, M и G. 6601 6602 *) Исправление: модуль nginx.pm теперь может устанавливаться 6603 непривилегированным пользователем. 6604 6605 *) Исправление: при использовании методов $r->request_body или 6606 $r->request_body_file мог произойти segmentation fault. 6607 6608 *) Исправление: ошибок, специфичных для платформы ppc. 6609 6610 6611Изменения в nginx 0.5.4 15.12.2006 6612 6613 *) Добавление: директиву perl можно использовать внутри блока 6614 limit_except. 6615 6616 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в 6617 заголовке запроса для метода DELETE. 6618 6619 *) Исправление: при использовании одного параметра в директиве 6620 dav_access nginx мог сообщить об ошибке в конфигурации. 6621 6622 *) Исправление: при использовании переменной $host мог произойти 6623 segmentation fault; ошибка появилась в 0.4.14. 6624 6625 6626Изменения в nginx 0.5.3 13.12.2006 6627 6628 *) Добавление: модуль ngx_http_perl_module поддерживает методы 6629 $r->status, $r->log_error и $r->sleep. 6630 6631 *) Добавление: метод $r->variable поддерживает переменные, неописанные в 6632 конфигурации nginx'а. 6633 6634 *) Исправление: метод $r->has_request_body не работал. 6635 6636 6637Изменения в nginx 0.5.2 11.12.2006 6638 6639 *) Исправление: если в директивах proxy_pass использовалось имя, 6640 указанное в upstream, то nginx пытался найти IP-адрес этого имени; 6641 ошибка появилась в 0.5.1. 6642 6643 6644Изменения в nginx 0.5.1 11.12.2006 6645 6646 *) Исправление: директива post_action могла не работать после неудачного 6647 завершения запроса. 6648 6649 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11. 6650 Спасибо Bron Gondwana. 6651 6652 *) Исправление: при указании в директиве fastcgi_pass имени описанного 6653 upstream'а выдавалось сообщение "no port in upstream"; ошибка 6654 появилась в 0.5.0. 6655 6656 *) Исправление: если в директивах proxy_pass и fastcgi_pass 6657 использовались одинаковых имена серверов, но с разными портами, то 6658 эти директивы использовали первый описанный порт; ошибка появилась в 6659 0.5.0. 6660 6661 *) Исправление: если в директивах proxy_pass и fastcgi_pass 6662 использовались unix domain сокеты, то эти директивы использовали 6663 первый описанный сокет; ошибка появилась в 0.5.0. 6664 6665 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя, 6666 если он был указан в последней строке файла паролей и после пароля не 6667 было перевода строки, возврата каретки или символа ":". 6668 6669 *) Исправление: переменная $upstream_response_time могла быть равна 6670 "0.000", хотя время обработки было больше 1 миллисекунды. 6671 6672 6673Изменения в nginx 0.5.0 04.12.2006 6674 6675 *) Изменение: параметры в виде "%name" в директиве log_format больше не 6676 поддерживаются. 6677 6678 *) Изменение: директивы proxy_upstream_max_fails, 6679 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и 6680 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и 6681 memcached_upstream_fail_timeout больше не поддерживаются. 6682 6683 *) Добавление: директива server в блоке upstream поддерживает параметры 6684 max_fails, fail_timeout и down. 6685 6686 *) Добавление: директива ip_hash в блоке upstream. 6687 6688 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа 6689 сервера аутентификации IMAP/POP3 прокси. 6690 6691 *) Исправление: nginx не собирался на 64-битных платформах; ошибка 6692 появилась в 0.4.14. 6693 6694 6695Изменения в nginx 0.4.14 27.11.2006 6696 6697 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси. 6698 6699 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD, 6700 Linux и NetBSD. 6701 6702 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с 6703 поддержкой потоков; ошибка появилась в 0.3.38. 6704 6705 *) Исправление: ngx_http_perl_module не работал корректно, если перл 6706 вызывался рекурсивно. 6707 6708 *) Исправление: nginx игнорировал имя сервера в строке запроса. 6709 6710 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий 6711 процесс мог зациклиться. 6712 6713 *) Исправление: при изменении системного времени переменная 6714 $upstream_response_time могла быть отрицательной. 6715 6716 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3 6717 прокси не передавался параметр Auth-Login-Attempt. 6718 6719 *) Исправление: при ошибке соединения с сервером аутентификации 6720 IMAP/POP3 прокси мог произойти segmentation fault. 6721 6722 6723Изменения в nginx 0.4.13 15.11.2006 6724 6725 *) Добавление: директиву proxy_pass можно использовать внутри блока 6726 limit_except. 6727 6728 *) Добавление: директива limit_except поддерживает все WebDAV методы. 6729 6730 *) Исправление: при использовании директивы add_before_body без 6731 директивы add_after_body ответ передавался не полностью. 6732 6733 *) Исправление: большое тело запроса не принималось, если использовались 6734 метод epoll и deferred accept(). 6735 6736 *) Исправление: для ответов модуля ngx_http_autoindex_module не 6737 выставлялась кодировка; ошибка появилась в 0.3.50. 6738 6739 *) Исправление: ошибки "[alert] zero size buf" при работе с 6740 FastCGI-сервером; 6741 6742 *) Исправление: параметр конфигурации --group= игнорировался. 6743 Спасибо Thomas Moschny. 6744 6745 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась 6746 в 0.3.50. 6747 6748 6749Изменения в nginx 0.4.12 31.10.2006 6750 6751 *) Добавление: модуль ngx_http_perl_module поддерживает метод 6752 $r->variable. 6753 6754 *) Исправление: при включении в ответ большого статического файла с 6755 помощью SSI ответ мог передаваться не полностью. 6756 6757 *) Исправление: nginx не убирал "#fragment" в URI. 6758 6759 6760Изменения в nginx 0.4.11 25.10.2006 6761 6762 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5. 6763 6764 *) Добавление: модуль ngx_http_perl_module поддерживает метод 6765 $r->allow_ranges. 6766 6767 *) Исправление: при включённой поддержке команды APOP в POP3 прокси 6768 могли не работать команды USER/PASS; ошибка появилась в 0.4.10. 6769 6770 6771Изменения в nginx 0.4.10 23.10.2006 6772 6773 *) Добавление: POP3 прокси поддерживает APOP. 6774 6775 *) Исправление: при использовании методов select, poll и /dev/poll во 6776 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси 6777 нагружал процессор. 6778 6779 *) Исправление: при использовании переменной $server_addr в директиве 6780 map мог произойти segmentation fault. 6781 6782 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges 6783 для полных ответов; ошибка появилась в 0.4.7. 6784 6785 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в 6786 0.4.9. 6787 6788 6789Изменения в nginx 0.4.9 13.10.2006 6790 6791 *) Добавление: параметр set в команде SSI include. 6792 6793 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию 6794 модуля nginx.pm. 6795 6796 6797Изменения в nginx 0.4.8 11.10.2006 6798 6799 *) Исправление: если до команды SSI include с параметром wait 6800 выполнялась ещё одна команда SSI include, то параметр wait мог не 6801 работать. 6802 6803 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для 6804 полных ответов. 6805 Спасибо Алексею Ковырину. 6806 6807 6808Изменения в nginx 0.4.7 10.10.2006 6809 6810 *) Добавление: модуль ngx_http_flv_module. 6811 6812 *) Добавление: переменная $request_body_file. 6813 6814 *) Добавление: директивы charset и source_charset поддерживают 6815 переменные. 6816 6817 *) Исправление: если до команды SSI include с параметром wait 6818 выполнялась ещё одна команда SSI include, то параметр wait мог не 6819 работать. 6820 6821 *) Исправление: при использовании директивы "proxy_buffering off" или 6822 при работе с memcached соединения могли не закрываться по таймауту. 6823 6824 *) Исправление: nginx не запускался на 64-битных платформах, отличных от 6825 amd64, sparc64 и ppc64. 6826 6827 6828Изменения в nginx 0.4.6 06.10.2006 6829 6830 *) Исправление: nginx не запускался на 64-битных платформах, отличных от 6831 amd64, sparc64 и ppc64. 6832 6833 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ 6834 chunk'ами, если длина ответа в методе 6835 $r->headers_out("Content-Length", ...) была задана текстовой строкой. 6836 6837 *) Исправление: после перенаправления ошибки с помощью директивы 6838 error_page любая директива модуля ngx_http_rewrite_module возвращала 6839 эту ошибку; ошибка появилась в 0.4.4. 6840 6841 6842Изменения в nginx 0.4.5 02.10.2006 6843 6844 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась 6845 в 0.4.4. 6846 6847 6848Изменения в nginx 0.4.4 02.10.2006 6849 6850 *) Добавление: переменная $scheme. 6851 6852 *) Добавление: директива expires поддерживает параметр max. 6853 6854 *) Добавление: директива include поддерживает маску "*". 6855 Спасибо Jonathan Dance. 6856 6857 *) Исправление: директива return всегда изменяла код ответа, 6858 перенаправленного директивой error_page. 6859 6860 *) Исправление: происходил segmentation fault, если в методе PUT 6861 передавалось тело нулевой длины. 6862 6863 *) Исправление: при использовании переменных в директиве proxy_redirect 6864 редирект изменялся неверно. 6865 6866 6867Изменения в nginx 0.4.3 26.09.2006 6868 6869 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы 6870 error_page. 6871 6872 *) Добавление: поддержка Solaris 10 event ports. 6873 6874 *) Добавление: модуль ngx_http_browser_module. 6875 6876 *) Исправление: при перенаправлении ошибки 400 проксированному серверу 6877 помощью директивы error_page мог произойти segmentation fault. 6878 6879 *) Исправление: происходил segmentation fault, если в директиве 6880 proxy_pass использовался unix domain сокет; ошибка появилась в 6881 0.3.47. 6882 6883 *) Исправление: SSI не работал с ответами memcached и 6884 небуферизированными проксированными ответами. 6885 6886 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio. 6887 6888 6889Изменения в nginx 0.4.2 14.09.2006 6890 6891 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка 6892 появилась в 0.4.1. 6893 6894 6895Изменения в nginx 0.4.1 14.09.2006 6896 6897 *) Исправление: совместимость с DragonFlyBSD. 6898 Спасибо Павлу Назарову. 6899 6900 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче 6901 файлов больше 2G. 6902 6903 *) Добавление: теперь на Linux nginx для статических запросов использует 6904 флаг O_NOATIME. 6905 Спасибо Yusuf Goolamabbas. 6906 6907 6908Изменения в nginx 0.4.0 30.08.2006 6909 6910 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из 6911 фазы init module в фазу HTTP postconfiguration. 6912 6913 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не 6914 считывается заранее: нужно явно инициировать чтение с помощью метода 6915 $r->has_request_body. 6916 6917 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата 6918 DECLINED. 6919 6920 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку 6921 заголовка "Date" для метода PUT. 6922 6923 *) Добавление: директива ssi работает внутри блока if. 6924 6925 *) Исправление: происходил segmentation fault, если в директиве index 6926 использовалась переменные и при этом первое имя индексного файла было 6927 без переменных; ошибка появилась в 0.1.29. 6928 6929 6930Изменения в nginx 0.3.61 28.08.2006 6931 6932 *) Изменение: директива tcp_nodelay теперь по умолчанию включена. 6933 6934 *) Добавление: директива msie_refresh. 6935 6936 *) Добавление: директива recursive_error_pages. 6937 6938 *) Исправление: директива rewrite возвращала неправильный редирект, если 6939 редирект включал в себя выделенные закодированные символы из 6940 оригинального URI. 6941 6942 6943Изменения в nginx 0.3.60 18.08.2006 6944 6945 *) Исправление: во время перенаправления ошибки рабочий процесс мог 6946 зациклиться; ошибка появилась в 0.3.59. 6947 6948 6949Изменения в nginx 0.3.59 16.08.2006 6950 6951 *) Добавление: теперь можно делать несколько перенаправлений через 6952 директиву error_page. 6953 6954 *) Исправление: директива dav_access не поддерживала три параметра. 6955 6956 *) Исправление: директива error_page не изменяла строку "Content-Type" 6957 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась 6958 в 0.3.58. 6959 6960 6961Изменения в nginx 0.3.58 14.08.2006 6962 6963 *) Добавление: директива error_page поддерживает переменные. 6964 6965 *) Изменение: теперь на Linux используется интерфейс procfs вместо 6966 sysctl. 6967 6968 *) Изменение: теперь при использовании "X-Accel-Redirect" строка 6969 "Content-Type" наследуется из первоначального ответа. 6970 6971 *) Исправление: директива error_page не перенаправляла ошибку 413. 6972 6973 *) Исправление: завершающий "?" не удалял старые аргументы, если в 6974 переписанном URI не было новых аргументов. 6975 6976 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT. 6977 6978 6979Изменения в nginx 0.3.57 09.08.2006 6980 6981 *) Добавление: переменная $ssl_client_serial. 6982 6983 *) Исправление: в операторе "!-e" в директиве if. 6984 Спасибо Андриану Буданцову. 6985 6986 *) Исправление: при проверке клиентского сертификата nginx не передавал 6987 клиенту информацию о требуемых сертификатах. 6988 6989 *) Исправление: переменная $document_root не поддерживала переменные в 6990 директиве root. 6991 6992 6993Изменения в nginx 0.3.56 04.08.2006 6994 6995 *) Добавление: директива dav_access. 6996 6997 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e", 6998 "!-e", "-x" и "!-x". 6999 7000 *) Исправление: при записи в access_log некоторых передаваемых клиенту 7001 строк заголовков происходил segmentation fault, если запрос возвращал 7002 редирект. 7003 7004 7005Изменения в nginx 0.3.55 28.07.2006 7006 7007 *) Добавление: параметр stub в команде SSI include. 7008 7009 *) Добавление: команда SSI block. 7010 7011 *) Добавление: скрипт unicode2nginx добавлен в contrib. 7012 7013 *) Исправление: если root был задан только переменной, то корень 7014 задавался относительно префикса сервера. 7015 7016 *) Исправление: если в запросе был "//" или "/.", и после этого 7017 закодированные символы в виде "%XX", то проксируемый запрос 7018 передавался незакодированным. 7019 7020 *) Исправление: метод $r->header_in("Cookie") модуля 7021 ngx_http_perl_module теперь возвращает все строки "Cookie" в 7022 заголовке запроса. 7023 7024 *) Исправление: происходил segmentation fault, если использовался 7025 "client_body_in_file_only on" и делался переход к следующему бэкенду. 7026 7027 *) Исправление: при некоторых условиях во время переконфигурации коды 7028 символов внутри директивы charset_map могли считаться неверными; 7029 ошибка появилась в 0.3.50. 7030 7031 7032Изменения в nginx 0.3.54 11.07.2006 7033 7034 *) Добавление: nginx теперь записывает в лог информацию о подзапросах. 7035 7036 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и 7037 memcached_next_upstream поддерживают параметр off. 7038 7039 *) Добавление: директива debug_connection поддерживает запись адресов в 7040 формате CIDR. 7041 7042 *) Исправление: при перекодировании ответа проксированного сервера или 7043 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не 7044 полностью. 7045 7046 *) Исправление: переменная $upstream_response_time содержала время 7047 только первого обращения к бэкенду. 7048 7049 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась 7050 в 0.3.53. 7051 7052 7053Изменения в nginx 0.3.53 07.07.2006 7054 7055 *) Изменение: директива add_header добавляет строки в ответы с кодом 7056 204, 301 и 302. 7057 7058 *) Добавление: директива server в блоке upstream поддерживает параметр 7059 weight. 7060 7061 *) Добавление: директива server_name поддерживает маску "*". 7062 7063 *) Добавление: nginx поддерживает тело запроса больше 2G. 7064 7065 *) Исправление: если при использовании "satisfy_any on" клиент успешно 7066 проходил аутентификацию, в лог всё равно записалоcь сообщение "access 7067 forbidden by rule". 7068 7069 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код 7070 409. 7071 7072 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал 7073 ошибку, nginx продолжал проксирование. 7074 7075 7076Изменения в nginx 0.3.52 03.07.2006 7077 7078 *) Изменение: восстановлено поведение модуля ngx_http_index_module для 7079 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт 7080 ошибку 405. 7081 7082 *) Исправление: при использовании ограничения скорости рабочий процесс 7083 мог зациклиться; ошибка появилась в 0.3.37. 7084 7085 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку 7086 "unknown charset", даже если перекодировка не требовалась; ошибка 7087 появилась в 0.3.50. 7088 7089 *) Исправление: если в результате запроса PUT возвращался код 409, то 7090 временный файл не удалялся. 7091 7092 7093Изменения в nginx 0.3.51 30.06.2006 7094 7095 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<"; 7096 ошибка появилась в 0.3.50. 7097 7098 7099Изменения в nginx 0.3.50 28.06.2006 7100 7101 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors 7102 переименованы соответственно в proxy_intercept_errors и 7103 fastcgi_intercept_errors. 7104 7105 *) Добавление: модуль ngx_http_charset_module поддерживает 7106 перекодирование из однобайтных кодировок в UTF-8 и обратно. 7107 7108 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка 7109 "X-Accel-Charset" в ответе бэкенда. 7110 7111 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался, 7112 только если также использовался символ "$". 7113 7114 *) Исправление: при некоторых условиях в SSI после вставки могла быть 7115 добавлена строка "<!--". 7116 7117 *) Исправление: если в заголовке ответа была строка "Content-Length: 0", 7118 то при использовании небуферизированного проксировании не закрывалось 7119 соединение с клиентом. 7120 7121 7122Изменения в nginx 0.3.49 31.05.2006 7123 7124 *) Исправление: в директиве set. 7125 7126 *) Исправление: при включении в ssi двух и более подзапросов, 7127 обрабатываемых через FastCGI, вместо вывода второго и остальных 7128 подзапросов в ответ включался вывод первого подзапроса. 7129 7130 7131Изменения в nginx 0.3.48 29.05.2006 7132 7133 *) Изменение: теперь модуль ngx_http_charset_module работает для 7134 подзапросов, в ответах которых нет строки заголовка "Content-Type". 7135 7136 *) Исправление: если в директиве proxy_pass не было URI, то директива 7137 "proxy_redirect default" добавляла в переписанный редирект в начало 7138 лишний слэш. 7139 7140 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в 7141 GET, теперь это делается только для редиректов, выполняемых с помощью 7142 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в 7143 0.3.42. 7144 7145 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был 7146 с поддержкой потоков; ошибка появилась в 0.3.46. 7147 7148 7149Изменения в nginx 0.3.47 23.05.2006 7150 7151 *) Добавление: директива upstream. 7152 7153 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь 7154 всегда убирается. 7155 7156 7157Изменения в nginx 0.3.46 11.05.2006 7158 7159 *) Добавление: директивы proxy_hide_header, proxy_pass_header, 7160 fastcgi_hide_header и fastcgi_pass_header. 7161 7162 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и 7163 proxy_pass_server упразднены. 7164 7165 *) Добавление: в режиме прокси поддерживается строка заголовка 7166 "X-Accel-Buffering" в ответе бэкенда. 7167 7168 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле 7169 ngx_http_perl_module. 7170 7171 7172Изменения в nginx 0.3.45 06.05.2006 7173 7174 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и 7175 ssl_client_certificate. 7176 7177 *) Изменение: теперь переменная $request_method возвращает метод только 7178 основного запроса. 7179 7180 *) Изменение: в таблице перекодировки koi-win изменены коды символа 7181 °. 7182 7183 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и 7184 номера. 7185 7186 *) Исправление: если nginx распределял запросы на несколько машин, то 7187 при падении одной из них запросы, предназначенные для этой машины, 7188 перенаправлялись только на одну машину вместо того, чтобы равномерно 7189 распределяться между остальными. 7190 7191 7192Изменения в nginx 0.3.44 04.05.2006 7193 7194 *) Добавление: параметр wait в команде SSI include. 7195 7196 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и 7197 белорусские символы. 7198 7199 *) Исправление: в SSI. 7200 7201 7202Изменения в nginx 0.3.43 26.04.2006 7203 7204 *) Исправление: в SSI. 7205 7206 7207Изменения в nginx 0.3.42 26.04.2006 7208 7209 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси. 7210 7211 *) Исправление: ошибки при использовании в директиве rewrite одного и 7212 того же выделения более одного раза. 7213 7214 *) Исправление: в лог не записывались переменные 7215 $sent_http_content_type, $sent_http_content_length, 7216 $sent_http_last_modified, $sent_http_connection, 7217 $sent_http_keep_alive и $sent_http_transfer_encoding. 7218 7219 *) Исправление: переменная $sent_http_cache_control возвращала 7220 содержимое только одной строки "Cache-Control" в заголовке ответа. 7221 7222 7223Изменения в nginx 0.3.41 21.04.2006 7224 7225 *) Добавление: ключ -v. 7226 7227 *) Исправление: при включении в SSI удалённых подзапросов мог произойти 7228 segmentation fault. 7229 7230 *) Исправление: в обработке FastCGI. 7231 7232 *) Исправление: если путь к перловым модулям не был указан с помощью 7233 --with-perl_modules_path=PATH или директивы perl_modules, то на 7234 старте происходил segmentation fault. 7235 7236 7237Изменения в nginx 0.3.40 19.04.2006 7238 7239 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL. 7240 7241 *) Добавление: директива create_full_put_path. 7242 7243 *) Добавление: переменная $limit_rate. 7244 7245 7246Изменения в nginx 0.3.39 17.04.2006 7247 7248 *) Добавление: директива uninitialized_variable_warn; уровень 7249 логгирования сообщения о неинициализированной переменной понижен с 7250 уровня alert на warn. 7251 7252 *) Добавление: директива override_charset. 7253 7254 *) Изменение: при использовании неизвестной переменной в SSI-командах 7255 echo и if expr='$name' теперь не записывается в лог сообщение о 7256 неизвестной переменной. 7257 7258 *) Исправление: счётчик активных соединений рос при превышении лимита 7259 соединений, заданного директивой worker_connections; ошибка появилась 7260 в 0.2.0. 7261 7262 *) Исправление: при некоторых условия ограничение скорости соединения 7263 могло не работать; ошибка появилась в 0.3.38. 7264 7265 7266Изменения в nginx 0.3.38 14.04.2006 7267 7268 *) Добавление: модуль ngx_http_dav_module. 7269 7270 *) Изменение: оптимизация модуля ngx_http_perl_module. 7271 Спасибо Сергею Скворцову. 7272 7273 *) Добавление: модуль ngx_http_perl_module поддерживает метод 7274 $r->request_body_file. 7275 7276 *) Добавление: директива client_body_in_file_only. 7277 7278 *) Изменение: теперь при переполнении диска nginx пытается писать 7279 access_log'и только раз в секунду. 7280 Спасибо Антону Южанинову и Максиму Дунину. 7281 7282 *) Исправление: теперь директива limit_rate точнее ограничивает скорость 7283 при значениях больше 100 Kbyte/s. 7284 Спасибо ForJest. 7285 7286 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации 7287 символы "\r" и "\n" в логине и пароле в закодированном виде. 7288 Спасибо Максиму Дунину. 7289 7290 7291Изменения в nginx 0.3.37 07.04.2006 7292 7293 *) Добавление: директива limit_except. 7294 7295 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и 7296 "!-f". 7297 7298 *) Добавление: модуль ngx_http_perl_module поддерживает метод 7299 $r->request_body. 7300 7301 *) Исправление: в модуле ngx_http_addition_filter_module. 7302 7303 7304Изменения в nginx 0.3.36 05.04.2006 7305 7306 *) Добавление: модуль ngx_http_addition_filter_module. 7307 7308 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать 7309 внутри блока if. 7310 7311 *) Добавление: директивы proxy_ignore_client_abort и 7312 fastcgi_ignore_client_abort. 7313 7314 *) Добавление: переменная $request_completion. 7315 7316 *) Добавление: модуль ngx_http_perl_module поддерживает методы 7317 $r->request_method и $r->remote_addr. 7318 7319 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif. 7320 7321 *) Исправление: строка "\/" в начале выражения команды if модуля 7322 ngx_http_ssi_module воспринималась неверно. 7323 7324 *) Исправление: в использовании регулярных выражениях в команде if 7325 модуля ngx_http_ssi_module. 7326 7327 *) Исправление: при задании относительного пути в директивах 7328 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и 7329 perl_modules использовался каталог относительно текущего каталога, а 7330 не относительно префикса сервера. 7331 7332 7333Изменения в nginx 0.3.35 22.03.2006 7334 7335 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только 7336 для первой директивы listen; ошибка появилась в 0.3.31. 7337 7338 *) Исправление: в директиве proxy_pass без URI при использовании в 7339 подзапросе. 7340 7341 7342Изменения в nginx 0.3.34 21.03.2006 7343 7344 *) Добавление: директива add_header поддерживает переменные. 7345 7346 7347Изменения в nginx 0.3.33 15.03.2006 7348 7349 *) Добавление: параметр http_503 в директивах proxy_next_upstream или 7350 fastcgi_next_upstream. 7351 7352 *) Исправление: ngx_http_perl_module не работал со встроенным в 7353 конфигурационный файл кодом, если он не начинался сразу же с "sub". 7354 7355 *) Исправление: в директиве post_action. 7356 7357 7358Изменения в nginx 0.3.32 11.03.2006 7359 7360 *) Исправление: удаление отладочного логгирования на старте и при 7361 переконфигурации; ошибка появилась в 0.3.31. 7362 7363 7364Изменения в nginx 0.3.31 10.03.2006 7365 7366 *) Изменение: теперь nginx передаёт неверные ответы проксированного 7367 бэкенда. 7368 7369 *) Добавление: директивы listen поддерживают адрес в виде "*:порт". 7370 7371 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4. 7372 7373 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в 7374 64-битном ядре MacOSX. 7375 Спасибо Андрею Нигматулину. 7376 7377 *) Исправление: если внутри одного сервера описаны несколько директив 7378 listen, слушающих на разных адресах, то имена серверов вида 7379 "*.domain.tld" работали только для первого адреса; ошибка появилась в 7380 0.3.18. 7381 7382 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass 7383 не передавались запросы с телом, записанным во временный файл. 7384 7385 *) Исправление: совместимость с perl 5.8.8. 7386 7387 7388Изменения в nginx 0.3.30 22.02.2006 7389 7390 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error 7391 с уровня crit. 7392 7393 *) Исправление: модуль ngx_http_perl_module не собирался без модуля 7394 ngx_http_ssi_filter_module. 7395 7396 *) Исправление: nginx не собирался на i386 платформе, если использовался 7397 PIC; ошибка появилась в 0.3.27. 7398 7399 7400Изменения в nginx 0.3.29 20.02.2006 7401 7402 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме 7403 FastCGI передаёт большое количество предупреждений перед ответом. 7404 7405 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась 7406 строка заголовка "Transfer-Encoding: chunked". 7407 7408 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер 7409 передавал полные строки заголовка ответа в отдельных FastCGI записях. 7410 7411 *) Исправление: если в директиве post_action был указан проксируемый 7412 URI, то он выполнялся только после успешного завершения запроса. 7413 7414 7415Изменения в nginx 0.3.28 16.02.2006 7416 7417 *) Добавление: директива restrict_host_names упразднена. 7418 7419 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64. 7420 7421 *) Исправление: при некоторых условиях проксированное соединение с 7422 клиентом завершалось преждевременно. 7423 Спасибо Владимиру Шутову. 7424 7425 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для 7426 запросов, перенаправленных с помощью строки "X-Accel-Redirect". 7427 7428 *) Исправление: директива post_action работала только после успешного 7429 завершения запроса. 7430 7431 *) Исправление: тело проксированного ответа, создаваемого директивой 7432 post_action, передавалось клиенту. 7433 7434 7435Изменения в nginx 0.3.27 08.02.2006 7436 7437 *) Изменение: директивы variables_hash_max_size и 7438 variables_hash_bucket_size. 7439 7440 *) Добавление: переменная $body_bytes_sent доступна не только в 7441 директиве log_format. 7442 7443 *) Добавление: переменные $ssl_protocol и $ssl_cipher. 7444 7445 *) Добавление: определение размера строки кэша распространённых 7446 процессоров при старте. 7447 7448 *) Добавление: директива accept_mutex теперь поддерживается посредством 7449 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc. 7450 7451 *) Добавление: директива lock_file и параметр автоконфигурации 7452 --with-lock-path=PATH. 7453 7454 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass 7455 не передавались запросы с телом. 7456 7457 7458Изменения в nginx 0.3.26 03.02.2006 7459 7460 *) Изменение: директива optimize_host_names переименована в 7461 optimize_server_names. 7462 7463 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался 7464 URI основного запроса, если в директиве proxy_pass отсутствовал URI. 7465 7466 7467Изменения в nginx 0.3.25 01.02.2006 7468 7469 *) Исправление: при неверной конфигурации на старте или во время 7470 переконфигурации происходил segmentation fault; ошибка появилась в 7471 0.3.24. 7472 7473 7474Изменения в nginx 0.3.24 01.02.2006 7475 7476 *) Изменение: обход ошибки в kqueue во FreeBSD. 7477 7478 *) Исправление: ответ, создаваемый директивой post_action, теперь не 7479 передаётся клиенту. 7480 7481 *) Исправление: при использовании большого количества лог-файлов 7482 происходила утечка памяти. 7483 7484 *) Исправление: внутри одного location работала только первая директива 7485 proxy_redirect. 7486 7487 *) Исправление: на 64-битных платформах при старте мог произойти 7488 segmentation fault, если использовалось большое количество имён в 7489 директивах server_name; ошибка появилась в 0.3.18. 7490 7491 7492Изменения в nginx 0.3.23 24.01.2006 7493 7494 *) Добавление: директива optimize_host_names. 7495 7496 *) Исправление: ошибки при использовании переменных в директивах path и 7497 alias. 7498 7499 *) Исправление: модуль ngx_http_perl_module неправильно собирался на 7500 Linux и Solaris. 7501 7502 7503Изменения в nginx 0.3.22 17.01.2006 7504 7505 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args 7506 и $r->unescape. 7507 7508 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module 7509 упразднён. 7510 7511 *) Исправление: если в директиве valid_referers указаны только none или 7512 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18. 7513 7514 7515Изменения в nginx 0.3.21 16.01.2006 7516 7517 *) Добавление: модуль ngx_http_perl_module. 7518 7519 *) Изменение: директива valid_referers разрешает использовать рефереры 7520 совсем без URI. 7521 7522 7523Изменения в nginx 0.3.20 11.01.2006 7524 7525 *) Исправление: ошибки в обработке SSI. 7526 7527 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в 7528 виде /uri?args. 7529 7530 7531Изменения в nginx 0.3.19 28.12.2005 7532 7533 *) Добавление: директивы path и alias поддерживают переменные. 7534 7535 *) Изменение: теперь директива valid_referers опять учитывает URI. 7536 7537 *) Исправление: ошибки в обработке SSI. 7538 7539 7540Изменения в nginx 0.3.18 26.12.2005 7541 7542 *) Добавление: директива server_names поддерживает имена вида 7543 ".domain.tld". 7544 7545 *) Добавление: директива server_names использует хэш для имён вида 7546 "*.domain.tld" и более эффективный хэш для обычных имён. 7547 7548 *) Изменение: директивы server_names_hash_max_size и 7549 server_names_hash_bucket_size. 7550 7551 *) Изменение: директивы server_names_hash и server_names_hash_threshold 7552 упразднены. 7553 7554 *) Добавление: директива valid_referers использует хэш для имён сайтов. 7555 7556 *) Изменение: теперь директива valid_referers проверяет только имена 7557 сайтов без учёта URI. 7558 7559 *) Исправление: некоторые имена вида ".domain.tld" неверно 7560 обрабатывались модулем ngx_http_map_module. 7561 7562 *) Исправление: если конфигурационного файла не было, то происходил 7563 segmentation fault; ошибка появилась в 0.3.12. 7564 7565 *) Исправление: на 64-битных платформах при старте мог произойти 7566 segmentation fault; ошибка появилась в 0.3.16. 7567 7568 7569Изменения в nginx 0.3.17 18.12.2005 7570 7571 *) Изменение: на Linux configure теперь проверяет наличие epoll и 7572 sendfile64() в ядре. 7573 7574 *) Добавление: директива map поддерживает доменные имена в формате 7575 ".domain.tld". 7576 7577 *) Исправление: во время SSL handshake не иcпользовались таймауты; 7578 ошибка появилась в 0.2.4. 7579 7580 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. 7581 7582 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass 7583 по умолчанию использовался порт 80. 7584 7585 7586Изменения в nginx 0.3.16 16.12.2005 7587 7588 *) Добавление: модуль ngx_http_map_module. 7589 7590 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size. 7591 7592 *) Добавление: директива ssi_value_length. 7593 7594 *) Добавление: директива worker_rlimit_core. 7595 7596 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для 7597 Pentium 4 номер соединения в логах всегда был равен 1. 7598 7599 *) Исправление: команда config timefmt в SSI задавала неверный формат 7600 времени. 7601 7602 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при 7603 использовании SSL соединений; ошибка появилась в 0.3.13. 7604 Спасибо Rob Mueller. 7605 7606 *) Исправление: segmentation fault мог произойти во время SSL shutdown; 7607 ошибка появилась в 0.3.13. 7608 7609 7610Изменения в nginx 0.3.15 07.12.2005 7611 7612 *) Добавление: новой код 444 в директиве return для закрытия соединения. 7613 7614 *) Добавление: директива so_keepalive в IMAP/POP3 прокси. 7615 7616 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых 7617 соединений только при плавном выходе и включённой директиве 7618 debug_points. 7619 7620 7621Изменения в nginx 0.3.14 05.12.2005 7622 7623 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась 7624 в 0.3.13. 7625 7626 7627Изменения в nginx 0.3.13 05.12.2005 7628 7629 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS. 7630 7631 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и 7632 /dev/poll. 7633 7634 *) Исправление: ошибки в обработке SSI. 7635 7636 *) Исправление: sendfilev() в Solaris теперь не используется при 7637 передаче тела запроса FastCGI-серверу через unix domain сокет. 7638 7639 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка 7640 появилась в 0.3.11. 7641 7642 7643Изменения в nginx 0.3.12 26.11.2005 7644 7645 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module, 7646 то при использовании директивы "satisfy_any on" директивы доступа и 7647 аутентификации не работали. Модуль ngx_http_realip_module не 7648 собирался и не собирается по умолчанию. 7649 7650 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local". 7651 7652 *) Изменение: директивы proxy_header_buffer_size и 7653 fastcgi_header_buffer_size переименованы соответственно в 7654 proxy_buffer_size и fastcgi_buffer_size. 7655 7656 *) Добавление: модуль ngx_http_memcached_module. 7657 7658 *) Добавление: директива proxy_buffering. 7659 7660 *) Исправление: изменение в работе с accept mutex при использовании 7661 метода rtsig; ошибка появилась в 0.3.0. 7662 7663 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked" 7664 в заголовке запроса, то nginx теперь выдаёт ошибку 411. 7665 7666 *) Исправление: при наследовании директивы auth_basic с уровня http в 7667 строке "WWW-Authenticate" заголовка ответа выводился realm без текста 7668 "Basic realm". 7669 7670 *) Исправление: если в директиве access_log был явно указан формат 7671 combined, то в лог записывались пустые строки; ошибка появилась в 7672 0.3.8. 7673 7674 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме 7675 Solaris. 7676 7677 *) Исправление: в директиве if теперь не нужно разделять пробелом строку 7678 в кавычках и закрывающую скобку. 7679 7680 7681Изменения в nginx 0.3.11 15.11.2005 7682 7683 *) Исправление: nginx не передавал при проксировании тело запроса и 7684 строки заголовка клиента; ошибка появилась в 0.3.10. 7685 7686 7687Изменения в nginx 0.3.10 15.11.2005 7688 7689 *) Изменение: директива valid_referers и переменная $invalid_referer 7690 перенесены из модуля ngx_http_rewrite_module в новый модуль 7691 ngx_http_referer_module. 7692 7693 *) Изменение: имя переменной "$apache_bytes_sent" изменено на 7694 "$body_bytes_sent". 7695 7696 *) Добавление: переменные "$sent_http_...". 7697 7698 *) Добавление: директива if поддерживает операции "=" и "!=". 7699 7700 *) Добавление: директива proxy_pass поддерживает протокол HTTPS. 7701 7702 *) Добавление: директива proxy_set_body. 7703 7704 *) Добавление: директива post_action. 7705 7706 *) Добавление: модуль ngx_http_empty_gif_module. 7707 7708 *) Добавление: директива worker_cpu_affinity для Linux. 7709 7710 *) Исправление: директива rewrite не раскодировала символы в редиректах 7711 в URI, теперь символы раскодируются, кроме символов %00-%25 и 7712 %7F-%FF. 7713 7714 *) Исправление: nginx не собирался компилятором icc 9.0. 7715 7716 *) Исправление: если для статического файла нулевого размера был 7717 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами. 7718 7719 7720Изменения в nginx 0.3.9 10.11.2005 7721 7722 *) Исправление: nginx считал небезопасными URI, в которых между двумя 7723 слэшами находилось два любых символа; ошибка появилась в 0.3.8. 7724 7725 7726Изменения в nginx 0.3.8 09.11.2005 7727 7728 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в 7729 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на 7730 наличие путей "/../" и нулей. 7731 7732 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в 7733 строке "Authorization" в заголовке запроса. 7734 7735 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module 7736 и ngx_imap_ssl_module. 7737 7738 *) Добавление: директива auth_http_header модуля 7739 ngx_imap_auth_http_module. 7740 7741 *) Добавление: директива add_header. 7742 7743 *) Добавление: модуль ngx_http_realip_module. 7744 7745 *) Добавление: новые переменные для использования в директиве 7746 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt, 7747 $uri, $request_time, $request_length, $upstream_status, 7748 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set, 7749 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут 7750 упразднены. 7751 7752 *) Изменение: в директиве "if" ложными значениями переменных теперь 7753 являются пустая строка "" и строки, начинающиеся на "0". 7754 7755 *) Исправление: при работает с проксированными или FastCGI-серверами 7756 nginx мог оставлять открытыми соединения и временные файлы с 7757 запросами клиентов. 7758 7759 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при 7760 плавном выходе. 7761 7762 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем 7763 запрос проксировался в location, заданном регулярным выражением, то 7764 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6. 7765 7766 *) Исправление: директива expires не удаляла уже установленную строку 7767 заголовка "Expires". 7768 7769 *) Исправление: при использовании метода rtsig и нескольких рабочих 7770 процессах nginx мог перестать принимать запросы. 7771 7772 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и 7773 "\'". 7774 7775 *) Исправление: если ответ заканчивался сразу же после SSI команды, то 7776 при использовании сжатия ответ передавался не до конца или не 7777 передавался вообще. 7778 7779 7780Изменения в nginx 0.3.7 27.10.2005 7781 7782 *) Добавление: директива access_log поддерживает параметр buffer=. 7783 7784 *) Исправление: nginx не собирался на платформах, отличных от i386, 7785 amd64, sparc и ppc; ошибка появилась в 0.3.2. 7786 7787 7788Изменения в nginx 0.3.6 24.10.2005 7789 7790 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации 7791 пустой логин. 7792 7793 *) Добавление: директива log_format поддерживает переменные в виде 7794 $name. 7795 7796 *) Исправление: если хотя бы в одном сервере не было описано ни одной 7797 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в 7798 0.3.3. 7799 7800 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда 7801 использовался порт 80. 7802 7803 7804Изменения в nginx 0.3.5 21.10.2005 7805 7806 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то 7807 мог произойти segmentation fault; ошибка появилась в 0.2.2. 7808 7809 *) Исправление: accept mutex не работал, все соединения обрабатывались 7810 одним рабочим процессом; ошибка появилась в 0.3.3. 7811 7812 *) Исправление: при использовании метода rtsig и директивы 7813 timer_resolution не работали таймауты. 7814 7815 7816Изменения в nginx 0.3.4 19.10.2005 7817 7818 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка 7819 появилась в 0.3.3. 7820 7821 7822Изменения в nginx 0.3.3 19.10.2005 7823 7824 *) Изменение: параметры "bl" и "af" директивы listen переименованы в 7825 "backlog" и "accept_filter". 7826 7827 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen. 7828 7829 *) Изменение: параметр лога $msec теперь не требует дополнительного 7830 системного вызова gettimeofday(). 7831 7832 *) Добавление: ключ -t теперь проверяет директивы listen. 7833 7834 *) Исправление: если в директиве listen был указан неверный адрес, то 7835 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED. 7836 7837 *) Исправление: для индексных файлов, содержащих в имени переменную, мог 7838 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0. 7839 7840 *) Добавление: директива timer_resolution. 7841 7842 *) Добавление: параметр лога $upstream_response_time в миллисекундах. 7843 7844 *) Исправление: временный файл с телом запроса клиента теперь удаляется 7845 сразу после того, как клиенту передан заголовок ответа. 7846 7847 *) Исправление: совместимость с OpenSSL 0.9.6. 7848 7849 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть 7850 относительными. 7851 7852 *) Исправление: директива ssl_prefer_server_ciphers не работала для 7853 модуля ngx_imap_ssl_module. 7854 7855 *) Исправление: директива ssl_protocols позволяла задать только один 7856 протокол. 7857 7858 7859Изменения в nginx 0.3.2 12.10.2005 7860 7861 *) Добавление: поддержка Sun Studio 10 C compiler. 7862 7863 *) Добавление: директивы proxy_upstream_max_fails, 7864 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и 7865 fastcgi_upstream_fail_timeout. 7866 7867 7868Изменения в nginx 0.3.1 10.10.2005 7869 7870 *) Исправление: во время переполнения очереди сигналов при использовании 7871 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0. 7872 7873 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI. 7874 7875 7876Изменения в nginx 0.3.0 07.10.2005 7877 7878 *) Изменение: убрано десятидневное ограничение времени работы рабочего 7879 процесса. Ограничение было введено из-за переполнения миллисекундных 7880 таймеров. 7881 7882 7883Изменения в nginx 0.2.6 05.10.2005 7884 7885 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к 7886 бэкенду при использовании распределения нагрузки. 7887 7888 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный 7889 запрос теперь передаётся, если в директиве proxy_pass отсутствует 7890 URI. 7891 7892 *) Добавление: директива error_page поддерживает редиректы и позволяет 7893 более гибко менять код ошибки. 7894 7895 *) Изменение: в проксированных подзапросах теперь игнорируется 7896 переданный charset. 7897 7898 *) Исправление: если после изменения URI в блоке if для запроса не 7899 находилась новая конфигурация, то правила модуля 7900 ngx_http_rewrite_module выполнялись снова. 7901 7902 *) Исправление: если директива set устанавливала переменную модуля 7903 ngx_http_geo_module в какой-либо части конфигурации, то эта 7904 переменная не была доступна в других частях конфигурации и выдавалась 7905 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2. 7906 7907 7908Изменения в nginx 0.2.5 04.10.2005 7909 7910 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module 7911 теперь выдаёт предупреждение и изменяет старое значение. 7912 7913 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set. 7914 7915 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в 7916 команде include. 7917 7918 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку 7919 значений переменных в выражениях команды if. 7920 7921 7922Изменения в nginx 0.2.4 03.10.2005 7923 7924 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения 7925 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде 7926 if. 7927 7928 *) Исправление: ошибки при проксировании location без слэша в конце; 7929 ошибка появилась в 0.1.44. 7930 7931 *) Исправление: при использовании метода rtsig мог произойти 7932 segmentation fault; ошибка появилась в 0.2.0. 7933 7934 7935Изменения в nginx 0.2.3 30.09.2005 7936 7937 *) Исправление: nginx не собирался без параметра --with-debug; ошибка 7938 появилась в 0.2.2. 7939 7940 7941Изменения в nginx 0.2.2 30.09.2005 7942 7943 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module. 7944 7945 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять 7946 директивой set. 7947 7948 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers 7949 модулей ngx_http_ssl_module и ngx_imap_ssl_module. 7950 7951 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе 7952 длинных имён файлов; 7953 7954 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает 7955 файлы, начинающиеся на точку. 7956 7957 *) Исправление: если SSL handshake завершался с ошибкой, то это могло 7958 привести также к закрытию другого соединения. 7959 Спасибо Rob Mueller. 7960 7961 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по 7962 HTTPS. 7963 7964 7965Изменения в nginx 0.2.1 23.09.2005 7966 7967 *) Исправление: если все бэкенды, используемые для балансировки 7968 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то 7969 nginx мог зациклится; ошибка появилась в 0.2.0. 7970 7971 7972Изменения в nginx 0.2.0 23.09.2005 7973 7974 *) Изменились имена pid-файлов, используемые во время обновления 7975 исполняемого файла. Ручное переименование теперь не нужно. Старый 7976 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и 7977 запускает новый исполняемый файл. Новый основной процесс создаёт 7978 обычный pid-файл без суффикса ".newbin". Если новый основной процесс 7979 выходит, то старый процесс переименовывает свой pid-файл c суффиксом 7980 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до 7981 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый 7982 0.2.0 - используют pid-файл без суффиксов. 7983 7984 *) Изменение: директива worker_connections, новое название директивы 7985 connections; директива теперь задаёт максимальное число соединений, а 7986 не максимально возможный номер дескриптора для сокета. 7987 7988 *) Добавление: SSL поддерживает кэширование сессий в пределах одного 7989 рабочего процесса. 7990 7991 *) Добавление: директива satisfy_any. 7992 7993 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module 7994 не работают для подзапросов. 7995 7996 *) Добавление: директивы worker_rlimit_nofile и 7997 worker_rlimit_sigpending. 7998 7999 *) Исправление: если все бэкенды, используемые для балансировки 8000 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то 8001 nginx не обращался к ним в течение 60 секунд. 8002 8003 *) Исправление: в парсинге аргументов IMAP/POP3 команд. 8004 Спасибо Rob Mueller. 8005 8006 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси. 8007 8008 *) Исправление: ошибки при использовании SSI и сжатия. 8009 8010 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа 8011 "Expires" и "Cache-Control". 8012 Спасибо Александру Кукушкину. 8013 8014 8015Изменения в nginx 0.1.45 08.09.2005 8016 8017 *) Изменение: директива ssl_engine упразднена в модуле 8018 ngx_http_ssl_module и перенесена на глобальный уровень. 8019 8020 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не 8021 передавались через SSL соединение. 8022 8023 *) Разные исправления в IMAP/POP3 прокси. 8024 8025 8026Изменения в nginx 0.1.44 06.09.2005 8027 8028 *) Добавление: IMAP/POP3 прокси поддерживает SSL. 8029 8030 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module. 8031 8032 *) Добавление: директива userid_mark. 8033 8034 *) Добавление: значение переменной $remote_user определяется независимо 8035 от того, используется ли авторизация или нет. 8036 8037 8038Изменения в nginx 0.1.43 30.08.2005 8039 8040 *) Добавление: listen(2) backlog в директиве listen можно менять по 8041 сигналу -HUP. 8042 8043 *) Добавление: скрипт geo2nginx.pl добавлен в contrib. 8044 8045 *) Изменение: параметры FastCGI с пустым значениями теперь передаются 8046 серверу. 8047 8048 *) Исправление: если в ответе проксированного сервера или FastCGI 8049 сервера была строка "Cache-Control", то при использовании директивы 8050 expires происходил segmentation fault или рабочий процесс мог 8051 зациклится; в режиме прокси ошибка появилась в 0.1.29. 8052 8053 8054Изменения в nginx 0.1.42 23.08.2005 8055 8056 *) Исправление: если URI запроса получался нулевой длины после обработки 8057 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module 8058 происходил segmentation fault или bus error. 8059 8060 *) Исправление: директива limit_rate не работала внутри блока if; ошибка 8061 появилась в 0.1.38. 8062 8063 8064Изменения в nginx 0.1.41 25.07.2005 8065 8066 *) Исправление: если переменная использовалась в файле конфигурации, то 8067 она не могла использоваться в SSI. 8068 8069 8070Изменения в nginx 0.1.40 22.07.2005 8071 8072 *) Исправление: если клиент слал очень длинную строку заголовка, то в 8073 логе не помещалась информация, связанная с этим запросом. 8074 8075 *) Исправление: при использовании "X-Accel-Redirect" не передавалась 8076 строка "Set-Cookie"; ошибка появилась в 0.1.39. 8077 8078 *) Исправление: при использовании "X-Accel-Redirect" не передавалась 8079 строка "Content-Disposition". 8080 8081 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты, 8082 на которых он слушал. 8083 8084 *) Исправление: после обновления исполняемого файла на лету на Linux и 8085 Solaris название процесса в команде ps становилось короче. 8086 8087 8088Изменения в nginx 0.1.39 14.07.2005 8089 8090 *) Изменения в модуле ngx_http_charset_module: директива default_charset 8091 упразднена; директива charset задаёт кодировку ответа; директива 8092 source_charset задаёт только исходную кодировку. 8093 8094 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда, 8095 не передавалась строка заголовка "WWW-Authenticate". 8096 8097 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module 8098 могли закрыть соединение до того, как что-нибудь было передано 8099 клиенту; ошибка появилась в 0.1.38. 8100 8101 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc. 8102 8103 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные 8104 URI в команде include virtual. 8105 8106 *) Исправление: если в строке заголовка ответа бэкенда была строка 8107 "Location", которую nginx не должен был изменять, то в ответе 8108 передавалось тело 500 ошибки; ошибка появилась в 0.1.29. 8109 8110 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и 8111 ngx_http_fastcgi_module не наследовались с уровня server на уровень 8112 location; ошибка появилась в 0.1.29. 8113 8114 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки 8115 сертификатов. 8116 8117 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе 8118 длинных имён файлов; ошибка появилась в 0.1.38. 8119 8120 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на 8121 стадии login. 8122 8123 8124Изменения в nginx 0.1.38 08.07.2005 8125 8126 *) Добавление: директива limit_rate поддерживается в режиме прокси и 8127 FastCGI. 8128 8129 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка 8130 "X-Accel-Limit-Rate" в ответе бэкенда. 8131 8132 *) Добавление: директива break. 8133 8134 *) Добавление: директива log_not_found. 8135 8136 *) Исправление: при перенаправлении запроса с помощью строки заголовка 8137 "X-Accel-Redirect" не изменялся код ответа. 8138 8139 *) Исправление: переменные, установленные директивой set не могли 8140 использоваться в SSI. 8141 8142 *) Исправление: при включении в SSI более одного удалённого подзапроса 8143 мог произойти segmentation fault. 8144 8145 *) Исправление: если статусная строка в ответе бэкенда передавалась в 8146 двух пакетах, то nginx считал ответ неверным; ошибка появилась в 8147 0.1.29. 8148 8149 *) Добавление: директива ssi_types. 8150 8151 *) Добавление: директива autoindex_exact_size. 8152 8153 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные 8154 имена файлов в UTF-8. 8155 8156 *) Добавление: IMAP/POP3 прокси. 8157 8158 8159Изменения в nginx 0.1.37 23.06.2005 8160 8161 *) Изменение: в конце файла nginx.pid теперь добавляется "\n". 8162 8163 *) Исправление: при включении большого количества вставок или нескольких 8164 больших вставок с помощью SSI ответ мог передаваться не полностью. 8165 8166 *) Исправление: если все бэкенды возвращали ответ 404, то при 8167 использовании параметра http_404 в директивах proxy_next_upstream или 8168 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова. 8169 8170 8171Изменения в nginx 0.1.36 15.06.2005 8172 8173 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host", 8174 "Connection", "Content-Length" и "Authorization", то nginx теперь 8175 выдаёт ошибку 400. 8176 8177 *) Изменение: директива post_accept_timeout упразднена. 8178 8179 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве 8180 listen. 8181 8182 *) Добавление: поддержка accept фильтров во FreeBSD. 8183 8184 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux. 8185 8186 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена 8187 файлов в UTF-8. 8188 8189 *) Исправление: после добавления новый лог-файл ротация этого лога по 8190 сигналу -USR1 выполнялась, только если переконфигурировать nginx два 8191 раза по сигналу -HUP. 8192 8193 8194Изменения в nginx 0.1.35 07.06.2005 8195 8196 *) Добавление: директива working_directory. 8197 8198 *) Добавление: директива port_in_redirect. 8199 8200 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет, 8201 то происходил segmentation fault; ошибка появилась в 0.1.29. 8202 8203 *) Исправление: если было сконфигурировано более 10 серверов или в 8204 сервере не описана директива "listen", то при запуске мог произойти 8205 segmentation fault. 8206 8207 *) Исправление: если ответ не помещался во временный файл, то мог 8208 произойти segmentation fault. 8209 8210 *) Исправление: nginx возвращал ошибку 400 на запросы вида 8211 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28. 8212 8213 8214Изменения в nginx 0.1.34 26.05.2005 8215 8216 *) Исправление: при включении больших ответов с помощью SSI рабочий 8217 процесс мог зациклиться. 8218 8219 *) Исправление: переменные, устанавливаемые директивой "set", не были 8220 доступны в SSI. 8221 8222 *) Добавление: директива autoindex_localtime. 8223 8224 *) Исправление: пустое значение в директиве proxy_set_header запрещает 8225 передачу заголовка. 8226 8227 8228Изменения в nginx 0.1.33 23.05.2005 8229 8230 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка 8231 появилась в 0.1.29. 8232 8233 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне 8234 вызывали bus fault при запуске. 8235 8236 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол 8237 HTTP. 8238 8239 *) Исправление: если директива rewrite использовала выделения внутри 8240 директивы if, то возвращалась ошибка 500. 8241 8242 8243Изменения в nginx 0.1.32 19.05.2005 8244 8245 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не 8246 передавались аргументы; ошибка появилась в 0.1.29. 8247 8248 *) Добавление: директива if поддерживает выделения в регулярных 8249 выражениях. 8250 8251 *) Добавление: директива set поддерживает переменные и выделения из 8252 регулярных выражений. 8253 8254 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка 8255 "X-Accel-Redirect" в ответе бэкенда. 8256 8257 8258Изменения в nginx 0.1.31 16.05.2005 8259 8260 *) Исправление: при использовании SSL ответ мог передаваться не до 8261 конца. 8262 8263 *) Исправление: ошибки при обработке SSI в ответе, полученного от 8264 FastCGI-сервера. 8265 8266 *) Исправление: ошибки при использовании SSI и сжатия. 8267 8268 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка 8269 появилась в 0.1.30. 8270 8271 8272Изменения в nginx 0.1.30 14.05.2005 8273 8274 *) Исправление: при использовании SSI рабочий процесс мог зациклиться. 8275 8276 *) Исправление: при использовании SSL ответ мог передаваться не до 8277 конца. 8278 8279 *) Исправление: если длина части ответа, полученного за один раз от 8280 проксируемого или FastCGI сервера была равна 500 байт, то nginx 8281 возвращал код ответа 500; в режиме прокси ошибка появилась только в 8282 0.1.29. 8283 8284 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю 8285 параметрами. 8286 8287 *) Добавление: директива return может возвращать код ответа 204. 8288 8289 *) Добавление: директива ignore_invalid_headers. 8290 8291 8292Изменения в nginx 0.1.29 12.05.2005 8293 8294 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include 8295 virtual. 8296 8297 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду 8298 вида 'if expr="$NAME"' и команды else и endif. Допускается только 8299 один уровень вложенности. 8300 8301 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные 8302 DATE_LOCAL и DATE_GMT и команду config timefmt. 8303 8304 *) Добавление: директива ssi_ignore_recycled_buffers. 8305 8306 *) Исправление: если переменная QUERY_STRING не была определена, то в 8307 команде echo не ставилось значение по умолчанию. 8308 8309 *) Изменение: модуль ngx_http_proxy_module полностью переписан. 8310 8311 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers, 8312 proxy_pass_request_body и proxy_method. 8313 8314 *) Добавление: директива proxy_set_header. Директива proxy_x_var 8315 упразднена и должна быть заменена директивой proxy_set_header. 8316 8317 *) Изменение: директива proxy_preserve_host упразднена и должна быть 8318 заменена директивами "proxy_set_header Host $host" и "proxy_redirect 8319 off" или директивой "proxy_set_header Host $host:$proxy_port" и 8320 соответствующими ей директивами proxy_redirect. 8321 8322 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть 8323 заменена директивой "proxy_set_header X-Real-IP $remote_addr". 8324 8325 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна 8326 быть заменена директивой 8327 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for". 8328 8329 *) Изменение: директива proxy_set_x_url упразднена и должна быть 8330 заменена директивой 8331 "proxy_set_header X-URL http://$host:$server_port$request_uri". 8332 8333 *) Добавление: директива fastcgi_param. 8334 8335 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params 8336 упразднены и должны быть замены директивами fastcgi_param. 8337 8338 *) Добавление: директива index может использовать переменные. 8339 8340 *) Добавление: директива index может быть указана на уровне http и 8341 server. 8342 8343 *) Изменение: только последний параметр в директиве index может быть 8344 абсолютным. 8345 8346 *) Добавление: в директиве rewrite могут использоваться переменные. 8347 8348 *) Добавление: директива internal. 8349 8350 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, 8351 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, 8352 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER. 8353 8354 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса 8355 клиента и ответа бэкенда. 8356 8357 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был 8358 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408. 8359 8360 *) Исправление: если бэкенд передавал неверную строку в заголовке 8361 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26. 8362 8363 *) Исправление: при использовании отказоустойчивой конфигурации в 8364 FastCGI мог происходить segmentation fault. 8365 8366 *) Исправление: директива expires не удаляла уже установленные строки 8367 заголовка "Expires" и "Cache-Control". 8368 8369 *) Исправление: nginx не учитывал завершающую точку в строке заголовка 8370 запроса "Host". 8371 8372 *) Исправление: модуль ngx_http_auth_module не работал на Linux. 8373 8374 *) Исправление: директива rewrite неверно работала, если в запросе 8375 присутствовали аргументы. 8376 8377 *) Исправление: nginx не собирался на MacOS X. 8378 8379 8380Изменения в nginx 0.1.28 08.04.2005 8381 8382 *) Исправление: при проксировании больших файлов nginx сильно нагружал 8383 процессор. 8384 8385 *) Исправление: nginx не собирался gcc 4.0 на Linux. 8386 8387 8388Изменения в nginx 0.1.27 28.03.2005 8389 8390 *) Добавление: параметр blocked в директиве valid_referers. 8391 8392 *) Изменение: ошибки обработки заголовка запроса теперь записываются на 8393 уровне info, в лог также записывается имя сервера и строки заголовка 8394 запроса "Host" и "Referer". 8395 8396 *) Изменение: при записи ошибок в лог записывается также строка 8397 заголовка запроса "Host". 8398 8399 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка 8400 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена. 8401 8402 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан 8403 параметр конфигурации --without-ngx_http_auth_basic_module. 8404 8405 8406Изменения в nginx 0.1.26 22.03.2005 8407 8408 *) Изменение: неверные строки заголовка, переданные клиентом, теперь 8409 игнорируется и записываются в error_log на уровне info. 8410 8411 *) Изменение: при записи ошибок в лог записывается также имя сервера, 8412 при обращении к которому произошла ошибка. 8413 8414 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic 8415 и auth_basic_user_file. 8416 8417 8418Изменения в nginx 0.1.25 19.03.2005 8419 8420 *) Исправление: nginx не работал на Linux parisc. 8421 8422 *) Добавление: nginx теперь не запускается под FreeBSD, если значение 8423 sysctl kern.ipc.somaxconn слишком большое. 8424 8425 *) Исправление: если модуль ngx_http_index_module делал внутреннее 8426 перенаправление запроса в модули ngx_http_proxy_module или 8427 ngx_http_fastcgi_module, то файл индекса не закрывался после 8428 обслуживания запроса. 8429 8430 *) Добавление: директива proxy_pass может использоваться в location, 8431 заданных регулярным выражением. 8432 8433 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает 8434 условия вида "if ($HTTP_USER_AGENT ~ MSIE)". 8435 8436 *) Исправление: nginx очень медленно запускался при большом количестве 8437 адресов и использовании текстовых значений в директиве geo. 8438 8439 *) Изменение: имя переменной в директиве geo нужно указывать, как $name. 8440 Прежний вариант без "$" пока работает, но вскоре будет убран. 8441 8442 *) Добавление: параметр лога "%{VARIABLE}v". 8443 8444 *) Добавление: директива "set $name value". 8445 8446 *) Исправление: совместимость с gcc 4.0. 8447 8448 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS. 8449 8450 8451Изменения в nginx 0.1.24 04.03.2005 8452 8453 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные 8454 QUERY_STRING и DOCUMENT_URI. 8455 8456 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404 8457 на существующий каталог, если этот каталог был указан как alias. 8458 8459 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал 8460 при больших ответах. 8461 8462 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось 8463 правильным referrer'ом. 8464 8465 8466Изменения в nginx 0.1.23 01.03.2005 8467 8468 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi, 8469 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo 8470 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'. 8471 8472 *) Добавление: параметр лога %request_time. 8473 8474 *) Добавление: если запрос пришёл без строки заголовка "Host", то 8475 директива proxy_preserve_host устанавливает в качестве этого 8476 заголовка первое имя сервера из директивы server_name. 8477 8478 *) Исправление: nginx не собирался на платформах, отличных от i386, 8479 amd64, sparc и ppc; ошибка появилась в 0.1.22. 8480 8481 *) Исправление: модуль ngx_http_autoindex_module теперь показывает 8482 информацию не о символическом линке, а о файле или каталоге, на 8483 который он указывает. 8484 8485 *) Исправление: если клиенту ничего не передавалось, то параметр 8486 %apache_length записывал в лог отрицательную длину заголовка ответа. 8487 8488 8489Изменения в nginx 0.1.22 22.02.2005 8490 8491 *) Исправление: модуль ngx_http_stub_status_module показывал неверную 8492 статистику для обработанных соединений, если использовалось 8493 проксирование или FastCGI-сервер. 8494 8495 *) Исправление: на Linux и Solaris установочные пути были неверно 8496 заключены в кавычки; ошибка появилась в 0.1.21. 8497 8498 8499Изменения в nginx 0.1.21 22.02.2005 8500 8501 *) Исправление: модуль ngx_http_stub_status_module показывал неверную 8502 статистику при использовании метода rtsig или при использовании 8503 нескольких рабочих процессов на SMP машине. 8504 8505 *) Исправление: nginx не собирался компилятором icc под Линуксом или 8506 если библиотека zlib-1.2.x собиралась из исходных текстов. 8507 8508 *) Исправление: nginx не собирался под NetBSD 2.0. 8509 8510 8511Изменения в nginx 0.1.20 17.02.2005 8512 8513 *) Добавление: новые параметры script_filename и remote_port в директиве 8514 fastcgi_params. 8515 8516 *) Исправление: неправильно обрабатывался поток stderr от 8517 FastCGI-сервера. 8518 8519 8520Изменения в nginx 0.1.19 16.02.2005 8521 8522 *) Исправление: если в запросе есть нуль, то для локальных запросов 8523 теперь возвращается ошибка 404. 8524 8525 *) Исправление: nginx не собирался под NetBSD 2.0. 8526 8527 *) Исправление: во время чтения тела запроса клиента в SSL соединении 8528 мог произойти таймаут. 8529 8530 8531Изменения в nginx 0.1.18 09.02.2005 8532 8533 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events 8534 и devpoll_changes значения по умолчанию уменьшены с 512 до 32. 8535 8536 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не 8537 наследовались. 8538 8539 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы 8540 присоединялись к URI через символ "&" вместо "?". 8541 8542 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во 8543 включённом файле игнорировались. 8544 8545 *) Добавление: модуль ngx_http_stub_status_module. 8546 8547 *) Исправление: неизвестный формат лог-файла в директиве access_log 8548 вызывал segmentation fault. 8549 8550 *) Добавление: новый параметр document_root в директиве fastcgi_params. 8551 8552 *) Добавление: директива fastcgi_redirect_errors. 8553 8554 *) Добавление: новый модификатор break в директиве rewrite позволяет 8555 прекратить цикл rewrite/location и устанавливает текущую конфигурацию 8556 для запроса. 8557 8558 8559Изменения в nginx 0.1.17 03.02.2005 8560 8561 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь 8562 можно делать редиректы, возвращать коды ошибок и проверять переменные 8563 и рефереры. Эти директивы можно использовать внутри location. 8564 Директива redirect упразднена. 8565 8566 *) Добавление: модуль ngx_http_geo_module. 8567 8568 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var. 8569 8570 *) Исправление: конфигурация location с модификатором "=" могла 8571 использоваться в другом location. 8572 8573 *) Исправление: правильный тип ответа выставлялся только для запросов, у 8574 которых в расширении были только маленькие буквы. 8575 8576 *) Исправление: если для location установлен proxy_pass или 8577 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась 8578 на статическую страницу, то происходил segmentation fault. 8579 8580 *) Исправление: если в проксированном ответе в заголовке "Location" 8581 передавался относительный URL, то к нему добавлялось имя хоста и 8582 слэш; ошибка появилась в 0.1.14. 8583 8584 *) Исправление: на Linux в лог не записывался текст системной ошибки. 8585 8586 8587Изменения в nginx 0.1.16 25.01.2005 8588 8589 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD 8590 выдавался завершающий chunk. 8591 8592 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если 8593 директива keepalive_timeout запрещала использование keep-alive. 8594 8595 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали 8596 segmentation fault. 8597 8598 *) Исправление: при использовании SSL сжатый ответ мог передаваться не 8599 до конца. 8600 8601 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные 8602 для TCP сокетов, не используются для unix domain сокетов. 8603 8604 *) Добавление: директива rewrite поддерживает перезаписывание 8605 аргументов. 8606 8607 *) Исправление: на запрос POST с заголовком "Content-Length: 0" 8608 возвращался ответ 400; ошибка появилась в 0.1.14. 8609 8610 8611Изменения в nginx 0.1.15 19.01.2005 8612 8613 *) Исправление: ошибка соединения с FastCGI-сервером вызывала 8614 segmentation fault. 8615 8616 *) Исправление: корректная обработка регулярного выражения, в котором 8617 число выделенных частей не совпадает с числом подстановок. 8618 8619 *) Добавление: location, который передаётся FastCGI-серверу, может быть 8620 задан с помощью регулярного выражения. 8621 8622 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с 8623 аргументами и в том виде, в котором был получен от клиента. 8624 8625 *) Исправление: для использования регулярных выражений в location нужно 8626 было собирать nginx вместе с ngx_http_rewrite_module. 8627 8628 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании 8629 директивы "proxy_preserve_host on" в заголовке "Host" указывался 8630 также порт 80; ошибка появилась в 0.1.14. 8631 8632 *) Исправление: если задать одинаковые пути в параметрах 8633 автоконфигурации --http-client-body-temp-path=PATH и 8634 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и 8635 --http-fastcgi-temp-path=PATH, то происходил segmentation fault. 8636 8637 8638Изменения в nginx 0.1.14 18.01.2005 8639 8640 *) Добавление: параметры автоконфигурации 8641 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и 8642 --http-fastcgi-temp-path=PATH 8643 8644 *) Изменение: имя каталога с временными файлами, содержащие тело запроса 8645 клиента, задаётся директивой client_body_temp_path, по умолчанию 8646 <prefix>/client_body_temp. 8647 8648 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass, 8649 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout, 8650 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat, 8651 fastcgi_header_buffer_size, fastcgi_buffers, 8652 fastcgi_busy_buffers_size, fastcgi_temp_path, 8653 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, 8654 fastcgi_next_upstream и fastcgi_x_powered_by. 8655 8656 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в 8657 0.1.3. 8658 8659 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI 8660 после имени хоста. 8661 8662 *) Изменение: если в URI встречался символ %3F, то он считался началом 8663 строки аргументов. 8664 8665 *) Добавление: поддержка unix domain сокетов в модуле 8666 ngx_http_proxy_module. 8667 8668 *) Добавление: директивы ssl_engine и ssl_ciphers. 8669 Спасибо Сергею Скворцову за SSL-акселератор. 8670 8671 8672Изменения в nginx 0.1.13 21.12.2004 8673 8674 *) Добавление: директивы server_names_hash и 8675 server_names_hash_threshold. 8676 8677 *) Исправление: имена *.domain.tld в директиве server_name не работали. 8678 8679 *) Исправление: параметр лога %request_length записывал неверную длину. 8680 8681 8682Изменения в nginx 0.1.12 06.12.2004 8683 8684 *) Добавление: параметр лога %request_length. 8685 8686 *) Исправление: при использовании /dev/poll, select и poll на 8687 платформах, где возможны ложные срабатывания указанных методов, могли 8688 быть длительные задержки при обработке запроса по keep-alive 8689 соединению. Наблюдалось по крайней мере на Solaris с использованием 8690 /dev/poll. 8691 8692 *) Исправление: директива send_lowat игнорируется на Linux, так как 8693 Linux не поддерживает опцию SO_SNDLOWAT. 8694 8695 8696Изменения в nginx 0.1.11 02.12.2004 8697 8698 *) Добавление: директива worker_priority. 8699 8700 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе 8701 влияют на передачу ответа. 8702 8703 *) Исправление: nginx не вызывал initgroups(). 8704 Спасибо Андрею Ситникову и Андрею Нигматулину. 8705 8706 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в 8707 байтах. 8708 8709 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в 8710 каталоге есть битый symlink. 8711 8712 *) Исправление: файлы больше 4G не передавались с использованием 8713 sendfile. 8714 8715 *) Исправление: если бэкенд резолвился в несколько адресов и при 8716 ожидании от него ответа происходила ошибка, то процесс зацикливался. 8717 8718 *) Исправление: при использовании метода /dev/poll рабочий процесс мог 8719 завершиться с сообщением "unknown cycle". 8720 8721 *) Исправление: ошибки "close() channel failed". 8722 8723 *) Исправление: автоматическое определение групп nobody и nogroup. 8724 8725 *) Исправление: директива send_lowat не работала на Linux. 8726 8727 *) Исправление: если в конфигурации не было раздела events, то 8728 происходил segmentation fault. 8729 8730 *) Исправление: nginx не собирался под OpenBSD. 8731 8732 *) Исправление: двойные слэшы в "://" в URI превращались в ":/". 8733 8734 8735Изменения в nginx 0.1.10 26.11.2004 8736 8737 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../" 8738 или "%XX", то терялся последний символ в строке запроса; ошибка 8739 появилась в 0.1.9. 8740 8741 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux 8742 не работало. 8743 8744 8745Изменения в nginx 0.1.9 25.11.2004 8746 8747 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то 8748 проксируемый запрос передавался без аргументов. 8749 8750 *) Исправление: при сжатии больших ответов иногда они передавались не 8751 полностью. 8752 8753 *) Исправление: не передавались файлы больше 2G на Linux, 8754 неподдерживающем sendfile64(). 8755 8756 *) Исправление: на Linux при конфигурации сборки нужно было обязательно 8757 использовать параметр --with-poll_module; ошибка появилась в 0.1.8. 8758 8759 8760Изменения в nginx 0.1.8 20.11.2004 8761 8762 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе 8763 длинных имён файлов. 8764 8765 *) Добавление: модификатор "^~" в директиве location. 8766 8767 *) Добавление: директива proxy_max_temp_file_size. 8768 8769 8770Изменения в nginx 0.1.7 12.11.2004 8771 8772 *) Исправление: при использовании sendfile, если передаваемый файл 8773 менялся, то мог произойти segmentation fault на FreeBSD; ошибка 8774 появилась в 0.1.5. 8775 8776 8777Изменения в nginx 0.1.6 11.11.2004 8778 8779 *) Исправление: при некоторых комбинациях директив location c 8780 регулярными выражениями использовалась конфигурация не из того 8781 location. 8782 8783 8784Изменения в nginx 0.1.5 11.11.2004 8785 8786 *) Исправление: на Solaris и Linux могло быть очень много сообщений 8787 "recvmsg() returned not enough data". 8788 8789 *) Исправление: в режиме прокси без использования sendfile на Solaris 8790 возникала ошибка "writev() failed (22: Invalid argument)". На других 8791 платформах, не поддерживающих sendfile, процесс зацикливался. 8792 8793 *) Исправление: при использовании sendfile в режиме прокси на Solaris 8794 возникал segmentation fault. 8795 8796 *) Исправление: segmentation fault на Solaris. 8797 8798 *) Исправление: обновление исполняемого файла на лету не работало на 8799 Linux. 8800 8801 *) Исправление: в списке файлов, выдаваемом модулем 8802 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и 8803 знаки процента. 8804 8805 *) Изменение: уменьшение операций копирования. 8806 8807 *) Добавление: директива userid_p3p. 8808 8809 8810Изменения в nginx 0.1.4 26.10.2004 8811 8812 *) Исправление: ошибка в модуле ngx_http_autoindex_module. 8813 8814 8815Изменения в nginx 0.1.3 25.10.2004 8816 8817 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex. 8818 8819 *) Добавление: директива proxy_set_x_url. 8820 8821 *) Исправление: модуль проксировании мог привести к зацикливанию, если 8822 не использовался sendfile. 8823 8824 8825Изменения в nginx 0.1.2 21.10.2004 8826 8827 *) Добавление: параметры --user=USER, --group=GROUP и 8828 --with-ld-opt=OPTIONS в configure. 8829 8830 *) Добавление: директива server_name поддерживает *.domain.tld. 8831 8832 *) Исправление: улучшена переносимость на неизвестные платформы. 8833 8834 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный 8835 файл указан в командной строке; ошибка появилась в 0.1.1. 8836 8837 *) Исправление: модуль проксировании мог привести к зацикливанию, если 8838 не использовался sendfile. 8839 8840 *) Исправление: при использовании sendfile текст ответа не 8841 перекодировался согласно директивам модуля charset; ошибка появилась 8842 в 0.1.1. 8843 8844 *) Исправление: очень редкая ошибка при обработке kqueue. 8845 8846 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при 8847 проксировании. 8848 8849 8850Изменения в nginx 0.1.1 11.10.2004 8851 8852 *) Добавление: директива gzip_types. 8853 8854 *) Добавление: директива tcp_nodelay. 8855 8856 *) Добавление: директива send_lowat работает не только на платформах, 8857 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих 8858 SO_SNDLOWAT. 8859 8860 *) Добавление: эмуляция setproctitle() для Linux и Solaris. 8861 8862 *) Исправление: ошибка при переписывании заголовка "Location" при 8863 проксировании. 8864 8865 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к 8866 зацикливанию. 8867 8868 *) Исправление: ошибки в модуле /dev/poll. 8869 8870 *) Исправление: при проксировании и использовании временных файлов 8871 ответы портились. 8872 8873 *) Исправление: бэкенду передавались запросы с неперекодированными 8874 символами. 8875 8876 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было 8877 обязательно использовать параметр --with-poll_module. 8878 8879 8880Изменения в nginx 0.1.0 04.10.2004 8881 8882 *) Первая публично доступная версия. 8883 8884