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