1 2Изменения в nginx 1.20.2 16.11.2021 3 4 *) Добавление: совместимость с OpenSSL 3.0. 5 6 *) Исправление: SSL-переменные могли быть пустыми при записи в лог; 7 ошибка появилась в 1.19.5. 8 9 *) Исправление: keepalive-соединения с gRPC-бэкендами могли не 10 закрываться после получения GOAWAY-фрейма. 11 12 *) Исправление: SSL-соединения к бэкендам в модуле stream могли зависать 13 после SSL handshake. 14 15 *) Исправление: SSL-соединения с gRPC-бэкендами могли зависать, если 16 использовались методы select, poll или /dev/poll. 17 18 *) Исправление: в переменной $content_length при использовании chunked 19 transfer encoding. 20 21 *) Исправление: при использовании HTTP/2 и директивы aio_write запросы 22 могли зависать. 23 24 25Изменения в nginx 1.20.1 25.05.2021 26 27 *) Безопасность: при использовании директивы resolver во время обработки 28 ответа DNS-сервера могла происходить перезапись одного байта памяти, 29 что позволяло атакующему, имеющему возможность подделывать UDP-пакеты 30 от DNS-сервера, вызвать падение рабочего процесса или, потенциально, 31 выполнение произвольного кода (CVE-2021-23017). 32 33 34Изменения в nginx 1.20.0 20.04.2021 35 36 *) Стабильная ветка 1.20.x. 37 38 39Изменения в nginx 1.19.10 13.04.2021 40 41 *) Изменение: в директиве keepalive_requests значение по умолчанию 42 изменено на 1000. 43 44 *) Добавление: директива keepalive_time. 45 46 *) Добавление: переменная $connection_time. 47 48 *) Изменение: при использовании zlib-ng в логах появлялись сообщения 49 "gzip filter failed to use preallocated memory". 50 51 52Изменения в nginx 1.19.9 30.03.2021 53 54 *) Исправление: nginx не собирался с почтовым прокси-сервером, но без 55 модуля ngx_mail_ssl_module; ошибка появилась в 1.19.8. 56 57 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки 58 "upstream sent response body larger than indicated content length"; 59 ошибка появилась в 1.19.1. 60 61 *) Исправление: если клиент закрывал соединение в момент отбрасывания 62 тела запроса, nginx мог не закрыть соединение до истечения 63 keepalive-таймаута. 64 65 *) Исправление: при ожидании задержки limit_req или auth_delay, а также 66 при работе с бэкендами nginx мог не обнаружить, что соединение уже 67 закрыто клиентом. 68 69 *) Исправление: в методе обработки соединений eventport. 70 71 72Изменения в nginx 1.19.8 09.03.2021 73 74 *) Добавление: в директиве proxy_cookie_flags теперь флаги можно 75 задавать с помощью переменных. 76 77 *) Добавление: параметр proxy_protocol в директиве listen, директивы 78 proxy_protocol и set_real_ip_from в почтовом прокси-сервере. 79 80 *) Исправление: HTTP/2-соединения сразу закрывались при использовании 81 "keepalive_timeout 0"; ошибка появилась в 1.19.7. 82 83 *) Исправление: некоторые ошибки логгировались как неизвестные, если 84 nginx был собран с glibc 2.32. 85 86 *) Исправление: в методе обработки соединений eventport. 87 88 89Изменения в nginx 1.19.7 16.02.2021 90 91 *) Изменение: обработка соединений в HTTP/2 была изменена и теперь более 92 соответствует HTTP/1.x; директивы http2_recv_timeout, 93 http2_idle_timeout и http2_max_requests упразднены, вместо них 94 следует использовать директивы keepalive_timeout и 95 keepalive_requests. 96 97 *) Изменение: директивы http2_max_field_size и http2_max_header_size 98 упразднены, вместо них следует использовать директиву 99 large_client_header_buffers. 100 101 *) Добавление: теперь при исчерпании свободных соединений nginx 102 закрывает не только keepalive-соединения, но и соединения в lingering 103 close. 104 105 *) Исправление: в логах могли появляться сообщения "zero size buf in 106 output", если бэкенд возвращал некорректный ответ при 107 небуферизированном проксировании; ошибка появилась в 1.19.1. 108 109 *) Исправление: при использовании директивы return вместе с image_filter 110 или xslt_stylesheet HEAD-запросы обрабатывались некорректно. 111 112 *) Исправление: в директиве add_trailer. 113 114 115Изменения в nginx 1.19.6 15.12.2020 116 117 *) Исправление: ошибки "no live upstreams", если server в блоке upstream 118 был помечен как down. 119 120 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти 121 segmentation fault; ошибка появилась в 1.19.5. 122 123 *) Исправление: nginx возвращал ошибку 400 на запросы вида 124 "GET http://example.com?args HTTP/1.0". 125 126 *) Исправление: в модулях ngx_http_flv_module и ngx_http_mp4_module. 127 Спасибо Chris Newton. 128 129 130Изменения в nginx 1.19.5 24.11.2020 131 132 *) Добавление: ключ -e. 133 134 *) Добавление: при сборке дополнительных модулей теперь можно указывать 135 одни и те же исходные файлы в разных модулях. 136 137 *) Исправление: SSL shutdown не работал при закрытии соединений с 138 ожиданием дополнительных данных (lingering close). 139 140 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки 141 "upstream sent frame for closed stream". 142 143 *) Исправление: во внутреннем API для обработки тела запроса. 144 145 146Изменения в nginx 1.19.4 27.10.2020 147 148 *) Добавление: директивы ssl_conf_command, proxy_ssl_conf_command, 149 grpc_ssl_conf_command и uwsgi_ssl_conf_command. 150 151 *) Добавление: директива ssl_reject_handshake. 152 153 *) Добавление: директива proxy_smtp_auth в почтовом прокси-сервере. 154 155 156Изменения в nginx 1.19.3 29.09.2020 157 158 *) Добавление: модуль ngx_stream_set_module. 159 160 *) Добавление: директива proxy_cookie_flags. 161 162 *) Добавление: директива userid_flags. 163 164 *) Исправление: расширение управления кэшированием stale-if-error 165 ошибочно применялось, если бэкенд возвращал ответ с кодом 500, 502, 166 503, 504, 403, 404 или 429. 167 168 *) Исправление: если использовалось кэширование и бэкенд возвращал 169 ответы с строкой заголовка Vary, в логах могли появляться сообщения 170 "[crit] cache file ... has too long header". 171 172 *) Изменение: при использовании OpenSSL 1.1.1 в логах могли появляться 173 сообщения "[crit] SSL_write() failed". 174 175 *) Исправление: в логах могли появляться сообщения "SSL_shutdown() 176 failed (SSL: ... bad write retry)"; ошибка появилась в 1.19.2. 177 178 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 179 произойти segmentation fault, если ошибки с кодом 400 с помощью 180 директивы error_page перенаправлялись в проксируемый location. 181 182 *) Исправление: утечки сокетов при использовании HTTP/2 и подзапросов в 183 модуле njs. 184 185 186Изменения в nginx 1.19.2 11.08.2020 187 188 *) Изменение: теперь nginx начинает закрывать keepalive-соединения, не 189 дожидаясь исчерпания всех свободных соединений, а также пишет об этом 190 предупреждение в лог ошибок. 191 192 *) Изменение: оптимизация чтения тела запроса при использовании chunked 193 transfer encoding. 194 195 *) Исправление: утечки памяти при использовании директивы ssl_ocsp. 196 197 *) Исправление: в логах могли появляться сообщения "zero size buf in 198 output", если FastCGI-сервер возвращал некорректный ответ; ошибка 199 появилась в 1.19.1. 200 201 *) Исправление: в рабочем процессе мог произойти segmentation fault, 202 если размеры large_client_header_buffers отличались в разных 203 виртуальных серверах. 204 205 *) Исправление: SSL shutdown мог не работать. 206 207 *) Исправление: в логах могли появляться сообщения "SSL_shutdown() 208 failed (SSL: ... bad write retry)". 209 210 *) Исправление: в модуле ngx_http_slice_module. 211 212 *) Исправление: в модуле ngx_http_xslt_filter_module. 213 214 215Изменения в nginx 1.19.1 07.07.2020 216 217 *) Изменение: директивы lingering_close, lingering_time и 218 lingering_timeout теперь работают при использовании HTTP/2. 219 220 *) Изменение: теперь лишние данные, присланные бэкендом, всегда 221 отбрасываются. 222 223 *) Изменение: теперь при получении слишком короткого ответа от 224 FastCGI-сервера nginx пытается отправить клиенту доступную часть 225 ответа, после чего закрывает соединение с клиентом. 226 227 *) Изменение: теперь при получении ответа некорректной длины от 228 gRPC-бэкенда nginx прекращает обработку ответа с ошибкой. 229 230 *) Добавление: параметр min_free в директивах proxy_cache_path, 231 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path. 232 Спасибо Adam Bambuch. 233 234 *) Исправление: nginx не удалял unix domain listen-сокеты при плавном 235 завершении по сигналу SIGQUIT. 236 237 *) Исправление: UDP-пакеты нулевого размера не проксировались. 238 239 *) Исправление: проксирование на uwsgi-бэкенды с использованием SSL 240 могло не работать. 241 Спасибо Guanzhong Chen. 242 243 *) Исправление: в обработке ошибок при использовании директивы ssl_ocsp. 244 245 *) Исправление: при использовании файловых систем XFS и NFS размер кэша 246 на диске мог считаться некорректно. 247 248 *) Исправление: если сервер memcached возвращал некорректный ответ, в 249 логах могли появляться сообщения "negative size buf in writer". 250 251 252Изменения в nginx 1.19.0 26.05.2020 253 254 *) Добавление: проверка клиентских сертификатов с помощью OCSP. 255 256 *) Исправление: при работе с gRPC-бэкендами могли возникать ошибки 257 "upstream sent frame for closed stream". 258 259 *) Исправление: OCSP stapling мог не работать, если не была указана 260 директива resolver. 261 262 *) Исправление: соединения с некорректным HTTP/2 preface не 263 логгировались. 264 265 266Изменения в nginx 1.17.10 14.04.2020 267 268 *) Добавление: директива auth_delay. 269 270 271Изменения в nginx 1.17.9 03.03.2020 272 273 *) Изменение: теперь nginx не разрешает несколько строк "Host" в 274 заголовке запроса. 275 276 *) Исправление: nginx игнорировал дополнительные строки 277 "Transfer-Encoding" в заголовке запроса. 278 279 *) Исправление: утечки сокетов при использовании HTTP/2. 280 281 *) Исправление: в рабочем процессе мог произойти segmentation fault, 282 если использовался OCSP stapling. 283 284 *) Исправление: в модуле ngx_http_mp4_module. 285 286 *) Исправление: при перенаправлении ошибок с кодом 494 с помощью 287 директивы error_page nginx возвращал ответ с кодом 494 вместо 400. 288 289 *) Исправление: утечки сокетов при использовании подзапросов в модуле 290 njs и директивы aio. 291 292 293Изменения в nginx 1.17.8 21.01.2020 294 295 *) Добавление: директива grpc_pass поддерживает переменные. 296 297 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог 298 произойти таймаут; ошибка появилась в 1.17.5. 299 300 *) Исправление: в директиве debug_points при использовании HTTP/2. 301 Спасибо Даниилу Бондареву. 302 303 304Изменения в nginx 1.17.7 24.12.2019 305 306 *) Исправление: на старте или во время переконфигурации мог произойти 307 segmentation fault, если в конфигурации использовалась директива 308 rewrite с пустой строкой замены. 309 310 *) Исправление: в рабочем процессе мог произойти segmentation fault, 311 если директива break использовалась совместно с директивой alias или 312 директивой proxy_pass с URI. 313 314 *) Исправление: строка Location заголовка ответа могла содержать мусор, 315 если URI запроса был изменён на URI, содержащий нулевой символ. 316 317 *) Исправление: при возврате перенаправлений с помощью директивы 318 error_page запросы с телом обрабатывались некорректно; ошибка 319 появилась в 0.7.12. 320 321 *) Исправление: утечки сокетов при использовании HTTP/2. 322 323 *) Исправление: при обработке pipelined-запросов по SSL-соединению мог 324 произойти таймаут; ошибка появилась в 1.17.5. 325 326 *) Исправление: в модуле ngx_http_dav_module. 327 328 329Изменения в nginx 1.17.6 19.11.2019 330 331 *) Добавление: переменные $proxy_protocol_server_addr и 332 $proxy_protocol_server_port. 333 334 *) Добавление: директива limit_conn_dry_run. 335 336 *) Добавление: переменные $limit_req_status и $limit_conn_status. 337 338 339Изменения в nginx 1.17.5 22.10.2019 340 341 *) Добавление: теперь nginx использует вызов ioctl(FIONREAD), если он 342 доступен, чтобы избежать чтения из быстрого соединения в течение 343 долгого времени. 344 345 *) Исправление: неполные закодированные символы в конце URI запроса 346 игнорировались. 347 348 *) Исправление: "/." и "/.." в конце URI запроса не нормализовывались. 349 350 *) Исправление: в директиве merge_slashes. 351 352 *) Исправление: в директиве ignore_invalid_headers. 353 Спасибо Alan Kemp. 354 355 *) Исправление: nginx не собирался с MinGW-w64 gcc 8.1 и новее. 356 357 358Изменения в nginx 1.17.4 24.09.2019 359 360 *) Изменение: улучшено детектирование некорректного поведения клиентов в 361 HTTP/2. 362 363 *) Изменение: в обработке непрочитанного тела запроса при возврате 364 ошибок в HTTP/2. 365 366 *) Исправление: директива worker_shutdown_timeout могла не работать при 367 использовании HTTP/2. 368 369 *) Исправление: при использовании HTTP/2 и директивы 370 proxy_request_buffering в рабочем процессе мог произойти segmentation 371 fault. 372 373 *) Исправление: на Windows при использовании SSL уровень записи в лог 374 ошибки ECONNABORTED был "crit" вместо "error". 375 376 *) Исправление: nginx игнорировал лишние данные при использовании 377 chunked transfer encoding. 378 379 *) Исправление: если использовалась директива return и при чтении тела 380 запроса возникала ошибка, nginx всегда возвращал ошибку 500. 381 382 *) Исправление: в обработке ошибок выделения памяти. 383 384 385Изменения в nginx 1.17.3 13.08.2019 386 387 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное 388 потребление памяти и ресурсов процессора (CVE-2019-9511, 389 CVE-2019-9513, CVE-2019-9516). 390 391 *) Исправление: при использовании сжатия в логах могли появляться 392 сообщения "zero size buf"; ошибка появилась в 1.17.2. 393 394 *) Исправление: при использовании директивы resolver в SMTP 395 прокси-сервере в рабочем процессе мог произойти segmentation fault. 396 397 398Изменения в nginx 1.17.2 23.07.2019 399 400 *) Изменение: минимальная поддерживаемая версия zlib - 1.2.0.4. 401 Спасибо Илье Леошкевичу. 402 403 *) Изменение: метод $r->internal_redirect() встроенного перла теперь 404 ожидает закодированный URI. 405 406 *) Добавление: теперь с помощью метода $r->internal_redirect() 407 встроенного перла можно перейти в именованный location. 408 409 *) Исправление: в обработке ошибок во встроенном перле. 410 411 *) Исправление: на старте или во время переконфигурации мог произойти 412 segmentation fault, если в конфигурации использовалось значение hash 413 bucket size больше 64 килобайт. 414 415 *) Исправление: при использовании методов обработки соединений select, 416 poll и /dev/poll nginx мог нагружать процессор во время 417 небуферизованного проксирования и при проксировании 418 WebSocket-соединений. 419 420 *) Исправление: в модуле ngx_http_xslt_filter_module. 421 422 *) Исправление: в модуле ngx_http_ssi_filter_module. 423 424 425Изменения в nginx 1.17.1 25.06.2019 426 427 *) Добавление: директива limit_req_dry_run. 428 429 *) Добавление: при использовании директивы hash в блоке upstream пустой 430 ключ хэширования теперь приводит к переключению на round-robin 431 балансировку. 432 Спасибо Niklas Keller. 433 434 *) Исправление: в рабочем процессе мог произойти segmentation fault, 435 если использовалось кэширование и директива image_filter, а ошибки с 436 кодом 415 перенаправлялись с помощью директивы error_page; ошибка 437 появилась в 1.11.10. 438 439 *) Исправление: в рабочем процессе мог произойти segmentation fault, 440 если использовался встроенный перл; ошибка появилась в 1.7.3. 441 442 443Изменения в nginx 1.17.0 21.05.2019 444 445 *) Добавление: директивы limit_rate и limit_rate_after поддерживают 446 переменные. 447 448 *) Добавление: директивы proxy_upload_rate и proxy_download_rate в 449 модуле stream поддерживают переменные. 450 451 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.8. 452 453 *) Изменение: теперь postpone-фильтр собирается всегда. 454 455 *) Исправление: директива include не работала в блоках if и 456 limit_except. 457 458 *) Исправление: в обработке byte ranges. 459 460 461Изменения в nginx 1.15.12 16.04.2019 462 463 *) Исправление: в рабочем процессе мог произойти segmentation fault, 464 если в директивах ssl_certificate или ssl_certificate_key 465 использовались переменные и был включён OCSP stapling. 466 467 468Изменения в nginx 1.15.11 09.04.2019 469 470 *) Исправление: в директиве ssl_stapling_file на Windows. 471 472 473Изменения в nginx 1.15.10 26.03.2019 474 475 *) Изменение: теперь при использовании имени хоста в директиве listen 476 nginx создаёт listen-сокеты для всех адресов, соответствующих этому 477 имени (ранее использовался только первый адрес). 478 479 *) Добавление: диапазоны портов в директиве listen. 480 481 *) Добавление: возможность загрузки SSL-сертификатов и секретных ключей 482 из переменных. 483 484 *) Изменение: переменная $ssl_server_name могла быть пустой при 485 использовании OpenSSL 1.1.1. 486 487 *) Исправление: nginx/Windows не собирался с Visual Studio 2015 и новее; 488 ошибка появилась в 1.15.9. 489 490 491Изменения в nginx 1.15.9 26.02.2019 492 493 *) Добавление: директивы ssl_certificate и ssl_certificate_key 494 поддерживают переменные. 495 496 *) Добавление: метод poll теперь доступен на Windows при использовании 497 Windows Vista и новее. 498 499 *) Исправление: если при использовании метода select на Windows 500 происходила ошибка при установлении соединения с бэкендом, nginx 501 ожидал истечения таймаута на установление соединения. 502 503 *) Исправление: директивы proxy_upload_rate и proxy_download_rate в 504 модуле stream работали некорректно при проксировании UDP-пакетов. 505 506 507Изменения в nginx 1.15.8 25.12.2018 508 509 *) Добавление: переменная $upstream_bytes_sent. 510 Спасибо Piotr Sikora. 511 512 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim. 513 Спасибо Геннадию Махомеду. 514 515 *) Исправление: в директиве proxy_cache_background_update. 516 517 *) Исправление: в директиве geo при использовании unix domain 518 listen-сокетов. 519 520 *) Изменение: при использовании директивы ssl_early_data с OpenSSL в 521 логах могли появляться сообщения "ignoring stale global SSL error ... 522 bad length". 523 524 *) Исправление: в nginx/Windows. 525 526 *) Исправление: в модуле ngx_http_autoindex_module на 32-битных 527 платформах. 528 529 530Изменения в nginx 1.15.7 27.11.2018 531 532 *) Добавление: директива proxy_requests в модуле stream. 533 534 *) Добавление: параметр "delay" директивы "limit_req". 535 Спасибо Владиславу Шабанову и Петру Щучкину. 536 537 *) Исправление: утечки памяти в случае ошибок при переконфигурации. 538 539 *) Исправление: в переменных $upstream_response_time, 540 $upstream_connect_time и $upstream_header_time. 541 542 *) Исправление: в рабочем процессе мог произойти segmentation fault, 543 если использовался модуль ngx_http_mp4_module на 32-битных 544 платформах. 545 546 547Изменения в nginx 1.15.6 06.11.2018 548 549 *) Безопасность: при использовании HTTP/2 клиент мог вызвать чрезмерное 550 потреблению памяти (CVE-2018-16843) и ресурсов процессора 551 (CVE-2018-16844). 552 553 *) Безопасность: при обработке специально созданного mp4-файла модулем 554 ngx_http_mp4_module содержимое памяти рабочего процесса могло быть 555 отправлено клиенту (CVE-2018-16845). 556 557 *) Добавление: директивы proxy_socket_keepalive, 558 fastcgi_socket_keepalive, grpc_socket_keepalive, 559 memcached_socket_keepalive, scgi_socket_keepalive и 560 uwsgi_socket_keepalive. 561 562 *) Исправление: если nginx был собран с OpenSSL 1.1.0, а использовался с 563 OpenSSL 1.1.1, протокол TLS 1.3 всегда был разрешён. 564 565 *) Исправление: при работе с gRPC-бэкендами могло расходоваться большое 566 количество памяти. 567 568 569Изменения в nginx 1.15.5 02.10.2018 570 571 *) Исправление: при использовании OpenSSL 1.1.0h и новее в рабочем 572 процессе мог произойти segmentation fault; ошибка появилась в 1.15.4. 573 574 *) Исправление: незначительных потенциальных ошибок. 575 576 577Изменения в nginx 1.15.4 25.09.2018 578 579 *) Добавление: теперь директиву ssl_early_data можно использовать с 580 OpenSSL. 581 582 *) Исправление: в модуле ngx_http_uwsgi_module. 583 Спасибо Chris Caputo. 584 585 *) Исправление: соединения к некоторым gRPC-бэкендам могли не 586 кэшироваться при использовании директивы keepalive. 587 588 *) Исправление: при использовании директивы error_page для 589 перенаправления ошибок, возникающих на ранних этапах обработки 590 запроса, в частности ошибок с кодом 400, могла происходить утечка 591 сокетов. 592 593 *) Исправление: директива return при возврате ошибок не изменяла код 594 ответа, если запрос был перенаправлен с помощью директивы error_page. 595 596 *) Исправление: стандартные сообщения об ошибках и ответы модуля 597 ngx_http_autoindex_module содержали атрибут bgcolor, что могло 598 приводить к их некорректному отображению при использовании 599 пользовательских настроек цветов в браузерах. 600 Спасибо Nova DasSarma. 601 602 *) Изменение: уровень логгирования ошибок SSL "no suitable key share" и 603 "no suitable signature algorithm" понижен с уровня crit до info. 604 605 606Изменения в nginx 1.15.3 28.08.2018 607 608 *) Добавление: теперь TLSv1.3 можно использовать с BoringSSL. 609 610 *) Добавление: директива ssl_early_data, сейчас доступна при 611 использовании BoringSSL. 612 613 *) Добавление: директивы keepalive_timeout и keepalive_requests в блоке 614 upstream. 615 616 *) Исправление: модуль ngx_http_dav_module при копировании файла поверх 617 существующего файла с помощью метода COPY не обнулял целевой файл. 618 619 *) Исправление: модуль ngx_http_dav_module при перемещении файла между 620 файловыми системами с помощью метода MOVE устанавливал нулевые права 621 доступа на результирующий файл и не сохранял время изменения файла. 622 623 *) Исправление: модуль ngx_http_dav_module при копировании файла с 624 помощью метода COPY для результирующего файла использовал права 625 доступа по умолчанию. 626 627 *) Изменение: некоторые клиенты могли не работать при использовании 628 HTTP/2; ошибка появилась в 1.13.5. 629 630 *) Исправление: nginx не собирался с LibreSSL 2.8.0. 631 632 633Изменения в nginx 1.15.2 24.07.2018 634 635 *) Добавление: переменная $ssl_preread_protocol в модуле 636 ngx_stream_ssl_preread_module. 637 638 *) Добавление: теперь при использовании директивы 639 reset_timedout_connection nginx сбрасывает соединения, закрываемые с 640 кодом 444. 641 642 *) Изменение: уровень логгирования ошибок SSL "http request", "https 643 proxy request", "unsupported protocol" и "version too low" понижен с 644 уровня crit до info. 645 646 *) Исправление: запросы к DNS-серверу не отправлялись повторно, если при 647 первой попытке отправки происходила ошибка. 648 649 *) Исправление: параметр reuseport директивы listen игнорировался, если 650 количество рабочих процессов было задано после директивы listen. 651 652 *) Исправление: при использовании OpenSSL 1.1.0 и новее директиву 653 ssl_prefer_server_ciphers нельзя было выключить в виртуальном 654 сервере, если она была включена в сервере по умолчанию. 655 656 *) Исправление: повторное использование SSL-сессий к бэкендам не 657 работало с протоколом TLS 1.3. 658 659 660Изменения в nginx 1.15.1 03.07.2018 661 662 *) Добавление: директива random в блоке upstream. 663 664 *) Добавление: улучшена производительность при использовании директив 665 hash и ip_hash совместно с директивой zone. 666 667 *) Добавление: параметр reuseport директивы listen теперь использует 668 SO_REUSEPORT_LB на FreeBSD 12. 669 670 *) Исправление: HTTP/2 server push не работал, если SSL терминировался 671 прокси-сервером перед nginx'ом. 672 673 *) Исправление: директива tcp_nopush всегда использовалась для 674 соединений к бэкендам. 675 676 *) Исправление: при отправке сохранённого на диск тела запроса на 677 gRPC-бэкенд могли возникать ошибки. 678 679 680Изменения в nginx 1.15.0 05.06.2018 681 682 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё 683 следует использовать параметр ssl директивы listen. 684 685 *) Изменение: теперь при использовании директивы listen с параметром ssl 686 nginx определяет отсутствие SSL-сертификатов при тестировании 687 конфигурации. 688 689 *) Добавление: теперь модуль stream умеет обрабатывать несколько 690 входящих UDP-пакетов от клиента в рамках одной сессии. 691 692 *) Исправление: в директиве proxy_cache_valid можно было указать 693 некорректный код ответа. 694 695 *) Исправление: nginx не собирался gcc 8.1. 696 697 *) Исправление: логгирование в syslog останавливалось при изменении 698 локального IP-адреса. 699 700 *) Исправление: nginx не собирался компилятором clang, если был 701 установлен CUDA SDK; ошибка появилась в 1.13.8. 702 703 *) Исправление: при использовании unix domain listen-сокетов на FreeBSD 704 в процессе обновления исполняемого файла в логе могли появляться 705 сообщения "getsockopt(TCP_FASTOPEN) ... failed". 706 707 *) Исправление: nginx не собирался на Fedora 28 Linux. 708 709 *) Исправление: при использовании директивы limit_req заданная скорость 710 обработки запросов могла не соблюдаться. 711 712 *) Исправление: в обработке адресов клиентов при использовании unix 713 domain listen-сокетов для работы с датаграммами на Linux. 714 715 *) Исправление: в обработке ошибок выделения памяти. 716 717 718Изменения в nginx 1.13.12 10.04.2018 719 720 *) Исправление: при возврате большого ответа соединения с gRPC-бэкендами 721 могли неожиданно закрываться. 722 723 724Изменения в nginx 1.13.11 03.04.2018 725 726 *) Добавление: параметр proxy_protocol директивы listen теперь 727 поддерживает протокол PROXY версии 2. 728 729 *) Исправление: nginx не собирался с OpenSSL 1.1.1 статически на Linux. 730 731 *) Исправление: в параметрах http_404, http_500 и им подобных директивы 732 proxy_next_upstream. 733 734 735Изменения в nginx 1.13.10 20.03.2018 736 737 *) Добавление: теперь параметр set в SSI-директиве include позволяет 738 сохранять в переменную любые ответы; максимальный размер ответа 739 задаётся директивой subrequest_output_buffer_size. 740 741 *) Добавление: теперь nginx использует вызов 742 clock_gettime(CLOCK_MONOTONIC), если он доступен, что позволяет 743 избежать некорректного срабатывания таймаутов при изменениях 744 системного времени. 745 746 *) Добавление: параметр "escape=none" директивы log_format. 747 Спасибо Johannes Baiter и Calin Don. 748 749 *) Добавление: переменная $ssl_preread_alpn_protocols в модуле 750 ngx_stream_ssl_preread_module. 751 752 *) Добавление: модуль ngx_http_grpc_module. 753 754 *) Исправление: в обработке ошибок выделения памяти в директиве geo. 755 756 *) Исправление: при использовании переменных в директиве 757 auth_basic_user_file в лог мог выводиться символ '\0'. 758 Спасибо Вадиму Филимонову. 759 760 761Изменения в nginx 1.13.9 20.02.2018 762 763 *) Добавление: поддержка HTTP/2 server push; директивы http2_push и 764 http2_push_preload. 765 766 *) Исправление: при использовании кэша в логах могли появляться 767 сообщения "header already sent"; ошибка появилась в 1.9.13. 768 769 *) Исправление: при использовании директивы ssl_verify_client в рабочем 770 процессе мог произойти segmentation fault, если в виртуальном сервере 771 не был указан SSL-сертификат. 772 773 *) Исправление: в модуле ngx_http_v2_module. 774 775 *) Исправление: в модуле ngx_http_dav_module. 776 777 778Изменения в nginx 1.13.8 26.12.2017 779 780 *) Добавление: теперь при использовании параметра transparent директив 781 proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind 782 nginx автоматически сохраняет capability CAP_NET_RAW в рабочих 783 процессах. 784 785 *) Добавление: улучшения в определении размера строки кэша процессора. 786 Спасибо Debayan Ghosh. 787 788 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim. 789 Спасибо Геннадию Махомеду. 790 791 *) Исправление: процедура обновления исполняемого файла не работала, 792 если после завершения родительского процесса новым родительским 793 процессом nginx'а становился процесс с PID, отличным от 1. 794 795 *) Исправление: модуль ngx_http_autoindex_module неправильно обрабатывал 796 запросы с телом. 797 798 *) Исправление: в директиве proxy_limit_rate при использовании с 799 директивой keepalive. 800 801 *) Исправление: при использовании "proxy_buffering off" часть ответа 802 могла буферизироваться, если клиентское соединение использовало SSL. 803 Спасибо Patryk Lesiewicz. 804 805 *) Исправление: в директиве proxy_cache_background_update. 806 807 *) Исправление: переменную вида "${name}" с именем в фигурных скобках 808 нельзя было использовать в начале параметра не заключив весь параметр 809 в кавычки. 810 811 812Изменения в nginx 1.13.7 21.11.2017 813 814 *) Исправление: в переменной $upstream_status. 815 816 *) Исправление: в рабочем процессе мог произойти segmentation fault, 817 если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос. 818 819 *) Исправление: если при переконфигурации изменялся размер зоны 820 разделяемой памяти и переконфигурация завершалась неудачно, то в 821 главном процессе происходил segmentation fault. 822 823 *) Исправление: в модуле ngx_http_fastcgi_module. 824 825 *) Исправление: nginx возвращал ошибку 500, если в директиве 826 xslt_stylesheet были заданы параметры без использования переменных. 827 828 *) Изменение: при использовании варианта библиотеки zlib от Intel в лог 829 писались сообщения "gzip filter failed to use preallocated memory". 830 831 *) Исправление: директива worker_shutdown_timeout не работала при 832 использовании почтового прокси-сервера и при проксировании 833 WebSocket-соединений. 834 835 836Изменения в nginx 1.13.6 10.10.2017 837 838 *) Исправление: при использовании директивы ssl_preread в модуле stream 839 не работало переключение на следующий бэкенд. 840 841 *) Исправление: в модуле ngx_http_v2_module. 842 Спасибо Piotr Sikora. 843 844 *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных 845 платформах с 64-битным time_t. 846 847 *) Исправление: в обработке дат до 1970 года и после 10000 года. 848 849 *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от 850 бэкендов не логгировались или логгировались на уровне info вместо 851 error. 852 853 *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400, 854 не указав в логе причину. 855 856 *) Исправление: в обработке повреждённых файлов кэша. 857 858 *) Исправление: при кэшировании ошибок, перехваченных error_page, не 859 учитывались заголовки управления кэшированием. 860 861 *) Исправление: при использовании HTTP/2 тело запроса могло быть 862 повреждено. 863 864 *) Исправление: в обработке адресов клиентов при использовании unix 865 domain сокетов. 866 867 *) Исправление: при использовании директивы "hash ... consistent" в 868 блоке upstream nginx нагружал процессор, если использовались большие 869 веса и все или почти все бэкенды были недоступны. 870 871 872Изменения в nginx 1.13.5 05.09.2017 873 874 *) Добавление: переменная $ssl_client_escaped_cert. 875 876 *) Исправление: директива ssl_session_ticket_key и параметр include 877 директивы geo не работали на Windows. 878 879 *) Исправление: на 32-битных платформах при запросе более 4 гигабайт с 880 помощью нескольких диапазонов возвращалась некорректная длина ответа. 881 882 *) Исправление: директива "expires modified" и обработка строки If-Range 883 заголовка запроса не учитывали время последнего изменения ответа, 884 если использовалось проксирование без кэширования. 885 886 887Изменения в nginx 1.13.4 08.08.2017 888 889 *) Добавление: модуль ngx_http_mirror_module. 890 891 *) Исправление: клиентские соединения могли сбрасываться при 892 тестировании конфигурации, если использовался параметр reuseport 893 директивы listen на Linux. 894 895 *) Исправление: тело запроса могло быть недоступно в подзапросах, если 896 оно было сохранено в файл и использовалось проксирование. 897 898 *) Исправление: очистка кэша по max_size не работала на Windows. 899 900 *) Исправление: любое выделение разделяемой памяти на Windows требовало 901 4096 байт памяти. 902 903 *) Исправление: при использовании директивы zone в блоке upstream на 904 Windows рабочий процесс мог завершаться аварийно. 905 906 907Изменения в nginx 1.13.3 11.07.2017 908 909 *) Безопасность: специально созданный запрос мог вызвать целочисленное 910 переполнение в range-фильтре и последующую некорректную обработку 911 запрошенных диапазонов, что потенциально могло привести к утечке 912 конфиденциальной информации (CVE-2017-7529). 913 914 915Изменения в nginx 1.13.2 27.06.2017 916 917 *) Изменение: теперь при запросе диапазона, начинающегося с 0, из 918 пустого файла nginx возвращает ответ 200 вместо 416. 919 920 *) Добавление: директива add_trailer. 921 Спасибо Piotr Sikora. 922 923 *) Исправление: nginx не собирался под Cygwin и NetBSD; ошибка появилась 924 в 1.13.0. 925 926 *) Исправление: nginx не собирался под MSYS2 / MinGW 64-bit. 927 Спасибо Orgad Shaneh. 928 929 *) Исправление: при использовании SSI с большим количеством подзапросов 930 и proxy_pass с переменными в рабочем процессе мог произойти 931 segmentation fault. 932 933 *) Исправление: в модуле ngx_http_v2_module. 934 Спасибо Piotr Sikora. 935 936 937Изменения в nginx 1.13.1 30.05.2017 938 939 *) Добавление: теперь в качестве параметра директивы set_real_ip_from 940 можно указывать имя хоста. 941 942 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim. 943 944 *) Добавление: директива worker_cpu_affinity теперь работает на 945 DragonFly BSD. 946 Спасибо Sepherosa Ziehau. 947 948 *) Исправление: SSL renegotiation в соединениях к бэкендам не работал 949 при использовании OpenSSL до 1.1.0. 950 951 *) Изменение: nginx не собирался с Oracle Developer Studio 12.5. 952 953 *) Изменение: теперь cache manager пропускает заблокированные записи при 954 очистке кэша по max_size. 955 956 *) Исправление: клиентские SSL-соединения сразу закрывались, если 957 использовался отложенный accept и параметр proxy_protocol директивы 958 listen. 959 960 *) Исправление: в директиве proxy_cache_background_update. 961 962 *) Изменение: теперь директива tcp_nodelay устанавливает опцию 963 TCP_NODELAY перед SSL handshake. 964 965 966Изменения в nginx 1.13.0 25.04.2017 967 968 *) Изменение: теперь SSL renegotiation допускается в соединениях к 969 бэкендам. 970 971 *) Добавление: параметры rcvbuf и sndbuf директив listen в почтовом 972 прокси-сервере и модуле stream. 973 974 *) Добавление: директивы return и error_page теперь могут использоваться 975 для возврата перенаправлений с кодом 308. 976 Спасибо Simon Leblanc. 977 978 *) Добавление: параметр TLSv1.3 в директиве ssl_protocols. 979 980 *) Добавление: при логгировании сигналов теперь указывается PID 981 отправившего сигнал процесса. 982 983 *) Исправление: в обработке ошибок выделения памяти. 984 985 *) Исправление: если сервер в модуле stream слушал на wildcard-адресе, 986 исходящий адрес ответного UDP-пакета мог отличаться от адреса 987 назначения исходного пакета. 988 989 990Изменения в nginx 1.11.13 04.04.2017 991 992 *) Добавление: параметр http_429 в директивах proxy_next_upstream, 993 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream. 994 Спасибо Piotr Sikora. 995 996 *) Исправление: в обработке ошибок выделения памяти. 997 998 *) Исправление: при использовании директив sendfile и timer_resolution 999 на Linux запросы могли зависать. 1000 1001 *) Исправление: при использовании с подзапросами директив sendfile и 1002 aio_write запросы могли зависать. 1003 1004 *) Исправление: в модуле ngx_http_v2_module. 1005 Спасибо Piotr Sikora. 1006 1007 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 1008 произойти segmentation fault. 1009 1010 *) Исправление: запросы могли зависать при использовании с подзапросами 1011 директив limit_rate, sendfile_max_chunk, limit_req или метода 1012 $r->sleep() встроенного перла. 1013 1014 *) Исправление: в модуле ngx_http_slice_module. 1015 1016 1017Изменения в nginx 1.11.12 24.03.2017 1018 1019 *) Исправление: nginx мог нагружать процессор; ошибка появилась в 1020 1.11.11. 1021 1022 1023Изменения в nginx 1.11.11 21.03.2017 1024 1025 *) Добавление: директива worker_shutdown_timeout. 1026 1027 *) Добавление: улучшения в скриптах подсветки синтаксиса для vim. 1028 Спасибо Wei-Ko Kao. 1029 1030 *) Исправление: при попытке установить переменную $limit_rate в пустую 1031 строку в рабочем процессе мог произойти segmentation fault. 1032 1033 *) Исправление: директивы proxy_cache_background_update, 1034 fastcgi_cache_background_update, scgi_cache_background_update и 1035 uwsgi_cache_background_update могли работать некорректно, если 1036 использовалась директива if. 1037 1038 *) Исправление: в рабочем процессе мог произойти segmentation fault, 1039 если количество large_client_header_buffers в виртуальном сервере 1040 отличалось от такового в сервере по умолчанию. 1041 1042 *) Исправление: в почтовом прокси-сервере. 1043 1044 1045Изменения в nginx 1.11.10 14.02.2017 1046 1047 *) Изменение: формат заголовка кэша был изменен, ранее закэшированные 1048 ответы будут загружены заново. 1049 1050 *) Добавление: поддержка расширений stale-while-revalidate и 1051 stale-if-error в строке "Cache-Control" в заголовке ответа бэкенда. 1052 1053 *) Добавление: директивы proxy_cache_background_update, 1054 fastcgi_cache_background_update, scgi_cache_background_update и 1055 uwsgi_cache_background_update. 1056 1057 *) Добавление: теперь nginx может кэшировать ответы со строкой Vary 1058 заголовка длиной до 128 символов (вместо 42 символов в предыдущих 1059 версиях). 1060 1061 *) Добавление: параметр build директивы server_tokens. 1062 Спасибо Tom Thorogood. 1063 1064 *) Исправление: при обработке запросов со строкой "Expect: 100-continue" 1065 в заголовке запроса в логах могли появляться сообщения "[crit] 1066 SSL_write() failed". 1067 1068 *) Исправление: модуль ngx_http_slice_module не работал в именованных 1069 location'ах. 1070 1071 *) Исправление: при использовании AIO после перенаправления запроса с 1072 помощью X-Accel-Redirect в рабочем процессе мог произойти 1073 segmentation fault. 1074 1075 *) Исправление: уменьшено потребление памяти для долгоживущих запросов, 1076 использующих сжатие. 1077 1078 1079Изменения в nginx 1.11.9 24.01.2017 1080 1081 *) Исправление: при использовании модуля stream nginx мог нагружать 1082 процессор; ошибка появилась в 1.11.5. 1083 1084 *) Исправление: метод аутентификации EXTERNAL в почтовом прокси-сервере 1085 можно было использовать, даже если он не был разрешён в конфигурации. 1086 1087 *) Исправление: при использовании директивы ssl_verify_client модуля 1088 stream в рабочем процессе мог произойти segmentation fault. 1089 1090 *) Исправление: директива ssl_verify_client модуля stream могла не 1091 работать. 1092 1093 *) Исправление: при исчерпании рабочим процессом свободных соединений 1094 keepalive-соединения могли закрываться излишне агрессивно. 1095 Спасибо Joel Cunningham. 1096 1097 *) Исправление: при использовании директивы sendfile на FreeBSD и macOS 1098 мог возвращаться некорректный ответ; ошибка появилась в 1.7.8. 1099 1100 *) Исправление: при использовании директивы aio_write ответ мог 1101 сохраняться в кэш не полностью. 1102 1103 *) Исправление: при использовании директивы aio_write могла происходить 1104 утечка сокетов. 1105 1106 1107Изменения в nginx 1.11.8 27.12.2016 1108 1109 *) Добавление: директива absolute_redirect. 1110 1111 *) Добавление: параметр escape директивы log_format. 1112 1113 *) Добавление: проверка клиентских SSL-сертификатов в модуле stream. 1114 1115 *) Добавление: директива ssl_session_ticket_key поддерживает шифрование 1116 TLS session tickets с помощью AES256 при использовании с 80-байтными 1117 ключами. 1118 1119 *) Добавление: поддержка vim-commentary в скриптах для vim. 1120 Спасибо Armin Grodon. 1121 1122 *) Исправление: рекурсия при получении значений переменных не 1123 ограничивалась. 1124 1125 *) Исправление: в модуле ngx_stream_ssl_preread_module. 1126 1127 *) Исправление: если сервер, описанный в блоке upstream в модуле stream, 1128 был признан неработающим, то после истечения fail_timeout он 1129 признавался работающим только после завершения тестового соединения; 1130 теперь достаточно, чтобы соединение было успешно установлено. 1131 1132 *) Исправление: nginx/Windows не собирался с 64-битным Visual Studio. 1133 1134 *) Исправление: nginx/Windows не собирался с OpenSSL 1.1.0. 1135 1136 1137Изменения в nginx 1.11.7 13.12.2016 1138 1139 *) Изменение: переменная $ssl_client_verify теперь в случае ошибки 1140 проверки клиентского сертификата содержит строку с описанием ошибки, 1141 например, "FAILED:certificate has expired". 1142 1143 *) Добавление: переменные $ssl_ciphers, $ssl_curves, 1144 $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain. 1145 1146 *) Добавление: параметр volatile директивы map. 1147 1148 *) Исправление: при сборке динамических модулей не учитывались заданные 1149 для модуля зависимости. 1150 1151 *) Исправление: при использовании HTTP/2 и директив limit_req или 1152 auth_request тело запроса могло быть повреждено; ошибка появилась в 1153 1.11.0. 1154 1155 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 1156 произойти segmentation fault; ошибка появилась в 1.11.3. 1157 1158 *) Исправление: в модуле ngx_http_mp4_module. 1159 Спасибо Congcong Hu. 1160 1161 *) Исправление: в модуле ngx_http_perl_module. 1162 1163 1164Изменения в nginx 1.11.6 15.11.2016 1165 1166 *) Изменение: формат переменных $ssl_client_s_dn и $ssl_client_i_dn 1167 изменён на соответствующий RFC 2253 (RFC 4514); значения в старом 1168 формате доступны через переменные $ssl_client_s_dn_legacy и 1169 $ssl_client_i_dn_legacy. 1170 1171 *) Изменение: при сохранении временных файлов в каталоге кэша они теперь 1172 располагаются не в отдельном подкаталоге для временных файлов, а в 1173 том же подкаталоге, что и соответствующие файлы в кэше. 1174 1175 *) Добавление: поддержка метода аутентификации EXTERNAL в почтовом 1176 прокси-сервере. 1177 Спасибо Robert Norris. 1178 1179 *) Добавление: поддержка WebP в модуле ngx_http_image_filter_module. 1180 1181 *) Добавление: директива proxy_method поддерживает переменные. 1182 Спасибо Дмитрию Лазуркину. 1183 1184 *) Добавление: директива http2_max_requests в модуле ngx_http_v2_module. 1185 1186 *) Добавление: директивы proxy_cache_max_range_offset, 1187 fastcgi_cache_max_range_offset, scgi_cache_max_range_offset и 1188 uwsgi_cache_max_range_offset. 1189 1190 *) Исправление: плавное завершение старых рабочих процессов могло 1191 занимать бесконечное время при использовании HTTP/2. 1192 1193 *) Исправление: в модуле ngx_http_mp4_module. 1194 1195 *) Исправление: при проксировании WebSocket-соединений и включённом 1196 кэшировании в логах могли появляться сообщения "ignore long locked 1197 inactive cache entry". 1198 1199 *) Исправление: если во время SSL handshake с бэкендом происходил 1200 таймаут, nginx ничего не писал в лог и возвращал ответ с кодом 502 1201 вместо 504. 1202 1203 1204Изменения в nginx 1.11.5 11.10.2016 1205 1206 *) Изменение: параметр configure --with-ipv6 упразднён, поддержка IPv6 1207 теперь собирается автоматически. 1208 1209 *) Изменение: теперь, если в блоке upstream не оказалось доступных 1210 серверов, nginx не сбрасывает статистику ошибок всех серверов, как 1211 делал ранее, а ожидает истечения fail_timeout. 1212 1213 *) Добавление: модуль ngx_stream_ssl_preread_module. 1214 1215 *) Добавление: директива server в блоке upstream поддерживает параметр 1216 max_conns. 1217 1218 *) Добавление: параметр configure --with-compat. 1219 1220 *) Добавление: параметры manager_files, manager_threshold и 1221 manager_sleep директив proxy_cache_path, fastcgi_cache_path, 1222 scgi_cache_path и uwsgi_cache_path. 1223 1224 *) Исправление: при сборке perl-модуля не использовались флаги, заданные 1225 с помощью параметра configure --with-ld-opt. 1226 1227 *) Исправление: в директиве add_after_body при использовании совместно с 1228 директивой sub_filter. 1229 1230 *) Исправление: в переменной $realip_remote_addr. 1231 1232 *) Исправление: директивы dav_access, proxy_store_access, 1233 fastcgi_store_access, scgi_store_access и uwsgi_store_access 1234 игнорировали права, заданные для пользователя. 1235 1236 *) Исправление: unix domain listen-сокеты могли не наследоваться при 1237 обновлении исполняемого файла на Linux. 1238 1239 *) Исправление: nginx возвращал ошибку 400 на запросы с символом "-" в 1240 HTTP-методе. 1241 1242 1243Изменения в nginx 1.11.4 13.09.2016 1244 1245 *) Добавление: переменная $upstream_bytes_received. 1246 1247 *) Добавление: переменные $bytes_received, $session_time, $protocol, 1248 $status, $upstream_addr, $upstream_bytes_sent, 1249 $upstream_bytes_received, $upstream_connect_time, 1250 $upstream_first_byte_time и $upstream_session_time в модуле stream. 1251 1252 *) Добавление: модуль ngx_stream_log_module. 1253 1254 *) Добавление: параметр proxy_protocol в директиве listen, переменные 1255 $proxy_protocol_addr и $proxy_protocol_port в модуле stream. 1256 1257 *) Добавление: модуль ngx_stream_realip_module. 1258 1259 *) Исправление: nginx не собирался с модулем stream и модулем 1260 ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка 1261 появилась в 1.11.3. 1262 1263 *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась; 1264 ошибка появилась в 1.11.2. 1265 1266 *) Исправление: в параметре ranges директивы geo. 1267 1268 *) Исправление: при использовании директив "aio threads" и sendfile мог 1269 возвращаться некорректный ответ; ошибка появилась в 1.9.13. 1270 1271 1272Изменения в nginx 1.11.3 26.07.2016 1273 1274 *) Изменение: теперь accept_mutex по умолчанию выключен. 1275 1276 *) Добавление: теперь nginx использует EPOLLEXCLUSIVE на Linux. 1277 1278 *) Добавление: модуль ngx_stream_geo_module. 1279 1280 *) Добавление: модуль ngx_stream_geoip_module. 1281 1282 *) Добавление: модуль ngx_stream_split_clients_module. 1283 1284 *) Добавление: директивы proxy_pass и proxy_ssl_name в модуле stream 1285 поддерживают переменные. 1286 1287 *) Исправление: утечки сокетов при использовании HTTP/2. 1288 1289 *) Исправление: в configure. 1290 Спасибо Piotr Sikora. 1291 1292 1293Изменения в nginx 1.11.2 05.07.2016 1294 1295 *) Изменение: теперь nginx всегда использует внутренние реализации MD5 и 1296 SHA1; параметры configure --with-md5 и --with-sha1 упразднены. 1297 1298 *) Добавление: поддержка переменных в модуле stream. 1299 1300 *) Добавление: модуль ngx_stream_map_module. 1301 1302 *) Добавление: модуль ngx_stream_return_module. 1303 1304 *) Добавление: в директивах proxy_bind, fastcgi_bind, memcached_bind, 1305 scgi_bind и uwsgi_bind теперь можно указывать порт. 1306 1307 *) Добавление: теперь nginx использует опцию сокета 1308 IP_BIND_ADDRESS_NO_PORT, если она доступна. 1309 1310 *) Исправление: при использовании HTTP/2 и директивы 1311 proxy_request_buffering в рабочем процессе мог произойти segmentation 1312 fault. 1313 1314 *) Исправление: при использовании HTTP/2 к запросам, передаваемым на 1315 бэкенд, всегда добавлялась строка заголовка "Content-Length", даже 1316 если у запроса не было тела. 1317 1318 *) Исправление: при использовании HTTP/2 в логах могли появляться 1319 сообщения "http request count is zero". 1320 1321 *) Исправление: при использовании директивы sub_filter могло 1322 буферизироваться больше данных, чем это необходимо; проблема 1323 появилась в 1.9.4. 1324 1325 1326Изменения в nginx 1.11.1 31.05.2016 1327 1328 *) Безопасность: при записи тела специально созданного запроса во 1329 временный файл в рабочем процессе мог происходить segmentation fault 1330 (CVE-2016-4450); ошибка появилась в 1.3.9. 1331 1332 1333Изменения в nginx 1.11.0 24.05.2016 1334 1335 *) Добавление: параметр transparent директив proxy_bind, fastcgi_bind, 1336 memcached_bind, scgi_bind и uwsgi_bind. 1337 1338 *) Добавление: переменная $request_id. 1339 1340 *) Добавление: директива map поддерживает комбинации нескольких 1341 переменных в качестве результирующих значений. 1342 1343 *) Добавление: теперь при использовании метода epoll nginx проверяет, 1344 поддерживает ли ядро события EPOLLRDHUP, и соответственно 1345 оптимизирует обработку соединений. 1346 1347 *) Добавление: директивы ssl_certificate и ssl_certificate_key теперь 1348 можно указывать несколько раз для загрузки сертификатов разных типов 1349 (например, RSA и ECDSA). 1350 1351 *) Добавление: при использовании OpenSSL 1.0.2 и новее с помощью 1352 директивы ssl_ecdh_curve теперь можно задать список кривых; по 1353 умолчанию используется встроенный в OpenSSL список кривых. 1354 1355 *) Изменение: для использования DHE-шифров теперь надо явно задавать 1356 файл параметров с помощью директивы ssl_dhparam. 1357 1358 *) Добавление: переменная $proxy_protocol_port. 1359 1360 *) Добавление: переменная $realip_remote_port в модуле 1361 ngx_http_realip_module. 1362 1363 *) Добавление: модуль ngx_http_realip_module теперь позволяет 1364 устанавливать не только адрес, но и порт клиента. 1365 1366 *) Изменение: при попытке запросить виртуальный сервер, отличающийся от 1367 согласованного в процессе SSL handshake, теперь возвращается ответ 1368 "421 Misdirected Request"; это улучшает совместимость с некоторыми 1369 HTTP/2-клиентами в случае использования клиентских сертификатов. 1370 1371 *) Изменение: HTTP/2-клиенты теперь могут сразу присылать тело запроса; 1372 директива http2_body_preread_size позволяет указать размер буфера, 1373 который будет использоваться до того, как nginx начнёт читать тело. 1374 1375 *) Исправление: при использовании директивы proxy_cache_bypass не 1376 обновлялись закэшированные ошибочные ответы. 1377 1378 1379Изменения в nginx 1.9.15 19.04.2016 1380 1381 *) Исправление: при использовании HHVM в качестве FastCGI-сервера могли 1382 возникать ошибки "recv() failed". 1383 1384 *) Исправление: при использовании HTTP/2 и директив limit_req или 1385 auth_request при чтении тела запроса мог произойти таймаут или ошибка 1386 "client violated flow control"; ошибка появилась в 1.9.14. 1387 1388 *) Изменение: при использовании HTTP/2 ответ мог не показываться 1389 некоторыми браузерами, если тело запроса было прочитано не целиком; 1390 ошибка появилась в 1.9.14. 1391 1392 *) Исправление: при использовании директивы "aio threads" соединения 1393 могли зависать. 1394 Спасибо Mindaugas Rasiukevicius. 1395 1396 1397Изменения в nginx 1.9.14 05.04.2016 1398 1399 *) Добавление: совместимость с OpenSSL 1.1.0. 1400 1401 *) Добавление: директивы proxy_request_buffering, 1402 fastcgi_request_buffering, scgi_request_buffering и 1403 uwsgi_request_buffering теперь работают при использовании HTTP/2. 1404 1405 *) Исправление: при использовании HTTP/2 в логах могли появляться 1406 сообщения "zero size buf in output". 1407 1408 *) Исправление: при использовании HTTP/2 директива client_max_body_size 1409 могла работать неверно. 1410 1411 *) Исправление: незначительных ошибок логгирования. 1412 1413 1414Изменения в nginx 1.9.13 29.03.2016 1415 1416 *) Изменение: неидемпотентные запросы (POST, LOCK, PATCH) теперь по 1417 умолчанию не передаются на другой сервер, если запрос уже был 1418 отправлен на бэкенд; параметр non_idempotent директивы 1419 proxy_next_upstream явно разрешает повторять такие запросы. 1420 1421 *) Добавление: модуль ngx_http_perl_module теперь можно собрать 1422 динамически. 1423 1424 *) Добавление: поддержка UDP в модуле stream. 1425 1426 *) Добавление: директива aio_write. 1427 1428 *) Добавление: теперь cache manager следит за количеством элементов в 1429 кэше и старается не допускать переполнений зоны разделяемой памяти. 1430 1431 *) Исправление: при использовании директив sendfile и aio с подзапросами 1432 в логах могли появляться сообщения "task already active" и "second 1433 aio post". 1434 1435 *) Исправление: при использовании кэширования в логах могли появляться 1436 сообщения "zero size buf in output", если клиент закрывал соединение 1437 преждевременно. 1438 1439 *) Исправление: при использовании кэширования соединения с клиентами 1440 могли закрываться без необходимости. 1441 Спасибо Justin Li. 1442 1443 *) Исправление: nginx мог нагружать процессор при использовании 1444 директивы sendfile на Linux и Solaris, если отправляемый файл был 1445 изменён в процессе отправки. 1446 1447 *) Исправление: при использовании директив sendfile и "aio threads" 1448 соединения могли зависать. 1449 1450 *) Исправление: в директивах proxy_pass, fastcgi_pass, scgi_pass и 1451 uwsgi_pass при использовании переменных. 1452 Спасибо Piotr Sikora. 1453 1454 *) Исправление: в модуле ngx_http_sub_filter_module. 1455 1456 *) Исправление: если в закэшированном соединении к бэкенду происходила 1457 ошибка, запрос передавался на другой сервер без учёта директивы 1458 proxy_next_upstream. 1459 1460 *) Исправление: ошибки "CreateFile() failed" при создании временных 1461 файлов на Windows. 1462 1463 1464Изменения в nginx 1.9.12 24.02.2016 1465 1466 *) Добавление: кодирование Хаффмана заголовков ответов в HTTP/2. 1467 Спасибо Владу Краснову. 1468 1469 *) Добавление: директива worker_cpu_affinity теперь поддерживает более 1470 64 процессоров. 1471 1472 *) Исправление: совместимость со сторонними модулями на C++; ошибка 1473 появилась в 1.9.11. 1474 Спасибо Piotr Sikora. 1475 1476 *) Исправление: nginx не собирался статически с OpenSSL на Linux; ошибка 1477 появилась в 1.9.11. 1478 1479 *) Исправление: директива "add_header ... always" с пустым значением не 1480 удаляла из заголовков ошибочных ответов строки Last-Modified и ETag. 1481 1482 *) Изменение: при использовании OpenSSL 1.0.2f в логах могли появляться 1483 сообщения "called a function you should not call" и "shutdown while 1484 in init". 1485 1486 *) Исправление: ошибочные заголовки могли логгироваться некорректно. 1487 1488 *) Исправление: утечки сокетов при использовании HTTP/2. 1489 1490 *) Исправление: в модуле ngx_http_v2_module. 1491 1492 1493Изменения в nginx 1.9.11 09.02.2016 1494 1495 *) Добавление: теперь resolver поддерживает TCP. 1496 1497 *) Добавление: динамические модули. 1498 1499 *) Исправление: при использовании HTTP/2 переменная $request_length не 1500 учитывала размер заголовков запроса. 1501 1502 *) Исправление: в модуле ngx_http_v2_module. 1503 1504 1505Изменения в nginx 1.9.10 26.01.2016 1506 1507 *) Безопасность: при использовании директивы resolver во время обработки 1508 ответов DNS-сервера могло происходить разыменование некорректного 1509 адреса, что позволяло атакующему, имеющему возможность подделывать 1510 UDP-пакеты от DNS-сервера, вызвать segmentation fault в рабочем 1511 процессе (CVE-2016-0742). 1512 1513 *) Безопасность: при использовании директивы resolver во время обработки 1514 CNAME-записей могло произойти обращение к ранее освобождённой памяти, 1515 что позволяло атакующему, имеющему возможность инициировать 1516 преобразование произвольных имён в адреса, вызвать segmentation fault 1517 в рабочем процессе, а также потенциально могло иметь другие 1518 последствия (CVE-2016-0746). 1519 1520 *) Безопасность: при использовании директивы resolver во время обработки 1521 CNAME-записей не во всех случаях проверялось ограничение на 1522 максимальное количество записей в цепочке, что позволяло атакующему, 1523 имеющему возможность инициировать преобразование произвольных имён в 1524 адреса, вызвать чрезмерное потребление ресурсов рабочими процессами 1525 (CVE-2016-0747). 1526 1527 *) Добавление: параметр auto директивы worker_cpu_affinity. 1528 1529 *) Исправление: параметр proxy_protocol директивы listen не работал с 1530 IPv6 listen-сокетами. 1531 1532 *) Исправление: при использовании директивы keepalive соединения к 1533 бэкендам могли кэшироваться некорректно. 1534 1535 *) Исправление: после перенаправления запроса с помощью X-Accel-Redirect 1536 при проксировании использовался HTTP-метод оригинального запроса. 1537 1538 1539Изменения в nginx 1.9.9 09.12.2015 1540 1541 *) Исправление: проксирование в unix domain сокеты не работало при 1542 использовании переменных; ошибка появилась в 1.9.8. 1543 1544 1545Изменения в nginx 1.9.8 08.12.2015 1546 1547 *) Добавление: поддержка pwritev(). 1548 1549 *) Добавление: директива include в блоке upstream. 1550 1551 *) Добавление: модуль ngx_http_slice_module. 1552 1553 *) Исправление: при использовании LibreSSL в рабочем процессе мог 1554 произойти segmentation fault; ошибка появилась в 1.9.6. 1555 1556 *) Исправление: nginx мог не собираться на OS X. 1557 1558 1559Изменения в nginx 1.9.7 17.11.2015 1560 1561 *) Добавление: параметр nohostname логгирования в syslog. 1562 1563 *) Добавление: директива proxy_cache_convert_head. 1564 1565 *) Добавление: переменная $realip_remote_addr в модуле 1566 ngx_http_realip_module. 1567 1568 *) Исправление: директива expires могла не срабатывать при использовании 1569 переменных. 1570 1571 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 1572 произойти segmentation fault; ошибка появилась в 1.9.6. 1573 1574 *) Исправление: если nginx был собран с модулем ngx_http_v2_module, 1575 протокол HTTP/2 мог быть использован клиентом, даже если не был 1576 указан параметр http2 директивы listen. 1577 1578 *) Исправление: в модуле ngx_http_v2_module. 1579 1580 1581Изменения в nginx 1.9.6 27.10.2015 1582 1583 *) Исправление: при использовании HTTP/2 в рабочем процессе мог 1584 произойти segmentation fault. 1585 Спасибо Piotr Sikora и Denis Andzakovic. 1586 1587 *) Исправление: при использовании HTTP/2 переменная $server_protocol 1588 была пустой. 1589 1590 *) Исправление: SSL-соединения к бэкендам в модуле stream могли 1591 неожиданно завершаться по таймауту. 1592 1593 *) Исправление: при использовании различных настроек ssl_session_cache в 1594 разных виртуальных серверах в рабочем процессе мог произойти 1595 segmentation fault. 1596 1597 *) Исправление: nginx/Windows не собирался с MinGW gcc; ошибка появилась 1598 в 1.9.4. 1599 Спасибо Kouhei Sutou. 1600 1601 *) Исправление: при использовании директивы timer_resolution на Windows 1602 время не обновлялось. 1603 1604 *) Незначительные исправления и улучшения. 1605 Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora. 1606 1607 1608Изменения в nginx 1.9.5 22.09.2015 1609 1610 *) Добавление: модуль ngx_http_v2_module (заменяет модуль 1611 ngx_http_spdy_module). 1612 Спасибо Dropbox и Automattic за спонсирование разработки. 1613 1614 *) Изменение: теперь по умолчанию директива output_buffers использует 1615 два буфера. 1616 1617 *) Изменение: теперь nginx ограничивает максимальную вложенность 1618 подзапросов, а не количество одновременных подзапросов. 1619 1620 *) Изменение: теперь при возврате ответов из кэша nginx проверяет ключ 1621 полностью. 1622 Спасибо Геннадию Махомеду и Сергею Брестеру. 1623 1624 *) Исправление: при использовании кэша в логах могли появляться 1625 сообщения "header already sent"; ошибка появилась в 1.7.5. 1626 1627 *) Исправление: при использовании CephFS и директивы timer_resolution на 1628 Linux в логах могли появляться сообщения "writev() failed (4: 1629 Interrupted system call)". 1630 1631 *) Исправление: в обработке ошибок конфигурации. 1632 Спасибо Markus Linnala. 1633 1634 *) Исправление: при использовании директивы sub_filter на уровне http в 1635 рабочем процессе происходил segmentation fault; ошибка появилась в 1636 1.9.4. 1637 1638 1639Изменения в nginx 1.9.4 18.08.2015 1640 1641 *) Изменение: директивы proxy_downstream_buffer и proxy_upstream_buffer 1642 в модуле stream заменены директивой proxy_buffer_size. 1643 1644 *) Добавление: директива tcp_nodelay в модуле stream. 1645 1646 *) Добавление: теперь можно указать несколько директив sub_filter 1647 одновременно. 1648 1649 *) Добавление: директива sub_filter поддерживает переменные в строке 1650 поиска. 1651 1652 *) Изменение: тестирование конфигурации могло не работать под Linux 1653 OpenVZ. 1654 Спасибо Геннадию Махомеду. 1655 1656 *) Исправление: после переконфигурации старые рабочие процессы могли 1657 сильно нагружать процессор при больших значениях worker_connections. 1658 1659 *) Исправление: при совместном использовании директив try_files и alias 1660 внутри location'а, заданного регулярным выражением, в рабочем 1661 процессе мог произойти segmentation fault; ошибка появилась в 1.7.1. 1662 1663 *) Исправление: директива try_files внутри вложенного location'а, 1664 заданного регулярным выражением, работала неправильно, если во 1665 внешнем location'е использовалась директива alias. 1666 1667 *) Исправление: в обработке ошибок при построении хэш-таблиц. 1668 1669 *) Исправление: nginx не собирался с Visual Studio 2015. 1670 1671 1672Изменения в nginx 1.9.3 14.07.2015 1673 1674 *) Изменение: дублирующиеся блоки http, mail и stream теперь запрещены. 1675 1676 *) Добавление: ограничение количества соединений в модуле stream. 1677 1678 *) Добавление: ограничение скорости в модуле stream. 1679 1680 *) Исправление: директива zone в блоке upstream не работала на Windows. 1681 1682 *) Исправление: совместимость с LibreSSL в модуле stream. 1683 Спасибо Piotr Sikora. 1684 1685 *) Исправление: в параметре --builddir в configure. 1686 Спасибо Piotr Sikora. 1687 1688 *) Исправление: директива ssl_stapling_file не работала; ошибка 1689 появилась в 1.9.2. 1690 Спасибо Faidon Liambotis и Brandon Black. 1691 1692 *) Исправление: при использовании директивы ssl_stapling в рабочем 1693 процессе мог произойти segmentation fault; ошибка появилась в 1.9.2. 1694 Спасибо Matthew Baldwin. 1695 1696 1697Изменения в nginx 1.9.2 16.06.2015 1698 1699 *) Добавление: параметр backlog директивы listen в почтовом 1700 прокси-сервере и модуле stream. 1701 1702 *) Добавление: директивы allow и deny в модуле stream. 1703 1704 *) Добавление: директива proxy_bind в модуле stream. 1705 1706 *) Добавление: директива proxy_protocol в модуле stream. 1707 1708 *) Добавление: ключ -T. 1709 1710 *) Добавление: параметр REQUEST_SCHEME добавлен в стандартные 1711 конфигурационные файлы fastcgi.conf, fastcgi_params, scgi_params и 1712 uwsgi_params. 1713 1714 *) Исправление: параметр reuseport директивы listen в модуле stream не 1715 работал. 1716 1717 *) Исправление: OCSP stapling в некоторых случаях мог вернуть устаревший 1718 OCSP-ответ. 1719 1720 1721Изменения в nginx 1.9.1 26.05.2015 1722 1723 *) Изменение: теперь протокол SSLv3 по умолчанию запрещён. 1724 1725 *) Изменение: некоторые давно устаревшие директивы больше не 1726 поддерживаются. 1727 1728 *) Добавление: параметр reuseport директивы listen. 1729 Спасибо Yingqi Lu из Intel и Sepherosa Ziehau. 1730 1731 *) Добавление: переменная $upstream_connect_time. 1732 1733 *) Исправление: в директиве hash на big-endian платформах. 1734 1735 *) Исправление: nginx мог не запускаться на некоторых старых версиях 1736 Linux; ошибка появилась в 1.7.11. 1737 1738 *) Исправление: в парсинге IP-адресов. 1739 Спасибо Сергею Половко. 1740 1741 1742Изменения в nginx 1.9.0 28.04.2015 1743 1744 *) Изменение: устаревшие методы обработки соединений aio и rtsig больше 1745 не поддерживаются. 1746 1747 *) Добавление: директива zone в блоке upstream. 1748 1749 *) Добавление: модуль stream. 1750 1751 *) Добавление: поддержка byte ranges для ответов модуля 1752 ngx_http_memcached_module. 1753 Спасибо Martin Mlynář. 1754 1755 *) Добавление: разделяемую память теперь можно использовать на версиях 1756 Windows с рандомизацией адресного пространства. 1757 Спасибо Сергею Брестеру. 1758 1759 *) Добавление: директиву error_log теперь можно использовать на уровнях 1760 mail и server в почтовом прокси-сервере. 1761 1762 *) Исправление: параметр proxy_protocol директивы listen не работал, 1763 если не был указан в первой директиве listen для данного 1764 listen-сокета. 1765 1766 1767Изменения в nginx 1.7.12 07.04.2015 1768 1769 *) Добавление: теперь директива tcp_nodelay работает для SSL-соединений 1770 с бэкендами. 1771 1772 *) Добавление: теперь потоки могут использоваться для чтения заголовков 1773 файлов в кэше. 1774 1775 *) Исправление: в директиве proxy_request_buffering. 1776 1777 *) Исправление: при использовании потоков на Linux в рабочем процессе 1778 мог произойти segmentation fault. 1779 1780 *) Исправление: в обработке ошибок при использовании директивы 1781 ssl_stapling. 1782 Спасибо Filipe da Silva. 1783 1784 *) Исправление: в модуле ngx_http_spdy_module. 1785 1786 1787Изменения в nginx 1.7.11 24.03.2015 1788 1789 *) Изменение: параметр sendfile директивы aio более не нужен; теперь 1790 nginx автоматически использует AIO для подгрузки данных для sendfile, 1791 если одновременно используются директивы aio и sendfile. 1792 1793 *) Добавление: экспериментальная поддержка потоков. 1794 1795 *) Добавление: директивы proxy_request_buffering, 1796 fastcgi_request_buffering, scgi_request_buffering и 1797 uwsgi_request_buffering. 1798 1799 *) Добавление: экспериментальное API для обработки тела запроса. 1800 1801 *) Добавление: проверка клиентских SSL-сертификатов в почтовом 1802 прокси-сервере. 1803 Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva. 1804 1805 *) Добавление: уменьшение времени запуска при использовании директивы 1806 "hash ... consistent" в блоке upstream. 1807 Спасибо Wai Keen Woon. 1808 1809 *) Добавление: отладочное логгирование в кольцевой буфер в памяти. 1810 1811 *) Исправление: в обработке хэш-таблиц. 1812 Спасибо Chris West. 1813 1814 *) Исправление: в директиве proxy_cache_revalidate. 1815 1816 *) Исправление: SSL-соединения могли зависать, если использовался 1817 отложенный accept или параметр proxy_protocol директивы listen. 1818 Спасибо James Hamlin. 1819 1820 *) Исправление: переменная $upstream_response_time могла содержать 1821 неверное значение при использовании директивы image_filter. 1822 1823 *) Исправление: в обработке целочисленных переполнений. 1824 Спасибо Régis Leroy. 1825 1826 *) Исправление: при использовании LibreSSL было невозможно включить 1827 поддержку SSLv3. 1828 1829 *) Исправление: при использовании LibreSSL в логах появлялись сообщения 1830 "ignoring stale global SSL error ... called a function you should not 1831 call". 1832 1833 *) Исправление: сертификаты, указанные в директивах 1834 ssl_client_certificate и ssl_trusted_certificate, использовались для 1835 автоматического построения цепочек сертификатов. 1836 1837 1838Изменения в nginx 1.7.10 10.02.2015 1839 1840 *) Добавление: параметр use_temp_path директив proxy_cache_path, 1841 fastcgi_cache_path, scgi_cache_path и uwsgi_cache_path. 1842 1843 *) Добавление: переменная $upstream_header_time. 1844 1845 *) Изменение: теперь при переполнении диска nginx пытается писать 1846 error_log'и только раз в секунду. 1847 1848 *) Исправление: директива try_files при тестировании каталогов не 1849 игнорировала обычные файлы. 1850 Спасибо Damien Tournoud. 1851 1852 *) Исправление: при использовании директивы sendfile на OS X возникали 1853 ошибки "sendfile() failed"; ошибка появилась в nginx 1.7.8. 1854 1855 *) Исправление: в лог могли писаться сообщения "sem_post() failed". 1856 1857 *) Исправление: nginx не собирался с musl libc. 1858 Спасибо James Taylor. 1859 1860 *) Исправление: nginx не собирался на Tru64 UNIX. 1861 Спасибо Goetz T. Fischer. 1862 1863 1864Изменения в nginx 1.7.9 23.12.2014 1865 1866 *) Добавление: директивы proxy_cache, fastcgi_cache, scgi_cache и 1867 uwsgi_cache поддерживают переменные. 1868 1869 *) Добавление: директива expires поддерживает переменные. 1870 1871 *) Добавление: возможность загрузки секретных ключей с аппаратных 1872 устройств с помощью OpenSSL engines. 1873 Спасибо Дмитрию Пичулину. 1874 1875 *) Добавление: директива autoindex_format. 1876 1877 *) Исправление: ревалидация элементов кэша теперь используется только 1878 для ответов с кодами 200 и 206. 1879 Спасибо Piotr Sikora. 1880 1881 *) Исправление: строка "TE" заголовка запроса клиента передавалась на 1882 бэкенд при проксировании. 1883 1884 *) Исправление: директивы proxy_pass, fastcgi_pass, scgi_pass и 1885 uwsgi_pass могли неправильно работать внутри блоков if и 1886 limit_except. 1887 1888 *) Исправление: директива proxy_store с параметром "on" игнорировалась, 1889 если на предыдущем уровне использовалась директива proxy_store с явно 1890 заданным путём к файлам. 1891 1892 *) Исправление: nginx не собирался с BoringSSL. 1893 Спасибо Lukas Tribus. 1894 1895 1896Изменения в nginx 1.7.8 02.12.2014 1897 1898 *) Изменение: теперь строки "If-Modified-Since", "If-Range" и им 1899 подобные в заголовке запроса клиента передаются бэкенду при 1900 включённом кэшировании, если nginx заранее знает, что не будет 1901 кэшировать ответ (например, при использовании proxy_cache_min_uses). 1902 1903 *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx 1904 отправляет запрос на бэкенд без кэширования; новые директивы 1905 proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и 1906 uwsgi_cache_lock_age позволяют указать, через какое время блокировка 1907 будет принудительно снята и будет сделана ещё одна попытка 1908 закэшировать ответ. 1909 1910 *) Изменение: директива log_format теперь может использоваться только на 1911 уровне http. 1912 1913 *) Добавление: директивы proxy_ssl_certificate, 1914 proxy_ssl_certificate_key, proxy_ssl_password_file, 1915 uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и 1916 uwsgi_ssl_password_file. 1917 Спасибо Piotr Sikora. 1918 1919 *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в 1920 именованный location. 1921 Спасибо Toshikuni Fukaya. 1922 1923 *) Добавление: теперь директива tcp_nodelay работает для 1924 SPDY-соединений. 1925 1926 *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim. 1927 Спасибо Peter Wu. 1928 1929 *) Исправление: nginx игнорировал значение "s-maxage" в строке 1930 "Cache-Control" в заголовке ответа бэкенда. 1931 Спасибо Piotr Sikora. 1932 1933 *) Исправление: в модуле ngx_http_spdy_module. 1934 Спасибо Piotr Sikora. 1935 1936 *) Исправление: в директиве ssl_password_file при использовании OpenSSL 1937 0.9.8zc, 1.0.0o, 1.0.1j. 1938 1939 *) Исправление: при использовании директивы post_action в лог писались 1940 сообщения "header already sent"; ошибка появилась в nginx 1.5.4. 1941 1942 *) Исправление: при использовании директивы "postpone_output 0" с 1943 SSI-подзапросами в лог могли писаться сообщения "the http output 1944 chain is empty". 1945 1946 *) Исправление: в директиве proxy_cache_lock при использовании 1947 SSI-подзапросов. 1948 Спасибо Yichun Zhang. 1949 1950 1951Изменения в nginx 1.7.7 28.10.2014 1952 1953 *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в 1954 заголовке ответа бэкенда. 1955 1956 *) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges, 1957 scgi_force_ranges и uwsgi_force_ranges. 1958 1959 *) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate, 1960 scgi_limit_rate и uwsgi_limit_rate. 1961 1962 *) Добавление: параметр Vary директив proxy_ignore_headers, 1963 fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers. 1964 1965 *) Исправление: последняя часть ответа, полученного от бэкенда при 1966 небуферизированном проксировании, могла не отправляться клиенту, если 1967 использовались директивы gzip или gunzip. 1968 1969 *) Исправление: в директиве proxy_cache_revalidate. 1970 Спасибо Piotr Sikora. 1971 1972 *) Исправление: в обработке ошибок. 1973 Спасибо Yichun Zhang и Даниилу Бондареву. 1974 1975 *) Исправление: в директивах proxy_next_upstream_tries и 1976 proxy_next_upstream_timeout. 1977 Спасибо Feng Gu. 1978 1979 *) Исправление: nginx/Windows не собирался с MinGW-w64 gcc. 1980 Спасибо Kouhei Sutou. 1981 1982 1983Изменения в nginx 1.7.6 30.09.2014 1984 1985 *) Изменение: устаревшая директива limit_zone больше не поддерживается. 1986 1987 *) Добавление: в директивах limit_conn_zone и limit_req_zone теперь 1988 можно использовать комбинации нескольких переменных. 1989 1990 *) Исправление: при повторной отправке FastCGI-запроса на бэкенд тело 1991 запроса могло передаваться неправильно. 1992 1993 *) Исправление: в логгировании в syslog. 1994 1995 1996Изменения в nginx 1.7.5 16.09.2014 1997 1998 *) Безопасность: при использовании общего для нескольких блоков server 1999 разделяемого кэша SSL-сессий или общего ключа для шифрования TLS 2000 session tickets было возможно повторно использовать SSL-сессию в 2001 контексте другого блока server (CVE-2014-3616). 2002 Спасибо Antoine Delignat-Lavaud. 2003 2004 *) Изменение: директиву stub_status теперь можно указывать без 2005 параметров. 2006 2007 *) Добавление: параметр always директивы add_header. 2008 2009 *) Добавление: директивы proxy_next_upstream_tries, 2010 proxy_next_upstream_timeout, fastcgi_next_upstream_tries, 2011 fastcgi_next_upstream_timeout, memcached_next_upstream_tries, 2012 memcached_next_upstream_timeout, scgi_next_upstream_tries, 2013 scgi_next_upstream_timeout, uwsgi_next_upstream_tries и 2014 uwsgi_next_upstream_timeout. 2015 2016 *) Исправление: в параметре if директивы access_log. 2017 2018 *) Исправление: в модуле ngx_http_perl_module. 2019 Спасибо Piotr Sikora. 2020 2021 *) Исправление: директива listen почтового прокси-сервера не позволяла 2022 указать более двух параметров. 2023 2024 *) Исправление: директива sub_filter не работала с заменяемой строкой из 2025 одного символа. 2026 2027 *) Исправление: запросы могли зависать, если использовался resolver и в 2028 процессе обращения к DNS-серверу происходил таймаут. 2029 2030 *) Исправление: в модуле ngx_http_spdy_module при использовании 2031 совместно с AIO. 2032 2033 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2034 если с помощью директивы set изменялись переменные "$http_...", 2035 "$sent_http_..." или "$upstream_http_...". 2036 2037 *) Исправление: в обработке ошибок выделения памяти. 2038 Спасибо Markus Linnala и Feng Gu. 2039 2040 2041Изменения в nginx 1.7.4 05.08.2014 2042 2043 *) Безопасность: pipelined-команды не отбрасывались после команды 2044 STARTTLS в SMTP прокси-сервере (CVE-2014-3556); ошибка появилась в 2045 1.5.6. 2046 Спасибо Chris Boulton. 2047 2048 *) Изменение: экранирование символов в URI теперь использует 2049 шестнадцатеричные цифры в верхнем регистре. 2050 Спасибо Piotr Sikora. 2051 2052 *) Добавление: теперь nginx можно собрать с BoringSSL и LibreSSL. 2053 Спасибо Piotr Sikora. 2054 2055 *) Исправление: запросы могли зависать, если использовался resolver и 2056 DNS-сервер возвращал некорректный ответ; ошибка появилась в 1.5.8. 2057 2058 *) Исправление: в модуле ngx_http_spdy_module. 2059 Спасибо Piotr Sikora. 2060 2061 *) Исправление: переменная $uri могла содержать мусор при возврате 2062 ошибок с кодом 400. 2063 Спасибо Сергею Боброву. 2064 2065 *) Исправление: в обработке ошибок в директиве proxy_store и в модуле 2066 ngx_http_dav_module. 2067 Спасибо Feng Gu. 2068 2069 *) Исправление: при логгировании ошибок в syslog мог происходить 2070 segmentation fault; ошибка появилась в 1.7.1. 2071 2072 *) Исправление: переменные $geoip_latitude, $geoip_longitude, 2073 $geoip_dma_code и $geoip_area_code могли не работать. 2074 Спасибо Yichun Zhang. 2075 2076 *) Исправление: в обработке ошибок выделения памяти. 2077 Спасибо Tatsuhiko Kubo и Piotr Sikora. 2078 2079 2080Изменения в nginx 1.7.3 08.07.2014 2081 2082 *) Добавление: weak entity tags теперь не удаляются при изменениях 2083 ответа, а strong entity tags преобразуются в weak. 2084 2085 *) Добавление: ревалидация элементов кэша теперь, если это возможно, 2086 использует заголовок If-None-Match. 2087 2088 *) Добавление: директива ssl_password_file. 2089 2090 *) Исправление: при возврате ответа из кэша заголовок запроса 2091 If-None-Match игнорировался, если в ответе не было заголовка 2092 Last-Modified. 2093 2094 *) Исправление: сообщения "peer closed connection in SSL handshake" при 2095 соединении с бэкендами логгировались на уровне info вместо error. 2096 2097 *) Исправление: в модуле ngx_http_dav_module в nginx/Windows. 2098 2099 *) Исправление: SPDY-соединения могли неожиданно закрываться, если 2100 использовалось кэширование. 2101 2102 2103Изменения в nginx 1.7.2 17.06.2014 2104 2105 *) Добавление: директива hash в блоке upstream. 2106 2107 *) Добавление: дефрагментация свободных блоков разделяемой памяти. 2108 Спасибо Wandenberg Peixoto и Yichun Zhang. 2109 2110 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2111 если использовалось значение access_log по умолчанию; ошибка 2112 появилась в 1.7.0. 2113 Спасибо Piotr Sikora. 2114 2115 *) Исправление: завершающий слэш ошибочно удалялся из последнего 2116 параметра директивы try_files. 2117 2118 *) Исправление: nginx мог не собираться на OS X. 2119 2120 *) Исправление: в модуле ngx_http_spdy_module. 2121 2122 2123Изменения в nginx 1.7.1 27.05.2014 2124 2125 *) Добавление: переменные "$upstream_cookie_...". 2126 2127 *) Добавление: переменная $ssl_client_fingerprint. 2128 2129 *) Добавление: директивы error_log и access_log теперь поддерживают 2130 логгирование в syslog. 2131 2132 *) Добавление: почтовый прокси-сервер теперь логгирует порт клиента при 2133 соединении. 2134 2135 *) Исправление: утечки памяти при использовании директивы 2136 "ssl_stapling". 2137 Спасибо Filipe da Silva. 2138 2139 *) Исправление: директива alias внутри location'а, заданного регулярным 2140 выражением, работала неправильно, если использовались директивы if 2141 или limit_except. 2142 2143 *) Исправление: директива charset не ставила кодировку для сжатых 2144 ответов бэкендов. 2145 2146 *) Исправление: директива proxy_pass без URI могла использовать 2147 оригинальный запрос после установки переменной $args. 2148 Спасибо Yichun Zhang. 2149 2150 *) Исправление: в работе параметра none директивы smtp_auth; ошибка 2151 появилась в 1.5.6. 2152 Спасибо Святославу Никольскому. 2153 2154 *) Исправление: при совместном использовании sub_filter и SSI ответы 2155 могли передаваться неверно. 2156 2157 *) Исправление: nginx не собирался с параметром --with-file-aio на 2158 Linux/aarch64. 2159 2160 2161Изменения в nginx 1.7.0 24.04.2014 2162 2163 *) Добавление: проверка SSL-сертификатов бэкендов. 2164 2165 *) Добавление: поддержка SNI при работе с бэкендами по SSL. 2166 2167 *) Добавление: переменная $ssl_server_name. 2168 2169 *) Добавление: параметр if директивы access_log. 2170 2171 2172Изменения в nginx 1.5.13 08.04.2014 2173 2174 *) Изменение: улучшена обработка хэш-таблиц; в директивах 2175 variables_hash_max_size и types_hash_bucket_size значения по 2176 умолчанию изменены на 1024 и 64 соответственно. 2177 2178 *) Добавление: модуль ngx_http_mp4_module теперь понимает аргумент end. 2179 2180 *) Добавление: поддержка byte ranges модулем ngx_http_mp4_module и при 2181 сохранении ответов в кэш. 2182 2183 *) Исправление: теперь nginx не пишет в лог сообщения "ngx_slab_alloc() 2184 failed: no memory" при использовании разделяемой памяти в 2185 ssl_session_cache и в модуле ngx_http_limit_req_module. 2186 2187 *) Исправление: директива underscores_in_headers не разрешала 2188 подчёркивание в первом символе заголовка. 2189 Спасибо Piotr Sikora. 2190 2191 *) Исправление: cache manager мог нагружать процессор при выходе в 2192 nginx/Windows. 2193 2194 *) Исправление: при использовании ssl_session_cache с параметром shared 2195 рабочий процесс nginx/Windows завершался аварийно. 2196 2197 *) Исправление: в модуле ngx_http_spdy_module. 2198 2199 2200Изменения в nginx 1.5.12 18.03.2014 2201 2202 *) Безопасность: при обработке специально созданного запроса модулем 2203 ngx_http_spdy_module могло происходить переполнение буфера в рабочем 2204 процессе, что потенциально могло приводить к выполнению произвольного 2205 кода (CVE-2014-0133). 2206 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky, 2207 Buenos Aires, Argentina. 2208 2209 *) Добавление: параметр proxy_protocol в директивах listen и 2210 real_ip_header, переменная $proxy_protocol_addr. 2211 2212 *) Исправление: в директиве fastcgi_next_upstream. 2213 Спасибо Lucas Molas. 2214 2215 2216Изменения в nginx 1.5.11 04.03.2014 2217 2218 *) Безопасность: при обработке специально созданного запроса модулем 2219 ngx_http_spdy_module на 32-битных платформах могла повреждаться 2220 память рабочего процесса, что потенциально могло приводить к 2221 выполнению произвольного кода (CVE-2014-0088); ошибка появилась в 2222 1.5.10. 2223 Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel Sadosky, 2224 Buenos Aires, Argentina. 2225 2226 *) Добавление: переменная $ssl_session_reused. 2227 2228 *) Исправление: директива client_max_body_size могла не работать при 2229 чтении тела запроса с использованием chunked transfer encoding; 2230 ошибка появилась в 1.3.9. 2231 Спасибо Lucas Molas. 2232 2233 *) Исправление: при проксировании WebSocket-соединений в рабочем 2234 процессе мог произойти segmentation fault. 2235 2236 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2237 если использовался модуль ngx_http_spdy_module на 32-битных 2238 платформах; ошибка появилась в 1.5.10. 2239 2240 *) Исправление: значение переменной $upstream_status могло быть 2241 неверным, если использовались директивы proxy_cache_use_stale или 2242 proxy_cache_revalidate. 2243 Спасибо Piotr Sikora. 2244 2245 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2246 если ошибки с кодом 400 с помощью директивы error_page 2247 перенаправлялись в именованный location. 2248 2249 *) Исправление: nginx/Windows не собирался с Visual Studio 2013. 2250 2251 2252Изменения в nginx 1.5.10 04.02.2014 2253 2254 *) Добавление: модуль ngx_http_spdy_module теперь использует протокол 2255 SPDY 3.1. 2256 Спасибо Automattic и MaxCDN за спонсирование разработки. 2257 2258 *) Добавление: модуль ngx_http_mp4_module теперь пропускает дорожки, 2259 имеющие меньшую длину, чем запрошенная перемотка. 2260 2261 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2262 если переменная $ssl_session_id использовалась при логгировании; 2263 ошибка появилась в 1.5.9. 2264 2265 *) Исправление: переменные $date_local и $date_gmt использовали неверный 2266 формат вне модуля ngx_http_ssi_filter_module. 2267 2268 *) Исправление: клиентские соединения могли сразу закрываться, если 2269 использовался отложенный accept; ошибка появилась в 1.3.15. 2270 2271 *) Исправление: сообщения "getsockopt(TCP_FASTOPEN) ... failed" 2272 записывались в лог в процессе обновления исполняемого файла на Linux; 2273 ошибка появилась в 1.5.8. 2274 Спасибо Piotr Sikora. 2275 2276 2277Изменения в nginx 1.5.9 22.01.2014 2278 2279 *) Изменение: теперь в заголовке X-Accel-Redirect nginx ожидает 2280 закодированный URI. 2281 2282 *) Добавление: директива ssl_buffer_size. 2283 2284 *) Добавление: директиву limit_rate теперь можно использовать для 2285 ограничения скорости передачи ответов клиенту в SPDY-соединениях. 2286 2287 *) Добавление: директива spdy_chunk_size. 2288 2289 *) Добавление: директива ssl_session_tickets. 2290 Спасибо Dirkjan Bussink. 2291 2292 *) Исправление: переменная $ssl_session_id содержала всю сессию в 2293 сериализованном виде вместо её идентификатора. 2294 Спасибо Ivan Ristić. 2295 2296 *) Исправление: nginx неправильно обрабатывал закодированный символ "?" 2297 в команде SSI include. 2298 2299 *) Исправление: модуль ngx_http_dav_module не раскодировал целевой URI 2300 при обработке методов COPY и MOVE. 2301 2302 *) Исправление: resolver не понимал доменные имена с точкой в конце. 2303 Спасибо Yichun Zhang. 2304 2305 *) Исправление: при проксировании в логах могли появляться сообщения 2306 "zero size buf in output"; ошибка появилась в 1.3.9. 2307 2308 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2309 если использовался модуль ngx_http_spdy_module. 2310 2311 *) Исправление: при использовании методов обработки соединений select, 2312 poll и /dev/poll проксируемые WebSocket-соединения могли зависать 2313 сразу после открытия. 2314 2315 *) Исправление: директива xclient почтового прокси-сервера некорректно 2316 передавала IPv6-адреса. 2317 2318 2319Изменения в nginx 1.5.8 17.12.2013 2320 2321 *) Добавление: теперь resolver поддерживает IPv6. 2322 2323 *) Добавление: директива listen поддерживает параметр fastopen. 2324 Спасибо Mathew Rodley. 2325 2326 *) Добавление: поддержка SSL в модуле ngx_http_uwsgi_module. 2327 Спасибо Roberto De Ioris. 2328 2329 *) Добавление: скрипты подсветки синтаксиса для vim добавлены в contrib. 2330 Спасибо Evan Miller. 2331 2332 *) Исправление: при чтении тела запроса с использованием chunked 2333 transfer encoding по SSL-соединению мог произойти таймаут. 2334 2335 *) Исправление: директива master_process работала неправильно в 2336 nginx/Windows. 2337 2338 *) Исправление: параметр setfib директивы listen мог не работать. 2339 2340 *) Исправление: в модуле ngx_http_spdy_module. 2341 2342 2343Изменения в nginx 1.5.7 19.11.2013 2344 2345 *) Безопасность: символ, следующий за незакодированным пробелом в строке 2346 запроса, обрабатывался неправильно (CVE-2013-4547); ошибка появилась 2347 в 0.8.41. 2348 Спасибо Ivan Fratric из Google Security Team. 2349 2350 *) Изменение: уровень логгирования ошибок auth_basic об отсутствии 2351 пароля понижен с уровня error до info. 2352 2353 *) Добавление: директивы proxy_cache_revalidate, 2354 fastcgi_cache_revalidate, scgi_cache_revalidate и 2355 uwsgi_cache_revalidate. 2356 2357 *) Добавление: директива ssl_session_ticket_key. 2358 Спасибо Piotr Sikora. 2359 2360 *) Исправление: директива "add_header Cache-Control ''" добавляла строку 2361 заголовка ответа "Cache-Control" с пустым значением. 2362 2363 *) Исправление: директива "satisfy any" могла вернуть ошибку 403 вместо 2364 401 при использовании директив auth_request и auth_basic. 2365 Спасибо Jan Marc Hoffmann. 2366 2367 *) Исправление: параметры accept_filter и deferred директивы listen 2368 игнорировались для listen-сокетов, создаваемых в процессе обновления 2369 исполняемого файла. 2370 Спасибо Piotr Sikora. 2371 2372 *) Исправление: часть данных, полученных от бэкенда при 2373 небуферизированном проксировании, могла не отправляться клиенту 2374 сразу, если использовались директивы gzip или gunzip. 2375 Спасибо Yichun Zhang. 2376 2377 *) Исправление: в обработке ошибок в модуле 2378 ngx_http_gunzip_filter_module. 2379 2380 *) Исправление: ответы могли зависать, если использовался модуль 2381 ngx_http_spdy_module и директива auth_request. 2382 2383 *) Исправление: утечки памяти в nginx/Windows. 2384 2385 2386Изменения в nginx 1.5.6 01.10.2013 2387 2388 *) Добавление: директива fastcgi_buffering. 2389 2390 *) Добавление: директивы proxy_ssl_protocols и proxy_ssl_ciphers. 2391 Спасибо Piotr Sikora. 2392 2393 *) Добавление: оптимизация SSL handshake при использовании длинных 2394 цепочек сертификатов. 2395 2396 *) Добавление: почтовый прокси-сервер поддерживает SMTP pipelining. 2397 2398 *) Исправление: в модуле ngx_http_auth_basic_module при использовании 2399 метода шифрования паролей "$apr1$". 2400 Спасибо Markus Linnala. 2401 2402 *) Исправление: на MacOSX, Cygwin и nginx/Windows для обработки запроса 2403 мог использоваться неверный location, если для задания location'ов 2404 использовались символы разных регистров. 2405 2406 *) Исправление: автоматическое перенаправление с добавлением 2407 завершающего слэша для проксированных location'ов могло не работать. 2408 2409 *) Исправление: в почтовом прокси-сервере. 2410 2411 *) Исправление: в модуле ngx_http_spdy_module. 2412 2413 2414Изменения в nginx 1.5.5 17.09.2013 2415 2416 *) Изменение: теперь nginx по умолчанию использует HTTP/1.0, если точно 2417 определить протокол не удалось. 2418 2419 *) Добавление: директива disable_symlinks теперь использует O_PATH на 2420 Linux. 2421 2422 *) Добавление: для определения того, что клиент закрыл соединение, при 2423 использовании метода epoll теперь используются события EPOLLRDHUP. 2424 2425 *) Исправление: в директиве valid_referers при использовании параметра 2426 server_names. 2427 2428 *) Исправление: переменная $request_time не работала в nginx/Windows. 2429 2430 *) Исправление: в директиве image_filter. 2431 Спасибо Lanshun Zhou. 2432 2433 *) Исправление: совместимость с OpenSSL 1.0.1f. 2434 Спасибо Piotr Sikora. 2435 2436 2437Изменения в nginx 1.5.4 27.08.2013 2438 2439 *) Изменение: MIME-тип для расширения js изменён на 2440 "application/javascript"; значение по умолчанию директивы 2441 charset_types изменено соответственно. 2442 2443 *) Изменение: теперь директива image_filter с параметром size возвращает 2444 ответ с MIME-типом "application/json". 2445 2446 *) Добавление: модуль ngx_http_auth_request_module. 2447 2448 *) Исправление: на старте или во время переконфигурации мог произойти 2449 segmentation fault, если использовалась директива try_files с пустым 2450 параметром. 2451 2452 *) Исправление: утечки памяти при использовании в директивах root и 2453 auth_basic_user_file относительных путей, заданных с помощью 2454 переменных. 2455 2456 *) Исправление: директива valid_referers неправильно выполняла 2457 регулярные выражения, если заголовок Referer начинался с "https://". 2458 Спасибо Liangbin Li. 2459 2460 *) Исправление: ответы могли зависать, если использовались подзапросы и 2461 при обработке подзапроса происходила ошибка во время SSL handshake с 2462 бэкендом. 2463 Спасибо Aviram Cohen. 2464 2465 *) Исправление: в модуле ngx_http_autoindex_module. 2466 2467 *) Исправление: в модуле ngx_http_spdy_module. 2468 2469 2470Изменения в nginx 1.5.3 30.07.2013 2471 2472 *) Изменение во внутреннем API: теперь при небуферизированной работе с 2473 бэкендами u->length по умолчанию устанавливается в -1. 2474 2475 *) Изменение: теперь при получении неполного ответа от бэкенда nginx 2476 отправляет полученную часть ответа, после чего закрывает соединение с 2477 клиентом. 2478 2479 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2480 если использовался модуль ngx_http_spdy_module и директива 2481 client_body_in_file_only. 2482 2483 *) Исправление: параметр so_keepalive директивы listen мог работать 2484 некорректно на DragonFlyBSD. 2485 Спасибо Sepherosa Ziehau. 2486 2487 *) Исправление: в модуле ngx_http_xslt_filter_module. 2488 2489 *) Исправление: в модуле ngx_http_sub_filter_module. 2490 2491 2492Изменения в nginx 1.5.2 02.07.2013 2493 2494 *) Добавление: теперь можно использовать несколько директив error_log. 2495 2496 *) Исправление: метод $r->header_in() встроенного перла не возвращал 2497 значения строк "Cookie" и "X-Forwarded-For" из заголовка запроса; 2498 ошибка появилась в 1.3.14. 2499 2500 *) Исправление: в модуле ngx_http_spdy_module. 2501 Спасибо Jim Radford. 2502 2503 *) Исправление: nginx не собирался на Linux при использовании x32 ABI. 2504 Спасибо Сергею Иванцову. 2505 2506 2507Изменения в nginx 1.5.1 04.06.2013 2508 2509 *) Добавление: директивы ssi_last_modified, sub_filter_last_modified и 2510 xslt_last_modified. 2511 Спасибо Алексею Колпакову. 2512 2513 *) Добавление: параметр http_403 в директивах proxy_next_upstream, 2514 fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream. 2515 2516 *) Добавление: директивы allow и deny теперь поддерживают unix domain 2517 сокеты. 2518 2519 *) Исправление: nginx не собирался с модулем ngx_mail_ssl_module, но без 2520 модуля ngx_http_ssl_module; ошибка появилась в 1.3.14. 2521 2522 *) Исправление: в директиве proxy_set_body. 2523 Спасибо Lanshun Zhou. 2524 2525 *) Исправление: в директиве lingering_time. 2526 Спасибо Lanshun Zhou. 2527 2528 *) Исправление: параметр fail_timeout директивы server в блоке upstream 2529 мог не работать, если использовался параметр max_fails; ошибка 2530 появилась в 1.3.0. 2531 2532 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2533 если использовалась директива ssl_stapling. 2534 Спасибо Piotr Sikora. 2535 2536 *) Исправление: в почтовом прокси-сервере. 2537 Спасибо Filipe Da Silva. 2538 2539 *) Исправление: nginx/Windows мог перестать принимать соединения, если 2540 использовалось несколько рабочих процессов. 2541 2542 2543Изменения в nginx 1.5.0 07.05.2013 2544 2545 *) Безопасность: при обработке специально созданного запроса мог 2546 перезаписываться стек рабочего процесса, что могло приводить к 2547 выполнению произвольного кода (CVE-2013-2028); ошибка появилась в 2548 1.3.9. 2549 Спасибо Greg MacManus, iSIGHT Partners Labs. 2550 2551 2552Изменения в nginx 1.4.0 24.04.2013 2553 2554 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если 2555 использовался параметр --with-openssl; ошибка появилась в 1.3.16. 2556 2557 *) Исправление: в работе с телом запроса из модуля ngx_http_perl_module; 2558 ошибка появилась в 1.3.9. 2559 2560 2561Изменения в nginx 1.3.16 16.04.2013 2562 2563 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2564 если использовались подзапросы; ошибка появилась в 1.3.9. 2565 2566 *) Исправление: директива tcp_nodelay вызывала ошибку при проксировании 2567 WebSocket-соединений в unix domain сокет. 2568 2569 *) Исправление: переменная $upstream_response_length возвращала значение 2570 "0", если не использовалась буферизация. 2571 Спасибо Piotr Sikora. 2572 2573 *) Исправление: в методах обработки соединений eventport и /dev/poll. 2574 2575 2576Изменения в nginx 1.3.15 26.03.2013 2577 2578 *) Изменение: открытие и закрытие соединения без отправки в нём 2579 каких-либо данных больше не записывается в access_log с кодом ошибки 2580 400. 2581 2582 *) Добавление: модуль ngx_http_spdy_module. 2583 Спасибо Automattic за спонсирование разработки. 2584 2585 *) Добавление: директивы limit_req_status и limit_conn_status. 2586 Спасибо Nick Marden. 2587 2588 *) Добавление: директива image_filter_interlace. 2589 Спасибо Ивану Боброву. 2590 2591 *) Добавление: переменная $connections_waiting в модуле 2592 ngx_http_stub_status_module. 2593 2594 *) Добавление: теперь почтовый прокси-сервер поддерживает IPv6-бэкенды. 2595 2596 *) Исправление: при повторной отправке запроса на бэкенд тело запроса 2597 могло передаваться неправильно; ошибка появилась в 1.3.9. 2598 Спасибо Piotr Sikora. 2599 2600 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в 2601 1.3.9. 2602 2603 *) Исправление: ответы могли зависать, если использовались подзапросы и 2604 при обработке подзапроса происходила DNS-ошибка. 2605 Спасибо Lanshun Zhou. 2606 2607 *) Исправление: в процедуре учёта использования бэкендов. 2608 2609 2610Изменения в nginx 1.3.14 05.03.2013 2611 2612 *) Добавление: переменные $connections_active, $connections_reading и 2613 $connections_writing в модуле ngx_http_stub_status_module. 2614 2615 *) Добавление: поддержка WebSocket-соединений в модулях 2616 ngx_http_uwsgi_module и ngx_http_scgi_module. 2617 2618 *) Исправление: в обработке виртуальных серверов при использовании SNI. 2619 2620 *) Исправление: при использовании директивы "ssl_session_cache shared" 2621 новые сессии могли не сохраняться, если заканчивалось место в 2622 разделяемой памяти. 2623 Спасибо Piotr Sikora. 2624 2625 *) Исправление: несколько заголовков X-Forwarded-For обрабатывались 2626 неправильно. 2627 Спасибо Neal Poole за спонсирование разработки. 2628 2629 *) Исправление: в модуле ngx_http_mp4_module. 2630 Спасибо Gernot Vormayr. 2631 2632 2633Изменения в nginx 1.3.13 19.02.2013 2634 2635 *) Изменение: теперь для сборки по умолчанию используется компилятор с 2636 именем "cc". 2637 2638 *) Добавление: поддержка проксирования WebSocket-соединений. 2639 Спасибо Apcera и CloudBees за спонсирование разработки. 2640 2641 *) Добавление: директива auth_basic_user_file поддерживает шифрование 2642 паролей методом "{SHA}". 2643 Спасибо Louis Opter. 2644 2645 2646Изменения в nginx 1.3.12 05.02.2013 2647 2648 *) Добавление: директивы proxy_bind, fastcgi_bind, memcached_bind, 2649 scgi_bind и uwsgi_bind поддерживают переменные. 2650 2651 *) Добавление: переменные $pipe, $request_length, $time_iso8601 и 2652 $time_local теперь можно использовать не только в директиве 2653 log_format. 2654 Спасибо Kiril Kalchev. 2655 2656 *) Добавление: поддержка IPv6 в модуле ngx_http_geoip_module. 2657 Спасибо Gregor Kališnik. 2658 2659 *) Исправление: директива proxy_method работала неверно, если была 2660 указана на уровне http. 2661 2662 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2663 если использовался resolver и метод poll. 2664 2665 *) Исправление: nginx мог нагружать процессор во время SSL handshake с 2666 бэкендом при использовании методов обработки соединений select, poll 2667 и /dev/poll. 2668 2669 *) Исправление: ошибка "[crit] SSL_write() failed (SSL:)". 2670 2671 *) Исправление: в директиве client_body_in_file_only; ошибка появилась в 2672 1.3.9. 2673 2674 *) Исправление: в директиве fastcgi_keep_conn. 2675 2676 2677Изменения в nginx 1.3.11 10.01.2013 2678 2679 *) Исправление: при записи в лог мог происходить segmentation fault; 2680 ошибка появилась в 1.3.10. 2681 2682 *) Исправление: директива proxy_pass не работала с IP-адресами без 2683 явного указания порта; ошибка появилась в 1.3.10. 2684 2685 *) Исправление: на старте или во время переконфигурации происходил 2686 segmentation fault, если директива keepalive была указана несколько 2687 раз в одном блоке upstream. 2688 2689 *) Исправление: параметр default директивы geo не определял значение по 2690 умолчанию для IPv6-адресов. 2691 2692 2693Изменения в nginx 1.3.10 25.12.2012 2694 2695 *) Изменение: для указанных в конфигурационном файле доменных имён 2696 теперь используются не только IPv4, но и IPv6 адреса. 2697 2698 *) Изменение: теперь при использовании директивы include с маской на 2699 Unix-системах включаемые файлы сортируются в алфавитном порядке. 2700 2701 *) Изменение: директива add_header добавляет строки в ответы с кодом 2702 201. 2703 2704 *) Добавление: директива geo теперь поддерживает IPv6 адреса в формате 2705 CIDR. 2706 2707 *) Добавление: параметры flush и gzip в директиве access_log. 2708 2709 *) Добавление: директива auth_basic поддерживает переменные. 2710 2711 *) Исправление: nginx в некоторых случаях не собирался с модулем 2712 ngx_http_perl_module. 2713 2714 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2715 если использовался модуль ngx_http_xslt_module. 2716 2717 *) Исправление: nginx мог не собираться на MacOSX. 2718 Спасибо Piotr Sikora. 2719 2720 *) Исправление: при использовании директивы limit_rate с большими 2721 значениями скорости на 32-битных системах ответ мог возвращаться не 2722 целиком. 2723 Спасибо Алексею Антропову. 2724 2725 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2726 если использовалась директива if. 2727 Спасибо Piotr Sikora. 2728 2729 *) Исправление: ответ "100 Continue" выдавался вместе с ответом "413 2730 Request Entity Too Large". 2731 2732 *) Исправление: директивы image_filter, image_filter_jpeg_quality и 2733 image_filter_sharpen могли наследоваться некорректно. 2734 Спасибо Ивану Боброву. 2735 2736 *) Исправление: при использовании директивы auth_basic под Linux могли 2737 возникать ошибки "crypt_r() failed". 2738 2739 *) Исправление: в обработке backup-серверов. 2740 Спасибо Thomas Chen. 2741 2742 *) Исправление: при проксировании HEAD-запросов мог возвращаться 2743 некорректный ответ, если использовалась директива gzip. 2744 2745 2746Изменения в nginx 1.3.9 27.11.2012 2747 2748 *) Добавление: поддержка chunked transfer encoding при получении тела 2749 запроса. 2750 2751 *) Добавление: переменные $request_time и $msec теперь можно 2752 использовать не только в директиве log_format. 2753 2754 *) Исправление: cache manager и cache loader могли не запускаться, если 2755 использовалось более 512 listen-сокетов. 2756 2757 *) Исправление: в модуле ngx_http_dav_module. 2758 2759 2760Изменения в nginx 1.3.8 30.10.2012 2761 2762 *) Добавление: параметр optional_no_ca директивы ssl_verify_client. 2763 Спасибо Михаилу Казанцеву и Eric O'Connor. 2764 2765 *) Добавление: переменные $bytes_sent, $connection и 2766 $connection_requests теперь можно использовать не только в директиве 2767 log_format. 2768 Спасибо Benjamin Grössing. 2769 2770 *) Добавление: параметр auto директивы worker_processes. 2771 2772 *) Исправление: сообщения "cache file ... has md5 collision". 2773 2774 *) Исправление: в модуле ngx_http_gunzip_filter_module. 2775 2776 *) Исправление: в директиве ssl_stapling. 2777 2778 2779Изменения в nginx 1.3.7 02.10.2012 2780 2781 *) Добавление: поддержка OCSP stapling. 2782 Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки. 2783 2784 *) Добавление: директива ssl_trusted_certificate. 2785 2786 *) Добавление: теперь resolver случайным образом меняет порядок 2787 возвращаемых закэшированных адресов. 2788 Спасибо Антону Жулину. 2789 2790 *) Исправление: совместимость с OpenSSL 0.9.7. 2791 2792 2793Изменения в nginx 1.3.6 12.09.2012 2794 2795 *) Добавление: модуль ngx_http_gunzip_filter_module. 2796 2797 *) Добавление: директива memcached_gzip_flag. 2798 2799 *) Добавление: параметр always директивы gzip_static. 2800 2801 *) Исправление: в директиве "limit_req"; ошибка появилась в 1.1.14. 2802 Спасибо Charles Chen. 2803 2804 *) Исправление: nginx не собирался gcc 4.7 с оптимизацией -O2 если 2805 использовался параметр --with-ipv6. 2806 2807 2808Изменения в nginx 1.3.5 21.08.2012 2809 2810 *) Изменение: модуль ngx_http_mp4_module больше не отфильтровывает 2811 дорожки в форматах, отличных от H.264 и AAC. 2812 2813 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2814 если в директиве map в качестве значений использовались переменные. 2815 2816 *) Исправление: в рабочем процессе мог произойти segmentation fault при 2817 использовании директивы geo с параметром ranges, но без параметра 2818 default; ошибка появилась в 0.8.43. 2819 Спасибо Zhen Chen и Weibin Yao. 2820 2821 *) Исправление: в обработке параметра командной строки -p. 2822 2823 *) Исправление: в почтовом прокси-сервере. 2824 2825 *) Исправление: незначительных потенциальных ошибок. 2826 Спасибо Coverity. 2827 2828 *) Исправление: nginx/Windows не собирался с Visual Studio 2005 Express. 2829 Спасибо HAYASHI Kentaro. 2830 2831 2832Изменения в nginx 1.3.4 31.07.2012 2833 2834 *) Изменение: теперь на слушающих IPv6-сокетах параметр ipv6only включён 2835 по умолчанию. 2836 2837 *) Добавление: поддержка компилятора Clang. 2838 2839 *) Исправление: могли создаваться лишние слушающие сокеты. 2840 Спасибо Роману Одайскому. 2841 2842 *) Исправление: nginx/Windows мог нагружать процессор, если при запуске 2843 рабочего процесса происходила ошибка. 2844 Спасибо Ricardo Villalobos Guevara. 2845 2846 *) Исправление: директивы proxy_pass_header, fastcgi_pass_header, 2847 scgi_pass_header, uwsgi_pass_header, proxy_hide_header, 2848 fastcgi_hide_header, scgi_hide_header и uwsgi_hide_header могли 2849 наследоваться некорректно. 2850 2851 2852Изменения в nginx 1.3.3 10.07.2012 2853 2854 *) Добавление: поддержка entity tags и директива etag. 2855 2856 *) Исправление: при использовании директивы map с параметром hostnames 2857 не игнорировалась конечная точка в исходном значении. 2858 2859 *) Исправление: для обработки запроса мог использоваться неверный 2860 location, если переход в именованный location происходил после 2861 изменения URI с помощью директивы rewrite. 2862 2863 2864Изменения в nginx 1.3.2 26.06.2012 2865 2866 *) Изменение: параметр single директивы keepalive теперь игнорируется. 2867 2868 *) Изменение: сжатие SSL теперь отключено в том числе при использовании 2869 OpenSSL старее 1.0.0. 2870 2871 *) Добавление: директиву "ip_hash" теперь можно использовать для 2872 балансировки IPv6 клиентов. 2873 2874 *) Добавление: переменную $status теперь можно использовать не только в 2875 директиве log_format. 2876 2877 *) Исправление: при завершении рабочего процесса мог произойти 2878 segmentation fault, если использовалась директива resolver. 2879 2880 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2881 если использовался модуль ngx_http_mp4_module. 2882 2883 *) Исправление: в модуле ngx_http_mp4_module. 2884 2885 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2886 если использовались конфликтующие имена серверов с масками. 2887 2888 *) Исправление: на платформе ARM nginx мог аварийно завершаться по 2889 сигналу SIGBUS. 2890 2891 *) Исправление: во время переконфигурации на HP-UX в лог записывался 2892 alert "sendmsg() failed (9: Bad file number)". 2893 2894 2895Изменения в nginx 1.3.1 05.06.2012 2896 2897 *) Безопасность: теперь nginx/Windows игнорирует точку в конце 2898 компонента URI и не разрешает URI, содержащие последовательность 2899 ":$". 2900 Спасибо Владимиру Кочеткову, Positive Research Center. 2901 2902 *) Добавление: директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass 2903 и директива server в блоке upstream теперь поддерживают IPv6-адреса. 2904 2905 *) Добавление: в директиве resolver теперь можно указывать порт и 2906 задавать IPv6-адреса DNS-серверов. 2907 2908 *) Добавление: директива least_conn в блоке upstream. 2909 2910 *) Добавление: при использовании директивы ip_hash теперь можно задавать 2911 веса серверов. 2912 2913 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2914 если использовалась директива image_filter; ошибка появилась в 1.3.0. 2915 2916 *) Исправление: nginx не собирался с модулем ngx_cpp_test_module; ошибка 2917 появилась в 1.1.12. 2918 2919 *) Исправление: доступ к переменным из SSI и встроенного перла мог не 2920 работать после переконфигурации. 2921 Спасибо Yichun Zhang. 2922 2923 *) Исправление: в модуле ngx_http_xslt_filter_module. 2924 Спасибо Kuramoto Eiji. 2925 2926 *) Исправление: утечки памяти при использовании переменной $geoip_org. 2927 Спасибо Денису Латыпову. 2928 2929 *) Исправление: в директивах proxy_cookie_domain и proxy_cookie_path. 2930 2931 2932Изменения в nginx 1.3.0 15.05.2012 2933 2934 *) Добавление: директива debug_connection теперь поддерживает 2935 IPv6-адреса и параметр "unix:". 2936 2937 *) Добавление: директива set_real_ip_from и параметр proxy директивы geo 2938 теперь поддерживают IPv6-адреса. 2939 2940 *) Добавление: директивы real_ip_recursive, geoip_proxy и 2941 geoip_proxy_recursive. 2942 2943 *) Добавление: параметр proxy_recursive директивы geo. 2944 2945 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2946 если использовалась директива resolver. 2947 2948 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2949 если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass 2950 и бэкенд возвращал некорректный ответ. 2951 2952 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2953 если использовалась директива rewrite и в новых аргументах запроса в 2954 строке замены использовались переменные. 2955 2956 *) Исправление: nginx мог нагружать процессор, если было достигнуто 2957 ограничение на количество открытых файлов. 2958 2959 *) Исправление: при использовании директивы proxy_next_upstream с 2960 параметром http_404 nginx мог бесконечно перебирать бэкенды, если в 2961 блоке upstream был хотя бы один сервер с флагом backup. 2962 2963 *) Исправление: при использовании директивы ip_hash установка параметра 2964 down директивы server могла приводить к ненужному перераспределению 2965 клиентов между бэкендами. 2966 2967 *) Исправление: утечки сокетов. 2968 Спасибо Yichun Zhang. 2969 2970 *) Исправление: в модуле ngx_http_fastcgi_module. 2971 2972 2973Изменения в nginx 1.2.0 23.04.2012 2974 2975 *) Исправление: в рабочем процессе мог произойти segmentation fault, 2976 если использовалась директива try_files; ошибка появилась в 1.1.19. 2977 2978 *) Исправление: ответ мог быть передан не полностью, если использовалось 2979 больше IOV_MAX буферов. 2980 2981 *) Исправление: в работе параметра crop директивы image_filter. 2982 Спасибо Maxim Bublis. 2983 2984 2985Изменения в nginx 1.1.19 12.04.2012 2986 2987 *) Безопасность: при обработке специально созданного mp4 файла модулем 2988 ngx_http_mp4_module могли перезаписываться области памяти рабочего 2989 процесса, что могло приводить к выполнению произвольного кода 2990 (CVE-2012-2089). 2991 Спасибо Matthew Daley. 2992 2993 *) Исправление: nginx/Windows мог завершаться аварийно. 2994 Спасибо Vincent Lee. 2995 2996 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е 2997 были помечены флагом backup. 2998 2999 *) Исправление: директивы allow и deny могли наследоваться некорректно, 3000 если в них использовались IPv6 адреса. 3001 3002 *) Исправление: директивы modern_browser и ancient_browser могли 3003 наследоваться некорректно. 3004 3005 *) Исправление: таймауты могли работать некорректно на Solaris/SPARC. 3006 3007 *) Исправление: в модуле ngx_http_mp4_module. 3008 3009 3010Изменения в nginx 1.1.18 28.03.2012 3011 3012 *) Изменение: теперь keepalive соединения не запрещены для Safari по 3013 умолчанию. 3014 3015 *) Добавление: переменная $connection_requests. 3016 3017 *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar, 3018 $tcpinfo_snd_cwnd и $tcpinfo_rcv_space. 3019 3020 *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD. 3021 3022 *) Добавление: директивы xslt_param и xslt_string_param. 3023 Спасибо Samuel Behan. 3024 3025 *) Исправление: в configure. 3026 Спасибо Piotr Sikora. 3027 3028 *) Исправление: в модуле ngx_http_xslt_filter_module. 3029 3030 *) Исправление: nginx не собирался на Debian GNU/Hurd. 3031 3032 3033Изменения в nginx 1.1.17 15.03.2012 3034 3035 *) Безопасность: содержимое ранее освобождённой памяти могло быть 3036 отправлено клиенту, если бэкенд возвращал специально созданный ответ. 3037 Спасибо Matthew Daley. 3038 3039 *) Исправление: при использовании встроенного перла из SSI. 3040 Спасибо Matthew Daley. 3041 3042 *) Исправление: в модуле ngx_http_uwsgi_module. 3043 3044 3045Изменения в nginx 1.1.16 29.02.2012 3046 3047 *) Изменение: ограничение на количество одновременных подзапросов 3048 поднято до 200. 3049 3050 *) Добавление: параметр from в директиве disable_symlinks. 3051 3052 *) Добавление: директивы return и error_page теперь могут использоваться 3053 для возврата перенаправлений с кодом 307. 3054 3055 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3056 если использовалась директива resolver и на глобальном уровне не была 3057 задана директива error_log. 3058 Спасибо Роману Арутюняну. 3059 3060 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3061 если использовались директивы "proxy_http_version 1.1" или 3062 "fastcgi_keep_conn on". 3063 3064 *) Исправление: утечек памяти. 3065 Спасибо Lanshun Zhou. 3066 3067 *) Исправление: в директиве disable_symlinks. 3068 3069 *) Исправление: при использовании ZFS размер кэша на диске мог считаться 3070 некорректно; ошибка появилась в 1.0.1. 3071 3072 *) Исправление: nginx не собирался компилятором icc 12.1. 3073 3074 *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в 3075 1.1.15. 3076 3077 3078Изменения в nginx 1.1.15 15.02.2012 3079 3080 *) Добавление: директива disable_symlinks. 3081 3082 *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path. 3083 3084 *) Исправление: nginx мог некорректно сообщать об ошибке "upstream 3085 prematurely closed connection" вместо "upstream sent too big header". 3086 Спасибо Feibo Li. 3087 3088 *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если 3089 использовался параметр --with-openssl. 3090 3091 *) Исправление: количество внутренних перенаправлений в именованные 3092 location'ы не ограничивалось. 3093 3094 *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к 3095 ошибкам в модуле ngx_http_gzip_filter_module. 3096 3097 *) Исправление: при использовании директивы proxy_store с 3098 SSI-подзапросами временные файлы могли не удаляться. 3099 3100 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как 3101 $args) возвращали старое пустое закэшированное значение. 3102 3103 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3104 если одновременно создавалось слишком много SSI-подзапросов; ошибка 3105 появилась в 0.7.25. 3106 3107 3108Изменения в nginx 1.1.14 30.01.2012 3109 3110 *) Добавление: теперь можно указать несколько ограничений limit_req 3111 одновременно. 3112 3113 *) Исправление: в обработке ошибок при соединении с бэкендом. 3114 Спасибо Piotr Sikora. 3115 3116 *) Исправление: в обработке ошибок при использовании AIO на FreeBSD. 3117 3118 *) Исправление: в инициализации библиотеки OpenSSL. 3119 3120 *) Исправление: директивы proxy_redirect могли наследоваться 3121 некорректно. 3122 3123 *) Исправление: утечки памяти при переконфигурации, если использовалась 3124 директива pcre_jit. 3125 3126 3127Изменения в nginx 1.1.13 16.01.2012 3128 3129 *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols. 3130 3131 *) Исправление: параметры директивы limit_req наследовались некорректно; 3132 ошибка появилась в 1.1.12. 3133 3134 *) Исправление: директива proxy_redirect некорректно обрабатывала 3135 заголовок Refresh при использовании регулярных выражений. 3136 3137 *) Исправление: директива proxy_cache_use_stale с параметром error не 3138 возвращала ответ из кэша, если все бэкенды были признаны 3139 неработающими. 3140 3141 *) Исправление: директива worker_cpu_affinity могла не работать. 3142 3143 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 3144 1.1.12. 3145 3146 *) Исправление: в модуле ngx_http_mp4_module. 3147 3148 3149Изменения в nginx 1.1.12 26.12.2011 3150 3151 *) Изменение: после перенаправления запроса с помощью директивы 3152 error_page директива proxy_pass без URI теперь использует изменённый 3153 URI. 3154 Спасибо Lanshun Zhou. 3155 3156 *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock, 3157 proxy/fastcgi/scgi/uwsgi_cache_lock_timeout. 3158 3159 *) Добавление: директива pcre_jit. 3160 3161 *) Добавление: SSI команда if поддерживает выделения в регулярных 3162 выражениях. 3163 3164 *) Исправление: SSI команда if не работала внутри команды block. 3165 3166 *) Исправление: директивы limit_conn_log_level и limit_req_log_level 3167 могли не работать. 3168 3169 *) Исправление: директива limit_rate не позволяла передавать на полной 3170 скорости, даже если был указан очень большой лимит. 3171 3172 *) Исправление: директива sendfile_max_chunk не работала, если 3173 использовалась директива limit_rate. 3174 3175 *) Исправление: если в директиве proxy_pass использовались переменные и 3176 не был указан URI, всегда использовался URI исходного запроса. 3177 3178 *) Исправление: после перенаправления запроса с помощью директивы 3179 try_files директива proxy_pass без URI могла использовать URI 3180 исходного запроса. 3181 Спасибо Lanshun Zhou. 3182 3183 *) Исправление: в модуле ngx_http_scgi_module. 3184 3185 *) Исправление: в модуле ngx_http_mp4_module. 3186 3187 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9. 3188 3189 3190Изменения в nginx 1.1.11 12.12.2011 3191 3192 *) Добавление: параметр so_keepalive в директиве listen. 3193 Спасибо Всеволоду Стахову. 3194 3195 *) Добавление: параметр if_not_empty в директивах 3196 fastcgi/scgi/uwsgi_param. 3197 3198 *) Добавление: переменная $https. 3199 3200 *) Добавление: директива proxy_redirect поддерживает переменные в первом 3201 параметре. 3202 3203 *) Добавление: директива proxy_redirect поддерживает регулярные 3204 выражения. 3205 3206 *) Исправление: переменная $sent_http_cache_control могла содержать 3207 неверное значение при использовании директивы expires. 3208 Спасибо Yichun Zhang. 3209 3210 *) Исправление: директива read_ahead могла не работать при использовании 3211 совместно с try_files и open_file_cache. 3212 3213 *) Исправление: если в параметре inactive директивы proxy_cache_path 3214 было указано малое время, в рабочем процессе мог произойти 3215 segmentation fault. 3216 3217 *) Исправление: ответы из кэша могли зависать. 3218 3219 3220Изменения в nginx 1.1.10 30.11.2011 3221 3222 *) Исправление: при использовании AIO на Linux в рабочем процессе 3223 происходил segmentation fault; ошибка появилась в 1.1.9. 3224 3225 3226Изменения в nginx 1.1.9 28.11.2011 3227 3228 *) Изменение: теперь двойные кавычки экранируется при выводе 3229 SSI-командой echo. 3230 Спасибо Зауру Абасмирзоеву. 3231 3232 *) Добавление: параметр valid в директиве resolver. По умолчанию теперь 3233 используется TTL, возвращённый DNS-сервером. 3234 Спасибо Кириллу Коринскому. 3235 3236 *) Исправление: nginx мог перестать отвечать, если рабочий процесс 3237 завершался аварийно. 3238 3239 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3240 если использовалось SNI; ошибка появилась в 1.1.2. 3241 3242 *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8. 3243 Спасибо Александру Усову. 3244 3245 *) Исправление: сигнал SIGWINCH переставал работать после первого 3246 обновления исполняемого файла; ошибка появилась в 1.1.1. 3247 3248 *) Исправление: теперь ответы бэкендов, длина которых не соответствует 3249 заголовку Content-Length, не кэширутся. 3250 3251 *) Исправление: в директиве scgi_param при использовании составных 3252 параметров. 3253 3254 *) Исправление: в методе epoll. 3255 Спасибо Yichun Zhang. 3256 3257 *) Исправление: в модуле ngx_http_flv_module. 3258 Спасибо Piotr Sikora. 3259 3260 *) Исправление: в модуле ngx_http_mp4_module. 3261 3262 *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в 3263 заголовке Host. 3264 3265 *) Исправление: директивы add_header и expires не работали для ответов с 3266 кодом 206, если запрос проксировался. 3267 3268 *) Исправление: nginx не собирался на FreeBSD 10. 3269 3270 *) Исправление: nginx не собирался на AIX. 3271 3272 3273Изменения в nginx 1.1.8 14.11.2011 3274 3275 *) Изменение: модуль ngx_http_limit_zone_module переименован в 3276 ngx_http_limit_conn_module. 3277 3278 *) Изменение: директива limit_zone заменена директивой limit_conn_zone с 3279 новым синтаксисом. 3280 3281 *) Добавление: поддержка ограничения по нескольким limit_conn на одном 3282 уровне. 3283 3284 *) Добавление: директива image_filter_sharpen. 3285 3286 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3287 если resolver получил большой DNS-ответ. 3288 Спасибо Ben Hawkes. 3289 3290 *) Исправление: в вычислении ключа для кэширования, если использовалась 3291 внутренняя реализация MD5; ошибка появилась в 1.0.4. 3292 3293 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в 3294 заголовке запроса клиента могли передаваться бэкенду при кэшировании; 3295 или не передаваться при выключенном кэшировании, если кэширование 3296 было включено в другой части конфигурации. 3297 3298 *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку 3299 "Content-Length" в заголовке ответа, использовался аргумент start. 3300 Спасибо Piotr Sikora. 3301 3302 3303Изменения в nginx 1.1.7 31.10.2011 3304 3305 *) Добавление: поддержка нескольких DNS серверов в директиве "resolver". 3306 Спасибо Кириллу Коринскому. 3307 3308 *) Исправление: на старте или во время переконфигурации происходил 3309 segmentation fault, если директива ssl использовалась на уровне http 3310 и не был указан ssl_certificate. 3311 3312 *) Исправление: уменьшено потребление памяти при проксировании больших 3313 файлов, если они буферизировались на диск. 3314 3315 *) Исправление: в рабочем процессе мог произойти segmentation fault, 3316 если использовалась директива "proxy_http_version 1.1". 3317 3318 *) Исправление: в директиве "expires @time". 3319 3320 3321Изменения в nginx 1.1.6 17.10.2011 3322 3323 *) Изменение во внутреннем API: теперь при внутреннем редиректе в 3324 именованный location контексты модулей очищаются. 3325 По запросу Yichun Zhang. 3326 3327 *) Изменение: теперь если сервер, описанный в блоке upstream, был 3328 признан неработающим, то после истечения fail_timeout на него будет 3329 отправлен только один запрос; сервер будет считаться работающим, если 3330 успешно ответит на этот запрос. 3331 3332 *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде 3333 \xXX. 3334 3335 *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" 3336 теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и 3337 X-Accel-Charset. 3338 3339 *) Добавление: уменьшение потребления памяти при использовании SSL. 3340 3341 *) Исправление: некоторые UTF-8 символы обрабатывались неправильно. 3342 Спасибо Алексею Куцу. 3343 3344 *) Исправление: директивы модуля ngx_http_rewrite_module, заданные на 3345 уровне server, применялись повторно, если для запроса не находилось 3346 ни одного location'а. 3347 3348 *) Исправление: при использовании "aio sendfile" могла происходить 3349 утечка сокетов. 3350 3351 *) Исправление: при использовании файлового AIO соединения с быстрыми 3352 клиентами могли быть закрыты по истечению send_timeout. 3353 3354 *) Исправление: в модуле ngx_http_autoindex_module. 3355 3356 *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на 3357 32-битных платформах. 3358 3359 3360Изменения в nginx 1.1.5 05.10.2011 3361 3362 *) Добавление: директивы uwsgi_buffering и scgi_buffering. 3363 Спасибо Peter Smit. 3364 3365 *) Исправление: при использовании proxy_cache_bypass могли быть 3366 закэшированы некэшируемые ответы. 3367 Спасибо John Ferlito. 3368 3369 *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по 3370 HTTP/1.1. 3371 3372 *) Исправление: закэшированные ответы с пустым телом возвращались 3373 некорректно; ошибка появилась в 0.8.31. 3374 3375 *) Исправление: ответы с кодом 201 модуля ngx_http_dav_module были 3376 некорректны; ошибка появилась в 0.8.32. 3377 3378 *) Исправление: в директиве return. 3379 3380 *) Исправление: при использовании директивы "ssl_session_cache builtin" 3381 происходил segmentation fault; ошибка появилась в 1.1.1. 3382 3383 3384Изменения в nginx 1.1.4 20.09.2011 3385 3386 *) Добавление: модуль ngx_http_upstream_keepalive. 3387 3388 *) Добавление: директива proxy_http_version. 3389 3390 *) Добавление: директива fastcgi_keep_conn. 3391 3392 *) Добавление: директива worker_aio_requests. 3393 3394 *) Исправление: если nginx был собран с файловым AIO, он не мог 3395 запускаться на Linux без поддержки AIO. 3396 3397 *) Исправление: в обработке ошибок при работе с Linux AIO. 3398 Спасибо Hagai Avrahami. 3399 3400 *) Исправление: уменьшено потребление памяти для долгоживущих запросов. 3401 3402 *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный 3403 MP4-атом co64. 3404 3405 3406Изменения в nginx 1.1.3 14.09.2011 3407 3408 *) Добавление: модуль ngx_http_mp4_module. 3409 3410 *) Исправление: в Linux AIO, используемым совместно с open_file_cache. 3411 3412 *) Исправление: open_file_cache не обновлял информацию о файле, если 3413 файл был изменён не атомарно. 3414 3415 *) Исправление: nginx не собирался на MacOSX 10.7. 3416 3417 3418Изменения в nginx 1.1.2 05.09.2011 3419 3420 *) Изменение: теперь, если суммарный размер всех диапазонов больше 3421 размера исходного ответа, то nginx возвращает только исходный ответ, 3422 не обрабатывая диапазоны. 3423 3424 *) Добавление: директива max_ranges. 3425 3426 *) Исправление: директивы ssl_verify_client, ssl_verify_depth и 3427 ssl_prefer_server_cipher могли работать некорректно, если 3428 использовался SNI. 3429 3430 *) Исправление: в директивах proxy/fastcgi/scgi/ 3431 uwsgi_ignore_client_abort. 3432 3433 3434Изменения в nginx 1.1.1 22.08.2011 3435 3436 *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает 3437 число файлов, указанное в параметре load_files, либо работает не 3438 дольше времени, указанного в параметре loader_threshold. 3439 3440 *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона. 3441 3442 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX 3443 на Solaris. 3444 Спасибо Денису Иванову. 3445 3446 *) Добавление: теперь на NetBSD поддерживаются accept фильтры. 3447 3448 *) Исправление: nginx не собирался на Linux 3.0. 3449 3450 *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка 3451 появилась в 1.1.0. 3452 3453 *) Исправление: обработка тела запроса могла быть неверной, если клиент 3454 использовал pipelining. 3455 3456 *) Исправление: в директиве request_body_in_single_buf. 3457 3458 *) Исправление: в директивах proxy_set_body и proxy_pass_request_body 3459 при использовании SSL-соединения с бэкендом. 3460 3461 *) Исправление: nginx нагружал процессор, если все серверы в upstream'е 3462 были помечены флагом down. 3463 3464 *) Исправление: при переконфигурации мог произойти segmentation fault, 3465 если в предыдущей конфигурации был определён, но не использовался 3466 ssl_session_cache. 3467 3468 *) Исправление: при использовании большого количества backup-серверов в 3469 рабочем процессе мог произойти segmentation fault. 3470 3471 *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со 3472 значениями, начинающимися со строки "HTTP_", в рабочем процессе мог 3473 произойти segmentation fault; ошибка появилась в 0.8.40. 3474 3475 3476Изменения в nginx 1.1.0 01.08.2011 3477 3478 *) Добавление: уменьшение времени работы загрузчика кэша. 3479 3480 *) Добавление: параметры loader_files, loader_sleep и loader_threshold 3481 директив proxy/fastcgi/scgi/uwsgi_cache_path. 3482 3483 *) Добавление: уменьшение времени загрузки конфигураций с большим 3484 количеством HTTPS серверов. 3485 3486 *) Добавление: теперь nginx поддерживает шифры с обменом ECDHE-ключами. 3487 Спасибо Adrian Kotelba. 3488 3489 *) Добавление: директива lingering_close. 3490 Спасибо Максиму Дунину. 3491 3492 *) Исправление: закрытия соединения для pipelined-запросов. 3493 Спасибо Максиму Дунину. 3494 3495 *) Исправление: nginx не запрещал сжатие при получении значения 3496 "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента. 3497 3498 *) Исправление: таймаута при небуферизированном проксировании. 3499 Спасибо Максиму Дунину. 3500 3501 *) Исправление: утечки памяти при использовании переменных в директиве 3502 proxy_pass при работе с бэкендом по HTTPS. 3503 Спасибо Максиму Дунину. 3504 3505 *) Исправление: в проверке параметра директивы proxy_pass, заданного 3506 переменными. 3507 Спасибо Lanshun Zhou. 3508 3509 *) Исправление: SSL не работал на QNX. 3510 Спасибо Максиму Дунину. 3511 3512 *) Исправление: SSL модули не собирались gcc 4.6 без параметра 3513 --with-debug. 3514 3515 3516Изменения в nginx 1.0.5 19.07.2011 3517 3518 *) Изменение: теперь по умолчанию используются следующие шифры SSL: 3519 "HIGH:!aNULL:!MD5". 3520 Спасибо Rob Stradling. 3521 3522 *) Добавление: директивы referer_hash_max_size и 3523 referer_hash_bucket_size. 3524 Спасибо Witold Filipczyk. 3525 3526 *) Добавление: переменная $uid_reset. 3527 3528 *) Исправление: при использовании кэширования в рабочем процессе мог 3529 произойти segmentation fault. 3530 Спасибо Lanshun Zhou. 3531 3532 *) Исправление: при использовании кэширования рабочие процессы могли 3533 зациклиться во время переконфигурации; ошибка появилась в 0.8.48. 3534 Спасибо Максиму Дунину. 3535 3536 *) Исправление: сообщения "stalled cache updating". 3537 Спасибо Максиму Дунину. 3538 3539 3540Изменения в nginx 1.0.4 01.06.2011 3541 3542 *) Изменение: теперь в регулярных выражениях в директиве map можно 3543 задать чувствительность к регистру с помощью префиксов "~" и "~*". 3544 3545 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX 3546 на Linux. 3547 Спасибо Денису Латыпову. 3548 3549 *) Исправление: сообщения "stalled cache updating". 3550 3551 *) Исправление: nginx не собирался с параметром 3552 --without-http_auth_basic_module; ошибка появилась в 1.0.3. 3553 3554 3555Изменения в nginx 1.0.3 25.05.2011 3556 3557 *) Добавление: директива auth_basic_user_file поддерживает шифрование 3558 пароля методами "$apr1", "{PLAIN}" и "{SSHA}". 3559 Спасибо Максиму Дунину. 3560 3561 *) Добавление: директива geoip_org и переменная $geoip_org. 3562 Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову. 3563 3564 *) Добавление: модули ngx_http_geo_module и ngx_http_geoip_module 3565 поддерживают адреса IPv4, отображённые на IPv6 адреса. 3566 3567 *) Исправление: при проверке адреса IPv4, отображённого на адрес IPv6, в 3568 рабочем процессе происходил segmentation fault, если директивы access 3569 или deny были определены только для адресов IPv6; ошибка появилась в 3570 0.8.22. 3571 3572 *) Исправление: закэшированный ответ мог быть испорчен, если значения 3573 директив proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/ 3574 uwsgi_no_cache были разными; ошибка появилась в 0.8.46. 3575 3576 3577Изменения в nginx 1.0.2 10.05.2011 3578 3579 *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX. 3580 3581 *) Исправление: в работе параметра rotate директивы image_filter. 3582 Спасибо Adam Bocim. 3583 3584 *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.0.1. 3585 3586 3587Изменения в nginx 1.0.1 03.05.2011 3588 3589 *) Изменение: теперь директива split_clients использует алгоритм 3590 MurmurHash2 из-за лучшего распределения. 3591 Спасибо Олегу Мамонтову. 3592 3593 *) Изменение: теперь длинные строки, начинающиеся с нуля, не считаются 3594 ложными значениями. 3595 Спасибо Максиму Дунину. 3596 3597 *) Изменение: теперь по умолчанию nginx использует значение 511 для 3598 listen backlog на Linux. 3599 3600 *) Добавление: переменные $upstream_... можно использовать в SSI и 3601 перловом модулях. 3602 3603 *) Исправление: теперь nginx лучше ограничивает размер кэша на диске. 3604 Спасибо Олегу Мамонтову. 3605 3606 *) Исправление: при парсинге неправильного IPv4 адреса мог произойти 3607 segmentation fault; ошибка появилась в 0.8.22. 3608 Спасибо Максиму Дунину. 3609 3610 *) Исправление: nginx не собирался gcc 4.6 без параметра --with-debug. 3611 3612 *) Исправление: nginx не собирался на Solaris 9 и более ранних; ошибка 3613 появилась в 0.9.3. 3614 Спасибо Dagobert Michelsen. 3615 3616 *) Исправление: переменная $request_time имела неверные значения, если 3617 использовались подзапросы; ошибка появилась в 0.8.47. 3618 Спасибо Игорю А. Валькову. 3619 3620 3621Изменения в nginx 1.0.0 12.04.2011 3622 3623 *) Исправление: cache manager мог нагружать процессор после 3624 переконфигурации. 3625 Спасибо Максиму Дунину. 3626 3627 *) Исправление: директива "image_filter crop" неправильно работала в 3628 сочетании с "image_filter rotate 180". 3629 3630 *) Исправление: директива "satisfy any" запрещала выдачу 3631 пользовательской страницы для 401 кода. 3632 3633 3634Изменения в nginx 0.9.7 04.04.2011 3635 3636 *) Добавление: теперь соединения в состоянии keepalive могут быть 3637 закрыты преждевременно, если у воркера нет свободных соединений. 3638 Спасибо Максиму Дунину. 3639 3640 *) Добавление: параметр rotate директивы image_filter. 3641 Спасибо Adam Bocim. 3642 3643 *) Исправление: ситуации, когда бэкенд в директивах fastcgi_pass, 3644 scgi_pass или uwsgi_pass задан выражением и ссылается на описанный 3645 upstream. 3646 3647 3648Изменения в nginx 0.9.6 21.03.2011 3649 3650 *) Добавление: директива map поддерживает регулярные выражения в 3651 качестве значения первого параметра. 3652 3653 *) Добавление: переменная $time_iso8601 для access_log. 3654 Спасибо Michael Lustfield. 3655 3656 3657Изменения в nginx 0.9.5 21.02.2011 3658 3659 *) Изменение: теперь по умолчанию nginx использует значение -1 для 3660 listen backlog на Linux. 3661 Спасибо Андрею Нигматулину. 3662 3663 *) Добавление: параметр utf8 в директивах geoip_country и geoip_city. 3664 Спасибо Денису Латыпову. 3665 3666 *) Исправление: исправление в умолчательной директиве proxy_redirect, 3667 если в директиве proxy_pass не был описан URI. 3668 Спасибо Максиму Дунину. 3669 3670 *) Исправление: директива error_page не работала с нестандартными кодами 3671 ошибок; ошибка появилась в 0.8.53. 3672 Спасибо Максиму Дунину. 3673 3674 3675Изменения в nginx 0.9.4 21.01.2011 3676 3677 *) Добавление: директива server_name поддерживает переменную $hostname. 3678 3679 *) Добавление: 494 код для ошибки "Request Header Too Large". 3680 3681 3682Изменения в nginx 0.9.3 13.12.2010 3683 3684 *) Исправление: если для пары IPv6-адрес:порт описан только один сервер, 3685 то выделения в регулярных выражениях в директиве server_name не 3686 работали. 3687 3688 *) Исправление: nginx не собирался под Solaris; ошибка появилась в 3689 0.9.0. 3690 3691 3692Изменения в nginx 0.9.2 06.12.2010 3693 3694 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке 3695 запроса клиента. 3696 3697 *) Изменение: использование accept(), если accept4() не реализован; 3698 ошибка появилась в 0.9.0. 3699 3700 *) Исправление: nginx не собирался под Cygwin; ошибка появилась в 0.9.0. 3701 3702 *) Исправление: уязвимости в OpenSSL CVE-2010-4180. 3703 Спасибо Максиму Дунину. 3704 3705 3706Изменения в nginx 0.9.1 30.11.2010 3707 3708 *) Исправление: директивы вида "return CODE message" не работали; ошибка 3709 появилась в 0.9.0. 3710 3711 3712Изменения в nginx 0.9.0 29.11.2010 3713 3714 *) Добавление: директива keepalive_disable. 3715 3716 *) Добавление: директива map поддерживает переменные в качестве значения 3717 определяемой переменной. 3718 3719 *) Добавление: директива map поддерживает пустые строки в качестве 3720 значения первого параметра. 3721 3722 *) Добавление: директива map поддерживает выражения в первом параметре. 3723 3724 *) Добавление: страница руководства nginx(8). 3725 Спасибо Сергею Осокину. 3726 3727 *) Добавление: поддержка accept4() в Linux. 3728 Спасибо Simon Liu. 3729 3730 *) Изменение: устранение предупреждения линкера о "sys_errlist" и 3731 "sys_nerr" под Linux; предупреждение появилось в 0.8.35. 3732 3733 *) Исправление: при использовании директивы auth_basic в рабочем 3734 процессе мог произойти segmentation fault. 3735 Спасибо Михаилу Лалетину. 3736 3737 *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка 3738 появилась в 0.8.42. 3739 3740 3741Изменения в nginx 0.8.53 18.10.2010 3742 3743 *) Добавление: теперь директива error_page позволяет менять код статуса 3744 у редиректа. 3745 3746 *) Добавление: директива gzip_disable поддерживает специальную маску 3747 degradation. 3748 3749 *) Исправление: при использовании файлового AIO могла происходить утечка 3750 сокетов. 3751 Спасибо Максиму Дунину. 3752 3753 *) Исправление: если в первом сервере не была описана директива listen и 3754 нигде явно не описан сервер по умолчанию, то сервером по умолчанию 3755 становился следующий сервер с директивой listen; ошибка появилась в 3756 0.8.21. 3757 3758 3759Изменения в nginx 0.8.52 28.09.2010 3760 3761 *) Исправление: nginx использовал режим SSL для listen сокета, если для 3762 него был установлен любой listen-параметр; ошибка появилась в 0.8.51. 3763 3764 3765Изменения в nginx 0.8.51 27.09.2010 3766 3767 *) Изменение: директива secure_link_expires упразднена. 3768 3769 *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня 3770 alert на error. 3771 3772 *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать 3773 несколько раз. 3774 3775 3776Изменения в nginx 0.8.50 02.09.2010 3777 3778 *) Добавление: директивы secure_link, secure_link_md5 и 3779 secure_link_expires модуля ngx_http_secure_link_module. 3780 3781 *) Добавление: ключ -q. 3782 Спасибо Геннадию Махомеду. 3783 3784 *) Исправление: при использовании кэширования рабочие процессы и могли 3785 зациклиться во время переконфигурации; ошибка появилась в 0.8.48. 3786 3787 *) Исправление: в директиве gzip_disable. 3788 Спасибо Derrick Petzold. 3789 3790 *) Исправление: nginx/Windows не мог посылать сигналы stop, quit, 3791 reopen, reload процессу, запущенному в другой сессии. 3792 3793 3794Изменения в nginx 0.8.49 09.08.2010 3795 3796 *) Добавление: директива image_filter_jpeg_quality поддерживает 3797 переменные. 3798 3799 *) Исправление: при использовании переменной $geoip_region_name в 3800 рабочем процессе мог произойти segmentation fault; ошибка появилась в 3801 0.8.48. 3802 3803 *) Исправление: ошибки, перехваченные error_page, кэшировались только до 3804 следующего запроса; ошибка появилась в 0.8.48. 3805 3806 3807Изменения в nginx 0.8.48 03.08.2010 3808 3809 *) Изменение: теперь по умолчанию директива server_name имеет значение 3810 пустое имя "". 3811 Спасибо Геннадию Махомеду. 3812 3813 *) Изменение: теперь по умолчанию директива server_name_in_redirect 3814 имеет значение off. 3815 3816 *) Добавление: переменные $geoip_dma_code, $geoip_area_code и 3817 $geoip_region_name. 3818 Спасибо Christine McGonagle. 3819 3820 *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и 3821 scgi_pass не наследовались в блоки limit_except. 3822 3823 *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses 3824 uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка 3825 появилась в 0.8.46. 3826 3827 *) Исправление: директива fastcgi_split_path_info неверно использовала 3828 выделения, если в выделения попадала только часть URI. 3829 Спасибо Юрию Тарадаю и Frank Enderle. 3830 3831 *) Исправление: директива rewrite не экранировала символ ";" при 3832 копировании из URI в аргументы. 3833 Спасибо Daisuke Murase. 3834 3835 *) Исправление: модуль ngx_http_image_filter_module закрывал соединение, 3836 если изображение было больше размера image_filter_buffer. 3837 3838 3839Изменения в nginx 0.8.47 28.07.2010 3840 3841 *) Исправление: переменная $request_time имела неверные значения для 3842 подзапросов. 3843 3844 *) Исправление: ошибки, перехваченные error_page, не кэшировались. 3845 3846 *) Исправление: если использовался параметр max_size, то cache manager 3847 мог зациклиться; ошибка появилась в 0.8.46. 3848 3849 3850Изменения в nginx 0.8.46 19.07.2010 3851 3852 *) Изменение: директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache 3853 и scgi_no_cache теперь влияют только на сохранение закэшированного 3854 ответа. 3855 3856 *) Добавление: директивы proxy_cache_bypass, fastcgi_cache_bypass, 3857 uwsgi_cache_bypass и scgi_cache_bypass. 3858 3859 *) Исправление: nginx не освобождал память в keys_zone кэшей в случае 3860 ошибки работы с бэкендом: память освобождалась только по истечении 3861 времени неактивности или при недостатке памяти. 3862 3863 3864Изменения в nginx 0.8.45 13.07.2010 3865 3866 *) Добавление: улучшения в модуле ngx_http_xslt_filter. 3867 Спасибо Laurence Rowe. 3868 3869 *) Исправление: ответ SSI модуля мог передаваться не полностью после 3870 команды include с параметром wait="yes"; ошибка появилась в 0.7.25. 3871 Спасибо Максиму Дунину. 3872 3873 *) Исправление: директива listen не поддерживала параметр setfib=0. 3874 3875 3876Изменения в nginx 0.8.44 05.07.2010 3877 3878 *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в 3879 заголовке которых есть строка "Set-Cookie". 3880 3881 *) Добавление: директива listen поддерживает параметр setfib. 3882 Спасибо Андрею Филонову. 3883 3884 *) Исправление: директива sub_filter могла изменять регистр букв при 3885 частичном совпадении. 3886 3887 *) Исправление: совместимость с HP/UX. 3888 3889 *) Исправление: совместимость с компилятором AIX xlC_r. 3890 3891 *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые 3892 запросы. 3893 Спасибо Miroslaw Jaworski. 3894 3895 3896Изменения в nginx 0.8.43 30.06.2010 3897 3898 *) Добавление: ускорение загрузки больших баз geo-диапазонов. 3899 3900 *) Исправление: перенаправление ошибки в "location /zero {return 204;}" 3901 без изменения кода ответа оставляло тело ошибки; ошибка появилась в 3902 0.8.42. 3903 3904 *) Исправление: nginx мог закрывать IPv6 listen сокет во время 3905 переконфигурации. 3906 Спасибо Максиму Дунину. 3907 3908 *) Исправление: переменную $uid_set можно использовать на любой стадии 3909 обработки запроса. 3910 3911 3912Изменения в nginx 0.8.42 21.06.2010 3913 3914 *) Изменение: теперь nginx проверяет location'ы, заданные регулярными 3915 выражениями, если запрос полностью совпал с location'ом, заданным 3916 строкой префикса. Предыдущее поведение появилось в 0.7.1. 3917 3918 *) Добавление: модуль ngx_http_scgi_module. 3919 Спасибо Manlio Perillo. 3920 3921 *) Добавление: в директиве return можно добавлять текст ответа. 3922 3923 3924Изменения в nginx 0.8.41 15.06.2010 3925 3926 *) Безопасность: рабочий процесс nginx/Windows мог завершаться аварийно 3927 при запросе файла с неверной кодировкой UTF-8. 3928 3929 *) Изменение: теперь nginx разрешает использовать пробелы в строке 3930 запроса. 3931 3932 *) Исправление: директива proxy_redirect неправильно изменяла строку 3933 "Refresh" в заголовке ответа бэкенда. 3934 Спасибо Андрею Андрееву и Максиму Согину. 3935 3936 *) Исправление: nginx не поддерживал путь без имени хоста в строке 3937 "Destination" в заголовке запроса. 3938 3939 3940Изменения в nginx 0.8.40 07.06.2010 3941 3942 *) Безопасность: теперь nginx/Windows игнорирует имя потока файла по 3943 умолчанию. 3944 Спасибо Jose Antonio Vazquez Gonzalez. 3945 3946 *) Добавление: модуль ngx_http_uwsgi_module. 3947 Спасибо Roberto De Ioris. 3948 3949 *) Добавление: директива fastcgi_param со значением, начинающимся со 3950 строки "HTTP_", изменяет строку заголовка в запросе клиента. 3951 3952 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в 3953 заголовке запроса клиента передавались FastCGI-серверу при 3954 кэшировании. 3955 3956 *) Исправление: listen unix domain сокет нельзя было изменить во время 3957 переконфигурации. 3958 Спасибо Максиму Дунину. 3959 3960 3961Изменения в nginx 0.8.39 31.05.2010 3962 3963 *) Исправление: наследуемая директива alias неправильно работала во 3964 вложенном location'е. 3965 3966 *) Исправление: в комбинации директив alias с переменными и try_files; 3967 3968 *) Исправление: listen unix domain и IPv6 сокеты не наследовались во 3969 время обновления без перерыва. 3970 Спасибо Максиму Дунину. 3971 3972 3973Изменения в nginx 0.8.38 24.05.2010 3974 3975 *) Добавление: директивы proxy_no_cache и fastcgi_no_cache. 3976 3977 *) Добавление: теперь при использовании переменной $scheme в директиве 3978 rewrite автоматически делается редирект. 3979 Спасибо Piotr Sikora. 3980 3981 *) Исправление: теперь задержки в директиве limit_req соответствует 3982 описанному алгоритму. 3983 Спасибо Максиму Дунину. 3984 3985 *) Исправление: переменную $uid_got нельзя было использовать в SSI и 3986 перловом модулях. 3987 3988 3989Изменения в nginx 0.8.37 17.05.2010 3990 3991 *) Добавление: модуль ngx_http_split_clients_module. 3992 3993 *) Добавление: директива map поддерживает ключи больше 255 символов. 3994 3995 *) Исправление: nginx игнорировал значения "private" и "no-store" в 3996 строке "Cache-Control" в заголовке ответа бэкенда. 3997 3998 *) Исправление: параметр stub в SSI-директиве include не использовался, 3999 если пустой ответ имел код 200. 4000 4001 *) Исправление: если проксированный или FastCGI запрос внутренне 4002 перенаправлялся в другой проксированный или FastCGI location, то в 4003 рабочем процессе мог произойти segmentation fault; ошибка появилась в 4004 0.8.33. 4005 Спасибо Yichun Zhang. 4006 4007 *) Исправление: соединения IMAP к серверу Zimbra могло зависнуть до 4008 таймаута. 4009 Спасибо Alan Batie. 4010 4011 4012Изменения в nginx 0.8.36 22.04.2010 4013 4014 *) Исправление: модуль ngx_http_dav_module неправильно обрабатывал 4015 методы DELETE, COPY и MOVE для симлинков. 4016 4017 *) Исправление: модуль SSI в подзапросах использовал закэшированные в 4018 основном запросе значения переменных $query_string, $arg_... и им 4019 подобных. 4020 4021 *) Исправление: значение переменной повторно экранировалось после 4022 каждого вывода SSI-команды echo; ошибка появилась в 0.6.14. 4023 4024 *) Исправление: рабочий процесс зависал при запросе файла FIFO. 4025 Спасибо Vicente Aguilar и Максиму Дунину. 4026 4027 *) Исправление: совместимость с OpenSSL-1.0.0 на 64-битном Linux. 4028 Спасибо Максиму Дунину. 4029 4030 *) Исправление: nginx не собирался с параметром --without-http-cache; 4031 ошибка появилась в 0.8.35. 4032 4033 4034Изменения в nginx 0.8.35 01.04.2010 4035 4036 *) Изменение: теперь charset-фильтр работает до SSI-фильтра. 4037 4038 *) Добавление: директива chunked_transfer_encoding. 4039 4040 *) Исправление: символ "&" при копировании в аргументы в правилах 4041 rewrite не экранировался. 4042 4043 *) Исправление: nginx мог завершаться аварийно во время обработки 4044 сигнала или при использовании директивы timer_resolution на 4045 платформах, не поддерживающих методы kqueue или eventport. 4046 Спасибо George Xie и Максиму Дунину. 4047 4048 *) Исправление: если временные файлы и постоянное место хранения 4049 располагались на разных файловых системах, то у постоянных файлов 4050 время изменения было неверным. 4051 Спасибо Максиму Дунину. 4052 4053 *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку 4054 "memcached sent invalid trailer". 4055 Спасибо Максиму Дунину. 4056 4057 *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных 4058 текстов. 4059 Спасибо Максиму Дунину. 4060 4061 *) Исправление: в рабочем процессе происходил segmentation fault, если 4062 перед ответом FastCGI-сервера было много вывода в stderr; ошибка 4063 появилась в 0.8.34. 4064 Спасибо Максиму Дунину. 4065 4066 4067Изменения в nginx 0.8.34 03.03.2010 4068 4069 *) Исправление: nginx не поддерживал все шифры, используемые в 4070 клиентских сертификатах. 4071 Спасибо Иннокентию Еникееву. 4072 4073 *) Исправление: nginx неправильно кэшировал FastCGI-ответы, если перед 4074 ответом было много вывода в stderr. 4075 4076 *) Исправление: nginx не поддерживал HTTPS-рефереры. 4077 4078 *) Исправление: nginx/Windows мог не находить файлы, если путь в 4079 конфигурации был задан в другом регистре; ошибка появилась в 0.8.33. 4080 4081 *) Исправление: переменная $date_local выдавала неверное время, если 4082 использовался формат "%s". 4083 Спасибо Максиму Дунину. 4084 4085 *) Исправление: если ssl_session_cache не был установлен или установлен 4086 в none, то при проверке клиентского сертификаты могла происходить 4087 ошибка "session id context uninitialized"; ошибка появилась в 0.7.1. 4088 4089 *) Исправление: geo-диапазон возвращал значение по умолчанию, если 4090 диапазон включал в себя одну и более сетей размером /16 и не 4091 начинался на границе сети размером /16. 4092 4093 *) Исправление: блок, используемый в параметре stub в SSI-директиве 4094 include, выводился с MIME-типом "text/plain". 4095 4096 *) Исправление: $r->sleep() не работал; ошибка появилась в 0.8.11. 4097 4098 4099Изменения в nginx 0.8.33 01.02.2010 4100 4101 *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце URI. 4102 Спасибо Dan Crowley, Core Security Technologies. 4103 4104 *) Безопасность: теперь nginx/Windows игнорирует короткие имена файлов. 4105 Спасибо Dan Crowley, Core Security Technologies. 4106 4107 *) Изменение: теперь keepalive соединения после запросов POST не 4108 запрещаются для MSIE 7.0+. 4109 Спасибо Adam Lounds. 4110 4111 *) Изменение: теперь keepalive соединения запрещены для Safari. 4112 Спасибо Joshua Sierles. 4113 4114 *) Исправление: если проксированный или FastCGI запрос внутренне 4115 перенаправлялся в другой проксированный или FastCGI location, то 4116 переменная $upstream_response_time могла иметь ненормально большое 4117 значение; ошибка появилась в 0.8.7. 4118 4119 *) Исправление: в рабочем процессе мог произойти segmentation fault при 4120 отбрасывания тела запроса; ошибка появилась в 0.8.11. 4121 4122 4123Изменения в nginx 0.8.32 11.01.2010 4124 4125 *) Исправление: ошибки при использовании кодировки UTF-8 в 4126 ngx_http_autoindex_module. 4127 Спасибо Максиму Дунину. 4128 4129 *) Исправление: именованные выделения в регулярных выражениях работали 4130 только для двух переменных. 4131 Спасибо Максиму Дунину. 4132 4133 *) Исправление: теперь в строке заголовка запроса "Host" используется 4134 имя "localhost", если в директиве auth_http указан unix domain сокет. 4135 Спасибо Максиму Дунину. 4136 4137 *) Исправление: nginx не поддерживал передачу chunk'ами для 201-ых 4138 ответов. 4139 Спасибо Julian Reich. 4140 4141 *) Исправление: если директива "expires modified" выставляла дату в 4142 прошлом, то в строке заголовка ответа "Cache-Control" выдавалось 4143 отрицательное число. 4144 Спасибо Алексею Капранову. 4145 4146 4147Изменения в nginx 0.8.31 23.12.2009 4148 4149 *) Добавление: теперь директива error_page может перенаправлять ответы 4150 со статусом 301 и 302. 4151 4152 *) Добавление: переменные $geoip_city_continent_code, $geoip_latitude и 4153 $geoip_longitude. 4154 Спасибо Arvind Sundararajan. 4155 4156 *) Добавление: модуль ngx_http_image_filter_module теперь всегда удаляет 4157 EXIF и другие данные, если они занимают больше 5% в JPEG-файле. 4158 4159 *) Исправление: nginx закрывал соединение при запросе закэшированного 4160 ответа с пустым телом. 4161 Спасибо Piotr Sikora. 4162 4163 *) Исправление: nginx мог не собираться gcc 4.x при использовании 4164 оптимизации -O2 и выше. 4165 Спасибо Максиму Дунину и Денису Латыпову. 4166 4167 *) Исправление: регулярные выражения в location всегда тестировались с 4168 учётом регистра; ошибка появилась в 0.8.25. 4169 4170 *) Исправление: nginx кэшировал 304 ответ, если в заголовке 4171 проксируемого запроса была строка "If-None-Match". 4172 Спасибо Tim Dettrick и David Kostal. 4173 4174 *) Исправление: nginx/Windows пытался дважды удалить временный файл при 4175 перезаписи уже существующего файла. 4176 4177 4178Изменения в nginx 0.8.30 15.12.2009 4179 4180 *) Изменение: теперь по умолчанию размер буфера директивы 4181 large_client_header_buffers равен 8K. 4182 Спасибо Andrew Cholakian. 4183 4184 *) Добавление: файл conf/fastcgi.conf для простых конфигураций FastCGI. 4185 4186 *) Исправление: nginx/Windows пытался дважды переименовать временный 4187 файл при перезаписи уже существующего файла. 4188 4189 *) Исправление: ошибки double free or corruption, возникающей, если имя 4190 хоста не было найдено; ошибка появилась в 0.8.22. 4191 Спасибо Константину Свисту. 4192 4193 *) Исправление: в использовании libatomic на некоторых платформах. 4194 Спасибо W-Mark Kubacki. 4195 4196 4197Изменения в nginx 0.8.29 30.11.2009 4198 4199 *) Изменение: теперь для проксируемых ответов HTTP/0.9 в лог пишется код 4200 ответа "009". 4201 4202 *) Добавление: директивы addition_types, charset_types, gzip_types, 4203 ssi_types, sub_filter_types и xslt_types поддерживают параметр "*". 4204 4205 *) Добавление: использование встроенных атомарных операций GCC 4.1+. 4206 Спасибо W-Mark Kubacki. 4207 4208 *) Добавление: параметр --with-libatomic[=DIR] в configure. 4209 Спасибо W-Mark Kubacki. 4210 4211 *) Исправление: listen unix domain сокет имели ограниченные права 4212 доступа. 4213 4214 *) Исправление: закэшированные ответы ответов HTTP/0.9 неправильно 4215 обрабатывались. 4216 4217 *) Исправление: именованные выделения в регулярных выражениях, заданные 4218 как "?P<...>", не работали в директиве server_name. 4219 Спасибо Максиму Дунину. 4220 4221 4222Изменения в nginx 0.8.28 23.11.2009 4223 4224 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка 4225 появилась в 0.8.25. 4226 4227 4228Изменения в nginx 0.8.27 17.11.2009 4229 4230 *) Исправление: регулярные выражения не работали в nginx/Windows; ошибка 4231 появилась в 0.8.25. 4232 4233 4234Изменения в nginx 0.8.26 16.11.2009 4235 4236 *) Исправление: ошибки при использовании выделений в директиве rewrite; 4237 ошибка появилась в 0.8.25. 4238 4239 *) Исправление: nginx не собирался без параметра --with-debug; ошибка 4240 появилась в 0.8.25. 4241 4242 4243Изменения в nginx 0.8.25 16.11.2009 4244 4245 *) Изменение: теперь в лог ошибок не пишется сообщение, если переменная 4246 не найдена с помощью метода $r->variable(). 4247 4248 *) Добавление: модуль ngx_http_degradation_module. 4249 4250 *) Добавление: именованные выделения в регулярных выражениях. 4251 4252 *) Добавление: теперь при использовании переменных в директиве 4253 proxy_pass не требуется задавать URI. 4254 4255 *) Добавление: теперь директива msie_padding работает и для Chrome. 4256 4257 *) Исправление: в рабочем процессе происходил segmentation fault при 4258 недостатке памяти; ошибка появилась в 0.8.18. 4259 4260 *) Исправление: nginx передавал сжатые ответы клиентам, не 4261 поддерживающим сжатие, при настройках gzip_static on и gzip_vary off; 4262 ошибка появилась в 0.8.16. 4263 4264 4265Изменения в nginx 0.8.24 11.11.2009 4266 4267 *) Исправление: nginx всегда добавлял строку "Content-Encoding: gzip" в 4268 заголовок 304-ых ответов модуля ngx_http_gzip_static_module. 4269 4270 *) Исправление: nginx не собирался без параметра --with-debug; ошибка 4271 появилась в 0.8.23. 4272 4273 *) Исправление: параметр "unix:" в директиве set_real_ip_from 4274 неправильно наследовался с предыдущего уровня. 4275 4276 *) Исправление: в resolver'е при определении пустого имени. 4277 4278 4279Изменения в nginx 0.8.23 11.11.2009 4280 4281 *) Безопасность: теперь SSL/TLS renegotiation запрещён. 4282 Спасибо Максиму Дунину. 4283 4284 *) Исправление: listen unix domain сокет не наследовался во время 4285 обновления без перерыва. 4286 4287 *) Исправление: параметр "unix:" в директиве set_real_ip_from не работал 4288 без ещё одной директивы с любым IP-адресом. 4289 4290 *) Исправление: segmentation fault и зацикливания в resolver'е. 4291 4292 *) Исправление: в resolver'е. 4293 Спасибо Артёму Бохану. 4294 4295 4296Изменения в nginx 0.8.22 03.11.2009 4297 4298 *) Добавление: директивы proxy_bind, fastcgi_bind и memcached_bind. 4299 4300 *) Добавление: директивы access и deny поддерживают IPv6. 4301 4302 *) Добавление: директива set_real_ip_from поддерживает IPv6 адреса в 4303 заголовках запроса. 4304 4305 *) Добавление: параметр "unix:" в директиве set_real_ip_from. 4306 4307 *) Исправление: nginx не удалял unix domain сокет после тестирования 4308 конфигурации. 4309 4310 *) Исправление: nginx удалял unix domain сокет во время обновления без 4311 перерыва. 4312 4313 *) Исправление: оператор "!-x" не работал. 4314 Спасибо Максиму Дунину. 4315 4316 *) Исправление: в рабочем процессе мог произойти segmentation fault при 4317 использовании limit_rate в HTTPS сервере. 4318 Спасибо Максиму Дунину. 4319 4320 *) Исправление: при записи в лог переменной $limit_rate в рабочем 4321 процессе происходил segmentation fault. 4322 Спасибо Максиму Дунину. 4323 4324 *) Исправление: в рабочем процессе мог произойти segmentation fault, 4325 если внутри блока server не было директивы listen; ошибка появилась в 4326 0.8.21. 4327 4328 4329Изменения в nginx 0.8.21 26.10.2009 4330 4331 *) Добавление: теперь ключ -V показывает статус поддержки TLS SNI. 4332 4333 *) Добавление: директива listen модуля HTTP поддерживает unix domain 4334 сокеты. 4335 Спасибо Hongli Lai. 4336 4337 *) Добавление: параметр "default_server" в директиве listen. 4338 4339 *) Добавление: теперь параметр "default" не обязателен для установки 4340 параметров listen-сокета. 4341 4342 *) Исправление: nginx не поддерживал даты в 2038 году на 32-битных 4343 платформах; 4344 4345 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11. 4346 4347 4348Изменения в nginx 0.8.20 14.10.2009 4349 4350 *) Изменение: теперь по умолчанию используются следующие шифры SSL: 4351 "HIGH:!ADH:!MD5". 4352 4353 *) Исправление: модуль ngx_http_autoindex_module не показывал последний 4354 слэш для линков на каталоги; ошибка появилась в 0.7.15. 4355 4356 *) Исправление: nginx не закрывал лог, заданный параметром конфигурации 4357 --error-log-path; ошибка появилась в 0.7.53. 4358 4359 *) Исправление: nginx не считал запятую разделителем в строке 4360 "Cache-Control" в заголовке ответа бэкенда. 4361 4362 *) Исправление: nginx/Windows мог не создать временный файл, файл в кэше 4363 или файл с помощью директив proxy/fastcgi_store, если рабочий процесс 4364 не имел достаточно прав для работы с каталогами верхнего уровня. 4365 4366 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа 4367 FastCGI-сервера не скрывались при кэшировании, если не использовались 4368 директивы fastcgi_hide_header с любыми параметрами. 4369 4370 *) Исправление: nginx неверно считал размер кэша на диске. 4371 4372 4373Изменения в nginx 0.8.19 06.10.2009 4374 4375 *) Изменение: теперь протокол SSLv2 по умолчанию запрещён. 4376 4377 *) Изменение: теперь по умолчанию используются следующие шифры SSL: 4378 "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM". 4379 4380 *) Исправление: директива limit_req не работала; ошибка появилась в 4381 0.8.18. 4382 4383 4384Изменения в nginx 0.8.18 06.10.2009 4385 4386 *) Добавление: директива read_ahead. 4387 4388 *) Добавление: теперь можно использовать несколько директив 4389 perl_modules. 4390 4391 *) Добавление: директивы limit_req_log_level и limit_conn_log_level. 4392 4393 *) Исправление: теперь директива limit_req соответствует алгоритму leaky 4394 bucket. 4395 Спасибо Максиму Дунину. 4396 4397 *) Исправление: nginx не работал на Linux/sparc. 4398 Спасибо Marcus Ramberg. 4399 4400 *) Исправление: nginx слал символ '\0' в строке "Location" в заголовке в 4401 ответе на запрос MKCOL. 4402 Спасибо Xie Zhenye. 4403 4404 *) Исправление: вместо кода ответа 499 в лог записывался код 0; ошибка 4405 появилась в 0.8.11. 4406 4407 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11. 4408 4409 4410Изменения в nginx 0.8.17 28.09.2009 4411 4412 *) Безопасность: теперь символы "/../" запрещены в строке "Destination" 4413 в заголовке запроса. 4414 4415 *) Изменение: теперь значение переменной $host всегда в нижнем регистре. 4416 4417 *) Добавление: переменная $ssl_session_id. 4418 4419 *) Исправление: утечки сокетов; ошибка появилась в 0.8.11. 4420 4421 4422Изменения в nginx 0.8.16 22.09.2009 4423 4424 *) Добавление: директива image_filter_transparency. 4425 4426 *) Исправление: директива "addition_types" была неверно названа 4427 "addtion_types". 4428 4429 *) Исправление: порчи кэша resolver'а. 4430 Спасибо Matthew Dempsky. 4431 4432 *) Исправление: утечки памяти в resolver'е. 4433 Спасибо Matthew Dempsky. 4434 4435 *) Исправление: неверная строка запроса в переменной $request 4436 записывалась в access_log только при использовании error_log на 4437 уровне info или debug. 4438 4439 *) Исправление: в поддержке альфа-канала PNG в модуле 4440 ngx_http_image_filter_module. 4441 4442 *) Исправление: nginx всегда добавлял строку "Vary: Accept-Encoding" в 4443 заголовок ответа, если обе директивы gzip_static и gzip_vary были 4444 включены. 4445 4446 *) Исправление: в поддержке кодировки UTF-8 директивой try_files в 4447 nginx/Windows. 4448 4449 *) Исправление: ошибки при использовании post_action; ошибка появилась в 4450 0.8.11. 4451 Спасибо Игорю Артемьеву. 4452 4453 4454Изменения в nginx 0.8.15 14.09.2009 4455 4456 *) Безопасность: при обработке специально созданного запроса в рабочем 4457 процессе мог произойти segmentation fault. 4458 Спасибо Chris Ries. 4459 4460 *) Исправление: если были описаны имена .domain.tld, .sub.domain.tld и 4461 .domain-some.tld, то имя .sub.domain.tld попадало под маску 4462 .domain.tld. 4463 4464 *) Исправление: в поддержке прозрачности в модуле 4465 ngx_http_image_filter_module. 4466 4467 *) Исправление: в файловом AIO. 4468 4469 *) Исправление: ошибки при использовании X-Accel-Redirect; ошибка 4470 появилась в 0.8.11. 4471 4472 *) Исправление: ошибки при использовании встроенного перла; ошибка 4473 появилась в 0.8.11. 4474 4475 4476Изменения в nginx 0.8.14 07.09.2009 4477 4478 *) Исправление: устаревший закэшированный запрос мог залипнуть в 4479 состоянии "UPDATING". 4480 4481 *) Исправление: при использовании error_log на уровне info или debug в 4482 рабочем процессе мог произойти segmentation fault. 4483 Спасибо Сергею Боченкову. 4484 4485 *) Исправление: ошибки при использовании встроенного перла; ошибка 4486 появилась в 0.8.11. 4487 4488 *) Исправление: директива error_page не перенаправляла ошибку 413; 4489 ошибка появилась в 0.6.10. 4490 4491 4492Изменения в nginx 0.8.13 31.08.2009 4493 4494 *) Исправление: в директиве "aio sendfile"; ошибка появилась в 0.8.12. 4495 4496 *) Исправление: nginx не собирался без параметра --with-file-aio на 4497 FreeBSD; ошибка появилась в 0.8.12. 4498 4499 4500Изменения в nginx 0.8.12 31.08.2009 4501 4502 *) Добавление: параметр sendfile в директиве aio во FreeBSD. 4503 4504 *) Исправление: ошибки при использовании try_files; ошибка появилась в 4505 0.8.11. 4506 4507 *) Исправление: ошибки при использовании memcached; ошибка появилась в 4508 0.8.11. 4509 4510 4511Изменения в nginx 0.8.11 28.08.2009 4512 4513 *) Изменение: теперь директива "gzip_disable msie6" не запрещает сжатие 4514 для MSIE 6.0 SV1. 4515 4516 *) Добавление: поддержка файлового AIO во FreeBSD и Linux. 4517 4518 *) Добавление: директива directio_alignment. 4519 4520 4521Изменения в nginx 0.8.10 24.08.2009 4522 4523 *) Исправление: утечек памяти при использовании базы GeoIP City. 4524 4525 *) Исправление: ошибки при копировании временных файлов в постоянное 4526 место хранения; ошибка появилась в 0.8.9. 4527 4528 4529Изменения в nginx 0.8.9 17.08.2009 4530 4531 *) Добавление: теперь стартовый загрузчик кэша работает в отдельном 4532 процесс; это должно улучшить обработку больших кэшей. 4533 4534 *) Добавление: теперь временные файлы и постоянное место хранения могут 4535 располагаться на разных файловых системах. 4536 4537 4538Изменения в nginx 0.8.8 10.08.2009 4539 4540 *) Исправление: в обработке заголовков ответа, разделённых в 4541 FastCGI-записях. 4542 4543 *) Исправление: если запрос обрабатывался в двух проксированных или 4544 FastCGI location'ах и в первом из них использовалось кэширование, то 4545 в рабочем процессе происходил segmentation fault; ошибка появилась в 4546 0.8.7. 4547 4548 4549Изменения в nginx 0.8.7 27.07.2009 4550 4551 *) Изменение: минимальная поддерживаемая версия OpenSSL - 0.9.7. 4552 4553 *) Изменение: параметр ask директивы ssl_verify_client изменён на 4554 параметр optional и теперь он проверяет клиентский сертификат, если 4555 он был предложен. 4556 Спасибо Brice Figureau. 4557 4558 *) Добавление: переменная $ssl_client_verify. 4559 Спасибо Brice Figureau. 4560 4561 *) Добавление: директива ssl_crl. 4562 Спасибо Brice Figureau. 4563 4564 *) Добавление: параметр proxy директивы geo. 4565 4566 *) Добавление: директива image_filter поддерживает переменные для 4567 задания размеров. 4568 4569 *) Исправление: использование переменной $ssl_client_cert портило 4570 память; ошибка появилась в 0.7.7. 4571 Спасибо Сергею Журавлёву. 4572 4573 *) Исправление: директивы proxy_pass_header и fastcgi_pass_header" не 4574 передавали клиенту строки "X-Accel-Redirect", "X-Accel-Limit-Rate", 4575 "X-Accel-Buffering" и "X-Accel-Charset" из заголовка ответа бэкенда. 4576 Спасибо Максиму Дунину. 4577 4578 *) Исправление: в обработке строк "Last-Modified" и "Accept-Ranges" в 4579 заголовке ответа бэкенда; ошибка появилась в 0.7.44. 4580 Спасибо Максиму Дунину. 4581 4582 *) Исправление: ошибки "[alert] zero size buf" при получении пустых 4583 ответы в подзапросах; ошибка появилась в 0.8.5. 4584 4585 4586Изменения в nginx 0.8.6 20.07.2009 4587 4588 *) Добавление: модуль ngx_http_geoip_module. 4589 4590 *) Исправление: XSLT-фильтр мог выдавать ошибку "not well formed XML 4591 document" для правильного документа. 4592 Спасибо Kuramoto Eiji. 4593 4594 *) Исправление: в MacOSX, Cygwin и nginx/Windows при проверке 4595 location'ов, заданных регулярным выражением, теперь всегда делается 4596 сравнение без учёта регистра символов. 4597 4598 *) Исправление: теперь nginx/Windows игнорирует точки в конце URI. 4599 Спасибо Hugo Leisink. 4600 4601 *) Исправление: имя файла указанного в --conf-path игнорировалось при 4602 установке; ошибка появилась в 0.6.6. 4603 Спасибо Максиму Дунину. 4604 4605 4606Изменения в nginx 0.8.5 13.07.2009 4607 4608 *) Исправление: теперь nginx разрешает подчёркивания в методе запроса. 4609 4610 *) Исправление: при использовании HTTP Basic-аутентификации на Windows 4611 для неверных имени/пароля возвращалась 500-ая ошибка. 4612 4613 *) Исправление: ответы модуля ngx_http_perl_module не работали в 4614 подзапросах. 4615 4616 *) Исправление: в модуле ngx_http_limit_req_module. 4617 Спасибо Максиму Дунину. 4618 4619 4620Изменения в nginx 0.8.4 22.06.2009 4621 4622 *) Исправление: nginx не собирался с параметром --without-http-cache; 4623 ошибка появилась в 0.8.3. 4624 4625 4626Изменения в nginx 0.8.3 19.06.2009 4627 4628 *) Добавление: переменная $upstream_cache_status. 4629 4630 *) Исправление: nginx не собирался на MacOSX 10.6. 4631 4632 *) Исправление: nginx не собирался с параметром --without-http-cache; 4633 ошибка появилась в 0.8.2. 4634 4635 *) Исправление: если использовался перехват 401 ошибки от бэкенда и 4636 бэкенд не возвращал строку "WWW-Authenticate" в заголовке ответа, то 4637 в рабочем процессе происходил segmentation fault. 4638 Спасибо Евгению Мычло. 4639 4640 4641Изменения в nginx 0.8.2 15.06.2009 4642 4643 *) Исправление: во взаимодействии open_file_cache и proxy/fastcgi кэша 4644 на старте. 4645 4646 *) Исправление: open_file_cache мог кэшировать открытые файлы очень 4647 долго; ошибка появилась в 0.7.4. 4648 4649 4650Изменения в nginx 0.8.1 08.06.2009 4651 4652 *) Добавление: параметр updating в директивах proxy_cache_use_stale и 4653 fastcgi_cache_use_stale. 4654 4655 *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в 4656 заголовке запроса клиента передавались бэкенду при кэшировании, если 4657 не использовалась директива proxy_set_header с любыми параметрами. 4658 4659 *) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда 4660 не скрывались при кэшировании, если не использовались директивы 4661 proxy_hide_header/fastcgi_hide_header с любыми параметрами. 4662 4663 *) Исправление: модуль ngx_http_image_filter_module не понимал формат 4664 GIF87a. 4665 Спасибо Денису Ильиных. 4666 4667 *) Исправление: nginx не собирался на Solaris 10 и более ранних; ошибка 4668 появилась в 0.7.56. 4669 4670 4671Изменения в nginx 0.8.0 02.06.2009 4672 4673 *) Добавление: директива keepalive_requests. 4674 4675 *) Добавление: директива limit_rate_after. 4676 Спасибо Ivan Debnar. 4677 4678 *) Исправление: XSLT-фильтр не работал в подзапросах. 4679 4680 *) Исправление: обработке относительных путей в nginx/Windows. 4681 4682 *) Исправление: в proxy_store, fastcgi_store, proxy_cache и 4683 fastcgi_cache в nginx/Windows. 4684 4685 *) Исправление: в обработке ошибок выделения памяти. 4686 Спасибо Максиму Дунину и Кириллу Коринскому. 4687 4688 4689Изменения в nginx 0.7.59 25.05.2009 4690 4691 *) Добавление: директивы proxy_cache_methods и fastcgi_cache_methods. 4692 4693 *) Исправление: утечки сокетов; ошибка появилась в 0.7.25. 4694 Спасибо Максиму Дунину. 4695 4696 *) Исправление: при использовании переменной $request_body в рабочем 4697 процессе происходил segmentation fault, если в запросе не было тела; 4698 ошибка появилась в 0.7.58. 4699 4700 *) Исправление: SSL-модули могли не собираться на Solaris и Linux; 4701 ошибка появилась в 0.7.56. 4702 4703 *) Исправление: ответы модуля ngx_http_xslt_filter_module не 4704 обрабатывались SSI-, charset- и gzip-фильтрами. 4705 4706 *) Исправление: директива charset не ставила кодировку для ответов 4707 модуля ngx_http_gzip_static_module. 4708 4709 4710Изменения в nginx 0.7.58 18.05.2009 4711 4712 *) Добавление: директива listen почтового прокси-сервера поддерживает 4713 IPv6. 4714 4715 *) Добавление: директива image_filter_jpeg_quality. 4716 4717 *) Добавление: директива client_body_in_single_buffer. 4718 4719 *) Добавление: переменная $request_body. 4720 4721 *) Исправление: в модуле ngx_http_autoindex_module в ссылках на имена 4722 файлов, содержащих символ ":". 4723 4724 *) Исправление: процедура "make upgrade" не работала; ошибка появилась в 4725 0.7.53. 4726 Спасибо Денису Латыпову. 4727 4728 4729Изменения в nginx 0.7.57 12.05.2009 4730 4731 *) Исправление: при перенаправлении ошибок модуля 4732 ngx_http_image_filter_module в именованный location в рабочем 4733 процессе происходил floating-point fault; ошибка появилась в 0.7.56. 4734 4735 4736Изменения в nginx 0.7.56 11.05.2009 4737 4738 *) Добавление: nginx/Windows поддерживает IPv6 в директиве listen модуля 4739 HTTP. 4740 4741 *) Исправление: в модуле ngx_http_image_filter_module. 4742 4743 4744Изменения в nginx 0.7.55 06.05.2009 4745 4746 *) Исправление: параметры http_XXX в директивах proxy_cache_use_stale и 4747 fastcgi_cache_use_stale не работали. 4748 4749 *) Исправление: fastcgi кэш не кэшировал ответы, состоящие только из 4750 заголовка. 4751 4752 *) Исправление: ошибки "select() failed (9: Bad file descriptor)" в 4753 nginx/Unix и "select() failed (10038: ...)" в nginx/Windows. 4754 4755 *) Исправление: при использовании директивы debug_connection в рабочем 4756 процессе мог произойти segmentation fault; ошибка появилась в 0.7.54. 4757 4758 *) Исправление: в сборке модуля ngx_http_image_filter_module. 4759 4760 *) Исправление: файлы больше 2G не передавались с использованием 4761 $r->sendfile. 4762 Спасибо Максиму Дунину. 4763 4764 4765Изменения в nginx 0.7.54 01.05.2009 4766 4767 *) Добавление: модуль ngx_http_image_filter_module. 4768 4769 *) Добавление: директивы proxy_ignore_headers и fastcgi_ignore_headers. 4770 4771 *) Исправление: при использовании переменных "open_file_cache_errors on" 4772 в рабочем процессе мог произойти segmentation fault; ошибка появилась 4773 в 0.7.53. 4774 4775 *) Исправление: директива "port_in_redirect off" не работала; ошибка 4776 появилась в 0.7.39. 4777 4778 *) Исправление: улучшение обработки ошибок метода select. 4779 4780 *) Исправление: ошибки "select() failed (10022: ...)" в nginx/Windows. 4781 4782 *) Исправление: в текстовых сообщениях об ошибках в nginx/Windows; 4783 ошибка появилась в 0.7.53. 4784 4785 4786Изменения в nginx 0.7.53 27.04.2009 4787 4788 *) Изменение: теперь лог, указанный в --error-log-path, создаётся с 4789 самого начала работы. 4790 4791 *) Добавление: теперь ошибки и предупреждения при старте записываются в 4792 error_log и выводятся на stderr. 4793 4794 *) Добавление: при сборке с пустым параметром --prefix= nginx использует 4795 как префикс каталог, в котором он был запущен. 4796 4797 *) Добавление: ключ -p. 4798 4799 *) Добавление: ключ -s на Unix-платформах. 4800 4801 *) Добавление: ключи -? и -h. 4802 Спасибо Jerome Loyet. 4803 4804 *) Добавление: теперь ключи можно задавать в сжатой форме. 4805 4806 *) Исправление: nginx/Windows не работал, если файл конфигурации был 4807 задан ключом -c. 4808 4809 *) Исправление: при использовании директив proxy_store, fastcgi_store, 4810 proxy_cache или fastcgi_cache временные файлы могли не удаляться. 4811 Спасибо Максиму Дунину. 4812 4813 *) Исправление: в заголовке Auth-Method запроса серверу аутентификации 4814 почтового прокси-сервера передавалось неверное значение; ошибка 4815 появилась в 0.7.34. 4816 Спасибо Simon Lecaille. 4817 4818 *) Исправление: при логгировании на Linux не писались текстовые описания 4819 системных ошибок; ошибка появилась в 0.7.45. 4820 4821 *) Исправление: директива fastcgi_cache_min_uses не работала. 4822 Спасибо Андрею Воробьёву. 4823 4824 4825Изменения в nginx 0.7.52 20.04.2009 4826 4827 *) Добавление: первая бинарная версия под Windows. 4828 4829 *) Исправление: корректная обработка метода HEAD при кэшировании. 4830 4831 *) Исправление: корректная обработка строк "If-Modified-Since", 4832 "If-Range" и им подобных в заголовке запроса клиента при кэшировании. 4833 4834 *) Исправление: теперь строки "Set-Cookie" и "P3P" скрываются в 4835 заголовке ответа для закэшированных ответов. 4836 4837 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и 4838 perl поддерживал потоки, то при выходе основного процесса могла 4839 выдаваться ошибка "panic: MUTEX_LOCK". 4840 4841 *) Исправление: nginx не собирался с параметром --without-http-cache; 4842 ошибка появилась в 0.7.48. 4843 4844 *) Исправление: nginx не собирался на платформах, отличных от i386, 4845 amd64, sparc и ppc; ошибка появилась в 0.7.42. 4846 4847 4848Изменения в nginx 0.7.51 12.04.2009 4849 4850 *) Добавление: директива try_files поддерживает код ответа в последнем 4851 параметре. 4852 4853 *) Добавление: теперь в директиве return можно использовать любой код 4854 ответа. 4855 4856 *) Исправление: директива error_page делала внешний редирект без строки 4857 запроса; ошибка появилась в 0.7.44. 4858 4859 *) Исправление: если сервера слушали на нескольких явно описанных 4860 адресах, то виртуальные сервера могли не работать; ошибка появилась в 4861 0.7.39. 4862 4863 4864Изменения в nginx 0.7.50 06.04.2009 4865 4866 *) Исправление: переменные $arg_... не работали; ошибка появилась в 4867 0.7.49. 4868 4869 4870Изменения в nginx 0.7.49 06.04.2009 4871 4872 *) Исправление: при использовании переменных $arg_... в рабочем процессе 4873 мог произойти segmentation fault; ошибка появилась в 0.7.48. 4874 4875 4876Изменения в nginx 0.7.48 06.04.2009 4877 4878 *) Добавление: директива proxy_cache_key. 4879 4880 *) Исправление: теперь nginx учитывает при кэшировании строки 4881 "X-Accel-Expires", "Expires" и "Cache-Control" в заголовке ответа 4882 бэкенда. 4883 4884 *) Исправление: теперь nginx кэширует только ответы на запросы GET. 4885 4886 *) Исправление: директива fastcgi_cache_key не наследовалась. 4887 4888 *) Исправление: переменные $arg_... не работали с SSI-подзапросами. 4889 Спасибо Максиму Дунину. 4890 4891 *) Исправление: nginx не собирался с библиотекой uclibc. 4892 Спасибо Timothy Redaelli. 4893 4894 *) Исправление: nginx не собирался на OpenBSD; ошибка появилась 4895 в 0.7.46. 4896 4897 4898Изменения в nginx 0.7.47 01.04.2009 4899 4900 *) Исправление: nginx не собирался на FreeBSD 6 и более ранних версиях; 4901 ошибка появилась в 0.7.46. 4902 4903 *) Исправление: nginx не собирался на MacOSX; ошибка появилась в 0.7.46. 4904 4905 *) Исправление: если использовался параметр max_size, то cache manager 4906 мог удалить весь кэш; ошибка появилась в 0.7.46. 4907 4908 *) Изменение: в рабочем процессе мог произойти segmentation fault, если 4909 директивы proxy_cache/fastcgi_cache и proxy_cache_valid/ 4910 fastcgi_cache_valid не были заданы на одном уровне; ошибка появилась 4911 в 0.7.46. 4912 4913 *) Исправление: в рабочем процессе мог произойти segmentation fault при 4914 перенаправлении запроса проксированному или FastCGI-серверу с помощью 4915 error_page или try_files; ошибка появилась в 0.7.44. 4916 4917 4918Изменения в nginx 0.7.46 30.03.2009 4919 4920 *) Исправление: архив предыдущего релиза был неверным. 4921 4922 4923Изменения в nginx 0.7.45 30.03.2009 4924 4925 *) Изменение: теперь директивы proxy_cache и proxy_cache_valid можно 4926 задавать на разных уровнях. 4927 4928 *) Изменение: параметр clean_time в директиве proxy_cache_path удалён. 4929 4930 *) Добавление: параметр max_size в директиве proxy_cache_path. 4931 4932 *) Добавление: предварительная поддержка кэширования в модуле 4933 ngx_http_fastcgi_module. 4934 4935 *) Добавление: теперь при ошибках выделения в разделяемой памяти в логе 4936 указываются названия директивы и зоны. 4937 4938 *) Исправление: директива "add_header last-modified ''" не удаляла в 4939 заголовке ответа строку "Last-Modified"; ошибка появилась в 0.7.44. 4940 4941 *) Исправление: в директиве auth_basic_user_file не работал 4942 относительный путь, заданный строкой без переменных; ошибка появилась 4943 в 0.7.44. 4944 Спасибо Jerome Loyet. 4945 4946 *) Исправление: в директиве alias, заданной переменными без ссылок на 4947 выделения в регулярных выражениях; ошибка появилась в 0.7.42. 4948 4949 4950Изменения в nginx 0.7.44 23.03.2009 4951 4952 *) Добавление: предварительная поддержка кэширования в модуле 4953 ngx_http_proxy_module. 4954 4955 *) Добавление: параметр --with-pcre в configure. 4956 4957 *) Добавление: теперь директива try_files может быть использована на 4958 уровне server. 4959 4960 *) Исправление: директива try_files неправильно обрабатывала строку 4961 запроса в последнем параметре. 4962 4963 *) Исправление: директива try_files могла неверно тестировать каталоги. 4964 4965 *) Исправление: если для пары адрес:порт описан только один сервер, то 4966 выделения в регулярных выражениях в директиве server_name не 4967 работали. 4968 4969 4970Изменения в nginx 0.7.43 18.03.2009 4971 4972 *) Исправление: запрос обрабатывался неверно, если директива root 4973 использовала переменные; ошибка появилась в 0.7.42. 4974 4975 *) Исправление: если сервер слушал на адресах типа "*", то значение 4976 переменной $server_addr было "0.0.0.0"; ошибка появилась в 0.7.36. 4977 4978 4979Изменения в nginx 0.7.42 16.03.2009 4980 4981 *) Изменение: ошибка "Invalid argument", возвращаемая 4982 setsockopt(TCP_NODELAY) на Solaris, теперь игнорируется. 4983 4984 *) Изменение: при отсутствии файла, указанного в директиве 4985 auth_basic_user_file, теперь возвращается ошибка 403 вместо 500. 4986 4987 *) Добавление: директива auth_basic_user_file поддерживает переменные. 4988 Спасибо Кириллу Коринскому. 4989 4990 *) Добавление: директива listen поддерживает параметр ipv6only. 4991 Спасибо Zhang Hua. 4992 4993 *) Исправление: в директиве alias со ссылками на выделения в регулярных 4994 выражениях; ошибка появилась в 0.7.40. 4995 4996 *) Исправление: совместимость с Tru64 UNIX. 4997 Спасибо Dustin Marquess. 4998 4999 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась 5000 в 0.7.41. 5001 5002 5003Изменения в nginx 0.7.41 11.03.2009 5004 5005 *) Исправление: в рабочем процессе мог произойти segmentation fault, 5006 если в server_name или location были выделения в регулярных 5007 выражениях; ошибка появилась в 0.7.40. 5008 Спасибо Владимиру Сопоту. 5009 5010 5011Изменения в nginx 0.7.40 09.03.2009 5012 5013 *) Добавление: директива location поддерживает выделения в регулярных 5014 выражениях. 5015 5016 *) Добавление: директиву alias с ссылками на выделения в регулярных 5017 выражениях можно использовать внутри location'а, заданного регулярным 5018 выражением с выделениями. 5019 5020 *) Добавление: директива server_name поддерживает выделения в регулярных 5021 выражениях. 5022 5023 *) Изменение: модуль ngx_http_autoindex_module не показывал последний 5024 слэш для каталогов на файловой системе XFS; ошибка появилась в 5025 0.7.15. 5026 Спасибо Дмитрию Кузьменко. 5027 5028 5029Изменения в nginx 0.7.39 02.03.2009 5030 5031 *) Исправление: при включённом сжатии большие ответы с использованием 5032 SSI могли зависать; ошибка появилась в 0.7.28. 5033 Спасибо Артёму Бохану. 5034 5035 *) Исправление: при использовании коротких статических вариантов в 5036 директиве try_files в рабочем процессе мог произойти segmentation 5037 fault. 5038 5039 5040Изменения в nginx 0.7.38 23.02.2009 5041 5042 *) Добавление: логгирование ошибок аутентификации. 5043 5044 *) Исправление: имя/пароль, заданные в auth_basic_user_file, 5045 игнорировались после нечётного числа пустых строк. 5046 Спасибо Александру Загребину. 5047 5048 *) Исправление: при использовании длинного пути в unix domain сокете в 5049 главном процессе происходил segmentation fault; ошибка появилась в 5050 0.7.36. 5051 5052 5053Изменения в nginx 0.7.37 21.02.2009 5054 5055 *) Исправление: директивы, использующие upstream'ы, не работали; ошибка 5056 появилась в 0.7.36. 5057 5058 5059Изменения в nginx 0.7.36 21.02.2009 5060 5061 *) Добавление: предварительная поддержка IPv6; директива listen модуля 5062 HTTP поддерживает IPv6. 5063 5064 *) Исправление: переменная $ancient_browser не работала для браузеров, 5065 заданных директивами modern_browser. 5066 5067 5068Изменения в nginx 0.7.35 16.02.2009 5069 5070 *) Исправление: директива ssl_engine не использовала SSL-акселератор для 5071 асимметричных шифров. 5072 Спасибо Marcin Gozdalik. 5073 5074 *) Исправление: директива try_files выставляла MIME-type, исходя из 5075 расширения первоначального запроса. 5076 5077 *) Исправление: в директивах server_name, valid_referers и map 5078 неправильно обрабатывались имена вида "*domain.tld", если 5079 использовались маски вида ".domain.tld" и ".subdomain.domain.tld"; 5080 ошибка появилась в 0.7.9. 5081 5082 5083Изменения в nginx 0.7.34 10.02.2009 5084 5085 *) Добавление: параметр off в директиве if_modified_since. 5086 5087 *) Добавление: теперь после команды XCLIENT nginx посылает команду 5088 HELO/EHLO. 5089 Спасибо Максиму Дунину. 5090 5091 *) Добавление: поддержка Microsoft-специфичного режима 5092 "AUTH LOGIN with User Name" в почтовом прокси-сервере. 5093 Спасибо Максиму Дунину. 5094 5095 *) Исправление: в директиве rewrite, возвращающей редирект, старые 5096 аргументы присоединялись к новым через символ "?" вместо "&"; 5097 ошибка появилась в 0.1.18. 5098 Спасибо Максиму Дунину. 5099 5100 *) Исправление: nginx не собирался на AIX. 5101 5102 5103Изменения в nginx 0.7.33 02.02.2009 5104 5105 *) Исправление: если на запрос с телом возвращался редирект, то ответ 5106 мог быть двойным при использовании методов epoll или rtsig. 5107 Спасибо Eden Li. 5108 5109 *) Исправление: для некоторых типов редиректов в переменной 5110 $sent_http_location было пустое значение. 5111 5112 *) Исправление: при использовании директивы resolver в SMTP 5113 прокси-сервере в рабочем процессе мог произойти segmentation fault. 5114 5115 5116Изменения в nginx 0.7.32 26.01.2009 5117 5118 *) Добавление: теперь в директиве try_files можно явно указать проверку 5119 каталога. 5120 5121 *) Исправление: fastcgi_store не всегда сохранял файлы. 5122 5123 *) Исправление: в гео-диапазонах. 5124 5125 *) Исправление: ошибки выделения больших блоков в разделяемой памяти, 5126 если nginx был собран без отладки. 5127 Спасибо Андрею Квасову. 5128 5129 5130Изменения в nginx 0.7.31 19.01.2009 5131 5132 *) Изменение: теперь директива try_files проверяет только файлы, 5133 игнорируя каталоги. 5134 5135 *) Добавление: директива fastcgi_split_path_info. 5136 5137 *) Исправления в поддержке строки "Expect" в заголовке запроса. 5138 5139 *) Исправления в гео-диапазонах. 5140 5141 *) Исправление: при отсутствии ответа ngx_http_memcached_module 5142 возвращал в теле ответа строку "END" вместо 404-ой страницы по 5143 умолчанию; ошибка появилась в 0.7.18. 5144 Спасибо Максиму Дунину. 5145 5146 *) Исправление: при проксировании SMTP nginx выдавал сообщение 5147 "250 2.0.0 OK" вместо "235 2.0.0 OK"; ошибка появилась в 0.7.22. 5148 Спасибо Максиму Дунину. 5149 5150 5151Изменения в nginx 0.7.30 24.12.2008 5152 5153 *) Исправление: в рабочем процессе происходил segmentation fault, если в 5154 директивах fastcgi_pass или proxy_pass использовались переменные и 5155 имя хоста должно было резолвиться; ошибка появилась в 0.7.29. 5156 5157 5158Изменения в nginx 0.7.29 24.12.2008 5159 5160 *) Исправление: директивы fastcgi_pass и proxy_pass не поддерживали 5161 переменные при использовании unix domain сокетов. 5162 5163 *) Исправления в обработке подзапросов; ошибки появились в 0.7.25. 5164 5165 *) Исправление: ответ "100 Continue" выдавался для запросов версии 5166 HTTP/1.0; 5167 Спасибо Максиму Дунину. 5168 5169 *) Исправление: в выделении памяти в модуле ngx_http_gzip_filter_module 5170 под Cygwin. 5171 5172 5173Изменения в nginx 0.7.28 22.12.2008 5174 5175 *) Изменение: в выделении памяти в модуле ngx_http_gzip_filter_module. 5176 5177 *) Изменение: значения по умолчанию для директивы gzip_buffers изменены 5178 с 4 4k/8k на 32 4k или 16 8k. 5179 5180 5181Изменения в nginx 0.7.27 15.12.2008 5182 5183 *) Добавление: директива try_files. 5184 5185 *) Добавление: директива fastcgi_pass поддерживает переменные. 5186 5187 *) Добавление: теперь директива geo может брать адрес из переменной. 5188 Спасибо Андрею Нигматулину. 5189 5190 *) Добавление: теперь модификатор location'а можно указывать без пробела 5191 перед названием. 5192 5193 *) Добавление: переменная $upstream_response_length. 5194 5195 *) Исправление: теперь директива add_header не добавляет пустое 5196 значение. 5197 5198 *) Исправление: при запросе файла нулевой длины nginx закрывал 5199 соединение, ничего не передав; ошибка появилась в 0.7.25. 5200 5201 *) Исправление: метод MOVE не мог перемещать файл в несуществующий 5202 каталог. 5203 5204 *) Исправление: если в сервере не был описан ни один именованный 5205 location, но такой location использовался в директиве error_page, то 5206 в рабочем процессе происходил segmentation fault. 5207 Спасибо Сергею Боченкову. 5208 5209 5210Изменения в nginx 0.7.26 08.12.2008 5211 5212 *) Исправление: в обработке подзапросов; ошибка появилась в 0.7.25. 5213 5214 5215Изменения в nginx 0.7.25 08.12.2008 5216 5217 *) Изменение: в обработке подзапросов. 5218 5219 *) Изменение: теперь разрешаются POST'ы без строки "Content-Length" в 5220 заголовке запроса. 5221 5222 *) Исправление: теперь директивы limit_req и limit_conn указывают 5223 причину запрета запроса. 5224 5225 *) Исправление: в параметре delete директивы geo. 5226 5227 5228Изменения в nginx 0.7.24 01.12.2008 5229 5230 *) Добавление: директива if_modified_since. 5231 5232 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если перед 5233 ответом сервер передавал много сообщений в stderr. 5234 5235 *) Исправление: переменные "$cookie_..." не работали в SSI and в 5236 перловом модуле. 5237 5238 5239Изменения в nginx 0.7.23 27.11.2008 5240 5241 *) Добавление: параметры delete и ranges в директиве geo. 5242 5243 *) Добавление: ускорение загрузки geo-базы с большим числом значений. 5244 5245 *) Добавление: уменьшение памяти, необходимой для загрузки geo-базы. 5246 5247 5248Изменения в nginx 0.7.22 20.11.2008 5249 5250 *) Добавление: параметр none в директиве smtp_auth. 5251 Спасибо Максиму Дунину. 5252 5253 *) Добавление: переменные "$cookie_...". 5254 5255 *) Исправление: директива directio не работала с файловой системой XFS. 5256 5257 *) Исправление: resolver не понимал большие DNS-ответы. 5258 Спасибо Zyb. 5259 5260 5261Изменения в nginx 0.7.21 11.11.2008 5262 5263 *) Изменения в модуле ngx_http_limit_req_module. 5264 5265 *) Добавление: поддержка EXSLT в модуле ngx_http_xslt_module. 5266 Спасибо Денису Латыпову. 5267 5268 *) Изменение: совместимость с glibc 2.3. 5269 Спасибо Eric Benson и Максиму Дунину. 5270 5271 *) Исправление: nginx не запускался на MacOSX 10.4 и более ранних; 5272 ошибка появилась в 0.7.6. 5273 5274 5275Изменения в nginx 0.7.20 10.11.2008 5276 5277 *) Изменения в модуле ngx_http_gzip_filter_module. 5278 5279 *) Добавление: модуль ngx_http_limit_req_module. 5280 5281 *) Исправление: на платформах sparc и ppc рабочие процессы могли 5282 выходить по сигналу SIGBUS; ошибка появилась в 0.7.3. 5283 Спасибо Максиму Дунину. 5284 5285 *) Исправление: директивы вида "proxy_pass http://host/some:uri" не 5286 работали; ошибка появилась в 0.7.12. 5287 5288 *) Исправление: при использовании HTTPS запросы могли завершаться с 5289 ошибкой "bad write retry". 5290 5291 *) Исправление: модуль ngx_http_secure_link_module не работал внутри 5292 location'ов с именами меньше 3 символов. 5293 5294 *) Исправление: переменная $server_addr могла не иметь значения. 5295 5296 5297Изменения в nginx 0.7.19 13.10.2008 5298 5299 *) Исправление: обновление номера версии. 5300 5301 5302Изменения в nginx 0.7.18 13.10.2008 5303 5304 *) Изменение: директива underscores_in_headers; теперь nginx по 5305 умолчанию не разрешает подчёркивания в именах строк в заголовке 5306 запроса клиента. 5307 5308 *) Добавление: модуль ngx_http_secure_link_module. 5309 5310 *) Добавление: директива real_ip_header поддерживает любой заголовок. 5311 5312 *) Добавление: директива log_subrequest. 5313 5314 *) Добавление: переменная $realpath_root. 5315 5316 *) Добавление: параметры http_502 и http_504 в директиве 5317 proxy_next_upstream. 5318 5319 *) Исправление: параметр http_503 в директивах proxy_next_upstream или 5320 fastcgi_next_upstream не работал. 5321 5322 *) Исправление: nginx мог выдавать строку "Transfer-Encoding: chunked" 5323 для запросов HEAD. 5324 5325 *) Исправление: теперь accept-лимит зависит от числа worker_connections. 5326 5327 5328Изменения в nginx 0.7.17 15.09.2008 5329 5330 *) Добавление: директива directio теперь работает на Linux. 5331 5332 *) Добавление: переменная $pid. 5333 5334 *) Исправление: оптимизация directio, появившаяся в 0.7.15, не работала 5335 при использовании open_file_cache. 5336 5337 *) Исправление: access_log с переменными не работал на Linux; ошибка 5338 появилась в 0.7.7. 5339 5340 *) Исправление: модуль ngx_http_charset_module не понимал название 5341 кодировки в кавычках, полученное от бэкенда. 5342 5343 5344Изменения в nginx 0.7.16 08.09.2008 5345 5346 *) Исправление: nginx не собирался на 64-битных платформах; ошибка 5347 появилась в 0.7.15. 5348 5349 5350Изменения в nginx 0.7.15 08.09.2008 5351 5352 *) Добавление: модуль ngx_http_random_index_module. 5353 5354 *) Добавление: директива directio оптимизирована для запросов файлов, 5355 начинающихся с произвольной позиции. 5356 5357 *) Добавление: директива directio при необходимости запрещает 5358 использование sendfile. 5359 5360 *) Добавление: теперь nginx разрешает подчёркивания в именах строк в 5361 заголовке запроса клиента. 5362 5363 5364Изменения в nginx 0.7.14 01.09.2008 5365 5366 *) Изменение: теперь директивы ssl_certificate и ssl_certificate_key не 5367 имеют значений по умолчанию. 5368 5369 *) Добавление: директива listen поддерживает параметр ssl. 5370 5371 *) Добавление: теперь при переконфигурации nginx учитывает изменение 5372 временной зоны на FreeBSD и Linux. 5373 5374 *) Исправление: параметры директивы listen, такие как backlog, rcvbuf и 5375 прочие, не устанавливались, если сервером по умолчанию был не первый 5376 сервер. 5377 5378 *) Исправление: при использовании в качестве аргументов части URI, 5379 выделенного с помощью директивы rewrite, эти аргументы не 5380 экранировались. 5381 5382 *) Исправление: улучшения тестирования правильности конфигурационного 5383 файла. 5384 5385 5386Изменения в nginx 0.7.13 26.08.2008 5387 5388 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась 5389 в 0.7.12. 5390 5391 5392Изменения в nginx 0.7.12 26.08.2008 5393 5394 *) Добавление: директива server_name поддерживает пустое имя "". 5395 5396 *) Добавление: директива gzip_disable поддерживает специальную маску 5397 msie6. 5398 5399 *) Исправление: при использовании параметра max_fails=0 в upstream'е с 5400 несколькими серверами рабочий процесс выходил по сигналу SIGFPE. 5401 Спасибо Максиму Дунину. 5402 5403 *) Исправление: при перенаправлении запроса с помощью директивы 5404 error_page терялось тело запроса. 5405 5406 *) Исправление: при перенаправлении запроса с методом HEAD с помощью 5407 директивы error_page возвращался полный ответ. 5408 5409 *) Исправление: метод $r->header_in() не возвращал значения строк 5410 "Host", "User-Agent", и "Connection" из заголовка запроса; ошибка 5411 появилась в 0.7.0. 5412 5413 5414Изменения в nginx 0.7.11 18.08.2008 5415 5416 *) Изменение: теперь ngx_http_charset_module по умолчанию не работает 5417 MIME-типом text/css. 5418 5419 *) Добавление: теперь nginx возвращает код 405 для метода POST при 5420 запросе статического файла, только если файл существует. 5421 5422 *) Добавление: директива proxy_ssl_session_reuse. 5423 5424 *) Исправление: после перенаправления запроса с помощью 5425 "X-Accel-Redirect" директива proxy_pass без URI могла использовать 5426 оригинальный запрос. 5427 5428 *) Исправление: если у каталога были права доступа только на поиск 5429 файлов и первый индексный файл отсутствовал, то nginx возвращал 5430 ошибку 500. 5431 5432 *) Исправление: ошибок во вложенных location'ах; ошибки появились в 5433 0.7.1. 5434 5435 5436Изменения в nginx 0.7.10 13.08.2008 5437 5438 *) Исправление: ошибок в директивах addition_types, charset_types, 5439 gzip_types, ssi_types, sub_filter_types и xslt_types; ошибки 5440 появились в 0.7.9. 5441 5442 *) Исправление: рекурсивной error_page для 500 ошибки. 5443 5444 *) Исправление: теперь модуль ngx_http_realip_module устанавливает адрес 5445 не для всего keepalive соединения, а для каждого запроса по этому 5446 соединению. 5447 5448 5449Изменения в nginx 0.7.9 12.08.2008 5450 5451 *) Изменение: теперь ngx_http_charset_module по умолчанию работает со 5452 следующими MIME-типами: text/html, text/css, text/xml, text/plain, 5453 text/vnd.wap.wml, application/x-javascript и application/rss+xml. 5454 5455 *) Добавление: директивы charset_types и addition_types. 5456 5457 *) Добавление: теперь директивы gzip_types, ssi_types и sub_filter_types 5458 используют хэш. 5459 5460 *) Добавление: модуль ngx_cpp_test_module. 5461 5462 *) Добавление: директива expires поддерживает суточное время. 5463 5464 *) Добавление: улучшения и исправления в модуле ngx_http_xslt_module. 5465 Спасибо Денису Латыпову и Максиму Дунину. 5466 5467 *) Исправление: директива log_not_found не работала при поиске индексных 5468 файлов. 5469 5470 *) Исправление: HTTPS-соединения могли зависнуть, если использовались 5471 методы kqueue, epoll, rtsig или eventport; ошибка появилась в 0.7.7. 5472 5473 *) Исправление: если в директивах server_name, valid_referers и map 5474 использовалась маска вида "*.domain.tld" и при этом полное имя вида 5475 "domain.tld" не было описано, то это имя попадало под маску; ошибка 5476 появилась в 0.3.18. 5477 5478 5479Изменения в nginx 0.7.8 04.08.2008 5480 5481 *) Добавление: модуль ngx_http_xslt_module. 5482 5483 *) Добавление: переменные "$arg_...". 5484 5485 *) Добавление: поддержка directio в Solaris. 5486 Спасибо Ivan Debnar. 5487 5488 *) Исправление: теперь, если FastCGI-сервер присылает строку "Location" 5489 в заголовке ответа без строки статуса, то nginx использует код 5490 статуса 302. 5491 Спасибо Максиму Дунину. 5492 5493 5494Изменения в nginx 0.7.7 30.07.2008 5495 5496 *) Изменение: теперь ошибка EAGAIN при вызове connect() не считается 5497 временной. 5498 5499 *) Изменение: значением переменной $ssl_client_cert теперь является 5500 сертификат, перед каждой строкой которого, кроме первой, вставляется 5501 символ табуляции; неизменённый сертификат доступен через переменную 5502 $ssl_client_raw_cert. 5503 5504 *) Добавление: параметр ask директивы ssl_verify_client. 5505 5506 *) Добавление: улучшения в обработке byte-range. 5507 Спасибо Максиму Дунину. 5508 5509 *) Добавление: директива directio. 5510 Спасибо Jiang Hong. 5511 5512 *) Добавление: поддержка sendfile() в MacOSX 10.5. 5513 5514 *) Исправление: в MacOSX и Cygwin при проверке location'ов теперь 5515 делается сравнение без учёта регистра символов; однако, сравнение 5516 ограничено только однобайтными locale'ями. 5517 5518 *) Исправление: соединения почтового прокси-сервера зависали в режиме 5519 SSL, если использовались методы select, poll или /dev/poll. 5520 5521 *) Исправление: ошибки при использовании кодировки UTF-8 в 5522 ngx_http_autoindex_module. 5523 5524 5525Изменения в nginx 0.7.6 07.07.2008 5526 5527 *) Исправление: теперь при использовании переменных в директиве 5528 access_log всегда проверяется существовании root'а для запроса. 5529 5530 *) Исправление: модуль ngx_http_flv_module не поддерживал несколько 5531 значений в аргументах запроса. 5532 5533 5534Изменения в nginx 0.7.5 01.07.2008 5535 5536 *) Исправления в поддержке переменных в директиве access_log; ошибки 5537 появились в 0.7.4. 5538 5539 *) Исправление: nginx не собирался с параметром 5540 --without-http_gzip_module; ошибка появилась в 0.7.3. 5541 Спасибо Кириллу Коринскому. 5542 5543 *) Исправление: при совместном использовании sub_filter и SSI ответы 5544 могли передаваться неверно. 5545 5546 5547Изменения в nginx 0.7.4 30.06.2008 5548 5549 *) Добавление: директива access_log поддерживает переменные. 5550 5551 *) Добавление: директива open_log_file_cache. 5552 5553 *) Добавление: ключ -g. 5554 5555 *) Добавление: поддержка строки "Expect" в заголовке запроса. 5556 5557 *) Исправление: большие включения в SSI могли передавались не полностью. 5558 5559 5560Изменения в nginx 0.7.3 23.06.2008 5561 5562 *) Изменение: MIME-тип для расширения rss изменён на 5563 "application/rss+xml". 5564 5565 *) Изменение: теперь директива "gzip_vary on" выдаёт строку 5566 "Vary: Accept-Encoding" в заголовке ответа и для несжатых ответов. 5567 5568 *) Добавление: теперь при использовании протокола "https://" в директиве 5569 rewrite автоматически делается редирект. 5570 5571 *) Исправление: директива proxy_pass не работала с протоколом HTTPS; 5572 ошибка появилась в 0.6.9. 5573 5574 5575Изменения в nginx 0.7.2 16.06.2008 5576 5577 *) Добавление: теперь nginx поддерживает шифры с обменом EDH-ключами. 5578 5579 *) Добавление: директива ssl_dhparam. 5580 5581 *) Добавление: переменная $ssl_client_cert. 5582 Спасибо Manlio Perillo. 5583 5584 *) Исправление: после изменения URI с помощью директивы rewrite nginx не 5585 искал новый location; ошибка появилась в 0.7.1. 5586 Спасибо Максиму Дунину. 5587 5588 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась 5589 в 0.7.1. 5590 5591 *) Исправление: при редиректе запроса к каталогу с добавлением слэша 5592 nginx не добавлял аргументы из оригинального запроса. 5593 5594 5595Изменения в nginx 0.7.1 26.05.2008 5596 5597 *) Изменение: теперь поиск location'а делается с помощью дерева. 5598 5599 *) Изменение: директива optimize_server_names упразднена в связи с 5600 появлением директивы server_name_in_redirect. 5601 5602 *) Изменение: некоторые давно устаревшие директивы больше не 5603 поддерживаются. 5604 5605 *) Изменение: параметр "none" в директиве ssl_session_cache; теперь этот 5606 параметр используется по умолчанию. 5607 Спасибо Rob Mueller. 5608 5609 *) Исправление: рабочие процессы могли не реагировать на сигналы 5610 переконфигурации и ротации логов. 5611 5612 *) Исправление: nginx не собирался на последних Fedora 9 Linux. 5613 Спасибо Roxis. 5614 5615 5616Изменения в nginx 0.7.0 19.05.2008 5617 5618 *) Изменение: теперь символы 0x00-0x1F, '"' и '\' в access_log 5619 записываются в виде \xXX. 5620 Спасибо Максиму Дунину. 5621 5622 *) Изменение: теперь nginx разрешает несколько строк "Host" в заголовке 5623 запроса. 5624 5625 *) Добавление: директива expires поддерживает флаг modified. 5626 5627 *) Добавление: переменные $uid_got и $uid_set можно использовать на 5628 любой стадии обработки запроса. 5629 5630 *) Добавление: переменная $hostname. 5631 Спасибо Андрею Нигматулину. 5632 5633 *) Добавление: поддержка DESTDIR. 5634 Спасибо Todd A. Fisher и Andras Voroskoi. 5635 5636 *) Исправление: при использовании keepalive на Linux в рабочем процессе 5637 мог произойти segmentation fault. 5638 5639 5640Изменения в nginx 0.6.31 12.05.2008 5641 5642 *) Исправление: nginx не обрабатывал ответ FastCGI-сервера, если строка 5643 заголовка ответа была в конце записи FastCGI; ошибка появилась в 5644 0.6.2. 5645 Спасибо Сергею Серову. 5646 5647 *) Исправление: при удалении файла и использовании директивы 5648 open_file_cache_errors off в рабочем процессе мог произойти 5649 segmentation fault. 5650 5651 5652Изменения в nginx 0.6.30 29.04.2008 5653 5654 *) Изменение: теперь, если маске, заданной в директиве include, не 5655 соответствует ни один файл, то nginx не выдаёт ошибку. 5656 5657 *) Добавление: теперь время в директивах можно задавать без пробела, 5658 например, "1h50m". 5659 5660 *) Исправление: утечек памяти, если директива ssl_verify_client имела 5661 значение on. 5662 Спасибо Chavelle Vincent. 5663 5664 *) Исправление: директива sub_filter могла вставлять заменяемый текст в 5665 вывод. 5666 5667 *) Исправление: директива error_page не воспринимала параметры в 5668 перенаправляемом URI. 5669 5670 *) Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы 5671 в бинарном режиме. 5672 5673 *) Исправление: nginx не собирался под OpenBSD; ошибка появилась в 5674 0.6.15. 5675 5676 5677Изменения в nginx 0.6.29 18.03.2008 5678 5679 *) Добавление: модуль ngx_google_perftools_module. 5680 5681 *) Исправление: модуль ngx_http_perl_module не собирался на 64-битных 5682 платформах; ошибка появилась в 0.6.27. 5683 5684 5685Изменения в nginx 0.6.28 13.03.2008 5686 5687 *) Исправление: метод rtsig не собирался; ошибка появилась в 0.6.27. 5688 5689 5690Изменения в nginx 0.6.27 12.03.2008 5691 5692 *) Изменение: теперь на Linux 2.6.18+ по умолчанию не собирается метод 5693 rtsig. 5694 5695 *) Изменение: теперь при перенаправлении запроса в именованный location 5696 с помощью директивы error_page метод запроса не изменяется. 5697 5698 *) Добавление: директивы resolver и resolver_timeout в SMTP 5699 прокси-сервере. 5700 5701 *) Добавление: директива post_action поддерживает именованные 5702 location'ы. 5703 5704 *) Исправление: при перенаправлении запроса из location'а c обработчиком 5705 proxy, FastCGI или memcached в именованный location со статическим 5706 обработчиком в рабочем процессе происходил segmentation fault. 5707 5708 *) Исправление: браузеры не повторяли SSL handshake, если при первом 5709 handshake не оказалось правильного клиентского сертификата. 5710 Спасибо Александру Инюхину. 5711 5712 *) Исправление: при перенаправлении ошибок 495-497 с помощью директивы 5713 error_page без изменения кода ошибки nginx пытался выделить очень 5714 много памяти. 5715 5716 *) Исправление: утечки памяти в долгоживущих небуфферизированных 5717 соединениях. 5718 5719 *) Исправление: утечки памяти в resolver'е. 5720 5721 *) Исправление: при перенаправлении запроса из location'а c обработчиком 5722 proxy в другой location с обработчиком proxy в рабочем процессе 5723 происходил segmentation fault. 5724 5725 *) Исправление: ошибки в кэшировании переменных $proxy_host и 5726 $proxy_port. 5727 Спасибо Сергею Боченкову. 5728 5729 *) Исправление: директива proxy_pass с переменными использовала порт, 5730 описанной в другой директиве proxy_pass без переменных, но с таким же 5731 именем хоста. 5732 Спасибо Сергею Боченкову. 5733 5734 *) Исправление: во время переконфигурации на некоторых 64-битном 5735 платформах в лог записывался alert "sendmsg() failed (9: Bad file 5736 descriptor)". 5737 5738 *) Исправление: при повторном использовании в SSI пустого block'а в 5739 качестве заглушки в рабочем процессе происходил segmentation fault. 5740 5741 *) Исправление: ошибки при копировании части URI, содержащего 5742 экранированные символы, в аргументы. 5743 5744 5745Изменения в nginx 0.6.26 11.02.2008 5746 5747 *) Исправление: директивы proxy_store и fastcgi_store не проверяли длину 5748 ответа. 5749 5750 *) Исправление: при использовании большого значения в директиве expires 5751 в рабочем процессе происходил segmentation fault. 5752 Спасибо Joaquin Cuenca Abela. 5753 5754 *) Исправление: nginx неверно определял длину строки кэша на Pentium 4. 5755 Спасибо Геннадию Махомеду. 5756 5757 *) Исправление: в проксированных подзапросах и подзапросах к 5758 FastCGI-серверу вместо метода GET использовался оригинальный метод 5759 клиента. 5760 5761 *) Исправление: утечки сокетов в режиме HTTPS при использовании 5762 отложенного accept'а. 5763 Спасибо Ben Maurer. 5764 5765 *) Исправление: nginx выдавал ошибочное сообщение "SSL_shutdown() failed 5766 (SSL: )"; ошибка появилась в 0.6.23. 5767 5768 *) Исправление: при использовании HTTPS запросы могли завершаться с 5769 ошибкой "bad write retry"; ошибка появилась в 0.6.23. 5770 5771 5772Изменения в nginx 0.6.25 08.01.2008 5773 5774 *) Изменение: вместо специального параметра "*" в директиве server_name 5775 теперь используется директива server_name_in_redirect. 5776 5777 *) Изменение: в качестве основного имени в директиве server_name теперь 5778 можно использовать имена с масками и регулярными выражениями. 5779 5780 *) Изменение: директива satisfy_any заменена директивой satisfy. 5781 5782 *) Изменение: после переконфигурации старые рабочие процесс могли сильно 5783 нагружать процессор при запуске под Linux OpenVZ. 5784 5785 *) Добавление: директива min_delete_depth. 5786 5787 *) Исправление: методы COPY и MOVE не работали с одиночными файлами. 5788 5789 *) Исправление: модуль ngx_http_gzip_static_module не позволял работать 5790 модулю ngx_http_dav_module; ошибка появилась в 0.6.23. 5791 5792 *) Исправление: утечки сокетов в режиме HTTPS при использовании 5793 отложенного accept'а. 5794 Спасибо Ben Maurer. 5795 5796 *) Исправление: nginx не собирался без библиотеки PCRE; ошибка появилась 5797 в 0.6.23. 5798 5799 5800Изменения в nginx 0.6.24 27.12.2007 5801 5802 *) Исправление: при использовании HTTPS в рабочем процессе мог произойти 5803 segmentation fault; ошибка появилась в 0.6.23. 5804 5805 5806Изменения в nginx 0.6.23 27.12.2007 5807 5808 *) Изменение: параметр "off" в директиве ssl_session_cache; теперь этот 5809 параметр используется по умолчанию. 5810 5811 *) Изменение: директива open_file_cache_retest переименована в 5812 open_file_cache_valid. 5813 5814 *) Добавление: директива open_file_cache_min_uses. 5815 5816 *) Добавление: модуль ngx_http_gzip_static_module. 5817 5818 *) Добавление: директива gzip_disable. 5819 5820 *) Добавление: директиву memcached_pass можно использовать внутри блока 5821 if. 5822 5823 *) Исправление: если внутри одного location'а использовались директивы 5824 "memcached_pass" и "if", то в рабочем процессе происходил 5825 segmentation fault. 5826 5827 *) Исправление: если при использовании директивы satisfy_any on" были 5828 заданы директивы не всех модулей доступа, то заданные директивы не 5829 проверялись. 5830 5831 *) Исправление: параметры, заданные регулярным выражением в директиве 5832 valid_referers, не наследовалась с предыдущего уровня. 5833 5834 *) Исправление: директива post_action не работала, если запрос 5835 завершался с кодом 499. 5836 5837 *) Исправление: оптимизация использования 16K буфера для SSL-соединения. 5838 Спасибо Ben Maurer. 5839 5840 *) Исправление: STARTTLS в режиме SMTP не работал. 5841 Спасибо Олегу Мотиенко. 5842 5843 *) Исправление: при использовании HTTPS запросы могли завершаться с 5844 ошибкой "bad write retry"; ошибка появилась в 0.5.13. 5845 5846 5847Изменения в nginx 0.6.22 19.12.2007 5848 5849 *) Изменение: теперь все методы модуля ngx_http_perl_module возвращают 5850 значения, скопированные в память, выделенную perl'ом. 5851 5852 *) Исправление: если nginx был собран с модулем ngx_http_perl_module, 5853 использовался perl до версии 5.8.6 и perl поддерживал потоки, то во 5854 время переконфигурации основной процесс аварийно выходил; ошибка 5855 появилась в 0.5.9. 5856 Спасибо Борису Жмурову. 5857 5858 *) Исправление: в методы модуля ngx_http_perl_module могли передаваться 5859 неверные результаты выделения в регулярных выражениях. 5860 5861 *) Исправление: если метод $r->has_request_body() вызывался для запроса, 5862 у которого небольшое тело запроса было уже полностью получено, то в 5863 рабочем процессе происходил segmentation fault. 5864 5865 *) Исправление: large_client_header_buffers не освобождались перед 5866 переходом в состояние keep-alive. 5867 Спасибо Олександру Штепе. 5868 5869 *) Исправление: в переменной $upstream_addr не записывался последний 5870 адрес; ошибка появилась в 0.6.18. 5871 5872 *) Исправление: директива fastcgi_catch_stderr не возвращала ошибку; 5873 теперь она возвращает ошибку 502, которую можно направить на 5874 следующий сервер с помощью "fastcgi_next_upstream invalid_header". 5875 5876 *) Исправление: при использовании директивы fastcgi_catch_stderr в 5877 основном процессе происходил segmentation fault; ошибка появилась в 5878 0.6.10. 5879 Спасибо Manlio Perillo. 5880 5881 5882Изменения в nginx 0.6.21 03.12.2007 5883 5884 *) Изменение: если в значениях переменных директивы proxy_pass 5885 используются только IP-адреса, то указывать resolver не нужно. 5886 5887 *) Исправление: при использовании директивы proxy_pass c URI-частью в 5888 рабочем процессе мог произойти segmentation fault; ошибка появилась в 5889 0.6.19. 5890 5891 *) Исправление: если resolver использовался на платформах, не 5892 поддерживающих метод kqueue, то nginx выдавал alert "name is out of 5893 response". 5894 Спасибо Андрею Нигматулину. 5895 5896 *) Исправление: При использовании переменной $server_protocol в 5897 FastCGI-параметрах и запросе, длина которого была близка к значению 5898 директивы client_header_buffer_size, nginx выдавал alert "fastcgi: 5899 the request record is too big". 5900 5901 *) Исправление: при обычном запросе версии HTTP/0.9 к HTTPS серверу 5902 nginx возвращал обычный ответ. 5903 5904 5905Изменения в nginx 0.6.20 28.11.2007 5906 5907 *) Исправление: при использовании директивы proxy_pass c URI-частью в 5908 рабочем процессе мог произойти segmentation fault; ошибка появилась в 5909 0.6.19. 5910 5911 5912Изменения в nginx 0.6.19 27.11.2007 5913 5914 *) Исправление: версия 0.6.18 не собиралась. 5915 5916 5917Изменения в nginx 0.6.18 27.11.2007 5918 5919 *) Изменение: теперь модуль ngx_http_userid_module в поле куки с номером 5920 процесса добавляет микросекунды на время старта. 5921 5922 *) Изменение: в error_log теперь записывается полная строка запроса 5923 вместо только URI. 5924 5925 *) Добавление: директива proxy_pass поддерживает переменные. 5926 5927 *) Добавление: директивы resolver и resolver_timeout. 5928 5929 *) Добавление: теперь директива "add_header last-modified ''" удаляет в 5930 заголовке ответа строку "Last-Modified". 5931 5932 *) Исправление: директива limit_rate не позволяла передавать на полной 5933 скорости, даже если был указан очень большой лимит. 5934 5935 5936Изменения в nginx 0.6.17 15.11.2007 5937 5938 *) Добавление: поддержка строки "If-Range" в заголовке запроса. 5939 Спасибо Александру Инюхину. 5940 5941 *) Исправление: при использовании директивы msie_refresh повторно 5942 экранировались уже экранированные символы; ошибка появилась в 0.6.4. 5943 5944 *) Исправление: директива autoindex не работала при использовании "alias 5945 /". 5946 5947 *) Исправление: при использовании подзапросов в рабочем процессе мог 5948 произойти segmentation fault. 5949 5950 *) Исправление: при использовании SSL и gzip большие ответы могли 5951 передаваться не полностью. 5952 5953 *) Исправление: если ответ проксированного сервера был версии HTTP/0.9, 5954 то переменная $status была равна 0. 5955 5956 5957Изменения в nginx 0.6.16 29.10.2007 5958 5959 *) Изменение: теперь на Linux используется uname(2) вместо procfs. 5960 Спасибо Илье Новикову. 5961 5962 *) Исправление: если в директиве error_page использовался символ "?", то 5963 он экранировался при проксировании запроса; ошибка появилась в 5964 0.6.11. 5965 5966 *) Исправление: совместимость с mget. 5967 5968 5969Изменения в nginx 0.6.15 22.10.2007 5970 5971 *) Добавление: совместимость с Cygwin. 5972 Спасибо Владимиру Кутакову. 5973 5974 *) Добавление: директива merge_slashes. 5975 5976 *) Добавление: директива gzip_vary. 5977 5978 *) Добавление: директива server_tokens. 5979 5980 *) Исправление: nginx не раскодировал URI в команде SSI include. 5981 5982 *) Исправление: при использовании переменной в директивах charset или 5983 source_charset на старте или во время переконфигурации происходил 5984 segmentation fault, 5985 5986 *) Исправление: nginx возвращал ошибку 400 на запросы вида 5987 "GET http://www.domain.com HTTP/1.0". 5988 Спасибо James Oakley. 5989 5990 *) Исправление: после перенаправления запроса с телом запроса с помощью 5991 директивы error_page nginx пытался снова прочитать тело запроса; 5992 ошибка появилась в 0.6.7. 5993 5994 *) Исправление: в рабочем процессе происходил segmentation fault, если у 5995 сервера, обрабатывающему запрос, не был явно определён server_name; 5996 ошибка появилась в 0.6.7. 5997 5998 5999Изменения в nginx 0.6.14 15.10.2007 6000 6001 *) Изменение: теперь по умолчанию команда SSI echo использует 6002 кодирование entity. 6003 6004 *) Добавление: параметр encoding в команде SSI echo. 6005 6006 *) Добавление: директиву access_log можно использовать внутри блока 6007 limit_except. 6008 6009 *) Исправление: если все сервера апстрима оказывались недоступными, то 6010 до восстановления работоспособности у всех серверов вес становился 6011 равным одному; ошибка появилась в 0.6.6. 6012 6013 *) Исправление: при использовании переменных $date_local и $date_gmt вне 6014 модуля ngx_http_ssi_filter_module в рабочем процессе происходил 6015 segmentation fault. 6016 6017 *) Исправление: при использовании включённом отладочном логе в рабочем 6018 процессе мог произойти segmentation fault. 6019 Спасибо Андрею Нигматулину. 6020 6021 *) Исправление: ngx_http_memcached_module не устанавливал 6022 $upstream_response_time. 6023 Спасибо Максиму Дунину. 6024 6025 *) Исправление: рабочий процесс мог зациклиться при использовании 6026 memcached. 6027 6028 *) Исправление: nginx распознавал параметры "close" и "keep-alive" в 6029 строке "Connection" в заголовке запроса только, если они были в 6030 нижнем регистре; ошибка появилась в 0.6.11. 6031 6032 *) Исправление: sub_filter не работал с пустой строкой замены. 6033 6034 *) Исправление: в парсинге sub_filter. 6035 6036 6037Изменения в nginx 0.6.13 24.09.2007 6038 6039 *) Исправление: nginx не закрывал файл каталога для запроса HEAD, если 6040 использовался autoindex 6041 Спасибо Arkadiusz Patyk. 6042 6043 6044Изменения в nginx 0.6.12 21.09.2007 6045 6046 *) Изменение: почтовый прокси-сервер разделён на три модуля: pop3, imap 6047 и smtp. 6048 6049 *) Добавление: параметры конфигурации --without-mail_pop3_module, 6050 --without-mail_imap_module и --without-mail_smtp_module. 6051 6052 *) Добавление: директивы smtp_greeting_delay и smtp_client_buffer модуля 6053 ngx_mail_smtp_module. 6054 6055 *) Исправление: wildcard в конце имени сервера не работали; ошибка 6056 появилась в 0.6.9. 6057 6058 *) Исправление: при использовании разделяемой библиотеки PCRE, 6059 расположенной в нестандартном месте, nginx не запускался на Solaris. 6060 6061 *) Исправление: директивы proxy_hide_header и fastcgi_hide_header не 6062 скрывали строки заголовка ответа с именем больше 32 символов. 6063 Спасибо Manlio Perillo. 6064 6065 6066Изменения в nginx 0.6.11 11.09.2007 6067 6068 *) Исправление: счётчик активных соединений всегда рос при использовании 6069 почтового прокси-сервера. 6070 6071 *) Исправление: если бэкенд возвращал только заголовок ответа при 6072 небуферизированном проксировании, то nginx закрывал соединение с 6073 бэкендом по таймауту. 6074 6075 *) Исправление: nginx не поддерживал несколько строк "Connection" в 6076 заголовке запроса. 6077 6078 *) Исправление: если в сервере апстрима был задан max_fails, то после 6079 первой же неудачной попытки вес сервера навсегда становился равным 6080 одному; ошибка появилась в 0.6.6. 6081 6082 6083Изменения в nginx 0.6.10 03.09.2007 6084 6085 *) Добавление: директивы open_file_cache, open_file_cache_retest и 6086 open_file_cache_errors. 6087 6088 *) Исправление: утечки сокетов; ошибка появилась в 0.6.7. 6089 6090 *) Исправление: В строку заголовка ответа "Content-Type", указанную в 6091 методе $r->send_http_header(), не добавлялась кодировка, указанная в 6092 директиве charset. 6093 6094 *) Исправление: при использовании метода /dev/poll в рабочем процессе 6095 мог произойти segmentation fault. 6096 6097 6098Изменения в nginx 0.6.9 28.08.2007 6099 6100 *) Исправление: рабочий процесс мог зациклиться при использовании 6101 протокола HTTPS; ошибка появилась в 0.6.7. 6102 6103 *) Исправление: если сервер слушал на двух адресах или портах, то nginx 6104 не запускался при использовании wildcard в конце имени сервера. 6105 6106 *) Исправление: директива ip_hash могла неверно помечать сервера как 6107 нерабочие. 6108 6109 *) Исправление: nginx не собирался на amd64; ошибка появилась в 0.6.8. 6110 6111 6112Изменения в nginx 0.6.8 20.08.2007 6113 6114 *) Изменение: теперь nginx пытается установить директивы 6115 worker_priority, worker_rlimit_nofile, worker_rlimit_core, 6116 worker_rlimit_sigpending без привилегий root'а. 6117 6118 *) Изменение: теперь nginx экранирует символы пробела и "%" при передаче 6119 запроса серверу аутентификации почтового прокси-сервера. 6120 6121 *) Изменение: теперь nginx экранирует символ "%" в переменной 6122 $memcached_key. 6123 6124 *) Исправление: при указании относительного пути к конфигурационному 6125 файлу в качестве параметра ключа -c nginx определял путь относительно 6126 конфигурационного префикса; ошибка появилась в 0.6.6. 6127 6128 *) Исправление: nginx не работал на FreeBSD/sparc64. 6129 6130 6131Изменения в nginx 0.6.7 15.08.2007 6132 6133 *) Изменение: теперь пути, указанные в директивах include, 6134 auth_basic_user_file, perl_modules, ssl_certificate, 6135 ssl_certificate_key и ssl_client_certificate, определяются 6136 относительно каталога конфигурационного файла nginx.conf, а не 6137 относительно префикса. 6138 6139 *) Изменение: параметр --sysconfdir=PATH в configure упразднён. 6140 6141 *) Изменение: для обновления на лету версий 0.1.x создан специальный 6142 сценарий make upgrade1. 6143 6144 *) Добавление: директивы server_name и valid_referers поддерживают 6145 регулярные выражения. 6146 6147 *) Добавление: директива server в блоке upstream поддерживает параметр 6148 backup. 6149 6150 *) Добавление: модуль ngx_http_perl_module поддерживает метод 6151 $r->discard_request_body. 6152 6153 *) Добавление: директива "add_header Last-Modified ..." меняет строку 6154 "Last-Modified" в заголовке ответа. 6155 6156 *) Исправление: если на запрос с телом возвращался ответ с кодом HTTP 6157 отличным от 200, и после этого запроса соединение переходило в 6158 состояние keep-alive, то на следующий запрос nginx возвращал 400. 6159 6160 *) Исправление: если в директиве auth_http был задан неправильный адрес, 6161 то в рабочем процессе происходил segmentation fault. 6162 6163 *) Исправление: теперь по умолчанию nginx использует значение 511 для 6164 listen backlog на всех платформах, кроме FreeBSD. 6165 Спасибо Jiang Hong. 6166 6167 *) Исправление: рабочий процесс мог зациклиться, если server в блоке 6168 upstream был помечен как down; ошибка появилась в 0.6.6. 6169 6170 *) Исправление: sendfilev() в Solaris теперь не используется при 6171 передаче тела запроса FastCGI-серверу через unix domain сокет. 6172 6173 6174Изменения в nginx 0.6.6 30.07.2007 6175 6176 *) Добавление: параметр --sysconfdir=PATH в configure. 6177 6178 *) Добавление: именованные location'ы. 6179 6180 *) Добавление: переменную $args можно устанавливать с помощью set. 6181 6182 *) Добавление: переменная $is_args. 6183 6184 *) Исправление: равномерное распределение запросов к апстримам с 6185 большими весами. 6186 6187 *) Исправление: если клиент в почтовом прокси-сервере закрывал 6188 соединение, то nginx мог не закрывать соединение с бэкендом. 6189 6190 *) Исправление: при использовании одного хоста в качестве бэкендов для 6191 протоколов HTTP и HTTPS без явного указания портов, nginx использовал 6192 только один порт - 80 или 443. 6193 6194 *) Исправление: nginx не собирался на Solaris/amd64 Sun Studio 11 и 6195 более ранними версиями; ошибка появилась в 0.6.4. 6196 6197 6198Изменения в nginx 0.6.5 23.07.2007 6199 6200 *) Добавление: переменная $nginx_version. 6201 Спасибо Николаю Гречуху. 6202 6203 *) Добавление: почтовый прокси-сервер поддерживает AUTHENTICATE в режиме 6204 IMAP. 6205 Спасибо Максиму Дунину. 6206 6207 *) Добавление: почтовый прокси-сервер поддерживает STARTTLS в режиме 6208 SMTP. 6209 Спасибо Максиму Дунину. 6210 6211 *) Исправление: теперь nginx экранирует пробел в переменной 6212 $memcached_key. 6213 6214 *) Исправление: nginx неправильно собирался Sun Studio на Solaris/amd64. 6215 Спасибо Jiang Hong. 6216 6217 *) Исправление: незначительных потенциальных ошибок. 6218 Спасибо Coverity's Scan. 6219 6220 6221Изменения в nginx 0.6.4 17.07.2007 6222 6223 *) Безопасность: при использовании директивы msie_refresh был возможен 6224 XSS. 6225 Спасибо Максиму Богуку. 6226 6227 *) Изменение: директивы proxy_store и fastcgi_store изменены. 6228 6229 *) Добавление: директивы proxy_store_access и fastcgi_store_access. 6230 6231 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun 6232 Studio. 6233 Спасибо Андрею Нигматулину. 6234 6235 *) Изменение: обход ошибки в Sun Studio 12. 6236 Спасибо Jiang Hong. 6237 6238 6239Изменения в nginx 0.6.3 12.07.2007 6240 6241 *) Добавление: директивы proxy_store и fastcgi_store. 6242 6243 *) Исправление: при использовании директивы auth_http_header в рабочем 6244 процессе мог произойти segmentation fault. 6245 Спасибо Максиму Дунину. 6246 6247 *) Исправление: если использовался метод аутентификации CRAM-MD5, но он 6248 не был разрешён, то в рабочем процессе происходил segmentation fault. 6249 6250 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass 6251 в рабочем процессе мог произойти segmentation fault. 6252 6253 *) Исправление: в рабочем процессе мог произойти segmentation fault, 6254 если использовался метод eventport. 6255 6256 *) Исправление: директивы proxy_ignore_client_abort и 6257 fastcgi_ignore_client_abort не работали; ошибка появилась в 0.5.13. 6258 6259 6260Изменения в nginx 0.6.2 09.07.2007 6261 6262 *) Исправление: если заголовок ответа был разделён в FastCGI-записях, то 6263 nginx передавал клиенту мусор в таких заголовках. 6264 6265 6266Изменения в nginx 0.6.1 17.06.2007 6267 6268 *) Исправление: в парсинге SSI. 6269 6270 *) Исправление: при использовании удалённого подзапроса в SSI 6271 последующий подзапрос локального файла мог отдаваться клиенту в 6272 неверном порядке. 6273 6274 *) Исправление: большие включения в SSI, сохранённые во временные файлы, 6275 передавались не полностью. 6276 6277 *) Исправление: значение perl'овой переменной $$ модуля 6278 ngx_http_perl_module было равно номеру главного процесса. 6279 6280 6281Изменения в nginx 0.6.0 14.06.2007 6282 6283 *) Добавление: директивы "server_name", "map", and "valid_referers" 6284 поддерживают маски вида "www.example.*". 6285 6286 6287Изменения в nginx 0.5.25 11.06.2007 6288 6289 *) Исправление: nginx не собирался с параметром 6290 --without-http_rewrite_module; ошибка появилась в 0.5.24. 6291 6292 6293Изменения в nginx 0.5.24 06.06.2007 6294 6295 *) Безопасность: директива ssl_verify_client не работала, если запрос 6296 выполнялся по протоколу HTTP/0.9. 6297 6298 *) Исправление: при использовании сжатия часть ответа могла передаваться 6299 несжатой; ошибка появилась в 0.5.23. 6300 6301 6302Изменения в nginx 0.5.23 04.06.2007 6303 6304 *) Добавление: модуль ngx_http_ssl_module поддерживает расширение TLS 6305 Server Name Indication. 6306 6307 *) Добавление: директива fastcgi_catch_stderr. 6308 Спасибо Николаю Гречуху, проект OWOX. 6309 6310 *) Исправление: на Линуксе в основном процессе происходил segmentation 6311 fault, если два виртуальных сервера должны bind()ится к 6312 пересекающимся портам. 6313 6314 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и 6315 perl поддерживал потоки, то во время второй переконфигурации 6316 выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed". 6317 6318 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. 6319 6320 6321Изменения в nginx 0.5.22 29.05.2007 6322 6323 *) Исправление: большое тело запроса могло не передаваться бэкенду; 6324 ошибка появилась в 0.5.21. 6325 6326 6327Изменения в nginx 0.5.21 28.05.2007 6328 6329 *) Исправление: если внутри сервера описано больше примерно десяти 6330 location'ов, то location'ы, заданные с помощью регулярного выражения, 6331 могли выполняться не в том, порядке, в каком они описаны. 6332 6333 *) Исправление: на 64-битной платформе рабочий процесс мог зациклиться, 6334 если 33-тий по счёту или последующий бэкенд упал. 6335 Спасибо Антону Поварову. 6336 6337 *) Исправление: при использовании библиотеки PCRE на Solaris/sparc64 мог 6338 произойти bus error. 6339 Спасибо Андрею Нигматулину. 6340 6341 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. 6342 6343 6344Изменения в nginx 0.5.20 07.05.2007 6345 6346 *) Добавление: директива sendfile_max_chunk. 6347 6348 *) Добавление: переменные "$http_...", "$sent_http_..." и 6349 "$upstream_http_..." можно менять директивой set. 6350 6351 *) Исправление: при использовании SSI-команды 'if expr="$var = /"' в 6352 рабочем процессе мог произойти segmentation fault. 6353 6354 *) Исправление: завершающая строка multipart range ответа передавалась 6355 неверно. 6356 Спасибо Evan Miller. 6357 6358 *) Исправление: nginx не работал на Solaris/sparc64, если был собран Sun 6359 Studio. 6360 Спасибо Андрею Нигматулину. 6361 6362 *) Исправление: модуль ngx_http_perl_module не собирался make в Solaris. 6363 Спасибо Андрею Нигматулину. 6364 6365 6366Изменения в nginx 0.5.19 24.04.2007 6367 6368 *) Изменение: значение переменной $request_time теперь записывается с 6369 точностью до миллисекунд. 6370 6371 *) Изменение: метод $r->rflush в модуле ngx_http_perl_module 6372 переименован в $r->flush. 6373 6374 *) Добавление: переменная $upstream_addr. 6375 6376 *) Добавление: директивы proxy_headers_hash_max_size и 6377 proxy_headers_hash_bucket_size. 6378 Спасибо Володымыру Костырко. 6379 6380 *) Исправление: при использовании sendfile и limit_rate на 64-битных 6381 платформах нельзя было передавать файлы больше 2G. 6382 6383 *) Исправление: при использовании sendfile на 64-битном Linux нельзя 6384 было передавать файлы больше 2G. 6385 6386 6387Изменения в nginx 0.5.18 19.04.2007 6388 6389 *) Добавление: модуль ngx_http_sub_filter_module. 6390 6391 *) Добавление: переменные "$upstream_http_...". 6392 6393 *) Добавление: теперь переменные $upstream_status и 6394 $upstream_response_time содержат данные о всех обращениях к 6395 апстримам, сделанным до X-Accel-Redirect. 6396 6397 *) Исправление: если nginx был собран с модулем ngx_http_perl_module и 6398 perl не поддерживал multiplicity, то после первой переконфигурации и 6399 после получения любого сигнала в основном процессе происходил 6400 segmentation fault; ошибка появилась в 0.5.9. 6401 6402 *) Исправление: если perl не поддерживал multiplicity, то после 6403 переконфигурации перловый код не работал; ошибка появилась в 0.3.38. 6404 6405 6406Изменения в nginx 0.5.17 02.04.2007 6407 6408 *) Изменение: теперь nginx для метода TRACE всегда возвращает код 405. 6409 6410 *) Добавление: теперь nginx поддерживает директиву include внутри блока 6411 types. 6412 6413 *) Исправление: использование переменной $document_root в директиве root 6414 и alias запрещено: оно вызывало рекурсивное переполнение стека. 6415 6416 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. 6417 6418 *) Исправление: в некоторых случаях некэшируемые переменные (такие, как 6419 $uri) возвращали старое закэшированное значение. 6420 6421 6422Изменения в nginx 0.5.16 26.03.2007 6423 6424 *) Исправление: в качестве ключа для хэша в директиве ip_hash не 6425 использовалась сеть класса С. 6426 Спасибо Павлу Ярковому. 6427 6428 *) Исправление: если в строке "Content-Type" в заголовке ответа бэкенда 6429 был указан charset и строка завершалась символом ";", то в рабочем 6430 процессе мог произойти segmentation fault; ошибка появилась в 0.3.50. 6431 6432 *) Исправление: ошибки "[alert] zero size buf" при работе с 6433 FastCGI-сервером, если тело запроса, записанное во временный файл, 6434 было кратно 32K. 6435 6436 *) Исправление: nginx не собирался на Solaris без параметра 6437 --with-debug; ошибка появилась в 0.5.15. 6438 6439 6440Изменения в nginx 0.5.15 19.03.2007 6441 6442 *) Добавление: почтовый прокси-сервер поддерживает аутентифицированное 6443 SMTP-проксирование и директивы smtp_auth, smtp_capabilities и 6444 xclient. 6445 Спасибо Антону Южанинову и Максиму Дунину. 6446 6447 *) Добавление: теперь keep-alive соединения закрываются сразу же по 6448 получении сигнала переконфигурации. 6449 6450 *) Изменение: директивы imap и auth переименованы соответственно в mail 6451 и pop3_auth. 6452 6453 *) Исправление: если использовался метод аутентификации CRAM-MD5 и не 6454 был разрешён метод APOP, то в рабочем процессе происходил 6455 segmentation fault. 6456 6457 *) Исправление: при использовании директивы starttls only в протоколе 6458 POP3 nginx разрешал аутентификацию без перехода в режим SSL. 6459 6460 *) Исправление: рабочие процессы не выходили после переконфигурации и не 6461 переоткрывали логи, если использовался метод eventport. 6462 6463 *) Исправление: при использовании директивы ip_hash рабочий процесс мог 6464 зациклиться. 6465 6466 *) Исправление: теперь nginx не пишет в лог некоторые alert'ы, если 6467 используются методы eventport или /dev/poll. 6468 6469 6470Изменения в nginx 0.5.14 23.02.2007 6471 6472 *) Исправление: nginx игнорировал лишние закрывающие скобки "}" в конце 6473 конфигурационного файла. 6474 6475 6476Изменения в nginx 0.5.13 19.02.2007 6477 6478 *) Добавление: методы COPY и MOVE. 6479 6480 *) Исправление: модуль ngx_http_realip_module устанавливал мусор для 6481 запросов, переданных по keep-alive соединению. 6482 6483 *) Исправление: nginx не работал на 64-битном big-endian Linux. 6484 Спасибо Андрею Нигматулину. 6485 6486 *) Исправление: при получении слишком длинной команды IMAP/POP3-прокси 6487 теперь сразу закрывает соединение, а не по таймауту. 6488 6489 *) Исправление: если при использовании метода epoll клиент закрывал 6490 преждевременно соединение со своей стороны, то nginx закрывал это 6491 соединение только по истечении таймаута на передачу. 6492 6493 *) Исправление: nginx не собирался на платформах, отличных от i386, 6494 amd64, sparc и ppc; ошибка появилась в 0.5.8. 6495 6496 6497Изменения в nginx 0.5.12 12.02.2007 6498 6499 *) Исправление: nginx не собирался на платформах, отличных от i386, 6500 amd64, sparc и ppc; ошибка появилась в 0.5.8. 6501 6502 *) Исправление: при использовании временных файлов в время работы с 6503 FastCGI-сервером в рабочем процессе мог произойти segmentation fault; 6504 ошибка появилась в 0.5.8. 6505 6506 *) Исправление: если переменная $fastcgi_script_name записывалась в лог, 6507 то в рабочем процессе мог произойти segmentation fault. 6508 6509 *) Исправление: ngx_http_perl_module не собирался на Solaris. 6510 6511 6512Изменения в nginx 0.5.11 05.02.2007 6513 6514 *) Добавление: теперь configure определяет библиотеку PCRE в MacPorts. 6515 Спасибо Chris McGrath. 6516 6517 *) Исправление: ответ был неверным, если запрашивалось несколько 6518 диапазонов; ошибка появилась в 0.5.6. 6519 6520 *) Исправление: директива create_full_put_path не могла создавать 6521 промежуточные каталоги, если не была установлена директива 6522 dav_access. 6523 Спасибо Evan Miller. 6524 6525 *) Исправление: вместо кодов ошибок "400" и "408" в access_log мог 6526 записываться код "0". 6527 6528 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог 6529 произойти segmentation fault. 6530 6531 6532Изменения в nginx 0.5.10 26.01.2007 6533 6534 *) Исправление: во время обновления исполняемого файла новый процесс не 6535 наследовал слушающие сокеты; ошибка появилась в 0.5.9. 6536 6537 *) Исправление: при сборке с оптимизацией -O2 в рабочем процессе мог 6538 произойти segmentation fault; ошибка появилась в 0.5.1. 6539 6540 6541Изменения в nginx 0.5.9 25.01.2007 6542 6543 *) Изменение: модуль ngx_http_memcached_module теперь в качестве ключа 6544 использует значение переменной $memcached_key. 6545 6546 *) Добавление: переменная $memcached_key. 6547 6548 *) Добавление: параметр clean в директиве client_body_in_file_only. 6549 6550 *) Добавление: директива env. 6551 6552 *) Добавление: директива sendfile работает внутри блока if. 6553 6554 *) Добавление: теперь при ошибке записи в access_log nginx записывает 6555 сообщение в error_log, но не чаще одного раза в минуту. 6556 6557 *) Исправление: директива "access_log off" не всегда запрещала запись в 6558 лог. 6559 6560 6561Изменения в nginx 0.5.8 19.01.2007 6562 6563 *) Исправление: если использовалась директива 6564 "client_body_in_file_only on" и тело запроса было небольшое, то мог 6565 произойти segmentation fault. 6566 6567 *) Исправление: происходил segmentation fault, если использовались 6568 директивы "client_body_in_file_only on" и 6569 "proxy_pass_request_body off" или "fastcgi_pass_request_body off", и 6570 делался переход к следующему бэкенду. 6571 6572 *) Исправление: если при использовании директивы "proxy_buffering off" 6573 соединение с клиентом было неактивно, то оно закрывалось по таймауту, 6574 заданному директивой send_timeout; ошибка появилась в 0.4.7. 6575 6576 *) Исправление: если при использовании метода epoll клиент закрывал 6577 преждевременно соединение со своей стороны, то nginx закрывал это 6578 соединение только по истечении таймаута на передачу. 6579 6580 *) Исправление: ошибки "[alert] zero size buf" при работе с 6581 FastCGI-сервером. 6582 6583 *) Исправление ошибок в директиве limit_zone. 6584 6585 6586Изменения в nginx 0.5.7 15.01.2007 6587 6588 *) Добавление: оптимизация использования памяти в ssl_session_cache. 6589 6590 *) Исправление ошибок в директивах ssl_session_cache и limit_zone. 6591 6592 *) Исправление: на старте или во время переконфигурации происходил 6593 segmentation fault, если директивы ssl_session_cache или limit_zone 6594 использовались на 64-битных платформах. 6595 6596 *) Исправление: при использовании директив add_before_body или 6597 add_after_body происходил segmentation fault, если в заголовке ответа 6598 нет строки "Content-Type". 6599 6600 *) Исправление: библиотека OpenSSL всегда собиралась с поддержкой 6601 потоков. 6602 Спасибо Дену Иванову. 6603 6604 *) Исправление: совместимость библиотеки PCRE-6.5+ и компилятора icc. 6605 6606 6607Изменения в nginx 0.5.6 09.01.2007 6608 6609 *) Изменение: теперь модуль ngx_http_index_module игнорирует все методы, 6610 кроме GET, HEAD и POST. 6611 6612 *) Добавление: модуль ngx_http_limit_zone_module. 6613 6614 *) Добавление: переменная $binary_remote_addr. 6615 6616 *) Добавление: директивы ssl_session_cache модулей ngx_http_ssl_module и 6617 ngx_imap_ssl_module. 6618 6619 *) Добавление: метод DELETE поддерживает рекурсивное удаление. 6620 6621 *) Исправление: при использовании $r->sendfile() byte-ranges 6622 передавались неверно. 6623 6624 6625Изменения в nginx 0.5.5 24.12.2006 6626 6627 *) Изменение: ключ -v больше не выводит информацию о компиляторе. 6628 6629 *) Добавление: ключ -V. 6630 6631 *) Добавление: директива worker_rlimit_core поддерживает указание 6632 размера в K, M и G. 6633 6634 *) Исправление: модуль nginx.pm теперь может устанавливаться 6635 непривилегированным пользователем. 6636 6637 *) Исправление: при использовании методов $r->request_body или 6638 $r->request_body_file мог произойти segmentation fault. 6639 6640 *) Исправление: ошибок, специфичных для платформы ppc. 6641 6642 6643Изменения в nginx 0.5.4 15.12.2006 6644 6645 *) Добавление: директиву perl можно использовать внутри блока 6646 limit_except. 6647 6648 *) Исправление: модуль ngx_http_dav_module требовал строку "Date" в 6649 заголовке запроса для метода DELETE. 6650 6651 *) Исправление: при использовании одного параметра в директиве 6652 dav_access nginx мог сообщить об ошибке в конфигурации. 6653 6654 *) Исправление: при использовании переменной $host мог произойти 6655 segmentation fault; ошибка появилась в 0.4.14. 6656 6657 6658Изменения в nginx 0.5.3 13.12.2006 6659 6660 *) Добавление: модуль ngx_http_perl_module поддерживает методы 6661 $r->status, $r->log_error и $r->sleep. 6662 6663 *) Добавление: метод $r->variable поддерживает переменные, неописанные в 6664 конфигурации nginx'а. 6665 6666 *) Исправление: метод $r->has_request_body не работал. 6667 6668 6669Изменения в nginx 0.5.2 11.12.2006 6670 6671 *) Исправление: если в директивах proxy_pass использовалось имя, 6672 указанное в upstream, то nginx пытался найти IP-адрес этого имени; 6673 ошибка появилась в 0.5.1. 6674 6675 6676Изменения в nginx 0.5.1 11.12.2006 6677 6678 *) Исправление: директива post_action могла не работать после неудачного 6679 завершения запроса. 6680 6681 *) Изменение: обход ошибки в Eudora для Mac; ошибка появилась в 0.4.11. 6682 Спасибо Bron Gondwana. 6683 6684 *) Исправление: при указании в директиве fastcgi_pass имени описанного 6685 upstream'а выдавалось сообщение "no port in upstream"; ошибка 6686 появилась в 0.5.0. 6687 6688 *) Исправление: если в директивах proxy_pass и fastcgi_pass 6689 использовались одинаковых имена серверов, но с разными портами, то 6690 эти директивы использовали первый описанный порт; ошибка появилась в 6691 0.5.0. 6692 6693 *) Исправление: если в директивах proxy_pass и fastcgi_pass 6694 использовались unix domain сокеты, то эти директивы использовали 6695 первый описанный сокет; ошибка появилась в 0.5.0. 6696 6697 *) Исправление: ngx_http_auth_basic_module игнорировал пользователя, 6698 если он был указан в последней строке файла паролей и после пароля не 6699 было перевода строки, возврата каретки или символа ":". 6700 6701 *) Исправление: переменная $upstream_response_time могла быть равна 6702 "0.000", хотя время обработки было больше 1 миллисекунды. 6703 6704 6705Изменения в nginx 0.5.0 04.12.2006 6706 6707 *) Изменение: параметры в виде "%name" в директиве log_format больше не 6708 поддерживаются. 6709 6710 *) Изменение: директивы proxy_upstream_max_fails, 6711 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails, и 6712 fastcgi_upstream_fail_timeout, memcached_upstream_max_fails и 6713 memcached_upstream_fail_timeout больше не поддерживаются. 6714 6715 *) Добавление: директива server в блоке upstream поддерживает параметры 6716 max_fails, fail_timeout и down. 6717 6718 *) Добавление: директива ip_hash в блоке upstream. 6719 6720 *) Добавление: статус WAIT в строке "Auth-Status" в заголовке ответа 6721 сервера аутентификации IMAP/POP3 прокси. 6722 6723 *) Исправление: nginx не собирался на 64-битных платформах; ошибка 6724 появилась в 0.4.14. 6725 6726 6727Изменения в nginx 0.4.14 27.11.2006 6728 6729 *) Добавление: директива proxy_pass_error_message в IMAP/POP3 прокси. 6730 6731 *) Добавление: теперь configure определяет библиотеку PCRE на FreeBSD, 6732 Linux и NetBSD. 6733 6734 *) Исправление: ngx_http_perl_module не работал с перлом, собранным с 6735 поддержкой потоков; ошибка появилась в 0.3.38. 6736 6737 *) Исправление: ngx_http_perl_module не работал корректно, если перл 6738 вызывался рекурсивно. 6739 6740 *) Исправление: nginx игнорировал имя сервера в строке запроса. 6741 6742 *) Исправление: если FastCGI сервер передавал много в stderr, то рабочий 6743 процесс мог зациклиться. 6744 6745 *) Исправление: при изменении системного времени переменная 6746 $upstream_response_time могла быть отрицательной. 6747 6748 *) Исправление: при использовании POP3 серверу аутентификации IMAP/POP3 6749 прокси не передавался параметр Auth-Login-Attempt. 6750 6751 *) Исправление: при ошибке соединения с сервером аутентификации 6752 IMAP/POP3 прокси мог произойти segmentation fault. 6753 6754 6755Изменения в nginx 0.4.13 15.11.2006 6756 6757 *) Добавление: директиву proxy_pass можно использовать внутри блока 6758 limit_except. 6759 6760 *) Добавление: директива limit_except поддерживает все WebDAV методы. 6761 6762 *) Исправление: при использовании директивы add_before_body без 6763 директивы add_after_body ответ передавался не полностью. 6764 6765 *) Исправление: большое тело запроса не принималось, если использовались 6766 метод epoll и deferred accept(). 6767 6768 *) Исправление: для ответов модуля ngx_http_autoindex_module не 6769 выставлялась кодировка; ошибка появилась в 0.3.50. 6770 6771 *) Исправление: ошибки "[alert] zero size buf" при работе с 6772 FastCGI-сервером; 6773 6774 *) Исправление: параметр конфигурации --group= игнорировался. 6775 Спасибо Thomas Moschny. 6776 6777 *) Исправление: 50-й подзапрос в SSI ответе не работал; ошибка появилась 6778 в 0.3.50. 6779 6780 6781Изменения в nginx 0.4.12 31.10.2006 6782 6783 *) Добавление: модуль ngx_http_perl_module поддерживает метод 6784 $r->variable. 6785 6786 *) Исправление: при включении в ответ большого статического файла с 6787 помощью SSI ответ мог передаваться не полностью. 6788 6789 *) Исправление: nginx не убирал "#fragment" в URI. 6790 6791 6792Изменения в nginx 0.4.11 25.10.2006 6793 6794 *) Добавление: POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5. 6795 6796 *) Добавление: модуль ngx_http_perl_module поддерживает метод 6797 $r->allow_ranges. 6798 6799 *) Исправление: при включённой поддержке команды APOP в POP3 прокси 6800 могли не работать команды USER/PASS; ошибка появилась в 0.4.10. 6801 6802 6803Изменения в nginx 0.4.10 23.10.2006 6804 6805 *) Добавление: POP3 прокси поддерживает APOP. 6806 6807 *) Исправление: при использовании методов select, poll и /dev/poll во 6808 время ожидания ответа от сервера аутентификации IMAP/POP3 прокси 6809 нагружал процессор. 6810 6811 *) Исправление: при использовании переменной $server_addr в директиве 6812 map мог произойти segmentation fault. 6813 6814 *) Исправление: модуль ngx_http_flv_module не поддерживал byte ranges 6815 для полных ответов; ошибка появилась в 0.4.7. 6816 6817 *) Исправление: nginx не собирался на Debian amd64; ошибка появилась в 6818 0.4.9. 6819 6820 6821Изменения в nginx 0.4.9 13.10.2006 6822 6823 *) Добавление: параметр set в команде SSI include. 6824 6825 *) Добавление: модуль ngx_http_perl_module теперь проверяет версию 6826 модуля nginx.pm. 6827 6828 6829Изменения в nginx 0.4.8 11.10.2006 6830 6831 *) Исправление: если до команды SSI include с параметром wait 6832 выполнялась ещё одна команда SSI include, то параметр wait мог не 6833 работать. 6834 6835 *) Исправление: модуль ngx_http_flv_module добавлял FLV-заголовок для 6836 полных ответов. 6837 Спасибо Алексею Ковырину. 6838 6839 6840Изменения в nginx 0.4.7 10.10.2006 6841 6842 *) Добавление: модуль ngx_http_flv_module. 6843 6844 *) Добавление: переменная $request_body_file. 6845 6846 *) Добавление: директивы charset и source_charset поддерживают 6847 переменные. 6848 6849 *) Исправление: если до команды SSI include с параметром wait 6850 выполнялась ещё одна команда SSI include, то параметр wait мог не 6851 работать. 6852 6853 *) Исправление: при использовании директивы "proxy_buffering off" или 6854 при работе с memcached соединения могли не закрываться по таймауту. 6855 6856 *) Исправление: nginx не запускался на 64-битных платформах, отличных от 6857 amd64, sparc64 и ppc64. 6858 6859 6860Изменения в nginx 0.4.6 06.10.2006 6861 6862 *) Исправление: nginx не запускался на 64-битных платформах, отличных от 6863 amd64, sparc64 и ppc64. 6864 6865 *) Исправление: при запросе версии HTTP/1.1 nginx передавал ответ 6866 chunk'ами, если длина ответа в методе 6867 $r->headers_out("Content-Length", ...) была задана текстовой строкой. 6868 6869 *) Исправление: после перенаправления ошибки с помощью директивы 6870 error_page любая директива модуля ngx_http_rewrite_module возвращала 6871 эту ошибку; ошибка появилась в 0.4.4. 6872 6873 6874Изменения в nginx 0.4.5 02.10.2006 6875 6876 *) Исправление: nginx не собирался на Linux и Solaris; ошибка появилась 6877 в 0.4.4. 6878 6879 6880Изменения в nginx 0.4.4 02.10.2006 6881 6882 *) Добавление: переменная $scheme. 6883 6884 *) Добавление: директива expires поддерживает параметр max. 6885 6886 *) Добавление: директива include поддерживает маску "*". 6887 Спасибо Jonathan Dance. 6888 6889 *) Исправление: директива return всегда изменяла код ответа, 6890 перенаправленного директивой error_page. 6891 6892 *) Исправление: происходил segmentation fault, если в методе PUT 6893 передавалось тело нулевой длины. 6894 6895 *) Исправление: при использовании переменных в директиве proxy_redirect 6896 редирект изменялся неверно. 6897 6898 6899Изменения в nginx 0.4.3 26.09.2006 6900 6901 *) Изменение: ошибку 499 теперь нельзя перенаправить с помощью директивы 6902 error_page. 6903 6904 *) Добавление: поддержка Solaris 10 event ports. 6905 6906 *) Добавление: модуль ngx_http_browser_module. 6907 6908 *) Исправление: при перенаправлении ошибки 400 проксированному серверу 6909 помощью директивы error_page мог произойти segmentation fault. 6910 6911 *) Исправление: происходил segmentation fault, если в директиве 6912 proxy_pass использовался unix domain сокет; ошибка появилась в 6913 0.3.47. 6914 6915 *) Исправление: SSI не работал с ответами memcached и 6916 небуферизированными проксированными ответами. 6917 6918 *) Изменение: обход ошибки PAUSE hardware capability в Sun Studio. 6919 6920 6921Изменения в nginx 0.4.2 14.09.2006 6922 6923 *) Исправление: убрана поддержка флага O_NOATIME на Linux; ошибка 6924 появилась в 0.4.1. 6925 6926 6927Изменения в nginx 0.4.1 14.09.2006 6928 6929 *) Исправление: совместимость с DragonFlyBSD. 6930 Спасибо Павлу Назарову. 6931 6932 *) Изменение: обход ошибки в sendfile() в 64-битном Linux при передаче 6933 файлов больше 2G. 6934 6935 *) Добавление: теперь на Linux nginx для статических запросов использует 6936 флаг O_NOATIME. 6937 Спасибо Yusuf Goolamabbas. 6938 6939 6940Изменения в nginx 0.4.0 30.08.2006 6941 6942 *) Изменение во внутреннем API: инициализация модулей HTTP перенесена из 6943 фазы init module в фазу HTTP postconfiguration. 6944 6945 *) Изменение: теперь тело запроса в модуле ngx_http_perl_module не 6946 считывается заранее: нужно явно инициировать чтение с помощью метода 6947 $r->has_request_body. 6948 6949 *) Добавление: модуль ngx_http_perl_module поддерживает код возврата 6950 DECLINED. 6951 6952 *) Добавление: модуль ngx_http_dav_module поддерживает входящую строку 6953 заголовка "Date" для метода PUT. 6954 6955 *) Добавление: директива ssi работает внутри блока if. 6956 6957 *) Исправление: происходил segmentation fault, если в директиве index 6958 использовалась переменные и при этом первое имя индексного файла было 6959 без переменных; ошибка появилась в 0.1.29. 6960 6961 6962Изменения в nginx 0.3.61 28.08.2006 6963 6964 *) Изменение: директива tcp_nodelay теперь по умолчанию включена. 6965 6966 *) Добавление: директива msie_refresh. 6967 6968 *) Добавление: директива recursive_error_pages. 6969 6970 *) Исправление: директива rewrite возвращала неправильный редирект, если 6971 редирект включал в себя выделенные закодированные символы из 6972 оригинального URI. 6973 6974 6975Изменения в nginx 0.3.60 18.08.2006 6976 6977 *) Исправление: во время перенаправления ошибки рабочий процесс мог 6978 зациклиться; ошибка появилась в 0.3.59. 6979 6980 6981Изменения в nginx 0.3.59 16.08.2006 6982 6983 *) Добавление: теперь можно делать несколько перенаправлений через 6984 директиву error_page. 6985 6986 *) Исправление: директива dav_access не поддерживала три параметра. 6987 6988 *) Исправление: директива error_page не изменяла строку "Content-Type" 6989 после перенаправления с помощью "X-Accel-Redirect"; ошибка появилась 6990 в 0.3.58. 6991 6992 6993Изменения в nginx 0.3.58 14.08.2006 6994 6995 *) Добавление: директива error_page поддерживает переменные. 6996 6997 *) Изменение: теперь на Linux используется интерфейс procfs вместо 6998 sysctl. 6999 7000 *) Изменение: теперь при использовании "X-Accel-Redirect" строка 7001 "Content-Type" наследуется из первоначального ответа. 7002 7003 *) Исправление: директива error_page не перенаправляла ошибку 413. 7004 7005 *) Исправление: завершающий "?" не удалял старые аргументы, если в 7006 переписанном URI не было новых аргументов. 7007 7008 *) Исправление: nginx не запускался на 64-битной FreeBSD 7.0-CURRENT. 7009 7010 7011Изменения в nginx 0.3.57 09.08.2006 7012 7013 *) Добавление: переменная $ssl_client_serial. 7014 7015 *) Исправление: в операторе "!-e" в директиве if. 7016 Спасибо Андриану Буданцову. 7017 7018 *) Исправление: при проверке клиентского сертификата nginx не передавал 7019 клиенту информацию о требуемых сертификатах. 7020 7021 *) Исправление: переменная $document_root не поддерживала переменные в 7022 директиве root. 7023 7024 7025Изменения в nginx 0.3.56 04.08.2006 7026 7027 *) Добавление: директива dav_access. 7028 7029 *) Добавление: директива if поддерживает операторы "-d", "!-d", "-e", 7030 "!-e", "-x" и "!-x". 7031 7032 *) Исправление: при записи в access_log некоторых передаваемых клиенту 7033 строк заголовков происходил segmentation fault, если запрос возвращал 7034 редирект. 7035 7036 7037Изменения в nginx 0.3.55 28.07.2006 7038 7039 *) Добавление: параметр stub в команде SSI include. 7040 7041 *) Добавление: команда SSI block. 7042 7043 *) Добавление: скрипт unicode2nginx добавлен в contrib. 7044 7045 *) Исправление: если root был задан только переменной, то корень 7046 задавался относительно префикса сервера. 7047 7048 *) Исправление: если в запросе был "//" или "/.", и после этого 7049 закодированные символы в виде "%XX", то проксируемый запрос 7050 передавался незакодированным. 7051 7052 *) Исправление: метод $r->header_in("Cookie") модуля 7053 ngx_http_perl_module теперь возвращает все строки "Cookie" в 7054 заголовке запроса. 7055 7056 *) Исправление: происходил segmentation fault, если использовался 7057 "client_body_in_file_only on" и делался переход к следующему бэкенду. 7058 7059 *) Исправление: при некоторых условиях во время переконфигурации коды 7060 символов внутри директивы charset_map могли считаться неверными; 7061 ошибка появилась в 0.3.50. 7062 7063 7064Изменения в nginx 0.3.54 11.07.2006 7065 7066 *) Добавление: nginx теперь записывает в лог информацию о подзапросах. 7067 7068 *) Добавление: директивы proxy_next_upstream, fastcgi_next_upstream и 7069 memcached_next_upstream поддерживают параметр off. 7070 7071 *) Добавление: директива debug_connection поддерживает запись адресов в 7072 формате CIDR. 7073 7074 *) Исправление: при перекодировании ответа проксированного сервера или 7075 сервера FastCGI в UTF-8 или наоборот ответ мог передаваться не 7076 полностью. 7077 7078 *) Исправление: переменная $upstream_response_time содержала время 7079 только первого обращения к бэкенду. 7080 7081 *) Исправление: nginx не собирался на платформе amd64; ошибка появилась 7082 в 0.3.53. 7083 7084 7085Изменения в nginx 0.3.53 07.07.2006 7086 7087 *) Изменение: директива add_header добавляет строки в ответы с кодом 7088 204, 301 и 302. 7089 7090 *) Добавление: директива server в блоке upstream поддерживает параметр 7091 weight. 7092 7093 *) Добавление: директива server_name поддерживает маску "*". 7094 7095 *) Добавление: nginx поддерживает тело запроса больше 2G. 7096 7097 *) Исправление: если при использовании "satisfy_any on" клиент успешно 7098 проходил аутентификацию, в лог всё равно записалоcь сообщение "access 7099 forbidden by rule". 7100 7101 *) Исправление: метод PUT мог ошибочно не создать файл и вернуть код 7102 409. 7103 7104 *) Исправление: если во время аутентификации IMAP/POP3 бэкенд возвращал 7105 ошибку, nginx продолжал проксирование. 7106 7107 7108Изменения в nginx 0.3.52 03.07.2006 7109 7110 *) Изменение: восстановлено поведение модуля ngx_http_index_module для 7111 запросов "POST /": как в версии до 0.3.40, модуль теперь не выдаёт 7112 ошибку 405. 7113 7114 *) Исправление: при использовании ограничения скорости рабочий процесс 7115 мог зациклиться; ошибка появилась в 0.3.37. 7116 7117 *) Исправление: модуль ngx_http_charset_module записывал в лог ошибку 7118 "unknown charset", даже если перекодировка не требовалась; ошибка 7119 появилась в 0.3.50. 7120 7121 *) Исправление: если в результате запроса PUT возвращался код 409, то 7122 временный файл не удалялся. 7123 7124 7125Изменения в nginx 0.3.51 30.06.2006 7126 7127 *) Исправление: при некоторых условиях в SSI мог пропадать символы "<"; 7128 ошибка появилась в 0.3.50. 7129 7130 7131Изменения в nginx 0.3.50 28.06.2006 7132 7133 *) Изменение: директивы proxy_redirect_errors и fastcgi_redirect_errors 7134 переименованы соответственно в proxy_intercept_errors и 7135 fastcgi_intercept_errors. 7136 7137 *) Добавление: модуль ngx_http_charset_module поддерживает 7138 перекодирование из однобайтных кодировок в UTF-8 и обратно. 7139 7140 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка 7141 "X-Accel-Charset" в ответе бэкенда. 7142 7143 *) Исправление: символ "\" в парах "\"" и "\'" в SSI командах убирался, 7144 только если также использовался символ "$". 7145 7146 *) Исправление: при некоторых условиях в SSI после вставки могла быть 7147 добавлена строка "<!--". 7148 7149 *) Исправление: если в заголовке ответа была строка "Content-Length: 0", 7150 то при использовании небуферизированного проксировании не закрывалось 7151 соединение с клиентом. 7152 7153 7154Изменения в nginx 0.3.49 31.05.2006 7155 7156 *) Исправление: в директиве set. 7157 7158 *) Исправление: при включении в ssi двух и более подзапросов, 7159 обрабатываемых через FastCGI, вместо вывода второго и остальных 7160 подзапросов в ответ включался вывод первого подзапроса. 7161 7162 7163Изменения в nginx 0.3.48 29.05.2006 7164 7165 *) Изменение: теперь модуль ngx_http_charset_module работает для 7166 подзапросов, в ответах которых нет строки заголовка "Content-Type". 7167 7168 *) Исправление: если в директиве proxy_pass не было URI, то директива 7169 "proxy_redirect default" добавляла в переписанный редирект в начало 7170 лишний слэш. 7171 7172 *) Исправление: внутренний редирект всегда превращал любой HTTP-метод в 7173 GET, теперь это делается только для редиректов, выполняемых с помощью 7174 X-Accel-Redirect, и у которых метод не равен HEAD; ошибка появилась в 7175 0.3.42. 7176 7177 *) Исправление: модуль ngx_http_perl_module не собирался, если перл был 7178 с поддержкой потоков; ошибка появилась в 0.3.46. 7179 7180 7181Изменения в nginx 0.3.47 23.05.2006 7182 7183 *) Добавление: директива upstream. 7184 7185 *) Изменение: символ "\" в парах "\"" и "\'" в SSI командах теперь 7186 всегда убирается. 7187 7188 7189Изменения в nginx 0.3.46 11.05.2006 7190 7191 *) Добавление: директивы proxy_hide_header, proxy_pass_header, 7192 fastcgi_hide_header и fastcgi_pass_header. 7193 7194 *) Изменение: директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и 7195 proxy_pass_server упразднены. 7196 7197 *) Добавление: в режиме прокси поддерживается строка заголовка 7198 "X-Accel-Buffering" в ответе бэкенда. 7199 7200 *) Исправление: ошибок и утечек памяти при переконфигурации в модуле 7201 ngx_http_perl_module. 7202 7203 7204Изменения в nginx 0.3.45 06.05.2006 7205 7206 *) Добавление: директивы ssl_verify_client, ssl_verify_depth и 7207 ssl_client_certificate. 7208 7209 *) Изменение: теперь переменная $request_method возвращает метод только 7210 основного запроса. 7211 7212 *) Изменение: в таблице перекодировки koi-win изменены коды символа 7213 °. 7214 7215 *) Добавление: в таблицу перекодировки koi-win добавлены символы евро и 7216 номера. 7217 7218 *) Исправление: если nginx распределял запросы на несколько машин, то 7219 при падении одной из них запросы, предназначенные для этой машины, 7220 перенаправлялись только на одну машину вместо того, чтобы равномерно 7221 распределяться между остальными. 7222 7223 7224Изменения в nginx 0.3.44 04.05.2006 7225 7226 *) Добавление: параметр wait в команде SSI include. 7227 7228 *) Добавление: в таблицу перекодировки koi-win добавлены украинские и 7229 белорусские символы. 7230 7231 *) Исправление: в SSI. 7232 7233 7234Изменения в nginx 0.3.43 26.04.2006 7235 7236 *) Исправление: в SSI. 7237 7238 7239Изменения в nginx 0.3.42 26.04.2006 7240 7241 *) Добавление: параметр bind в директиве listen в IMAP/POP3 прокси. 7242 7243 *) Исправление: ошибки при использовании в директиве rewrite одного и 7244 того же выделения более одного раза. 7245 7246 *) Исправление: в лог не записывались переменные 7247 $sent_http_content_type, $sent_http_content_length, 7248 $sent_http_last_modified, $sent_http_connection, 7249 $sent_http_keep_alive и $sent_http_transfer_encoding. 7250 7251 *) Исправление: переменная $sent_http_cache_control возвращала 7252 содержимое только одной строки "Cache-Control" в заголовке ответа. 7253 7254 7255Изменения в nginx 0.3.41 21.04.2006 7256 7257 *) Добавление: ключ -v. 7258 7259 *) Исправление: при включении в SSI удалённых подзапросов мог произойти 7260 segmentation fault. 7261 7262 *) Исправление: в обработке FastCGI. 7263 7264 *) Исправление: если путь к перловым модулям не был указан с помощью 7265 --with-perl_modules_path=PATH или директивы perl_modules, то на 7266 старте происходил segmentation fault. 7267 7268 7269Изменения в nginx 0.3.40 19.04.2006 7270 7271 *) Добавление: модуль ngx_http_dav_module поддерживает метод MKCOL. 7272 7273 *) Добавление: директива create_full_put_path. 7274 7275 *) Добавление: переменная $limit_rate. 7276 7277 7278Изменения в nginx 0.3.39 17.04.2006 7279 7280 *) Добавление: директива uninitialized_variable_warn; уровень 7281 логгирования сообщения о неинициализированной переменной понижен с 7282 уровня alert на warn. 7283 7284 *) Добавление: директива override_charset. 7285 7286 *) Изменение: при использовании неизвестной переменной в SSI-командах 7287 echo и if expr='$name' теперь не записывается в лог сообщение о 7288 неизвестной переменной. 7289 7290 *) Исправление: счётчик активных соединений рос при превышении лимита 7291 соединений, заданного директивой worker_connections; ошибка появилась 7292 в 0.2.0. 7293 7294 *) Исправление: при некоторых условия ограничение скорости соединения 7295 могло не работать; ошибка появилась в 0.3.38. 7296 7297 7298Изменения в nginx 0.3.38 14.04.2006 7299 7300 *) Добавление: модуль ngx_http_dav_module. 7301 7302 *) Изменение: оптимизация модуля ngx_http_perl_module. 7303 Спасибо Сергею Скворцову. 7304 7305 *) Добавление: модуль ngx_http_perl_module поддерживает метод 7306 $r->request_body_file. 7307 7308 *) Добавление: директива client_body_in_file_only. 7309 7310 *) Изменение: теперь при переполнении диска nginx пытается писать 7311 access_log'и только раз в секунду. 7312 Спасибо Антону Южанинову и Максиму Дунину. 7313 7314 *) Исправление: теперь директива limit_rate точнее ограничивает скорость 7315 при значениях больше 100 Kbyte/s. 7316 Спасибо ForJest. 7317 7318 *) Исправление: IMAP/POP3 прокси теперь передаёт серверу авторизации 7319 символы "\r" и "\n" в логине и пароле в закодированном виде. 7320 Спасибо Максиму Дунину. 7321 7322 7323Изменения в nginx 0.3.37 07.04.2006 7324 7325 *) Добавление: директива limit_except. 7326 7327 *) Добавление: директива if поддерживает операторы "!~", "!~*", "-f" и 7328 "!-f". 7329 7330 *) Добавление: модуль ngx_http_perl_module поддерживает метод 7331 $r->request_body. 7332 7333 *) Исправление: в модуле ngx_http_addition_filter_module. 7334 7335 7336Изменения в nginx 0.3.36 05.04.2006 7337 7338 *) Добавление: модуль ngx_http_addition_filter_module. 7339 7340 *) Добавление: директивы proxy_pass и fastcgi_pass можно использовать 7341 внутри блока if. 7342 7343 *) Добавление: директивы proxy_ignore_client_abort и 7344 fastcgi_ignore_client_abort. 7345 7346 *) Добавление: переменная $request_completion. 7347 7348 *) Добавление: модуль ngx_http_perl_module поддерживает методы 7349 $r->request_method и $r->remote_addr. 7350 7351 *) Добавление: модуль ngx_http_ssi_module поддерживает команду elif. 7352 7353 *) Исправление: строка "\/" в начале выражения команды if модуля 7354 ngx_http_ssi_module воспринималась неверно. 7355 7356 *) Исправление: в использовании регулярных выражениях в команде if 7357 модуля ngx_http_ssi_module. 7358 7359 *) Исправление: при задании относительного пути в директивах 7360 client_body_temp_path, proxy_temp_path, fastcgi_temp_path и 7361 perl_modules использовался каталог относительно текущего каталога, а 7362 не относительно префикса сервера. 7363 7364 7365Изменения в nginx 0.3.35 22.03.2006 7366 7367 *) Исправление: accept-фильтр и TCP_DEFER_ACCEPT устанавливались только 7368 для первой директивы listen; ошибка появилась в 0.3.31. 7369 7370 *) Исправление: в директиве proxy_pass без URI при использовании в 7371 подзапросе. 7372 7373 7374Изменения в nginx 0.3.34 21.03.2006 7375 7376 *) Добавление: директива add_header поддерживает переменные. 7377 7378 7379Изменения в nginx 0.3.33 15.03.2006 7380 7381 *) Добавление: параметр http_503 в директивах proxy_next_upstream или 7382 fastcgi_next_upstream. 7383 7384 *) Исправление: ngx_http_perl_module не работал со встроенным в 7385 конфигурационный файл кодом, если он не начинался сразу же с "sub". 7386 7387 *) Исправление: в директиве post_action. 7388 7389 7390Изменения в nginx 0.3.32 11.03.2006 7391 7392 *) Исправление: удаление отладочного логгирования на старте и при 7393 переконфигурации; ошибка появилась в 0.3.31. 7394 7395 7396Изменения в nginx 0.3.31 10.03.2006 7397 7398 *) Изменение: теперь nginx передаёт неверные ответы проксированного 7399 бэкенда. 7400 7401 *) Добавление: директивы listen поддерживают адрес в виде "*:порт". 7402 7403 *) Добавление: поддержка EVFILER_TIMER в MacOSX 10.4. 7404 7405 *) Изменение: обход ошибки обработки миллисекундных таймаутов kqueue в 7406 64-битном ядре MacOSX. 7407 Спасибо Андрею Нигматулину. 7408 7409 *) Исправление: если внутри одного сервера описаны несколько директив 7410 listen, слушающих на разных адресах, то имена серверов вида 7411 "*.domain.tld" работали только для первого адреса; ошибка появилась в 7412 0.3.18. 7413 7414 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass 7415 не передавались запросы с телом, записанным во временный файл. 7416 7417 *) Исправление: совместимость с perl 5.8.8. 7418 7419 7420Изменения в nginx 0.3.30 22.02.2006 7421 7422 *) Изменение: уровень записи в лог ошибки ECONNABORTED изменён на error 7423 с уровня crit. 7424 7425 *) Исправление: модуль ngx_http_perl_module не собирался без модуля 7426 ngx_http_ssi_filter_module. 7427 7428 *) Исправление: nginx не собирался на i386 платформе, если использовался 7429 PIC; ошибка появилась в 0.3.27. 7430 7431 7432Изменения в nginx 0.3.29 20.02.2006 7433 7434 *) Добавление: теперь nginx использует меньше памяти, если PHP в режиме 7435 FastCGI передаёт большое количество предупреждений перед ответом. 7436 7437 *) Исправление: в ответах 204 для запросов версии HTTP/1.1 выдавалась 7438 строка заголовка "Transfer-Encoding: chunked". 7439 7440 *) Исправление: nginx возвращал 502 код ответа, если FastCGI сервер 7441 передавал полные строки заголовка ответа в отдельных FastCGI записях. 7442 7443 *) Исправление: если в директиве post_action был указан проксируемый 7444 URI, то он выполнялся только после успешного завершения запроса. 7445 7446 7447Изменения в nginx 0.3.28 16.02.2006 7448 7449 *) Добавление: директива restrict_host_names упразднена. 7450 7451 *) Добавление: параметр конфигурации --with-cpu-opt=ppc64. 7452 7453 *) Исправление: при некоторых условиях проксированное соединение с 7454 клиентом завершалось преждевременно. 7455 Спасибо Владимиру Шутову. 7456 7457 *) Исправление: строка заголовка "X-Accel-Limit-Rate" не учитывалась для 7458 запросов, перенаправленных с помощью строки "X-Accel-Redirect". 7459 7460 *) Исправление: директива post_action работала только после успешного 7461 завершения запроса. 7462 7463 *) Исправление: тело проксированного ответа, создаваемого директивой 7464 post_action, передавалось клиенту. 7465 7466 7467Изменения в nginx 0.3.27 08.02.2006 7468 7469 *) Изменение: директивы variables_hash_max_size и 7470 variables_hash_bucket_size. 7471 7472 *) Добавление: переменная $body_bytes_sent доступна не только в 7473 директиве log_format. 7474 7475 *) Добавление: переменные $ssl_protocol и $ssl_cipher. 7476 7477 *) Добавление: определение размера строки кэша распространённых 7478 процессоров при старте. 7479 7480 *) Добавление: директива accept_mutex теперь поддерживается посредством 7481 fcntl(2) на платформах, отличных от i386, amd64, sparc64 и ppc. 7482 7483 *) Добавление: директива lock_file и параметр автоконфигурации 7484 --with-lock-path=PATH. 7485 7486 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass 7487 не передавались запросы с телом. 7488 7489 7490Изменения в nginx 0.3.26 03.02.2006 7491 7492 *) Изменение: директива optimize_host_names переименована в 7493 optimize_server_names. 7494 7495 *) Исправление: при проксировании подзапроса в SSI бэкенду передавался 7496 URI основного запроса, если в директиве proxy_pass отсутствовал URI. 7497 7498 7499Изменения в nginx 0.3.25 01.02.2006 7500 7501 *) Исправление: при неверной конфигурации на старте или во время 7502 переконфигурации происходил segmentation fault; ошибка появилась в 7503 0.3.24. 7504 7505 7506Изменения в nginx 0.3.24 01.02.2006 7507 7508 *) Изменение: обход ошибки в kqueue во FreeBSD. 7509 7510 *) Исправление: ответ, создаваемый директивой post_action, теперь не 7511 передаётся клиенту. 7512 7513 *) Исправление: при использовании большого количества лог-файлов 7514 происходила утечка памяти. 7515 7516 *) Исправление: внутри одного location работала только первая директива 7517 proxy_redirect. 7518 7519 *) Исправление: на 64-битных платформах при старте мог произойти 7520 segmentation fault, если использовалось большое количество имён в 7521 директивах server_name; ошибка появилась в 0.3.18. 7522 7523 7524Изменения в nginx 0.3.23 24.01.2006 7525 7526 *) Добавление: директива optimize_host_names. 7527 7528 *) Исправление: ошибки при использовании переменных в директивах path и 7529 alias. 7530 7531 *) Исправление: модуль ngx_http_perl_module неправильно собирался на 7532 Linux и Solaris. 7533 7534 7535Изменения в nginx 0.3.22 17.01.2006 7536 7537 *) Добавление: модуль ngx_http_perl_module поддерживает методы $r->args 7538 и $r->unescape. 7539 7540 *) Добавление: метод $r->query_string в модуле ngx_http_perl_module 7541 упразднён. 7542 7543 *) Исправление: если в директиве valid_referers указаны только none или 7544 blocked, то происходил segmentation fault; ошибка появилась в 0.3.18. 7545 7546 7547Изменения в nginx 0.3.21 16.01.2006 7548 7549 *) Добавление: модуль ngx_http_perl_module. 7550 7551 *) Изменение: директива valid_referers разрешает использовать рефереры 7552 совсем без URI. 7553 7554 7555Изменения в nginx 0.3.20 11.01.2006 7556 7557 *) Исправление: ошибки в обработке SSI. 7558 7559 *) Исправление: модуль ngx_http_memcached_module не поддерживал ключи в 7560 виде /uri?args. 7561 7562 7563Изменения в nginx 0.3.19 28.12.2005 7564 7565 *) Добавление: директивы path и alias поддерживают переменные. 7566 7567 *) Изменение: теперь директива valid_referers опять учитывает URI. 7568 7569 *) Исправление: ошибки в обработке SSI. 7570 7571 7572Изменения в nginx 0.3.18 26.12.2005 7573 7574 *) Добавление: директива server_names поддерживает имена вида 7575 ".domain.tld". 7576 7577 *) Добавление: директива server_names использует хэш для имён вида 7578 "*.domain.tld" и более эффективный хэш для обычных имён. 7579 7580 *) Изменение: директивы server_names_hash_max_size и 7581 server_names_hash_bucket_size. 7582 7583 *) Изменение: директивы server_names_hash и server_names_hash_threshold 7584 упразднены. 7585 7586 *) Добавление: директива valid_referers использует хэш для имён сайтов. 7587 7588 *) Изменение: теперь директива valid_referers проверяет только имена 7589 сайтов без учёта URI. 7590 7591 *) Исправление: некоторые имена вида ".domain.tld" неверно 7592 обрабатывались модулем ngx_http_map_module. 7593 7594 *) Исправление: если конфигурационного файла не было, то происходил 7595 segmentation fault; ошибка появилась в 0.3.12. 7596 7597 *) Исправление: на 64-битных платформах при старте мог произойти 7598 segmentation fault; ошибка появилась в 0.3.16. 7599 7600 7601Изменения в nginx 0.3.17 18.12.2005 7602 7603 *) Изменение: на Linux configure теперь проверяет наличие epoll и 7604 sendfile64() в ядре. 7605 7606 *) Добавление: директива map поддерживает доменные имена в формате 7607 ".domain.tld". 7608 7609 *) Исправление: во время SSL handshake не иcпользовались таймауты; 7610 ошибка появилась в 0.2.4. 7611 7612 *) Исправление: в использовании протокола HTTPS в директиве proxy_pass. 7613 7614 *) Исправление: при использовании протокола HTTPS в директиве proxy_pass 7615 по умолчанию использовался порт 80. 7616 7617 7618Изменения в nginx 0.3.16 16.12.2005 7619 7620 *) Добавление: модуль ngx_http_map_module. 7621 7622 *) Добавление: директивы types_hash_max_size и types_hash_bucket_size. 7623 7624 *) Добавление: директива ssi_value_length. 7625 7626 *) Добавление: директива worker_rlimit_core. 7627 7628 *) Изменение: при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для 7629 Pentium 4 номер соединения в логах всегда был равен 1. 7630 7631 *) Исправление: команда config timefmt в SSI задавала неверный формат 7632 времени. 7633 7634 *) Исправление: nginx не закрывал соединения с IMAP/POP3 бэкендом при 7635 использовании SSL соединений; ошибка появилась в 0.3.13. 7636 Спасибо Rob Mueller. 7637 7638 *) Исправление: segmentation fault мог произойти во время SSL shutdown; 7639 ошибка появилась в 0.3.13. 7640 7641 7642Изменения в nginx 0.3.15 07.12.2005 7643 7644 *) Добавление: новой код 444 в директиве return для закрытия соединения. 7645 7646 *) Добавление: директива so_keepalive в IMAP/POP3 прокси. 7647 7648 *) Исправление: nginx теперь вызывает abort() при обнаружении незакрытых 7649 соединений только при плавном выходе и включённой директиве 7650 debug_points. 7651 7652 7653Изменения в nginx 0.3.14 05.12.2005 7654 7655 *) Исправление: в ответе 304 передавалось тело ответа; ошибка появилась 7656 в 0.3.13. 7657 7658 7659Изменения в nginx 0.3.13 05.12.2005 7660 7661 *) Добавление: IMAP/POP3 прокси поддерживает STARTTLS и STLS. 7662 7663 *) Исправление: IMAP/POP3 прокси не работала с методами select, poll и 7664 /dev/poll. 7665 7666 *) Исправление: ошибки в обработке SSI. 7667 7668 *) Исправление: sendfilev() в Solaris теперь не используется при 7669 передаче тела запроса FastCGI-серверу через unix domain сокет. 7670 7671 *) Исправление: директива auth_basic не запрещала аутентификацию; ошибка 7672 появилась в 0.3.11. 7673 7674 7675Изменения в nginx 0.3.12 26.11.2005 7676 7677 *) Безопасность: если nginx был собран с модулем ngx_http_realip_module, 7678 то при использовании директивы "satisfy_any on" директивы доступа и 7679 аутентификации не работали. Модуль ngx_http_realip_module не 7680 собирался и не собирается по умолчанию. 7681 7682 *) Изменение: имя переменной "$time_gmt" изменено на "$time_local". 7683 7684 *) Изменение: директивы proxy_header_buffer_size и 7685 fastcgi_header_buffer_size переименованы соответственно в 7686 proxy_buffer_size и fastcgi_buffer_size. 7687 7688 *) Добавление: модуль ngx_http_memcached_module. 7689 7690 *) Добавление: директива proxy_buffering. 7691 7692 *) Исправление: изменение в работе с accept mutex при использовании 7693 метода rtsig; ошибка появилась в 0.3.0. 7694 7695 *) Исправление: если клиент передал строку "Transfer-Encoding: chunked" 7696 в заголовке запроса, то nginx теперь выдаёт ошибку 411. 7697 7698 *) Исправление: при наследовании директивы auth_basic с уровня http в 7699 строке "WWW-Authenticate" заголовка ответа выводился realm без текста 7700 "Basic realm". 7701 7702 *) Исправление: если в директиве access_log был явно указан формат 7703 combined, то в лог записывались пустые строки; ошибка появилась в 7704 0.3.8. 7705 7706 *) Исправление: nginx не работал на платформе sparc под любыми OS, кроме 7707 Solaris. 7708 7709 *) Исправление: в директиве if теперь не нужно разделять пробелом строку 7710 в кавычках и закрывающую скобку. 7711 7712 7713Изменения в nginx 0.3.11 15.11.2005 7714 7715 *) Исправление: nginx не передавал при проксировании тело запроса и 7716 строки заголовка клиента; ошибка появилась в 0.3.10. 7717 7718 7719Изменения в nginx 0.3.10 15.11.2005 7720 7721 *) Изменение: директива valid_referers и переменная $invalid_referer 7722 перенесены из модуля ngx_http_rewrite_module в новый модуль 7723 ngx_http_referer_module. 7724 7725 *) Изменение: имя переменной "$apache_bytes_sent" изменено на 7726 "$body_bytes_sent". 7727 7728 *) Добавление: переменные "$sent_http_...". 7729 7730 *) Добавление: директива if поддерживает операции "=" и "!=". 7731 7732 *) Добавление: директива proxy_pass поддерживает протокол HTTPS. 7733 7734 *) Добавление: директива proxy_set_body. 7735 7736 *) Добавление: директива post_action. 7737 7738 *) Добавление: модуль ngx_http_empty_gif_module. 7739 7740 *) Добавление: директива worker_cpu_affinity для Linux. 7741 7742 *) Исправление: директива rewrite не раскодировала символы в редиректах 7743 в URI, теперь символы раскодируются, кроме символов %00-%25 и 7744 %7F-%FF. 7745 7746 *) Исправление: nginx не собирался компилятором icc 9.0. 7747 7748 *) Исправление: если для статического файла нулевого размера был 7749 разрешён SSI, то ответ передавался неверно при кодировании chunk'ами. 7750 7751 7752Изменения в nginx 0.3.9 10.11.2005 7753 7754 *) Исправление: nginx считал небезопасными URI, в которых между двумя 7755 слэшами находилось два любых символа; ошибка появилась в 0.3.8. 7756 7757 7758Изменения в nginx 0.3.8 09.11.2005 7759 7760 *) Безопасность: nginx теперь проверят URI, полученные от бэкенда в 7761 строке "X-Accel-Redirect" в заголовке ответа, или в SSI файле на 7762 наличие путей "/../" и нулей. 7763 7764 *) Изменение: nginx теперь не воспринимает пустое имя как правильное в 7765 строке "Authorization" в заголовке запроса. 7766 7767 *) Добавление: директива ssl_session_timeout модулей ngx_http_ssl_module 7768 и ngx_imap_ssl_module. 7769 7770 *) Добавление: директива auth_http_header модуля 7771 ngx_imap_auth_http_module. 7772 7773 *) Добавление: директива add_header. 7774 7775 *) Добавление: модуль ngx_http_realip_module. 7776 7777 *) Добавление: новые переменные для использования в директиве 7778 log_format: $bytes_sent, $apache_bytes_sent, $status, $time_gmt, 7779 $uri, $request_time, $request_length, $upstream_status, 7780 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set, 7781 $connection, $pipe и $msec. Параметры в виде "%name" скоро будут 7782 упразднены. 7783 7784 *) Изменение: в директиве "if" ложными значениями переменных теперь 7785 являются пустая строка "" и строки, начинающиеся на "0". 7786 7787 *) Исправление: при работает с проксированными или FastCGI-серверами 7788 nginx мог оставлять открытыми соединения и временные файлы с 7789 запросами клиентов. 7790 7791 *) Исправление: рабочие процессы не сбрасывали буферизированные логи при 7792 плавном выходе. 7793 7794 *) Исправление: если URI запроса изменялось с помощью rewrite, а затем 7795 запрос проксировался в location, заданном регулярным выражением, то 7796 бэкенду передавался неверный запрос; ошибка появилась в 0.2.6. 7797 7798 *) Исправление: директива expires не удаляла уже установленную строку 7799 заголовка "Expires". 7800 7801 *) Исправление: при использовании метода rtsig и нескольких рабочих 7802 процессах nginx мог перестать принимать запросы. 7803 7804 *) Исправление: в SSI командах неверно обрабатывались строки "\"" и 7805 "\'". 7806 7807 *) Исправление: если ответ заканчивался сразу же после SSI команды, то 7808 при использовании сжатия ответ передавался не до конца или не 7809 передавался вообще. 7810 7811 7812Изменения в nginx 0.3.7 27.10.2005 7813 7814 *) Добавление: директива access_log поддерживает параметр buffer=. 7815 7816 *) Исправление: nginx не собирался на платформах, отличных от i386, 7817 amd64, sparc и ppc; ошибка появилась в 0.3.2. 7818 7819 7820Изменения в nginx 0.3.6 24.10.2005 7821 7822 *) Изменение: IMAP/POP3 прокси теперь не передаёт серверу авторизации 7823 пустой логин. 7824 7825 *) Добавление: директива log_format поддерживает переменные в виде 7826 $name. 7827 7828 *) Исправление: если хотя бы в одном сервере не было описано ни одной 7829 директивы listen, то nginx не слушал на 80 порту; ошибка появилась в 7830 0.3.3. 7831 7832 *) Исправление: если в директиве proxy_pass отсутствовал URI, то всегда 7833 использовался порт 80. 7834 7835 7836Изменения в nginx 0.3.5 21.10.2005 7837 7838 *) Исправление: если логин IMAP/POP3 менялся сервером авторизации, то 7839 мог произойти segmentation fault; ошибка появилась в 0.2.2. 7840 7841 *) Исправление: accept mutex не работал, все соединения обрабатывались 7842 одним рабочим процессом; ошибка появилась в 0.3.3. 7843 7844 *) Исправление: при использовании метода rtsig и директивы 7845 timer_resolution не работали таймауты. 7846 7847 7848Изменения в nginx 0.3.4 19.10.2005 7849 7850 *) Исправление: nginx не собирался на Linux 2.4+ и MacOS X; ошибка 7851 появилась в 0.3.3. 7852 7853 7854Изменения в nginx 0.3.3 19.10.2005 7855 7856 *) Изменение: параметры "bl" и "af" директивы listen переименованы в 7857 "backlog" и "accept_filter". 7858 7859 *) Добавление: параметры "rcvbuf" и "sndbuf" в директиве listen. 7860 7861 *) Изменение: параметр лога $msec теперь не требует дополнительного 7862 системного вызова gettimeofday(). 7863 7864 *) Добавление: ключ -t теперь проверяет директивы listen. 7865 7866 *) Исправление: если в директиве listen был указан неверный адрес, то 7867 nginx после сигнала -HUP оставлял открытый сокет в состоянии CLOSED. 7868 7869 *) Исправление: для индексных файлов, содержащих в имени переменную, мог 7870 неверно выставляться тип mime по умолчанию; ошибка появилась в 0.3.0. 7871 7872 *) Добавление: директива timer_resolution. 7873 7874 *) Добавление: параметр лога $upstream_response_time в миллисекундах. 7875 7876 *) Исправление: временный файл с телом запроса клиента теперь удаляется 7877 сразу после того, как клиенту передан заголовок ответа. 7878 7879 *) Исправление: совместимость с OpenSSL 0.9.6. 7880 7881 *) Исправление: пути к файлам с SSL сертификатом и ключом не могли быть 7882 относительными. 7883 7884 *) Исправление: директива ssl_prefer_server_ciphers не работала для 7885 модуля ngx_imap_ssl_module. 7886 7887 *) Исправление: директива ssl_protocols позволяла задать только один 7888 протокол. 7889 7890 7891Изменения в nginx 0.3.2 12.10.2005 7892 7893 *) Добавление: поддержка Sun Studio 10 C compiler. 7894 7895 *) Добавление: директивы proxy_upstream_max_fails, 7896 proxy_upstream_fail_timeout, fastcgi_upstream_max_fails и 7897 fastcgi_upstream_fail_timeout. 7898 7899 7900Изменения в nginx 0.3.1 10.10.2005 7901 7902 *) Исправление: во время переполнения очереди сигналов при использовании 7903 метода rtsig происходил segmentation fault; ошибка появилась в 0.2.0. 7904 7905 *) Изменение: корректная обработка пар "\\", "\"", "\'" и "\$" в SSI. 7906 7907 7908Изменения в nginx 0.3.0 07.10.2005 7909 7910 *) Изменение: убрано десятидневное ограничение времени работы рабочего 7911 процесса. Ограничение было введено из-за переполнения миллисекундных 7912 таймеров. 7913 7914 7915Изменения в nginx 0.2.6 05.10.2005 7916 7917 *) Изменение: с 60 до 10 секунд уменьшено время повторного обращения к 7918 бэкенду при использовании распределения нагрузки. 7919 7920 *) Изменение: директива proxy_pass_unparsed_uri упразднена, оригинальный 7921 запрос теперь передаётся, если в директиве proxy_pass отсутствует 7922 URI. 7923 7924 *) Добавление: директива error_page поддерживает редиректы и позволяет 7925 более гибко менять код ошибки. 7926 7927 *) Изменение: в проксированных подзапросах теперь игнорируется 7928 переданный charset. 7929 7930 *) Исправление: если после изменения URI в блоке if для запроса не 7931 находилась новая конфигурация, то правила модуля 7932 ngx_http_rewrite_module выполнялись снова. 7933 7934 *) Исправление: если директива set устанавливала переменную модуля 7935 ngx_http_geo_module в какой-либо части конфигурации, то эта 7936 переменная не была доступна в других частях конфигурации и выдавалась 7937 ошибка "using uninitialized variable"; ошибка появилась в 0.2.2. 7938 7939 7940Изменения в nginx 0.2.5 04.10.2005 7941 7942 *) Изменение: дублирующее значение переменной модуля ngx_http_geo_module 7943 теперь выдаёт предупреждение и изменяет старое значение. 7944 7945 *) Добавление: модуль ngx_http_ssi_module поддерживает команду set. 7946 7947 *) Добавление: модуль ngx_http_ssi_module поддерживает параметр file в 7948 команде include. 7949 7950 *) Добавление: модуль ngx_http_ssi_module поддерживает подстановку 7951 значений переменных в выражениях команды if. 7952 7953 7954Изменения в nginx 0.2.4 03.10.2005 7955 7956 *) Добавление: модуль ngx_http_ssi_module поддерживает выражения 7957 "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/" в команде 7958 if. 7959 7960 *) Исправление: ошибки при проксировании location без слэша в конце; 7961 ошибка появилась в 0.1.44. 7962 7963 *) Исправление: при использовании метода rtsig мог произойти 7964 segmentation fault; ошибка появилась в 0.2.0. 7965 7966 7967Изменения в nginx 0.2.3 30.09.2005 7968 7969 *) Исправление: nginx не собирался без параметра --with-debug; ошибка 7970 появилась в 0.2.2. 7971 7972 7973Изменения в nginx 0.2.2 30.09.2005 7974 7975 *) Добавление: команда config errmsg в модуле ngx_http_ssi_module. 7976 7977 *) Изменение: переменные модуля ngx_http_geo_module можно переопределять 7978 директивой set. 7979 7980 *) Добавление: директивы ssl_protocols и ssl_prefer_server_ciphers 7981 модулей ngx_http_ssl_module и ngx_imap_ssl_module. 7982 7983 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе 7984 длинных имён файлов; 7985 7986 *) Исправление: модуль ngx_http_autoindex_module теперь не показывает 7987 файлы, начинающиеся на точку. 7988 7989 *) Исправление: если SSL handshake завершался с ошибкой, то это могло 7990 привести также к закрытию другого соединения. 7991 Спасибо Rob Mueller. 7992 7993 *) Исправление: экспортные версии MSIE 5.x не могли соединиться по 7994 HTTPS. 7995 7996 7997Изменения в nginx 0.2.1 23.09.2005 7998 7999 *) Исправление: если все бэкенды, используемые для балансировки 8000 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то 8001 nginx мог зациклится; ошибка появилась в 0.2.0. 8002 8003 8004Изменения в nginx 0.2.0 23.09.2005 8005 8006 *) Изменились имена pid-файлов, используемые во время обновления 8007 исполняемого файла. Ручное переименование теперь не нужно. Старый 8008 основной процесс добавляет к своему pid-файл суффикс ".oldbin" и 8009 запускает новый исполняемый файл. Новый основной процесс создаёт 8010 обычный pid-файл без суффикса ".newbin". Если новый основной процесс 8011 выходит, то старый процесс переименовывает свой pid-файл c суффиксом 8012 ".oldbin" в pid-файл без суффикса. При обновлении с версии 0.1.х до 8013 0.2.0 нужно учитывать, что оба процесса - старый 0.1.x и новый 8014 0.2.0 - используют pid-файл без суффиксов. 8015 8016 *) Изменение: директива worker_connections, новое название директивы 8017 connections; директива теперь задаёт максимальное число соединений, а 8018 не максимально возможный номер дескриптора для сокета. 8019 8020 *) Добавление: SSL поддерживает кэширование сессий в пределах одного 8021 рабочего процесса. 8022 8023 *) Добавление: директива satisfy_any. 8024 8025 *) Изменение: модули ngx_http_access_module и ngx_http_auth_basic_module 8026 не работают для подзапросов. 8027 8028 *) Добавление: директивы worker_rlimit_nofile и 8029 worker_rlimit_sigpending. 8030 8031 *) Исправление: если все бэкенды, используемые для балансировки 8032 нагрузки, оказывались в нерабочем состоянии после одной ошибки, то 8033 nginx не обращался к ним в течение 60 секунд. 8034 8035 *) Исправление: в парсинге аргументов IMAP/POP3 команд. 8036 Спасибо Rob Mueller. 8037 8038 *) Исправление: ошибки при использовании SSL в IMAP/POP3 прокси. 8039 8040 *) Исправление: ошибки при использовании SSI и сжатия. 8041 8042 *) Исправление: в ответах 304 не добавлялись строки заголовка ответа 8043 "Expires" и "Cache-Control". 8044 Спасибо Александру Кукушкину. 8045 8046 8047Изменения в nginx 0.1.45 08.09.2005 8048 8049 *) Изменение: директива ssl_engine упразднена в модуле 8050 ngx_http_ssl_module и перенесена на глобальный уровень. 8051 8052 *) Исправление: ответы с подзапросами, включённые с помощью SSI, не 8053 передавались через SSL соединение. 8054 8055 *) Разные исправления в IMAP/POP3 прокси. 8056 8057 8058Изменения в nginx 0.1.44 06.09.2005 8059 8060 *) Добавление: IMAP/POP3 прокси поддерживает SSL. 8061 8062 *) Добавление: директива proxy_timeout модуля ngx_imap_proxy_module. 8063 8064 *) Добавление: директива userid_mark. 8065 8066 *) Добавление: значение переменной $remote_user определяется независимо 8067 от того, используется ли авторизация или нет. 8068 8069 8070Изменения в nginx 0.1.43 30.08.2005 8071 8072 *) Добавление: listen(2) backlog в директиве listen можно менять по 8073 сигналу -HUP. 8074 8075 *) Добавление: скрипт geo2nginx.pl добавлен в contrib. 8076 8077 *) Изменение: параметры FastCGI с пустым значениями теперь передаются 8078 серверу. 8079 8080 *) Исправление: если в ответе проксированного сервера или FastCGI 8081 сервера была строка "Cache-Control", то при использовании директивы 8082 expires происходил segmentation fault или рабочий процесс мог 8083 зациклится; в режиме прокси ошибка появилась в 0.1.29. 8084 8085 8086Изменения в nginx 0.1.42 23.08.2005 8087 8088 *) Исправление: если URI запроса получался нулевой длины после обработки 8089 модулем ngx_http_rewrite_module, то в модуле ngx_http_proxy_module 8090 происходил segmentation fault или bus error. 8091 8092 *) Исправление: директива limit_rate не работала внутри блока if; ошибка 8093 появилась в 0.1.38. 8094 8095 8096Изменения в nginx 0.1.41 25.07.2005 8097 8098 *) Исправление: если переменная использовалась в файле конфигурации, то 8099 она не могла использоваться в SSI. 8100 8101 8102Изменения в nginx 0.1.40 22.07.2005 8103 8104 *) Исправление: если клиент слал очень длинную строку заголовка, то в 8105 логе не помещалась информация, связанная с этим запросом. 8106 8107 *) Исправление: при использовании "X-Accel-Redirect" не передавалась 8108 строка "Set-Cookie"; ошибка появилась в 0.1.39. 8109 8110 *) Исправление: при использовании "X-Accel-Redirect" не передавалась 8111 строка "Content-Disposition". 8112 8113 *) Исправление: по сигналу SIGQUIT основной процесс не закрывал сокеты, 8114 на которых он слушал. 8115 8116 *) Исправление: после обновления исполняемого файла на лету на Linux и 8117 Solaris название процесса в команде ps становилось короче. 8118 8119 8120Изменения в nginx 0.1.39 14.07.2005 8121 8122 *) Изменения в модуле ngx_http_charset_module: директива default_charset 8123 упразднена; директива charset задаёт кодировку ответа; директива 8124 source_charset задаёт только исходную кодировку. 8125 8126 *) Исправление: при перенаправлении ошибки 401, полученной от бэкенда, 8127 не передавалась строка заголовка "WWW-Authenticate". 8128 8129 *) Исправление: модули ngx_http_proxy_module и ngx_http_fastcgi_module 8130 могли закрыть соединение до того, как что-нибудь было передано 8131 клиенту; ошибка появилась в 0.1.38. 8132 8133 *) Изменение: обработка ошибки инициализации в crypt_r() в Linux glibc. 8134 8135 *) Исправление: модуль ngx_http_ssi_module не поддерживал относительные 8136 URI в команде include virtual. 8137 8138 *) Исправление: если в строке заголовка ответа бэкенда была строка 8139 "Location", которую nginx не должен был изменять, то в ответе 8140 передавалось тело 500 ошибки; ошибка появилась в 0.1.29. 8141 8142 *) Исправление: некоторые директивы модулей ngx_http_proxy_module и 8143 ngx_http_fastcgi_module не наследовались с уровня server на уровень 8144 location; ошибка появилась в 0.1.29. 8145 8146 *) Исправление: модуль ngx_http_ssl_module не поддерживал цепочки 8147 сертификатов. 8148 8149 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе 8150 длинных имён файлов; ошибка появилась в 0.1.38. 8151 8152 *) Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на 8153 стадии login. 8154 8155 8156Изменения в nginx 0.1.38 08.07.2005 8157 8158 *) Добавление: директива limit_rate поддерживается в режиме прокси и 8159 FastCGI. 8160 8161 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка 8162 "X-Accel-Limit-Rate" в ответе бэкенда. 8163 8164 *) Добавление: директива break. 8165 8166 *) Добавление: директива log_not_found. 8167 8168 *) Исправление: при перенаправлении запроса с помощью строки заголовка 8169 "X-Accel-Redirect" не изменялся код ответа. 8170 8171 *) Исправление: переменные, установленные директивой set не могли 8172 использоваться в SSI. 8173 8174 *) Исправление: при включении в SSI более одного удалённого подзапроса 8175 мог произойти segmentation fault. 8176 8177 *) Исправление: если статусная строка в ответе бэкенда передавалась в 8178 двух пакетах, то nginx считал ответ неверным; ошибка появилась в 8179 0.1.29. 8180 8181 *) Добавление: директива ssi_types. 8182 8183 *) Добавление: директива autoindex_exact_size. 8184 8185 *) Исправление: модуль ngx_http_autoindex_module не поддерживал длинные 8186 имена файлов в UTF-8. 8187 8188 *) Добавление: IMAP/POP3 прокси. 8189 8190 8191Изменения в nginx 0.1.37 23.06.2005 8192 8193 *) Изменение: в конце файла nginx.pid теперь добавляется "\n". 8194 8195 *) Исправление: при включении большого количества вставок или нескольких 8196 больших вставок с помощью SSI ответ мог передаваться не полностью. 8197 8198 *) Исправление: если все бэкенды возвращали ответ 404, то при 8199 использовании параметра http_404 в директивах proxy_next_upstream или 8200 fastcgi_next_upstream, nginx начинал запрашивать все бэкенды снова. 8201 8202 8203Изменения в nginx 0.1.36 15.06.2005 8204 8205 *) Изменение: если в заголовке запроса есть дублирующиеся строки "Host", 8206 "Connection", "Content-Length" и "Authorization", то nginx теперь 8207 выдаёт ошибку 400. 8208 8209 *) Изменение: директива post_accept_timeout упразднена. 8210 8211 *) Добавление: параметры default, af=, bl=, deferred и bind в директиве 8212 listen. 8213 8214 *) Добавление: поддержка accept фильтров во FreeBSD. 8215 8216 *) Добавление: поддержка TCP_DEFER_ACCEPT в Linux. 8217 8218 *) Исправление: модуль ngx_http_autoindex_module не поддерживал имена 8219 файлов в UTF-8. 8220 8221 *) Исправление: после добавления новый лог-файл ротация этого лога по 8222 сигналу -USR1 выполнялась, только если переконфигурировать nginx два 8223 раза по сигналу -HUP. 8224 8225 8226Изменения в nginx 0.1.35 07.06.2005 8227 8228 *) Добавление: директива working_directory. 8229 8230 *) Добавление: директива port_in_redirect. 8231 8232 *) Исправление: если заголовок ответа бэкенда не помещался в один пакет, 8233 то происходил segmentation fault; ошибка появилась в 0.1.29. 8234 8235 *) Исправление: если было сконфигурировано более 10 серверов или в 8236 сервере не описана директива "listen", то при запуске мог произойти 8237 segmentation fault. 8238 8239 *) Исправление: если ответ не помещался во временный файл, то мог 8240 произойти segmentation fault. 8241 8242 *) Исправление: nginx возвращал ошибку 400 на запросы вида 8243 "GET http://www.domain.com/uri HTTP/1.0"; ошибка появилась в 0.1.28. 8244 8245 8246Изменения в nginx 0.1.34 26.05.2005 8247 8248 *) Исправление: при включении больших ответов с помощью SSI рабочий 8249 процесс мог зациклиться. 8250 8251 *) Исправление: переменные, устанавливаемые директивой "set", не были 8252 доступны в SSI. 8253 8254 *) Добавление: директива autoindex_localtime. 8255 8256 *) Исправление: пустое значение в директиве proxy_set_header запрещает 8257 передачу заголовка. 8258 8259 8260Изменения в nginx 0.1.33 23.05.2005 8261 8262 *) Исправление: nginx не собирался с параметром --without-pcre; ошибка 8263 появилась в 0.1.29. 8264 8265 *) Исправление: 3, 5, 7 и 8 директив proxy_set_header на одном уровне 8266 вызывали bus fault при запуске. 8267 8268 *) Исправление: в редиректах внутри HTTPS сервера был указан протокол 8269 HTTP. 8270 8271 *) Исправление: если директива rewrite использовала выделения внутри 8272 директивы if, то возвращалась ошибка 500. 8273 8274 8275Изменения в nginx 0.1.32 19.05.2005 8276 8277 *) Исправление: в редиректах, выдаваемых с помощью директивы rewrite, не 8278 передавались аргументы; ошибка появилась в 0.1.29. 8279 8280 *) Добавление: директива if поддерживает выделения в регулярных 8281 выражениях. 8282 8283 *) Добавление: директива set поддерживает переменные и выделения из 8284 регулярных выражений. 8285 8286 *) Добавление: в режиме прокси и FastCGI поддерживается строка заголовка 8287 "X-Accel-Redirect" в ответе бэкенда. 8288 8289 8290Изменения в nginx 0.1.31 16.05.2005 8291 8292 *) Исправление: при использовании SSL ответ мог передаваться не до 8293 конца. 8294 8295 *) Исправление: ошибки при обработке SSI в ответе, полученного от 8296 FastCGI-сервера. 8297 8298 *) Исправление: ошибки при использовании SSI и сжатия. 8299 8300 *) Исправление: редирект с кодом 301 передавался без тела ответа; ошибка 8301 появилась в 0.1.30. 8302 8303 8304Изменения в nginx 0.1.30 14.05.2005 8305 8306 *) Исправление: при использовании SSI рабочий процесс мог зациклиться. 8307 8308 *) Исправление: при использовании SSL ответ мог передаваться не до 8309 конца. 8310 8311 *) Исправление: если длина части ответа, полученного за один раз от 8312 проксируемого или FastCGI сервера была равна 500 байт, то nginx 8313 возвращал код ответа 500; в режиме прокси ошибка появилась только в 8314 0.1.29. 8315 8316 *) Исправление: nginx не считал неверными директивы с 8-ю или 9-ю 8317 параметрами. 8318 8319 *) Добавление: директива return может возвращать код ответа 204. 8320 8321 *) Добавление: директива ignore_invalid_headers. 8322 8323 8324Изменения в nginx 0.1.29 12.05.2005 8325 8326 *) Добавление: модуль ngx_http_ssi_module поддерживает команду include 8327 virtual. 8328 8329 *) Добавление: модуль ngx_http_ssi_module поддерживает условную команду 8330 вида 'if expr="$NAME"' и команды else и endif. Допускается только 8331 один уровень вложенности. 8332 8333 *) Добавление: модуль ngx_http_ssi_module поддерживает две переменные 8334 DATE_LOCAL и DATE_GMT и команду config timefmt. 8335 8336 *) Добавление: директива ssi_ignore_recycled_buffers. 8337 8338 *) Исправление: если переменная QUERY_STRING не была определена, то в 8339 команде echo не ставилось значение по умолчанию. 8340 8341 *) Изменение: модуль ngx_http_proxy_module полностью переписан. 8342 8343 *) Добавление: директивы proxy_redirect, proxy_pass_request_headers, 8344 proxy_pass_request_body и proxy_method. 8345 8346 *) Добавление: директива proxy_set_header. Директива proxy_x_var 8347 упразднена и должна быть заменена директивой proxy_set_header. 8348 8349 *) Изменение: директива proxy_preserve_host упразднена и должна быть 8350 заменена директивами "proxy_set_header Host $host" и "proxy_redirect 8351 off" или директивой "proxy_set_header Host $host:$proxy_port" и 8352 соответствующими ей директивами proxy_redirect. 8353 8354 *) Изменение: директива proxy_set_x_real_ip упразднена и должна быть 8355 заменена директивой "proxy_set_header X-Real-IP $remote_addr". 8356 8357 *) Изменение: директива proxy_add_x_forwarded_for упразднена и должна 8358 быть заменена директивой 8359 "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for". 8360 8361 *) Изменение: директива proxy_set_x_url упразднена и должна быть 8362 заменена директивой 8363 "proxy_set_header X-URL http://$host:$server_port$request_uri". 8364 8365 *) Добавление: директива fastcgi_param. 8366 8367 *) Изменение: директивы fastcgi_root, fastcgi_set_var и fastcgi_params 8368 упразднены и должны быть замены директивами fastcgi_param. 8369 8370 *) Добавление: директива index может использовать переменные. 8371 8372 *) Добавление: директива index может быть указана на уровне http и 8373 server. 8374 8375 *) Изменение: только последний параметр в директиве index может быть 8376 абсолютным. 8377 8378 *) Добавление: в директиве rewrite могут использоваться переменные. 8379 8380 *) Добавление: директива internal. 8381 8382 *) Добавление: переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, 8383 SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, 8384 SERVER_NAME, REQUEST_METHOD, REQUEST_URI и REMOTE_USER. 8385 8386 *) Изменение: nginx теперь передаёт неверные строки в заголовках запроса 8387 клиента и ответа бэкенда. 8388 8389 *) Исправление: если бэкенд долго не передавал ответ и send_timeout был 8390 меньше, чем proxy_read_timeout, то клиенту возвращался ответ 408. 8391 8392 *) Исправление: если бэкенд передавал неверную строку в заголовке 8393 ответа, то происходил segmentation fault; ошибка появилась в 0.1.26. 8394 8395 *) Исправление: при использовании отказоустойчивой конфигурации в 8396 FastCGI мог происходить segmentation fault. 8397 8398 *) Исправление: директива expires не удаляла уже установленные строки 8399 заголовка "Expires" и "Cache-Control". 8400 8401 *) Исправление: nginx не учитывал завершающую точку в строке заголовка 8402 запроса "Host". 8403 8404 *) Исправление: модуль ngx_http_auth_module не работал на Linux. 8405 8406 *) Исправление: директива rewrite неверно работала, если в запросе 8407 присутствовали аргументы. 8408 8409 *) Исправление: nginx не собирался на MacOS X. 8410 8411 8412Изменения в nginx 0.1.28 08.04.2005 8413 8414 *) Исправление: при проксировании больших файлов nginx сильно нагружал 8415 процессор. 8416 8417 *) Исправление: nginx не собирался gcc 4.0 на Linux. 8418 8419 8420Изменения в nginx 0.1.27 28.03.2005 8421 8422 *) Добавление: параметр blocked в директиве valid_referers. 8423 8424 *) Изменение: ошибки обработки заголовка запроса теперь записываются на 8425 уровне info, в лог также записывается имя сервера и строки заголовка 8426 запроса "Host" и "Referer". 8427 8428 *) Изменение: при записи ошибок в лог записывается также строка 8429 заголовка запроса "Host". 8430 8431 *) Добавление: директива proxy_pass_unparsed_uri. Специальная обработка 8432 символов "://" в URI, введённая в версии 0.1.11, теперь упразднена. 8433 8434 *) Исправление: nginx не собирался на FreeBSD и Linux, если был указан 8435 параметр конфигурации --without-ngx_http_auth_basic_module. 8436 8437 8438Изменения в nginx 0.1.26 22.03.2005 8439 8440 *) Изменение: неверные строки заголовка, переданные клиентом, теперь 8441 игнорируется и записываются в error_log на уровне info. 8442 8443 *) Изменение: при записи ошибок в лог записывается также имя сервера, 8444 при обращении к которому произошла ошибка. 8445 8446 *) Добавление: модуль ngx_http_auth_basic_module и директивы auth_basic 8447 и auth_basic_user_file. 8448 8449 8450Изменения в nginx 0.1.25 19.03.2005 8451 8452 *) Исправление: nginx не работал на Linux parisc. 8453 8454 *) Добавление: nginx теперь не запускается под FreeBSD, если значение 8455 sysctl kern.ipc.somaxconn слишком большое. 8456 8457 *) Исправление: если модуль ngx_http_index_module делал внутреннее 8458 перенаправление запроса в модули ngx_http_proxy_module или 8459 ngx_http_fastcgi_module, то файл индекса не закрывался после 8460 обслуживания запроса. 8461 8462 *) Добавление: директива proxy_pass может использоваться в location, 8463 заданных регулярным выражением. 8464 8465 *) Добавление: модуль ngx_http_rewrite_filter_module поддерживает 8466 условия вида "if ($HTTP_USER_AGENT ~ MSIE)". 8467 8468 *) Исправление: nginx очень медленно запускался при большом количестве 8469 адресов и использовании текстовых значений в директиве geo. 8470 8471 *) Изменение: имя переменной в директиве geo нужно указывать, как $name. 8472 Прежний вариант без "$" пока работает, но вскоре будет убран. 8473 8474 *) Добавление: параметр лога "%{VARIABLE}v". 8475 8476 *) Добавление: директива "set $name value". 8477 8478 *) Исправление: совместимость с gcc 4.0. 8479 8480 *) Добавление: параметр автоконфигурации --with-openssl-opt=OPTIONS. 8481 8482 8483Изменения в nginx 0.1.24 04.03.2005 8484 8485 *) Добавление: модуль ngx_http_ssi_filter_module поддерживает переменные 8486 QUERY_STRING и DOCUMENT_URI. 8487 8488 *) Исправление: модуль ngx_http_autoindex_module мог выдавать ответ 404 8489 на существующий каталог, если этот каталог был указан как alias. 8490 8491 *) Исправление: модуль ngx_http_ssi_filter_module неправильно работал 8492 при больших ответах. 8493 8494 *) Исправление: отсутствие строки заголовка "Referer" всегда считалось 8495 правильным referrer'ом. 8496 8497 8498Изменения в nginx 0.1.23 01.03.2005 8499 8500 *) Добавление: модуль ngx_http_ssi_filter_module и директивы ssi, 8501 ssi_silent_errors и ssi_min_file_chunk. Поддерживаются команды 'echo 8502 var="HTTP_..." default=""' и 'echo var="REMOTE_ADDR"'. 8503 8504 *) Добавление: параметр лога %request_time. 8505 8506 *) Добавление: если запрос пришёл без строки заголовка "Host", то 8507 директива proxy_preserve_host устанавливает в качестве этого 8508 заголовка первое имя сервера из директивы server_name. 8509 8510 *) Исправление: nginx не собирался на платформах, отличных от i386, 8511 amd64, sparc и ppc; ошибка появилась в 0.1.22. 8512 8513 *) Исправление: модуль ngx_http_autoindex_module теперь показывает 8514 информацию не о символическом линке, а о файле или каталоге, на 8515 который он указывает. 8516 8517 *) Исправление: если клиенту ничего не передавалось, то параметр 8518 %apache_length записывал в лог отрицательную длину заголовка ответа. 8519 8520 8521Изменения в nginx 0.1.22 22.02.2005 8522 8523 *) Исправление: модуль ngx_http_stub_status_module показывал неверную 8524 статистику для обработанных соединений, если использовалось 8525 проксирование или FastCGI-сервер. 8526 8527 *) Исправление: на Linux и Solaris установочные пути были неверно 8528 заключены в кавычки; ошибка появилась в 0.1.21. 8529 8530 8531Изменения в nginx 0.1.21 22.02.2005 8532 8533 *) Исправление: модуль ngx_http_stub_status_module показывал неверную 8534 статистику при использовании метода rtsig или при использовании 8535 нескольких рабочих процессов на SMP машине. 8536 8537 *) Исправление: nginx не собирался компилятором icc под Линуксом или 8538 если библиотека zlib-1.2.x собиралась из исходных текстов. 8539 8540 *) Исправление: nginx не собирался под NetBSD 2.0. 8541 8542 8543Изменения в nginx 0.1.20 17.02.2005 8544 8545 *) Добавление: новые параметры script_filename и remote_port в директиве 8546 fastcgi_params. 8547 8548 *) Исправление: неправильно обрабатывался поток stderr от 8549 FastCGI-сервера. 8550 8551 8552Изменения в nginx 0.1.19 16.02.2005 8553 8554 *) Исправление: если в запросе есть нуль, то для локальных запросов 8555 теперь возвращается ошибка 404. 8556 8557 *) Исправление: nginx не собирался под NetBSD 2.0. 8558 8559 *) Исправление: во время чтения тела запроса клиента в SSL соединении 8560 мог произойти таймаут. 8561 8562 8563Изменения в nginx 0.1.18 09.02.2005 8564 8565 *) Изменение: для совместимости с Solaris 10 в директивах devpoll_events 8566 и devpoll_changes значения по умолчанию уменьшены с 512 до 32. 8567 8568 *) Исправление: директивы proxy_set_x_var и fastcgi_set_var не 8569 наследовались. 8570 8571 *) Исправление: в директиве rewrite, возвращающей редирект, аргументы 8572 присоединялись к URI через символ "&" вместо "?". 8573 8574 *) Исправление: строки для модуля ngx_http_geo_module без символа ";" во 8575 включённом файле игнорировались. 8576 8577 *) Добавление: модуль ngx_http_stub_status_module. 8578 8579 *) Исправление: неизвестный формат лог-файла в директиве access_log 8580 вызывал segmentation fault. 8581 8582 *) Добавление: новый параметр document_root в директиве fastcgi_params. 8583 8584 *) Добавление: директива fastcgi_redirect_errors. 8585 8586 *) Добавление: новый модификатор break в директиве rewrite позволяет 8587 прекратить цикл rewrite/location и устанавливает текущую конфигурацию 8588 для запроса. 8589 8590 8591Изменения в nginx 0.1.17 03.02.2005 8592 8593 *) Изменение: модуль ngx_http_rewrite_module полностью переписан. Теперь 8594 можно делать редиректы, возвращать коды ошибок и проверять переменные 8595 и рефереры. Эти директивы можно использовать внутри location. 8596 Директива redirect упразднена. 8597 8598 *) Добавление: модуль ngx_http_geo_module. 8599 8600 *) Добавление: директивы proxy_set_x_var и fastcgi_set_var. 8601 8602 *) Исправление: конфигурация location с модификатором "=" могла 8603 использоваться в другом location. 8604 8605 *) Исправление: правильный тип ответа выставлялся только для запросов, у 8606 которых в расширении были только маленькие буквы. 8607 8608 *) Исправление: если для location установлен proxy_pass или 8609 fastcgi_pass, и доступ к нему запрещался, а ошибка перенаправлялась 8610 на статическую страницу, то происходил segmentation fault. 8611 8612 *) Исправление: если в проксированном ответе в заголовке "Location" 8613 передавался относительный URL, то к нему добавлялось имя хоста и 8614 слэш; ошибка появилась в 0.1.14. 8615 8616 *) Исправление: на Linux в лог не записывался текст системной ошибки. 8617 8618 8619Изменения в nginx 0.1.16 25.01.2005 8620 8621 *) Исправление: если ответ передавался chunk'ами, то при запросе HEAD 8622 выдавался завершающий chunk. 8623 8624 *) Исправление: заголовок "Connection: keep-alive" выдавался, даже если 8625 директива keepalive_timeout запрещала использование keep-alive. 8626 8627 *) Исправление: ошибки в модуле ngx_http_fastcgi_module вызывали 8628 segmentation fault. 8629 8630 *) Исправление: при использовании SSL сжатый ответ мог передаваться не 8631 до конца. 8632 8633 *) Исправление: опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные 8634 для TCP сокетов, не используются для unix domain сокетов. 8635 8636 *) Добавление: директива rewrite поддерживает перезаписывание 8637 аргументов. 8638 8639 *) Исправление: на запрос POST с заголовком "Content-Length: 0" 8640 возвращался ответ 400; ошибка появилась в 0.1.14. 8641 8642 8643Изменения в nginx 0.1.15 19.01.2005 8644 8645 *) Исправление: ошибка соединения с FastCGI-сервером вызывала 8646 segmentation fault. 8647 8648 *) Исправление: корректная обработка регулярного выражения, в котором 8649 число выделенных частей не совпадает с числом подстановок. 8650 8651 *) Добавление: location, который передаётся FastCGI-серверу, может быть 8652 задан с помощью регулярного выражения. 8653 8654 *) Исправление: параметр FastCGI REQUEST_URI теперь передаётся вместе с 8655 аргументами и в том виде, в котором был получен от клиента. 8656 8657 *) Исправление: для использования регулярных выражений в location нужно 8658 было собирать nginx вместе с ngx_http_rewrite_module. 8659 8660 *) Исправление: если бэкенд слушал на 80-ом порту, то при использовании 8661 директивы "proxy_preserve_host on" в заголовке "Host" указывался 8662 также порт 80; ошибка появилась в 0.1.14. 8663 8664 *) Исправление: если задать одинаковые пути в параметрах 8665 автоконфигурации --http-client-body-temp-path=PATH и 8666 --http-proxy-temp-path=PATH или --http-client-body-temp-path=PATH и 8667 --http-fastcgi-temp-path=PATH, то происходил segmentation fault. 8668 8669 8670Изменения в nginx 0.1.14 18.01.2005 8671 8672 *) Добавление: параметры автоконфигурации 8673 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH и 8674 --http-fastcgi-temp-path=PATH 8675 8676 *) Изменение: имя каталога с временными файлами, содержащие тело запроса 8677 клиента, задаётся директивой client_body_temp_path, по умолчанию 8678 <prefix>/client_body_temp. 8679 8680 *) Добавление: модуль ngx_http_fastcgi_module и директивы fastcgi_pass, 8681 fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout, 8682 fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat, 8683 fastcgi_header_buffer_size, fastcgi_buffers, 8684 fastcgi_busy_buffers_size, fastcgi_temp_path, 8685 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, 8686 fastcgi_next_upstream и fastcgi_x_powered_by. 8687 8688 *) Исправление: ошибка "[alert] zero size buf"; ошибка появилась в 8689 0.1.3. 8690 8691 *) Изменение: в директиве proxy_pass нужно обязательно указывать URI 8692 после имени хоста. 8693 8694 *) Изменение: если в URI встречался символ %3F, то он считался началом 8695 строки аргументов. 8696 8697 *) Добавление: поддержка unix domain сокетов в модуле 8698 ngx_http_proxy_module. 8699 8700 *) Добавление: директивы ssl_engine и ssl_ciphers. 8701 Спасибо Сергею Скворцову за SSL-акселератор. 8702 8703 8704Изменения в nginx 0.1.13 21.12.2004 8705 8706 *) Добавление: директивы server_names_hash и 8707 server_names_hash_threshold. 8708 8709 *) Исправление: имена *.domain.tld в директиве server_name не работали. 8710 8711 *) Исправление: параметр лога %request_length записывал неверную длину. 8712 8713 8714Изменения в nginx 0.1.12 06.12.2004 8715 8716 *) Добавление: параметр лога %request_length. 8717 8718 *) Исправление: при использовании /dev/poll, select и poll на 8719 платформах, где возможны ложные срабатывания указанных методов, могли 8720 быть длительные задержки при обработке запроса по keep-alive 8721 соединению. Наблюдалось по крайней мере на Solaris с использованием 8722 /dev/poll. 8723 8724 *) Исправление: директива send_lowat игнорируется на Linux, так как 8725 Linux не поддерживает опцию SO_SNDLOWAT. 8726 8727 8728Изменения в nginx 0.1.11 02.12.2004 8729 8730 *) Добавление: директива worker_priority. 8731 8732 *) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе 8733 влияют на передачу ответа. 8734 8735 *) Исправление: nginx не вызывал initgroups(). 8736 Спасибо Андрею Ситникову и Андрею Нигматулину. 8737 8738 *) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в 8739 байтах. 8740 8741 *) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в 8742 каталоге есть битый symlink. 8743 8744 *) Исправление: файлы больше 4G не передавались с использованием 8745 sendfile. 8746 8747 *) Исправление: если бэкенд резолвился в несколько адресов и при 8748 ожидании от него ответа происходила ошибка, то процесс зацикливался. 8749 8750 *) Исправление: при использовании метода /dev/poll рабочий процесс мог 8751 завершиться с сообщением "unknown cycle". 8752 8753 *) Исправление: ошибки "close() channel failed". 8754 8755 *) Исправление: автоматическое определение групп nobody и nogroup. 8756 8757 *) Исправление: директива send_lowat не работала на Linux. 8758 8759 *) Исправление: если в конфигурации не было раздела events, то 8760 происходил segmentation fault. 8761 8762 *) Исправление: nginx не собирался под OpenBSD. 8763 8764 *) Исправление: двойные слэшы в "://" в URI превращались в ":/". 8765 8766 8767Изменения в nginx 0.1.10 26.11.2004 8768 8769 *) Исправление: если в запросе без аргументов есть "//", "/./", "/../" 8770 или "%XX", то терялся последний символ в строке запроса; ошибка 8771 появилась в 0.1.9. 8772 8773 *) Исправление: исправление в версии 0.1.9 для файлов больше 2G на Linux 8774 не работало. 8775 8776 8777Изменения в nginx 0.1.9 25.11.2004 8778 8779 *) Исправление: если в запросе есть "//", "/./", "/../" или "%XX", то 8780 проксируемый запрос передавался без аргументов. 8781 8782 *) Исправление: при сжатии больших ответов иногда они передавались не 8783 полностью. 8784 8785 *) Исправление: не передавались файлы больше 2G на Linux, 8786 неподдерживающем sendfile64(). 8787 8788 *) Исправление: на Linux при конфигурации сборки нужно было обязательно 8789 использовать параметр --with-poll_module; ошибка появилась в 0.1.8. 8790 8791 8792Изменения в nginx 0.1.8 20.11.2004 8793 8794 *) Исправление: ошибка в модуле ngx_http_autoindex_module при показе 8795 длинных имён файлов. 8796 8797 *) Добавление: модификатор "^~" в директиве location. 8798 8799 *) Добавление: директива proxy_max_temp_file_size. 8800 8801 8802Изменения в nginx 0.1.7 12.11.2004 8803 8804 *) Исправление: при использовании sendfile, если передаваемый файл 8805 менялся, то мог произойти segmentation fault на FreeBSD; ошибка 8806 появилась в 0.1.5. 8807 8808 8809Изменения в nginx 0.1.6 11.11.2004 8810 8811 *) Исправление: при некоторых комбинациях директив location c 8812 регулярными выражениями использовалась конфигурация не из того 8813 location. 8814 8815 8816Изменения в nginx 0.1.5 11.11.2004 8817 8818 *) Исправление: на Solaris и Linux могло быть очень много сообщений 8819 "recvmsg() returned not enough data". 8820 8821 *) Исправление: в режиме прокси без использования sendfile на Solaris 8822 возникала ошибка "writev() failed (22: Invalid argument)". На других 8823 платформах, не поддерживающих sendfile, процесс зацикливался. 8824 8825 *) Исправление: при использовании sendfile в режиме прокси на Solaris 8826 возникал segmentation fault. 8827 8828 *) Исправление: segmentation fault на Solaris. 8829 8830 *) Исправление: обновление исполняемого файла на лету не работало на 8831 Linux. 8832 8833 *) Исправление: в списке файлов, выдаваемом модулем 8834 ngx_http_autoindex_module, не перекодировались пробелы, кавычки и 8835 знаки процента. 8836 8837 *) Изменение: уменьшение операций копирования. 8838 8839 *) Добавление: директива userid_p3p. 8840 8841 8842Изменения в nginx 0.1.4 26.10.2004 8843 8844 *) Исправление: ошибка в модуле ngx_http_autoindex_module. 8845 8846 8847Изменения в nginx 0.1.3 25.10.2004 8848 8849 *) Добавление: модуль ngx_http_autoindex_module и директива autoindex. 8850 8851 *) Добавление: директива proxy_set_x_url. 8852 8853 *) Исправление: модуль проксировании мог привести к зацикливанию, если 8854 не использовался sendfile. 8855 8856 8857Изменения в nginx 0.1.2 21.10.2004 8858 8859 *) Добавление: параметры --user=USER, --group=GROUP и 8860 --with-ld-opt=OPTIONS в configure. 8861 8862 *) Добавление: директива server_name поддерживает *.domain.tld. 8863 8864 *) Исправление: улучшена переносимость на неизвестные платформы. 8865 8866 *) Исправление: нельзя переконфигурировать nginx, если конфигурационный 8867 файл указан в командной строке; ошибка появилась в 0.1.1. 8868 8869 *) Исправление: модуль проксировании мог привести к зацикливанию, если 8870 не использовался sendfile. 8871 8872 *) Исправление: при использовании sendfile текст ответа не 8873 перекодировался согласно директивам модуля charset; ошибка появилась 8874 в 0.1.1. 8875 8876 *) Исправление: очень редкая ошибка при обработке kqueue. 8877 8878 *) Исправление: модуль сжатия сжимал уже сжатые ответы, полученные при 8879 проксировании. 8880 8881 8882Изменения в nginx 0.1.1 11.10.2004 8883 8884 *) Добавление: директива gzip_types. 8885 8886 *) Добавление: директива tcp_nodelay. 8887 8888 *) Добавление: директива send_lowat работает не только на платформах, 8889 поддерживающих kqueue NOTE_LOWAT, но и на всех, поддерживающих 8890 SO_SNDLOWAT. 8891 8892 *) Добавление: эмуляция setproctitle() для Linux и Solaris. 8893 8894 *) Исправление: ошибка при переписывании заголовка "Location" при 8895 проксировании. 8896 8897 *) Исправление: ошибка в модуле ngx_http_chunked_module, приводившая к 8898 зацикливанию. 8899 8900 *) Исправление: ошибки в модуле /dev/poll. 8901 8902 *) Исправление: при проксировании и использовании временных файлов 8903 ответы портились. 8904 8905 *) Исправление: бэкенду передавались запросы с неперекодированными 8906 символами. 8907 8908 *) Исправление: на Linux 2.4 при конфигурации сборки нужно было 8909 обязательно использовать параметр --with-poll_module. 8910 8911 8912Изменения в nginx 0.1.0 04.10.2004 8913 8914 *) Первая публично доступная версия. 8915 8916