1 2Changes with nginx 1.16.1 13 Aug 2019 3 4 *) Security: when using HTTP/2 a client might cause excessive memory 5 consumption and CPU usage (CVE-2019-9511, CVE-2019-9513, 6 CVE-2019-9516). 7 8 9Changes with nginx 1.16.0 23 Apr 2019 10 11 *) 1.16.x stable branch. 12 13 14Changes with nginx 1.15.12 16 Apr 2019 15 16 *) Bugfix: a segmentation fault might occur in a worker process if 17 variables were used in the "ssl_certificate" or "ssl_certificate_key" 18 directives and OCSP stapling was enabled. 19 20 21Changes with nginx 1.15.11 09 Apr 2019 22 23 *) Bugfix: in the "ssl_stapling_file" directive on Windows. 24 25 26Changes with nginx 1.15.10 26 Mar 2019 27 28 *) Change: when using a hostname in the "listen" directive nginx now 29 creates listening sockets for all addresses the hostname resolves to 30 (previously, only the first address was used). 31 32 *) Feature: port ranges in the "listen" directive. 33 34 *) Feature: loading of SSL certificates and secret keys from variables. 35 36 *) Workaround: the $ssl_server_name variable might be empty when using 37 OpenSSL 1.1.1. 38 39 *) Bugfix: nginx/Windows could not be built with Visual Studio 2015 or 40 newer; the bug had appeared in 1.15.9. 41 42 43Changes with nginx 1.15.9 26 Feb 2019 44 45 *) Feature: variables support in the "ssl_certificate" and 46 "ssl_certificate_key" directives. 47 48 *) Feature: the "poll" method is now available on Windows when using 49 Windows Vista or newer. 50 51 *) Bugfix: if the "select" method was used on Windows and an error 52 occurred while establishing a backend connection, nginx waited for 53 the connection establishment timeout to expire. 54 55 *) Bugfix: the "proxy_upload_rate" and "proxy_download_rate" directives 56 in the stream module worked incorrectly when proxying UDP datagrams. 57 58 59Changes with nginx 1.15.8 25 Dec 2018 60 61 *) Feature: the $upstream_bytes_sent variable. 62 Thanks to Piotr Sikora. 63 64 *) Feature: new directives in vim syntax highlighting scripts. 65 Thanks to Gena Makhomed. 66 67 *) Bugfix: in the "proxy_cache_background_update" directive. 68 69 *) Bugfix: in the "geo" directive when using unix domain listen sockets. 70 71 *) Workaround: the "ignoring stale global SSL error ... bad length" 72 alerts might appear in logs when using the "ssl_early_data" directive 73 with OpenSSL. 74 75 *) Bugfix: in nginx/Windows. 76 77 *) Bugfix: in the ngx_http_autoindex_module on 32-bit platforms. 78 79 80Changes with nginx 1.15.7 27 Nov 2018 81 82 *) Feature: the "proxy_requests" directive in the stream module. 83 84 *) Feature: the "delay" parameter of the "limit_req" directive. 85 Thanks to Vladislav Shabanov and Peter Shchuchkin. 86 87 *) Bugfix: memory leak on errors during reconfiguration. 88 89 *) Bugfix: in the $upstream_response_time, $upstream_connect_time, and 90 $upstream_header_time variables. 91 92 *) Bugfix: a segmentation fault might occur in a worker process if the 93 ngx_http_mp4_module was used on 32-bit platforms. 94 95 96Changes with nginx 1.15.6 06 Nov 2018 97 98 *) Security: when using HTTP/2 a client might cause excessive memory 99 consumption (CVE-2018-16843) and CPU usage (CVE-2018-16844). 100 101 *) Security: processing of a specially crafted mp4 file with the 102 ngx_http_mp4_module might result in worker process memory disclosure 103 (CVE-2018-16845). 104 105 *) Feature: the "proxy_socket_keepalive", "fastcgi_socket_keepalive", 106 "grpc_socket_keepalive", "memcached_socket_keepalive", 107 "scgi_socket_keepalive", and "uwsgi_socket_keepalive" directives. 108 109 *) Bugfix: if nginx was built with OpenSSL 1.1.0 and used with OpenSSL 110 1.1.1, the TLS 1.3 protocol was always enabled. 111 112 *) Bugfix: working with gRPC backends might result in excessive memory 113 consumption. 114 115 116Changes with nginx 1.15.5 02 Oct 2018 117 118 *) Bugfix: a segmentation fault might occur in a worker process when 119 using OpenSSL 1.1.0h or newer; the bug had appeared in 1.15.4. 120 121 *) Bugfix: of minor potential bugs. 122 123 124Changes with nginx 1.15.4 25 Sep 2018 125 126 *) Feature: now the "ssl_early_data" directive can be used with OpenSSL. 127 128 *) Bugfix: in the ngx_http_uwsgi_module. 129 Thanks to Chris Caputo. 130 131 *) Bugfix: connections with some gRPC backends might not be cached when 132 using the "keepalive" directive. 133 134 *) Bugfix: a socket leak might occur when using the "error_page" 135 directive to redirect early request processing errors, notably errors 136 with code 400. 137 138 *) Bugfix: the "return" directive did not change the response code when 139 returning errors if the request was redirected by the "error_page" 140 directive. 141 142 *) Bugfix: standard error pages and responses of the 143 ngx_http_autoindex_module module used the "bgcolor" attribute, and 144 might be displayed incorrectly when using custom color settings in 145 browsers. 146 Thanks to Nova DasSarma. 147 148 *) Change: the logging level of the "no suitable key share" and "no 149 suitable signature algorithm" SSL errors has been lowered from "crit" 150 to "info". 151 152 153Changes with nginx 1.15.3 28 Aug 2018 154 155 *) Feature: now TLSv1.3 can be used with BoringSSL. 156 157 *) Feature: the "ssl_early_data" directive, currently available with 158 BoringSSL. 159 160 *) Feature: the "keepalive_timeout" and "keepalive_requests" directives 161 in the "upstream" block. 162 163 *) Bugfix: the ngx_http_dav_module did not truncate destination file 164 when copying a file over an existing one with the COPY method. 165 166 *) Bugfix: the ngx_http_dav_module used zero access rights on the 167 destination file and did not preserve file modification time when 168 moving a file between different file systems with the MOVE method. 169 170 *) Bugfix: the ngx_http_dav_module used default access rights when 171 copying a file with the COPY method. 172 173 *) Workaround: some clients might not work when using HTTP/2; the bug 174 had appeared in 1.13.5. 175 176 *) Bugfix: nginx could not be built with LibreSSL 2.8.0. 177 178 179Changes with nginx 1.15.2 24 Jul 2018 180 181 *) Feature: the $ssl_preread_protocol variable in the 182 ngx_stream_ssl_preread_module. 183 184 *) Feature: now when using the "reset_timedout_connection" directive 185 nginx will reset connections being closed with the 444 code. 186 187 *) Change: a logging level of the "http request", "https proxy request", 188 "unsupported protocol", and "version too low" SSL errors has been 189 lowered from "crit" to "info". 190 191 *) Bugfix: DNS requests were not resent if initial sending of a request 192 failed. 193 194 *) Bugfix: the "reuseport" parameter of the "listen" directive was 195 ignored if the number of worker processes was specified after the 196 "listen" directive. 197 198 *) Bugfix: when using OpenSSL 1.1.0 or newer it was not possible to 199 switch off "ssl_prefer_server_ciphers" in a virtual server if it was 200 switched on in the default server. 201 202 *) Bugfix: SSL session reuse with upstream servers did not work with the 203 TLS 1.3 protocol. 204 205 206Changes with nginx 1.15.1 03 Jul 2018 207 208 *) Feature: the "random" directive inside the "upstream" block. 209 210 *) Feature: improved performance when using the "hash" and "ip_hash" 211 directives with the "zone" directive. 212 213 *) Feature: the "reuseport" parameter of the "listen" directive now uses 214 SO_REUSEPORT_LB on FreeBSD 12. 215 216 *) Bugfix: HTTP/2 server push did not work if SSL was terminated by a 217 proxy server in front of nginx. 218 219 *) Bugfix: the "tcp_nopush" directive was always used on backend 220 connections. 221 222 *) Bugfix: sending a disk-buffered request body to a gRPC backend might 223 fail. 224 225 226Changes with nginx 1.15.0 05 Jun 2018 227 228 *) Change: the "ssl" directive is deprecated; the "ssl" parameter of the 229 "listen" directive should be used instead. 230 231 *) Change: now nginx detects missing SSL certificates during 232 configuration testing when using the "ssl" parameter of the "listen" 233 directive. 234 235 *) Feature: now the stream module can handle multiple incoming UDP 236 datagrams from a client within a single session. 237 238 *) Bugfix: it was possible to specify an incorrect response code in the 239 "proxy_cache_valid" directive. 240 241 *) Bugfix: nginx could not be built by gcc 8.1. 242 243 *) Bugfix: logging to syslog stopped on local IP address changes. 244 245 *) Bugfix: nginx could not be built by clang with CUDA SDK installed; 246 the bug had appeared in 1.13.8. 247 248 *) Bugfix: "getsockopt(TCP_FASTOPEN) ... failed" messages might appear 249 in logs during binary upgrade when using unix domain listen sockets 250 on FreeBSD. 251 252 *) Bugfix: nginx could not be built on Fedora 28 Linux. 253 254 *) Bugfix: request processing rate might exceed configured rate when 255 using the "limit_req" directive. 256 257 *) Bugfix: in handling of client addresses when using unix domain listen 258 sockets to work with datagrams on Linux. 259 260 *) Bugfix: in memory allocation error handling. 261 262 263Changes with nginx 1.13.12 10 Apr 2018 264 265 *) Bugfix: connections with gRPC backends might be closed unexpectedly 266 when returning a large response. 267 268 269Changes with nginx 1.13.11 03 Apr 2018 270 271 *) Feature: the "proxy_protocol" parameter of the "listen" directive now 272 supports the PROXY protocol version 2. 273 274 *) Bugfix: nginx could not be built with OpenSSL 1.1.1 statically on 275 Linux. 276 277 *) Bugfix: in the "http_404", "http_500", etc. parameters of the 278 "proxy_next_upstream" directive. 279 280 281Changes with nginx 1.13.10 20 Mar 2018 282 283 *) Feature: the "set" parameter of the "include" SSI directive now 284 allows writing arbitrary responses to a variable; the 285 "subrequest_output_buffer_size" directive defines maximum response 286 size. 287 288 *) Feature: now nginx uses clock_gettime(CLOCK_MONOTONIC) if available, 289 to avoid timeouts being incorrectly triggered on system time changes. 290 291 *) Feature: the "escape=none" parameter of the "log_format" directive. 292 Thanks to Johannes Baiter and Calin Don. 293 294 *) Feature: the $ssl_preread_alpn_protocols variable in the 295 ngx_stream_ssl_preread_module. 296 297 *) Feature: the ngx_http_grpc_module. 298 299 *) Bugfix: in memory allocation error handling in the "geo" directive. 300 301 *) Bugfix: when using variables in the "auth_basic_user_file" directive 302 a null character might appear in logs. 303 Thanks to Vadim Filimonov. 304 305 306Changes with nginx 1.13.9 20 Feb 2018 307 308 *) Feature: HTTP/2 server push support; the "http2_push" and 309 "http2_push_preload" directives. 310 311 *) Bugfix: "header already sent" alerts might appear in logs when using 312 cache; the bug had appeared in 1.9.13. 313 314 *) Bugfix: a segmentation fault might occur in a worker process if the 315 "ssl_verify_client" directive was used and no SSL certificate was 316 specified in a virtual server. 317 318 *) Bugfix: in the ngx_http_v2_module. 319 320 *) Bugfix: in the ngx_http_dav_module. 321 322 323Changes with nginx 1.13.8 26 Dec 2017 324 325 *) Feature: now nginx automatically preserves the CAP_NET_RAW capability 326 in worker processes when using the "transparent" parameter of the 327 "proxy_bind", "fastcgi_bind", "memcached_bind", "scgi_bind", and 328 "uwsgi_bind" directives. 329 330 *) Feature: improved CPU cache line size detection. 331 Thanks to Debayan Ghosh. 332 333 *) Feature: new directives in vim syntax highlighting scripts. 334 Thanks to Gena Makhomed. 335 336 *) Bugfix: binary upgrade refused to work if nginx was re-parented to a 337 process with PID different from 1 after its parent process has 338 finished. 339 340 *) Bugfix: the ngx_http_autoindex_module incorrectly handled requests 341 with bodies. 342 343 *) Bugfix: in the "proxy_limit_rate" directive when used with the 344 "keepalive" directive. 345 346 *) Bugfix: some parts of a response might be buffered when using 347 "proxy_buffering off" if the client connection used SSL. 348 Thanks to Patryk Lesiewicz. 349 350 *) Bugfix: in the "proxy_cache_background_update" directive. 351 352 *) Bugfix: it was not possible to start a parameter with a variable in 353 the "${name}" form with the name in curly brackets without enclosing 354 the parameter into single or double quotes. 355 356 357Changes with nginx 1.13.7 21 Nov 2017 358 359 *) Bugfix: in the $upstream_status variable. 360 361 *) Bugfix: a segmentation fault might occur in a worker process if a 362 backend returned a "101 Switching Protocols" response to a 363 subrequest. 364 365 *) Bugfix: a segmentation fault occurred in a master process if a shared 366 memory zone size was changed during a reconfiguration and the 367 reconfiguration failed. 368 369 *) Bugfix: in the ngx_http_fastcgi_module. 370 371 *) Bugfix: nginx returned the 500 error if parameters without variables 372 were specified in the "xslt_stylesheet" directive. 373 374 *) Workaround: "gzip filter failed to use preallocated memory" alerts 375 appeared in logs when using a zlib library variant from Intel. 376 377 *) Bugfix: the "worker_shutdown_timeout" directive did not work when 378 using mail proxy and when proxying WebSocket connections. 379 380 381Changes with nginx 1.13.6 10 Oct 2017 382 383 *) Bugfix: switching to the next upstream server in the stream module 384 did not work when using the "ssl_preread" directive. 385 386 *) Bugfix: in the ngx_http_v2_module. 387 Thanks to Piotr Sikora. 388 389 *) Bugfix: nginx did not support dates after the year 2038 on 32-bit 390 platforms with 64-bit time_t. 391 392 *) Bugfix: in handling of dates prior to the year 1970 and after the 393 year 10000. 394 395 *) Bugfix: in the stream module timeouts waiting for UDP datagrams from 396 upstream servers were not logged or logged at the "info" level 397 instead of "error". 398 399 *) Bugfix: when using HTTP/2 nginx might return the 400 response without 400 logging the reason. 401 402 *) Bugfix: in processing of corrupted cache files. 403 404 *) Bugfix: cache control headers were ignored when caching errors 405 intercepted by error_page. 406 407 *) Bugfix: when using HTTP/2 client request body might be corrupted. 408 409 *) Bugfix: in handling of client addresses when using unix domain 410 sockets. 411 412 *) Bugfix: nginx hogged CPU when using the "hash ... consistent" 413 directive in the upstream block if large weights were used and all or 414 most of the servers were unavailable. 415 416 417Changes with nginx 1.13.5 05 Sep 2017 418 419 *) Feature: the $ssl_client_escaped_cert variable. 420 421 *) Bugfix: the "ssl_session_ticket_key" directive and the "include" 422 parameter of the "geo" directive did not work on Windows. 423 424 *) Bugfix: incorrect response length was returned on 32-bit platforms 425 when requesting more than 4 gigabytes with multiple ranges. 426 427 *) Bugfix: the "expires modified" directive and processing of the 428 "If-Range" request header line did not use the response last 429 modification time if proxying without caching was used. 430 431 432Changes with nginx 1.13.4 08 Aug 2017 433 434 *) Feature: the ngx_http_mirror_module. 435 436 *) Bugfix: client connections might be dropped during configuration 437 testing when using the "reuseport" parameter of the "listen" 438 directive on Linux. 439 440 *) Bugfix: request body might not be available in subrequests if it was 441 saved to a file and proxying was used. 442 443 *) Bugfix: cleaning cache based on the "max_size" parameter did not work 444 on Windows. 445 446 *) Bugfix: any shared memory allocation required 4096 bytes on Windows. 447 448 *) Bugfix: nginx worker might be terminated abnormally when using the 449 "zone" directive inside the "upstream" block on Windows. 450 451 452Changes with nginx 1.13.3 11 Jul 2017 453 454 *) Security: a specially crafted request might result in an integer 455 overflow and incorrect processing of ranges in the range filter, 456 potentially resulting in sensitive information leak (CVE-2017-7529). 457 458 459Changes with nginx 1.13.2 27 Jun 2017 460 461 *) Change: nginx now returns 200 instead of 416 when a range starting 462 with 0 is requested from an empty file. 463 464 *) Feature: the "add_trailer" directive. 465 Thanks to Piotr Sikora. 466 467 *) Bugfix: nginx could not be built on Cygwin and NetBSD; the bug had 468 appeared in 1.13.0. 469 470 *) Bugfix: nginx could not be built under MSYS2 / MinGW 64-bit. 471 Thanks to Orgad Shaneh. 472 473 *) Bugfix: a segmentation fault might occur in a worker process when 474 using SSI with many includes and proxy_pass with variables. 475 476 *) Bugfix: in the ngx_http_v2_module. 477 Thanks to Piotr Sikora. 478 479 480Changes with nginx 1.13.1 30 May 2017 481 482 *) Feature: now a hostname can be used as the "set_real_ip_from" 483 directive parameter. 484 485 *) Feature: vim syntax highlighting scripts improvements. 486 487 *) Feature: the "worker_cpu_affinity" directive now works on DragonFly 488 BSD. 489 Thanks to Sepherosa Ziehau. 490 491 *) Bugfix: SSL renegotiation on backend connections did not work when 492 using OpenSSL before 1.1.0. 493 494 *) Workaround: nginx could not be built with Oracle Developer Studio 495 12.5. 496 497 *) Workaround: now cache manager ignores long locked cache entries when 498 cleaning cache based on the "max_size" parameter. 499 500 *) Bugfix: client SSL connections were immediately closed if deferred 501 accept and the "proxy_protocol" parameter of the "listen" directive 502 were used. 503 504 *) Bugfix: in the "proxy_cache_background_update" directive. 505 506 *) Workaround: now the "tcp_nodelay" directive sets the TCP_NODELAY 507 option before an SSL handshake. 508 509 510Changes with nginx 1.13.0 25 Apr 2017 511 512 *) Change: SSL renegotiation is now allowed on backend connections. 513 514 *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" 515 directives of the mail proxy and stream modules. 516 517 *) Feature: the "return" and "error_page" directives can now be used to 518 return 308 redirections. 519 Thanks to Simon Leblanc. 520 521 *) Feature: the "TLSv1.3" parameter of the "ssl_protocols" directive. 522 523 *) Feature: when logging signals nginx now logs PID of the process which 524 sent the signal. 525 526 *) Bugfix: in memory allocation error handling. 527 528 *) Bugfix: if a server in the stream module listened on a wildcard 529 address, the source address of a response UDP datagram could differ 530 from the original datagram destination address. 531 532 533Changes with nginx 1.11.13 04 Apr 2017 534 535 *) Feature: the "http_429" parameter of the "proxy_next_upstream", 536 "fastcgi_next_upstream", "scgi_next_upstream", and 537 "uwsgi_next_upstream" directives. 538 Thanks to Piotr Sikora. 539 540 *) Bugfix: in memory allocation error handling. 541 542 *) Bugfix: requests might hang when using the "sendfile" and 543 "timer_resolution" directives on Linux. 544 545 *) Bugfix: requests might hang when using the "sendfile" and "aio_write" 546 directives with subrequests. 547 548 *) Bugfix: in the ngx_http_v2_module. 549 Thanks to Piotr Sikora. 550 551 *) Bugfix: a segmentation fault might occur in a worker process when 552 using HTTP/2. 553 554 *) Bugfix: requests might hang when using the "limit_rate", 555 "sendfile_max_chunk", "limit_req" directives, or the $r->sleep() 556 embedded perl method with subrequests. 557 558 *) Bugfix: in the ngx_http_slice_module. 559 560 561Changes with nginx 1.11.12 24 Mar 2017 562 563 *) Bugfix: nginx might hog CPU; the bug had appeared in 1.11.11. 564 565 566Changes with nginx 1.11.11 21 Mar 2017 567 568 *) Feature: the "worker_shutdown_timeout" directive. 569 570 *) Feature: vim syntax highlighting scripts improvements. 571 Thanks to Wei-Ko Kao. 572 573 *) Bugfix: a segmentation fault might occur in a worker process if the 574 $limit_rate variable was set to an empty string. 575 576 *) Bugfix: the "proxy_cache_background_update", 577 "fastcgi_cache_background_update", "scgi_cache_background_update", 578 and "uwsgi_cache_background_update" directives might work incorrectly 579 if the "if" directive was used. 580 581 *) Bugfix: a segmentation fault might occur in a worker process if 582 number of large_client_header_buffers in a virtual server was 583 different from the one in the default server. 584 585 *) Bugfix: in the mail proxy server. 586 587 588Changes with nginx 1.11.10 14 Feb 2017 589 590 *) Change: cache header format has been changed, previously cached 591 responses will be invalidated. 592 593 *) Feature: support of "stale-while-revalidate" and "stale-if-error" 594 extensions in the "Cache-Control" backend response header line. 595 596 *) Feature: the "proxy_cache_background_update", 597 "fastcgi_cache_background_update", "scgi_cache_background_update", 598 and "uwsgi_cache_background_update" directives. 599 600 *) Feature: nginx is now able to cache responses with the "Vary" header 601 line up to 128 characters long (instead of 42 characters in previous 602 versions). 603 604 *) Feature: the "build" parameter of the "server_tokens" directive. 605 Thanks to Tom Thorogood. 606 607 *) Bugfix: "[crit] SSL_write() failed" messages might appear in logs 608 when handling requests with the "Expect: 100-continue" request header 609 line. 610 611 *) Bugfix: the ngx_http_slice_module did not work in named locations. 612 613 *) Bugfix: a segmentation fault might occur in a worker process when 614 using AIO after an "X-Accel-Redirect" redirection. 615 616 *) Bugfix: reduced memory consumption for long-lived requests using 617 gzipping. 618 619 620Changes with nginx 1.11.9 24 Jan 2017 621 622 *) Bugfix: nginx might hog CPU when using the stream module; the bug had 623 appeared in 1.11.5. 624 625 *) Bugfix: EXTERNAL authentication mechanism in mail proxy was accepted 626 even if it was not enabled in the configuration. 627 628 *) Bugfix: a segmentation fault might occur in a worker process if the 629 "ssl_verify_client" directive of the stream module was used. 630 631 *) Bugfix: the "ssl_verify_client" directive of the stream module might 632 not work. 633 634 *) Bugfix: closing keepalive connections due to no free worker 635 connections might be too aggressive. 636 Thanks to Joel Cunningham. 637 638 *) Bugfix: an incorrect response might be returned when using the 639 "sendfile" directive on FreeBSD and macOS; the bug had appeared in 640 1.7.8. 641 642 *) Bugfix: a truncated response might be stored in cache when using the 643 "aio_write" directive. 644 645 *) Bugfix: a socket leak might occur when using the "aio_write" 646 directive. 647 648 649Changes with nginx 1.11.8 27 Dec 2016 650 651 *) Feature: the "absolute_redirect" directive. 652 653 *) Feature: the "escape" parameter of the "log_format" directive. 654 655 *) Feature: client SSL certificates verification in the stream module. 656 657 *) Feature: the "ssl_session_ticket_key" directive supports AES256 658 encryption of TLS session tickets when used with 80-byte keys. 659 660 *) Feature: vim-commentary support in vim scripts. 661 Thanks to Armin Grodon. 662 663 *) Bugfix: recursion when evaluating variables was not limited. 664 665 *) Bugfix: in the ngx_stream_ssl_preread_module. 666 667 *) Bugfix: if a server in an upstream in the stream module failed, it 668 was considered alive only when a test connection sent to it after 669 fail_timeout was closed; now a successfully established connection is 670 enough. 671 672 *) Bugfix: nginx/Windows could not be built with 64-bit Visual Studio. 673 674 *) Bugfix: nginx/Windows could not be built with OpenSSL 1.1.0. 675 676 677Changes with nginx 1.11.7 13 Dec 2016 678 679 *) Change: now in case of a client certificate verification error the 680 $ssl_client_verify variable contains a string with the failure 681 reason, for example, "FAILED:certificate has expired". 682 683 *) Feature: the $ssl_ciphers, $ssl_curves, $ssl_client_v_start, 684 $ssl_client_v_end, and $ssl_client_v_remain variables. 685 686 *) Feature: the "volatile" parameter of the "map" directive. 687 688 *) Bugfix: dependencies specified for a module were ignored while 689 building dynamic modules. 690 691 *) Bugfix: when using HTTP/2 and the "limit_req" or "auth_request" 692 directives client request body might be corrupted; the bug had 693 appeared in 1.11.0. 694 695 *) Bugfix: a segmentation fault might occur in a worker process when 696 using HTTP/2; the bug had appeared in 1.11.3. 697 698 *) Bugfix: in the ngx_http_mp4_module. 699 Thanks to Congcong Hu. 700 701 *) Bugfix: in the ngx_http_perl_module. 702 703 704Changes with nginx 1.11.6 15 Nov 2016 705 706 *) Change: format of the $ssl_client_s_dn and $ssl_client_i_dn variables 707 has been changed to follow RFC 2253 (RFC 4514); values in the old 708 format are available in the $ssl_client_s_dn_legacy and 709 $ssl_client_i_dn_legacy variables. 710 711 *) Change: when storing temporary files in a cache directory they will 712 be stored in the same subdirectories as corresponding cache files 713 instead of a separate subdirectory for temporary files. 714 715 *) Feature: EXTERNAL authentication mechanism support in mail proxy. 716 Thanks to Robert Norris. 717 718 *) Feature: WebP support in the ngx_http_image_filter_module. 719 720 *) Feature: variables support in the "proxy_method" directive. 721 Thanks to Dmitry Lazurkin. 722 723 *) Feature: the "http2_max_requests" directive in the 724 ngx_http_v2_module. 725 726 *) Feature: the "proxy_cache_max_range_offset", 727 "fastcgi_cache_max_range_offset", "scgi_cache_max_range_offset", and 728 "uwsgi_cache_max_range_offset" directives. 729 730 *) Bugfix: graceful shutdown of old worker processes might require 731 infinite time when using HTTP/2. 732 733 *) Bugfix: in the ngx_http_mp4_module. 734 735 *) Bugfix: "ignore long locked inactive cache entry" alerts might appear 736 in logs when proxying WebSocket connections with caching enabled. 737 738 *) Bugfix: nginx did not write anything to log and returned a response 739 with code 502 instead of 504 when a timeout occurred during an SSL 740 handshake to a backend. 741 742 743Changes with nginx 1.11.5 11 Oct 2016 744 745 *) Change: the --with-ipv6 configure option was removed, now IPv6 746 support is configured automatically. 747 748 *) Change: now if there are no available servers in an upstream, nginx 749 will not reset number of failures of all servers as it previously 750 did, but will wait for fail_timeout to expire. 751 752 *) Feature: the ngx_stream_ssl_preread_module. 753 754 *) Feature: the "server" directive in the "upstream" context supports 755 the "max_conns" parameter. 756 757 *) Feature: the --with-compat configure option. 758 759 *) Feature: "manager_files", "manager_threshold", and "manager_sleep" 760 parameters of the "proxy_cache_path", "fastcgi_cache_path", 761 "scgi_cache_path", and "uwsgi_cache_path" directives. 762 763 *) Bugfix: flags passed by the --with-ld-opt configure option were not 764 used while building perl module. 765 766 *) Bugfix: in the "add_after_body" directive when used with the 767 "sub_filter" directive. 768 769 *) Bugfix: in the $realip_remote_addr variable. 770 771 *) Bugfix: the "dav_access", "proxy_store_access", 772 "fastcgi_store_access", "scgi_store_access", and "uwsgi_store_access" 773 directives ignored permissions specified for user. 774 775 *) Bugfix: unix domain listen sockets might not be inherited during 776 binary upgrade on Linux. 777 778 *) Bugfix: nginx returned the 400 response on requests with the "-" 779 character in the HTTP method. 780 781 782Changes with nginx 1.11.4 13 Sep 2016 783 784 *) Feature: the $upstream_bytes_received variable. 785 786 *) Feature: the $bytes_received, $session_time, $protocol, $status, 787 $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received, 788 $upstream_connect_time, $upstream_first_byte_time, and 789 $upstream_session_time variables in the stream module. 790 791 *) Feature: the ngx_stream_log_module. 792 793 *) Feature: the "proxy_protocol" parameter of the "listen" directive, 794 the $proxy_protocol_addr and $proxy_protocol_port variables in the 795 stream module. 796 797 *) Feature: the ngx_stream_realip_module. 798 799 *) Bugfix: nginx could not be built with the stream module and the 800 ngx_http_ssl_module, but without ngx_stream_ssl_module; the bug had 801 appeared in 1.11.3. 802 803 *) Feature: the IP_BIND_ADDRESS_NO_PORT socket option was not used; the 804 bug had appeared in 1.11.2. 805 806 *) Bugfix: in the "ranges" parameter of the "geo" directive. 807 808 *) Bugfix: an incorrect response might be returned when using the "aio 809 threads" and "sendfile" directives; the bug had appeared in 1.9.13. 810 811 812Changes with nginx 1.11.3 26 Jul 2016 813 814 *) Change: now the "accept_mutex" directive is turned off by default. 815 816 *) Feature: now nginx uses EPOLLEXCLUSIVE on Linux. 817 818 *) Feature: the ngx_stream_geo_module. 819 820 *) Feature: the ngx_stream_geoip_module. 821 822 *) Feature: the ngx_stream_split_clients_module. 823 824 *) Feature: variables support in the "proxy_pass" and "proxy_ssl_name" 825 directives in the stream module. 826 827 *) Bugfix: socket leak when using HTTP/2. 828 829 *) Bugfix: in configure tests. 830 Thanks to Piotr Sikora. 831 832 833Changes with nginx 1.11.2 05 Jul 2016 834 835 *) Change: now nginx always uses internal MD5 and SHA1 implementations; 836 the --with-md5 and --with-sha1 configure options were canceled. 837 838 *) Feature: variables support in the stream module. 839 840 *) Feature: the ngx_stream_map_module. 841 842 *) Feature: the ngx_stream_return_module. 843 844 *) Feature: a port can be specified in the "proxy_bind", "fastcgi_bind", 845 "memcached_bind", "scgi_bind", and "uwsgi_bind" directives. 846 847 *) Feature: now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option 848 when available. 849 850 *) Bugfix: a segmentation fault might occur in a worker process when 851 using HTTP/2 and the "proxy_request_buffering" directive. 852 853 *) Bugfix: the "Content-Length" request header line was always added to 854 requests passed to backends, including requests without body, when 855 using HTTP/2. 856 857 *) Bugfix: "http request count is zero" alerts might appear in logs when 858 using HTTP/2. 859 860 *) Bugfix: unnecessary buffering might occur when using the "sub_filter" 861 directive; the issue had appeared in 1.9.4. 862 863 864Changes with nginx 1.11.1 31 May 2016 865 866 *) Security: a segmentation fault might occur in a worker process while 867 writing a specially crafted request body to a temporary file 868 (CVE-2016-4450); the bug had appeared in 1.3.9. 869 870 871Changes with nginx 1.11.0 24 May 2016 872 873 *) Feature: the "transparent" parameter of the "proxy_bind", 874 "fastcgi_bind", "memcached_bind", "scgi_bind", and "uwsgi_bind" 875 directives. 876 877 *) Feature: the $request_id variable. 878 879 *) Feature: the "map" directive supports combinations of multiple 880 variables as resulting values. 881 882 *) Feature: now nginx checks if EPOLLRDHUP events are supported by 883 kernel, and optimizes connection handling accordingly if the "epoll" 884 method is used. 885 886 *) Feature: the "ssl_certificate" and "ssl_certificate_key" directives 887 can be specified multiple times to load certificates of different 888 types (for example, RSA and ECDSA). 889 890 *) Feature: the "ssl_ecdh_curve" directive now allows specifying a list 891 of curves when using OpenSSL 1.0.2 or newer; by default a list built 892 into OpenSSL is used. 893 894 *) Change: to use DHE ciphers it is now required to specify parameters 895 using the "ssl_dhparam" directive. 896 897 *) Feature: the $proxy_protocol_port variable. 898 899 *) Feature: the $realip_remote_port variable in the 900 ngx_http_realip_module. 901 902 *) Feature: the ngx_http_realip_module is now able to set the client 903 port in addition to the address. 904 905 *) Change: the "421 Misdirected Request" response now used when 906 rejecting requests to a virtual server different from one negotiated 907 during an SSL handshake; this improves interoperability with some 908 HTTP/2 clients when using client certificates. 909 910 *) Change: HTTP/2 clients can now start sending request body 911 immediately; the "http2_body_preread_size" directive controls size of 912 the buffer used before nginx will start reading client request body. 913 914 *) Bugfix: cached error responses were not updated when using the 915 "proxy_cache_bypass" directive. 916 917 918Changes with nginx 1.9.15 19 Apr 2016 919 920 *) Bugfix: "recv() failed" errors might occur when using HHVM as a 921 FastCGI server. 922 923 *) Bugfix: when using HTTP/2 and the "limit_req" or "auth_request" 924 directives a timeout or a "client violated flow control" error might 925 occur while reading client request body; the bug had appeared in 926 1.9.14. 927 928 *) Workaround: a response might not be shown by some browsers if HTTP/2 929 was used and client request body was not fully read; the bug had 930 appeared in 1.9.14. 931 932 *) Bugfix: connections might hang when using the "aio threads" 933 directive. 934 Thanks to Mindaugas Rasiukevicius. 935 936 937Changes with nginx 1.9.14 05 Apr 2016 938 939 *) Feature: OpenSSL 1.1.0 compatibility. 940 941 *) Feature: the "proxy_request_buffering", "fastcgi_request_buffering", 942 "scgi_request_buffering", and "uwsgi_request_buffering" directives 943 now work with HTTP/2. 944 945 *) Bugfix: "zero size buf in output" alerts might appear in logs when 946 using HTTP/2. 947 948 *) Bugfix: the "client_max_body_size" directive might work incorrectly 949 when using HTTP/2. 950 951 *) Bugfix: of minor bugs in logging. 952 953 954Changes with nginx 1.9.13 29 Mar 2016 955 956 *) Change: non-idempotent requests (POST, LOCK, PATCH) are no longer 957 passed to the next server by default if a request has been sent to a 958 backend; the "non_idempotent" parameter of the "proxy_next_upstream" 959 directive explicitly allows retrying such requests. 960 961 *) Feature: the ngx_http_perl_module can be built dynamically. 962 963 *) Feature: UDP support in the stream module. 964 965 *) Feature: the "aio_write" directive. 966 967 *) Feature: now cache manager monitors number of elements in caches and 968 tries to avoid cache keys zone overflows. 969 970 *) Bugfix: "task already active" and "second aio post" alerts might 971 appear in logs when using the "sendfile" and "aio" directives with 972 subrequests. 973 974 *) Bugfix: "zero size buf in output" alerts might appear in logs if 975 caching was used and a client closed a connection prematurely. 976 977 *) Bugfix: connections with clients might be closed needlessly if 978 caching was used. 979 Thanks to Justin Li. 980 981 *) Bugfix: nginx might hog CPU if the "sendfile" directive was used on 982 Linux or Solaris and a file being sent was changed during sending. 983 984 *) Bugfix: connections might hang when using the "sendfile" and "aio 985 threads" directives. 986 987 *) Bugfix: in the "proxy_pass", "fastcgi_pass", "scgi_pass", and 988 "uwsgi_pass" directives when using variables. 989 Thanks to Piotr Sikora. 990 991 *) Bugfix: in the ngx_http_sub_filter_module. 992 993 *) Bugfix: if an error occurred in a cached backend connection, the 994 request was passed to the next server regardless of the 995 proxy_next_upstream directive. 996 997 *) Bugfix: "CreateFile() failed" errors when creating temporary files on 998 Windows. 999 1000 1001Changes with nginx 1.9.12 24 Feb 2016 1002 1003 *) Feature: Huffman encoding of response headers in HTTP/2. 1004 Thanks to Vlad Krasnov. 1005 1006 *) Feature: the "worker_cpu_affinity" directive now supports more than 1007 64 CPUs. 1008 1009 *) Bugfix: compatibility with 3rd party C++ modules; the bug had 1010 appeared in 1.9.11. 1011 Thanks to Piotr Sikora. 1012 1013 *) Bugfix: nginx could not be built statically with OpenSSL on Linux; 1014 the bug had appeared in 1.9.11. 1015 1016 *) Bugfix: the "add_header ... always" directive with an empty value did 1017 not delete "Last-Modified" and "ETag" header lines from error 1018 responses. 1019 1020 *) Workaround: "called a function you should not call" and "shutdown 1021 while in init" messages might appear in logs when using OpenSSL 1022 1.0.2f. 1023 1024 *) Bugfix: invalid headers might be logged incorrectly. 1025 1026 *) Bugfix: socket leak when using HTTP/2. 1027 1028 *) Bugfix: in the ngx_http_v2_module. 1029 1030 1031Changes with nginx 1.9.11 09 Feb 2016 1032 1033 *) Feature: TCP support in resolver. 1034 1035 *) Feature: dynamic modules. 1036 1037 *) Bugfix: the $request_length variable did not include size of request 1038 headers when using HTTP/2. 1039 1040 *) Bugfix: in the ngx_http_v2_module. 1041 1042 1043Changes with nginx 1.9.10 26 Jan 2016 1044 1045 *) Security: invalid pointer dereference might occur during DNS server 1046 response processing if the "resolver" directive was used, allowing an 1047 attacker who is able to forge UDP packets from the DNS server to 1048 cause segmentation fault in a worker process (CVE-2016-0742). 1049 1050 *) Security: use-after-free condition might occur during CNAME response 1051 processing if the "resolver" directive was used, allowing an attacker 1052 who is able to trigger name resolution to cause segmentation fault in 1053 a worker process, or might have potential other impact 1054 (CVE-2016-0746). 1055 1056 *) Security: CNAME resolution was insufficiently limited if the 1057 "resolver" directive was used, allowing an attacker who is able to 1058 trigger arbitrary name resolution to cause excessive resource 1059 consumption in worker processes (CVE-2016-0747). 1060 1061 *) Feature: the "auto" parameter of the "worker_cpu_affinity" directive. 1062 1063 *) Bugfix: the "proxy_protocol" parameter of the "listen" directive did 1064 not work with IPv6 listen sockets. 1065 1066 *) Bugfix: connections to upstream servers might be cached incorrectly 1067 when using the "keepalive" directive. 1068 1069 *) Bugfix: proxying used the HTTP method of the original request after 1070 an "X-Accel-Redirect" redirection. 1071 1072 1073Changes with nginx 1.9.9 09 Dec 2015 1074 1075 *) Bugfix: proxying to unix domain sockets did not work when using 1076 variables; the bug had appeared in 1.9.8. 1077 1078 1079Changes with nginx 1.9.8 08 Dec 2015 1080 1081 *) Feature: pwritev() support. 1082 1083 *) Feature: the "include" directive inside the "upstream" block. 1084 1085 *) Feature: the ngx_http_slice_module. 1086 1087 *) Bugfix: a segmentation fault might occur in a worker process when 1088 using LibreSSL; the bug had appeared in 1.9.6. 1089 1090 *) Bugfix: nginx could not be built on OS X in some cases. 1091 1092 1093Changes with nginx 1.9.7 17 Nov 2015 1094 1095 *) Feature: the "nohostname" parameter of logging to syslog. 1096 1097 *) Feature: the "proxy_cache_convert_head" directive. 1098 1099 *) Feature: the $realip_remote_addr variable in the 1100 ngx_http_realip_module. 1101 1102 *) Bugfix: the "expires" directive might not work when using variables. 1103 1104 *) Bugfix: a segmentation fault might occur in a worker process when 1105 using HTTP/2; the bug had appeared in 1.9.6. 1106 1107 *) Bugfix: if nginx was built with the ngx_http_v2_module it was 1108 possible to use the HTTP/2 protocol even if the "http2" parameter of 1109 the "listen" directive was not specified. 1110 1111 *) Bugfix: in the ngx_http_v2_module. 1112 1113 1114Changes with nginx 1.9.6 27 Oct 2015 1115 1116 *) Bugfix: a segmentation fault might occur in a worker process when 1117 using HTTP/2. 1118 Thanks to Piotr Sikora and Denis Andzakovic. 1119 1120 *) Bugfix: the $server_protocol variable was empty when using HTTP/2. 1121 1122 *) Bugfix: backend SSL connections in the stream module might be timed 1123 out unexpectedly. 1124 1125 *) Bugfix: a segmentation fault might occur in a worker process if 1126 different ssl_session_cache settings were used in different virtual 1127 servers. 1128 1129 *) Bugfix: nginx/Windows could not be built with MinGW gcc; the bug had 1130 appeared in 1.9.4. 1131 Thanks to Kouhei Sutou. 1132 1133 *) Bugfix: time was not updated when the timer_resolution directive was 1134 used on Windows. 1135 1136 *) Miscellaneous minor fixes and improvements. 1137 Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora. 1138 1139 1140Changes with nginx 1.9.5 22 Sep 2015 1141 1142 *) Feature: the ngx_http_v2_module (replaces ngx_http_spdy_module). 1143 Thanks to Dropbox and Automattic for sponsoring this work. 1144 1145 *) Change: now the "output_buffers" directive uses two buffers by 1146 default. 1147 1148 *) Change: now nginx limits subrequests recursion, not simultaneous 1149 subrequests. 1150 1151 *) Change: now nginx checks the whole cache key when returning a 1152 response from cache. 1153 Thanks to Gena Makhomed and Sergey Brester. 1154 1155 *) Bugfix: "header already sent" alerts might appear in logs when using 1156 cache; the bug had appeared in 1.7.5. 1157 1158 *) Bugfix: "writev() failed (4: Interrupted system call)" errors might 1159 appear in logs when using CephFS and the "timer_resolution" directive 1160 on Linux. 1161 1162 *) Bugfix: in invalid configurations handling. 1163 Thanks to Markus Linnala. 1164 1165 *) Bugfix: a segmentation fault occurred in a worker process if the 1166 "sub_filter" directive was used at http level; the bug had appeared 1167 in 1.9.4. 1168 1169 1170Changes with nginx 1.9.4 18 Aug 2015 1171 1172 *) Change: the "proxy_downstream_buffer" and "proxy_upstream_buffer" 1173 directives of the stream module are replaced with the 1174 "proxy_buffer_size" directive. 1175 1176 *) Feature: the "tcp_nodelay" directive in the stream module. 1177 1178 *) Feature: multiple "sub_filter" directives can be used simultaneously. 1179 1180 *) Feature: variables support in the search string of the "sub_filter" 1181 directive. 1182 1183 *) Workaround: configuration testing might fail under Linux OpenVZ. 1184 Thanks to Gena Makhomed. 1185 1186 *) Bugfix: old worker processes might hog CPU after reconfiguration with 1187 a large number of worker_connections. 1188 1189 *) Bugfix: a segmentation fault might occur in a worker process if the 1190 "try_files" and "alias" directives were used inside a location given 1191 by a regular expression; the bug had appeared in 1.7.1. 1192 1193 *) Bugfix: the "try_files" directive inside a nested location given by a 1194 regular expression worked incorrectly if the "alias" directive was 1195 used in the outer location. 1196 1197 *) Bugfix: in hash table initialization error handling. 1198 1199 *) Bugfix: nginx could not be built with Visual Studio 2015. 1200 1201 1202Changes with nginx 1.9.3 14 Jul 2015 1203 1204 *) Change: duplicate "http", "mail", and "stream" blocks are now 1205 disallowed. 1206 1207 *) Feature: connection limiting in the stream module. 1208 1209 *) Feature: data rate limiting in the stream module. 1210 1211 *) Bugfix: the "zone" directive inside the "upstream" block did not work 1212 on Windows. 1213 1214 *) Bugfix: compatibility with LibreSSL in the stream module. 1215 Thanks to Piotr Sikora. 1216 1217 *) Bugfix: in the "--builddir" configure parameter. 1218 Thanks to Piotr Sikora. 1219 1220 *) Bugfix: the "ssl_stapling_file" directive did not work; the bug had 1221 appeared in 1.9.2. 1222 Thanks to Faidon Liambotis and Brandon Black. 1223 1224 *) Bugfix: a segmentation fault might occur in a worker process if the 1225 "ssl_stapling" directive was used; the bug had appeared in 1.9.2. 1226 Thanks to Matthew Baldwin. 1227 1228 1229Changes with nginx 1.9.2 16 Jun 2015 1230 1231 *) Feature: the "backlog" parameter of the "listen" directives of the 1232 mail proxy and stream modules. 1233 1234 *) Feature: the "allow" and "deny" directives in the stream module. 1235 1236 *) Feature: the "proxy_bind" directive in the stream module. 1237 1238 *) Feature: the "proxy_protocol" directive in the stream module. 1239 1240 *) Feature: the -T switch. 1241 1242 *) Feature: the REQUEST_SCHEME parameter added to the fastcgi.conf, 1243 fastcgi_params, scgi_params, and uwsgi_params standard configuration 1244 files. 1245 1246 *) Bugfix: the "reuseport" parameter of the "listen" directive of the 1247 stream module did not work. 1248 1249 *) Bugfix: OCSP stapling might return an expired OCSP response in some 1250 cases. 1251 1252 1253Changes with nginx 1.9.1 26 May 2015 1254 1255 *) Change: now SSLv3 protocol is disabled by default. 1256 1257 *) Change: some long deprecated directives are not supported anymore. 1258 1259 *) Feature: the "reuseport" parameter of the "listen" directive. 1260 Thanks to Yingqi Lu at Intel and Sepherosa Ziehau. 1261 1262 *) Feature: the $upstream_connect_time variable. 1263 1264 *) Bugfix: in the "hash" directive on big-endian platforms. 1265 1266 *) Bugfix: nginx might fail to start on some old Linux variants; the bug 1267 had appeared in 1.7.11. 1268 1269 *) Bugfix: in IP address parsing. 1270 Thanks to Sergey Polovko. 1271 1272 1273Changes with nginx 1.9.0 28 Apr 2015 1274 1275 *) Change: obsolete aio and rtsig event methods have been removed. 1276 1277 *) Feature: the "zone" directive inside the "upstream" block. 1278 1279 *) Feature: the stream module. 1280 1281 *) Feature: byte ranges support in the ngx_http_memcached_module. 1282 Thanks to Martin Mlynář. 1283 1284 *) Feature: shared memory can now be used on Windows versions with 1285 address space layout randomization. 1286 Thanks to Sergey Brester. 1287 1288 *) Feature: the "error_log" directive can now be used on mail and server 1289 levels in mail proxy. 1290 1291 *) Bugfix: the "proxy_protocol" parameter of the "listen" directive did 1292 not work if not specified in the first "listen" directive for a 1293 listen socket. 1294 1295 1296Changes with nginx 1.7.12 07 Apr 2015 1297 1298 *) Feature: now the "tcp_nodelay" directive works with backend SSL 1299 connections. 1300 1301 *) Feature: now thread pools can be used to read cache file headers. 1302 1303 *) Bugfix: in the "proxy_request_buffering" directive. 1304 1305 *) Bugfix: a segmentation fault might occur in a worker process when 1306 using thread pools on Linux. 1307 1308 *) Bugfix: in error handling when using the "ssl_stapling" directive. 1309 Thanks to Filipe da Silva. 1310 1311 *) Bugfix: in the ngx_http_spdy_module. 1312 1313 1314Changes with nginx 1.7.11 24 Mar 2015 1315 1316 *) Change: the "sendfile" parameter of the "aio" directive is 1317 deprecated; now nginx automatically uses AIO to pre-load data for 1318 sendfile if both "aio" and "sendfile" directives are used. 1319 1320 *) Feature: experimental thread pools support. 1321 1322 *) Feature: the "proxy_request_buffering", "fastcgi_request_buffering", 1323 "scgi_request_buffering", and "uwsgi_request_buffering" directives. 1324 1325 *) Feature: request body filters experimental API. 1326 1327 *) Feature: client SSL certificates support in mail proxy. 1328 Thanks to Sven Peter, Franck Levionnois, and Filipe Da Silva. 1329 1330 *) Feature: startup speedup when using the "hash ... consistent" 1331 directive in the upstream block. 1332 Thanks to Wai Keen Woon. 1333 1334 *) Feature: debug logging into a cyclic memory buffer. 1335 1336 *) Bugfix: in hash table handling. 1337 Thanks to Chris West. 1338 1339 *) Bugfix: in the "proxy_cache_revalidate" directive. 1340 1341 *) Bugfix: SSL connections might hang if deferred accept or the 1342 "proxy_protocol" parameter of the "listen" directive were used. 1343 Thanks to James Hamlin. 1344 1345 *) Bugfix: the $upstream_response_time variable might contain a wrong 1346 value if the "image_filter" directive was used. 1347 1348 *) Bugfix: in integer overflow handling. 1349 Thanks to Régis Leroy. 1350 1351 *) Bugfix: it was not possible to enable SSLv3 with LibreSSL. 1352 1353 *) Bugfix: the "ignoring stale global SSL error ... called a function 1354 you should not call" alerts appeared in logs when using LibreSSL. 1355 1356 *) Bugfix: certificates specified by the "ssl_client_certificate" and 1357 "ssl_trusted_certificate" directives were inadvertently used to 1358 automatically construct certificate chains. 1359 1360 1361Changes with nginx 1.7.10 10 Feb 2015 1362 1363 *) Feature: the "use_temp_path" parameter of the "proxy_cache_path", 1364 "fastcgi_cache_path", "scgi_cache_path", and "uwsgi_cache_path" 1365 directives. 1366 1367 *) Feature: the $upstream_header_time variable. 1368 1369 *) Workaround: now on disk overflow nginx tries to write error logs once 1370 a second only. 1371 1372 *) Bugfix: the "try_files" directive did not ignore normal files while 1373 testing directories. 1374 Thanks to Damien Tournoud. 1375 1376 *) Bugfix: alerts "sendfile() failed" if the "sendfile" directive was 1377 used on OS X; the bug had appeared in 1.7.8. 1378 1379 *) Bugfix: alerts "sem_post() failed" might appear in logs. 1380 1381 *) Bugfix: nginx could not be built with musl libc. 1382 Thanks to James Taylor. 1383 1384 *) Bugfix: nginx could not be built on Tru64 UNIX. 1385 Thanks to Goetz T. Fischer. 1386 1387 1388Changes with nginx 1.7.9 23 Dec 2014 1389 1390 *) Feature: variables support in the "proxy_cache", "fastcgi_cache", 1391 "scgi_cache", and "uwsgi_cache" directives. 1392 1393 *) Feature: variables support in the "expires" directive. 1394 1395 *) Feature: loading of secret keys from hardware tokens with OpenSSL 1396 engines. 1397 Thanks to Dmitrii Pichulin. 1398 1399 *) Feature: the "autoindex_format" directive. 1400 1401 *) Bugfix: cache revalidation is now only used for responses with 200 1402 and 206 status codes. 1403 Thanks to Piotr Sikora. 1404 1405 *) Bugfix: the "TE" client request header line was passed to backends 1406 while proxying. 1407 1408 *) Bugfix: the "proxy_pass", "fastcgi_pass", "scgi_pass", and 1409 "uwsgi_pass" directives might not work correctly inside the "if" and 1410 "limit_except" blocks. 1411 1412 *) Bugfix: the "proxy_store" directive with the "on" parameter was 1413 ignored if the "proxy_store" directive with an explicitly specified 1414 file path was used on a previous level. 1415 1416 *) Bugfix: nginx could not be built with BoringSSL. 1417 Thanks to Lukas Tribus. 1418 1419 1420Changes with nginx 1.7.8 02 Dec 2014 1421 1422 *) Change: now the "If-Modified-Since", "If-Range", etc. client request 1423 header lines are passed to a backend while caching if nginx knows in 1424 advance that the response will not be cached (e.g., when using 1425 proxy_cache_min_uses). 1426 1427 *) Change: now after proxy_cache_lock_timeout nginx sends a request to a 1428 backend with caching disabled; the new directives 1429 "proxy_cache_lock_age", "fastcgi_cache_lock_age", 1430 "scgi_cache_lock_age", and "uwsgi_cache_lock_age" specify a time 1431 after which the lock will be released and another attempt to cache a 1432 response will be made. 1433 1434 *) Change: the "log_format" directive can now be used only at http 1435 level. 1436 1437 *) Feature: the "proxy_ssl_certificate", "proxy_ssl_certificate_key", 1438 "proxy_ssl_password_file", "uwsgi_ssl_certificate", 1439 "uwsgi_ssl_certificate_key", and "uwsgi_ssl_password_file" 1440 directives. 1441 Thanks to Piotr Sikora. 1442 1443 *) Feature: it is now possible to switch to a named location using 1444 "X-Accel-Redirect". 1445 Thanks to Toshikuni Fukaya. 1446 1447 *) Feature: now the "tcp_nodelay" directive works with SPDY connections. 1448 1449 *) Feature: new directives in vim syntax highliting scripts. 1450 Thanks to Peter Wu. 1451 1452 *) Bugfix: nginx ignored the "s-maxage" value in the "Cache-Control" 1453 backend response header line. 1454 Thanks to Piotr Sikora. 1455 1456 *) Bugfix: in the ngx_http_spdy_module. 1457 Thanks to Piotr Sikora. 1458 1459 *) Bugfix: in the "ssl_password_file" directive when using OpenSSL 1460 0.9.8zc, 1.0.0o, 1.0.1j. 1461 1462 *) Bugfix: alerts "header already sent" appeared in logs if the 1463 "post_action" directive was used; the bug had appeared in 1.5.4. 1464 1465 *) Bugfix: alerts "the http output chain is empty" might appear in logs 1466 if the "postpone_output 0" directive was used with SSI includes. 1467 1468 *) Bugfix: in the "proxy_cache_lock" directive with SSI subrequests. 1469 Thanks to Yichun Zhang. 1470 1471 1472Changes with nginx 1.7.7 28 Oct 2014 1473 1474 *) Change: now nginx takes into account the "Vary" header line in a 1475 backend response while caching. 1476 1477 *) Feature: the "proxy_force_ranges", "fastcgi_force_ranges", 1478 "scgi_force_ranges", and "uwsgi_force_ranges" directives. 1479 1480 *) Feature: the "proxy_limit_rate", "fastcgi_limit_rate", 1481 "scgi_limit_rate", and "uwsgi_limit_rate" directives. 1482 1483 *) Feature: the "Vary" parameter of the "proxy_ignore_headers", 1484 "fastcgi_ignore_headers", "scgi_ignore_headers", and 1485 "uwsgi_ignore_headers" directives. 1486 1487 *) Bugfix: the last part of a response received from a backend with 1488 unbufferred proxy might not be sent to a client if "gzip" or "gunzip" 1489 directives were used. 1490 1491 *) Bugfix: in the "proxy_cache_revalidate" directive. 1492 Thanks to Piotr Sikora. 1493 1494 *) Bugfix: in error handling. 1495 Thanks to Yichun Zhang and Daniil Bondarev. 1496 1497 *) Bugfix: in the "proxy_next_upstream_tries" and 1498 "proxy_next_upstream_timeout" directives. 1499 Thanks to Feng Gu. 1500 1501 *) Bugfix: nginx/Windows could not be built with MinGW-w64 gcc. 1502 Thanks to Kouhei Sutou. 1503 1504 1505Changes with nginx 1.7.6 30 Sep 2014 1506 1507 *) Change: the deprecated "limit_zone" directive is not supported 1508 anymore. 1509 1510 *) Feature: the "limit_conn_zone" and "limit_req_zone" directives now 1511 can be used with combinations of multiple variables. 1512 1513 *) Bugfix: request body might be transmitted incorrectly when retrying a 1514 FastCGI request to the next upstream server. 1515 1516 *) Bugfix: in logging to syslog. 1517 1518 1519Changes with nginx 1.7.5 16 Sep 2014 1520 1521 *) Security: it was possible to reuse SSL sessions in unrelated contexts 1522 if a shared SSL session cache or the same TLS session ticket key was 1523 used for multiple "server" blocks (CVE-2014-3616). 1524 Thanks to Antoine Delignat-Lavaud. 1525 1526 *) Change: now the "stub_status" directive does not require a parameter. 1527 1528 *) Feature: the "always" parameter of the "add_header" directive. 1529 1530 *) Feature: the "proxy_next_upstream_tries", 1531 "proxy_next_upstream_timeout", "fastcgi_next_upstream_tries", 1532 "fastcgi_next_upstream_timeout", "memcached_next_upstream_tries", 1533 "memcached_next_upstream_timeout", "scgi_next_upstream_tries", 1534 "scgi_next_upstream_timeout", "uwsgi_next_upstream_tries", and 1535 "uwsgi_next_upstream_timeout" directives. 1536 1537 *) Bugfix: in the "if" parameter of the "access_log" directive. 1538 1539 *) Bugfix: in the ngx_http_perl_module. 1540 Thanks to Piotr Sikora. 1541 1542 *) Bugfix: the "listen" directive of the mail proxy module did not allow 1543 to specify more than two parameters. 1544 1545 *) Bugfix: the "sub_filter" directive did not work with a string to 1546 replace consisting of a single character. 1547 1548 *) Bugfix: requests might hang if resolver was used and a timeout 1549 occurred during a DNS request. 1550 1551 *) Bugfix: in the ngx_http_spdy_module when using with AIO. 1552 1553 *) Bugfix: a segmentation fault might occur in a worker process if the 1554 "set" directive was used to change the "$http_...", "$sent_http_...", 1555 or "$upstream_http_..." variables. 1556 1557 *) Bugfix: in memory allocation error handling. 1558 Thanks to Markus Linnala and Feng Gu. 1559 1560 1561Changes with nginx 1.7.4 05 Aug 2014 1562 1563 *) Security: pipelined commands were not discarded after STARTTLS 1564 command in SMTP proxy (CVE-2014-3556); the bug had appeared in 1.5.6. 1565 Thanks to Chris Boulton. 1566 1567 *) Change: URI escaping now uses uppercase hexadecimal digits. 1568 Thanks to Piotr Sikora. 1569 1570 *) Feature: now nginx can be build with BoringSSL and LibreSSL. 1571 Thanks to Piotr Sikora. 1572 1573 *) Bugfix: requests might hang if resolver was used and a DNS server 1574 returned a malformed response; the bug had appeared in 1.5.8. 1575 1576 *) Bugfix: in the ngx_http_spdy_module. 1577 Thanks to Piotr Sikora. 1578 1579 *) Bugfix: the $uri variable might contain garbage when returning errors 1580 with code 400. 1581 Thanks to Sergey Bobrov. 1582 1583 *) Bugfix: in error handling in the "proxy_store" directive and the 1584 ngx_http_dav_module. 1585 Thanks to Feng Gu. 1586 1587 *) Bugfix: a segmentation fault might occur if logging of errors to 1588 syslog was used; the bug had appeared in 1.7.1. 1589 1590 *) Bugfix: the $geoip_latitude, $geoip_longitude, $geoip_dma_code, and 1591 $geoip_area_code variables might not work. 1592 Thanks to Yichun Zhang. 1593 1594 *) Bugfix: in memory allocation error handling. 1595 Thanks to Tatsuhiko Kubo and Piotr Sikora. 1596 1597 1598Changes with nginx 1.7.3 08 Jul 2014 1599 1600 *) Feature: weak entity tags are now preserved on response 1601 modifications, and strong ones are changed to weak. 1602 1603 *) Feature: cache revalidation now uses If-None-Match header if 1604 possible. 1605 1606 *) Feature: the "ssl_password_file" directive. 1607 1608 *) Bugfix: the If-None-Match request header line was ignored if there 1609 was no Last-Modified header in a response returned from cache. 1610 1611 *) Bugfix: "peer closed connection in SSL handshake" messages were 1612 logged at "info" level instead of "error" while connecting to 1613 backends. 1614 1615 *) Bugfix: in the ngx_http_dav_module module in nginx/Windows. 1616 1617 *) Bugfix: SPDY connections might be closed prematurely if caching was 1618 used. 1619 1620 1621Changes with nginx 1.7.2 17 Jun 2014 1622 1623 *) Feature: the "hash" directive inside the "upstream" block. 1624 1625 *) Feature: defragmentation of free shared memory blocks. 1626 Thanks to Wandenberg Peixoto and Yichun Zhang. 1627 1628 *) Bugfix: a segmentation fault might occur in a worker process if the 1629 default value of the "access_log" directive was used; the bug had 1630 appeared in 1.7.0. 1631 Thanks to Piotr Sikora. 1632 1633 *) Bugfix: trailing slash was mistakenly removed from the last parameter 1634 of the "try_files" directive. 1635 1636 *) Bugfix: nginx could not be built on OS X in some cases. 1637 1638 *) Bugfix: in the ngx_http_spdy_module. 1639 1640 1641Changes with nginx 1.7.1 27 May 2014 1642 1643 *) Feature: the "$upstream_cookie_..." variables. 1644 1645 *) Feature: the $ssl_client_fingerprint variable. 1646 1647 *) Feature: the "error_log" and "access_log" directives now support 1648 logging to syslog. 1649 1650 *) Feature: the mail proxy now logs client port on connect. 1651 1652 *) Bugfix: memory leak if the "ssl_stapling" directive was used. 1653 Thanks to Filipe da Silva. 1654 1655 *) Bugfix: the "alias" directive used inside a location given by a 1656 regular expression worked incorrectly if the "if" or "limit_except" 1657 directives were used. 1658 1659 *) Bugfix: the "charset" directive did not set a charset to encoded 1660 backend responses. 1661 1662 *) Bugfix: a "proxy_pass" directive without URI part might use original 1663 request after the $args variable was set. 1664 Thanks to Yichun Zhang. 1665 1666 *) Bugfix: in the "none" parameter in the "smtp_auth" directive; the bug 1667 had appeared in 1.5.6. 1668 Thanks to Svyatoslav Nikolsky. 1669 1670 *) Bugfix: if sub_filter and SSI were used together, then responses 1671 might be transferred incorrectly. 1672 1673 *) Bugfix: nginx could not be built with the --with-file-aio option on 1674 Linux/aarch64. 1675 1676 1677Changes with nginx 1.7.0 24 Apr 2014 1678 1679 *) Feature: backend SSL certificate verification. 1680 1681 *) Feature: support for SNI while working with SSL backends. 1682 1683 *) Feature: the $ssl_server_name variable. 1684 1685 *) Feature: the "if" parameter of the "access_log" directive. 1686 1687 1688Changes with nginx 1.5.13 08 Apr 2014 1689 1690 *) Change: improved hash table handling; the default values of the 1691 "variables_hash_max_size" and "types_hash_bucket_size" were changed 1692 to 1024 and 64 respectively. 1693 1694 *) Feature: the ngx_http_mp4_module now supports the "end" argument. 1695 1696 *) Feature: byte ranges support in the ngx_http_mp4_module and while 1697 saving responses to cache. 1698 1699 *) Bugfix: alerts "ngx_slab_alloc() failed: no memory" no longer logged 1700 when using shared memory in the "ssl_session_cache" directive and in 1701 the ngx_http_limit_req_module. 1702 1703 *) Bugfix: the "underscores_in_headers" directive did not allow 1704 underscore as a first character of a header. 1705 Thanks to Piotr Sikora. 1706 1707 *) Bugfix: cache manager might hog CPU on exit in nginx/Windows. 1708 1709 *) Bugfix: nginx/Windows terminated abnormally if the 1710 "ssl_session_cache" directive was used with the "shared" parameter. 1711 1712 *) Bugfix: in the ngx_http_spdy_module. 1713 1714 1715Changes with nginx 1.5.12 18 Mar 2014 1716 1717 *) Security: a heap memory buffer overflow might occur in a worker 1718 process while handling a specially crafted request by 1719 ngx_http_spdy_module, potentially resulting in arbitrary code 1720 execution (CVE-2014-0133). 1721 Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. 1722 Manuel Sadosky, Buenos Aires, Argentina. 1723 1724 *) Feature: the "proxy_protocol" parameters of the "listen" and 1725 "real_ip_header" directives, the $proxy_protocol_addr variable. 1726 1727 *) Bugfix: in the "fastcgi_next_upstream" directive. 1728 Thanks to Lucas Molas. 1729 1730 1731Changes with nginx 1.5.11 04 Mar 2014 1732 1733 *) Security: memory corruption might occur in a worker process on 32-bit 1734 platforms while handling a specially crafted request by 1735 ngx_http_spdy_module, potentially resulting in arbitrary code 1736 execution (CVE-2014-0088); the bug had appeared in 1.5.10. 1737 Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. 1738 Manuel Sadosky, Buenos Aires, Argentina. 1739 1740 *) Feature: the $ssl_session_reused variable. 1741 1742 *) Bugfix: the "client_max_body_size" directive might not work when 1743 reading a request body using chunked transfer encoding; the bug had 1744 appeared in 1.3.9. 1745 Thanks to Lucas Molas. 1746 1747 *) Bugfix: a segmentation fault might occur in a worker process when 1748 proxying WebSocket connections. 1749 1750 *) Bugfix: a segmentation fault might occur in a worker process if the 1751 ngx_http_spdy_module was used on 32-bit platforms; the bug had 1752 appeared in 1.5.10. 1753 1754 *) Bugfix: the $upstream_status variable might contain wrong data if the 1755 "proxy_cache_use_stale" or "proxy_cache_revalidate" directives were 1756 used. 1757 Thanks to Piotr Sikora. 1758 1759 *) Bugfix: a segmentation fault might occur in a worker process if 1760 errors with code 400 were redirected to a named location using the 1761 "error_page" directive. 1762 1763 *) Bugfix: nginx/Windows could not be built with Visual Studio 2013. 1764 1765 1766Changes with nginx 1.5.10 04 Feb 2014 1767 1768 *) Feature: the ngx_http_spdy_module now uses SPDY 3.1 protocol. 1769 Thanks to Automattic and MaxCDN for sponsoring this work. 1770 1771 *) Feature: the ngx_http_mp4_module now skips tracks too short for a 1772 seek requested. 1773 1774 *) Bugfix: a segmentation fault might occur in a worker process if the 1775 $ssl_session_id variable was used in logs; the bug had appeared in 1776 1.5.9. 1777 1778 *) Bugfix: the $date_local and $date_gmt variables used wrong format 1779 outside of the ngx_http_ssi_filter_module. 1780 1781 *) Bugfix: client connections might be immediately closed if deferred 1782 accept was used; the bug had appeared in 1.3.15. 1783 1784 *) Bugfix: alerts "getsockopt(TCP_FASTOPEN) ... failed" appeared in logs 1785 during binary upgrade on Linux; the bug had appeared in 1.5.8. 1786 Thanks to Piotr Sikora. 1787 1788 1789Changes with nginx 1.5.9 22 Jan 2014 1790 1791 *) Change: now nginx expects escaped URIs in "X-Accel-Redirect" headers. 1792 1793 *) Feature: the "ssl_buffer_size" directive. 1794 1795 *) Feature: the "limit_rate" directive can now be used to rate limit 1796 responses sent in SPDY connections. 1797 1798 *) Feature: the "spdy_chunk_size" directive. 1799 1800 *) Feature: the "ssl_session_tickets" directive. 1801 Thanks to Dirkjan Bussink. 1802 1803 *) Bugfix: the $ssl_session_id variable contained full session 1804 serialized instead of just a session id. 1805 Thanks to Ivan Ristić. 1806 1807 *) Bugfix: nginx incorrectly handled escaped "?" character in the 1808 "include" SSI command. 1809 1810 *) Bugfix: the ngx_http_dav_module did not unescape destination URI of 1811 the COPY and MOVE methods. 1812 1813 *) Bugfix: resolver did not understand domain names with a trailing dot. 1814 Thanks to Yichun Zhang. 1815 1816 *) Bugfix: alerts "zero size buf in output" might appear in logs while 1817 proxying; the bug had appeared in 1.3.9. 1818 1819 *) Bugfix: a segmentation fault might occur in a worker process if the 1820 ngx_http_spdy_module was used. 1821 1822 *) Bugfix: proxied WebSocket connections might hang right after 1823 handshake if the select, poll, or /dev/poll methods were used. 1824 1825 *) Bugfix: the "xclient" directive of the mail proxy module incorrectly 1826 handled IPv6 client addresses. 1827 1828 1829Changes with nginx 1.5.8 17 Dec 2013 1830 1831 *) Feature: IPv6 support in resolver. 1832 1833 *) Feature: the "listen" directive supports the "fastopen" parameter. 1834 Thanks to Mathew Rodley. 1835 1836 *) Feature: SSL support in the ngx_http_uwsgi_module. 1837 Thanks to Roberto De Ioris. 1838 1839 *) Feature: vim syntax highlighting scripts were added to contrib. 1840 Thanks to Evan Miller. 1841 1842 *) Bugfix: a timeout might occur while reading client request body in an 1843 SSL connection using chunked transfer encoding. 1844 1845 *) Bugfix: the "master_process" directive did not work correctly in 1846 nginx/Windows. 1847 1848 *) Bugfix: the "setfib" parameter of the "listen" directive might not 1849 work. 1850 1851 *) Bugfix: in the ngx_http_spdy_module. 1852 1853 1854Changes with nginx 1.5.7 19 Nov 2013 1855 1856 *) Security: a character following an unescaped space in a request line 1857 was handled incorrectly (CVE-2013-4547); the bug had appeared in 1858 0.8.41. 1859 Thanks to Ivan Fratric of the Google Security Team. 1860 1861 *) Change: a logging level of auth_basic errors about no user/password 1862 provided has been lowered from "error" to "info". 1863 1864 *) Feature: the "proxy_cache_revalidate", "fastcgi_cache_revalidate", 1865 "scgi_cache_revalidate", and "uwsgi_cache_revalidate" directives. 1866 1867 *) Feature: the "ssl_session_ticket_key" directive. 1868 Thanks to Piotr Sikora. 1869 1870 *) Bugfix: the directive "add_header Cache-Control ''" added a 1871 "Cache-Control" response header line with an empty value. 1872 1873 *) Bugfix: the "satisfy any" directive might return 403 error instead of 1874 401 if auth_request and auth_basic directives were used. 1875 Thanks to Jan Marc Hoffmann. 1876 1877 *) Bugfix: the "accept_filter" and "deferred" parameters of the "listen" 1878 directive were ignored for listen sockets created during binary 1879 upgrade. 1880 Thanks to Piotr Sikora. 1881 1882 *) Bugfix: some data received from a backend with unbufferred proxy 1883 might not be sent to a client immediately if "gzip" or "gunzip" 1884 directives were used. 1885 Thanks to Yichun Zhang. 1886 1887 *) Bugfix: in error handling in ngx_http_gunzip_filter_module. 1888 1889 *) Bugfix: responses might hang if the ngx_http_spdy_module was used 1890 with the "auth_request" directive. 1891 1892 *) Bugfix: memory leak in nginx/Windows. 1893 1894 1895Changes with nginx 1.5.6 01 Oct 2013 1896 1897 *) Feature: the "fastcgi_buffering" directive. 1898 1899 *) Feature: the "proxy_ssl_protocols" and "proxy_ssl_ciphers" 1900 directives. 1901 Thanks to Piotr Sikora. 1902 1903 *) Feature: optimization of SSL handshakes when using long certificate 1904 chains. 1905 1906 *) Feature: the mail proxy supports SMTP pipelining. 1907 1908 *) Bugfix: in the ngx_http_auth_basic_module when using "$apr1$" 1909 password encryption method. 1910 Thanks to Markus Linnala. 1911 1912 *) Bugfix: in MacOSX, Cygwin, and nginx/Windows incorrect location might 1913 be used to process a request if locations were given using characters 1914 in different cases. 1915 1916 *) Bugfix: automatic redirect with appended trailing slash for proxied 1917 locations might not work. 1918 1919 *) Bugfix: in the mail proxy server. 1920 1921 *) Bugfix: in the ngx_http_spdy_module. 1922 1923 1924Changes with nginx 1.5.5 17 Sep 2013 1925 1926 *) Change: now nginx assumes HTTP/1.0 by default if it is not able to 1927 detect protocol reliably. 1928 1929 *) Feature: the "disable_symlinks" directive now uses O_PATH on Linux. 1930 1931 *) Feature: now nginx uses EPOLLRDHUP events to detect premature 1932 connection close by clients if the "epoll" method is used. 1933 1934 *) Bugfix: in the "valid_referers" directive if the "server_names" 1935 parameter was used. 1936 1937 *) Bugfix: the $request_time variable did not work in nginx/Windows. 1938 1939 *) Bugfix: in the "image_filter" directive. 1940 Thanks to Lanshun Zhou. 1941 1942 *) Bugfix: OpenSSL 1.0.1f compatibility. 1943 Thanks to Piotr Sikora. 1944 1945 1946Changes with nginx 1.5.4 27 Aug 2013 1947 1948 *) Change: the "js" extension MIME type has been changed to 1949 "application/javascript"; default value of the "charset_types" 1950 directive was changed accordingly. 1951 1952 *) Change: now the "image_filter" directive with the "size" parameter 1953 returns responses with the "application/json" MIME type. 1954 1955 *) Feature: the ngx_http_auth_request_module. 1956 1957 *) Bugfix: a segmentation fault might occur on start or during 1958 reconfiguration if the "try_files" directive was used with an empty 1959 parameter. 1960 1961 *) Bugfix: memory leak if relative paths were specified using variables 1962 in the "root" or "auth_basic_user_file" directives. 1963 1964 *) Bugfix: the "valid_referers" directive incorrectly executed regular 1965 expressions if a "Referer" header started with "https://". 1966 Thanks to Liangbin Li. 1967 1968 *) Bugfix: responses might hang if subrequests were used and an SSL 1969 handshake error happened during subrequest processing. 1970 Thanks to Aviram Cohen. 1971 1972 *) Bugfix: in the ngx_http_autoindex_module. 1973 1974 *) Bugfix: in the ngx_http_spdy_module. 1975 1976 1977Changes with nginx 1.5.3 30 Jul 2013 1978 1979 *) Change in internal API: now u->length defaults to -1 if working with 1980 backends in unbuffered mode. 1981 1982 *) Change: now after receiving an incomplete response from a backend 1983 server nginx tries to send an available part of the response to a 1984 client, and then closes client connection. 1985 1986 *) Bugfix: a segmentation fault might occur in a worker process if the 1987 ngx_http_spdy_module was used with the "client_body_in_file_only" 1988 directive. 1989 1990 *) Bugfix: the "so_keepalive" parameter of the "listen" directive might 1991 be handled incorrectly on DragonFlyBSD. 1992 Thanks to Sepherosa Ziehau. 1993 1994 *) Bugfix: in the ngx_http_xslt_filter_module. 1995 1996 *) Bugfix: in the ngx_http_sub_filter_module. 1997 1998 1999Changes with nginx 1.5.2 02 Jul 2013 2000 2001 *) Feature: now several "error_log" directives can be used. 2002 2003 *) Bugfix: the $r->header_in() embedded perl method did not return value 2004 of the "Cookie" and "X-Forwarded-For" request header lines; the bug 2005 had appeared in 1.3.14. 2006 2007 *) Bugfix: in the ngx_http_spdy_module. 2008 Thanks to Jim Radford. 2009 2010 *) Bugfix: nginx could not be built on Linux with x32 ABI. 2011 Thanks to Serguei Ivantsov. 2012 2013 2014Changes with nginx 1.5.1 04 Jun 2013 2015 2016 *) Feature: the "ssi_last_modified", "sub_filter_last_modified", and 2017 "xslt_last_modified" directives. 2018 Thanks to Alexey Kolpakov. 2019 2020 *) Feature: the "http_403" parameter of the "proxy_next_upstream", 2021 "fastcgi_next_upstream", "scgi_next_upstream", and 2022 "uwsgi_next_upstream" directives. 2023 2024 *) Feature: the "allow" and "deny" directives now support unix domain 2025 sockets. 2026 2027 *) Bugfix: nginx could not be built with the ngx_mail_ssl_module, but 2028 without ngx_http_ssl_module; the bug had appeared in 1.3.14. 2029 2030 *) Bugfix: in the "proxy_set_body" directive. 2031 Thanks to Lanshun Zhou. 2032 2033 *) Bugfix: in the "lingering_time" directive. 2034 Thanks to Lanshun Zhou. 2035 2036 *) Bugfix: the "fail_timeout" parameter of the "server" directive in the 2037 "upstream" context might not work if "max_fails" parameter was used; 2038 the bug had appeared in 1.3.0. 2039 2040 *) Bugfix: a segmentation fault might occur in a worker process if the 2041 "ssl_stapling" directive was used. 2042 Thanks to Piotr Sikora. 2043 2044 *) Bugfix: in the mail proxy server. 2045 Thanks to Filipe Da Silva. 2046 2047 *) Bugfix: nginx/Windows might stop accepting connections if several 2048 worker processes were used. 2049 2050 2051Changes with nginx 1.5.0 07 May 2013 2052 2053 *) Security: a stack-based buffer overflow might occur in a worker 2054 process while handling a specially crafted request, potentially 2055 resulting in arbitrary code execution (CVE-2013-2028); the bug had 2056 appeared in 1.3.9. 2057 Thanks to Greg MacManus, iSIGHT Partners Labs. 2058 2059 2060Changes with nginx 1.4.0 24 Apr 2013 2061 2062 *) Bugfix: nginx could not be built with the ngx_http_perl_module if the 2063 --with-openssl option was used; the bug had appeared in 1.3.16. 2064 2065 *) Bugfix: in a request body handling in the ngx_http_perl_module; the 2066 bug had appeared in 1.3.9. 2067 2068 2069Changes with nginx 1.3.16 16 Apr 2013 2070 2071 *) Bugfix: a segmentation fault might occur in a worker process if 2072 subrequests were used; the bug had appeared in 1.3.9. 2073 2074 *) Bugfix: the "tcp_nodelay" directive caused an error if a WebSocket 2075 connection was proxied into a unix domain socket. 2076 2077 *) Bugfix: the $upstream_response_length variable has an incorrect value 2078 "0" if buffering was not used. 2079 Thanks to Piotr Sikora. 2080 2081 *) Bugfix: in the eventport and /dev/poll methods. 2082 2083 2084Changes with nginx 1.3.15 26 Mar 2013 2085 2086 *) Change: opening and closing a connection without sending any data in 2087 it is no longer logged to access_log with error code 400. 2088 2089 *) Feature: the ngx_http_spdy_module. 2090 Thanks to Automattic for sponsoring this work. 2091 2092 *) Feature: the "limit_req_status" and "limit_conn_status" directives. 2093 Thanks to Nick Marden. 2094 2095 *) Feature: the "image_filter_interlace" directive. 2096 Thanks to Ian Babrou. 2097 2098 *) Feature: $connections_waiting variable in the 2099 ngx_http_stub_status_module. 2100 2101 *) Feature: the mail proxy module now supports IPv6 backends. 2102 2103 *) Bugfix: request body might be transmitted incorrectly when retrying a 2104 request to the next upstream server; the bug had appeared in 1.3.9. 2105 Thanks to Piotr Sikora. 2106 2107 *) Bugfix: in the "client_body_in_file_only" directive; the bug had 2108 appeared in 1.3.9. 2109 2110 *) Bugfix: responses might hang if subrequests were used and a DNS error 2111 happened during subrequest processing. 2112 Thanks to Lanshun Zhou. 2113 2114 *) Bugfix: in backend usage accounting. 2115 2116 2117Changes with nginx 1.3.14 05 Mar 2013 2118 2119 *) Feature: $connections_active, $connections_reading, and 2120 $connections_writing variables in the ngx_http_stub_status_module. 2121 2122 *) Feature: support of WebSocket connections in the 2123 ngx_http_uwsgi_module and ngx_http_scgi_module. 2124 2125 *) Bugfix: in virtual servers handling with SNI. 2126 2127 *) Bugfix: new sessions were not always stored if the "ssl_session_cache 2128 shared" directive was used and there was no free space in shared 2129 memory. 2130 Thanks to Piotr Sikora. 2131 2132 *) Bugfix: multiple X-Forwarded-For headers were handled incorrectly. 2133 Thanks to Neal Poole for sponsoring this work. 2134 2135 *) Bugfix: in the ngx_http_mp4_module. 2136 Thanks to Gernot Vormayr. 2137 2138 2139Changes with nginx 1.3.13 19 Feb 2013 2140 2141 *) Change: a compiler with name "cc" is now used by default. 2142 2143 *) Feature: support for proxying of WebSocket connections. 2144 Thanks to Apcera and CloudBees for sponsoring this work. 2145 2146 *) Feature: the "auth_basic_user_file" directive supports "{SHA}" 2147 password encryption method. 2148 Thanks to Louis Opter. 2149 2150 2151Changes with nginx 1.3.12 05 Feb 2013 2152 2153 *) Feature: variables support in the "proxy_bind", "fastcgi_bind", 2154 "memcached_bind", "scgi_bind", and "uwsgi_bind" directives. 2155 2156 *) Feature: the $pipe, $request_length, $time_iso8601, and $time_local 2157 variables can now be used not only in the "log_format" directive. 2158 Thanks to Kiril Kalchev. 2159 2160 *) Feature: IPv6 support in the ngx_http_geoip_module. 2161 Thanks to Gregor Kališnik. 2162 2163 *) Bugfix: in the "proxy_method" directive. 2164 2165 *) Bugfix: a segmentation fault might occur in a worker process if 2166 resolver was used with the poll method. 2167 2168 *) Bugfix: nginx might hog CPU during SSL handshake with a backend if 2169 the select, poll, or /dev/poll methods were used. 2170 2171 *) Bugfix: the "[crit] SSL_write() failed (SSL:)" error. 2172 2173 *) Bugfix: in the "client_body_in_file_only" directive; the bug had 2174 appeared in 1.3.9. 2175 2176 *) Bugfix: in the "fastcgi_keep_conn" directive. 2177 2178 2179Changes with nginx 1.3.11 10 Jan 2013 2180 2181 *) Bugfix: a segmentation fault might occur if logging was used; the bug 2182 had appeared in 1.3.10. 2183 2184 *) Bugfix: the "proxy_pass" directive did not work with IP addresses 2185 without port specified; the bug had appeared in 1.3.10. 2186 2187 *) Bugfix: a segmentation fault occurred on start or during 2188 reconfiguration if the "keepalive" directive was specified more than 2189 once in a single upstream block. 2190 2191 *) Bugfix: parameter "default" of the "geo" directive did not set 2192 default value for IPv6 addresses. 2193 2194 2195Changes with nginx 1.3.10 25 Dec 2012 2196 2197 *) Change: domain names specified in configuration file are now resolved 2198 to IPv6 addresses as well as IPv4 ones. 2199 2200 *) Change: now if the "include" directive with mask is used on Unix 2201 systems, included files are sorted in alphabetical order. 2202 2203 *) Change: the "add_header" directive adds headers to 201 responses. 2204 2205 *) Feature: the "geo" directive now supports IPv6 addresses in CIDR 2206 notation. 2207 2208 *) Feature: the "flush" and "gzip" parameters of the "access_log" 2209 directive. 2210 2211 *) Feature: variables support in the "auth_basic" directive. 2212 2213 *) Bugfix: nginx could not be built with the ngx_http_perl_module in 2214 some cases. 2215 2216 *) Bugfix: a segmentation fault might occur in a worker process if the 2217 ngx_http_xslt_module was used. 2218 2219 *) Bugfix: nginx could not be built on MacOSX in some cases. 2220 Thanks to Piotr Sikora. 2221 2222 *) Bugfix: the "limit_rate" directive with high rates might result in 2223 truncated responses on 32-bit platforms. 2224 Thanks to Alexey Antropov. 2225 2226 *) Bugfix: a segmentation fault might occur in a worker process if the 2227 "if" directive was used. 2228 Thanks to Piotr Sikora. 2229 2230 *) Bugfix: a "100 Continue" response was issued with "413 Request Entity 2231 Too Large" responses. 2232 2233 *) Bugfix: the "image_filter", "image_filter_jpeg_quality" and 2234 "image_filter_sharpen" directives might be inherited incorrectly. 2235 Thanks to Ian Babrou. 2236 2237 *) Bugfix: "crypt_r() failed" errors might appear if the "auth_basic" 2238 directive was used on Linux. 2239 2240 *) Bugfix: in backup servers handling. 2241 Thanks to Thomas Chen. 2242 2243 *) Bugfix: proxied HEAD requests might return incorrect response if the 2244 "gzip" directive was used. 2245 2246 2247Changes with nginx 1.3.9 27 Nov 2012 2248 2249 *) Feature: support for chunked transfer encoding while reading client 2250 request body. 2251 2252 *) Feature: the $request_time and $msec variables can now be used not 2253 only in the "log_format" directive. 2254 2255 *) Bugfix: cache manager and cache loader processes might not be able to 2256 start if more than 512 listen sockets were used. 2257 2258 *) Bugfix: in the ngx_http_dav_module. 2259 2260 2261Changes with nginx 1.3.8 30 Oct 2012 2262 2263 *) Feature: the "optional_no_ca" parameter of the "ssl_verify_client" 2264 directive. 2265 Thanks to Mike Kazantsev and Eric O'Connor. 2266 2267 *) Feature: the $bytes_sent, $connection, and $connection_requests 2268 variables can now be used not only in the "log_format" directive. 2269 Thanks to Benjamin Grössing. 2270 2271 *) Feature: the "auto" parameter of the "worker_processes" directive. 2272 2273 *) Bugfix: "cache file ... has md5 collision" alert. 2274 2275 *) Bugfix: in the ngx_http_gunzip_filter_module. 2276 2277 *) Bugfix: in the "ssl_stapling" directive. 2278 2279 2280Changes with nginx 1.3.7 02 Oct 2012 2281 2282 *) Feature: OCSP stapling support. 2283 Thanks to Comodo, DigiCert and GlobalSign for sponsoring this work. 2284 2285 *) Feature: the "ssl_trusted_certificate" directive. 2286 2287 *) Feature: resolver now randomly rotates addresses returned from cache. 2288 Thanks to Anton Jouline. 2289 2290 *) Bugfix: OpenSSL 0.9.7 compatibility. 2291 2292 2293Changes with nginx 1.3.6 12 Sep 2012 2294 2295 *) Feature: the ngx_http_gunzip_filter_module. 2296 2297 *) Feature: the "memcached_gzip_flag" directive. 2298 2299 *) Feature: the "always" parameter of the "gzip_static" directive. 2300 2301 *) Bugfix: in the "limit_req" directive; the bug had appeared in 1.1.14. 2302 Thanks to Charles Chen. 2303 2304 *) Bugfix: nginx could not be built by gcc 4.7 with -O2 optimization if 2305 the --with-ipv6 option was used. 2306 2307 2308Changes with nginx 1.3.5 21 Aug 2012 2309 2310 *) Change: the ngx_http_mp4_module module no longer skips tracks in 2311 formats other than H.264 and AAC. 2312 2313 *) Bugfix: a segmentation fault might occur in a worker process if the 2314 "map" directive was used with variables as values. 2315 2316 *) Bugfix: a segmentation fault might occur in a worker process if the 2317 "geo" directive was used with the "ranges" parameter but without the 2318 "default" parameter; the bug had appeared in 0.8.43. 2319 Thanks to Zhen Chen and Weibin Yao. 2320 2321 *) Bugfix: in the -p command-line parameter handling. 2322 2323 *) Bugfix: in the mail proxy server. 2324 2325 *) Bugfix: of minor potential bugs. 2326 Thanks to Coverity. 2327 2328 *) Bugfix: nginx/Windows could not be built with Visual Studio 2005 2329 Express. 2330 Thanks to HAYASHI Kentaro. 2331 2332 2333Changes with nginx 1.3.4 31 Jul 2012 2334 2335 *) Change: the "ipv6only" parameter is now turned on by default for 2336 listening IPv6 sockets. 2337 2338 *) Feature: the Clang compiler support. 2339 2340 *) Bugfix: extra listening sockets might be created. 2341 Thanks to Roman Odaisky. 2342 2343 *) Bugfix: nginx/Windows might hog CPU if a worker process failed to 2344 start. 2345 Thanks to Ricardo Villalobos Guevara. 2346 2347 *) Bugfix: the "proxy_pass_header", "fastcgi_pass_header", 2348 "scgi_pass_header", "uwsgi_pass_header", "proxy_hide_header", 2349 "fastcgi_hide_header", "scgi_hide_header", and "uwsgi_hide_header" 2350 directives might be inherited incorrectly. 2351 2352 2353Changes with nginx 1.3.3 10 Jul 2012 2354 2355 *) Feature: entity tags support and the "etag" directive. 2356 2357 *) Bugfix: trailing dot in a source value was not ignored if the "map" 2358 directive was used with the "hostnames" parameter. 2359 2360 *) Bugfix: incorrect location might be used to process a request if a 2361 URI was changed via a "rewrite" directive before an internal redirect 2362 to a named location. 2363 2364 2365Changes with nginx 1.3.2 26 Jun 2012 2366 2367 *) Change: the "single" parameter of the "keepalive" directive is now 2368 ignored. 2369 2370 *) Change: SSL compression is now disabled when using all versions of 2371 OpenSSL, including ones prior to 1.0.0. 2372 2373 *) Feature: it is now possible to use the "ip_hash" directive to balance 2374 IPv6 clients. 2375 2376 *) Feature: the $status variable can now be used not only in the 2377 "log_format" directive. 2378 2379 *) Bugfix: a segmentation fault might occur in a worker process on 2380 shutdown if the "resolver" directive was used. 2381 2382 *) Bugfix: a segmentation fault might occur in a worker process if the 2383 ngx_http_mp4_module was used. 2384 2385 *) Bugfix: in the ngx_http_mp4_module. 2386 2387 *) Bugfix: a segmentation fault might occur in a worker process if 2388 conflicting wildcard server names were used. 2389 2390 *) Bugfix: nginx might be terminated abnormally on a SIGBUS signal on 2391 ARM platform. 2392 2393 *) Bugfix: an alert "sendmsg() failed (9: Bad file number)" on HP-UX 2394 while reconfiguration. 2395 2396 2397Changes with nginx 1.3.1 05 Jun 2012 2398 2399 *) Security: now nginx/Windows ignores trailing dot in URI path 2400 component, and does not allow URIs with ":$" in it. 2401 Thanks to Vladimir Kochetkov, Positive Research Center. 2402 2403 *) Feature: the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass" 2404 directives, and the "server" directive inside the "upstream" block, 2405 now support IPv6 addresses. 2406 2407 *) Feature: the "resolver" directive now supports IPv6 addresses and an 2408 optional port specification. 2409 2410 *) Feature: the "least_conn" directive inside the "upstream" block. 2411 2412 *) Feature: it is now possible to specify a weight for servers while 2413 using the "ip_hash" directive. 2414 2415 *) Bugfix: a segmentation fault might occur in a worker process if the 2416 "image_filter" directive was used; the bug had appeared in 1.3.0. 2417 2418 *) Bugfix: nginx could not be built with ngx_cpp_test_module; the bug 2419 had appeared in 1.1.12. 2420 2421 *) Bugfix: access to variables from SSI and embedded perl module might 2422 not work after reconfiguration. 2423 Thanks to Yichun Zhang. 2424 2425 *) Bugfix: in the ngx_http_xslt_filter_module. 2426 Thanks to Kuramoto Eiji. 2427 2428 *) Bugfix: memory leak if $geoip_org variable was used. 2429 Thanks to Denis F. Latypoff. 2430 2431 *) Bugfix: in the "proxy_cookie_domain" and "proxy_cookie_path" 2432 directives. 2433 2434 2435Changes with nginx 1.3.0 15 May 2012 2436 2437 *) Feature: the "debug_connection" directive now supports IPv6 addresses 2438 and the "unix:" parameter. 2439 2440 *) Feature: the "set_real_ip_from" directive and the "proxy" parameter 2441 of the "geo" directive now support IPv6 addresses. 2442 2443 *) Feature: the "real_ip_recursive", "geoip_proxy", and 2444 "geoip_proxy_recursive" directives. 2445 2446 *) Feature: the "proxy_recursive" parameter of the "geo" directive. 2447 2448 *) Bugfix: a segmentation fault might occur in a worker process if the 2449 "resolver" directive was used. 2450 2451 *) Bugfix: a segmentation fault might occur in a worker process if the 2452 "fastcgi_pass", "scgi_pass", or "uwsgi_pass" directives were used and 2453 backend returned incorrect response. 2454 2455 *) Bugfix: a segmentation fault might occur in a worker process if the 2456 "rewrite" directive was used and new request arguments in a 2457 replacement used variables. 2458 2459 *) Bugfix: nginx might hog CPU if the open file resource limit was 2460 reached. 2461 2462 *) Bugfix: nginx might loop infinitely over backends if the 2463 "proxy_next_upstream" directive with the "http_404" parameter was 2464 used and there were backup servers specified in an upstream block. 2465 2466 *) Bugfix: adding the "down" parameter of the "server" directive might 2467 cause unneeded client redistribution among backend servers if the 2468 "ip_hash" directive was used. 2469 2470 *) Bugfix: socket leak. 2471 Thanks to Yichun Zhang. 2472 2473 *) Bugfix: in the ngx_http_fastcgi_module. 2474 2475 2476Changes with nginx 1.2.0 23 Apr 2012 2477 2478 *) Bugfix: a segmentation fault might occur in a worker process if the 2479 "try_files" directive was used; the bug had appeared in 1.1.19. 2480 2481 *) Bugfix: response might be truncated if there were more than IOV_MAX 2482 buffers used. 2483 2484 *) Bugfix: in the "crop" parameter of the "image_filter" directive. 2485 Thanks to Maxim Bublis. 2486 2487 2488Changes with nginx 1.1.19 12 Apr 2012 2489 2490 *) Security: specially crafted mp4 file might allow to overwrite memory 2491 locations in a worker process if the ngx_http_mp4_module was used, 2492 potentially resulting in arbitrary code execution (CVE-2012-2089). 2493 Thanks to Matthew Daley. 2494 2495 *) Bugfix: nginx/Windows might be terminated abnormally. 2496 Thanks to Vincent Lee. 2497 2498 *) Bugfix: nginx hogged CPU if all servers in an upstream were marked as 2499 "backup". 2500 2501 *) Bugfix: the "allow" and "deny" directives might be inherited 2502 incorrectly if they were used with IPv6 addresses. 2503 2504 *) Bugfix: the "modern_browser" and "ancient_browser" directives might 2505 be inherited incorrectly. 2506 2507 *) Bugfix: timeouts might be handled incorrectly on Solaris/SPARC. 2508 2509 *) Bugfix: in the ngx_http_mp4_module. 2510 2511 2512Changes with nginx 1.1.18 28 Mar 2012 2513 2514 *) Change: keepalive connections are no longer disabled for Safari by 2515 default. 2516 2517 *) Feature: the $connection_requests variable. 2518 2519 *) Feature: $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and 2520 $tcpinfo_rcv_space variables. 2521 2522 *) Feature: the "worker_cpu_affinity" directive now works on FreeBSD. 2523 2524 *) Feature: the "xslt_param" and "xslt_string_param" directives. 2525 Thanks to Samuel Behan. 2526 2527 *) Bugfix: in configure tests. 2528 Thanks to Piotr Sikora. 2529 2530 *) Bugfix: in the ngx_http_xslt_filter_module. 2531 2532 *) Bugfix: nginx could not be built on Debian GNU/Hurd. 2533 2534 2535Changes with nginx 1.1.17 15 Mar 2012 2536 2537 *) Security: content of previously freed memory might be sent to a 2538 client if backend returned specially crafted response. 2539 Thanks to Matthew Daley. 2540 2541 *) Bugfix: in the embedded perl module if used from SSI. 2542 Thanks to Matthew Daley. 2543 2544 *) Bugfix: in the ngx_http_uwsgi_module. 2545 2546 2547Changes with nginx 1.1.16 29 Feb 2012 2548 2549 *) Change: the simultaneous subrequest limit has been raised to 200. 2550 2551 *) Feature: the "from" parameter of the "disable_symlinks" directive. 2552 2553 *) Feature: the "return" and "error_page" directives can now be used to 2554 return 307 redirections. 2555 2556 *) Bugfix: a segmentation fault might occur in a worker process if the 2557 "resolver" directive was used and there was no "error_log" directive 2558 specified at global level. 2559 Thanks to Roman Arutyunyan. 2560 2561 *) Bugfix: a segmentation fault might occur in a worker process if the 2562 "proxy_http_version 1.1" or "fastcgi_keep_conn on" directives were 2563 used. 2564 2565 *) Bugfix: memory leaks. 2566 Thanks to Lanshun Zhou. 2567 2568 *) Bugfix: in the "disable_symlinks" directive. 2569 2570 *) Bugfix: on ZFS filesystem disk cache size might be calculated 2571 incorrectly; the bug had appeared in 1.0.1. 2572 2573 *) Bugfix: nginx could not be built by the icc 12.1 compiler. 2574 2575 *) Bugfix: nginx could not be built by gcc on Solaris; the bug had 2576 appeared in 1.1.15. 2577 2578 2579Changes with nginx 1.1.15 15 Feb 2012 2580 2581 *) Feature: the "disable_symlinks" directive. 2582 2583 *) Feature: the "proxy_cookie_domain" and "proxy_cookie_path" 2584 directives. 2585 2586 *) Bugfix: nginx might log incorrect error "upstream prematurely closed 2587 connection" instead of correct "upstream sent too big header" one. 2588 Thanks to Feibo Li. 2589 2590 *) Bugfix: nginx could not be built with the ngx_http_perl_module if the 2591 --with-openssl option was used. 2592 2593 *) Bugfix: the number of internal redirects to named locations was not 2594 limited. 2595 2596 *) Bugfix: calling $r->flush() multiple times might cause errors in the 2597 ngx_http_gzip_filter_module. 2598 2599 *) Bugfix: temporary files might be not removed if the "proxy_store" 2600 directive was used with SSI includes. 2601 2602 *) Bugfix: in some cases non-cacheable variables (such as the $args 2603 variable) returned old empty cached value. 2604 2605 *) Bugfix: a segmentation fault might occur in a worker process if too 2606 many SSI subrequests were issued simultaneously; the bug had appeared 2607 in 0.7.25. 2608 2609 2610Changes with nginx 1.1.14 30 Jan 2012 2611 2612 *) Feature: multiple "limit_req" limits may be used simultaneously. 2613 2614 *) Bugfix: in error handling while connecting to a backend. 2615 Thanks to Piotr Sikora. 2616 2617 *) Bugfix: in AIO error handling on FreeBSD. 2618 2619 *) Bugfix: in the OpenSSL library initialization. 2620 2621 *) Bugfix: the "proxy_redirect" directives might be inherited 2622 incorrectly. 2623 2624 *) Bugfix: memory leak during reconfiguration if the "pcre_jit" 2625 directive was used. 2626 2627 2628Changes with nginx 1.1.13 16 Jan 2012 2629 2630 *) Feature: the "TLSv1.1" and "TLSv1.2" parameters of the 2631 "ssl_protocols" directive. 2632 2633 *) Bugfix: the "limit_req" directive parameters were not inherited 2634 correctly; the bug had appeared in 1.1.12. 2635 2636 *) Bugfix: the "proxy_redirect" directive incorrectly processed 2637 "Refresh" header if regular expression were used. 2638 2639 *) Bugfix: the "proxy_cache_use_stale" directive with "error" parameter 2640 did not return answer from cache if there were no live upstreams. 2641 2642 *) Bugfix: the "worker_cpu_affinity" directive might not work. 2643 2644 *) Bugfix: nginx could not be built on Solaris; the bug had appeared in 2645 1.1.12. 2646 2647 *) Bugfix: in the ngx_http_mp4_module. 2648 2649 2650Changes with nginx 1.1.12 26 Dec 2011 2651 2652 *) Change: a "proxy_pass" directive without URI part now uses changed 2653 URI after redirection with the "error_page" directive. 2654 Thanks to Lanshun Zhou. 2655 2656 *) Feature: the "proxy/fastcgi/scgi/uwsgi_cache_lock", 2657 "proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives. 2658 2659 *) Feature: the "pcre_jit" directive. 2660 2661 *) Feature: the "if" SSI command supports captures in regular 2662 expressions. 2663 2664 *) Bugfix: the "if" SSI command did not work inside the "block" command. 2665 2666 *) Bugfix: the "limit_conn_log_level" and "limit_req_log_level" 2667 directives might not work. 2668 2669 *) Bugfix: the "limit_rate" directive did not allow to use full 2670 throughput, even if limit value was very high. 2671 2672 *) Bugfix: the "sendfile_max_chunk" directive did not work, if the 2673 "limit_rate" directive was used. 2674 2675 *) Bugfix: a "proxy_pass" directive without URI part always used 2676 original request URI if variables were used. 2677 2678 *) Bugfix: a "proxy_pass" directive without URI part might use original 2679 request after redirection with the "try_files" directive. 2680 Thanks to Lanshun Zhou. 2681 2682 *) Bugfix: in the ngx_http_scgi_module. 2683 2684 *) Bugfix: in the ngx_http_mp4_module. 2685 2686 *) Bugfix: nginx could not be built on Solaris; the bug had appeared in 2687 1.1.9. 2688 2689 2690Changes with nginx 1.1.11 12 Dec 2011 2691 2692 *) Feature: the "so_keepalive" parameter of the "listen" directive. 2693 Thanks to Vsevolod Stakhov. 2694 2695 *) Feature: the "if_not_empty" parameter of the 2696 "fastcgi/scgi/uwsgi_param" directives. 2697 2698 *) Feature: the $https variable. 2699 2700 *) Feature: the "proxy_redirect" directive supports variables in the 2701 first parameter. 2702 2703 *) Feature: the "proxy_redirect" directive supports regular expressions. 2704 2705 *) Bugfix: the $sent_http_cache_control variable might contain a wrong 2706 value if the "expires" directive was used. 2707 Thanks to Yichun Zhang. 2708 2709 *) Bugfix: the "read_ahead" directive might not work combined with 2710 "try_files" and "open_file_cache". 2711 2712 *) Bugfix: a segmentation fault might occur in a worker process if small 2713 time was used in the "inactive" parameter of the "proxy_cache_path" 2714 directive. 2715 2716 *) Bugfix: responses from cache might hang. 2717 2718 2719Changes with nginx 1.1.10 30 Nov 2011 2720 2721 *) Bugfix: a segmentation fault occurred in a worker process if AIO was 2722 used on Linux; the bug had appeared in 1.1.9. 2723 2724 2725Changes with nginx 1.1.9 28 Nov 2011 2726 2727 *) Change: now double quotes are encoded in an "echo" SSI-command 2728 output. 2729 Thanks to Zaur Abasmirzoev. 2730 2731 *) Feature: the "valid" parameter of the "resolver" directive. By 2732 default TTL returned by a DNS server is used. 2733 Thanks to Kirill A. Korinskiy. 2734 2735 *) Bugfix: nginx might hang after a worker process abnormal termination. 2736 2737 *) Bugfix: a segmentation fault might occur in a worker process if SNI 2738 was used; the bug had appeared in 1.1.2. 2739 2740 *) Bugfix: in the "keepalive_disable" directive; the bug had appeared in 2741 1.1.8. 2742 Thanks to Alexander Usov. 2743 2744 *) Bugfix: SIGWINCH signal did not work after first binary upgrade; the 2745 bug had appeared in 1.1.1. 2746 2747 *) Bugfix: backend responses with length not matching "Content-Length" 2748 header line are no longer cached. 2749 2750 *) Bugfix: in the "scgi_param" directive, if complex parameters were 2751 used. 2752 2753 *) Bugfix: in the "epoll" event method. 2754 Thanks to Yichun Zhang. 2755 2756 *) Bugfix: in the ngx_http_flv_module. 2757 Thanks to Piotr Sikora. 2758 2759 *) Bugfix: in the ngx_http_mp4_module. 2760 2761 *) Bugfix: IPv6 addresses are now handled properly in a request line and 2762 in a "Host" request header line. 2763 2764 *) Bugfix: "add_header" and "expires" directives did not work if a 2765 request was proxied and response status code was 206. 2766 2767 *) Bugfix: nginx could not be built on FreeBSD 10. 2768 2769 *) Bugfix: nginx could not be built on AIX. 2770 2771 2772Changes with nginx 1.1.8 14 Nov 2011 2773 2774 *) Change: the ngx_http_limit_zone_module was renamed to the 2775 ngx_http_limit_conn_module. 2776 2777 *) Change: the "limit_zone" directive was superseded by the 2778 "limit_conn_zone" directive with a new syntax. 2779 2780 *) Feature: support for multiple "limit_conn" limits on the same level. 2781 2782 *) Feature: the "image_filter_sharpen" directive. 2783 2784 *) Bugfix: a segmentation fault might occur in a worker process if 2785 resolver got a big DNS response. 2786 Thanks to Ben Hawkes. 2787 2788 *) Bugfix: in cache key calculation if internal MD5 implementation was 2789 used; the bug had appeared in 1.0.4. 2790 2791 *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request 2792 header lines might be passed to backend while caching; or not passed 2793 without caching if caching was enabled in another part of the 2794 configuration. 2795 2796 *) Bugfix: the module ngx_http_mp4_module sent incorrect 2797 "Content-Length" response header line if the "start" argument was 2798 used. 2799 Thanks to Piotr Sikora. 2800 2801 2802Changes with nginx 1.1.7 31 Oct 2011 2803 2804 *) Feature: support of several DNS servers in the "resolver" directive. 2805 Thanks to Kirill A. Korinskiy. 2806 2807 *) Bugfix: a segmentation fault occurred on start or during 2808 reconfiguration if the "ssl" directive was used at http level and 2809 there was no "ssl_certificate" defined. 2810 2811 *) Bugfix: reduced memory consumption while proxying big files if they 2812 were buffered to disk. 2813 2814 *) Bugfix: a segmentation fault might occur in a worker process if 2815 "proxy_http_version 1.1" directive was used. 2816 2817 *) Bugfix: in the "expires @time" directive. 2818 2819 2820Changes with nginx 1.1.6 17 Oct 2011 2821 2822 *) Change in internal API: now module context data are cleared while 2823 internal redirect to named location. 2824 Requested by Yichun Zhang. 2825 2826 *) Change: if a server in an upstream failed, only one request will be 2827 sent to it after fail_timeout; the server will be considered alive if 2828 it will successfully respond to the request. 2829 2830 *) Change: now the 0x7F-0xFF characters are escaped as \xXX in an 2831 access_log. 2832 2833 *) Feature: "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support 2834 the following additional values: X-Accel-Limit-Rate, 2835 X-Accel-Buffering, X-Accel-Charset. 2836 2837 *) Feature: decrease of memory consumption if SSL is used. 2838 2839 *) Bugfix: some UTF-8 characters were processed incorrectly. 2840 Thanks to Alexey Kuts. 2841 2842 *) Bugfix: the ngx_http_rewrite_module directives specified at "server" 2843 level were executed twice if no matching locations were defined. 2844 2845 *) Bugfix: a socket leak might occurred if "aio sendfile" was used. 2846 2847 *) Bugfix: connections with fast clients might be closed after 2848 send_timeout if file AIO was used. 2849 2850 *) Bugfix: in the ngx_http_autoindex_module. 2851 2852 *) Bugfix: the module ngx_http_mp4_module did not support seeking on 2853 32-bit platforms. 2854 2855 2856Changes with nginx 1.1.5 05 Oct 2011 2857 2858 *) Feature: the "uwsgi_buffering" and "scgi_buffering" directives. 2859 Thanks to Peter Smit. 2860 2861 *) Bugfix: non-cacheable responses might be cached if 2862 "proxy_cache_bypass" directive was used. 2863 Thanks to John Ferlito. 2864 2865 *) Bugfix: in HTTP/1.1 support in the ngx_http_proxy_module. 2866 2867 *) Bugfix: cached responses with an empty body were returned 2868 incorrectly; the bug had appeared in 0.8.31. 2869 2870 *) Bugfix: 201 responses of the ngx_http_dav_module were incorrect; the 2871 bug had appeared in 0.8.32. 2872 2873 *) Bugfix: in the "return" directive. 2874 2875 *) Bugfix: the "ssl_session_cache builtin" directive caused segmentation 2876 fault; the bug had appeared in 1.1.1. 2877 2878 2879Changes with nginx 1.1.4 20 Sep 2011 2880 2881 *) Feature: the ngx_http_upstream_keepalive module. 2882 2883 *) Feature: the "proxy_http_version" directive. 2884 2885 *) Feature: the "fastcgi_keep_conn" directive. 2886 2887 *) Feature: the "worker_aio_requests" directive. 2888 2889 *) Bugfix: if nginx was built --with-file-aio it could not be run on 2890 Linux kernel which did not support AIO. 2891 2892 *) Bugfix: in Linux AIO error processing. 2893 Thanks to Hagai Avrahami. 2894 2895 *) Bugfix: reduced memory consumption for long-lived requests. 2896 2897 *) Bugfix: the module ngx_http_mp4_module did not support 64-bit MP4 2898 "co64" atom. 2899 2900 2901Changes with nginx 1.1.3 14 Sep 2011 2902 2903 *) Feature: the module ngx_http_mp4_module. 2904 2905 *) Bugfix: in Linux AIO combined with open_file_cache. 2906 2907 *) Bugfix: open_file_cache did not update file info on retest if file 2908 was not atomically changed. 2909 2910 *) Bugfix: nginx could not be built on MacOSX 10.7. 2911 2912 2913Changes with nginx 1.1.2 05 Sep 2011 2914 2915 *) Change: now if total size of all ranges is greater than source 2916 response size, then nginx disables ranges and returns just the source 2917 response. 2918 2919 *) Feature: the "max_ranges" directive. 2920 2921 *) Bugfix: the "ssl_verify_client", "ssl_verify_depth", and 2922 "ssl_prefer_server_ciphers" directives might work incorrectly if SNI 2923 was used. 2924 2925 *) Bugfix: in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" 2926 directives. 2927 2928 2929Changes with nginx 1.1.1 22 Aug 2011 2930 2931 *) Change: now cache loader processes either as many files as specified 2932 by "loader_files" parameter or works no longer than time specified by 2933 the "loader_threshold" parameter during each iteration. 2934 2935 *) Change: now SIGWINCH signal works only in daemon mode. 2936 2937 *) Feature: now shared zones and caches use POSIX semaphores on Solaris. 2938 Thanks to Den Ivanov. 2939 2940 *) Feature: accept filters are now supported on NetBSD. 2941 2942 *) Bugfix: nginx could not be built on Linux 3.0. 2943 2944 *) Bugfix: nginx did not use gzipping in some cases; the bug had 2945 appeared in 1.1.0. 2946 2947 *) Bugfix: request body might be processed incorrectly if client used 2948 pipelining. 2949 2950 *) Bugfix: in the "request_body_in_single_buf" directive. 2951 2952 *) Bugfix: in "proxy_set_body" and "proxy_pass_request_body" directives 2953 if SSL connection to backend was used. 2954 2955 *) Bugfix: nginx hogged CPU if all servers in an upstream were marked as 2956 "down". 2957 2958 *) Bugfix: a segmentation fault might occur during reconfiguration if 2959 ssl_session_cache was defined but not used in previous configuration. 2960 2961 *) Bugfix: a segmentation fault might occur in a worker process if many 2962 backup servers were used in an upstream. 2963 2964 *) Bugfix: a segmentation fault might occur in a worker process if 2965 "fastcgi/scgi/uwsgi_param" directives were used with values starting 2966 with "HTTP_"; the bug had appeared in 0.8.40. 2967 2968 2969Changes with nginx 1.1.0 01 Aug 2011 2970 2971 *) Feature: cache loader run time decrease. 2972 2973 *) Feature: "loader_files", "loader_sleep", and "loader_threshold" 2974 options of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives. 2975 2976 *) Feature: loading time decrease of configuration with large number of 2977 HTTPS sites. 2978 2979 *) Feature: now nginx supports ECDHE key exchange ciphers. 2980 Thanks to Adrian Kotelba. 2981 2982 *) Feature: the "lingering_close" directive. 2983 Thanks to Maxim Dounin. 2984 2985 *) Bugfix: in closing connection for pipelined requests. 2986 Thanks to Maxim Dounin. 2987 2988 *) Bugfix: nginx did not disable gzipping if client sent "gzip;q=0" in 2989 "Accept-Encoding" request header line. 2990 2991 *) Bugfix: in timeout in unbuffered proxied mode. 2992 Thanks to Maxim Dounin. 2993 2994 *) Bugfix: memory leaks when a "proxy_pass" directive contains variables 2995 and proxies to an HTTPS backend. 2996 Thanks to Maxim Dounin. 2997 2998 *) Bugfix: in parameter validation of a "proxy_pass" directive with 2999 variables. 3000 Thanks to Lanshun Zhou. 3001 3002 *) Bugfix: SSL did not work on QNX. 3003 Thanks to Maxim Dounin. 3004 3005 *) Bugfix: SSL modules could not be built by gcc 4.6 without 3006 --with-debug option. 3007 3008 3009Changes with nginx 1.0.5 19 Jul 2011 3010 3011 *) Change: now default SSL ciphers are "HIGH:!aNULL:!MD5". 3012 Thanks to Rob Stradling. 3013 3014 *) Feature: the "referer_hash_max_size" and "referer_hash_bucket_size" 3015 directives. 3016 Thanks to Witold Filipczyk. 3017 3018 *) Feature: $uid_reset variable. 3019 3020 *) Bugfix: a segmentation fault might occur in a worker process, if a 3021 caching was used. 3022 Thanks to Lanshun Zhou. 3023 3024 *) Bugfix: worker processes may got caught in an endless loop during 3025 reconfiguration, if a caching was used; the bug had appeared in 3026 0.8.48. 3027 Thanks to Maxim Dounin. 3028 3029 *) Bugfix: "stalled cache updating" alert. 3030 Thanks to Maxim Dounin. 3031 3032 3033Changes with nginx 1.0.4 01 Jun 2011 3034 3035 *) Change: now regular expressions case sensitivity in the "map" 3036 directive is given by prefixes "~" or "~*". 3037 3038 *) Feature: now shared zones and caches use POSIX semaphores on Linux. 3039 Thanks to Denis F. Latypoff. 3040 3041 *) Bugfix: "stalled cache updating" alert. 3042 3043 *) Bugfix: nginx could not be built --without-http_auth_basic_module; 3044 the bug had appeared in 1.0.3. 3045 3046 3047Changes with nginx 1.0.3 25 May 2011 3048 3049 *) Feature: the "auth_basic_user_file" directive supports "$apr1", 3050 "{PLAIN}", and "{SSHA}" password encryption methods. 3051 Thanks to Maxim Dounin. 3052 3053 *) Feature: the "geoip_org" directive and $geoip_org variable. 3054 Thanks to Alexander Uskov, Arnaud Granal, and Denis F. Latypoff. 3055 3056 *) Feature: ngx_http_geo_module and ngx_http_geoip_module support IPv4 3057 addresses mapped to IPv6 addresses. 3058 3059 *) Bugfix: a segmentation fault occurred in a worker process during 3060 testing IPv4 address mapped to IPv6 address, if access or deny rules 3061 were defined only for IPv6; the bug had appeared in 0.8.22. 3062 3063 *) Bugfix: a cached response may be broken if "proxy/fastcgi/scgi/ 3064 uwsgi_cache_bypass" and "proxy/fastcgi/scgi/uwsgi_no_cache" directive 3065 values were different; the bug had appeared in 0.8.46. 3066 3067 3068Changes with nginx 1.0.2 10 May 2011 3069 3070 *) Feature: now shared zones and caches use POSIX semaphores. 3071 3072 *) Bugfix: in the "rotate" parameter of the "image_filter" directive. 3073 Thanks to Adam Bocim. 3074 3075 *) Bugfix: nginx could not be built on Solaris; the bug had appeared in 3076 1.0.1. 3077 3078 3079Changes with nginx 1.0.1 03 May 2011 3080 3081 *) Change: now the "split_clients" directive uses MurmurHash2 algorithm 3082 because of better distribution. 3083 Thanks to Oleg Mamontov. 3084 3085 *) Change: now long strings starting with zero are not considered as 3086 false values. 3087 Thanks to Maxim Dounin. 3088 3089 *) Change: now nginx uses a default listen backlog value 511 on Linux. 3090 3091 *) Feature: the $upstream_... variables may be used in the SSI and perl 3092 modules. 3093 3094 *) Bugfix: now nginx limits better disk cache size. 3095 Thanks to Oleg Mamontov. 3096 3097 *) Bugfix: a segmentation fault might occur while parsing incorrect IPv4 3098 address; the bug had appeared in 0.9.3. 3099 Thanks to Maxim Dounin. 3100 3101 *) Bugfix: nginx could not be built by gcc 4.6 without --with-debug 3102 option. 3103 3104 *) Bugfix: nginx could not be built on Solaris 9 and earlier; the bug 3105 had appeared in 0.9.3. 3106 Thanks to Dagobert Michelsen. 3107 3108 *) Bugfix: $request_time variable had invalid values if subrequests were 3109 used; the bug had appeared in 0.8.47. 3110 Thanks to Igor A. Valcov. 3111 3112 3113Changes with nginx 1.0.0 12 Apr 2011 3114 3115 *) Bugfix: a cache manager might hog CPU after reload. 3116 Thanks to Maxim Dounin. 3117 3118 *) Bugfix: an "image_filter crop" directive worked incorrectly coupled 3119 with an "image_filter rotate 180" directive. 3120 3121 *) Bugfix: a "satisfy any" directive disabled custom 401 error page. 3122 3123 3124Changes with nginx 0.9.7 04 Apr 2011 3125 3126 *) Feature: now keepalive connections may be closed premature, if there 3127 are no free worker connections. 3128 Thanks to Maxim Dounin. 3129 3130 *) Feature: the "rotate" parameter of the "image_filter" directive. 3131 Thanks to Adam Bocim. 3132 3133 *) Bugfix: a case when a backend in "fastcgi_pass", "scgi_pass", or 3134 "uwsgi_pass" directives is given by expression and refers to a 3135 defined upstream. 3136 3137 3138Changes with nginx 0.9.6 21 Mar 2011 3139 3140 *) Feature: the "map" directive supports regular expressions as value of 3141 the first parameter. 3142 3143 *) Feature: $time_iso8601 access_log variable. 3144 Thanks to Michael Lustfield. 3145 3146 3147Changes with nginx 0.9.5 21 Feb 2011 3148 3149 *) Change: now nginx uses a default listen backlog value -1 on Linux. 3150 Thanks to Andrei Nigmatulin. 3151 3152 *) Feature: the "utf8" parameter of "geoip_country" and "geoip_city" 3153 directives. 3154 Thanks to Denis F. Latypoff. 3155 3156 *) Bugfix: in a default "proxy_redirect" directive if "proxy_pass" 3157 directive has no URI part. 3158 Thanks to Maxim Dounin. 3159 3160 *) Bugfix: an "error_page" directive did not work with nonstandard error 3161 codes; the bug had appeared in 0.8.53. 3162 Thanks to Maxim Dounin. 3163 3164 3165Changes with nginx 0.9.4 21 Jan 2011 3166 3167 *) Feature: the "server_name" directive supports the $hostname variable. 3168 3169 *) Feature: 494 code for "Request Header Too Large" error. 3170 3171 3172Changes with nginx 0.9.3 13 Dec 2010 3173 3174 *) Bugfix: if there was a single server for given IPv6 address:port 3175 pair, then captures in regular expressions in a "server_name" 3176 directive did not work. 3177 3178 *) Bugfix: nginx could not be built on Solaris; the bug had appeared in 3179 0.9.0. 3180 3181 3182Changes with nginx 0.9.2 06 Dec 2010 3183 3184 *) Feature: the "If-Unmodified-Since" client request header line 3185 support. 3186 3187 *) Workaround: fallback to accept() syscall if accept4() was not 3188 implemented; the issue had appeared in 0.9.0. 3189 3190 *) Bugfix: nginx could not be built on Cygwin; the bug had appeared in 3191 0.9.0. 3192 3193 *) Bugfix: for OpenSSL vulnerability CVE-2010-4180. 3194 Thanks to Maxim Dounin. 3195 3196 3197Changes with nginx 0.9.1 30 Nov 2010 3198 3199 *) Bugfix: "return CODE message" directives did not work; the bug had 3200 appeared in 0.9.0. 3201 3202 3203Changes with nginx 0.9.0 29 Nov 2010 3204 3205 *) Feature: the "keepalive_disable" directive. 3206 3207 *) Feature: the "map" directive supports variables as value of a defined 3208 variable. 3209 3210 *) Feature: the "map" directive supports empty strings as value of the 3211 first parameter. 3212 3213 *) Feature: the "map" directive supports expressions as the first 3214 parameter. 3215 3216 *) Feature: nginx(8) manual page. 3217 Thanks to Sergey Osokin. 3218 3219 *) Feature: Linux accept4() support. 3220 Thanks to Simon Liu. 3221 3222 *) Workaround: elimination of Linux linker warning about "sys_errlist" 3223 and "sys_nerr"; the warning had appeared in 0.8.35. 3224 3225 *) Bugfix: a segmentation fault might occur in a worker process, if the 3226 "auth_basic" directive was used. 3227 Thanks to Michail Laletin. 3228 3229 *) Bugfix: compatibility with ngx_http_eval_module; the bug had appeared 3230 in 0.8.42. 3231 3232 3233Changes with nginx 0.8.53 18 Oct 2010 3234 3235 *) Feature: now the "error_page" directive allows to change a status 3236 code in a redirect. 3237 3238 *) Feature: the "gzip_disable" directive supports special "degradation" 3239 mask. 3240 3241 *) Bugfix: a socket leak might occurred if file AIO was used. 3242 Thanks to Maxim Dounin. 3243 3244 *) Bugfix: if the first server had no "listen" directive and there was 3245 no explicit default server, then a next server with a "listen" 3246 directive became the default server; the bug had appeared in 0.8.21. 3247 3248 3249Changes with nginx 0.8.52 28 Sep 2010 3250 3251 *) Bugfix: nginx used SSL mode for a listen socket if any listen option 3252 was set; the bug had appeared in 0.8.51. 3253 3254 3255Changes with nginx 0.8.51 27 Sep 2010 3256 3257 *) Change: the "secure_link_expires" directive has been canceled. 3258 3259 *) Change: a logging level of resolver errors has been lowered from 3260 "alert" to "error". 3261 3262 *) Feature: now a listen socket "ssl" parameter may be set several 3263 times. 3264 3265 3266Changes with nginx 0.8.50 02 Sep 2010 3267 3268 *) Feature: the "secure_link", "secure_link_md5", and 3269 "secure_link_expires" directives of the ngx_http_secure_link_module. 3270 3271 *) Feature: the -q switch. 3272 Thanks to Gena Makhomed. 3273 3274 *) Bugfix: worker processes may got caught in an endless loop during 3275 reconfiguration, if a caching was used; the bug had appeared in 3276 0.8.48. 3277 3278 *) Bugfix: in the "gzip_disable" directive. 3279 Thanks to Derrick Petzold. 3280 3281 *) Bugfix: nginx/Windows could not send stop, quit, reopen, and reload 3282 signals to a process run in other session. 3283 3284 3285Changes with nginx 0.8.49 09 Aug 2010 3286 3287 *) Feature: the "image_filter_jpeg_quality" directive supports 3288 variables. 3289 3290 *) Bugfix: a segmentation fault might occur in a worker process, if the 3291 $geoip_region_name variables was used; the bug had appeared in 3292 0.8.48. 3293 3294 *) Bugfix: errors intercepted by error_page were cached only for next 3295 request; the bug had appeared in 0.8.48. 3296 3297 3298Changes with nginx 0.8.48 03 Aug 2010 3299 3300 *) Change: now the "server_name" directive default value is an empty 3301 name "". 3302 Thanks to Gena Makhomed. 3303 3304 *) Change: now the "server_name_in_redirect" directive default value is 3305 "off". 3306 3307 *) Feature: the $geoip_dma_code, $geoip_area_code, and 3308 $geoip_region_name variables. 3309 Thanks to Christine McGonagle. 3310 3311 *) Bugfix: the "proxy_pass", "fastcgi_pass", "uwsgi_pass", and 3312 "scgi_pass" directives were not inherited inside "limit_except" 3313 blocks. 3314 3315 *) Bugfix: the "proxy_cache_min_uses", "fastcgi_cache_min_uses" 3316 "uwsgi_cache_min_uses", and "scgi_cache_min_uses" directives did not 3317 work; the bug had appeared in 0.8.46. 3318 3319 *) Bugfix: the "fastcgi_split_path_info" directive used incorrectly 3320 captures, if only parts of an URI were captured. 3321 Thanks to Yuriy Taraday and Frank Enderle. 3322 3323 *) Bugfix: the "rewrite" directive did not escape a ";" character during 3324 copying from URI to query string. 3325 Thanks to Daisuke Murase. 3326 3327 *) Bugfix: the ngx_http_image_filter_module closed a connection, if an 3328 image was larger than "image_filter_buffer" size. 3329 3330 3331Changes with nginx 0.8.47 28 Jul 2010 3332 3333 *) Bugfix: $request_time variable had invalid values for subrequests. 3334 3335 *) Bugfix: errors intercepted by error_page could not be cached. 3336 3337 *) Bugfix: a cache manager process may got caught in an endless loop, if 3338 max_size parameter was used; the bug had appeared in 0.8.46. 3339 3340 3341Changes with nginx 0.8.46 19 Jul 2010 3342 3343 *) Change: now the "proxy_no_cache", "fastcgi_no_cache", 3344 "uwsgi_no_cache", and "scgi_no_cache" directives affect on a cached 3345 response saving only. 3346 3347 *) Feature: the "proxy_cache_bypass", "fastcgi_cache_bypass", 3348 "uwsgi_cache_bypass", and "scgi_cache_bypass" directives. 3349 3350 *) Bugfix: nginx did not free memory in cache keys zones if there was an 3351 error during working with backend: the memory was freed only after 3352 inactivity time or on memory low condition. 3353 3354 3355Changes with nginx 0.8.45 13 Jul 2010 3356 3357 *) Feature: ngx_http_xslt_filter improvements. 3358 Thanks to Laurence Rowe. 3359 3360 *) Bugfix: SSI response might be truncated after include with 3361 wait="yes"; the bug had appeared in 0.7.25. 3362 Thanks to Maxim Dounin. 3363 3364 *) Bugfix: the "listen" directive did not support the "setfib=0" 3365 parameter. 3366 3367 3368Changes with nginx 0.8.44 05 Jul 2010 3369 3370 *) Change: now nginx does not cache by default backend responses, if 3371 they have a "Set-Cookie" header line. 3372 3373 *) Feature: the "listen" directive supports the "setfib" parameter. 3374 Thanks to Andrew Filonov. 3375 3376 *) Bugfix: the "sub_filter" directive might change character case on 3377 partial match. 3378 3379 *) Bugfix: compatibility with HP/UX. 3380 3381 *) Bugfix: compatibility with AIX xlC_r compiler. 3382 3383 *) Bugfix: nginx treated large SSLv2 packets as plain requests. 3384 Thanks to Miroslaw Jaworski. 3385 3386 3387Changes with nginx 0.8.43 30 Jun 2010 3388 3389 *) Feature: large geo ranges base loading speed-up. 3390 3391 *) Bugfix: an error_page redirection to "location /zero {return 204;}" 3392 without changing status code kept the error body; the bug had 3393 appeared in 0.8.42. 3394 3395 *) Bugfix: nginx might close IPv6 listen socket during reconfiguration. 3396 Thanks to Maxim Dounin. 3397 3398 *) Bugfix: the $uid_set variable may be used at any request processing 3399 stage. 3400 3401 3402Changes with nginx 0.8.42 21 Jun 2010 3403 3404 *) Change: now nginx tests locations given by regular expressions, if 3405 request was matched exactly by a location given by a prefix string. 3406 The previous behavior has been introduced in 0.7.1. 3407 3408 *) Feature: the ngx_http_scgi_module. 3409 Thanks to Manlio Perillo. 3410 3411 *) Feature: a text answer may be added to a "return" directive. 3412 3413 3414Changes with nginx 0.8.41 15 Jun 2010 3415 3416 *) Security: nginx/Windows worker might be terminated abnormally if a 3417 requested file name has invalid UTF-8 encoding. 3418 3419 *) Change: now nginx allows to use spaces in a request line. 3420 3421 *) Bugfix: the "proxy_redirect" directive changed incorrectly a backend 3422 "Refresh" response header line. 3423 Thanks to Andrey Andreew and Max Sogin. 3424 3425 *) Bugfix: nginx did not support path without host name in "Destination" 3426 request header line. 3427 3428 3429Changes with nginx 0.8.40 07 Jun 2010 3430 3431 *) Security: now nginx/Windows ignores default file stream name. 3432 Thanks to Jose Antonio Vazquez Gonzalez. 3433 3434 *) Feature: the ngx_http_uwsgi_module. 3435 Thanks to Roberto De Ioris. 3436 3437 *) Feature: a "fastcgi_param" directive with value starting with "HTTP_" 3438 overrides a client request header line. 3439 3440 *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request 3441 header lines were passed to FastCGI-server while caching. 3442 3443 *) Bugfix: listen unix domain socket could not be changed during 3444 reconfiguration. 3445 Thanks to Maxim Dounin. 3446 3447 3448Changes with nginx 0.8.39 31 May 2010 3449 3450 *) Bugfix: an inherited "alias" directive worked incorrectly in 3451 inclusive location. 3452 3453 *) Bugfix: in "alias" with variables and "try_files" directives 3454 combination. 3455 3456 *) Bugfix: listen unix domain and IPv6 sockets did not inherit while 3457 online upgrade. 3458 Thanks to Maxim Dounin. 3459 3460 3461Changes with nginx 0.8.38 24 May 2010 3462 3463 *) Feature: the "proxy_no_cache" and "fastcgi_no_cache" directives. 3464 3465 *) Feature: now the "rewrite" directive does a redirect automatically if 3466 the $scheme variable is used. 3467 Thanks to Piotr Sikora. 3468 3469 *) Bugfix: now "limit_req" delay directive conforms to the described 3470 algorithm. 3471 Thanks to Maxim Dounin. 3472 3473 *) Bugfix: the $uid_got variable might not be used in the SSI and perl 3474 modules. 3475 3476 3477Changes with nginx 0.8.37 17 May 2010 3478 3479 *) Feature: the ngx_http_split_clients_module. 3480 3481 *) Feature: the "map" directive supports keys more than 255 characters. 3482 3483 *) Bugfix: nginx ignored the "private" and "no-store" values in the 3484 "Cache-Control" backend response header line. 3485 3486 *) Bugfix: a "stub" parameter of an "include" SSI directive was not 3487 used, if empty response has 200 status code. 3488 3489 *) Bugfix: if a proxied or FastCGI request was internally redirected to 3490 another proxied or FastCGI location, then a segmentation fault might 3491 occur in a worker process; the bug had appeared in 0.8.33. 3492 Thanks to Yichun Zhang. 3493 3494 *) Bugfix: IMAP connections may hang until they timed out while talking 3495 to Zimbra server. 3496 Thanks to Alan Batie. 3497 3498 3499Changes with nginx 0.8.36 22 Apr 2010 3500 3501 *) Bugfix: the ngx_http_dav_module handled incorrectly the DELETE, COPY, 3502 and MOVE methods for symlinks. 3503 3504 *) Bugfix: values of the $query_string, $arg_..., etc. variables cached 3505 in main request were used by the SSI module in subrequests. 3506 3507 *) Bugfix: a variable value was repeatedly encoded after each an "echo" 3508 SSI-command output; the bug had appeared in 0.6.14. 3509 3510 *) Bugfix: a worker process hung if a FIFO file was requested. 3511 Thanks to Vicente Aguilar and Maxim Dounin. 3512 3513 *) Bugfix: OpenSSL-1.0.0 compatibility on 64-bit Linux. 3514 Thanks to Maxim Dounin. 3515 3516 *) Bugfix: nginx could not be built --without-http-cache; the bug had 3517 appeared in 0.8.35. 3518 3519 3520Changes with nginx 0.8.35 01 Apr 2010 3521 3522 *) Change: now the charset filter runs before the SSI filter. 3523 3524 *) Feature: the "chunked_transfer_encoding" directive. 3525 3526 *) Bugfix: an "&" character was not escaped when it was copied in 3527 arguments part in a rewrite rule. 3528 3529 *) Bugfix: nginx might be terminated abnormally while a signal 3530 processing or if the directive "timer_resolution" was used on 3531 platforms which do not support kqueue or eventport notification 3532 methods. 3533 Thanks to George Xie and Maxim Dounin. 3534 3535 *) Bugfix: if temporary files and permanent storage area resided at 3536 different file systems, then permanent file modification times were 3537 incorrect. 3538 Thanks to Maxim Dounin. 3539 3540 *) Bugfix: ngx_http_memcached_module might issue the error message 3541 "memcached sent invalid trailer". 3542 Thanks to Maxim Dounin. 3543 3544 *) Bugfix: nginx could not built zlib-1.2.4 library using the library 3545 sources. 3546 Thanks to Maxim Dounin. 3547 3548 *) Bugfix: a segmentation fault occurred in a worker process, if there 3549 was large stderr output before FastCGI response; the bug had appeared 3550 in 0.8.34. 3551 Thanks to Maxim Dounin. 3552 3553 3554Changes with nginx 0.8.34 03 Mar 2010 3555 3556 *) Bugfix: nginx did not support all ciphers and digests used in client 3557 certificates. 3558 Thanks to Innocenty Enikeew. 3559 3560 *) Bugfix: nginx cached incorrectly FastCGI responses if there was large 3561 stderr output before response. 3562 3563 *) Bugfix: nginx did not support HTTPS referrers. 3564 3565 *) Bugfix: nginx/Windows might not find file if path in configuration 3566 was given in other character case; the bug had appeared in 0.8.33. 3567 3568 *) Bugfix: the $date_local variable has an incorrect value, if the "%s" 3569 format was used. 3570 Thanks to Maxim Dounin. 3571 3572 *) Bugfix: if ssl_session_cache was not set or was set to "none", then 3573 during client certificate verify the error "session id context 3574 uninitialized" might occur; the bug had appeared in 0.7.1. 3575 3576 *) Bugfix: a geo range returned default value if the range included two 3577 or more /16 networks and did not begin at /16 network boundary. 3578 3579 *) Bugfix: a block used in a "stub" parameter of an "include" SSI 3580 directive was output with "text/plain" MIME type. 3581 3582 *) Bugfix: $r->sleep() did not work; the bug had appeared in 0.8.11. 3583 3584 3585Changes with nginx 0.8.33 01 Feb 2010 3586 3587 *) Security: now nginx/Windows ignores trailing spaces in URI. 3588 Thanks to Dan Crowley, Core Security Technologies. 3589 3590 *) Security: now nginx/Windows ignores short files names. 3591 Thanks to Dan Crowley, Core Security Technologies. 3592 3593 *) Change: now keepalive connections after POST requests are not 3594 disabled for MSIE 7.0+. 3595 Thanks to Adam Lounds. 3596 3597 *) Workaround: now keepalive connections are disabled for Safari. 3598 Thanks to Joshua Sierles. 3599 3600 *) Bugfix: if a proxied or FastCGI request was internally redirected to 3601 another proxied or FastCGI location, then $upstream_response_time 3602 variable may have abnormally large value; the bug had appeared in 3603 0.8.7. 3604 3605 *) Bugfix: a segmentation fault might occur in a worker process, while 3606 discarding a request body; the bug had appeared in 0.8.11. 3607 3608 3609Changes with nginx 0.8.32 11 Jan 2010 3610 3611 *) Bugfix: UTF-8 encoding usage in the ngx_http_autoindex_module. 3612 Thanks to Maxim Dounin. 3613 3614 *) Bugfix: regular expression named captures worked for two names only. 3615 Thanks to Maxim Dounin. 3616 3617 *) Bugfix: now the "localhost" name is used in the "Host" request header 3618 line, if an unix domain socket is defined in the "auth_http" 3619 directive. 3620 Thanks to Maxim Dounin. 3621 3622 *) Bugfix: nginx did not support chunked transfer encoding for 201 3623 responses. 3624 Thanks to Julian Reich. 3625 3626 *) Bugfix: if the "expires modified" set date in the past, then a 3627 negative number was set in the "Cache-Control" response header line. 3628 Thanks to Alex Kapranoff. 3629 3630 3631Changes with nginx 0.8.31 23 Dec 2009 3632 3633 *) Feature: now the "error_page" directive may redirect the 301 and 302 3634 responses. 3635 3636 *) Feature: the $geoip_city_continent_code, $geoip_latitude, and 3637 $geoip_longitude variables. 3638 Thanks to Arvind Sundararajan. 3639 3640 *) Feature: now the ngx_http_image_filter_module deletes always EXIF and 3641 other application specific data if the data consume more than 5% of a 3642 JPEG file. 3643 3644 *) Bugfix: nginx closed a connection if a cached response had an empty 3645 body. 3646 Thanks to Piotr Sikora. 3647 3648 *) Bugfix: nginx might not be built by gcc 4.x if the -O2 or higher 3649 optimization option was used. 3650 Thanks to Maxim Dounin and Denis F. Latypoff. 3651 3652 *) Bugfix: regular expressions in location were always tested in 3653 case-sensitive mode; the bug had appeared in 0.8.25. 3654 3655 *) Bugfix: nginx cached a 304 response if there was the "If-None-Match" 3656 header line in a proxied request. 3657 Thanks to Tim Dettrick and David Kostal. 3658 3659 *) Bugfix: nginx/Windows tried to delete a temporary file twice if the 3660 file should replace an already existent file. 3661 3662 3663Changes with nginx 0.8.30 15 Dec 2009 3664 3665 *) Change: now the default buffer size of the 3666 "large_client_header_buffers" directive is 8K. 3667 Thanks to Andrew Cholakian. 3668 3669 *) Feature: the conf/fastcgi.conf for simple FastCGI configurations. 3670 3671 *) Bugfix: nginx/Windows tried to rename a temporary file twice if the 3672 file should replace an already existent file. 3673 3674 *) Bugfix: of "double free or corruption" error issued if host could not 3675 be resolved; the bug had appeared in 0.8.22. 3676 Thanks to Konstantin Svist. 3677 3678 *) Bugfix: in libatomic usage on some platforms. 3679 Thanks to W-Mark Kubacki. 3680 3681 3682Changes with nginx 0.8.29 30 Nov 2009 3683 3684 *) Change: now the "009" status code is written to an access log for 3685 proxied HTTP/0.9 responses. 3686 3687 *) Feature: the "addition_types", "charset_types", "gzip_types", 3688 "ssi_types", "sub_filter_types", and "xslt_types" directives support 3689 an "*" parameter. 3690 3691 *) Feature: GCC 4.1+ built-in atomic operations usage. 3692 Thanks to W-Mark Kubacki. 3693 3694 *) Feature: the --with-libatomic[=DIR] option in the configure. 3695 Thanks to W-Mark Kubacki. 3696 3697 *) Bugfix: listen unix domain socket had limited access rights. 3698 3699 *) Bugfix: cached HTTP/0.9 responses were handled incorrectly. 3700 3701 *) Bugfix: regular expression named captures given by "?P<...>" did not 3702 work in a "server_name" directive. 3703 Thanks to Maxim Dounin. 3704 3705 3706Changes with nginx 0.8.28 23 Nov 2009 3707 3708 *) Bugfix: nginx could not be built with the --without-pcre parameter; 3709 the bug had appeared in 0.8.25. 3710 3711 3712Changes with nginx 0.8.27 17 Nov 2009 3713 3714 *) Bugfix: regular expressions did not work in nginx/Windows; the bug 3715 had appeared in 0.8.25. 3716 3717 3718Changes with nginx 0.8.26 16 Nov 2009 3719 3720 *) Bugfix: in captures usage in "rewrite" directive; the bug had 3721 appeared in 0.8.25. 3722 3723 *) Bugfix: nginx could not be built without the --with-debug option; the 3724 bug had appeared in 0.8.25. 3725 3726 3727Changes with nginx 0.8.25 16 Nov 2009 3728 3729 *) Change: now no message is written in an error log if a variable is 3730 not found by $r->variable() method. 3731 3732 *) Feature: the ngx_http_degradation_module. 3733 3734 *) Feature: regular expression named captures. 3735 3736 *) Feature: now URI part is not required a "proxy_pass" directive if 3737 variables are used. 3738 3739 *) Feature: now the "msie_padding" directive works for Chrome too. 3740 3741 *) Bugfix: a segmentation fault occurred in a worker process on low 3742 memory condition; the bug had appeared in 0.8.18. 3743 3744 *) Bugfix: nginx sent gzipped responses to clients those do not support 3745 gzip, if "gzip_static on" and "gzip_vary off"; the bug had appeared 3746 in 0.8.16. 3747 3748 3749Changes with nginx 0.8.24 11 Nov 2009 3750 3751 *) Bugfix: nginx always added "Content-Encoding: gzip" response header 3752 line in 304 responses sent by ngx_http_gzip_static_module. 3753 3754 *) Bugfix: nginx could not be built without the --with-debug option; the 3755 bug had appeared in 0.8.23. 3756 3757 *) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive 3758 inherited incorrectly from previous level. 3759 3760 *) Bugfix: in resolving empty name. 3761 3762 3763Changes with nginx 0.8.23 11 Nov 2009 3764 3765 *) Security: now SSL/TLS renegotiation is disabled. 3766 Thanks to Maxim Dounin. 3767 3768 *) Bugfix: listen unix domain socket did not inherit while online 3769 upgrade. 3770 3771 *) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive did 3772 not without yet another directive with any IP address. 3773 3774 *) Bugfix: segmentation fault and infinite looping in resolver. 3775 3776 *) Bugfix: in resolver. 3777 Thanks to Artem Bokhan. 3778 3779 3780Changes with nginx 0.8.22 03 Nov 2009 3781 3782 *) Feature: the "proxy_bind", "fastcgi_bind", and "memcached_bind" 3783 directives. 3784 3785 *) Feature: the "access" and the "deny" directives support IPv6. 3786 3787 *) Feature: the "set_real_ip_from" directive supports IPv6 addresses in 3788 request headers. 3789 3790 *) Feature: the "unix:" parameter of the "set_real_ip_from" directive. 3791 3792 *) Bugfix: nginx did not delete unix domain socket after configuration 3793 testing. 3794 3795 *) Bugfix: nginx deleted unix domain socket while online upgrade. 3796 3797 *) Bugfix: the "!-x" operator did not work. 3798 Thanks to Maxim Dounin. 3799 3800 *) Bugfix: a segmentation fault might occur in a worker process, if 3801 limit_rate was used in HTTPS server. 3802 Thanks to Maxim Dounin. 3803 3804 *) Bugfix: a segmentation fault might occur in a worker process while 3805 $limit_rate logging. 3806 Thanks to Maxim Dounin. 3807 3808 *) Bugfix: a segmentation fault might occur in a worker process, if 3809 there was no "listen" directive in "server" block; the bug had 3810 appeared in 0.8.21. 3811 3812 3813Changes with nginx 0.8.21 26 Oct 2009 3814 3815 *) Feature: now the "-V" switch shows TLS SNI support. 3816 3817 *) Feature: the "listen" directive of the HTTP module supports unix 3818 domain sockets. 3819 Thanks to Hongli Lai. 3820 3821 *) Feature: the "default_server" parameter of the "listen" directive. 3822 3823 *) Feature: now a "default" parameter is not required to set listen 3824 socket options. 3825 3826 *) Bugfix: nginx did not support dates in 2038 year on 32-bit platforms; 3827 3828 *) Bugfix: socket leak; the bug had appeared in 0.8.11. 3829 3830 3831Changes with nginx 0.8.20 14 Oct 2009 3832 3833 *) Change: now default SSL ciphers are "HIGH:!ADH:!MD5". 3834 3835 *) Bugfix: the ngx_http_autoindex_module did not show the trailing slash 3836 in links to a directory; the bug had appeared in 0.7.15. 3837 3838 *) Bugfix: nginx did not close a log file set by the --error-log-path 3839 configuration option; the bug had appeared in 0.7.53. 3840 3841 *) Bugfix: nginx did not treat a comma as separator in the 3842 "Cache-Control" backend response header line. 3843 3844 *) Bugfix: nginx/Windows might not create temporary file, a cache file, 3845 or "proxy/fastcgi_store"d file if a worker had no enough access 3846 rights for top level directories. 3847 3848 *) Bugfix: the "Set-Cookie" and "P3P" FastCGI response header lines were 3849 not hidden while caching if no "fastcgi_hide_header" directives were 3850 used with any parameters. 3851 3852 *) Bugfix: nginx counted incorrectly disk cache size. 3853 3854 3855Changes with nginx 0.8.19 06 Oct 2009 3856 3857 *) Change: now SSLv2 protocol is disabled by default. 3858 3859 *) Change: now default SSL ciphers are "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM". 3860 3861 *) Bugfix: a "limit_req" directive did not work; the bug had appeared in 3862 0.8.18. 3863 3864 3865Changes with nginx 0.8.18 06 Oct 2009 3866 3867 *) Feature: the "read_ahead" directive. 3868 3869 *) Feature: now several "perl_modules" directives may be used. 3870 3871 *) Feature: the "limit_req_log_level" and "limit_conn_log_level" 3872 directives. 3873 3874 *) Bugfix: now "limit_req" directive conforms to the leaky bucket 3875 algorithm. 3876 Thanks to Maxim Dounin. 3877 3878 *) Bugfix: nginx did not work on Linux/sparc. 3879 Thanks to Marcus Ramberg. 3880 3881 *) Bugfix: nginx sent '\0' in a "Location" response header line on MKCOL 3882 request. 3883 Thanks to Xie Zhenye. 3884 3885 *) Bugfix: zero status code was logged instead of 499 status code; the 3886 bug had appeared in 0.8.11. 3887 3888 *) Bugfix: socket leak; the bug had appeared in 0.8.11. 3889 3890 3891Changes with nginx 0.8.17 28 Sep 2009 3892 3893 *) Security: now "/../" are disabled in "Destination" request header 3894 line. 3895 3896 *) Change: now $host variable value is always low case. 3897 3898 *) Feature: the $ssl_session_id variable. 3899 3900 *) Bugfix: socket leak; the bug had appeared in 0.8.11. 3901 3902 3903Changes with nginx 0.8.16 22 Sep 2009 3904 3905 *) Feature: the "image_filter_transparency" directive. 3906 3907 *) Bugfix: "addition_types" directive was incorrectly named 3908 "addtion_types". 3909 3910 *) Bugfix: resolver cache poisoning. 3911 Thanks to Matthew Dempsky. 3912 3913 *) Bugfix: memory leak in resolver. 3914 Thanks to Matthew Dempsky. 3915 3916 *) Bugfix: invalid request line in $request variable was written in 3917 access_log only if error_log was set to "info" or "debug" level. 3918 3919 *) Bugfix: in PNG alpha-channel support in the 3920 ngx_http_image_filter_module. 3921 3922 *) Bugfix: nginx always added "Vary: Accept-Encoding" response header 3923 line, if both "gzip_static" and "gzip_vary" were on. 3924 3925 *) Bugfix: in UTF-8 encoding support by "try_files" directive in 3926 nginx/Windows. 3927 3928 *) Bugfix: in "post_action" directive usage; the bug had appeared in 3929 0.8.11. 3930 Thanks to Igor Artemiev. 3931 3932 3933Changes with nginx 0.8.15 14 Sep 2009 3934 3935 *) Security: a segmentation fault might occur in worker process while 3936 specially crafted request handling. 3937 Thanks to Chris Ries. 3938 3939 *) Bugfix: if names .domain.tld, .sub.domain.tld, and .domain-some.tld 3940 were defined, then the name .sub.domain.tld was matched by 3941 .domain.tld. 3942 3943 *) Bugfix: in transparency support in the ngx_http_image_filter_module. 3944 3945 *) Bugfix: in file AIO. 3946 3947 *) Bugfix: in X-Accel-Redirect usage; the bug had appeared in 0.8.11. 3948 3949 *) Bugfix: in embedded perl module; the bug had appeared in 0.8.11. 3950 3951 3952Changes with nginx 0.8.14 07 Sep 2009 3953 3954 *) Bugfix: an expired cached response might stick in the "UPDATING" 3955 state. 3956 3957 *) Bugfix: a segmentation fault might occur in worker process, if 3958 error_log was set to info or debug level. 3959 Thanks to Sergey Bochenkov. 3960 3961 *) Bugfix: in embedded perl module; the bug had appeared in 0.8.11. 3962 3963 *) Bugfix: an "error_page" directive did not redirect a 413 error; the 3964 bug had appeared in 0.6.10. 3965 3966 3967Changes with nginx 0.8.13 31 Aug 2009 3968 3969 *) Bugfix: in the "aio sendfile" directive; the bug had appeared in 3970 0.8.12. 3971 3972 *) Bugfix: nginx could not be built without the --with-file-aio option 3973 on FreeBSD; the bug had appeared in 0.8.12. 3974 3975 3976Changes with nginx 0.8.12 31 Aug 2009 3977 3978 *) Feature: the "sendfile" parameter in the "aio" directive on FreeBSD. 3979 3980 *) Bugfix: in try_files; the bug had appeared in 0.8.11. 3981 3982 *) Bugfix: in memcached; the bug had appeared in 0.8.11. 3983 3984 3985Changes with nginx 0.8.11 28 Aug 2009 3986 3987 *) Change: now directive "gzip_disable msie6" does not disable gzipping 3988 for MSIE 6.0 SV1. 3989 3990 *) Feature: file AIO support on FreeBSD and Linux. 3991 3992 *) Feature: the "directio_alignment" directive. 3993 3994 3995Changes with nginx 0.8.10 24 Aug 2009 3996 3997 *) Bugfix: memory leaks if GeoIP City database was used. 3998 3999 *) Bugfix: in copying temporary files to permanent storage area; the bug 4000 had appeared in 0.8.9. 4001 4002 4003Changes with nginx 0.8.9 17 Aug 2009 4004 4005 *) Feature: now the start cache loader runs in a separate process; this 4006 should improve large caches handling. 4007 4008 *) Feature: now temporary files and permanent storage area may reside at 4009 different file systems. 4010 4011 4012Changes with nginx 0.8.8 10 Aug 2009 4013 4014 *) Bugfix: in handling FastCGI headers split in records. 4015 4016 *) Bugfix: a segmentation fault occurred in worker process, if a request 4017 was handled in two proxied or FastCGIed locations and a caching was 4018 enabled in the first location; the bug had appeared in 0.8.7. 4019 4020 4021Changes with nginx 0.8.7 27 Jul 2009 4022 4023 *) Change: minimum supported OpenSSL version is 0.9.7. 4024 4025 *) Change: the "ask" parameter of the "ssl_verify_client" directive was 4026 changed to the "optional" parameter and now it checks a client 4027 certificate if it was offered. 4028 Thanks to Brice Figureau. 4029 4030 *) Feature: the $ssl_client_verify variable. 4031 Thanks to Brice Figureau. 4032 4033 *) Feature: the "ssl_crl" directive. 4034 Thanks to Brice Figureau. 4035 4036 *) Feature: the "proxy" parameter of the "geo" directive. 4037 4038 *) Feature: the "image_filter" directive supports variables for setting 4039 size. 4040 4041 *) Bugfix: the $ssl_client_cert variable usage corrupted memory; the bug 4042 had appeared in 0.7.7. 4043 Thanks to Sergey Zhuravlev. 4044 4045 *) Bugfix: "proxy_pass_header" and "fastcgi_pass_header" directives did 4046 not pass to a client the "X-Accel-Redirect", "X-Accel-Limit-Rate", 4047 "X-Accel-Buffering", and "X-Accel-Charset" lines from backend 4048 response header. 4049 Thanks to Maxim Dounin. 4050 4051 *) Bugfix: in handling "Last-Modified" and "Accept-Ranges" backend 4052 response header lines; the bug had appeared in 0.7.44. 4053 Thanks to Maxim Dounin. 4054 4055 *) Bugfix: the "[alert] zero size buf" error if subrequest returns an 4056 empty response; the bug had appeared in 0.8.5. 4057 4058 4059Changes with nginx 0.8.6 20 Jul 2009 4060 4061 *) Feature: the ngx_http_geoip_module. 4062 4063 *) Bugfix: XSLT filter may fail with message "not well formed XML 4064 document" for valid XML document. 4065 Thanks to Kuramoto Eiji. 4066 4067 *) Bugfix: now in MacOSX, Cygwin, and nginx/Windows locations given by a 4068 regular expression are always tested in case insensitive mode. 4069 4070 *) Bugfix: now nginx/Windows ignores trailing dots in URI. 4071 Thanks to Hugo Leisink. 4072 4073 *) Bugfix: name of file specified in --conf-path was not honored during 4074 installation; the bug had appeared in 0.6.6. 4075 Thanks to Maxim Dounin. 4076 4077 4078Changes with nginx 0.8.5 13 Jul 2009 4079 4080 *) Bugfix: now nginx allows underscores in a request method. 4081 4082 *) Bugfix: a 500 error code was returned for invalid login/password 4083 while HTTP Basic authentication on Windows. 4084 4085 *) Bugfix: ngx_http_perl_module responses did not work in subrequests. 4086 4087 *) Bugfix: in ngx_http_limit_req_module. 4088 Thanks to Maxim Dounin. 4089 4090 4091Changes with nginx 0.8.4 22 Jun 2009 4092 4093 *) Bugfix: nginx could not be built --without-http-cache; the bug had 4094 appeared in 0.8.3. 4095 4096 4097Changes with nginx 0.8.3 19 Jun 2009 4098 4099 *) Feature: the $upstream_cache_status variable. 4100 4101 *) Bugfix: nginx could not be built on MacOSX 10.6. 4102 4103 *) Bugfix: nginx could not be built --without-http-cache; the bug had 4104 appeared in 0.8.2. 4105 4106 *) Bugfix: a segmentation fault occurred in worker process, if a backend 4107 401 error was intercepted and the backend did not set the 4108 "WWW-Authenticate" response header line. 4109 Thanks to Eugene Mychlo. 4110 4111 4112Changes with nginx 0.8.2 15 Jun 2009 4113 4114 *) Bugfix: in open_file_cache and proxy/fastcgi cache interaction on 4115 start up. 4116 4117 *) Bugfix: open_file_cache might cache open file descriptors too long; 4118 the bug had appeared in 0.7.4. 4119 4120 4121Changes with nginx 0.8.1 08 Jun 2009 4122 4123 *) Feature: the "updating" parameter in "proxy_cache_use_stale" and 4124 "fastcgi_cache_use_stale" directives. 4125 4126 *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request 4127 header lines were passed to backend while caching if no 4128 "proxy_set_header" directive was used with any parameters. 4129 4130 *) Bugfix: the "Set-Cookie" and "P3P" response header lines were not 4131 hidden while caching if no "proxy_hide_header/fastcgi_hide_header" 4132 directives were used with any parameters. 4133 4134 *) Bugfix: the ngx_http_image_filter_module did not support GIF87a 4135 format. 4136 Thanks to Denis Ilyinyh. 4137 4138 *) Bugfix: nginx could not be built modules on Solaris 10 and early; the 4139 bug had appeared in 0.7.56. 4140 4141 4142Changes with nginx 0.8.0 02 Jun 2009 4143 4144 *) Feature: the "keepalive_requests" directive. 4145 4146 *) Feature: the "limit_rate_after" directive. 4147 Thanks to Ivan Debnar. 4148 4149 *) Bugfix: XLST filter did not work in subrequests. 4150 4151 *) Bugfix: in relative paths handling in nginx/Windows. 4152 4153 *) Bugfix: in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache 4154 in nginx/Windows. 4155 4156 *) Bugfix: in memory allocation error handling. 4157 Thanks to Maxim Dounin and Kirill A. Korinskiy. 4158 4159 4160Changes with nginx 0.7.59 25 May 2009 4161 4162 *) Feature: the "proxy_cache_methods" and "fastcgi_cache_methods" 4163 directives. 4164 4165 *) Bugfix: socket leak; the bug had appeared in 0.7.25. 4166 Thanks to Maxim Dounin. 4167 4168 *) Bugfix: a segmentation fault occurred in worker process, if a request 4169 had no body and the $request_body variable was used; 4170 the bug had appeared in 0.7.58. 4171 4172 *) Bugfix: the SSL modules might not built on Solaris and Linux; 4173 the bug had appeared in 0.7.56. 4174 4175 *) Bugfix: ngx_http_xslt_filter_module responses were not handled by 4176 SSI, charset, and gzip filters. 4177 4178 *) Bugfix: a "charset" directive did not set a charset to 4179 ngx_http_gzip_static_module responses. 4180 4181 4182Changes with nginx 0.7.58 18 May 2009 4183 4184 *) Feature: a "listen" directive of the mail proxy module supports IPv6. 4185 4186 *) Feature: the "image_filter_jpeg_quality" directive. 4187 4188 *) Feature: the "client_body_in_single_buffer" directive. 4189 4190 *) Feature: the $request_body variable. 4191 4192 *) Bugfix: in ngx_http_autoindex_module in file name links having a ":" 4193 symbol in the name. 4194 4195 *) Bugfix: "make upgrade" procedure did not work; the bug had appeared 4196 in 0.7.53. 4197 Thanks to Denis F. Latypoff. 4198 4199 4200Changes with nginx 0.7.57 12 May 2009 4201 4202 *) Bugfix: a floating-point fault occurred in worker process, if the 4203 ngx_http_image_filter_module errors were redirected to named 4204 location; the bug had appeared in 0.7.56. 4205 4206 4207Changes with nginx 0.7.56 11 May 2009 4208 4209 *) Feature: nginx/Windows supports IPv6 in a "listen" directive of the 4210 HTTP module. 4211 4212 *) Bugfix: in ngx_http_image_filter_module. 4213 4214 4215Changes with nginx 0.7.55 06 May 2009 4216 4217 *) Bugfix: the http_XXX parameters in "proxy_cache_use_stale" and 4218 "fastcgi_cache_use_stale" directives did not work. 4219 4220 *) Bugfix: fastcgi cache did not cache header only responses. 4221 4222 *) Bugfix: of "select() failed (9: Bad file descriptor)" error in 4223 nginx/Unix and "select() failed (10038: ...)" error in nginx/Windows. 4224 4225 *) Bugfix: a segmentation fault might occur in worker process, if an 4226 "debug_connection" directive was used; the bug had appeared in 4227 0.7.54. 4228 4229 *) Bugfix: fix ngx_http_image_filter_module building errors. 4230 4231 *) Bugfix: the files bigger than 2G could not be transferred using 4232 $r->sendfile. 4233 Thanks to Maxim Dounin. 4234 4235 4236Changes with nginx 0.7.54 01 May 2009 4237 4238 *) Feature: the ngx_http_image_filter_module. 4239 4240 *) Feature: the "proxy_ignore_headers" and "fastcgi_ignore_headers" 4241 directives. 4242 4243 *) Bugfix: a segmentation fault might occur in worker process, if an 4244 "open_file_cache_errors off" directive was used; the bug had appeared 4245 in 0.7.53. 4246 4247 *) Bugfix: the "port_in_redirect off" directive did not work; the bug 4248 had appeared in 0.7.39. 4249 4250 *) Bugfix: improve handling of "select" method errors. 4251 4252 *) Bugfix: of "select() failed (10022: ...)" error in nginx/Windows. 4253 4254 *) Bugfix: in error text descriptions in nginx/Windows; the bug had 4255 appeared in 0.7.53. 4256 4257 4258Changes with nginx 0.7.53 27 Apr 2009 4259 4260 *) Change: now a log set by --error-log-path is created from the very 4261 start-up. 4262 4263 *) Feature: now the start up errors and warnings are outputted to an 4264 error_log and stderr. 4265 4266 *) Feature: the empty --prefix= configure parameter forces nginx to use 4267 a directory where it was run as prefix. 4268 4269 *) Feature: the -p switch. 4270 4271 *) Feature: the -s switch on Unix platforms. 4272 4273 *) Feature: the -? and -h switches. 4274 Thanks to Jerome Loyet. 4275 4276 *) Feature: now switches may be set in condensed form. 4277 4278 *) Bugfix: nginx/Windows did not work if configuration file was given by 4279 the -c switch. 4280 4281 *) Bugfix: temporary files might be not removed if the "proxy_store", 4282 "fastcgi_store", "proxy_cache", or "fastcgi_cache" were used. 4283 Thanks to Maxim Dounin. 4284 4285 *) Bugfix: an incorrect value was passed to mail proxy authentication 4286 server in "Auth-Method" header line; the bug had appeared 4287 in 0.7.34. 4288 Thanks to Simon Lecaille. 4289 4290 *) Bugfix: system error text descriptions were not logged on Linux; 4291 the bug had appeared in 0.7.45. 4292 4293 *) Bugfix: the "fastcgi_cache_min_uses" directive did not work. 4294 Thanks to Andrew Vorobyoff. 4295 4296 4297Changes with nginx 0.7.52 20 Apr 2009 4298 4299 *) Feature: the first native Windows binary release. 4300 4301 *) Bugfix: in processing HEAD method while caching. 4302 4303 *) Bugfix: in processing the "If-Modified-Since", "If-Range", etc. 4304 client request header lines while caching. 4305 4306 *) Bugfix: now the "Set-Cookie" and "P3P" header lines are hidden in 4307 cacheable responses. 4308 4309 *) Bugfix: if nginx was built with the ngx_http_perl_module and with a 4310 perl which supports threads, then during a master process exit the 4311 message "panic: MUTEX_LOCK" might be issued. 4312 4313 *) Bugfix: nginx could not be built --without-http-cache; the bug had 4314 appeared in 0.7.48. 4315 4316 *) Bugfix: nginx could not be built on platforms different from i386, 4317 amd64, sparc, and ppc; the bug had appeared in 0.7.42. 4318 4319 4320Changes with nginx 0.7.51 12 Apr 2009 4321 4322 *) Feature: the "try_files" directive supports a response code in the 4323 fallback parameter. 4324 4325 *) Feature: now any response code can be used in the "return" directive. 4326 4327 *) Bugfix: the "error_page" directive made an external redirect without 4328 query string; the bug had appeared in 0.7.44. 4329 4330 *) Bugfix: if servers listened on several defined explicitly addresses, 4331 then virtual servers might not work; the bug had appeared in 0.7.39. 4332 4333 4334Changes with nginx 0.7.50 06 Apr 2009 4335 4336 *) Bugfix: the $arg_... variables did not work; the bug had appeared in 4337 0.7.49. 4338 4339 4340Changes with nginx 0.7.49 06 Apr 2009 4341 4342 *) Bugfix: a segmentation fault might occur in worker process, if the 4343 $arg_... variables were used; the bug had appeared in 0.7.48. 4344 4345 4346Changes with nginx 0.7.48 06 Apr 2009 4347 4348 *) Feature: the "proxy_cache_key" directive. 4349 4350 *) Bugfix: now nginx takes into account the "X-Accel-Expires", 4351 "Expires", and "Cache-Control" header lines in a backend response. 4352 4353 *) Bugfix: now nginx caches responses for the GET requests only. 4354 4355 *) Bugfix: the "fastcgi_cache_key" directive was not inherited. 4356 4357 *) Bugfix: the $arg_... variables did not work with SSI subrequests. 4358 Thanks to Maxim Dounin. 4359 4360 *) Bugfix: nginx could not be built with uclibc library. 4361 Thanks to Timothy Redaelli. 4362 4363 *) Bugfix: nginx could not be built on OpenBSD; the bug had 4364 appeared in 0.7.46. 4365 4366 4367Changes with nginx 0.7.47 01 Apr 2009 4368 4369 *) Bugfix: nginx could not be built on FreeBSD 6 and early versions; the 4370 bug had appeared in 0.7.46. 4371 4372 *) Bugfix: nginx could not be built on MacOSX; the bug had 4373 appeared in 0.7.46. 4374 4375 *) Bugfix: if the "max_size" parameter was set, then the cache manager 4376 might purge a whole cache; the bug had appeared in 0.7.46. 4377 4378 *) Change: a segmentation fault might occur in worker process, if the 4379 "proxy_cache"/"fastcgi_cache" and the "proxy_cache_valid"/ 4380 "fastcgi_cache_valid" were set on different levels; the bug had 4381 appeared in 0.7.46. 4382 4383 *) Bugfix: a segmentation fault might occur in worker process, if a 4384 request was redirected to a proxied or FastCGI server via error_page 4385 or try_files; the bug had appeared in 0.7.44. 4386 4387 4388Changes with nginx 0.7.46 30 Mar 2009 4389 4390 *) Bugfix: the previous release tarball was incorrect. 4391 4392 4393Changes with nginx 0.7.45 30 Mar 2009 4394 4395 *) Change: now the "proxy_cache" and the "proxy_cache_valid" directives 4396 can be set on different levels. 4397 4398 *) Change: the "clean_time" parameter of the "proxy_cache_path" 4399 directive is canceled. 4400 4401 *) Feature: the "max_size" parameter of the "proxy_cache_path" 4402 directive. 4403 4404 *) Feature: the ngx_http_fastcgi_module preliminary cache support. 4405 4406 *) Feature: now on shared memory allocation errors directive and zone 4407 names are logged. 4408 4409 *) Bugfix: the directive "add_header last-modified ''" did not delete a 4410 "Last-Modified" response header line; the bug had appeared in 0.7.44. 4411 4412 *) Bugfix: a relative path in the "auth_basic_user_file" directive given 4413 without variables did not work; the bug had appeared in 0.7.44. 4414 Thanks to Jerome Loyet. 4415 4416 *) Bugfix: in an "alias" directive given using variables without 4417 references to captures of regular expressions; the bug had appeared 4418 in 0.7.42. 4419 4420 4421Changes with nginx 0.7.44 23 Mar 2009 4422 4423 *) Feature: the ngx_http_proxy_module preliminary cache support. 4424 4425 *) Feature: the --with-pcre option in the configure. 4426 4427 *) Feature: the "try_files" directive is now allowed on the server block 4428 level. 4429 4430 *) Bugfix: the "try_files" directive handled incorrectly a query string 4431 in a fallback parameter. 4432 4433 *) Bugfix: the "try_files" directive might test incorrectly directories. 4434 4435 *) Bugfix: if there was a single server for given address:port pair, 4436 then captures in regular expressions in a "server_name" directive did 4437 not work. 4438 4439 4440Changes with nginx 0.7.43 18 Mar 2009 4441 4442 *) Bugfix: a request was handled incorrectly, if a "root" directive used 4443 variables; the bug had appeared in 0.7.42. 4444 4445 *) Bugfix: if a server listened on wildcard address, then the 4446 $server_addr variable value was "0.0.0.0"; the bug had appeared in 4447 0.7.36. 4448 4449 4450Changes with nginx 0.7.42 16 Mar 2009 4451 4452 *) Change: now the "Invalid argument" error returned by 4453 setsockopt(TCP_NODELAY) on Solaris, is ignored. 4454 4455 *) Change: now if a file specified in a "auth_basic_user_file" directive 4456 is absent, then the 403 error is returned instead of the 500 one. 4457 4458 *) Feature: the "auth_basic_user_file" directive supports variables. 4459 Thanks to Kirill A. Korinskiy. 4460 4461 *) Feature: the "listen" directive supports the "ipv6only" parameter. 4462 Thanks to Zhang Hua. 4463 4464 *) Bugfix: in an "alias" directive with references to captures of 4465 regular expressions; the bug had appeared in 0.7.40. 4466 4467 *) Bugfix: compatibility with Tru64 UNIX. 4468 Thanks to Dustin Marquess. 4469 4470 *) Bugfix: nginx could not be built without PCRE library; the bug had 4471 appeared in 0.7.41. 4472 4473 4474Changes with nginx 0.7.41 11 Mar 2009 4475 4476 *) Bugfix: a segmentation fault might occur in worker process, if a 4477 "server_name" or a "location" directives had captures in regular 4478 expressions; the issue had appeared in 0.7.40. 4479 Thanks to Vladimir Sopot. 4480 4481 4482Changes with nginx 0.7.40 09 Mar 2009 4483 4484 *) Feature: the "location" directive supports captures in regular 4485 expressions. 4486 4487 *) Feature: an "alias" directive with capture references may be used 4488 inside a location given by a regular expression with captures. 4489 4490 *) Feature: the "server_name" directive supports captures in regular 4491 expressions. 4492 4493 *) Workaround: the ngx_http_autoindex_module did not show the trailing 4494 slash in directories on XFS filesystem; the issue had appeared in 4495 0.7.15. 4496 Thanks to Dmitry Kuzmenko. 4497 4498 4499Changes with nginx 0.7.39 02 Mar 2009 4500 4501 *) Bugfix: large response with SSI might hang, if gzipping was enabled; 4502 the bug had appeared in 0.7.28. 4503 Thanks to Artem Bokhan. 4504 4505 *) Bugfix: a segmentation fault might occur in worker process, if short 4506 static variants are used in a "try_files" directive. 4507 4508 4509Changes with nginx 0.7.38 23 Feb 2009 4510 4511 *) Feature: authentication failures logging. 4512 4513 *) Bugfix: name/password in auth_basic_user_file were ignored after odd 4514 number of empty lines. 4515 Thanks to Alexander Zagrebin. 4516 4517 *) Bugfix: a segmentation fault occurred in a master process, if long 4518 path was used in unix domain socket; the bug had appeared in 0.7.36. 4519 4520 4521Changes with nginx 0.7.37 21 Feb 2009 4522 4523 *) Bugfix: directives using upstreams did not work; the bug had appeared 4524 in 0.7.36. 4525 4526 4527Changes with nginx 0.7.36 21 Feb 2009 4528 4529 *) Feature: a preliminary IPv6 support; the "listen" directive of the 4530 HTTP module supports IPv6. 4531 4532 *) Bugfix: the $ancient_browser variable did not work for browsers 4533 preset by a "modern_browser" directives. 4534 4535 4536Changes with nginx 0.7.35 16 Feb 2009 4537 4538 *) Bugfix: a "ssl_engine" directive did not use a SSL-accelerator for 4539 asymmetric ciphers. 4540 Thanks to Marcin Gozdalik. 4541 4542 *) Bugfix: a "try_files" directive set MIME type depending on an 4543 original request extension. 4544 4545 *) Bugfix: "*domain.tld" names were handled incorrectly in 4546 "server_name", "valid_referers", and "map" directives, if 4547 ".domain.tld" and ".subdomain.domain.tld" wildcards were used; 4548 the bug had appeared in 0.7.9. 4549 4550 4551Changes with nginx 0.7.34 10 Feb 2009 4552 4553 *) Feature: the "off" parameter of the "if_modified_since" directive. 4554 4555 *) Feature: now nginx sends an HELO/EHLO command after a XCLIENT 4556 command. 4557 Thanks to Maxim Dounin. 4558 4559 *) Feature: Microsoft specific "AUTH LOGIN with User Name" mode support 4560 in mail proxy server. 4561 Thanks to Maxim Dounin. 4562 4563 *) Bugfix: in a redirect rewrite directive original arguments were 4564 concatenated with new arguments by a "?" rather than an "&"; 4565 the bug had appeared in 0.1.18. 4566 Thanks to Maxim Dounin. 4567 4568 *) Bugfix: nginx could not be built on AIX. 4569 4570 4571Changes with nginx 0.7.33 02 Feb 2009 4572 4573 *) Bugfix: a double response might be returned if the epoll or rtsig 4574 methods are used and a redirect was returned to a request with body. 4575 Thanks to Eden Li. 4576 4577 *) Bugfix: the $sent_http_location variable was empty for some redirects 4578 types. 4579 4580 *) Bugfix: a segmentation fault might occur in worker process if 4581 "resolver" directive was used in SMTP proxy. 4582 4583 4584Changes with nginx 0.7.32 26 Jan 2009 4585 4586 *) Feature: now a directory existence testing can be set explicitly in 4587 the "try_files" directive. 4588 4589 *) Bugfix: fastcgi_store stored files not always. 4590 4591 *) Bugfix: in geo ranges. 4592 4593 *) Bugfix: in shared memory allocations if nginx was built without 4594 debugging. 4595 Thanks to Andrey Kvasov. 4596 4597 4598Changes with nginx 0.7.31 19 Jan 2009 4599 4600 *) Change: now the "try_files" directive tests files only and ignores 4601 directories. 4602 4603 *) Feature: the "fastcgi_split_path_info" directive. 4604 4605 *) Bugfixes in an "Expect" request header line support. 4606 4607 *) Bugfixes in geo ranges. 4608 4609 *) Bugfix: in a miss case ngx_http_memcached_module returned the "END" 4610 line as response body instead of default 404 page body; the bug had 4611 appeared in 0.7.18. 4612 Thanks to Maxim Dounin. 4613 4614 *) Bugfix: while SMTP proxying nginx issued message "250 2.0.0 OK" 4615 instead of "235 2.0.0 OK"; the bug had appeared in 0.7.22. 4616 Thanks to Maxim Dounin. 4617 4618 4619Changes with nginx 0.7.30 24 Dec 2008 4620 4621 *) Bugfix: a segmentation fault occurred in worker process, if variables 4622 were used in the "fastcgi_pass" or "proxy_pass" directives and host 4623 name must be resolved; the bug had appeared in 0.7.29. 4624 4625 4626Changes with nginx 0.7.29 24 Dec 2008 4627 4628 *) Bugfix: the "fastcgi_pass" and "proxy_pass" directives did not 4629 support variables if unix domain sockets were used. 4630 4631 *) Bugfixes in subrequest processing; the bugs had appeared in 0.7.25. 4632 4633 *) Bugfix: a "100 Continue" response was issued for HTTP/1.0 requests; 4634 Thanks to Maxim Dounin. 4635 4636 *) Bugfix: in memory allocation in the ngx_http_gzip_filter_module on 4637 Cygwin. 4638 4639 4640Changes with nginx 0.7.28 22 Dec 2008 4641 4642 *) Change: in memory allocation in the ngx_http_gzip_filter_module. 4643 4644 *) Change: the default "gzip_buffers" directive values have been changed 4645 to 32 4k or 16 8k from 4 4k/8k. 4646 4647 4648Changes with nginx 0.7.27 15 Dec 2008 4649 4650 *) Feature: the "try_files" directive. 4651 4652 *) Feature: variables support in the "fastcgi_pass" directive. 4653 4654 *) Feature: now the $geo variable may get an address from a variable. 4655 Thanks to Andrei Nigmatulin. 4656 4657 *) Feature: now a location's modifier may be used without space before 4658 name. 4659 4660 *) Feature: the $upstream_response_length variable. 4661 4662 *) Bugfix: now a "add_header" directive does not add an empty value. 4663 4664 *) Bugfix: if zero length static file was requested, then nginx just 4665 closed connection; the bug had appeared in 0.7.25. 4666 4667 *) Bugfix: a MOVE method could not move file in non-existent directory. 4668 4669 *) Bugfix: a segmentation fault occurred in worker process, if no one 4670 named location was defined in server, but some one was used in an 4671 error_page directive. 4672 Thanks to Sergey Bochenkov. 4673 4674 4675Changes with nginx 0.7.26 08 Dec 2008 4676 4677 *) Bugfix: in subrequest processing; the bug had appeared in 0.7.25. 4678 4679 4680Changes with nginx 0.7.25 08 Dec 2008 4681 4682 *) Change: in subrequest processing. 4683 4684 *) Change: now POSTs without "Content-Length" header line are allowed. 4685 4686 *) Bugfix: now the "limit_req" and "limit_conn" directives log a 4687 prohibition reason. 4688 4689 *) Bugfix: in the "delete" parameter of the "geo" directive. 4690 4691 4692Changes with nginx 0.7.24 01 Dec 2008 4693 4694 *) Feature: the "if_modified_since" directive. 4695 4696 *) Bugfix: nginx did not process a FastCGI server response, if the 4697 server send too many messages to stderr before response. 4698 4699 *) Bugfix: the "$cookie_..." variables did not work in the SSI and the 4700 perl module. 4701 4702 4703Changes with nginx 0.7.23 27 Nov 2008 4704 4705 *) Feature: the "delete" and "ranges" parameters in the "geo" directive. 4706 4707 *) Feature: speeding up loading of geo base with large number of values. 4708 4709 *) Feature: decrease of memory required for geo base load. 4710 4711 4712Changes with nginx 0.7.22 20 Nov 2008 4713 4714 *) Feature: the "none" parameter in the "smtp_auth" directive. 4715 Thanks to Maxim Dounin. 4716 4717 *) Feature: the "$cookie_..." variables. 4718 4719 *) Bugfix: the "directio" directive did not work in XFS filesystem. 4720 4721 *) Bugfix: the resolver did not understand big DNS responses. 4722 Thanks to Zyb. 4723 4724 4725Changes with nginx 0.7.21 11 Nov 2008 4726 4727 *) Changes in the ngx_http_limit_req_module. 4728 4729 *) Feature: the EXSLT support in the ngx_http_xslt_module. 4730 Thanks to Denis F. Latypoff. 4731 4732 *) Workaround: compatibility with glibc 2.3. 4733 Thanks to Eric Benson and Maxim Dounin. 4734 4735 *) Bugfix: nginx could not run on MacOSX 10.4 and earlier; the bug had 4736 appeared in 0.7.6. 4737 4738 4739Changes with nginx 0.7.20 10 Nov 2008 4740 4741 *) Changes in the ngx_http_gzip_filter_module. 4742 4743 *) Feature: the ngx_http_limit_req_module. 4744 4745 *) Bugfix: worker processes might exit on a SIGBUS signal on sparc and 4746 ppc platforms; the bug had appeared in 0.7.3. 4747 Thanks to Maxim Dounin. 4748 4749 *) Bugfix: the "proxy_pass http://host/some:uri" directives did not 4750 work; the bug had appeared in 0.7.12. 4751 4752 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" 4753 error. 4754 4755 *) Bugfix: the ngx_http_secure_link_module did not work inside 4756 locations, whose names are less than 3 characters. 4757 4758 *) Bugfix: $server_addr variable might have no value. 4759 4760 4761Changes with nginx 0.7.19 13 Oct 2008 4762 4763 *) Bugfix: version number update. 4764 4765 4766Changes with nginx 0.7.18 13 Oct 2008 4767 4768 *) Change: the "underscores_in_headers" directive; now nginx does not 4769 allows underscores in a client request header line names. 4770 4771 *) Feature: the ngx_http_secure_link_module. 4772 4773 *) Feature: the "real_ip_header" directive supports any header. 4774 4775 *) Feature: the "log_subrequest" directive. 4776 4777 *) Feature: the $realpath_root variable. 4778 4779 *) Feature: the "http_502" and "http_504" parameters of the 4780 "proxy_next_upstream" directive. 4781 4782 *) Bugfix: the "http_503" parameter of the "proxy_next_upstream" or 4783 "fastcgi_next_upstream" directives did not work. 4784 4785 *) Bugfix: nginx might send a "Transfer-Encoding: chunked" header line 4786 for HEAD requests. 4787 4788 *) Bugfix: now accept threshold depends on worker_connections. 4789 4790 4791Changes with nginx 0.7.17 15 Sep 2008 4792 4793 *) Feature: now the "directio" directive works on Linux. 4794 4795 *) Feature: the $pid variable. 4796 4797 *) Bugfix: the "directio" optimization that had appeared in 0.7.15 did 4798 not work with open_file_cache. 4799 4800 *) Bugfix: the "access_log" with variables did not work on Linux; the 4801 bug had appeared in 0.7.7. 4802 4803 *) Bugfix: the ngx_http_charset_module did not understand quoted charset 4804 name received from backend. 4805 4806 4807Changes with nginx 0.7.16 08 Sep 2008 4808 4809 *) Bugfix: nginx could not be built on 64-bit platforms; the bug had 4810 appeared in 0.7.15. 4811 4812 4813Changes with nginx 0.7.15 08 Sep 2008 4814 4815 *) Feature: the ngx_http_random_index_module. 4816 4817 *) Feature: the "directio" directive has been optimized for file 4818 requests starting from arbitrary position. 4819 4820 *) Feature: the "directio" directive turns off sendfile if it is 4821 necessary. 4822 4823 *) Feature: now nginx allows underscores in a client request header line 4824 names. 4825 4826 4827Changes with nginx 0.7.14 01 Sep 2008 4828 4829 *) Change: now the ssl_certificate and ssl_certificate_key directives 4830 have no default values. 4831 4832 *) Feature: the "listen" directive supports the "ssl" parameter. 4833 4834 *) Feature: now nginx takes into account a time zone change while 4835 reconfiguration on FreeBSD and Linux. 4836 4837 *) Bugfix: the "listen" directive parameters such as "backlog", 4838 "rcvbuf", etc. were not set, if a default server was not the first 4839 one. 4840 4841 *) Bugfix: if URI part captured by a "rewrite" directive was used as a 4842 query string, then the query string was not escaped. 4843 4844 *) Bugfix: configuration file validity test improvements. 4845 4846 4847Changes with nginx 0.7.13 26 Aug 2008 4848 4849 *) Bugfix: nginx could not be built on Linux and Solaris; the bug had 4850 appeared in 0.7.12. 4851 4852 4853Changes with nginx 0.7.12 26 Aug 2008 4854 4855 *) Feature: the "server_name" directive supports empty name "". 4856 4857 *) Feature: the "gzip_disable" directive supports special "msie6" mask. 4858 4859 *) Bugfix: if the "max_fails=0" parameter was used in upstream with 4860 several servers, then a worker process exited on a SIGFPE signal. 4861 Thanks to Maxim Dounin. 4862 4863 *) Bugfix: a request body was dropped while redirection via an 4864 "error_page" directive. 4865 4866 *) Bugfix: a full response was returned for request method HEAD while 4867 redirection via an "error_page" directive. 4868 4869 *) Bugfix: the $r->header_in() method did not return value of the 4870 "Host", "User-Agent", and "Connection" request header lines; the bug 4871 had appeared in 0.7.0. 4872 4873 4874Changes with nginx 0.7.11 18 Aug 2008 4875 4876 *) Change: now ngx_http_charset_module does not work by default with 4877 text/css MIME type. 4878 4879 *) Feature: now nginx returns the 405 status code for POST method 4880 requesting a static file only if the file exists. 4881 4882 *) Feature: the "proxy_ssl_session_reuse" directive. 4883 4884 *) Bugfix: a "proxy_pass" directive without URI part might use original 4885 request after the "X-Accel-Redirect" redirection was used. 4886 4887 *) Bugfix: if a directory has search only rights and the first index 4888 file was absent, then nginx returned the 500 status code. 4889 4890 *) Bugfix: in inclusive locations; the bugs had appeared in 0.7.1. 4891 4892 4893Changes with nginx 0.7.10 13 Aug 2008 4894 4895 *) Bugfix: in the "addition_types", "charset_types", "gzip_types", 4896 "ssi_types", "sub_filter_types", and "xslt_types" directives; the 4897 bugs had appeared in 0.7.9. 4898 4899 *) Bugfix: of recursive error_page for 500 status code. 4900 4901 *) Bugfix: now the ngx_http_realip_module sets address not for whole 4902 keepalive connection, but for each request passed via the connection. 4903 4904 4905Changes with nginx 0.7.9 12 Aug 2008 4906 4907 *) Change: now ngx_http_charset_module works by default with following 4908 MIME types: text/html, text/css, text/xml, text/plain, 4909 text/vnd.wap.wml, application/x-javascript, and application/rss+xml. 4910 4911 *) Feature: the "charset_types" and "addition_types" directives. 4912 4913 *) Feature: now the "gzip_types", "ssi_types", and "sub_filter_types" 4914 directives use hash. 4915 4916 *) Feature: the ngx_cpp_test_module. 4917 4918 *) Feature: the "expires" directive supports daily time. 4919 4920 *) Feature: the ngx_http_xslt_module improvements and bug fixing. 4921 Thanks to Denis F. Latypoff and Maxim Dounin. 4922 4923 *) Bugfix: the "log_not_found" directive did not work for index files 4924 tests. 4925 4926 *) Bugfix: HTTPS connections might hang, if kqueue, epoll, rtsig, or 4927 eventport methods were used; the bug had appeared in 0.7.7. 4928 4929 *) Bugfix: if the "server_name", "valid_referers", and "map" directives 4930 used an "*.domain.tld" wildcard and exact name "domain.tld" was not 4931 set, then the exact name was matched by the wildcard; the bug had 4932 appeared in 0.3.18. 4933 4934 4935Changes with nginx 0.7.8 04 Aug 2008 4936 4937 *) Feature: the ngx_http_xslt_module. 4938 4939 *) Feature: the "$arg_..." variables. 4940 4941 *) Feature: Solaris directio support. 4942 Thanks to Ivan Debnar. 4943 4944 *) Bugfix: now if FastCGI server sends a "Location" header line without 4945 status line, then nginx uses 302 status code. 4946 Thanks to Maxim Dounin. 4947 4948 4949Changes with nginx 0.7.7 30 Jul 2008 4950 4951 *) Change: now the EAGAIN error returned by connect() is not considered 4952 as temporary error. 4953 4954 *) Change: now the $ssl_client_cert variable value is a certificate with 4955 TAB character intended before each line except first one; an 4956 unchanged certificate is available in the $ssl_client_raw_cert 4957 variable. 4958 4959 *) Feature: the "ask" parameter in the "ssl_verify_client" directive. 4960 4961 *) Feature: byte-range processing improvements. 4962 Thanks to Maxim Dounin. 4963 4964 *) Feature: the "directio" directive. 4965 Thanks to Jiang Hong. 4966 4967 *) Feature: MacOSX 10.5 sendfile() support. 4968 4969 *) Bugfix: now in MacOSX and Cygwin locations are tested in case 4970 insensitive mode; however, the compare is provided by single-byte 4971 locales only. 4972 4973 *) Bugfix: mail proxy SSL connections hanged, if select, poll, or 4974 /dev/poll methods were used. 4975 4976 *) Bugfix: UTF-8 encoding usage in the ngx_http_autoindex_module. 4977 4978 4979Changes with nginx 0.7.6 07 Jul 2008 4980 4981 *) Bugfix: now if variables are used in the "access_log" directive a 4982 request root existence is always tested. 4983 4984 *) Bugfix: the ngx_http_flv_module did not support several values in a 4985 query string. 4986 4987 4988Changes with nginx 0.7.5 01 Jul 2008 4989 4990 *) Bugfixes in variables support in the "access_log" directive; the bugs 4991 had appeared in 0.7.4. 4992 4993 *) Bugfix: nginx could not be built --without-http_gzip_module; the bug 4994 had appeared in 0.7.3. 4995 Thanks to Kirill A. Korinskiy. 4996 4997 *) Bugfix: if sub_filter and SSI were used together, then responses 4998 might were transferred incorrectly. 4999 5000 5001Changes with nginx 0.7.4 30 Jun 2008 5002 5003 *) Feature: variables support in the "access_log" directive. 5004 5005 *) Feature: the "open_log_file_cache" directive. 5006 5007 *) Feature: the -g switch. 5008 5009 *) Feature: the "Expect" request header line support. 5010 5011 *) Bugfix: large SSI inclusions might be truncated. 5012 5013 5014Changes with nginx 0.7.3 23 Jun 2008 5015 5016 *) Change: the "rss" extension MIME type has been changed to 5017 "application/rss+xml". 5018 5019 *) Change: now the "gzip_vary" directive turned on issues a 5020 "Vary: Accept-Encoding" header line for uncompressed responses too. 5021 5022 *) Feature: now the "rewrite" directive does a redirect automatically if 5023 the "https://" protocol is used. 5024 5025 *) Bugfix: the "proxy_pass" directive did not work with the HTTPS 5026 protocol; the bug had appeared in 0.6.9. 5027 5028 5029Changes with nginx 0.7.2 16 Jun 2008 5030 5031 *) Feature: now nginx supports EDH key exchange ciphers. 5032 5033 *) Feature: the "ssl_dhparam" directive. 5034 5035 *) Feature: the $ssl_client_cert variable. 5036 Thanks to Manlio Perillo. 5037 5038 *) Bugfix: after changing URI via a "rewrite" directive nginx did not 5039 search a new location; the bug had appeared in 0.7.1. 5040 Thanks to Maxim Dounin. 5041 5042 *) Bugfix: nginx could not be built without PCRE library; the bug had 5043 appeared in 0.7.1. 5044 5045 *) Bugfix: when a request to a directory was redirected with the slash 5046 added, nginx dropped a query string from the original request. 5047 5048 5049Changes with nginx 0.7.1 26 May 2008 5050 5051 *) Change: now locations are searched in a tree. 5052 5053 *) Change: the "optimize_server_names" directive was canceled due to the 5054 "server_name_in_redirect" directive introduction. 5055 5056 *) Change: some long deprecated directives are not supported anymore. 5057 5058 *) Change: the "none" parameter in the "ssl_session_cache" directive; 5059 now this is default parameter. 5060 Thanks to Rob Mueller. 5061 5062 *) Bugfix: worker processes might not catch reconfiguration and log 5063 rotation signals. 5064 5065 *) Bugfix: nginx could not be built on latest Fedora 9 Linux. 5066 Thanks to Roxis. 5067 5068 5069Changes with nginx 0.7.0 19 May 2008 5070 5071 *) Change: now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX 5072 in an access_log. 5073 Thanks to Maxim Dounin. 5074 5075 *) Change: now nginx allows several "Host" request header line. 5076 5077 *) Feature: the "modified" flag in the "expires" directive. 5078 5079 *) Feature: the $uid_got and $uid_set variables may be used at any 5080 request processing stage. 5081 5082 *) Feature: the $hostname variable. 5083 Thanks to Andrei Nigmatulin. 5084 5085 *) Feature: DESTDIR support. 5086 Thanks to Todd A. Fisher and Andras Voroskoi. 5087 5088 *) Bugfix: a segmentation fault might occur in worker process on Linux, 5089 if keepalive was enabled. 5090 5091 5092Changes with nginx 0.6.31 12 May 2008 5093 5094 *) Bugfix: nginx did not process FastCGI response if header was at the 5095 end of FastCGI record; the bug had appeared in 0.6.2. 5096 Thanks to Sergey Serov. 5097 5098 *) Bugfix: a segmentation fault might occur in worker process if a file 5099 was deleted and the "open_file_cache_errors" directive was off. 5100 5101 5102Changes with nginx 0.6.30 29 Apr 2008 5103 5104 *) Change: now if an "include" directive pattern does not match any 5105 file, then nginx does not issue an error. 5106 5107 *) Feature: now the time in directives may be specified without spaces, 5108 for example, "1h50m". 5109 5110 *) Bugfix: memory leaks if the "ssl_verify_client" directive was on. 5111 Thanks to Chavelle Vincent. 5112 5113 *) Bugfix: the "sub_filter" directive might set text to change into 5114 output. 5115 5116 *) Bugfix: the "error_page" directive did not take into account 5117 arguments in redirected URI. 5118 5119 *) Bugfix: now nginx always opens files in binary mode under Cygwin. 5120 5121 *) Bugfix: nginx could not be built on OpenBSD; the bug had appeared in 5122 0.6.15. 5123 5124 5125Changes with nginx 0.6.29 18 Mar 2008 5126 5127 *) Feature: the ngx_google_perftools_module. 5128 5129 *) Bugfix: the ngx_http_perl_module could not be built on 64-bit 5130 platforms; the bug had appeared in 0.6.27. 5131 5132 5133Changes with nginx 0.6.28 13 Mar 2008 5134 5135 *) Bugfix: the rtsig method could not be built; the bug had appeared in 5136 0.6.27. 5137 5138 5139Changes with nginx 0.6.27 12 Mar 2008 5140 5141 *) Change: now by default the rtsig method is not built on 5142 Linux 2.6.18+. 5143 5144 *) Change: now a request method is not changed while redirection to a 5145 named location via an "error_page" directive. 5146 5147 *) Feature: the "resolver" and "resolver_timeout" directives in SMTP 5148 proxy. 5149 5150 *) Feature: the "post_action" directive supports named locations. 5151 5152 *) Bugfix: a segmentation fault occurred in worker process, if a request 5153 was redirected from proxy, FastCGI, or memcached location to static 5154 named locations. 5155 5156 *) Bugfix: browsers did not repeat SSL handshake if there is no valid 5157 client certificate in first handshake. 5158 Thanks to Alexander V. Inyukhin. 5159 5160 *) Bugfix: if response code 495-497 was redirected via an "error_page" 5161 directive without code change, then nginx tried to allocate too many 5162 memory. 5163 5164 *) Bugfix: memory leak in long-lived non buffered connections. 5165 5166 *) Bugfix: memory leak in resolver. 5167 5168 *) Bugfix: a segmentation fault occurred in worker process, if a request 5169 was redirected from proxy, FastCGI, or memcached location to static 5170 named locations. 5171 5172 *) Bugfix: in the $proxy_host and $proxy_port variables caching. 5173 Thanks to Sergey Bochenkov. 5174 5175 *) Bugfix: a "proxy_pass" directive with variables used incorrectly the 5176 same port as in another "proxy_pass" directive with the same host 5177 name and without variables. 5178 Thanks to Sergey Bochenkov. 5179 5180 *) Bugfix: an alert "sendmsg() failed (9: Bad file descriptor)" on some 5181 64-bit platforms while reconfiguration. 5182 5183 *) Bugfix: a segmentation fault occurred in worker process, if empty 5184 stub block was used second time in SSI. 5185 5186 *) Bugfix: in copying URI part contained escaped symbols into arguments. 5187 5188 5189Changes with nginx 0.6.26 11 Feb 2008 5190 5191 *) Bugfix: the "proxy_store" and "fastcgi_store" directives did not 5192 check a response length. 5193 5194 *) Bugfix: a segmentation fault occurred in worker process, if big value 5195 was used in a "expires" directive. 5196 Thanks to Joaquin Cuenca Abela. 5197 5198 *) Bugfix: nginx incorrectly detected cache line size on Pentium 4. 5199 Thanks to Gena Makhomed. 5200 5201 *) Bugfix: in proxied or FastCGI subrequests a client original method 5202 was used instead of the GET method. 5203 5204 *) Bugfix: socket leak in HTTPS mode if deferred accept was used. 5205 Thanks to Ben Maurer. 5206 5207 *) Bugfix: nginx issued the bogus error message "SSL_shutdown() failed 5208 (SSL: )"; the bug had appeared in 0.6.23. 5209 5210 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" 5211 error; the bug had appeared in 0.6.23. 5212 5213 5214Changes with nginx 0.6.25 08 Jan 2008 5215 5216 *) Change: now the "server_name_in_redirect" directive is used instead 5217 of the "server_name" directive's special "*" parameter. 5218 5219 *) Change: now wildcard and regex names can be used as main name in a 5220 "server_name" directive. 5221 5222 *) Change: the "satisfy_any" directive was replaced by the "satisfy" 5223 directive. 5224 5225 *) Workaround: old worker processes might hog CPU after reconfiguration 5226 if they was run under Linux OpenVZ. 5227 5228 *) Feature: the "min_delete_depth" directive. 5229 5230 *) Bugfix: the COPY and MOVE methods did not work with single files. 5231 5232 *) Bugfix: the ngx_http_gzip_static_module did not allow the 5233 ngx_http_dav_module to work; the bug had appeared in 0.6.23. 5234 5235 *) Bugfix: socket leak in HTTPS mode if deferred accept was used. 5236 Thanks to Ben Maurer. 5237 5238 *) Bugfix: nginx could not be built without PCRE library; the bug had 5239 appeared in 0.6.23. 5240 5241 5242Changes with nginx 0.6.24 27 Dec 2007 5243 5244 *) Bugfix: a segmentation fault might occur in worker process if HTTPS 5245 was used; the bug had appeared in 0.6.23. 5246 5247 5248Changes with nginx 0.6.23 27 Dec 2007 5249 5250 *) Change: the "off" parameter in the "ssl_session_cache" directive; now 5251 this is default parameter. 5252 5253 *) Change: the "open_file_cache_retest" directive was renamed to the 5254 "open_file_cache_valid". 5255 5256 *) Feature: the "open_file_cache_min_uses" directive. 5257 5258 *) Feature: the ngx_http_gzip_static_module. 5259 5260 *) Feature: the "gzip_disable" directive. 5261 5262 *) Feature: the "memcached_pass" directive may be used inside the "if" 5263 block. 5264 5265 *) Bugfix: a segmentation fault occurred in worker process, if the 5266 "memcached_pass" and "if" directives were used in the same location. 5267 5268 *) Bugfix: if a "satisfy_any on" directive was used and not all access 5269 and auth modules directives were set, then other given access and 5270 auth directives were not tested; 5271 5272 *) Bugfix: regex parameters in a "valid_referers" directive were not 5273 inherited from previous level. 5274 5275 *) Bugfix: a "post_action" directive did run if a request was completed 5276 with 499 status code. 5277 5278 *) Bugfix: optimization of 16K buffer usage in a SSL connection. 5279 Thanks to Ben Maurer. 5280 5281 *) Bugfix: the STARTTLS in SMTP mode did not work. 5282 Thanks to Oleg Motienko. 5283 5284 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" 5285 error; the bug had appeared in 0.5.13. 5286 5287 5288Changes with nginx 0.6.22 19 Dec 2007 5289 5290 *) Change: now all ngx_http_perl_module methods return values copied to 5291 perl's allocated memory. 5292 5293 *) Bugfix: if nginx was built with ngx_http_perl_module, the perl before 5294 5.8.6 was used, and perl supported threads, then during 5295 reconfiguration the master process aborted; the bug had appeared in 5296 0.5.9. 5297 Thanks to Boris Zhmurov. 5298 5299 *) Bugfix: the ngx_http_perl_module methods may get invalid values of 5300 the regex captures. 5301 5302 *) Bugfix: a segmentation fault occurred in worker process, if the 5303 $r->has_request_body() method was called for a request whose small 5304 request body was already received. 5305 5306 *) Bugfix: large_client_header_buffers did not freed before going to 5307 keep-alive state. 5308 Thanks to Olexander Shtepa. 5309 5310 *) Bugfix: the last address was missed in the $upstream_addr variable; 5311 the bug had appeared in 0.6.18. 5312 5313 *) Bugfix: the "fastcgi_catch_stderr" directive did return error code; 5314 now it returns 502 code, that can be rerouted to a next server using 5315 the "fastcgi_next_upstream invalid_header" directive. 5316 5317 *) Bugfix: a segmentation fault occurred in master process if the 5318 "fastcgi_catch_stderr" directive was used; the bug had appeared in 5319 0.6.10. 5320 Thanks to Manlio Perillo. 5321 5322 5323Changes with nginx 0.6.21 03 Dec 2007 5324 5325 *) Change: if variable values used in a "proxy_pass" directive contain 5326 IP-addresses only, then a "resolver" directive is not mandatory. 5327 5328 *) Bugfix: a segmentation fault might occur in worker process if a 5329 "proxy_pass" directive with URI-part was used; the bug had appeared 5330 in 0.6.19. 5331 5332 *) Bugfix: if resolver was used on platform that does not support 5333 kqueue, then nginx issued an alert "name is out of response". 5334 Thanks to Andrei Nigmatulin. 5335 5336 *) Bugfix: if the $server_protocol was used in FastCGI parameters and a 5337 request line length was near to the "client_header_buffer_size" 5338 directive value, then nginx issued an alert "fastcgi: the request 5339 record is too big". 5340 5341 *) Bugfix: if a plain text HTTP/0.9 version request was made to HTTPS 5342 server, then nginx returned usual response. 5343 5344 5345Changes with nginx 0.6.20 28 Nov 2007 5346 5347 *) Bugfix: a segmentation fault might occur in worker process if a 5348 "proxy_pass" directive with URI-part was used; the bug had appeared 5349 in 0.6.19. 5350 5351 5352Changes with nginx 0.6.19 27 Nov 2007 5353 5354 *) Bugfix: the 0.6.18 version could not be built. 5355 5356 5357Changes with nginx 0.6.18 27 Nov 2007 5358 5359 *) Change: now the ngx_http_userid_module adds start time microseconds 5360 to the cookie field contains a pid value. 5361 5362 *) Change: now the full request line instead of URI only is written to 5363 error_log. 5364 5365 *) Feature: variables support in the "proxy_pass" directive. 5366 5367 *) Feature: the "resolver" and "resolver_timeout" directives. 5368 5369 *) Feature: now the directive "add_header last-modified ''" deletes a 5370 "Last-Modified" response header line. 5371 5372 *) Bugfix: the "limit_rate" directive did not allow to use full 5373 throughput, even if limit value was very high. 5374 5375 5376Changes with nginx 0.6.17 15 Nov 2007 5377 5378 *) Feature: the "If-Range" request header line support. 5379 Thanks to Alexander V. Inyukhin. 5380 5381 *) Bugfix: URL double escaping in a redirect of the "msie_refresh" 5382 directive; the bug had appeared in 0.6.4. 5383 5384 *) Bugfix: the "autoindex" directive did not work with the "alias /" 5385 directive. 5386 5387 *) Bugfix: a segmentation fault might occur in worker process if 5388 subrequests were used. 5389 5390 *) Bugfix: the big responses may be transferred truncated if SSL and 5391 gzip were used. 5392 5393 *) Bugfix: the $status variable was equal to 0 if a proxied server 5394 returned response in HTTP/0.9 version. 5395 5396 5397Changes with nginx 0.6.16 29 Oct 2007 5398 5399 *) Change: now the uname(2) is used on Linux instead of procfs. 5400 Thanks to Ilya Novikov. 5401 5402 *) Bugfix: if the "?" character was in a "error_page" directive, then it 5403 was escaped in a proxied request; the bug had appeared in 0.6.11. 5404 5405 *) Bugfix: compatibility with mget. 5406 5407 5408Changes with nginx 0.6.15 22 Oct 2007 5409 5410 *) Feature: Cygwin compatibility. 5411 Thanks to Vladimir Kutakov. 5412 5413 *) Feature: the "merge_slashes" directive. 5414 5415 *) Feature: the "gzip_vary" directive. 5416 5417 *) Feature: the "server_tokens" directive. 5418 5419 *) Bugfix: nginx did not unescape URI in the "include" SSI command. 5420 5421 *) Bugfix: the segmentation fault was occurred on start or while 5422 reconfiguration if variable was used in the "charset" or 5423 "source_charset" directives. 5424 5425 *) Bugfix: nginx returned the 400 response on requests like 5426 "GET http://www.domain.com HTTP/1.0". 5427 Thanks to James Oakley. 5428 5429 *) Bugfix: if request with request body was redirected using the 5430 "error_page" directive, then nginx tried to read the request body 5431 again; the bug had appeared in 0.6.7. 5432 5433 *) Bugfix: a segmentation fault occurred in worker process if no 5434 server_name was explicitly defined for server processing request; the 5435 bug had appeared in 0.6.7. 5436 5437 5438Changes with nginx 0.6.14 15 Oct 2007 5439 5440 *) Change: now by default the "echo" SSI command uses entity encoding. 5441 5442 *) Feature: the "encoding" parameter in the "echo" SSI command. 5443 5444 *) Feature: the "access_log" directive may be used inside the 5445 "limit_except" block. 5446 5447 *) Bugfix: if all upstream servers were failed, then all servers had got 5448 weight the was equal one until servers became alive; the bug had 5449 appeared in 0.6.6. 5450 5451 *) Bugfix: a segmentation fault occurred in worker process if 5452 $date_local and $date_gmt were used outside the 5453 ngx_http_ssi_filter_module. 5454 5455 *) Bugfix: a segmentation fault might occur in worker process if debug 5456 log was enabled. 5457 Thanks to Andrei Nigmatulin. 5458 5459 *) Bugfix: ngx_http_memcached_module did not set 5460 $upstream_response_time. 5461 Thanks to Maxim Dounin. 5462 5463 *) Bugfix: a worker process may got caught in an endless loop, if the 5464 memcached was used. 5465 5466 *) Bugfix: nginx supported low case only "close" and "keep-alive" values 5467 in the "Connection" request header line; the bug had appeared in 5468 0.6.11. 5469 5470 *) Bugfix: sub_filter did not work with empty substitution. 5471 5472 *) Bugfix: in sub_filter parsing. 5473 5474 5475Changes with nginx 0.6.13 24 Sep 2007 5476 5477 *) Bugfix: nginx did not close directory file on HEAD request if 5478 autoindex was used. 5479 Thanks to Arkadiusz Patyk. 5480 5481 5482Changes with nginx 0.6.12 21 Sep 2007 5483 5484 *) Change: mail proxy was split on three modules: pop3, imap and smtp. 5485 5486 *) Feature: the --without-mail_pop3_module, --without-mail_imap_module, 5487 and --without-mail_smtp_module configuration parameters. 5488 5489 *) Feature: the "smtp_greeting_delay" and "smtp_client_buffer" 5490 directives of the ngx_mail_smtp_module. 5491 5492 *) Bugfix: the trailing wildcards did not work; the bug had appeared in 5493 0.6.9. 5494 5495 *) Bugfix: nginx could not start on Solaris if the shared PCRE library 5496 located in non-standard place was used. 5497 5498 *) Bugfix: the "proxy_hide_header" and "fastcgi_hide_header" directives 5499 did not hide response header lines whose name was longer than 32 5500 characters. 5501 Thanks to Manlio Perillo. 5502 5503 5504Changes with nginx 0.6.11 11 Sep 2007 5505 5506 *) Bugfix: active connection counter always increased if mail proxy was 5507 used. 5508 5509 *) Bugfix: if backend returned response header only using non-buffered 5510 proxy, then nginx closed backend connection on timeout. 5511 5512 *) Bugfix: nginx did not support several "Connection" request header 5513 lines. 5514 5515 *) Bugfix: if the "max_fails" was set for upstream server, then after 5516 first failure server weight was always one; the bug had appeared in 5517 0.6.6. 5518 5519 5520Changes with nginx 0.6.10 03 Sep 2007 5521 5522 *) Feature: the "open_file_cache", "open_file_cache_retest", and 5523 "open_file_cache_errors" directives. 5524 5525 *) Bugfix: socket leak; the bug had appeared in 0.6.7. 5526 5527 *) Bugfix: a charset set by the "charset" directive was not appended to 5528 the "Content-Type" header set by $r->send_http_header(). 5529 5530 *) Bugfix: a segmentation fault might occur in worker process if 5531 /dev/poll method was used. 5532 5533 5534Changes with nginx 0.6.9 28 Aug 2007 5535 5536 *) Bugfix: a worker process may got caught in an endless loop, if the 5537 HTTPS protocol was used; the bug had appeared in 0.6.7. 5538 5539 *) Bugfix: if server listened on two addresses or ports and trailing 5540 wildcard was used, then nginx did not run. 5541 5542 *) Bugfix: the "ip_hash" directive might incorrectly mark servers as 5543 down. 5544 5545 *) Bugfix: nginx could not be built on amd64; the bug had appeared in 5546 0.6.8. 5547 5548 5549Changes with nginx 0.6.8 20 Aug 2007 5550 5551 *) Change: now nginx tries to set the "worker_priority", 5552 "worker_rlimit_nofile", "worker_rlimit_core", and 5553 "worker_rlimit_sigpending" without super-user privileges. 5554 5555 *) Change: now nginx escapes space and "%" in request to a mail proxy 5556 authentication server. 5557 5558 *) Change: now nginx escapes "%" in $memcached_key variable. 5559 5560 *) Bugfix: nginx used path relative to configuration prefix for 5561 non-absolute configuration file path specified in the "-c" key; the 5562 bug had appeared in 0.6.6. 5563 5564 *) Bugfix: nginx did not work on FreeBSD/sparc64. 5565 5566 5567Changes with nginx 0.6.7 15 Aug 2007 5568 5569 *) Change: now the paths specified in the "include", 5570 "auth_basic_user_file", "perl_modules", "ssl_certificate", 5571 "ssl_certificate_key", and "ssl_client_certificate" directives are 5572 relative to directory of nginx configuration file nginx.conf, but not 5573 to nginx prefix directory. 5574 5575 *) Change: the --sysconfdir=PATH option in configure was canceled. 5576 5577 *) Change: the special make target "upgrade1" was defined for online 5578 upgrade of 0.1.x versions. 5579 5580 *) Feature: the "server_name" and "valid_referers" directives support 5581 regular expressions. 5582 5583 *) Feature: the "server" directive in the "upstream" context supports 5584 the "backup" parameter. 5585 5586 *) Feature: the ngx_http_perl_module supports the 5587 $r->discard_request_body. 5588 5589 *) Feature: the "add_header Last-Modified ..." directive changes the 5590 "Last-Modified" response header line. 5591 5592 *) Bugfix: if a response different than 200 was returned to a request 5593 with body and connection went to the keep-alive state after the 5594 request, then nginx returned 400 for the next request. 5595 5596 *) Bugfix: a segmentation fault occurred in worker process if invalid 5597 address was set in the "auth_http" directive. 5598 5599 *) Bugfix: now nginx uses default listen backlog value 511 on all 5600 platforms except FreeBSD. 5601 Thanks to Jiang Hong. 5602 5603 *) Bugfix: a worker process may got caught in an endless loop, if a 5604 "server" inside "upstream" block was marked as "down"; the bug had 5605 appeared in 0.6.6. 5606 5607 *) Bugfix: now Solaris sendfilev() is not used to transfer the client 5608 request body to FastCGI-server via the unix domain socket. 5609 5610 5611Changes with nginx 0.6.6 30 Jul 2007 5612 5613 *) Feature: the --sysconfdir=PATH option in configure. 5614 5615 *) Feature: named locations. 5616 5617 *) Feature: the $args variable can be set with the "set" directive. 5618 5619 *) Feature: the $is_args variable. 5620 5621 *) Bugfix: fair big weight upstream balancer. 5622 5623 *) Bugfix: if a client has closed connection to mail proxy then nginx 5624 might not close connection to backend. 5625 5626 *) Bugfix: if the same host without specified port was used as backend 5627 for HTTP and HTTPS, then nginx used only one port - 80 or 443. 5628 5629 *) Bugfix: fix building on Solaris/amd64 by Sun Studio 11 and early 5630 versions; the bug had appeared in 0.6.4. 5631 5632 5633Changes with nginx 0.6.5 23 Jul 2007 5634 5635 *) Feature: $nginx_version variable. 5636 Thanks to Nick S. Grechukh. 5637 5638 *) Feature: the mail proxy supports AUTHENTICATE in IMAP mode. 5639 Thanks to Maxim Dounin. 5640 5641 *) Feature: the mail proxy supports STARTTLS in SMTP mode. 5642 Thanks to Maxim Dounin. 5643 5644 *) Bugfix: now nginx escapes space in $memcached_key variable. 5645 5646 *) Bugfix: nginx was incorrectly built by Sun Studio on Solaris/amd64. 5647 Thanks to Jiang Hong. 5648 5649 *) Bugfix: of minor potential bugs. 5650 Thanks to Coverity's Scan. 5651 5652 5653Changes with nginx 0.6.4 17 Jul 2007 5654 5655 *) Security: the "msie_refresh" directive allowed XSS. 5656 Thanks to Maxim Boguk. 5657 5658 *) Change: the "proxy_store" and "fastcgi_store" directives were 5659 changed. 5660 5661 *) Feature: the "proxy_store_access" and "fastcgi_store_access" 5662 directives. 5663 5664 *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun 5665 Studio. 5666 Thanks to Andrei Nigmatulin. 5667 5668 *) Workaround: for Sun Studio 12. 5669 Thanks to Jiang Hong. 5670 5671 5672Changes with nginx 0.6.3 12 Jul 2007 5673 5674 *) Feature: the "proxy_store" and "fastcgi_store" directives. 5675 5676 *) Bugfix: a segmentation fault might occur in worker process if the 5677 "auth_http_header" directive was used. 5678 Thanks to Maxim Dounin. 5679 5680 *) Bugfix: a segmentation fault occurred in worker process if the 5681 CRAM-MD5 authentication method was used, but it was not enabled. 5682 5683 *) Bugfix: a segmentation fault might occur in worker process when the 5684 HTTPS protocol was used in the "proxy_pass" directive. 5685 5686 *) Bugfix: a segmentation fault might occur in worker process if the 5687 eventport method was used. 5688 5689 *) Bugfix: the "proxy_ignore_client_abort" and 5690 "fastcgi_ignore_client_abort" directives did not work; the bug had 5691 appeared in 0.5.13. 5692 5693 5694Changes with nginx 0.6.2 09 Jul 2007 5695 5696 *) Bugfix: if the FastCGI header was split in records, then nginx passed 5697 garbage in the header to a client. 5698 5699 5700Changes with nginx 0.6.1 17 Jun 2007 5701 5702 *) Bugfix: in SSI parsing. 5703 5704 *) Bugfix: if remote SSI subrequest was used, then posterior local file 5705 subrequest might transferred to client in wrong order. 5706 5707 *) Bugfix: large SSI inclusions buffered in temporary files were 5708 truncated. 5709 5710 *) Bugfix: the perl $$ variable value in ngx_http_perl_module was equal 5711 to the master process identification number. 5712 5713 5714Changes with nginx 0.6.0 14 Jun 2007 5715 5716 *) Feature: the "server_name", "map", and "valid_referers" directives 5717 support the "www.example.*" wildcards. 5718 5719 5720Changes with nginx 0.5.25 11 Jun 2007 5721 5722 *) Bugfix: nginx could not be built with the 5723 --without-http_rewrite_module parameter; the bug had appeared in 5724 0.5.24. 5725 5726 5727Changes with nginx 0.5.24 06 Jun 2007 5728 5729 *) Security: the "ssl_verify_client" directive did not work if request 5730 was made using HTTP/0.9. 5731 5732 *) Bugfix: a part of response body might be passed uncompressed if gzip 5733 was used; the bug had appeared in 0.5.23. 5734 5735 5736Changes with nginx 0.5.23 04 Jun 2007 5737 5738 *) Feature: the ngx_http_ssl_module supports Server Name Indication TLS 5739 extension. 5740 5741 *) Feature: the "fastcgi_catch_stderr" directive. 5742 Thanks to Nick S. Grechukh, OWOX project. 5743 5744 *) Bugfix: a segmentation fault occurred in master process if two 5745 virtual servers should bind() to the overlapping ports. 5746 5747 *) Bugfix: if nginx was built with ngx_http_perl_module and perl 5748 supported threads, then during second reconfiguration the error 5749 messages "panic: MUTEX_LOCK" and "perl_parse() failed" were issued. 5750 5751 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive. 5752 5753 5754Changes with nginx 0.5.22 29 May 2007 5755 5756 *) Bugfix: a big request body might not be passed to backend; the bug 5757 had appeared in 0.5.21. 5758 5759 5760Changes with nginx 0.5.21 28 May 2007 5761 5762 *) Bugfix: if server has more than about ten locations, then regex 5763 locations might be chosen not in that order as they were specified. 5764 5765 *) Bugfix: a worker process may got caught in an endless loop on 64-bit 5766 platform, if the 33-rd or next in succession backend has failed. 5767 Thanks to Anton Povarov. 5768 5769 *) Bugfix: a bus error might occur on Solaris/sparc64 if the PCRE 5770 library was used. 5771 Thanks to Andrei Nigmatulin. 5772 5773 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive. 5774 5775 5776Changes with nginx 0.5.20 07 May 2007 5777 5778 *) Feature: the "sendfile_max_chunk" directive. 5779 5780 *) Feature: the "$http_...", "$sent_http_...", and "$upstream_http_..." 5781 variables may be changed using the "set" directive. 5782 5783 *) Bugfix: a segmentation fault might occur in worker process if the SSI 5784 command 'if expr="$var = /"' was used. 5785 5786 *) Bugfix: trailing boundary of multipart range response was transferred 5787 incorrectly. 5788 Thanks to Evan Miller. 5789 5790 *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun 5791 Studio. 5792 Thanks to Andrei Nigmatulin. 5793 5794 *) Bugfix: the ngx_http_perl_module could not be built by Solaris make. 5795 Thanks to Andrei Nigmatulin. 5796 5797 5798Changes with nginx 0.5.19 24 Apr 2007 5799 5800 *) Change: now the $request_time variable has millisecond precision. 5801 5802 *) Change: the method $r->rflush of ngx_http_perl_module was renamed to 5803 the $r->flush. 5804 5805 *) Feature: the $upstream_addr variable. 5806 5807 *) Feature: the "proxy_headers_hash_max_size" and 5808 "proxy_headers_hash_bucket_size" directives. 5809 Thanks to Volodymyr Kostyrko. 5810 5811 *) Bugfix: the files more than 2G could not be transferred using 5812 sendfile and limit_rate on 64-bit platforms. 5813 5814 *) Bugfix: the files more than 2G could not be transferred using 5815 sendfile on 64-bit Linux. 5816 5817 5818Changes with nginx 0.5.18 19 Apr 2007 5819 5820 *) Feature: the ngx_http_sub_filter_module. 5821 5822 *) Feature: the "$upstream_http_..." variables. 5823 5824 *) Feature: now the $upstream_status and $upstream_response_time 5825 variables keep data about all upstreams before X-Accel-Redirect. 5826 5827 *) Bugfix: a segmentation fault occurred in master process after first 5828 reconfiguration and receiving any signal if nginx was built with 5829 ngx_http_perl_module and perl did not support multiplicity; the bug 5830 had appeared in 0.5.9. 5831 5832 *) Bugfix: if perl did not support multiplicity, then after 5833 reconfiguration perl code did not work; the bug had appeared in 5834 0.3.38. 5835 5836 5837Changes with nginx 0.5.17 02 Apr 2007 5838 5839 *) Change: now nginx always returns the 405 status for the TRACE method. 5840 5841 *) Feature: now nginx supports the "include" directive inside the 5842 "types" block. 5843 5844 *) Bugfix: the $document_root variable usage in the "root" and "alias" 5845 directives is disabled: this caused recursive stack overflow. 5846 5847 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive. 5848 5849 *) Bugfix: in some cases non-cacheable variables (such as $uri variable) 5850 returned old cached value. 5851 5852 5853Changes with nginx 0.5.16 26 Mar 2007 5854 5855 *) Bugfix: the C-class network was not used as hash key in the "ip_hash" 5856 directive. 5857 Thanks to Pavel Yarkovoy. 5858 5859 *) Bugfix: a segmentation fault might occur in worker process if a 5860 charset was set in the "Content-Type" header line and the line has 5861 trailing ";"; the bug had appeared in 0.3.50. 5862 5863 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was 5864 used and a request body written in a temporary file was multiple of 5865 32K. 5866 5867 *) Bugfix: nginx could not be built on Solaris without the --with-debug 5868 option; the bug had appeared in 0.5.15. 5869 5870 5871Changes with nginx 0.5.15 19 Mar 2007 5872 5873 *) Feature: the mail proxy supports authenticated SMTP proxying and the 5874 "smtp_auth", "smtp_capabilities", and "xclient" directives. 5875 Thanks to Anton Yuzhaninov and Maxim Dounin. 5876 5877 *) Feature: now the keep-alive connections are closed just after 5878 receiving the reconfiguration signal. 5879 5880 *) Change: the "imap" and "auth" directives were renamed to the "mail" 5881 and "pop3_auth" directives. 5882 5883 *) Bugfix: a segmentation fault occurred in worker process if the 5884 CRAM-MD5 authentication method was used and the APOP method was 5885 disabled. 5886 5887 *) Bugfix: if the "starttls only" directive was used in POP3 protocol, 5888 then nginx allowed authentication without switching to the SSL mode. 5889 5890 *) Bugfix: worker processes did not exit after reconfiguration and did 5891 not rotate logs if the eventport method was used. 5892 5893 *) Bugfix: a worker process may got caught in an endless loop, if the 5894 "ip_hash" directive was used. 5895 5896 *) Bugfix: now nginx does not log some alerts if eventport or /dev/poll 5897 methods are used. 5898 5899 5900Changes with nginx 0.5.14 23 Feb 2007 5901 5902 *) Bugfix: nginx ignored superfluous closing "}" in the end of 5903 configuration file. 5904 5905 5906Changes with nginx 0.5.13 19 Feb 2007 5907 5908 *) Feature: the COPY and MOVE methods. 5909 5910 *) Bugfix: the ngx_http_realip_module set garbage for requests passed 5911 via keep-alive connection. 5912 5913 *) Bugfix: nginx did not work on big-endian 64-bit Linux. 5914 Thanks to Andrei Nigmatulin. 5915 5916 *) Bugfix: now when IMAP/POP3 proxy receives too long command it closes 5917 the connection right away, but not after timeout. 5918 5919 *) Bugfix: if the "epoll" method was used and a client closed a 5920 connection prematurely, then nginx closed the connection after a send 5921 timeout only. 5922 5923 *) Bugfix: nginx could not be built on platforms different from i386, 5924 amd64, sparc, and ppc; the bug had appeared in 0.5.8. 5925 5926 5927Changes with nginx 0.5.12 12 Feb 2007 5928 5929 *) Bugfix: nginx could not be built on platforms different from i386, 5930 amd64, sparc, and ppc; the bug had appeared in 0.5.8. 5931 5932 *) Bugfix: a segmentation fault might occur in worker process if the 5933 temporary files were used while working with FastCGI server; the bug 5934 had appeared in 0.5.8. 5935 5936 *) Bugfix: a segmentation fault might occur in worker process if the 5937 $fastcgi_script_name variable was logged. 5938 5939 *) Bugfix: ngx_http_perl_module could not be built on Solaris. 5940 5941 5942Changes with nginx 0.5.11 05 Feb 2007 5943 5944 *) Feature: now configure detects system PCRE library in MacPorts. 5945 Thanks to Chris McGrath. 5946 5947 *) Bugfix: the response was incorrect if several ranges were requested; 5948 the bug had appeared in 0.5.6. 5949 5950 *) Bugfix: the "create_full_put_path" directive could not create the 5951 intermediate directories if no "dav_access" directive was set. 5952 Thanks to Evan Miller. 5953 5954 *) Bugfix: the "0" response code might be logged in the access_log 5955 instead of the "400" and "408" error codes. 5956 5957 *) Bugfix: a segmentation fault might occur in worker process if nginx 5958 was built with -O2 optimization. 5959 5960 5961Changes with nginx 0.5.10 26 Jan 2007 5962 5963 *) Bugfix: while online executable file upgrade the new master process 5964 did not inherit the listening sockets; the bug had appeared in 0.5.9. 5965 5966 *) Bugfix: a segmentation fault might occur in worker process if nginx 5967 was built with -O2 optimization; the bug had appeared in 0.5.1. 5968 5969 5970Changes with nginx 0.5.9 25 Jan 2007 5971 5972 *) Change: now the ngx_http_memcached_module uses the $memcached_key 5973 variable value as a key. 5974 5975 *) Feature: the $memcached_key variable. 5976 5977 *) Feature: the "clean" parameter in the "client_body_in_file_only" 5978 directive. 5979 5980 *) Feature: the "env" directive. 5981 5982 *) Feature: the "sendfile" directive is available inside the "if" block. 5983 5984 *) Feature: now on failure of the writing to access nginx logs a message 5985 to error_log, but not more often than once a minute. 5986 5987 *) Bugfix: the "access_log off" directive did not always turn off the 5988 logging. 5989 5990 5991Changes with nginx 0.5.8 19 Jan 2007 5992 5993 *) Bugfix: a segmentation fault might occur if 5994 "client_body_in_file_only on" was used and a request body was small. 5995 5996 *) Bugfix: a segmentation fault occurred if 5997 "client_body_in_file_only on" and "proxy_pass_request_body off" or 5998 "fastcgi_pass_request_body off" directives were used, and nginx 5999 switched to a next upstream. 6000 6001 *) Bugfix: if the "proxy_buffering off" directive was used and a client 6002 connection was non-active, then the connection was closed after send 6003 timeout; the bug had appeared in 0.4.7. 6004 6005 *) Bugfix: if the "epoll" method was used and a client closed a 6006 connection prematurely, then nginx closed the connection after a send 6007 timeout only. 6008 6009 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was 6010 used. 6011 6012 *) Bugfixes in the "limit_zone" directive. 6013 6014 6015Changes with nginx 0.5.7 15 Jan 2007 6016 6017 *) Feature: the ssl_session_cache storage optimization. 6018 6019 *) Bugfixes in the "ssl_session_cache" and "limit_zone" directives. 6020 6021 *) Bugfix: the segmentation fault was occurred on start or while 6022 reconfiguration if the "ssl_session_cache" or "limit_zone" directives 6023 were used on 64-bit platforms. 6024 6025 *) Bugfix: a segmentation fault occurred if the "add_before_body" or 6026 "add_after_body" directives were used and there was no "Content-Type" 6027 header line in response. 6028 6029 *) Bugfix: the OpenSSL library was always built with the threads 6030 support. 6031 Thanks to Den Ivanov. 6032 6033 *) Bugfix: the PCRE-6.5+ library and the icc compiler compatibility. 6034 6035 6036Changes with nginx 0.5.6 09 Jan 2007 6037 6038 *) Change: now the ngx_http_index_module ignores all methods except the 6039 GET, HEAD, and POST methods. 6040 6041 *) Feature: the ngx_http_limit_zone_module. 6042 6043 *) Feature: the $binary_remote_addr variable. 6044 6045 *) Feature: the "ssl_session_cache" directives of the 6046 ngx_http_ssl_module and ngx_imap_ssl_module. 6047 6048 *) Feature: the DELETE method supports recursive removal. 6049 6050 *) Bugfix: the byte-ranges were transferred incorrectly if the 6051 $r->sendfile() was used. 6052 6053 6054Changes with nginx 0.5.5 24 Dec 2006 6055 6056 *) Change: the -v switch does not show compiler information any more. 6057 6058 *) Feature: the -V switch. 6059 6060 *) Feature: the "worker_rlimit_core" directive supports size in K, M, 6061 and G. 6062 6063 *) Bugfix: the nginx.pm module now could be installed by an unprivileged 6064 user. 6065 6066 *) Bugfix: a segmentation fault might occur if the $r->request_body or 6067 $r->request_body_file methods were used. 6068 6069 *) Bugfix: the ppc platform specific bugs. 6070 6071 6072Changes with nginx 0.5.4 15 Dec 2006 6073 6074 *) Feature: the "perl" directive may be used inside the "limit_except" 6075 block. 6076 6077 *) Bugfix: the ngx_http_dav_module required the "Date" request header 6078 line for the DELETE method. 6079 6080 *) Bugfix: if one only parameter was used in the "dav_access" directive, 6081 then nginx might report about configuration error. 6082 6083 *) Bugfix: a segmentation fault might occur if the $host variable was 6084 used; the bug had appeared in 0.4.14. 6085 6086 6087Changes with nginx 0.5.3 13 Dec 2006 6088 6089 *) Feature: the ngx_http_perl_module supports the $r->status, 6090 $r->log_error, and $r->sleep methods. 6091 6092 *) Feature: the $r->variable method supports variables that do not exist 6093 in nginx configuration. 6094 6095 *) Bugfix: the $r->has_request_body method did not work. 6096 6097 6098Changes with nginx 0.5.2 11 Dec 2006 6099 6100 *) Bugfix: if the "proxy_pass" directive used the name of the "upstream" 6101 block, then nginx tried to resolve the name; the bug had appeared in 6102 0.5.1. 6103 6104 6105Changes with nginx 0.5.1 11 Dec 2006 6106 6107 *) Bugfix: the "post_action" directive might not run after a 6108 unsuccessful completion of a request. 6109 6110 *) Workaround: for Eudora for Mac; the bug had appeared in 0.4.11. 6111 Thanks to Bron Gondwana. 6112 6113 *) Bugfix: if the "upstream" name was used in the "fastcgi_pass", then 6114 the message "no port in upstream" was issued; the bug had appeared in 6115 0.5.0. 6116 6117 *) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the 6118 same servers but different ports, then these directives uses the 6119 first described port; the bug had appeared in 0.5.0. 6120 6121 *) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the 6122 unix domain sockets, then these directives used first described 6123 socket; the bug had appeared in 0.5.0. 6124 6125 *) Bugfix: ngx_http_auth_basic_module ignored the user if it was in the 6126 last line in the password file and there was no the carriage return, 6127 the line feed, or the ":" symbol after the password. 6128 6129 *) Bugfix: the $upstream_response_time variable might be equal to 6130 "0.000", although response time was more than 1 millisecond. 6131 6132 6133Changes with nginx 0.5.0 04 Dec 2006 6134 6135 *) Change: the parameters in the "%name" form in the "log_format" 6136 directive are not supported anymore. 6137 6138 *) Change: the "proxy_upstream_max_fails", 6139 "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", 6140 "fastcgi_upstream_fail_timeout", "memcached_upstream_max_fails", and 6141 "memcached_upstream_fail_timeout" directives are not supported 6142 anymore. 6143 6144 *) Feature: the "server" directive in the "upstream" context supports 6145 the "max_fails", "fail_timeout", and "down" parameters. 6146 6147 *) Feature: the "ip_hash" directive inside the "upstream" block. 6148 6149 *) Feature: the WAIT status in the "Auth-Status" header line of the 6150 IMAP/POP3 proxy authentication server response. 6151 6152 *) Bugfix: nginx could not be built on 64-bit platforms; the bug had 6153 appeared in 0.4.14. 6154 6155 6156Changes with nginx 0.4.14 27 Nov 2006 6157 6158 *) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy. 6159 6160 *) Feature: now configure detects system PCRE library on FreeBSD, Linux, 6161 and NetBSD. 6162 6163 *) Bugfix: ngx_http_perl_module did not work with perl built with the 6164 threads support; the bug had appeared in 0.3.38. 6165 6166 *) Bugfix: ngx_http_perl_module did not work if perl was called 6167 recursively. 6168 6169 *) Bugfix: nginx ignored a host name in a request line. 6170 6171 *) Bugfix: a worker process may got caught in an endless loop, if a 6172 FastCGI server sent too many data to the stderr. 6173 6174 *) Bugfix: the $upstream_response_time variable may be negative if the 6175 system time was changed backward. 6176 6177 *) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3 6178 proxy authentication server when POP3 was used. 6179 6180 *) Bugfix: a segmentation fault might occur if connect to IMAP/POP3 6181 proxy authentication server failed. 6182 6183 6184Changes with nginx 0.4.13 15 Nov 2006 6185 6186 *) Feature: the "proxy_pass" directive may be used inside the 6187 "limit_except" block. 6188 6189 *) Feature: the "limit_except" directive supports all WebDAV methods. 6190 6191 *) Bugfix: if the "add_before_body" directive was used without the 6192 "add_after_body" directive, then a response did not transferred 6193 complete. 6194 6195 *) Bugfix: a large request body did not receive if the epoll method and 6196 the deferred accept() were used. 6197 6198 *) Bugfix: a charset could not be set for ngx_http_autoindex_module 6199 responses; the bug had appeared in 0.3.50. 6200 6201 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was 6202 used; 6203 6204 *) Bugfix: the --group= configuration parameter was ignored. 6205 Thanks to Thomas Moschny. 6206 6207 *) Bugfix: the 50th subrequest in SSI response did not work; the bug had 6208 appeared in 0.3.50. 6209 6210 6211Changes with nginx 0.4.12 31 Oct 2006 6212 6213 *) Feature: the ngx_http_perl_module supports the $r->variable method. 6214 6215 *) Bugfix: if a big static file was included using SSI in a response, 6216 then the response may be transferred incomplete. 6217 6218 *) Bugfix: nginx did not omit the "#fragment" part in URI. 6219 6220 6221Changes with nginx 0.4.11 25 Oct 2006 6222 6223 *) Feature: the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5. 6224 6225 *) Feature: the ngx_http_perl_module supports the $r->allow_ranges 6226 method. 6227 6228 *) Bugfix: if the APOP was enabled in the POP3 proxy, then the USER/PASS 6229 commands might not work; the bug had appeared in 0.4.10. 6230 6231 6232Changes with nginx 0.4.10 23 Oct 2006 6233 6234 *) Feature: the POP3 proxy supports the APOP command. 6235 6236 *) Bugfix: if the select, poll or /dev/poll methods were used, then 6237 while waiting authentication server response the IMAP/POP3 proxy 6238 hogged CPU. 6239 6240 *) Bugfix: a segmentation fault might occur if the $server_addr variable 6241 was used in the "map" directive. 6242 6243 *) Bugfix: the ngx_http_flv_module did not support the byte ranges for 6244 full responses; the bug had appeared in 0.4.7. 6245 6246 *) Bugfix: nginx could not be built on Debian amd64; the bug had 6247 appeared in 0.4.9. 6248 6249 6250Changes with nginx 0.4.9 13 Oct 2006 6251 6252 *) Feature: the "set" parameter in the "include" SSI command. 6253 6254 *) Feature: the ngx_http_perl_module now tests the nginx.pm module 6255 version. 6256 6257 6258Changes with nginx 0.4.8 11 Oct 2006 6259 6260 *) Bugfix: if an "include" SSI command were before another "include" SSI 6261 command with a "wait" parameter, then the "wait" parameter might not 6262 work. 6263 6264 *) Bugfix: the ngx_http_flv_module added the FLV header to the full 6265 responses. 6266 Thanks to Alexey Kovyrin. 6267 6268 6269Changes with nginx 0.4.7 10 Oct 2006 6270 6271 *) Feature: the ngx_http_flv_module. 6272 6273 *) Feature: the $request_body_file variable. 6274 6275 *) Feature: the "charset" and "source_charset" directives support the 6276 variables. 6277 6278 *) Bugfix: if an "include" SSI command were before another "include" SSI 6279 command with a "wait" parameter, then the "wait" parameter might not 6280 work. 6281 6282 *) Bugfix: if the "proxy_buffering off" directive was used or while 6283 working with memcached the connections might not be closed on 6284 timeout. 6285 6286 *) Bugfix: nginx did not run on 64-bit platforms except amd64, sparc64, 6287 and ppc64. 6288 6289 6290Changes with nginx 0.4.6 06 Oct 2006 6291 6292 *) Bugfix: nginx did not run on 64-bit platforms except amd64, sparc64, 6293 and ppc64. 6294 6295 *) Bugfix: nginx sent the chunked response for HTTP/1.1 request, 6296 if its length was set by text string in the 6297 $r->headers_out("Content-Length", ...) method. 6298 6299 *) Bugfix: after redirecting error by an "error_page" directive any 6300 ngx_http_rewrite_module directive returned this error code; the bug 6301 had appeared in 0.4.4. 6302 6303 6304Changes with nginx 0.4.5 02 Oct 2006 6305 6306 *) Bugfix: nginx could not be built on Linux and Solaris; the bug had 6307 appeared in 0.4.4. 6308 6309 6310Changes with nginx 0.4.4 02 Oct 2006 6311 6312 *) Feature: the $scheme variable. 6313 6314 *) Feature: the "expires" directive supports the "max" parameter. 6315 6316 *) Feature: the "include" directive supports the "*" mask. 6317 Thanks to Jonathan Dance. 6318 6319 *) Bugfix: the "return" directive always overrode the "error_page" 6320 response code redirected by the "error_page" directive. 6321 6322 *) Bugfix: a segmentation fault occurred if zero-length body was in PUT 6323 method. 6324 6325 *) Bugfix: the redirect was changed incorrectly if the variables were 6326 used in the "proxy_redirect" directive. 6327 6328 6329Changes with nginx 0.4.3 26 Sep 2006 6330 6331 *) Change: now the 499 error could not be redirected using an 6332 "error_page" directive. 6333 6334 *) Feature: the Solaris 10 event ports support. 6335 6336 *) Feature: the ngx_http_browser_module. 6337 6338 *) Bugfix: a segmentation fault may occur while redirecting the 400 6339 error to the proxied server using a "proxy_pass" directive. 6340 6341 *) Bugfix: a segmentation fault occurred if an unix domain socket was 6342 used in a "proxy_pass" directive; the bug had appeared in 0.3.47. 6343 6344 *) Bugfix: SSI did work with memcached and nonbuffered responses. 6345 6346 *) Workaround: of the Sun Studio PAUSE hardware capability bug. 6347 6348 6349Changes with nginx 0.4.2 14 Sep 2006 6350 6351 *) Bugfix: the O_NOATIME flag support on Linux was canceled; the bug had 6352 appeared in 0.4.1. 6353 6354 6355Changes with nginx 0.4.1 14 Sep 2006 6356 6357 *) Bugfix: the DragonFlyBSD compatibility. 6358 Thanks to Pavel Nazarov. 6359 6360 *) Workaround: of bug in 64-bit Linux sendfile(), when file is more than 6361 2G. 6362 6363 *) Feature: now on Linux nginx uses O_NOATIME flag for static requests. 6364 Thanks to Yusuf Goolamabbas. 6365 6366 6367Changes with nginx 0.4.0 30 Aug 2006 6368 6369 *) Change in internal API: the HTTP modules initialization was moved 6370 from the init module phase to the HTTP postconfiguration phase. 6371 6372 *) Change: now the request body is not read beforehand for the 6373 ngx_http_perl_module: it's required to start the reading using the 6374 $r->has_request_body method. 6375 6376 *) Feature: the ngx_http_perl_module supports the DECLINED return code. 6377 6378 *) Feature: the ngx_http_dav_module supports the incoming "Date" header 6379 line for the PUT method. 6380 6381 *) Feature: the "ssi" directive is available inside the "if" block. 6382 6383 *) Bugfix: a segmentation fault occurred if there was an "index" 6384 directive with variables and the first index name was without 6385 variables; the bug had appeared in 0.1.29. 6386 6387 6388Changes with nginx 0.3.61 28 Aug 2006 6389 6390 *) Change: now the "tcp_nodelay" directive is turned on by default. 6391 6392 *) Feature: the "msie_refresh" directive. 6393 6394 *) Feature: the "recursive_error_pages" directive. 6395 6396 *) Bugfix: the "rewrite" directive returned incorrect redirect, if the 6397 redirect had the captured escaped symbols from original URI. 6398 6399 6400Changes with nginx 0.3.60 18 Aug 2006 6401 6402 *) Bugfix: a worker process may got caught in an endless loop while an 6403 error redirection; the bug had appeared in 0.3.59. 6404 6405 6406Changes with nginx 0.3.59 16 Aug 2006 6407 6408 *) Feature: now is possible to do several redirection using the 6409 "error_page" directive. 6410 6411 *) Bugfix: the "dav_access" directive did not support three parameters. 6412 6413 *) Bugfix: the "error_page" directive did not changes the "Content-Type" 6414 header line after the "X-Accel-Redirect" was used; the bug had 6415 appeared in 0.3.58. 6416 6417 6418Changes with nginx 0.3.58 14 Aug 2006 6419 6420 *) Feature: the "error_page" directive supports the variables. 6421 6422 *) Change: now the procfs interface instead of sysctl is used on Linux. 6423 6424 *) Change: now the "Content-Type" header line is inherited from first 6425 response when the "X-Accel-Redirect" was used. 6426 6427 *) Bugfix: the "error_page" directive did not redirect the 413 error. 6428 6429 *) Bugfix: the trailing "?" did not remove old arguments if no new 6430 arguments were added to a rewritten URI. 6431 6432 *) Bugfix: nginx could not run on 64-bit FreeBSD 7.0-CURRENT. 6433 6434 6435Changes with nginx 0.3.57 09 Aug 2006 6436 6437 *) Feature: the $ssl_client_serial variable. 6438 6439 *) Bugfix: in the "!-e" operator of the "if" directive. 6440 Thanks to Andrian Budanstov. 6441 6442 *) Bugfix: while a client certificate verification nginx did not send to 6443 a client the required certificates information. 6444 6445 *) Bugfix: the $document_root variable did not support the variables in 6446 the "root" directive. 6447 6448 6449Changes with nginx 0.3.56 04 Aug 2006 6450 6451 *) Feature: the "dav_access" directive. 6452 6453 *) Feature: the "if" directive supports the "-d", "!-d", "-e", "!-e", 6454 "-x", and "!-x" operators. 6455 6456 *) Bugfix: a segmentation fault occurred if a request returned a 6457 redirect and some sent to client header lines were logged in the 6458 access log. 6459 6460 6461Changes with nginx 0.3.55 28 Jul 2006 6462 6463 *) Feature: the "stub" parameter in the "include" SSI command. 6464 6465 *) Feature: the "block" SSI command. 6466 6467 *) Feature: the unicode2nginx script was added to contrib. 6468 6469 *) Bugfix: if a "root" was specified by variable only, then the root was 6470 relative to a server prefix. 6471 6472 *) Bugfix: if the request contained "//" or "/./" and escaped symbols 6473 after them, then the proxied request was sent unescaped. 6474 6475 *) Bugfix: the $r->header_in("Cookie") of the ngx_http_perl_module now 6476 returns all "Cookie" header lines. 6477 6478 *) Bugfix: a segmentation fault occurred if 6479 "client_body_in_file_only on" was used and nginx switched to a next 6480 upstream. 6481 6482 *) Bugfix: on some condition while reconfiguration character codes 6483 inside the "charset_map" may be treated invalid; the bug had appeared 6484 in 0.3.50. 6485 6486 6487Changes with nginx 0.3.54 11 Jul 2006 6488 6489 *) Feature: nginx now logs the subrequest information to the error log. 6490 6491 *) Feature: the "proxy_next_upstream", "fastcgi_next_upstream", and 6492 "memcached_next_upstream" directives support the "off" parameter. 6493 6494 *) Feature: the "debug_connection" directive supports the CIDR address 6495 form. 6496 6497 *) Bugfix: if a response of proxied server or FastCGI server was 6498 converted from UTF-8 or back, then it may be transferred incomplete. 6499 6500 *) Bugfix: the $upstream_response_time variable had the time of the 6501 first request to a backend only. 6502 6503 *) Bugfix: nginx could not be built on amd64 platform; the bug had 6504 appeared in 0.3.53. 6505 6506 6507Changes with nginx 0.3.53 07 Jul 2006 6508 6509 *) Change: the "add_header" directive adds the string to 204, 301, and 6510 302 responses. 6511 6512 *) Feature: the "server" directive in the "upstream" context supports 6513 the "weight" parameter. 6514 6515 *) Feature: the "server_name" directive supports the "*" wildcard. 6516 6517 *) Feature: nginx supports the request body size more than 2G. 6518 6519 *) Bugfix: if a client was successfully authorized using "satisfy_any 6520 on", then anyway the message "access forbidden by rule" was written 6521 in the log. 6522 6523 *) Bugfix: the "PUT" method may erroneously not create a file and return 6524 the 409 code. 6525 6526 *) Bugfix: if the IMAP/POP3 backend returned an error, then nginx 6527 continued proxying anyway. 6528 6529 6530Changes with nginx 0.3.52 03 Jul 2006 6531 6532 *) Change: the ngx_http_index_module behavior for the "POST /" requests 6533 is reverted to the 0.3.40 version state: the module now does not 6534 return the 405 error. 6535 6536 *) Bugfix: the worker process may got caught in an endless loop if the 6537 limit rate was used; the bug had appeared in 0.3.37. 6538 6539 *) Bugfix: ngx_http_charset_module logged "unknown charset" alert, even 6540 if the recoding was not needed; the bug had appeared in 0.3.50. 6541 6542 *) Bugfix: if a code response of the PUT request was 409, then a 6543 temporary file was not removed. 6544 6545 6546Changes with nginx 0.3.51 30 Jun 2006 6547 6548 *) Bugfix: the "<" symbols might disappeared some conditions in the SSI; 6549 the bug had appeared in 0.3.50. 6550 6551 6552Changes with nginx 0.3.50 28 Jun 2006 6553 6554 *) Change: the "proxy_redirect_errors" and "fastcgi_redirect_errors" 6555 directives was renamed to the "proxy_intercept_errors" and 6556 "fastcgi_intercept_errors" directives. 6557 6558 *) Feature: the ngx_http_charset_module supports the recoding from the 6559 single byte encodings to the UTF-8 encoding and back. 6560 6561 *) Feature: the "X-Accel-Charset" response header line is supported in 6562 proxy and FastCGI mode. 6563 6564 *) Bugfix: the "\" escape symbol in the "\"" and "\'" pairs in the SSI 6565 command was removed only if the command also has the "$" symbol. 6566 6567 *) Bugfix: the "<!--" string might be added on some conditions in the 6568 SSI after inclusion. 6569 6570 *) Bugfix: if the "Content-Length: 0" header line was in response, then 6571 in nonbuffered proxying mode the client connection was not closed. 6572 6573 6574Changes with nginx 0.3.49 31 May 2006 6575 6576 *) Bugfix: in the "set" directive. 6577 6578 *) Bugfix: if two or more FastCGI subrequests was in SSI, then first 6579 subrequest output was included instead of second and following 6580 subrequests. 6581 6582 6583Changes with nginx 0.3.48 29 May 2006 6584 6585 *) Change: now the ngx_http_charset_module works for subrequests, if the 6586 response has no "Content-Type" header line. 6587 6588 *) Bugfix: if the "proxy_pass" directive has no URI part, then the 6589 "proxy_redirect default" directive add the unnecessary slash in start 6590 of the rewritten redirect. 6591 6592 *) Bugfix: the internal redirect always transform client's HTTP method 6593 to GET, now the transformation is made for the "X-Accel-Redirect" 6594 redirects only and if the method is not HEAD; the bug had appeared in 6595 0.3.42. 6596 6597 *) Bugfix: the ngx_http_perl_module could not be built, if the perl was 6598 built with the threads support; the bug had appeared in 0.3.46. 6599 6600 6601Changes with nginx 0.3.47 23 May 2006 6602 6603 *) Feature: the "upstream" directive. 6604 6605 *) Change: now the "\" escape symbol in the "\"" and "\'" pairs in the 6606 SSI command is always removed. 6607 6608 6609Changes with nginx 0.3.46 11 May 2006 6610 6611 *) Feature: the "proxy_hide_header", "proxy_pass_header", 6612 "fastcgi_hide_header", and "fastcgi_pass_header" directives. 6613 6614 *) Change: the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and 6615 "proxy_pass_server" directives were canceled. 6616 6617 *) Feature: the "X-Accel-Buffering" response header line is supported in 6618 proxy mode. 6619 6620 *) Bugfix: the reconfiguration bug and memory leaks in the 6621 ngx_http_perl_module. 6622 6623 6624Changes with nginx 0.3.45 06 May 2006 6625 6626 *) Feature: the "ssl_verify_client", "ssl_verify_depth", and 6627 "ssl_client_certificate" directives. 6628 6629 *) Change: the $request_method variable now returns the main request 6630 method. 6631 6632 *) Change: the ° symbol codes were changed in koi-win conversion 6633 table. 6634 6635 *) Feature: the euro and N symbols were added to koi-win conversion 6636 table. 6637 6638 *) Bugfix: if nginx distributed the requests among several backends and 6639 some backend failed, then requests intended for this backend was 6640 directed to one live backend only instead of being distributed among 6641 the rest. 6642 6643 6644Changes with nginx 0.3.44 04 May 2006 6645 6646 *) Feature: the "wait" parameter in the "include" SSI command. 6647 6648 *) Feature: the Ukrainian and Byelorussian characters were added to 6649 koi-win conversion table. 6650 6651 *) Bugfix: in the SSI. 6652 6653 6654Changes with nginx 0.3.43 26 Apr 2006 6655 6656 *) Bugfix: in the SSI. 6657 6658 6659Changes with nginx 0.3.42 26 Apr 2006 6660 6661 *) Feature: the "bind" option of the "listen" directive in IMAP/POP3 6662 proxy. 6663 6664 *) Bugfix: if the same capture in the "rewrite" directive was used more 6665 then once. 6666 6667 *) Bugfix: the $sent_http_content_type, $sent_http_content_length, 6668 $sent_http_last_modified, $sent_http_connection, 6669 $sent_http_keep_alive, and $sent_http_transfer_encoding variables 6670 were not written to access log. 6671 6672 *) Bugfix: the $sent_http_cache_control returned value of the single 6673 "Cache-Control" response header line. 6674 6675 6676Changes with nginx 0.3.41 21 Apr 2006 6677 6678 *) Feature: the -v switch. 6679 6680 *) Bugfix: the segmentation fault may occurred if the SSI page has 6681 remote subrequests. 6682 6683 *) Bugfix: in FastCGI handling. 6684 6685 *) Bugfix: if the perl modules path was not set using 6686 --with-perl_modules_path=PATH or the "perl_modules", then the 6687 segmentation fault was occurred. 6688 6689 6690Changes with nginx 0.3.40 19 Apr 2006 6691 6692 *) Feature: the ngx_http_dav_module supports the MKCOL method. 6693 6694 *) Feature: the "create_full_put_path" directive. 6695 6696 *) Feature: the "$limit_rate" variable. 6697 6698 6699Changes with nginx 0.3.39 17 Apr 2006 6700 6701 *) Feature: the "uninitialized_variable_warn" directive; the logging 6702 level of the "uninitialized variable" message was lowered from 6703 "alert" to "warn". 6704 6705 *) Feature: the "override_charset" directive. 6706 6707 *) Change: now if the unknown variable is used in the "echo" and "if 6708 expr='$name'" SSI-commands, then the "unknown variable" message is 6709 not logged. 6710 6711 *) Bugfix: the active connection counter increased on the exceeding of 6712 the connection limit specified by the "worker_connections" directive; 6713 the bug had appeared in 0.2.0. 6714 6715 *) Bugfix: the limit rate might not work on some condition; the bug had 6716 appeared in 0.3.38. 6717 6718 6719Changes with nginx 0.3.38 14 Apr 2006 6720 6721 *) Feature: the ngx_http_dav_module. 6722 6723 *) Change: the ngx_http_perl_module optimizations. 6724 Thanks to Sergey Skvortsov. 6725 6726 *) Feature: the ngx_http_perl_module supports the $r->request_body_file 6727 method. 6728 6729 *) Feature: the "client_body_in_file_only" directive. 6730 6731 *) Workaround: now on disk overflow nginx tries to write access logs 6732 once a second only. 6733 Thanks to Anton Yuzhaninov and Maxim Dounin. 6734 6735 *) Bugfix: now the "limit_rate" directive more precisely limits rate if 6736 rate is more than 100 Kbyte/s. 6737 Thanks to ForJest. 6738 6739 *) Bugfix: now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in 6740 login and password to pass authorization server. 6741 Thanks to Maxim Dounin. 6742 6743 6744Changes with nginx 0.3.37 07 Apr 2006 6745 6746 *) Feature: the "limit_except" directive. 6747 6748 *) Feature: the "if" directive supports the "!~", "!~*", "-f", and "!-f" 6749 operators. 6750 6751 *) Feature: the ngx_http_perl_module supports the $r->request_body 6752 method. 6753 6754 *) Bugfix: in the ngx_http_addition_filter_module. 6755 6756 6757Changes with nginx 0.3.36 05 Apr 2006 6758 6759 *) Feature: the ngx_http_addition_filter_module. 6760 6761 *) Feature: the "proxy_pass" and "fastcgi_pass" directives may be used 6762 inside the "if" block. 6763 6764 *) Feature: the "proxy_ignore_client_abort" and 6765 "fastcgi_ignore_client_abort" directives. 6766 6767 *) Feature: the "$request_completion" variable. 6768 6769 *) Feature: the ngx_http_perl_module supports the $r->request_method and 6770 $r->remote_addr. 6771 6772 *) Feature: the ngx_http_ssi_module supports the "elif" command. 6773 6774 *) Bugfix: the "\/" string in the expression of the "if" command of the 6775 ngx_http_ssi_module was treated incorrectly. 6776 6777 *) Bugfix: in the regular expressions in the "if" command of the 6778 ngx_http_ssi_module. 6779 6780 *) Bugfix: if the relative path was specified in the 6781 "client_body_temp_path", "proxy_temp_path", "fastcgi_temp_path", and 6782 "perl_modules" directives, then the directory was used relatively to 6783 a current path but not to a server prefix. 6784 6785 6786Changes with nginx 0.3.35 22 Mar 2006 6787 6788 *) Bugfix: the accept-filter and the TCP_DEFER_ACCEPT option were set 6789 for first "listen" directive only; the bug had appeared in 0.3.31. 6790 6791 *) Bugfix: in the "proxy_pass" directive without the URI part in a 6792 subrequest. 6793 6794 6795Changes with nginx 0.3.34 21 Mar 2006 6796 6797 *) Feature: the "add_header" directive supports the variables. 6798 6799 6800Changes with nginx 0.3.33 15 Mar 2006 6801 6802 *) Feature: the "http_503" parameter of the "proxy_next_upstream" or 6803 "fastcgi_next_upstream" directives. 6804 6805 *) Bugfix: ngx_http_perl_module did not work with inlined in the 6806 configuration code, if it was not started with the "sub" word. 6807 6808 *) Bugfix: in the "post_action" directive. 6809 6810 6811Changes with nginx 0.3.32 11 Mar 2006 6812 6813 *) Bugfix: the debug logging on startup and reconfiguration time was 6814 removed; the bug had appeared in 0.3.31. 6815 6816 6817Changes with nginx 0.3.31 10 Mar 2006 6818 6819 *) Change: now nginx passes the malformed proxied backend responses. 6820 6821 *) Feature: the "listen" directives support the address in the "*:port" 6822 form. 6823 6824 *) Feature: the EVFILER_TIMER support in MacOSX 10.4. 6825 6826 *) Workaround: for MacOSX 64-bit kernel kqueue millisecond timeout bug. 6827 Thanks to Andrei Nigmatulin. 6828 6829 *) Bugfix: if there were several "listen" directives listening one 6830 various addresses inside one server, then server names like 6831 "*.domain.tld" worked for first address only; the bug had appeared in 6832 0.3.18. 6833 6834 *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive 6835 and the request body was in temporary file then the request was not 6836 transferred. 6837 6838 *) Bugfix: perl 5.8.8 compatibility. 6839 6840 6841Changes with nginx 0.3.30 22 Feb 2006 6842 6843 *) Change: the ECONNABORTED error log level was changed to "error" from 6844 "crit". 6845 6846 *) Bugfix: the ngx_http_perl_module could not be build without the 6847 ngx_http_ssi_filter_module. 6848 6849 *) Bugfix: nginx could not be built on i386 platform, if the PIC was 6850 used; the bug had appeared in 0.3.27. 6851 6852 6853Changes with nginx 0.3.29 20 Feb 2006 6854 6855 *) Feature: now nginx uses less memory, if PHP in FastCGI mode sends 6856 many warnings before the response. 6857 6858 *) Bugfix: the "Transfer-Encoding: chunked" header line was issued in 6859 the 204 responses for the HTTP/1.1 requests. 6860 6861 *) Bugfix: nginx returned the 502 response, if the complete response 6862 header lines were transferred in a separate FastCGI records. 6863 6864 *) Bugfix: if the proxied URI was specified in the "post_action" 6865 directive, then it ran only after a successful completion of a 6866 request. 6867 6868 6869Changes with nginx 0.3.28 16 Feb 2006 6870 6871 *) Feature: the "restrict_host_names" directive was canceled. 6872 6873 *) Feature: the --with-cpu-opt=ppc64 configuration parameter. 6874 6875 *) Bugfix: on some condition the proxied connection with a client was 6876 terminated prematurely. 6877 Thanks to Vladimir Shutoff. 6878 6879 *) Bugfix: the "X-Accel-Limit-Rate" header line was not taken into 6880 account if the request was redirected using the "X-Accel-Redirect" 6881 header line. 6882 6883 *) Bugfix: the "post_action" directive ran only after a successful 6884 completion of a request. 6885 6886 *) Bugfix: the proxied response body generated by the "post_action" 6887 directive was transferred to a client. 6888 6889 6890Changes with nginx 0.3.27 08 Feb 2006 6891 6892 *) Change: the "variables_hash_max_size" and 6893 "variables_hash_bucket_size" directives. 6894 6895 *) Feature: the $body_bytes_sent variable can be used not only in the 6896 "log_format" directive. 6897 6898 *) Feature: the $ssl_protocol and $ssl_cipher variables. 6899 6900 *) Feature: the cache line size detection for widespread CPUs at start 6901 time. 6902 6903 *) Feature: now the "accept_mutex" directive is supported using fcntl(2) 6904 on platforms different from i386, amd64, sparc64, and ppc. 6905 6906 *) Feature: the "lock_file" directive and the --with-lock-path=PATH 6907 autoconfiguration directive. 6908 6909 *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive 6910 then the requests with the body was not transferred. 6911 6912 6913Changes with nginx 0.3.26 03 Feb 2006 6914 6915 *) Change: the "optimize_host_names" directive was renamed to the 6916 "optimize_server_names". 6917 6918 *) Bugfix: if in the "proxy_pass" directive was no the URI part, then 6919 the main request URI was transferred to a backend while proxying the 6920 SSI subrequest. 6921 6922 6923Changes with nginx 0.3.25 01 Feb 2006 6924 6925 *) Bugfix: the segmentation fault was occurred on start or while 6926 reconfiguration if there was invalid configuration; the bug had 6927 appeared in 0.3.24. 6928 6929 6930Changes with nginx 0.3.24 01 Feb 2006 6931 6932 *) Workaround: for bug in FreeBSD kqueue. 6933 6934 *) Bugfix: now a response generated by the "post_action" directive is 6935 not transferred to a client. 6936 6937 *) Bugfix: the memory leaks were occurring if many log files were used. 6938 6939 *) Bugfix: the first "proxy_redirect" directive was working inside one 6940 location. 6941 6942 *) Bugfix: on 64-bit platforms segmentation fault may occurred on start 6943 if the many names were used in the "server_name" directives; the bug 6944 had appeared in 0.3.18. 6945 6946 6947Changes with nginx 0.3.23 24 Jan 2006 6948 6949 *) Feature: the "optimize_host_names" directive. 6950 6951 *) Bugfix: in using of the variables in the "path" and "alias" 6952 directives. 6953 6954 *) Bugfix: the ngx_http_perl_module was incorrectly built on Linux and 6955 Solaris. 6956 6957 6958Changes with nginx 0.3.22 17 Jan 2006 6959 6960 *) Feature: the ngx_http_perl_module supports the $r->args and 6961 $r->unescape methods. 6962 6963 *) Feature: the method $r->query_string of ngx_http_perl_module was 6964 canceled. 6965 6966 *) Bugfix: segmentation fault was occurred if the "none" or "blocked" 6967 values was specified in the "valid_referers" directive; the bug had 6968 appeared in 0.3.18. 6969 6970 6971Changes with nginx 0.3.21 16 Jan 2006 6972 6973 *) Feature: the ngx_http_perl_module. 6974 6975 *) Change: the "valid_referers" directive allows the referrers without 6976 URI part. 6977 6978 6979Changes with nginx 0.3.20 11 Jan 2006 6980 6981 *) Bugfix: in SSI handling. 6982 6983 *) Bugfix: the ngx_http_memcached_module did not support the keys in the 6984 "/usr?args" form. 6985 6986 6987Changes with nginx 0.3.19 28 Dec 2005 6988 6989 *) Feature: the "path" and "alias" directives support the variables. 6990 6991 *) Change: now the "valid_referers" directive again checks the URI part. 6992 6993 *) Bugfix: in SSI handling. 6994 6995 6996Changes with nginx 0.3.18 26 Dec 2005 6997 6998 *) Feature: the "server_names" directive supports the ".domain.tld" 6999 names. 7000 7001 *) Feature: the "server_names" directive uses the hash for the 7002 "*.domain.tld" names and more effective hash for usual names. 7003 7004 *) Change: the "server_names_hash_max_size" and 7005 "server_names_hash_bucket_size" directives. 7006 7007 *) Change: the "server_names_hash" and "server_names_hash_threshold" 7008 directives were canceled. 7009 7010 *) Feature: the "valid_referers" directive uses the hash site names. 7011 7012 *) Change: now the "valid_referers" directive checks the site names only 7013 without the URI part. 7014 7015 *) Bugfix: some ".domain.tld" names incorrectly processed by the 7016 ngx_http_map_module. 7017 7018 *) Bugfix: segmentation fault was occurred if configuration file did not 7019 exist; the bug had appeared in 0.3.12. 7020 7021 *) Bugfix: on 64-bit platforms segmentation fault may occurred on start; 7022 the bug had appeared in 0.3.16. 7023 7024 7025Changes with nginx 0.3.17 18 Dec 2005 7026 7027 *) Change: now on Linux configure checks the presence of epoll and 7028 sendfile64() in kernel. 7029 7030 *) Feature: the "map" directive supports domain names in the 7031 ".domain.tld" form. 7032 7033 *) Bugfix: the timeouts were not used in SSL handshake; the bug had 7034 appeared in 0.2.4. 7035 7036 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive. 7037 7038 *) Bugfix: when the HTTPS protocol was used in the "proxy_pass" 7039 directive the port 80 was used by default. 7040 7041 7042Changes with nginx 0.3.16 16 Dec 2005 7043 7044 *) Feature: the ngx_http_map_module. 7045 7046 *) Feature: the "types_hash_max_size" and "types_hash_bucket_size" 7047 directives. 7048 7049 *) Feature: the "ssi_value_length" directive. 7050 7051 *) Feature: the "worker_rlimit_core" directive. 7052 7053 *) Workaround: the connection number in logs was always 1 if nginx was 7054 built by the icc 8.1 or 9.0 compilers with optimization for 7055 Pentium 4. 7056 7057 *) Bugfix: the "config timefmt" SSI command set incorrect time format. 7058 7059 *) Bugfix: nginx did not close connection to IMAP/POP3 backend for the 7060 SSL connections; the bug had appeared in 0.3.13. 7061 Thanks to Rob Mueller. 7062 7063 *) Bugfix: segmentation fault may occurred in at SSL shutdown; the bug 7064 had appeared in 0.3.13. 7065 7066 7067Changes with nginx 0.3.15 07 Dec 2005 7068 7069 *) Feature: the new 444 code of the "return" directive to close 7070 connection. 7071 7072 *) Feature: the "so_keepalive" directive in IMAP/POP3 proxy. 7073 7074 *) Bugfix: if there are unclosed connection nginx now calls abort() only 7075 on graceful quit and active "debug_points" directive. 7076 7077 7078Changes with nginx 0.3.14 05 Dec 2005 7079 7080 *) Bugfix: in the 304 response the body was transferred; the bug had 7081 appeared in 0.3.13. 7082 7083 7084Changes with nginx 0.3.13 05 Dec 2005 7085 7086 *) Feature: the IMAP/POP3 proxy supports STARTTLS and STLS. 7087 7088 *) Bugfix: the IMAP/POP3 proxy did not work with the select, poll, and 7089 /dev/poll methods. 7090 7091 *) Bugfix: in SSI handling. 7092 7093 *) Bugfix: now Solaris sendfilev() is not used to transfer the client 7094 request body to FastCGI-server via the unix domain socket. 7095 7096 *) Bugfix: the "auth_basic" directive did not disable the authorization; 7097 the bug had appeared in 0.3.11. 7098 7099 7100Changes with nginx 0.3.12 26 Nov 2005 7101 7102 *) Security: if nginx was built with the ngx_http_realip_module and the 7103 "satisfy_any on" directive was used, then access and authorization 7104 directives did not work. The ngx_http_realip_module was not built and 7105 is not built by default. 7106 7107 *) Change: the "$time_gmt" variable name was changed to "$time_local". 7108 7109 *) Change: the "proxy_header_buffer_size" and 7110 "fastcgi_header_buffer_size" directives was renamed to the 7111 "proxy_buffer_size" and "fastcgi_buffer_size" directives. 7112 7113 *) Feature: the ngx_http_memcached_module. 7114 7115 *) Feature: the "proxy_buffering" directive. 7116 7117 *) Bugfix: the changes in accept mutex handling when the "rtsig" method 7118 was used; the bug had appeared in 0.3.0. 7119 7120 *) Bugfix: if the client sent the "Transfer-Encoding: chunked" header 7121 line, then nginx returns the 411 error. 7122 7123 *) Bugfix: if the "auth_basic" directive was inherited from the http 7124 level, then the realm in the "WWW-Authenticate" header line was 7125 without the "Basic realm" text. 7126 7127 *) Bugfix: if the "combined" format was explicitly specified in the 7128 "access_log" directive, then the empty lines was written to the log; 7129 the bug had appeared in 0.3.8. 7130 7131 *) Bugfix: nginx did not run on the sparc platform under any OS except 7132 Solaris. 7133 7134 *) Bugfix: now it is not necessary to place space between the quoted 7135 string and closing bracket in the "if" directive. 7136 7137 7138Changes with nginx 0.3.11 15 Nov 2005 7139 7140 *) Bugfix: nginx did not pass the client request headers and body while 7141 proxying; the bug had appeared in 0.3.10. 7142 7143 7144Changes with nginx 0.3.10 15 Nov 2005 7145 7146 *) Change: the "valid_referers" directive and the "$invalid_referer" 7147 variable were moved to the new ngx_http_referer_module from the 7148 ngx_http_rewrite_module. 7149 7150 *) Change: the "$apache_bytes_sent" variable name was changed to 7151 "$body_bytes_sent". 7152 7153 *) Feature: the "$sent_http_..." variables. 7154 7155 *) Feature: the "if" directive supports the "=" and "!=" operations. 7156 7157 *) Feature: the "proxy_pass" directive supports the HTTPS protocol. 7158 7159 *) Feature: the "proxy_set_body" directive. 7160 7161 *) Feature: the "post_action" directive. 7162 7163 *) Feature: the ngx_http_empty_gif_module. 7164 7165 *) Feature: the "worker_cpu_affinity" directive for Linux. 7166 7167 *) Bugfix: the "rewrite" directive did not unescape URI part in 7168 redirect, now it is unescaped except the %00-%25 and %7F-%FF 7169 characters. 7170 7171 *) Bugfix: nginx could not be built by the icc 9.0 compiler. 7172 7173 *) Bugfix: if the SSI was enabled for zero size static file, then the 7174 chunked response was encoded incorrectly. 7175 7176 7177Changes with nginx 0.3.9 10 Nov 2005 7178 7179 *) Bugfix: nginx considered URI as unsafe if two any symbols was between 7180 two slashes; the bug had appeared in 0.3.8. 7181 7182 7183Changes with nginx 0.3.8 09 Nov 2005 7184 7185 *) Security: nginx now checks URI got from a backend in 7186 "X-Accel-Redirect" header line or in SSI file for the "/../" paths 7187 and zeroes. 7188 7189 *) Change: nginx now does not treat the empty user name in the 7190 "Authorization" header line as valid one. 7191 7192 *) Feature: the "ssl_session_timeout" directives of the 7193 ngx_http_ssl_module and ngx_imap_ssl_module. 7194 7195 *) Feature: the "auth_http_header" directive of the 7196 ngx_imap_auth_http_module. 7197 7198 *) Feature: the "add_header" directive. 7199 7200 *) Feature: the ngx_http_realip_module. 7201 7202 *) Feature: the new variables to use in the "log_format" directive: 7203 $bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri, 7204 $request_time, $request_length, $upstream_status, 7205 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set, 7206 $connection, $pipe, and $msec. The parameters in the "%name" form 7207 will be canceled soon. 7208 7209 *) Change: now the false variable values in the "if" directive are the 7210 empty string "" and string starting with "0". 7211 7212 *) Bugfix: while using proxied or FastCGI-server nginx may leave 7213 connections and temporary files with client requests in open state. 7214 7215 *) Bugfix: the worker processes did not flush the buffered logs on 7216 graceful exit. 7217 7218 *) Bugfix: if the request URI was changes by the "rewrite" directive and 7219 the request was proxied in location given by regular expression, then 7220 the incorrect request was transferred to backend; the bug had 7221 appeared in 0.2.6. 7222 7223 *) Bugfix: the "expires" directive did not remove the previous "Expires" 7224 header. 7225 7226 *) Bugfix: nginx may stop to accept requests if the "rtsig" method and 7227 several worker processes were used. 7228 7229 *) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in 7230 SSI commands. 7231 7232 *) Bugfix: if the response was ended just after the SSI command and 7233 gzipping was used, then the response did not transferred complete or 7234 did not transferred at all. 7235 7236 7237Changes with nginx 0.3.7 27 Oct 2005 7238 7239 *) Feature: the "access_log" supports the "buffer=" parameter. 7240 7241 *) Bugfix: nginx could not be built on platforms different from i386, 7242 amd64, sparc, and ppc; the bug had appeared in 0.3.2. 7243 7244 7245Changes with nginx 0.3.6 24 Oct 2005 7246 7247 *) Change: now the IMAP/POP3 proxy do not send the empty login to 7248 authorization server. 7249 7250 *) Feature: the "log_format" supports the variables in the $name form. 7251 7252 *) Bugfix: if at least in one server was no the "listen" directive, then 7253 nginx did not listen on the 80 port; the bug had appeared in 0.3.3. 7254 7255 *) Bugfix: if the URI part is omitted in "proxy_pass" directive, the 80 7256 port was always used. 7257 7258 7259Changes with nginx 0.3.5 21 Oct 2005 7260 7261 *) Bugfix: the segmentation fault may occurred if the IMAP/POP3 login 7262 was changed by authorization server; the bug had appeared in 0.2.2. 7263 7264 *) Bugfix: the accept mutex did not work and all connections were 7265 handled by one process; the bug had appeared in 0.3.3. 7266 7267 *) Bugfix: the timeout did not work if the "rtsig" method and the 7268 "timer_resolution" directive were used. 7269 7270 7271Changes with nginx 0.3.4 19 Oct 2005 7272 7273 *) Bugfix: nginx could not be built on Linux 2.4+ and MacOS X; the bug 7274 had appeared in 0.3.3. 7275 7276 7277Changes with nginx 0.3.3 19 Oct 2005 7278 7279 *) Change: the "bl" and "af" parameters of the "listen" directive was 7280 renamed to the "backlog" and "accept_filter". 7281 7282 *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" 7283 directive. 7284 7285 *) Change: the "$msec" log parameter does not require now the additional 7286 the gettimeofday() system call. 7287 7288 *) Feature: the -t switch now tests the "listen" directives. 7289 7290 *) Bugfix: if the invalid address was specified in the "listen" 7291 directive, then after the -HUP signal nginx left an open socket in 7292 the CLOSED state. 7293 7294 *) Bugfix: the mime type may be incorrectly set to default value for 7295 index file with variable in the name; the bug had appeared in 0.3.0. 7296 7297 *) Feature: the "timer_resolution" directive. 7298 7299 *) Feature: the millisecond "$upstream_response_time" log parameter. 7300 7301 *) Bugfix: a temporary file with client request body now is removed just 7302 after the response header was transferred to a client. 7303 7304 *) Bugfix: OpenSSL 0.9.6 compatibility. 7305 7306 *) Bugfix: the SSL certificate and key file paths could not be relative. 7307 7308 *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in the 7309 ngx_imap_ssl_module. 7310 7311 *) Bugfix: the "ssl_protocols" directive allowed to specify the single 7312 protocol only. 7313 7314 7315Changes with nginx 0.3.2 12 Oct 2005 7316 7317 *) Feature: the Sun Studio 10 C compiler support. 7318 7319 *) Feature: the "proxy_upstream_max_fails", 7320 "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and 7321 "fastcgi_upstream_fail_timeout" directives. 7322 7323 7324Changes with nginx 0.3.1 10 Oct 2005 7325 7326 *) Bugfix: the segmentation fault occurred when the signal queue 7327 overflowed if the "rtsig" method was used; the bug had appeared in 7328 0.2.0. 7329 7330 *) Change: correct handling of the "\\", "\"", "\'", and "\$" pairs in 7331 SSI. 7332 7333 7334Changes with nginx 0.3.0 07 Oct 2005 7335 7336 *) Change: the 10-days live time limit of worker process was eliminated. 7337 The limit was introduced because of millisecond timers overflow. 7338 7339 7340Changes with nginx 0.2.6 05 Oct 2005 7341 7342 *) Change: while using load-balancing the time before the failed backend 7343 retry was decreased from 60 to 10 seconds. 7344 7345 *) Change: the "proxy_pass_unparsed_uri" was canceled, the original URI 7346 now passed, if the URI part is omitted in "proxy_pass" directive. 7347 7348 *) Feature: the "error_page" directive supports redirects and allows 7349 more flexible to change an error code. 7350 7351 *) Change: the charset in the "Content-Type" header line now is ignored 7352 in proxied subrequests. 7353 7354 *) Bugfix: if the URI was changed in the "if" block and request did not 7355 found new configuration, then the ngx_http_rewrite_module rules ran 7356 again. 7357 7358 *) Bugfix: if the "set" directive set the ngx_http_geo_module variable 7359 in some configuration part, the this variable was not available in 7360 other configuration parts and the "using uninitialized variable" 7361 error was occurred; the bug had appeared in 0.2.2. 7362 7363 7364Changes with nginx 0.2.5 04 Oct 2005 7365 7366 *) Change: the duplicate value of the ngx_http_geo_module variable now 7367 causes the warning and changes old value. 7368 7369 *) Feature: the ngx_http_ssi_module supports the "set" command. 7370 7371 *) Feature: the ngx_http_ssi_module supports the "file" parameter in the 7372 "include" command. 7373 7374 *) Feature: the ngx_http_ssi_module supports the variable value 7375 substitutions in expressions of the "if" command. 7376 7377 7378Changes with nginx 0.2.4 03 Oct 2005 7379 7380 *) Feature: the ngx_http_ssi_module supports "$var=text", "$var!=text", 7381 "$var=/text/", and "$var!=/text/" expressions in the "if" command. 7382 7383 *) Bugfix: in proxying location without trailing slash; the bug had 7384 appeared in 0.1.44. 7385 7386 *) Bugfix: the segmentation fault may occurred if the "rtsig" method was 7387 used; the bug had appeared in 0.2.0. 7388 7389 7390Changes with nginx 0.2.3 30 Sep 2005 7391 7392 *) Bugfix: nginx could not be built without the --with-debug option; the 7393 bug had appeared in 0.2.2. 7394 7395 7396Changes with nginx 0.2.2 30 Sep 2005 7397 7398 *) Feature: the "config errmsg" command of the ngx_http_ssi_module. 7399 7400 *) Change: the ngx_http_geo_module variables can be overridden by the 7401 "set" directive. 7402 7403 *) Feature: the "ssl_protocols" and "ssl_prefer_server_ciphers" 7404 directives of the ngx_http_ssl_module and ngx_imap_ssl_module. 7405 7406 *) Bugfix: the ngx_http_autoindex_module did not show correctly the long 7407 file names; 7408 7409 *) Bugfix: the ngx_http_autoindex_module now do not show the files 7410 starting by dot. 7411 7412 *) Bugfix: if the SSL handshake failed then another connection may be 7413 closed too. 7414 Thanks to Rob Mueller. 7415 7416 *) Bugfix: the export versions of MSIE 5.x could not connect via HTTPS. 7417 7418 7419Changes with nginx 0.2.1 23 Sep 2005 7420 7421 *) Bugfix: if all backend using in load-balancing failed after one 7422 error, then nginx may got caught in an endless loop; the bug had 7423 appeared in 0.2.0. 7424 7425 7426Changes with nginx 0.2.0 23 Sep 2005 7427 7428 *) The pid-file names used during online upgrade was changed and now is 7429 not required a manual rename operation. The old master process adds 7430 the ".oldbin" suffix to its pid-file and executes a new binary file. 7431 The new master process creates usual pid-file without the ".newbin" 7432 suffix. If the master process exits, then old master process renames 7433 back its pid-file with the ".oldbin" suffix to the pid-file without 7434 suffix. 7435 7436 *) Change: the "worker_connections" directive, new name of the 7437 "connections" directive; now the directive specifies maximum number 7438 of connections, but not maximum socket descriptor number. 7439 7440 *) Feature: SSL supports the session cache inside one worker process. 7441 7442 *) Feature: the "satisfy_any" directive. 7443 7444 *) Change: the ngx_http_access_module and ngx_http_auth_basic_module do 7445 not run for subrequests. 7446 7447 *) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending" 7448 directives. 7449 7450 *) Bugfix: if all backend using in load-balancing failed after one 7451 error, then nginx did not try do connect to them during 60 seconds. 7452 7453 *) Bugfix: in IMAP/POP3 command argument parsing. 7454 Thanks to Rob Mueller. 7455 7456 *) Bugfix: errors while using SSL in IMAP/POP3 proxy. 7457 7458 *) Bugfix: errors while using SSI and gzipping. 7459 7460 *) Bugfix: the "Expires" and "Cache-Control" header lines were omitted 7461 from the 304 responses. 7462 Thanks to Alexandr Kukushkin. 7463 7464 7465Changes with nginx 0.1.45 08 Sep 2005 7466 7467 *) Change: the "ssl_engine" directive was canceled in the 7468 ngx_http_ssl_module and now is introduced at global level. 7469 7470 *) Bugfix: the responses with SSI subrequests did not transferred via 7471 SSL connection. 7472 7473 *) Various bug fixes in the IMAP/POP3 proxy. 7474 7475 7476Changes with nginx 0.1.44 06 Sep 2005 7477 7478 *) Feature: the IMAP/POP3 proxy supports SSL. 7479 7480 *) Feature: the "proxy_timeout" directive of the ngx_imap_proxy_module. 7481 7482 *) Feature: the "userid_mark" directive. 7483 7484 *) Feature: the $remote_user variable value is determined independently 7485 of authorization use. 7486 7487 7488Changes with nginx 0.1.43 30 Aug 2005 7489 7490 *) Feature: the listen(2) backlog in the "listen" directive can be 7491 changed using the -HUP signal. 7492 7493 *) Feature: the geo2nginx.pl script was added to contrib. 7494 7495 *) Change: the FastCGI parameters with the empty values now are passed 7496 to a server. 7497 7498 *) Bugfix: the segmentation fault occurred or the worker process may got 7499 caught in an endless loop if the proxied or FastCGI server sent the 7500 "Cache-Control" header line and the "expires" directive was used; in 7501 the proxied mode the bug had appeared in 0.1.29. 7502 7503 7504Changes with nginx 0.1.42 23 Aug 2005 7505 7506 *) Bugfix: if the request URI had a zero length after the processing in 7507 the ngx_http_proxy_module, then the segmentation fault or bus error 7508 occurred in the ngx_http_proxy_module. 7509 7510 *) Bugfix: the "limit_rate" directive did not work inside the "if" 7511 block; the bug had appeared in 0.1.38. 7512 7513 7514Changes with nginx 0.1.41 25 Jul 2005 7515 7516 *) Bugfix: if the variable was used in the configuration file, then it 7517 can not be used in SSI. 7518 7519 7520Changes with nginx 0.1.40 22 Jul 2005 7521 7522 *) Bugfix: if a client sent too long header line, then the request 7523 information did not logged in the error log. 7524 7525 *) Bugfix: the "Set-Cookie" header line was not transferred when the 7526 "X-Accel-Redirect" was used; the bug had appeared in 0.1.39. 7527 7528 *) Bugfix: the "Content-Disposition" header line was not transferred 7529 when the "X-Accel-Redirect" was used. 7530 7531 *) Bugfix: the master process did not close the listen socket on the 7532 SIGQUIT signal. 7533 7534 *) Bugfix: after on-line upgrade on Linux and Solaris the process name 7535 became shorter in the "ps" command. 7536 7537 7538Changes with nginx 0.1.39 14 Jul 2005 7539 7540 *) The changes in the ngx_http_charset_module: the "default_charset" 7541 directive was canceled; the "charset" directive sets the response 7542 charset; the "source_charset" directive sets the source charset only. 7543 7544 *) Bugfix: the backend "WWW-Authenticate" header line did not 7545 transferred while the 401 response code redirecting. 7546 7547 *) Bugfix: the ngx_http_proxy_module and ngx_http_fastcgi_module may 7548 close a connection before anything was transferred to a client; the 7549 bug had appeared in 0.1.38. 7550 7551 *) Workaround: the Linux glibc crypt_r() initialization bug. 7552 7553 *) Bugfix: the ngx_http_ssi_module did not support the relative URI in 7554 the "include virtual" command. 7555 7556 *) Bugfix: if the backend response had the "Location" header line and 7557 nginx should not rewrite this line, then the 500 code response body 7558 was transferred; the bug had appeared in 0.1.29. 7559 7560 *) Bugfix: some directives of the ngx_http_proxy_module and 7561 ngx_http_fastcgi_module were not inherited from the server to the 7562 location level; the bug had appeared in 0.1.29. 7563 7564 *) Bugfix: the ngx_http_ssl_module did not support the certificate 7565 chain. 7566 7567 *) Bugfix: the ngx_http_autoindex_module did not show correctly the long 7568 file names; the bug had appeared in 0.1.38. 7569 7570 *) Bugfixes in IMAP/POP3 proxy in interaction with a backend at the 7571 login state. 7572 7573 7574Changes with nginx 0.1.38 08 Jul 2005 7575 7576 *) Feature: the "limit_rate" directive is supported in proxy and FastCGI 7577 mode. 7578 7579 *) Feature: the "X-Accel-Limit-Rate" response header line is supported 7580 in proxy and FastCGI mode. 7581 7582 *) Feature: the "break" directive. 7583 7584 *) Feature: the "log_not_found" directive. 7585 7586 *) Bugfix: the response status code was not changed when request was 7587 redirected by the ""X-Accel-Redirect" header line. 7588 7589 *) Bugfix: the variables set by the "set" directive could not be used in 7590 SSI. 7591 7592 *) Bugfix: the segmentation fault may occurred if the SSI page has more 7593 than one remote subrequest. 7594 7595 *) Bugfix: nginx treated the backend response as invalid if the status 7596 line in the header was transferred in two packets; the bug had 7597 appeared in 0.1.29. 7598 7599 *) Feature: the "ssi_types" directive. 7600 7601 *) Feature: the "autoindex_exact_size" directive. 7602 7603 *) Bugfix: the ngx_http_autoindex_module did not support the long file 7604 names in UTF-8. 7605 7606 *) Feature: the IMAP/POP3 proxy. 7607 7608 7609Changes with nginx 0.1.37 23 Jun 2005 7610 7611 *) Change: now the "\n" is added to the end of the "nginx.pid" file. 7612 7613 *) Bugfix: the responses may be transferred not completely, if many 7614 parts or the big parts were included by SSI. 7615 7616 *) Bugfix: if all backends had returned the 404 response and the 7617 "http_404" parameter of the "proxy_next_upstream" or 7618 "fastcgi_next_upstream" directives was used, then nginx started to 7619 request all backends again. 7620 7621 7622Changes with nginx 0.1.36 15 Jun 2005 7623 7624 *) Change: if the request header has duplicate the "Host", "Connection", 7625 "Content-Length", or "Authorization" lines, then nginx now returns 7626 the 400 error. 7627 7628 *) Change: the "post_accept_timeout" directive was canceled. 7629 7630 *) Feature: the "default", "af=", "bl=", "deferred", and "bind" 7631 parameters of the "listen" directive. 7632 7633 *) Feature: the FreeBSD accept filters support. 7634 7635 *) Feature: the Linux TCP_DEFER_ACCEPT support. 7636 7637 *) Bugfix: the ngx_http_autoindex_module did not support the file names 7638 in UTF-8. 7639 7640 *) Bugfix: the new log file can be rotated by the -USR1 signal only if 7641 the reconfiguration by the -HUP signal was made twice. 7642 7643 7644Changes with nginx 0.1.35 07 Jun 2005 7645 7646 *) Feature: the "working_directory" directive. 7647 7648 *) Feature: the "port_in_redirect" directive. 7649 7650 *) Bugfix: the segmentation fault was occurred if the backend response 7651 header was in several packets; the bug had appeared in 0.1.29. 7652 7653 *) Bugfix: if more than 10 servers were configured or some server did 7654 not use the "listen" directive, then the segmentation fault was 7655 occurred on the start. 7656 7657 *) Bugfix: the segmentation fault might occur if the response was bigger 7658 than the temporary file. 7659 7660 *) Bugfix: nginx returned the 400 response on requests like 7661 "GET http://www.domain.com/uri HTTP/1.0"; the bug had appeared in 7662 0.1.28. 7663 7664 7665Changes with nginx 0.1.34 26 May 2005 7666 7667 *) Bugfix: the worker process may got caught in an endless loop if the 7668 big response part were include by SSI. 7669 7670 *) Bugfix: the variables set by the "set" directive were not available 7671 in SSI. 7672 7673 *) Feature: the "autoindex_localtime" directive. 7674 7675 *) Bugfix: the empty value of the "proxy_set_header" directive forbids 7676 the client request header line passing. 7677 7678 7679Changes with nginx 0.1.33 23 May 2005 7680 7681 *) Bugfix: nginx could not be built with the --without-pcre parameter; 7682 the bug had appeared in 0.1.29. 7683 7684 *) Bugfix: 3, 4, 7, and 8 the "proxy_set_header" directives in one level 7685 cause the bus fault on start up. 7686 7687 *) Bugfix: the HTTP protocol was specified in the HTTPS redirects. 7688 7689 *) Bugfix: if the "rewrite" directive used the captures inside the "if" 7690 directive, then the 500 error code was returned. 7691 7692 7693Changes with nginx 0.1.32 19 May 2005 7694 7695 *) Bugfix: the arguments were omitted in the redirects, issued by the 7696 "rewrite" directive; the bug had appeared in 0.1.29. 7697 7698 *) Feature: the "if" directive supports the captures in regular 7699 expressions. 7700 7701 *) Feature: the "set" directive supports the variables and the captures 7702 of regular expressions. 7703 7704 *) Feature: the "X-Accel-Redirect" response header line is supported in 7705 proxy and FastCGI mode. 7706 7707 7708Changes with nginx 0.1.31 16 May 2005 7709 7710 *) Bugfix: the response encrypted by SSL may not transferred complete. 7711 7712 *) Bugfix: errors while processing FastCGI response by SSI. 7713 7714 *) Bugfix: errors while using SSI and gzipping. 7715 7716 *) Bugfix: the redirect with the 301 code was transferred without 7717 response body; the bug had appeared in 0.1.30. 7718 7719 7720Changes with nginx 0.1.30 14 May 2005 7721 7722 *) Bugfix: the worker process may got caught in an endless loop if the 7723 SSI was used. 7724 7725 *) Bugfix: the response encrypted by SSL may not transferred complete. 7726 7727 *) Bugfix: if the length of the response part received at once from 7728 proxied or FastCGI server was equal to 500, then nginx returns the 7729 500 response code; in proxy mode the bug had appeared in 0.1.29 only. 7730 7731 *) Bugfix: nginx did not consider the directives with 8 or 9 parameters 7732 as invalid. 7733 7734 *) Feature: the "return" directive can return the 204 response code. 7735 7736 *) Feature: the "ignore_invalid_headers" directive. 7737 7738 7739Changes with nginx 0.1.29 12 May 2005 7740 7741 *) Feature: the ngx_http_ssi_module supports "include virtual" command. 7742 7743 *) Feature: the ngx_http_ssi_module supports the condition command like 7744 'if expr="$NAME"' and "else" and "endif" commands. Only one nested 7745 level is supported. 7746 7747 *) Feature: the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT 7748 variables and "config timefmt" command. 7749 7750 *) Feature: the "ssi_ignore_recycled_buffers" directive. 7751 7752 *) Bugfix: the "echo" command did not show the default value for the 7753 empty QUERY_STRING variable. 7754 7755 *) Change: the ngx_http_proxy_module was rewritten. 7756 7757 *) Feature: the "proxy_redirect", "proxy_pass_request_headers", 7758 "proxy_pass_request_body", and "proxy_method" directives. 7759 7760 *) Feature: the "proxy_set_header" directive. The "proxy_x_var" was 7761 canceled and must be replaced with the proxy_set_header directive. 7762 7763 *) Change: the "proxy_preserve_host" is canceled and must be replaced 7764 with the "proxy_set_header Host $host" and the "proxy_redirect off" 7765 directives, the "proxy_set_header Host $host:$proxy_port" directive 7766 and the appropriate proxy_redirect directives. 7767 7768 *) Change: the "proxy_set_x_real_ip" is canceled and must be replaced 7769 with the "proxy_set_header X-Real-IP $remote_addr" directive. 7770 7771 *) Change: the "proxy_add_x_forwarded_for" is canceled and must be 7772 replaced with 7773 the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for" 7774 directive. 7775 7776 *) Change: the "proxy_set_x_url" is canceled and must be replaced with 7777 the "proxy_set_header X-URL http://$host:$server_port$request_uri" 7778 directive. 7779 7780 *) Feature: the "fastcgi_param" directive. 7781 7782 *) Change: the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" 7783 directive are canceled and must be replaced with the fastcgi_param 7784 directives. 7785 7786 *) Feature: the "index" directive can use the variables. 7787 7788 *) Feature: the "index" directive can be used at http and server levels. 7789 7790 *) Change: the last index only in the "index" directive can be absolute. 7791 7792 *) Feature: the "rewrite" directive can use the variables. 7793 7794 *) Feature: the "internal" directive. 7795 7796 *) Feature: the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, 7797 SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, 7798 REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables. 7799 7800 *) Change: nginx now passes the invalid lines in a client request 7801 headers or a backend response header. 7802 7803 *) Bugfix: if the backend did not transfer response for a long time and 7804 the "send_timeout" was less than "proxy_read_timeout", then nginx 7805 returned the 408 response. 7806 7807 *) Bugfix: the segmentation fault was occurred if the backend sent an 7808 invalid line in response header; the bug had appeared in 0.1.26. 7809 7810 *) Bugfix: the segmentation fault may occurred in FastCGI fault 7811 tolerance configuration. 7812 7813 *) Bugfix: the "expires" directive did not remove the previous "Expires" 7814 and "Cache-Control" headers. 7815 7816 *) Bugfix: nginx did not take into account trailing dot in "Host" header 7817 line. 7818 7819 *) Bugfix: the ngx_http_auth_module did not work under Linux. 7820 7821 *) Bugfix: the rewrite directive worked incorrectly, if the arguments 7822 were in a request. 7823 7824 *) Bugfix: nginx could not be built on MacOS X. 7825 7826 7827Changes with nginx 0.1.28 08 Apr 2005 7828 7829 *) Bugfix: nginx hogs CPU while proxying the huge files. 7830 7831 *) Bugfix: nginx could not be built by gcc 4.0 on Linux. 7832 7833 7834Changes with nginx 0.1.27 28 Mar 2005 7835 7836 *) Feature: the "blocked" parameter of the "valid_referers" directive. 7837 7838 *) Change: the errors while handling the request header now logged at 7839 "info" level. The server name and the "Host" and "Referer" header 7840 lines also logged. 7841 7842 *) Change: the "Host" header line is also logged in error log. 7843 7844 *) Feature: the proxy_pass_unparsed_uri directive. The special handling 7845 of the "://" symbols in URI, appeared in 0.1.11 version, now is 7846 canceled. 7847 7848 *) Bugfix: nginx could not be built on FreeBSD and Linux, if the 7849 --without-ngx_http_auth_basic_module configuration parameter was 7850 used. 7851 7852 7853Changes with nginx 0.1.26 22 Mar 2005 7854 7855 *) Change: the invalid client header lines are now ignored and logged at 7856 the info level. 7857 7858 *) Change: the server name is also logged in error log. 7859 7860 *) Feature: the ngx_http_auth_basic_module module and the auth_basic and 7861 auth_basic_user_file directives. 7862 7863 7864Changes with nginx 0.1.25 19 Mar 2005 7865 7866 *) Bugfix: nginx did run on Linux parisc. 7867 7868 *) Feature: nginx now does not start under FreeBSD if the sysctl 7869 kern.ipc.somaxconn value is too big. 7870 7871 *) Bugfix: if a request was internally redirected by the 7872 ngx_http_index_module module to the ngx_http_proxy_module or 7873 ngx_http_fastcgi_module modules, then the index file was not closed 7874 after request completion. 7875 7876 *) Feature: the "proxy_pass" can be used in location with regular 7877 expression. 7878 7879 *) Feature: the ngx_http_rewrite_filter_module module supports the 7880 condition like "if ($HTTP_USER_AGENT ~ MSIE)". 7881 7882 *) Bugfix: nginx started too slow if the large number of addresses and 7883 text values were used in the "geo" directive. 7884 7885 *) Change: a variable name must be declared as "$name" in the "geo" 7886 directive. The previous variant without "$" is still supported, but 7887 will be removed soon. 7888 7889 *) Feature: the "%{VARIABLE}v" logging parameter. 7890 7891 *) Feature: the "set $name value" directive. 7892 7893 *) Bugfix: gcc 4.0 compatibility. 7894 7895 *) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive. 7896 7897 7898Changes with nginx 0.1.24 04 Mar 2005 7899 7900 *) Feature: the ngx_http_ssi_filter_module supports the QUERY_STRING and 7901 DOCUMENT_URI variables. 7902 7903 *) Bugfix: the ngx_http_autoindex_module may some times return the 404 7904 response for existent directory, if this directory was used in 7905 "alias" directive. 7906 7907 *) Bugfix: the ngx_http_ssi_filter_module ran incorrectly for large 7908 responses. 7909 7910 *) Bugfix: the lack of the "Referer" header line was always accounted as 7911 valid referrer. 7912 7913 7914Changes with nginx 0.1.23 01 Mar 2005 7915 7916 *) Feature: the ngx_http_ssi_filter_module and the ssi, 7917 ssi_silent_errors, and ssi_min_file_chunk directives. The 'echo 7918 var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands are 7919 supported. 7920 7921 *) Feature: the %request_time log parameter. 7922 7923 *) Feature: if the request has no the "Host" header line, then the 7924 "proxy_preserve_host" directive set this header line to the first 7925 server name of the "server_name" directive. 7926 7927 *) Bugfix: nginx could not be built on platforms different from i386, 7928 amd64, sparc, and ppc; the bug had appeared in 0.1.22. 7929 7930 *) Bugfix: the ngx_http_autoindex_module now shows the information not 7931 about the symlink, but about file or directory it points to. 7932 7933 *) Bugfix: the %apache_length parameter logged the negative length of 7934 the response header if the no response was transferred to a client. 7935 7936 7937Changes with nginx 0.1.22 22 Feb 2005 7938 7939 *) Bugfix: the ngx_http_stub_status_module showed incorrect handled 7940 connections statistics if the proxying or FastCGI server were used. 7941 7942 *) Bugfix: the installation paths were incorrectly quoted on Linux and 7943 Solaris; the bug had appeared in 0.1.21. 7944 7945 7946Changes with nginx 0.1.21 22 Feb 2005 7947 7948 *) Bugfix: the ngx_http_stub_status_module showed incorrect statistics 7949 if "rtsig" method was used or if several worker process ran on SMP. 7950 7951 *) Bugfix: nginx could not be built by the icc compiler on Linux or if 7952 the zlib-1.2.x library was building from sources. 7953 7954 *) Bugfix: nginx could not be built on NetBSD 2.0. 7955 7956 7957Changes with nginx 0.1.20 17 Feb 2005 7958 7959 *) Feature: the new "script_filename" and "remote_port" parameters of 7960 the fastcgi_params directive. 7961 7962 *) Bugfix: the FastCGI stderr stream was handled incorrectly. 7963 7964 7965Changes with nginx 0.1.19 16 Feb 2005 7966 7967 *) Bugfix: now, if request contains the zero, then the 404 error is 7968 returned for the local requests. 7969 7970 *) Bugfix: nginx could not be built on NetBSD 2.0. 7971 7972 *) Bugfix: the timeout may occur while reading of the client request 7973 body via SSL connections. 7974 7975 7976Changes with nginx 0.1.18 09 Feb 2005 7977 7978 *) Workaround: the default values of the devpoll_events and the 7979 devpoll_changes directives changed from 512 to 32 to be compatible 7980 with Solaris 10. 7981 7982 *) Bugfix: the proxy_set_x_var and fastcgi_set_var directives were not 7983 inherited. 7984 7985 *) Bugfix: in a redirect rewrite directive arguments were concatenated 7986 with URI by an "&" rather than a "?". 7987 7988 *) Bugfix: the lines without trailing ";" in the file being included by 7989 the ngx_http_geo_module were silently ignored. 7990 7991 *) Feature: the ngx_http_stub_status_module. 7992 7993 *) Bugfix: the unknown log format in the access_log directive caused the 7994 segmentation fault. 7995 7996 *) Feature: the new "document_root" parameter of the fastcgi_params 7997 directive. 7998 7999 *) Feature: the fastcgi_redirect_errors directive. 8000 8001 *) Feature: the new "break" modifier of the "rewrite" directive allows 8002 to stop the rewrite/location cycle and sets the current configuration 8003 to the request. 8004 8005 8006Changes with nginx 0.1.17 03 Feb 2005 8007 8008 *) Change: the ngx_http_rewrite_module was rewritten from the scratch. 8009 Now it is possible to redirect, to return the error codes, to check 8010 the variables and referrers. The directives can be used inside 8011 locations. The redirect directive was canceled. 8012 8013 *) Feature: the ngx_http_geo_module. 8014 8015 *) Feature: the proxy_set_x_var and fastcgi_set_var directives. 8016 8017 *) Bugfix: the location configuration with "=" modifier may be used in 8018 another location. 8019 8020 *) Bugfix: the correct content type was set only for requests that use 8021 small caps letters in extension. 8022 8023 *) Bugfix: if the proxy_pass or fastcgi_pass directives were set in the 8024 location, and access was denied, and the error was redirected to a 8025 static page, then the segmentation fault occurred. 8026 8027 *) Bugfix: if in a proxied "Location" header was a relative URL, then a 8028 host name and a slash were added to them; the bug had appeared in 8029 0.1.14. 8030 8031 *) Bugfix: the system error message was not logged on Linux. 8032 8033 8034Changes with nginx 0.1.16 25 Jan 2005 8035 8036 *) Bugfix: if the response were transferred by chunks, then on the HEAD 8037 request the final chunk was issued. 8038 8039 *) Bugfix: the "Connection: keep-alive" header were issued, even if the 8040 keepalive_timeout directive forbade the keep-alive use. 8041 8042 *) Bugfix: the errors in the ngx_http_fastcgi_module caused the 8043 segmentation faults. 8044 8045 *) Bugfix: the compressed response encrypted by SSL may not transferred 8046 complete. 8047 8048 *) Bugfix: the TCP-specific TCP_NODELAY, TCP_NOPUSH, and TCP_CORK 8049 options, are not used for the unix domain sockets. 8050 8051 *) Feature: the rewrite directive supports the arguments rewriting. 8052 8053 *) Bugfix: the response code 400 was returned for the POST request with 8054 the "Content-Length: 0" header; the bug had appeared in 0.1.14. 8055 8056 8057Changes with nginx 0.1.15 19 Jan 2005 8058 8059 *) Bugfix: the error while the connecting to the FastCGI server caused 8060 segmentation fault. 8061 8062 *) Bugfix: the correct handling of the regular expression, that has 8063 different number of the captures and substitutions. 8064 8065 *) Feature: the location, that is passed to the FastCGI server, can be 8066 regular expression. 8067 8068 *) Bugfix: the FastCGI's parameter REQUEST_URI is now passed with the 8069 arguments and in the original state. 8070 8071 *) Bugfix: the ngx_http_rewrite_module module was required to be built 8072 to use the regular expressions in locations. 8073 8074 *) Bugfix: the directive "proxy_preserve_host on" adds port 80 to the 8075 "Host" headers, if upstream listen on port 80; the bug had appeared 8076 in 0.1.14. 8077 8078 *) Bugfix: the same paths in autoconfiguration parameters 8079 --http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH, or 8080 --http-client-body-temp-path=PATH and --http-fastcgi-temp-path=PATH 8081 caused segmentation fault. 8082 8083 8084Changes with nginx 0.1.14 18 Jan 2005 8085 8086 *) Feature: the autoconfiguration directives: 8087 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and 8088 --http-fastcgi-temp-path=PATH 8089 8090 *) Change: the directory name for the temporary files with the client 8091 request body is specified by directive client_body_temp_path, by 8092 default it is <prefix>/client_body_temp. 8093 8094 *) Feature: the ngx_http_fastcgi_module and the directives: 8095 fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params, 8096 fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout, 8097 fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers, 8098 fastcgi_busy_buffers_size, fastcgi_temp_path, 8099 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, 8100 fastcgi_next_upstream, and fastcgi_x_powered_by. 8101 8102 *) Bugfix: the "[alert] zero size buf" error; the bug had appeared in 8103 0.1.3. 8104 8105 *) Change: the URI must be specified after the host name in the 8106 proxy_pass directive. 8107 8108 *) Change: the %3F symbol in the URI was considered as the argument 8109 string start. 8110 8111 *) Feature: the unix domain sockets support in the 8112 ngx_http_proxy_module. 8113 8114 *) Feature: the ssl_engine and ssl_ciphers directives. 8115 Thanks to Sergey Skvortsov for SSL-accelerator. 8116 8117 8118Changes with nginx 0.1.13 21 Dec 2004 8119 8120 *) Feature: the server_names_hash and server_names_hash_threshold 8121 directives. 8122 8123 *) Bugfix: the *.domain.tld names in the "server_name" directive did not 8124 work. 8125 8126 *) Bugfix: the %request_length log parameter logged the incorrect 8127 length. 8128 8129 8130Changes with nginx 0.1.12 06 Dec 2004 8131 8132 *) Feature: the %request_length log parameter. 8133 8134 *) Bugfix: when using the /dev/poll, select and poll on the platforms, 8135 where these methods may do the false reports, there may be the long 8136 delay when the request was passed via the keep-alive connection. It 8137 may be at least on Solaris when using the /dev/poll. 8138 8139 *) Bugfix: the send_lowat directive is ignored on Linux because Linux 8140 does not support the SO_SNDLOWAT option. 8141 8142 8143Changes with nginx 0.1.11 02 Dec 2004 8144 8145 *) Feature: the worker_priority directive. 8146 8147 *) Change: both tcp_nopush and tcp_nodelay directives affect the 8148 transferred response. 8149 8150 *) Bugfix: nginx did not call initgroups(). 8151 Thanks to Andrew Sitnikov and Andrei Nigmatulin. 8152 8153 *) Change: now the ngx_http_autoindex_module shows the file size in the 8154 bytes. 8155 8156 *) Bugfix: the ngx_http_autoindex_module returned the 500 error if the 8157 broken symlink was in a directory. 8158 8159 *) Bugfix: the files bigger than 4G could not be transferred using 8160 sendfile. 8161 8162 *) Bugfix: if the backend was resolved to several backends and there was 8163 an error while the response waiting then process may got caught in an 8164 endless loop. 8165 8166 *) Bugfix: the worker process may exit with the "unknown cycle" message 8167 when the /dev/poll method was used. 8168 8169 *) Bugfix: "close() channel failed" errors. 8170 8171 *) Bugfix: the autodetection of the "nobody" and "nogroup" groups. 8172 8173 *) Bugfix: the send_lowat directive did not work on Linux. 8174 8175 *) Bugfix: the segmentation fault occurred if there was no events 8176 section in configuration. 8177 8178 *) Bugfix: nginx could not be built on OpenBSD. 8179 8180 *) Bugfix: the double slashes in "://" in the URI were converted to 8181 ":/". 8182 8183 8184Changes with nginx 0.1.10 26 Nov 2004 8185 8186 *) Bugfix: if the request without arguments contains "//", "/./", "/../" 8187 or "%XX" then the last character in the request line was lost; the 8188 bug had appeared in 0.1.9. 8189 8190 *) Bugfix: the fix in 0.1.9 for the files bigger than 2G on Linux did 8191 not work. 8192 8193 8194Changes with nginx 0.1.9 25 Nov 2004 8195 8196 *) Bugfix: the proxied request was sent without arguments if the request 8197 contains "//", "/./", "/../" or "%XX". 8198 8199 *) Bugfix: the large compressed responses may be transferred not 8200 completely. 8201 8202 *) Bugfix: the files bigger than 2G was not transferred on Linux that 8203 does not support sendfile64(). 8204 8205 *) Bugfix: while the build configuration on Linux the --with-poll_module 8206 parameter was required; the bug had appeared in 0.1.8. 8207 8208 8209Changes with nginx 0.1.8 20 Nov 2004 8210 8211 *) Bugfix: in the ngx_http_autoindex_module if the long file names were 8212 in the listing. 8213 8214 *) Feature: the "^~" modifier in the location directive. 8215 8216 *) Feature: the proxy_max_temp_file_size directive. 8217 8218 8219Changes with nginx 0.1.7 12 Nov 2004 8220 8221 *) Bugfix: on FreeBSD the segmentation fault may occur if the size of 8222 the transferred file was changed; the bug had appeared in 0.1.5. 8223 8224 8225Changes with nginx 0.1.6 11 Nov 2004 8226 8227 *) Bugfix: some location directive combinations with the regular 8228 expressions caused the wrong configuration choose. 8229 8230 8231Changes with nginx 0.1.5 11 Nov 2004 8232 8233 *) Bugfix: on Solaris and Linux there may be too many "recvmsg() 8234 returned not enough data" alerts. 8235 8236 *) Bugfix: there were the "writev() failed (22: Invalid argument)" 8237 errors on Solaris in proxy mode without sendfile. On other platforms 8238 that do not support sendfile at all the process got caught in an 8239 endless loop. 8240 8241 *) Bugfix: segmentation fault on Solaris in proxy mode and using 8242 sendfile. 8243 8244 *) Bugfix: segmentation fault on Solaris. 8245 8246 *) Bugfix: on-line upgrade did not work on Linux. 8247 8248 *) Bugfix: the ngx_http_autoindex_module module did not escape the 8249 spaces, the quotes, and the percent signs in the directory listing. 8250 8251 *) Change: the decrease of the copy operations. 8252 8253 *) Feature: the userid_p3p directive. 8254 8255 8256Changes with nginx 0.1.4 26 Oct 2004 8257 8258 *) Bugfix: in the ngx_http_autoindex_module. 8259 8260 8261Changes with nginx 0.1.3 25 Oct 2004 8262 8263 *) Feature: the ngx_http_autoindex_module and the autoindex directive. 8264 8265 *) Feature: the proxy_set_x_url directive. 8266 8267 *) Bugfix: proxy module may get caught in an endless loop when sendfile 8268 is not used. 8269 8270 8271Changes with nginx 0.1.2 21 Oct 2004 8272 8273 *) Feature: the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS 8274 options in configure. 8275 8276 *) Feature: the server_name directive supports *.domain.tld. 8277 8278 *) Bugfix: the portability improvements. 8279 8280 *) Bugfix: if configuration file was set in command line, the 8281 reconfiguration was impossible; the bug had appeared in 0.1.1. 8282 8283 *) Bugfix: proxy module may get caught in an endless loop when sendfile 8284 is not used. 8285 8286 *) Bugfix: with sendfile the response was not recoded according to the 8287 charset module directives; the bug had appeared in 0.1.1. 8288 8289 *) Bugfix: very seldom bug in the kqueue processing. 8290 8291 *) Bugfix: the gzip module compressed the proxied responses that was 8292 already compressed. 8293 8294 8295Changes with nginx 0.1.1 11 Oct 2004 8296 8297 *) Feature: the gzip_types directive. 8298 8299 *) Feature: the tcp_nodelay directive. 8300 8301 *) Feature: the send_lowat directive is working not only on OSes that 8302 support kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT. 8303 8304 *) Feature: the setproctitle() emulation for Linux and Solaris. 8305 8306 *) Bugfix: the "Location" header rewrite bug fixed while the proxying. 8307 8308 *) Bugfix: the ngx_http_chunked_module module may get caught in an 8309 endless loop. 8310 8311 *) Bugfix: the /dev/poll module bugs fixed. 8312 8313 *) Bugfix: the responses were corrupted when the temporary files were 8314 used while the proxying. 8315 8316 *) Bugfix: the unescaped requests were passed to the backend. 8317 8318 *) Bugfix: while the build configuration on Linux 2.4 the 8319 --with-poll_module parameter was required. 8320 8321 8322Changes with nginx 0.1.0 04 Oct 2004 8323 8324 *) The first public version. 8325 8326