0001
0002 Changes with nginx 1.12.2 17 Oct 2017
0003
0004 *) Bugfix: client SSL connections were immediately closed if deferred
0005 accept and the "proxy_protocol" parameter of the "listen" directive
0006 were used.
0007
0008 *) Bugfix: client connections might be dropped during configuration
0009 testing when using the "reuseport" parameter of the "listen"
0010 directive on Linux.
0011
0012 *) Bugfix: incorrect response length was returned on 32-bit platforms
0013 when requesting more than 4 gigabytes with multiple ranges.
0014
0015 *) Bugfix: switching to the next upstream server in the stream module
0016 did not work when using the "ssl_preread" directive.
0017
0018 *) Bugfix: when using HTTP/2 client request body might be corrupted.
0019
0020 *) Bugfix: in handling of client addresses when using unix domain
0021 sockets.
0022
0023
0024 Changes with nginx 1.12.1 11 Jul 2017
0025
0026 *) Security: a specially crafted request might result in an integer
0027 overflow and incorrect processing of ranges in the range filter,
0028 potentially resulting in sensitive information leak (CVE-2017-7529).
0029
0030
0031 Changes with nginx 1.12.0 12 Apr 2017
0032
0033 *) 1.12.x stable branch.
0034
0035
0036 Changes with nginx 1.11.13 04 Apr 2017
0037
0038 *) Feature: the "http_429" parameter of the "proxy_next_upstream",
0039 "fastcgi_next_upstream", "scgi_next_upstream", and
0040 "uwsgi_next_upstream" directives.
0041 Thanks to Piotr Sikora.
0042
0043 *) Bugfix: in memory allocation error handling.
0044
0045 *) Bugfix: requests might hang when using the "sendfile" and
0046 "timer_resolution" directives on Linux.
0047
0048 *) Bugfix: requests might hang when using the "sendfile" and "aio_write"
0049 directives with subrequests.
0050
0051 *) Bugfix: in the ngx_http_v2_module.
0052 Thanks to Piotr Sikora.
0053
0054 *) Bugfix: a segmentation fault might occur in a worker process when
0055 using HTTP/2.
0056
0057 *) Bugfix: requests might hang when using the "limit_rate",
0058 "sendfile_max_chunk", "limit_req" directives, or the $r->sleep()
0059 embedded perl method with subrequests.
0060
0061 *) Bugfix: in the ngx_http_slice_module.
0062
0063
0064 Changes with nginx 1.11.12 24 Mar 2017
0065
0066 *) Bugfix: nginx might hog CPU; the bug had appeared in 1.11.11.
0067
0068
0069 Changes with nginx 1.11.11 21 Mar 2017
0070
0071 *) Feature: the "worker_shutdown_timeout" directive.
0072
0073 *) Feature: vim syntax highlighting scripts improvements.
0074 Thanks to Wei-Ko Kao.
0075
0076 *) Bugfix: a segmentation fault might occur in a worker process if the
0077 $limit_rate variable was set to an empty string.
0078
0079 *) Bugfix: the "proxy_cache_background_update",
0080 "fastcgi_cache_background_update", "scgi_cache_background_update",
0081 and "uwsgi_cache_background_update" directives might work incorrectly
0082 if the "if" directive was used.
0083
0084 *) Bugfix: a segmentation fault might occur in a worker process if
0085 number of large_client_header_buffers in a virtual server was
0086 different from the one in the default server.
0087
0088 *) Bugfix: in the mail proxy server.
0089
0090
0091 Changes with nginx 1.11.10 14 Feb 2017
0092
0093 *) Change: cache header format has been changed, previously cached
0094 responses will be invalidated.
0095
0096 *) Feature: support of "stale-while-revalidate" and "stale-if-error"
0097 extensions in the "Cache-Control" backend response header line.
0098
0099 *) Feature: the "proxy_cache_background_update",
0100 "fastcgi_cache_background_update", "scgi_cache_background_update",
0101 and "uwsgi_cache_background_update" directives.
0102
0103 *) Feature: nginx is now able to cache responses with the "Vary" header
0104 line up to 128 characters long (instead of 42 characters in previous
0105 versions).
0106
0107 *) Feature: the "build" parameter of the "server_tokens" directive.
0108 Thanks to Tom Thorogood.
0109
0110 *) Bugfix: "[crit] SSL_write() failed" messages might appear in logs
0111 when handling requests with the "Expect: 100-continue" request header
0112 line.
0113
0114 *) Bugfix: the ngx_http_slice_module did not work in named locations.
0115
0116 *) Bugfix: a segmentation fault might occur in a worker process when
0117 using AIO after an "X-Accel-Redirect" redirection.
0118
0119 *) Bugfix: reduced memory consumption for long-lived requests using
0120 gzipping.
0121
0122
0123 Changes with nginx 1.11.9 24 Jan 2017
0124
0125 *) Bugfix: nginx might hog CPU when using the stream module; the bug had
0126 appeared in 1.11.5.
0127
0128 *) Bugfix: EXTERNAL authentication mechanism in mail proxy was accepted
0129 even if it was not enabled in the configuration.
0130
0131 *) Bugfix: a segmentation fault might occur in a worker process if the
0132 "ssl_verify_client" directive of the stream module was used.
0133
0134 *) Bugfix: the "ssl_verify_client" directive of the stream module might
0135 not work.
0136
0137 *) Bugfix: closing keepalive connections due to no free worker
0138 connections might be too aggressive.
0139 Thanks to Joel Cunningham.
0140
0141 *) Bugfix: an incorrect response might be returned when using the
0142 "sendfile" directive on FreeBSD and macOS; the bug had appeared in
0143 1.7.8.
0144
0145 *) Bugfix: a truncated response might be stored in cache when using the
0146 "aio_write" directive.
0147
0148 *) Bugfix: a socket leak might occur when using the "aio_write"
0149 directive.
0150
0151
0152 Changes with nginx 1.11.8 27 Dec 2016
0153
0154 *) Feature: the "absolute_redirect" directive.
0155
0156 *) Feature: the "escape" parameter of the "log_format" directive.
0157
0158 *) Feature: client SSL certificates verification in the stream module.
0159
0160 *) Feature: the "ssl_session_ticket_key" directive supports AES256
0161 encryption of TLS session tickets when used with 80-byte keys.
0162
0163 *) Feature: vim-commentary support in vim scripts.
0164 Thanks to Armin Grodon.
0165
0166 *) Bugfix: recursion when evaluating variables was not limited.
0167
0168 *) Bugfix: in the ngx_stream_ssl_preread_module.
0169
0170 *) Bugfix: if a server in an upstream in the stream module failed, it
0171 was considered alive only when a test connection sent to it after
0172 fail_timeout was closed; now a successfully established connection is
0173 enough.
0174
0175 *) Bugfix: nginx/Windows could not be built with 64-bit Visual Studio.
0176
0177 *) Bugfix: nginx/Windows could not be built with OpenSSL 1.1.0.
0178
0179
0180 Changes with nginx 1.11.7 13 Dec 2016
0181
0182 *) Change: now in case of a client certificate verification error the
0183 $ssl_client_verify variable contains a string with the failure
0184 reason, for example, "FAILED:certificate has expired".
0185
0186 *) Feature: the $ssl_ciphers, $ssl_curves, $ssl_client_v_start,
0187 $ssl_client_v_end, and $ssl_client_v_remain variables.
0188
0189 *) Feature: the "volatile" parameter of the "map" directive.
0190
0191 *) Bugfix: dependencies specified for a module were ignored while
0192 building dynamic modules.
0193
0194 *) Bugfix: when using HTTP/2 and the "limit_req" or "auth_request"
0195 directives client request body might be corrupted; the bug had
0196 appeared in 1.11.0.
0197
0198 *) Bugfix: a segmentation fault might occur in a worker process when
0199 using HTTP/2; the bug had appeared in 1.11.3.
0200
0201 *) Bugfix: in the ngx_http_mp4_module.
0202 Thanks to Congcong Hu.
0203
0204 *) Bugfix: in the ngx_http_perl_module.
0205
0206
0207 Changes with nginx 1.11.6 15 Nov 2016
0208
0209 *) Change: format of the $ssl_client_s_dn and $ssl_client_i_dn variables
0210 has been changed to follow RFC 2253 (RFC 4514); values in the old
0211 format are available in the $ssl_client_s_dn_legacy and
0212 $ssl_client_i_dn_legacy variables.
0213
0214 *) Change: when storing temporary files in a cache directory they will
0215 be stored in the same subdirectories as corresponding cache files
0216 instead of a separate subdirectory for temporary files.
0217
0218 *) Feature: EXTERNAL authentication mechanism support in mail proxy.
0219 Thanks to Robert Norris.
0220
0221 *) Feature: WebP support in the ngx_http_image_filter_module.
0222
0223 *) Feature: variables support in the "proxy_method" directive.
0224 Thanks to Dmitry Lazurkin.
0225
0226 *) Feature: the "http2_max_requests" directive in the
0227 ngx_http_v2_module.
0228
0229 *) Feature: the "proxy_cache_max_range_offset",
0230 "fastcgi_cache_max_range_offset", "scgi_cache_max_range_offset", and
0231 "uwsgi_cache_max_range_offset" directives.
0232
0233 *) Bugfix: graceful shutdown of old worker processes might require
0234 infinite time when using HTTP/2.
0235
0236 *) Bugfix: in the ngx_http_mp4_module.
0237
0238 *) Bugfix: "ignore long locked inactive cache entry" alerts might appear
0239 in logs when proxying WebSocket connections with caching enabled.
0240
0241 *) Bugfix: nginx did not write anything to log and returned a response
0242 with code 502 instead of 504 when a timeout occurred during an SSL
0243 handshake to a backend.
0244
0245
0246 Changes with nginx 1.11.5 11 Oct 2016
0247
0248 *) Change: the --with-ipv6 configure option was removed, now IPv6
0249 support is configured automatically.
0250
0251 *) Change: now if there are no available servers in an upstream, nginx
0252 will not reset number of failures of all servers as it previously
0253 did, but will wait for fail_timeout to expire.
0254
0255 *) Feature: the ngx_stream_ssl_preread_module.
0256
0257 *) Feature: the "server" directive in the "upstream" context supports
0258 the "max_conns" parameter.
0259
0260 *) Feature: the --with-compat configure option.
0261
0262 *) Feature: "manager_files", "manager_threshold", and "manager_sleep"
0263 parameters of the "proxy_cache_path", "fastcgi_cache_path",
0264 "scgi_cache_path", and "uwsgi_cache_path" directives.
0265
0266 *) Bugfix: flags passed by the --with-ld-opt configure option were not
0267 used while building perl module.
0268
0269 *) Bugfix: in the "add_after_body" directive when used with the
0270 "sub_filter" directive.
0271
0272 *) Bugfix: in the $realip_remote_addr variable.
0273
0274 *) Bugfix: the "dav_access", "proxy_store_access",
0275 "fastcgi_store_access", "scgi_store_access", and "uwsgi_store_access"
0276 directives ignored permissions specified for user.
0277
0278 *) Bugfix: unix domain listen sockets might not be inherited during
0279 binary upgrade on Linux.
0280
0281 *) Bugfix: nginx returned the 400 response on requests with the "-"
0282 character in the HTTP method.
0283
0284
0285 Changes with nginx 1.11.4 13 Sep 2016
0286
0287 *) Feature: the $upstream_bytes_received variable.
0288
0289 *) Feature: the $bytes_received, $session_time, $protocol, $status,
0290 $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
0291 $upstream_connect_time, $upstream_first_byte_time, and
0292 $upstream_session_time variables in the stream module.
0293
0294 *) Feature: the ngx_stream_log_module.
0295
0296 *) Feature: the "proxy_protocol" parameter of the "listen" directive,
0297 the $proxy_protocol_addr and $proxy_protocol_port variables in the
0298 stream module.
0299
0300 *) Feature: the ngx_stream_realip_module.
0301
0302 *) Bugfix: nginx could not be built with the stream module and the
0303 ngx_http_ssl_module, but without ngx_stream_ssl_module; the bug had
0304 appeared in 1.11.3.
0305
0306 *) Feature: the IP_BIND_ADDRESS_NO_PORT socket option was not used; the
0307 bug had appeared in 1.11.2.
0308
0309 *) Bugfix: in the "ranges" parameter of the "geo" directive.
0310
0311 *) Bugfix: an incorrect response might be returned when using the "aio
0312 threads" and "sendfile" directives; the bug had appeared in 1.9.13.
0313
0314
0315 Changes with nginx 1.11.3 26 Jul 2016
0316
0317 *) Change: now the "accept_mutex" directive is turned off by default.
0318
0319 *) Feature: now nginx uses EPOLLEXCLUSIVE on Linux.
0320
0321 *) Feature: the ngx_stream_geo_module.
0322
0323 *) Feature: the ngx_stream_geoip_module.
0324
0325 *) Feature: the ngx_stream_split_clients_module.
0326
0327 *) Feature: variables support in the "proxy_pass" and "proxy_ssl_name"
0328 directives in the stream module.
0329
0330 *) Bugfix: socket leak when using HTTP/2.
0331
0332 *) Bugfix: in configure tests.
0333 Thanks to Piotr Sikora.
0334
0335
0336 Changes with nginx 1.11.2 05 Jul 2016
0337
0338 *) Change: now nginx always uses internal MD5 and SHA1 implementations;
0339 the --with-md5 and --with-sha1 configure options were canceled.
0340
0341 *) Feature: variables support in the stream module.
0342
0343 *) Feature: the ngx_stream_map_module.
0344
0345 *) Feature: the ngx_stream_return_module.
0346
0347 *) Feature: a port can be specified in the "proxy_bind", "fastcgi_bind",
0348 "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
0349
0350 *) Feature: now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option
0351 when available.
0352
0353 *) Bugfix: a segmentation fault might occur in a worker process when
0354 using HTTP/2 and the "proxy_request_buffering" directive.
0355
0356 *) Bugfix: the "Content-Length" request header line was always added to
0357 requests passed to backends, including requests without body, when
0358 using HTTP/2.
0359
0360 *) Bugfix: "http request count is zero" alerts might appear in logs when
0361 using HTTP/2.
0362
0363 *) Bugfix: unnecessary buffering might occur when using the "sub_filter"
0364 directive; the issue had appeared in 1.9.4.
0365
0366
0367 Changes with nginx 1.11.1 31 May 2016
0368
0369 *) Security: a segmentation fault might occur in a worker process while
0370 writing a specially crafted request body to a temporary file
0371 (CVE-2016-4450); the bug had appeared in 1.3.9.
0372
0373
0374 Changes with nginx 1.11.0 24 May 2016
0375
0376 *) Feature: the "transparent" parameter of the "proxy_bind",
0377 "fastcgi_bind", "memcached_bind", "scgi_bind", and "uwsgi_bind"
0378 directives.
0379
0380 *) Feature: the $request_id variable.
0381
0382 *) Feature: the "map" directive supports combinations of multiple
0383 variables as resulting values.
0384
0385 *) Feature: now nginx checks if EPOLLRDHUP events are supported by
0386 kernel, and optimizes connection handling accordingly if the "epoll"
0387 method is used.
0388
0389 *) Feature: the "ssl_certificate" and "ssl_certificate_key" directives
0390 can be specified multiple times to load certificates of different
0391 types (for example, RSA and ECDSA).
0392
0393 *) Feature: the "ssl_ecdh_curve" directive now allows specifying a list
0394 of curves when using OpenSSL 1.0.2 or newer; by default a list built
0395 into OpenSSL is used.
0396
0397 *) Change: to use DHE ciphers it is now required to specify parameters
0398 using the "ssl_dhparam" directive.
0399
0400 *) Feature: the $proxy_protocol_port variable.
0401
0402 *) Feature: the $realip_remote_port variable in the
0403 ngx_http_realip_module.
0404
0405 *) Feature: the ngx_http_realip_module is now able to set the client
0406 port in addition to the address.
0407
0408 *) Change: the "421 Misdirected Request" response now used when
0409 rejecting requests to a virtual server different from one negotiated
0410 during an SSL handshake; this improves interoperability with some
0411 HTTP/2 clients when using client certificates.
0412
0413 *) Change: HTTP/2 clients can now start sending request body
0414 immediately; the "http2_body_preread_size" directive controls size of
0415 the buffer used before nginx will start reading client request body.
0416
0417 *) Bugfix: cached error responses were not updated when using the
0418 "proxy_cache_bypass" directive.
0419
0420
0421 Changes with nginx 1.9.15 19 Apr 2016
0422
0423 *) Bugfix: "recv() failed" errors might occur when using HHVM as a
0424 FastCGI server.
0425
0426 *) Bugfix: when using HTTP/2 and the "limit_req" or "auth_request"
0427 directives a timeout or a "client violated flow control" error might
0428 occur while reading client request body; the bug had appeared in
0429 1.9.14.
0430
0431 *) Workaround: a response might not be shown by some browsers if HTTP/2
0432 was used and client request body was not fully read; the bug had
0433 appeared in 1.9.14.
0434
0435 *) Bugfix: connections might hang when using the "aio threads"
0436 directive.
0437 Thanks to Mindaugas Rasiukevicius.
0438
0439
0440 Changes with nginx 1.9.14 05 Apr 2016
0441
0442 *) Feature: OpenSSL 1.1.0 compatibility.
0443
0444 *) Feature: the "proxy_request_buffering", "fastcgi_request_buffering",
0445 "scgi_request_buffering", and "uwsgi_request_buffering" directives
0446 now work with HTTP/2.
0447
0448 *) Bugfix: "zero size buf in output" alerts might appear in logs when
0449 using HTTP/2.
0450
0451 *) Bugfix: the "client_max_body_size" directive might work incorrectly
0452 when using HTTP/2.
0453
0454 *) Bugfix: of minor bugs in logging.
0455
0456
0457 Changes with nginx 1.9.13 29 Mar 2016
0458
0459 *) Change: non-idempotent requests (POST, LOCK, PATCH) are no longer
0460 passed to the next server by default if a request has been sent to a
0461 backend; the "non_idempotent" parameter of the "proxy_next_upstream"
0462 directive explicitly allows retrying such requests.
0463
0464 *) Feature: the ngx_http_perl_module can be built dynamically.
0465
0466 *) Feature: UDP support in the stream module.
0467
0468 *) Feature: the "aio_write" directive.
0469
0470 *) Feature: now cache manager monitors number of elements in caches and
0471 tries to avoid cache keys zone overflows.
0472
0473 *) Bugfix: "task already active" and "second aio post" alerts might
0474 appear in logs when using the "sendfile" and "aio" directives with
0475 subrequests.
0476
0477 *) Bugfix: "zero size buf in output" alerts might appear in logs if
0478 caching was used and a client closed a connection prematurely.
0479
0480 *) Bugfix: connections with clients might be closed needlessly if
0481 caching was used.
0482 Thanks to Justin Li.
0483
0484 *) Bugfix: nginx might hog CPU if the "sendfile" directive was used on
0485 Linux or Solaris and a file being sent was changed during sending.
0486
0487 *) Bugfix: connections might hang when using the "sendfile" and "aio
0488 threads" directives.
0489
0490 *) Bugfix: in the "proxy_pass", "fastcgi_pass", "scgi_pass", and
0491 "uwsgi_pass" directives when using variables.
0492 Thanks to Piotr Sikora.
0493
0494 *) Bugfix: in the ngx_http_sub_filter_module.
0495
0496 *) Bugfix: if an error occurred in a cached backend connection, the
0497 request was passed to the next server regardless of the
0498 proxy_next_upstream directive.
0499
0500 *) Bugfix: "CreateFile() failed" errors when creating temporary files on
0501 Windows.
0502
0503
0504 Changes with nginx 1.9.12 24 Feb 2016
0505
0506 *) Feature: Huffman encoding of response headers in HTTP/2.
0507 Thanks to Vlad Krasnov.
0508
0509 *) Feature: the "worker_cpu_affinity" directive now supports more than
0510 64 CPUs.
0511
0512 *) Bugfix: compatibility with 3rd party C++ modules; the bug had
0513 appeared in 1.9.11.
0514 Thanks to Piotr Sikora.
0515
0516 *) Bugfix: nginx could not be built statically with OpenSSL on Linux;
0517 the bug had appeared in 1.9.11.
0518
0519 *) Bugfix: the "add_header ... always" directive with an empty value did
0520 not delete "Last-Modified" and "ETag" header lines from error
0521 responses.
0522
0523 *) Workaround: "called a function you should not call" and "shutdown
0524 while in init" messages might appear in logs when using OpenSSL
0525 1.0.2f.
0526
0527 *) Bugfix: invalid headers might be logged incorrectly.
0528
0529 *) Bugfix: socket leak when using HTTP/2.
0530
0531 *) Bugfix: in the ngx_http_v2_module.
0532
0533
0534 Changes with nginx 1.9.11 09 Feb 2016
0535
0536 *) Feature: TCP support in resolver.
0537
0538 *) Feature: dynamic modules.
0539
0540 *) Bugfix: the $request_length variable did not include size of request
0541 headers when using HTTP/2.
0542
0543 *) Bugfix: in the ngx_http_v2_module.
0544
0545
0546 Changes with nginx 1.9.10 26 Jan 2016
0547
0548 *) Security: invalid pointer dereference might occur during DNS server
0549 response processing if the "resolver" directive was used, allowing an
0550 attacker who is able to forge UDP packets from the DNS server to
0551 cause segmentation fault in a worker process (CVE-2016-0742).
0552
0553 *) Security: use-after-free condition might occur during CNAME response
0554 processing if the "resolver" directive was used, allowing an attacker
0555 who is able to trigger name resolution to cause segmentation fault in
0556 a worker process, or might have potential other impact
0557 (CVE-2016-0746).
0558
0559 *) Security: CNAME resolution was insufficiently limited if the
0560 "resolver" directive was used, allowing an attacker who is able to
0561 trigger arbitrary name resolution to cause excessive resource
0562 consumption in worker processes (CVE-2016-0747).
0563
0564 *) Feature: the "auto" parameter of the "worker_cpu_affinity" directive.
0565
0566 *) Bugfix: the "proxy_protocol" parameter of the "listen" directive did
0567 not work with IPv6 listen sockets.
0568
0569 *) Bugfix: connections to upstream servers might be cached incorrectly
0570 when using the "keepalive" directive.
0571
0572 *) Bugfix: proxying used the HTTP method of the original request after
0573 an "X-Accel-Redirect" redirection.
0574
0575
0576 Changes with nginx 1.9.9 09 Dec 2015
0577
0578 *) Bugfix: proxying to unix domain sockets did not work when using
0579 variables; the bug had appeared in 1.9.8.
0580
0581
0582 Changes with nginx 1.9.8 08 Dec 2015
0583
0584 *) Feature: pwritev() support.
0585
0586 *) Feature: the "include" directive inside the "upstream" block.
0587
0588 *) Feature: the ngx_http_slice_module.
0589
0590 *) Bugfix: a segmentation fault might occur in a worker process when
0591 using LibreSSL; the bug had appeared in 1.9.6.
0592
0593 *) Bugfix: nginx could not be built on OS X in some cases.
0594
0595
0596 Changes with nginx 1.9.7 17 Nov 2015
0597
0598 *) Feature: the "nohostname" parameter of logging to syslog.
0599
0600 *) Feature: the "proxy_cache_convert_head" directive.
0601
0602 *) Feature: the $realip_remote_addr variable in the
0603 ngx_http_realip_module.
0604
0605 *) Bugfix: the "expires" directive might not work when using variables.
0606
0607 *) Bugfix: a segmentation fault might occur in a worker process when
0608 using HTTP/2; the bug had appeared in 1.9.6.
0609
0610 *) Bugfix: if nginx was built with the ngx_http_v2_module it was
0611 possible to use the HTTP/2 protocol even if the "http2" parameter of
0612 the "listen" directive was not specified.
0613
0614 *) Bugfix: in the ngx_http_v2_module.
0615
0616
0617 Changes with nginx 1.9.6 27 Oct 2015
0618
0619 *) Bugfix: a segmentation fault might occur in a worker process when
0620 using HTTP/2.
0621 Thanks to Piotr Sikora and Denis Andzakovic.
0622
0623 *) Bugfix: the $server_protocol variable was empty when using HTTP/2.
0624
0625 *) Bugfix: backend SSL connections in the stream module might be timed
0626 out unexpectedly.
0627
0628 *) Bugfix: a segmentation fault might occur in a worker process if
0629 different ssl_session_cache settings were used in different virtual
0630 servers.
0631
0632 *) Bugfix: nginx/Windows could not be built with MinGW gcc; the bug had
0633 appeared in 1.9.4.
0634 Thanks to Kouhei Sutou.
0635
0636 *) Bugfix: time was not updated when the timer_resolution directive was
0637 used on Windows.
0638
0639 *) Miscellaneous minor fixes and improvements.
0640 Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora.
0641
0642
0643 Changes with nginx 1.9.5 22 Sep 2015
0644
0645 *) Feature: the ngx_http_v2_module (replaces ngx_http_spdy_module).
0646 Thanks to Dropbox and Automattic for sponsoring this work.
0647
0648 *) Change: now the "output_buffers" directive uses two buffers by
0649 default.
0650
0651 *) Change: now nginx limits subrequests recursion, not simultaneous
0652 subrequests.
0653
0654 *) Change: now nginx checks the whole cache key when returning a
0655 response from cache.
0656 Thanks to Gena Makhomed and Sergey Brester.
0657
0658 *) Bugfix: "header already sent" alerts might appear in logs when using
0659 cache; the bug had appeared in 1.7.5.
0660
0661 *) Bugfix: "writev() failed (4: Interrupted system call)" errors might
0662 appear in logs when using CephFS and the "timer_resolution" directive
0663 on Linux.
0664
0665 *) Bugfix: in invalid configurations handling.
0666 Thanks to Markus Linnala.
0667
0668 *) Bugfix: a segmentation fault occurred in a worker process if the
0669 "sub_filter" directive was used at http level; the bug had appeared
0670 in 1.9.4.
0671
0672
0673 Changes with nginx 1.9.4 18 Aug 2015
0674
0675 *) Change: the "proxy_downstream_buffer" and "proxy_upstream_buffer"
0676 directives of the stream module are replaced with the
0677 "proxy_buffer_size" directive.
0678
0679 *) Feature: the "tcp_nodelay" directive in the stream module.
0680
0681 *) Feature: multiple "sub_filter" directives can be used simultaneously.
0682
0683 *) Feature: variables support in the search string of the "sub_filter"
0684 directive.
0685
0686 *) Workaround: configuration testing might fail under Linux OpenVZ.
0687 Thanks to Gena Makhomed.
0688
0689 *) Bugfix: old worker processes might hog CPU after reconfiguration with
0690 a large number of worker_connections.
0691
0692 *) Bugfix: a segmentation fault might occur in a worker process if the
0693 "try_files" and "alias" directives were used inside a location given
0694 by a regular expression; the bug had appeared in 1.7.1.
0695
0696 *) Bugfix: the "try_files" directive inside a nested location given by a
0697 regular expression worked incorrectly if the "alias" directive was
0698 used in the outer location.
0699
0700 *) Bugfix: in hash table initialization error handling.
0701
0702 *) Bugfix: nginx could not be built with Visual Studio 2015.
0703
0704
0705 Changes with nginx 1.9.3 14 Jul 2015
0706
0707 *) Change: duplicate "http", "mail", and "stream" blocks are now
0708 disallowed.
0709
0710 *) Feature: connection limiting in the stream module.
0711
0712 *) Feature: data rate limiting in the stream module.
0713
0714 *) Bugfix: the "zone" directive inside the "upstream" block did not work
0715 on Windows.
0716
0717 *) Bugfix: compatibility with LibreSSL in the stream module.
0718 Thanks to Piotr Sikora.
0719
0720 *) Bugfix: in the "--builddir" configure parameter.
0721 Thanks to Piotr Sikora.
0722
0723 *) Bugfix: the "ssl_stapling_file" directive did not work; the bug had
0724 appeared in 1.9.2.
0725 Thanks to Faidon Liambotis and Brandon Black.
0726
0727 *) Bugfix: a segmentation fault might occur in a worker process if the
0728 "ssl_stapling" directive was used; the bug had appeared in 1.9.2.
0729 Thanks to Matthew Baldwin.
0730
0731
0732 Changes with nginx 1.9.2 16 Jun 2015
0733
0734 *) Feature: the "backlog" parameter of the "listen" directives of the
0735 mail proxy and stream modules.
0736
0737 *) Feature: the "allow" and "deny" directives in the stream module.
0738
0739 *) Feature: the "proxy_bind" directive in the stream module.
0740
0741 *) Feature: the "proxy_protocol" directive in the stream module.
0742
0743 *) Feature: the -T switch.
0744
0745 *) Feature: the REQUEST_SCHEME parameter added to the fastcgi.conf,
0746 fastcgi_params, scgi_params, and uwsgi_params standard configuration
0747 files.
0748
0749 *) Bugfix: the "reuseport" parameter of the "listen" directive of the
0750 stream module did not work.
0751
0752 *) Bugfix: OCSP stapling might return an expired OCSP response in some
0753 cases.
0754
0755
0756 Changes with nginx 1.9.1 26 May 2015
0757
0758 *) Change: now SSLv3 protocol is disabled by default.
0759
0760 *) Change: some long deprecated directives are not supported anymore.
0761
0762 *) Feature: the "reuseport" parameter of the "listen" directive.
0763 Thanks to Yingqi Lu at Intel and Sepherosa Ziehau.
0764
0765 *) Feature: the $upstream_connect_time variable.
0766
0767 *) Bugfix: in the "hash" directive on big-endian platforms.
0768
0769 *) Bugfix: nginx might fail to start on some old Linux variants; the bug
0770 had appeared in 1.7.11.
0771
0772 *) Bugfix: in IP address parsing.
0773 Thanks to Sergey Polovko.
0774
0775
0776 Changes with nginx 1.9.0 28 Apr 2015
0777
0778 *) Change: obsolete aio and rtsig event methods have been removed.
0779
0780 *) Feature: the "zone" directive inside the "upstream" block.
0781
0782 *) Feature: the stream module.
0783
0784 *) Feature: byte ranges support in the ngx_http_memcached_module.
0785 Thanks to Martin Mlynář.
0786
0787 *) Feature: shared memory can now be used on Windows versions with
0788 address space layout randomization.
0789 Thanks to Sergey Brester.
0790
0791 *) Feature: the "error_log" directive can now be used on mail and server
0792 levels in mail proxy.
0793
0794 *) Bugfix: the "proxy_protocol" parameter of the "listen" directive did
0795 not work if not specified in the first "listen" directive for a
0796 listen socket.
0797
0798
0799 Changes with nginx 1.7.12 07 Apr 2015
0800
0801 *) Feature: now the "tcp_nodelay" directive works with backend SSL
0802 connections.
0803
0804 *) Feature: now thread pools can be used to read cache file headers.
0805
0806 *) Bugfix: in the "proxy_request_buffering" directive.
0807
0808 *) Bugfix: a segmentation fault might occur in a worker process when
0809 using thread pools on Linux.
0810
0811 *) Bugfix: in error handling when using the "ssl_stapling" directive.
0812 Thanks to Filipe da Silva.
0813
0814 *) Bugfix: in the ngx_http_spdy_module.
0815
0816
0817 Changes with nginx 1.7.11 24 Mar 2015
0818
0819 *) Change: the "sendfile" parameter of the "aio" directive is
0820 deprecated; now nginx automatically uses AIO to pre-load data for
0821 sendfile if both "aio" and "sendfile" directives are used.
0822
0823 *) Feature: experimental thread pools support.
0824
0825 *) Feature: the "proxy_request_buffering", "fastcgi_request_buffering",
0826 "scgi_request_buffering", and "uwsgi_request_buffering" directives.
0827
0828 *) Feature: request body filters experimental API.
0829
0830 *) Feature: client SSL certificates support in mail proxy.
0831 Thanks to Sven Peter, Franck Levionnois, and Filipe Da Silva.
0832
0833 *) Feature: startup speedup when using the "hash ... consistent"
0834 directive in the upstream block.
0835 Thanks to Wai Keen Woon.
0836
0837 *) Feature: debug logging into a cyclic memory buffer.
0838
0839 *) Bugfix: in hash table handling.
0840 Thanks to Chris West.
0841
0842 *) Bugfix: in the "proxy_cache_revalidate" directive.
0843
0844 *) Bugfix: SSL connections might hang if deferred accept or the
0845 "proxy_protocol" parameter of the "listen" directive were used.
0846 Thanks to James Hamlin.
0847
0848 *) Bugfix: the $upstream_response_time variable might contain a wrong
0849 value if the "image_filter" directive was used.
0850
0851 *) Bugfix: in integer overflow handling.
0852 Thanks to Régis Leroy.
0853
0854 *) Bugfix: it was not possible to enable SSLv3 with LibreSSL.
0855
0856 *) Bugfix: the "ignoring stale global SSL error ... called a function
0857 you should not call" alerts appeared in logs when using LibreSSL.
0858
0859 *) Bugfix: certificates specified by the "ssl_client_certificate" and
0860 "ssl_trusted_certificate" directives were inadvertently used to
0861 automatically construct certificate chains.
0862
0863
0864 Changes with nginx 1.7.10 10 Feb 2015
0865
0866 *) Feature: the "use_temp_path" parameter of the "proxy_cache_path",
0867 "fastcgi_cache_path", "scgi_cache_path", and "uwsgi_cache_path"
0868 directives.
0869
0870 *) Feature: the $upstream_header_time variable.
0871
0872 *) Workaround: now on disk overflow nginx tries to write error logs once
0873 a second only.
0874
0875 *) Bugfix: the "try_files" directive did not ignore normal files while
0876 testing directories.
0877 Thanks to Damien Tournoud.
0878
0879 *) Bugfix: alerts "sendfile() failed" if the "sendfile" directive was
0880 used on OS X; the bug had appeared in 1.7.8.
0881
0882 *) Bugfix: alerts "sem_post() failed" might appear in logs.
0883
0884 *) Bugfix: nginx could not be built with musl libc.
0885 Thanks to James Taylor.
0886
0887 *) Bugfix: nginx could not be built on Tru64 UNIX.
0888 Thanks to Goetz T. Fischer.
0889
0890
0891 Changes with nginx 1.7.9 23 Dec 2014
0892
0893 *) Feature: variables support in the "proxy_cache", "fastcgi_cache",
0894 "scgi_cache", and "uwsgi_cache" directives.
0895
0896 *) Feature: variables support in the "expires" directive.
0897
0898 *) Feature: loading of secret keys from hardware tokens with OpenSSL
0899 engines.
0900 Thanks to Dmitrii Pichulin.
0901
0902 *) Feature: the "autoindex_format" directive.
0903
0904 *) Bugfix: cache revalidation is now only used for responses with 200
0905 and 206 status codes.
0906 Thanks to Piotr Sikora.
0907
0908 *) Bugfix: the "TE" client request header line was passed to backends
0909 while proxying.
0910
0911 *) Bugfix: the "proxy_pass", "fastcgi_pass", "scgi_pass", and
0912 "uwsgi_pass" directives might not work correctly inside the "if" and
0913 "limit_except" blocks.
0914
0915 *) Bugfix: the "proxy_store" directive with the "on" parameter was
0916 ignored if the "proxy_store" directive with an explicitly specified
0917 file path was used on a previous level.
0918
0919 *) Bugfix: nginx could not be built with BoringSSL.
0920 Thanks to Lukas Tribus.
0921
0922
0923 Changes with nginx 1.7.8 02 Dec 2014
0924
0925 *) Change: now the "If-Modified-Since", "If-Range", etc. client request
0926 header lines are passed to a backend while caching if nginx knows in
0927 advance that the response will not be cached (e.g., when using
0928 proxy_cache_min_uses).
0929
0930 *) Change: now after proxy_cache_lock_timeout nginx sends a request to a
0931 backend with caching disabled; the new directives
0932 "proxy_cache_lock_age", "fastcgi_cache_lock_age",
0933 "scgi_cache_lock_age", and "uwsgi_cache_lock_age" specify a time
0934 after which the lock will be released and another attempt to cache a
0935 response will be made.
0936
0937 *) Change: the "log_format" directive can now be used only at http
0938 level.
0939
0940 *) Feature: the "proxy_ssl_certificate", "proxy_ssl_certificate_key",
0941 "proxy_ssl_password_file", "uwsgi_ssl_certificate",
0942 "uwsgi_ssl_certificate_key", and "uwsgi_ssl_password_file"
0943 directives.
0944 Thanks to Piotr Sikora.
0945
0946 *) Feature: it is now possible to switch to a named location using
0947 "X-Accel-Redirect".
0948 Thanks to Toshikuni Fukaya.
0949
0950 *) Feature: now the "tcp_nodelay" directive works with SPDY connections.
0951
0952 *) Feature: new directives in vim syntax highliting scripts.
0953 Thanks to Peter Wu.
0954
0955 *) Bugfix: nginx ignored the "s-maxage" value in the "Cache-Control"
0956 backend response header line.
0957 Thanks to Piotr Sikora.
0958
0959 *) Bugfix: in the ngx_http_spdy_module.
0960 Thanks to Piotr Sikora.
0961
0962 *) Bugfix: in the "ssl_password_file" directive when using OpenSSL
0963 0.9.8zc, 1.0.0o, 1.0.1j.
0964
0965 *) Bugfix: alerts "header already sent" appeared in logs if the
0966 "post_action" directive was used; the bug had appeared in 1.5.4.
0967
0968 *) Bugfix: alerts "the http output chain is empty" might appear in logs
0969 if the "postpone_output 0" directive was used with SSI includes.
0970
0971 *) Bugfix: in the "proxy_cache_lock" directive with SSI subrequests.
0972 Thanks to Yichun Zhang.
0973
0974
0975 Changes with nginx 1.7.7 28 Oct 2014
0976
0977 *) Change: now nginx takes into account the "Vary" header line in a
0978 backend response while caching.
0979
0980 *) Feature: the "proxy_force_ranges", "fastcgi_force_ranges",
0981 "scgi_force_ranges", and "uwsgi_force_ranges" directives.
0982
0983 *) Feature: the "proxy_limit_rate", "fastcgi_limit_rate",
0984 "scgi_limit_rate", and "uwsgi_limit_rate" directives.
0985
0986 *) Feature: the "Vary" parameter of the "proxy_ignore_headers",
0987 "fastcgi_ignore_headers", "scgi_ignore_headers", and
0988 "uwsgi_ignore_headers" directives.
0989
0990 *) Bugfix: the last part of a response received from a backend with
0991 unbufferred proxy might not be sent to a client if "gzip" or "gunzip"
0992 directives were used.
0993
0994 *) Bugfix: in the "proxy_cache_revalidate" directive.
0995 Thanks to Piotr Sikora.
0996
0997 *) Bugfix: in error handling.
0998 Thanks to Yichun Zhang and Daniil Bondarev.
0999
1000 *) Bugfix: in the "proxy_next_upstream_tries" and
1001 "proxy_next_upstream_timeout" directives.
1002 Thanks to Feng Gu.
1003
1004 *) Bugfix: nginx/Windows could not be built with MinGW-w64 gcc.
1005 Thanks to Kouhei Sutou.
1006
1007
1008 Changes with nginx 1.7.6 30 Sep 2014
1009
1010 *) Change: the deprecated "limit_zone" directive is not supported
1011 anymore.
1012
1013 *) Feature: the "limit_conn_zone" and "limit_req_zone" directives now
1014 can be used with combinations of multiple variables.
1015
1016 *) Bugfix: request body might be transmitted incorrectly when retrying a
1017 FastCGI request to the next upstream server.
1018
1019 *) Bugfix: in logging to syslog.
1020
1021
1022 Changes with nginx 1.7.5 16 Sep 2014
1023
1024 *) Security: it was possible to reuse SSL sessions in unrelated contexts
1025 if a shared SSL session cache or the same TLS session ticket key was
1026 used for multiple "server" blocks (CVE-2014-3616).
1027 Thanks to Antoine Delignat-Lavaud.
1028
1029 *) Change: now the "stub_status" directive does not require a parameter.
1030
1031 *) Feature: the "always" parameter of the "add_header" directive.
1032
1033 *) Feature: the "proxy_next_upstream_tries",
1034 "proxy_next_upstream_timeout", "fastcgi_next_upstream_tries",
1035 "fastcgi_next_upstream_timeout", "memcached_next_upstream_tries",
1036 "memcached_next_upstream_timeout", "scgi_next_upstream_tries",
1037 "scgi_next_upstream_timeout", "uwsgi_next_upstream_tries", and
1038 "uwsgi_next_upstream_timeout" directives.
1039
1040 *) Bugfix: in the "if" parameter of the "access_log" directive.
1041
1042 *) Bugfix: in the ngx_http_perl_module.
1043 Thanks to Piotr Sikora.
1044
1045 *) Bugfix: the "listen" directive of the mail proxy module did not allow
1046 to specify more than two parameters.
1047
1048 *) Bugfix: the "sub_filter" directive did not work with a string to
1049 replace consisting of a single character.
1050
1051 *) Bugfix: requests might hang if resolver was used and a timeout
1052 occurred during a DNS request.
1053
1054 *) Bugfix: in the ngx_http_spdy_module when using with AIO.
1055
1056 *) Bugfix: a segmentation fault might occur in a worker process if the
1057 "set" directive was used to change the "$http_...", "$sent_http_...",
1058 or "$upstream_http_..." variables.
1059
1060 *) Bugfix: in memory allocation error handling.
1061 Thanks to Markus Linnala and Feng Gu.
1062
1063
1064 Changes with nginx 1.7.4 05 Aug 2014
1065
1066 *) Security: pipelined commands were not discarded after STARTTLS
1067 command in SMTP proxy (CVE-2014-3556); the bug had appeared in 1.5.6.
1068 Thanks to Chris Boulton.
1069
1070 *) Change: URI escaping now uses uppercase hexadecimal digits.
1071 Thanks to Piotr Sikora.
1072
1073 *) Feature: now nginx can be build with BoringSSL and LibreSSL.
1074 Thanks to Piotr Sikora.
1075
1076 *) Bugfix: requests might hang if resolver was used and a DNS server
1077 returned a malformed response; the bug had appeared in 1.5.8.
1078
1079 *) Bugfix: in the ngx_http_spdy_module.
1080 Thanks to Piotr Sikora.
1081
1082 *) Bugfix: the $uri variable might contain garbage when returning errors
1083 with code 400.
1084 Thanks to Sergey Bobrov.
1085
1086 *) Bugfix: in error handling in the "proxy_store" directive and the
1087 ngx_http_dav_module.
1088 Thanks to Feng Gu.
1089
1090 *) Bugfix: a segmentation fault might occur if logging of errors to
1091 syslog was used; the bug had appeared in 1.7.1.
1092
1093 *) Bugfix: the $geoip_latitude, $geoip_longitude, $geoip_dma_code, and
1094 $geoip_area_code variables might not work.
1095 Thanks to Yichun Zhang.
1096
1097 *) Bugfix: in memory allocation error handling.
1098 Thanks to Tatsuhiko Kubo and Piotr Sikora.
1099
1100
1101 Changes with nginx 1.7.3 08 Jul 2014
1102
1103 *) Feature: weak entity tags are now preserved on response
1104 modifications, and strong ones are changed to weak.
1105
1106 *) Feature: cache revalidation now uses If-None-Match header if
1107 possible.
1108
1109 *) Feature: the "ssl_password_file" directive.
1110
1111 *) Bugfix: the If-None-Match request header line was ignored if there
1112 was no Last-Modified header in a response returned from cache.
1113
1114 *) Bugfix: "peer closed connection in SSL handshake" messages were
1115 logged at "info" level instead of "error" while connecting to
1116 backends.
1117
1118 *) Bugfix: in the ngx_http_dav_module module in nginx/Windows.
1119
1120 *) Bugfix: SPDY connections might be closed prematurely if caching was
1121 used.
1122
1123
1124 Changes with nginx 1.7.2 17 Jun 2014
1125
1126 *) Feature: the "hash" directive inside the "upstream" block.
1127
1128 *) Feature: defragmentation of free shared memory blocks.
1129 Thanks to Wandenberg Peixoto and Yichun Zhang.
1130
1131 *) Bugfix: a segmentation fault might occur in a worker process if the
1132 default value of the "access_log" directive was used; the bug had
1133 appeared in 1.7.0.
1134 Thanks to Piotr Sikora.
1135
1136 *) Bugfix: trailing slash was mistakenly removed from the last parameter
1137 of the "try_files" directive.
1138
1139 *) Bugfix: nginx could not be built on OS X in some cases.
1140
1141 *) Bugfix: in the ngx_http_spdy_module.
1142
1143
1144 Changes with nginx 1.7.1 27 May 2014
1145
1146 *) Feature: the "$upstream_cookie_..." variables.
1147
1148 *) Feature: the $ssl_client_fingerprint variable.
1149
1150 *) Feature: the "error_log" and "access_log" directives now support
1151 logging to syslog.
1152
1153 *) Feature: the mail proxy now logs client port on connect.
1154
1155 *) Bugfix: memory leak if the "ssl_stapling" directive was used.
1156 Thanks to Filipe da Silva.
1157
1158 *) Bugfix: the "alias" directive used inside a location given by a
1159 regular expression worked incorrectly if the "if" or "limit_except"
1160 directives were used.
1161
1162 *) Bugfix: the "charset" directive did not set a charset to encoded
1163 backend responses.
1164
1165 *) Bugfix: a "proxy_pass" directive without URI part might use original
1166 request after the $args variable was set.
1167 Thanks to Yichun Zhang.
1168
1169 *) Bugfix: in the "none" parameter in the "smtp_auth" directive; the bug
1170 had appeared in 1.5.6.
1171 Thanks to Svyatoslav Nikolsky.
1172
1173 *) Bugfix: if sub_filter and SSI were used together, then responses
1174 might be transferred incorrectly.
1175
1176 *) Bugfix: nginx could not be built with the --with-file-aio option on
1177 Linux/aarch64.
1178
1179
1180 Changes with nginx 1.7.0 24 Apr 2014
1181
1182 *) Feature: backend SSL certificate verification.
1183
1184 *) Feature: support for SNI while working with SSL backends.
1185
1186 *) Feature: the $ssl_server_name variable.
1187
1188 *) Feature: the "if" parameter of the "access_log" directive.
1189
1190
1191 Changes with nginx 1.5.13 08 Apr 2014
1192
1193 *) Change: improved hash table handling; the default values of the
1194 "variables_hash_max_size" and "types_hash_bucket_size" were changed
1195 to 1024 and 64 respectively.
1196
1197 *) Feature: the ngx_http_mp4_module now supports the "end" argument.
1198
1199 *) Feature: byte ranges support in the ngx_http_mp4_module and while
1200 saving responses to cache.
1201
1202 *) Bugfix: alerts "ngx_slab_alloc() failed: no memory" no longer logged
1203 when using shared memory in the "ssl_session_cache" directive and in
1204 the ngx_http_limit_req_module.
1205
1206 *) Bugfix: the "underscores_in_headers" directive did not allow
1207 underscore as a first character of a header.
1208 Thanks to Piotr Sikora.
1209
1210 *) Bugfix: cache manager might hog CPU on exit in nginx/Windows.
1211
1212 *) Bugfix: nginx/Windows terminated abnormally if the
1213 "ssl_session_cache" directive was used with the "shared" parameter.
1214
1215 *) Bugfix: in the ngx_http_spdy_module.
1216
1217
1218 Changes with nginx 1.5.12 18 Mar 2014
1219
1220 *) Security: a heap memory buffer overflow might occur in a worker
1221 process while handling a specially crafted request by
1222 ngx_http_spdy_module, potentially resulting in arbitrary code
1223 execution (CVE-2014-0133).
1224 Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr.
1225 Manuel Sadosky, Buenos Aires, Argentina.
1226
1227 *) Feature: the "proxy_protocol" parameters of the "listen" and
1228 "real_ip_header" directives, the $proxy_protocol_addr variable.
1229
1230 *) Bugfix: in the "fastcgi_next_upstream" directive.
1231 Thanks to Lucas Molas.
1232
1233
1234 Changes with nginx 1.5.11 04 Mar 2014
1235
1236 *) Security: memory corruption might occur in a worker process on 32-bit
1237 platforms while handling a specially crafted request by
1238 ngx_http_spdy_module, potentially resulting in arbitrary code
1239 execution (CVE-2014-0088); the bug had appeared in 1.5.10.
1240 Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr.
1241 Manuel Sadosky, Buenos Aires, Argentina.
1242
1243 *) Feature: the $ssl_session_reused variable.
1244
1245 *) Bugfix: the "client_max_body_size" directive might not work when
1246 reading a request body using chunked transfer encoding; the bug had
1247 appeared in 1.3.9.
1248 Thanks to Lucas Molas.
1249
1250 *) Bugfix: a segmentation fault might occur in a worker process when
1251 proxying WebSocket connections.
1252
1253 *) Bugfix: a segmentation fault might occur in a worker process if the
1254 ngx_http_spdy_module was used on 32-bit platforms; the bug had
1255 appeared in 1.5.10.
1256
1257 *) Bugfix: the $upstream_status variable might contain wrong data if the
1258 "proxy_cache_use_stale" or "proxy_cache_revalidate" directives were
1259 used.
1260 Thanks to Piotr Sikora.
1261
1262 *) Bugfix: a segmentation fault might occur in a worker process if
1263 errors with code 400 were redirected to a named location using the
1264 "error_page" directive.
1265
1266 *) Bugfix: nginx/Windows could not be built with Visual Studio 2013.
1267
1268
1269 Changes with nginx 1.5.10 04 Feb 2014
1270
1271 *) Feature: the ngx_http_spdy_module now uses SPDY 3.1 protocol.
1272 Thanks to Automattic and MaxCDN for sponsoring this work.
1273
1274 *) Feature: the ngx_http_mp4_module now skips tracks too short for a
1275 seek requested.
1276
1277 *) Bugfix: a segmentation fault might occur in a worker process if the
1278 $ssl_session_id variable was used in logs; the bug had appeared in
1279 1.5.9.
1280
1281 *) Bugfix: the $date_local and $date_gmt variables used wrong format
1282 outside of the ngx_http_ssi_filter_module.
1283
1284 *) Bugfix: client connections might be immediately closed if deferred
1285 accept was used; the bug had appeared in 1.3.15.
1286
1287 *) Bugfix: alerts "getsockopt(TCP_FASTOPEN) ... failed" appeared in logs
1288 during binary upgrade on Linux; the bug had appeared in 1.5.8.
1289 Thanks to Piotr Sikora.
1290
1291
1292 Changes with nginx 1.5.9 22 Jan 2014
1293
1294 *) Change: now nginx expects escaped URIs in "X-Accel-Redirect" headers.
1295
1296 *) Feature: the "ssl_buffer_size" directive.
1297
1298 *) Feature: the "limit_rate" directive can now be used to rate limit
1299 responses sent in SPDY connections.
1300
1301 *) Feature: the "spdy_chunk_size" directive.
1302
1303 *) Feature: the "ssl_session_tickets" directive.
1304 Thanks to Dirkjan Bussink.
1305
1306 *) Bugfix: the $ssl_session_id variable contained full session
1307 serialized instead of just a session id.
1308 Thanks to Ivan Ristić.
1309
1310 *) Bugfix: nginx incorrectly handled escaped "?" character in the
1311 "include" SSI command.
1312
1313 *) Bugfix: the ngx_http_dav_module did not unescape destination URI of
1314 the COPY and MOVE methods.
1315
1316 *) Bugfix: resolver did not understand domain names with a trailing dot.
1317 Thanks to Yichun Zhang.
1318
1319 *) Bugfix: alerts "zero size buf in output" might appear in logs while
1320 proxying; the bug had appeared in 1.3.9.
1321
1322 *) Bugfix: a segmentation fault might occur in a worker process if the
1323 ngx_http_spdy_module was used.
1324
1325 *) Bugfix: proxied WebSocket connections might hang right after
1326 handshake if the select, poll, or /dev/poll methods were used.
1327
1328 *) Bugfix: the "xclient" directive of the mail proxy module incorrectly
1329 handled IPv6 client addresses.
1330
1331
1332 Changes with nginx 1.5.8 17 Dec 2013
1333
1334 *) Feature: IPv6 support in resolver.
1335
1336 *) Feature: the "listen" directive supports the "fastopen" parameter.
1337 Thanks to Mathew Rodley.
1338
1339 *) Feature: SSL support in the ngx_http_uwsgi_module.
1340 Thanks to Roberto De Ioris.
1341
1342 *) Feature: vim syntax highlighting scripts were added to contrib.
1343 Thanks to Evan Miller.
1344
1345 *) Bugfix: a timeout might occur while reading client request body in an
1346 SSL connection using chunked transfer encoding.
1347
1348 *) Bugfix: the "master_process" directive did not work correctly in
1349 nginx/Windows.
1350
1351 *) Bugfix: the "setfib" parameter of the "listen" directive might not
1352 work.
1353
1354 *) Bugfix: in the ngx_http_spdy_module.
1355
1356
1357 Changes with nginx 1.5.7 19 Nov 2013
1358
1359 *) Security: a character following an unescaped space in a request line
1360 was handled incorrectly (CVE-2013-4547); the bug had appeared in
1361 0.8.41.
1362 Thanks to Ivan Fratric of the Google Security Team.
1363
1364 *) Change: a logging level of auth_basic errors about no user/password
1365 provided has been lowered from "error" to "info".
1366
1367 *) Feature: the "proxy_cache_revalidate", "fastcgi_cache_revalidate",
1368 "scgi_cache_revalidate", and "uwsgi_cache_revalidate" directives.
1369
1370 *) Feature: the "ssl_session_ticket_key" directive.
1371 Thanks to Piotr Sikora.
1372
1373 *) Bugfix: the directive "add_header Cache-Control ''" added a
1374 "Cache-Control" response header line with an empty value.
1375
1376 *) Bugfix: the "satisfy any" directive might return 403 error instead of
1377 401 if auth_request and auth_basic directives were used.
1378 Thanks to Jan Marc Hoffmann.
1379
1380 *) Bugfix: the "accept_filter" and "deferred" parameters of the "listen"
1381 directive were ignored for listen sockets created during binary
1382 upgrade.
1383 Thanks to Piotr Sikora.
1384
1385 *) Bugfix: some data received from a backend with unbufferred proxy
1386 might not be sent to a client immediately if "gzip" or "gunzip"
1387 directives were used.
1388 Thanks to Yichun Zhang.
1389
1390 *) Bugfix: in error handling in ngx_http_gunzip_filter_module.
1391
1392 *) Bugfix: responses might hang if the ngx_http_spdy_module was used
1393 with the "auth_request" directive.
1394
1395 *) Bugfix: memory leak in nginx/Windows.
1396
1397
1398 Changes with nginx 1.5.6 01 Oct 2013
1399
1400 *) Feature: the "fastcgi_buffering" directive.
1401
1402 *) Feature: the "proxy_ssl_protocols" and "proxy_ssl_ciphers"
1403 directives.
1404 Thanks to Piotr Sikora.
1405
1406 *) Feature: optimization of SSL handshakes when using long certificate
1407 chains.
1408
1409 *) Feature: the mail proxy supports SMTP pipelining.
1410
1411 *) Bugfix: in the ngx_http_auth_basic_module when using "$apr1$"
1412 password encryption method.
1413 Thanks to Markus Linnala.
1414
1415 *) Bugfix: in MacOSX, Cygwin, and nginx/Windows incorrect location might
1416 be used to process a request if locations were given using characters
1417 in different cases.
1418
1419 *) Bugfix: automatic redirect with appended trailing slash for proxied
1420 locations might not work.
1421
1422 *) Bugfix: in the mail proxy server.
1423
1424 *) Bugfix: in the ngx_http_spdy_module.
1425
1426
1427 Changes with nginx 1.5.5 17 Sep 2013
1428
1429 *) Change: now nginx assumes HTTP/1.0 by default if it is not able to
1430 detect protocol reliably.
1431
1432 *) Feature: the "disable_symlinks" directive now uses O_PATH on Linux.
1433
1434 *) Feature: now nginx uses EPOLLRDHUP events to detect premature
1435 connection close by clients if the "epoll" method is used.
1436
1437 *) Bugfix: in the "valid_referers" directive if the "server_names"
1438 parameter was used.
1439
1440 *) Bugfix: the $request_time variable did not work in nginx/Windows.
1441
1442 *) Bugfix: in the "image_filter" directive.
1443 Thanks to Lanshun Zhou.
1444
1445 *) Bugfix: OpenSSL 1.0.1f compatibility.
1446 Thanks to Piotr Sikora.
1447
1448
1449 Changes with nginx 1.5.4 27 Aug 2013
1450
1451 *) Change: the "js" extension MIME type has been changed to
1452 "application/javascript"; default value of the "charset_types"
1453 directive was changed accordingly.
1454
1455 *) Change: now the "image_filter" directive with the "size" parameter
1456 returns responses with the "application/json" MIME type.
1457
1458 *) Feature: the ngx_http_auth_request_module.
1459
1460 *) Bugfix: a segmentation fault might occur on start or during
1461 reconfiguration if the "try_files" directive was used with an empty
1462 parameter.
1463
1464 *) Bugfix: memory leak if relative paths were specified using variables
1465 in the "root" or "auth_basic_user_file" directives.
1466
1467 *) Bugfix: the "valid_referers" directive incorrectly executed regular
1468 expressions if a "Referer" header started with "https://".
1469 Thanks to Liangbin Li.
1470
1471 *) Bugfix: responses might hang if subrequests were used and an SSL
1472 handshake error happened during subrequest processing.
1473 Thanks to Aviram Cohen.
1474
1475 *) Bugfix: in the ngx_http_autoindex_module.
1476
1477 *) Bugfix: in the ngx_http_spdy_module.
1478
1479
1480 Changes with nginx 1.5.3 30 Jul 2013
1481
1482 *) Change in internal API: now u->length defaults to -1 if working with
1483 backends in unbuffered mode.
1484
1485 *) Change: now after receiving an incomplete response from a backend
1486 server nginx tries to send an available part of the response to a
1487 client, and then closes client connection.
1488
1489 *) Bugfix: a segmentation fault might occur in a worker process if the
1490 ngx_http_spdy_module was used with the "client_body_in_file_only"
1491 directive.
1492
1493 *) Bugfix: the "so_keepalive" parameter of the "listen" directive might
1494 be handled incorrectly on DragonFlyBSD.
1495 Thanks to Sepherosa Ziehau.
1496
1497 *) Bugfix: in the ngx_http_xslt_filter_module.
1498
1499 *) Bugfix: in the ngx_http_sub_filter_module.
1500
1501
1502 Changes with nginx 1.5.2 02 Jul 2013
1503
1504 *) Feature: now several "error_log" directives can be used.
1505
1506 *) Bugfix: the $r->header_in() embedded perl method did not return value
1507 of the "Cookie" and "X-Forwarded-For" request header lines; the bug
1508 had appeared in 1.3.14.
1509
1510 *) Bugfix: in the ngx_http_spdy_module.
1511 Thanks to Jim Radford.
1512
1513 *) Bugfix: nginx could not be built on Linux with x32 ABI.
1514 Thanks to Serguei Ivantsov.
1515
1516
1517 Changes with nginx 1.5.1 04 Jun 2013
1518
1519 *) Feature: the "ssi_last_modified", "sub_filter_last_modified", and
1520 "xslt_last_modified" directives.
1521 Thanks to Alexey Kolpakov.
1522
1523 *) Feature: the "http_403" parameter of the "proxy_next_upstream",
1524 "fastcgi_next_upstream", "scgi_next_upstream", and
1525 "uwsgi_next_upstream" directives.
1526
1527 *) Feature: the "allow" and "deny" directives now support unix domain
1528 sockets.
1529
1530 *) Bugfix: nginx could not be built with the ngx_mail_ssl_module, but
1531 without ngx_http_ssl_module; the bug had appeared in 1.3.14.
1532
1533 *) Bugfix: in the "proxy_set_body" directive.
1534 Thanks to Lanshun Zhou.
1535
1536 *) Bugfix: in the "lingering_time" directive.
1537 Thanks to Lanshun Zhou.
1538
1539 *) Bugfix: the "fail_timeout" parameter of the "server" directive in the
1540 "upstream" context might not work if "max_fails" parameter was used;
1541 the bug had appeared in 1.3.0.
1542
1543 *) Bugfix: a segmentation fault might occur in a worker process if the
1544 "ssl_stapling" directive was used.
1545 Thanks to Piotr Sikora.
1546
1547 *) Bugfix: in the mail proxy server.
1548 Thanks to Filipe Da Silva.
1549
1550 *) Bugfix: nginx/Windows might stop accepting connections if several
1551 worker processes were used.
1552
1553
1554 Changes with nginx 1.5.0 07 May 2013
1555
1556 *) Security: a stack-based buffer overflow might occur in a worker
1557 process while handling a specially crafted request, potentially
1558 resulting in arbitrary code execution (CVE-2013-2028); the bug had
1559 appeared in 1.3.9.
1560 Thanks to Greg MacManus, iSIGHT Partners Labs.
1561
1562
1563 Changes with nginx 1.4.0 24 Apr 2013
1564
1565 *) Bugfix: nginx could not be built with the ngx_http_perl_module if the
1566 --with-openssl option was used; the bug had appeared in 1.3.16.
1567
1568 *) Bugfix: in a request body handling in the ngx_http_perl_module; the
1569 bug had appeared in 1.3.9.
1570
1571
1572 Changes with nginx 1.3.16 16 Apr 2013
1573
1574 *) Bugfix: a segmentation fault might occur in a worker process if
1575 subrequests were used; the bug had appeared in 1.3.9.
1576
1577 *) Bugfix: the "tcp_nodelay" directive caused an error if a WebSocket
1578 connection was proxied into a unix domain socket.
1579
1580 *) Bugfix: the $upstream_response_length variable has an incorrect value
1581 "0" if buffering was not used.
1582 Thanks to Piotr Sikora.
1583
1584 *) Bugfix: in the eventport and /dev/poll methods.
1585
1586
1587 Changes with nginx 1.3.15 26 Mar 2013
1588
1589 *) Change: opening and closing a connection without sending any data in
1590 it is no longer logged to access_log with error code 400.
1591
1592 *) Feature: the ngx_http_spdy_module.
1593 Thanks to Automattic for sponsoring this work.
1594
1595 *) Feature: the "limit_req_status" and "limit_conn_status" directives.
1596 Thanks to Nick Marden.
1597
1598 *) Feature: the "image_filter_interlace" directive.
1599 Thanks to Ian Babrou.
1600
1601 *) Feature: $connections_waiting variable in the
1602 ngx_http_stub_status_module.
1603
1604 *) Feature: the mail proxy module now supports IPv6 backends.
1605
1606 *) Bugfix: request body might be transmitted incorrectly when retrying a
1607 request to the next upstream server; the bug had appeared in 1.3.9.
1608 Thanks to Piotr Sikora.
1609
1610 *) Bugfix: in the "client_body_in_file_only" directive; the bug had
1611 appeared in 1.3.9.
1612
1613 *) Bugfix: responses might hang if subrequests were used and a DNS error
1614 happened during subrequest processing.
1615 Thanks to Lanshun Zhou.
1616
1617 *) Bugfix: in backend usage accounting.
1618
1619
1620 Changes with nginx 1.3.14 05 Mar 2013
1621
1622 *) Feature: $connections_active, $connections_reading, and
1623 $connections_writing variables in the ngx_http_stub_status_module.
1624
1625 *) Feature: support of WebSocket connections in the
1626 ngx_http_uwsgi_module and ngx_http_scgi_module.
1627
1628 *) Bugfix: in virtual servers handling with SNI.
1629
1630 *) Bugfix: new sessions were not always stored if the "ssl_session_cache
1631 shared" directive was used and there was no free space in shared
1632 memory.
1633 Thanks to Piotr Sikora.
1634
1635 *) Bugfix: multiple X-Forwarded-For headers were handled incorrectly.
1636 Thanks to Neal Poole for sponsoring this work.
1637
1638 *) Bugfix: in the ngx_http_mp4_module.
1639 Thanks to Gernot Vormayr.
1640
1641
1642 Changes with nginx 1.3.13 19 Feb 2013
1643
1644 *) Change: a compiler with name "cc" is now used by default.
1645
1646 *) Feature: support for proxying of WebSocket connections.
1647 Thanks to Apcera and CloudBees for sponsoring this work.
1648
1649 *) Feature: the "auth_basic_user_file" directive supports "{SHA}"
1650 password encryption method.
1651 Thanks to Louis Opter.
1652
1653
1654 Changes with nginx 1.3.12 05 Feb 2013
1655
1656 *) Feature: variables support in the "proxy_bind", "fastcgi_bind",
1657 "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
1658
1659 *) Feature: the $pipe, $request_length, $time_iso8601, and $time_local
1660 variables can now be used not only in the "log_format" directive.
1661 Thanks to Kiril Kalchev.
1662
1663 *) Feature: IPv6 support in the ngx_http_geoip_module.
1664 Thanks to Gregor Kališnik.
1665
1666 *) Bugfix: in the "proxy_method" directive.
1667
1668 *) Bugfix: a segmentation fault might occur in a worker process if
1669 resolver was used with the poll method.
1670
1671 *) Bugfix: nginx might hog CPU during SSL handshake with a backend if
1672 the select, poll, or /dev/poll methods were used.
1673
1674 *) Bugfix: the "[crit] SSL_write() failed (SSL:)" error.
1675
1676 *) Bugfix: in the "client_body_in_file_only" directive; the bug had
1677 appeared in 1.3.9.
1678
1679 *) Bugfix: in the "fastcgi_keep_conn" directive.
1680
1681
1682 Changes with nginx 1.3.11 10 Jan 2013
1683
1684 *) Bugfix: a segmentation fault might occur if logging was used; the bug
1685 had appeared in 1.3.10.
1686
1687 *) Bugfix: the "proxy_pass" directive did not work with IP addresses
1688 without port specified; the bug had appeared in 1.3.10.
1689
1690 *) Bugfix: a segmentation fault occurred on start or during
1691 reconfiguration if the "keepalive" directive was specified more than
1692 once in a single upstream block.
1693
1694 *) Bugfix: parameter "default" of the "geo" directive did not set
1695 default value for IPv6 addresses.
1696
1697
1698 Changes with nginx 1.3.10 25 Dec 2012
1699
1700 *) Change: domain names specified in configuration file are now resolved
1701 to IPv6 addresses as well as IPv4 ones.
1702
1703 *) Change: now if the "include" directive with mask is used on Unix
1704 systems, included files are sorted in alphabetical order.
1705
1706 *) Change: the "add_header" directive adds headers to 201 responses.
1707
1708 *) Feature: the "geo" directive now supports IPv6 addresses in CIDR
1709 notation.
1710
1711 *) Feature: the "flush" and "gzip" parameters of the "access_log"
1712 directive.
1713
1714 *) Feature: variables support in the "auth_basic" directive.
1715
1716 *) Bugfix: nginx could not be built with the ngx_http_perl_module in
1717 some cases.
1718
1719 *) Bugfix: a segmentation fault might occur in a worker process if the
1720 ngx_http_xslt_module was used.
1721
1722 *) Bugfix: nginx could not be built on MacOSX in some cases.
1723 Thanks to Piotr Sikora.
1724
1725 *) Bugfix: the "limit_rate" directive with high rates might result in
1726 truncated responses on 32-bit platforms.
1727 Thanks to Alexey Antropov.
1728
1729 *) Bugfix: a segmentation fault might occur in a worker process if the
1730 "if" directive was used.
1731 Thanks to Piotr Sikora.
1732
1733 *) Bugfix: a "100 Continue" response was issued with "413 Request Entity
1734 Too Large" responses.
1735
1736 *) Bugfix: the "image_filter", "image_filter_jpeg_quality" and
1737 "image_filter_sharpen" directives might be inherited incorrectly.
1738 Thanks to Ian Babrou.
1739
1740 *) Bugfix: "crypt_r() failed" errors might appear if the "auth_basic"
1741 directive was used on Linux.
1742
1743 *) Bugfix: in backup servers handling.
1744 Thanks to Thomas Chen.
1745
1746 *) Bugfix: proxied HEAD requests might return incorrect response if the
1747 "gzip" directive was used.
1748
1749
1750 Changes with nginx 1.3.9 27 Nov 2012
1751
1752 *) Feature: support for chunked transfer encoding while reading client
1753 request body.
1754
1755 *) Feature: the $request_time and $msec variables can now be used not
1756 only in the "log_format" directive.
1757
1758 *) Bugfix: cache manager and cache loader processes might not be able to
1759 start if more than 512 listen sockets were used.
1760
1761 *) Bugfix: in the ngx_http_dav_module.
1762
1763
1764 Changes with nginx 1.3.8 30 Oct 2012
1765
1766 *) Feature: the "optional_no_ca" parameter of the "ssl_verify_client"
1767 directive.
1768 Thanks to Mike Kazantsev and Eric O'Connor.
1769
1770 *) Feature: the $bytes_sent, $connection, and $connection_requests
1771 variables can now be used not only in the "log_format" directive.
1772 Thanks to Benjamin Grössing.
1773
1774 *) Feature: the "auto" parameter of the "worker_processes" directive.
1775
1776 *) Bugfix: "cache file ... has md5 collision" alert.
1777
1778 *) Bugfix: in the ngx_http_gunzip_filter_module.
1779
1780 *) Bugfix: in the "ssl_stapling" directive.
1781
1782
1783 Changes with nginx 1.3.7 02 Oct 2012
1784
1785 *) Feature: OCSP stapling support.
1786 Thanks to Comodo, DigiCert and GlobalSign for sponsoring this work.
1787
1788 *) Feature: the "ssl_trusted_certificate" directive.
1789
1790 *) Feature: resolver now randomly rotates addresses returned from cache.
1791 Thanks to Anton Jouline.
1792
1793 *) Bugfix: OpenSSL 0.9.7 compatibility.
1794
1795
1796 Changes with nginx 1.3.6 12 Sep 2012
1797
1798 *) Feature: the ngx_http_gunzip_filter_module.
1799
1800 *) Feature: the "memcached_gzip_flag" directive.
1801
1802 *) Feature: the "always" parameter of the "gzip_static" directive.
1803
1804 *) Bugfix: in the "limit_req" directive; the bug had appeared in 1.1.14.
1805 Thanks to Charles Chen.
1806
1807 *) Bugfix: nginx could not be built by gcc 4.7 with -O2 optimization if
1808 the --with-ipv6 option was used.
1809
1810
1811 Changes with nginx 1.3.5 21 Aug 2012
1812
1813 *) Change: the ngx_http_mp4_module module no longer skips tracks in
1814 formats other than H.264 and AAC.
1815
1816 *) Bugfix: a segmentation fault might occur in a worker process if the
1817 "map" directive was used with variables as values.
1818
1819 *) Bugfix: a segmentation fault might occur in a worker process if the
1820 "geo" directive was used with the "ranges" parameter but without the
1821 "default" parameter; the bug had appeared in 0.8.43.
1822 Thanks to Zhen Chen and Weibin Yao.
1823
1824 *) Bugfix: in the -p command-line parameter handling.
1825
1826 *) Bugfix: in the mail proxy server.
1827
1828 *) Bugfix: of minor potential bugs.
1829 Thanks to Coverity.
1830
1831 *) Bugfix: nginx/Windows could not be built with Visual Studio 2005
1832 Express.
1833 Thanks to HAYASHI Kentaro.
1834
1835
1836 Changes with nginx 1.3.4 31 Jul 2012
1837
1838 *) Change: the "ipv6only" parameter is now turned on by default for
1839 listening IPv6 sockets.
1840
1841 *) Feature: the Clang compiler support.
1842
1843 *) Bugfix: extra listening sockets might be created.
1844 Thanks to Roman Odaisky.
1845
1846 *) Bugfix: nginx/Windows might hog CPU if a worker process failed to
1847 start.
1848 Thanks to Ricardo Villalobos Guevara.
1849
1850 *) Bugfix: the "proxy_pass_header", "fastcgi_pass_header",
1851 "scgi_pass_header", "uwsgi_pass_header", "proxy_hide_header",
1852 "fastcgi_hide_header", "scgi_hide_header", and "uwsgi_hide_header"
1853 directives might be inherited incorrectly.
1854
1855
1856 Changes with nginx 1.3.3 10 Jul 2012
1857
1858 *) Feature: entity tags support and the "etag" directive.
1859
1860 *) Bugfix: trailing dot in a source value was not ignored if the "map"
1861 directive was used with the "hostnames" parameter.
1862
1863 *) Bugfix: incorrect location might be used to process a request if a
1864 URI was changed via a "rewrite" directive before an internal redirect
1865 to a named location.
1866
1867
1868 Changes with nginx 1.3.2 26 Jun 2012
1869
1870 *) Change: the "single" parameter of the "keepalive" directive is now
1871 ignored.
1872
1873 *) Change: SSL compression is now disabled when using all versions of
1874 OpenSSL, including ones prior to 1.0.0.
1875
1876 *) Feature: it is now possible to use the "ip_hash" directive to balance
1877 IPv6 clients.
1878
1879 *) Feature: the $status variable can now be used not only in the
1880 "log_format" directive.
1881
1882 *) Bugfix: a segmentation fault might occur in a worker process on
1883 shutdown if the "resolver" directive was used.
1884
1885 *) Bugfix: a segmentation fault might occur in a worker process if the
1886 ngx_http_mp4_module was used.
1887
1888 *) Bugfix: in the ngx_http_mp4_module.
1889
1890 *) Bugfix: a segmentation fault might occur in a worker process if
1891 conflicting wildcard server names were used.
1892
1893 *) Bugfix: nginx might be terminated abnormally on a SIGBUS signal on
1894 ARM platform.
1895
1896 *) Bugfix: an alert "sendmsg() failed (9: Bad file number)" on HP-UX
1897 while reconfiguration.
1898
1899
1900 Changes with nginx 1.3.1 05 Jun 2012
1901
1902 *) Security: now nginx/Windows ignores trailing dot in URI path
1903 component, and does not allow URIs with ":$" in it.
1904 Thanks to Vladimir Kochetkov, Positive Research Center.
1905
1906 *) Feature: the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass"
1907 directives, and the "server" directive inside the "upstream" block,
1908 now support IPv6 addresses.
1909
1910 *) Feature: the "resolver" directive now supports IPv6 addresses and an
1911 optional port specification.
1912
1913 *) Feature: the "least_conn" directive inside the "upstream" block.
1914
1915 *) Feature: it is now possible to specify a weight for servers while
1916 using the "ip_hash" directive.
1917
1918 *) Bugfix: a segmentation fault might occur in a worker process if the
1919 "image_filter" directive was used; the bug had appeared in 1.3.0.
1920
1921 *) Bugfix: nginx could not be built with ngx_cpp_test_module; the bug
1922 had appeared in 1.1.12.
1923
1924 *) Bugfix: access to variables from SSI and embedded perl module might
1925 not work after reconfiguration.
1926 Thanks to Yichun Zhang.
1927
1928 *) Bugfix: in the ngx_http_xslt_filter_module.
1929 Thanks to Kuramoto Eiji.
1930
1931 *) Bugfix: memory leak if $geoip_org variable was used.
1932 Thanks to Denis F. Latypoff.
1933
1934 *) Bugfix: in the "proxy_cookie_domain" and "proxy_cookie_path"
1935 directives.
1936
1937
1938 Changes with nginx 1.3.0 15 May 2012
1939
1940 *) Feature: the "debug_connection" directive now supports IPv6 addresses
1941 and the "unix:" parameter.
1942
1943 *) Feature: the "set_real_ip_from" directive and the "proxy" parameter
1944 of the "geo" directive now support IPv6 addresses.
1945
1946 *) Feature: the "real_ip_recursive", "geoip_proxy", and
1947 "geoip_proxy_recursive" directives.
1948
1949 *) Feature: the "proxy_recursive" parameter of the "geo" directive.
1950
1951 *) Bugfix: a segmentation fault might occur in a worker process if the
1952 "resolver" directive was used.
1953
1954 *) Bugfix: a segmentation fault might occur in a worker process if the
1955 "fastcgi_pass", "scgi_pass", or "uwsgi_pass" directives were used and
1956 backend returned incorrect response.
1957
1958 *) Bugfix: a segmentation fault might occur in a worker process if the
1959 "rewrite" directive was used and new request arguments in a
1960 replacement used variables.
1961
1962 *) Bugfix: nginx might hog CPU if the open file resource limit was
1963 reached.
1964
1965 *) Bugfix: nginx might loop infinitely over backends if the
1966 "proxy_next_upstream" directive with the "http_404" parameter was
1967 used and there were backup servers specified in an upstream block.
1968
1969 *) Bugfix: adding the "down" parameter of the "server" directive might
1970 cause unneeded client redistribution among backend servers if the
1971 "ip_hash" directive was used.
1972
1973 *) Bugfix: socket leak.
1974 Thanks to Yichun Zhang.
1975
1976 *) Bugfix: in the ngx_http_fastcgi_module.
1977
1978
1979 Changes with nginx 1.2.0 23 Apr 2012
1980
1981 *) Bugfix: a segmentation fault might occur in a worker process if the
1982 "try_files" directive was used; the bug had appeared in 1.1.19.
1983
1984 *) Bugfix: response might be truncated if there were more than IOV_MAX
1985 buffers used.
1986
1987 *) Bugfix: in the "crop" parameter of the "image_filter" directive.
1988 Thanks to Maxim Bublis.
1989
1990
1991 Changes with nginx 1.1.19 12 Apr 2012
1992
1993 *) Security: specially crafted mp4 file might allow to overwrite memory
1994 locations in a worker process if the ngx_http_mp4_module was used,
1995 potentially resulting in arbitrary code execution (CVE-2012-2089).
1996 Thanks to Matthew Daley.
1997
1998 *) Bugfix: nginx/Windows might be terminated abnormally.
1999 Thanks to Vincent Lee.
2000
2001 *) Bugfix: nginx hogged CPU if all servers in an upstream were marked as
2002 "backup".
2003
2004 *) Bugfix: the "allow" and "deny" directives might be inherited
2005 incorrectly if they were used with IPv6 addresses.
2006
2007 *) Bugfix: the "modern_browser" and "ancient_browser" directives might
2008 be inherited incorrectly.
2009
2010 *) Bugfix: timeouts might be handled incorrectly on Solaris/SPARC.
2011
2012 *) Bugfix: in the ngx_http_mp4_module.
2013
2014
2015 Changes with nginx 1.1.18 28 Mar 2012
2016
2017 *) Change: keepalive connections are no longer disabled for Safari by
2018 default.
2019
2020 *) Feature: the $connection_requests variable.
2021
2022 *) Feature: $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and
2023 $tcpinfo_rcv_space variables.
2024
2025 *) Feature: the "worker_cpu_affinity" directive now works on FreeBSD.
2026
2027 *) Feature: the "xslt_param" and "xslt_string_param" directives.
2028 Thanks to Samuel Behan.
2029
2030 *) Bugfix: in configure tests.
2031 Thanks to Piotr Sikora.
2032
2033 *) Bugfix: in the ngx_http_xslt_filter_module.
2034
2035 *) Bugfix: nginx could not be built on Debian GNU/Hurd.
2036
2037
2038 Changes with nginx 1.1.17 15 Mar 2012
2039
2040 *) Security: content of previously freed memory might be sent to a
2041 client if backend returned specially crafted response.
2042 Thanks to Matthew Daley.
2043
2044 *) Bugfix: in the embedded perl module if used from SSI.
2045 Thanks to Matthew Daley.
2046
2047 *) Bugfix: in the ngx_http_uwsgi_module.
2048
2049
2050 Changes with nginx 1.1.16 29 Feb 2012
2051
2052 *) Change: the simultaneous subrequest limit has been raised to 200.
2053
2054 *) Feature: the "from" parameter of the "disable_symlinks" directive.
2055
2056 *) Feature: the "return" and "error_page" directives can now be used to
2057 return 307 redirections.
2058
2059 *) Bugfix: a segmentation fault might occur in a worker process if the
2060 "resolver" directive was used and there was no "error_log" directive
2061 specified at global level.
2062 Thanks to Roman Arutyunyan.
2063
2064 *) Bugfix: a segmentation fault might occur in a worker process if the
2065 "proxy_http_version 1.1" or "fastcgi_keep_conn on" directives were
2066 used.
2067
2068 *) Bugfix: memory leaks.
2069 Thanks to Lanshun Zhou.
2070
2071 *) Bugfix: in the "disable_symlinks" directive.
2072
2073 *) Bugfix: on ZFS filesystem disk cache size might be calculated
2074 incorrectly; the bug had appeared in 1.0.1.
2075
2076 *) Bugfix: nginx could not be built by the icc 12.1 compiler.
2077
2078 *) Bugfix: nginx could not be built by gcc on Solaris; the bug had
2079 appeared in 1.1.15.
2080
2081
2082 Changes with nginx 1.1.15 15 Feb 2012
2083
2084 *) Feature: the "disable_symlinks" directive.
2085
2086 *) Feature: the "proxy_cookie_domain" and "proxy_cookie_path"
2087 directives.
2088
2089 *) Bugfix: nginx might log incorrect error "upstream prematurely closed
2090 connection" instead of correct "upstream sent too big header" one.
2091 Thanks to Feibo Li.
2092
2093 *) Bugfix: nginx could not be built with the ngx_http_perl_module if the
2094 --with-openssl option was used.
2095
2096 *) Bugfix: the number of internal redirects to named locations was not
2097 limited.
2098
2099 *) Bugfix: calling $r->flush() multiple times might cause errors in the
2100 ngx_http_gzip_filter_module.
2101
2102 *) Bugfix: temporary files might be not removed if the "proxy_store"
2103 directive was used with SSI includes.
2104
2105 *) Bugfix: in some cases non-cacheable variables (such as the $args
2106 variable) returned old empty cached value.
2107
2108 *) Bugfix: a segmentation fault might occur in a worker process if too
2109 many SSI subrequests were issued simultaneously; the bug had appeared
2110 in 0.7.25.
2111
2112
2113 Changes with nginx 1.1.14 30 Jan 2012
2114
2115 *) Feature: multiple "limit_req" limits may be used simultaneously.
2116
2117 *) Bugfix: in error handling while connecting to a backend.
2118 Thanks to Piotr Sikora.
2119
2120 *) Bugfix: in AIO error handling on FreeBSD.
2121
2122 *) Bugfix: in the OpenSSL library initialization.
2123
2124 *) Bugfix: the "proxy_redirect" directives might be inherited
2125 incorrectly.
2126
2127 *) Bugfix: memory leak during reconfiguration if the "pcre_jit"
2128 directive was used.
2129
2130
2131 Changes with nginx 1.1.13 16 Jan 2012
2132
2133 *) Feature: the "TLSv1.1" and "TLSv1.2" parameters of the
2134 "ssl_protocols" directive.
2135
2136 *) Bugfix: the "limit_req" directive parameters were not inherited
2137 correctly; the bug had appeared in 1.1.12.
2138
2139 *) Bugfix: the "proxy_redirect" directive incorrectly processed
2140 "Refresh" header if regular expression were used.
2141
2142 *) Bugfix: the "proxy_cache_use_stale" directive with "error" parameter
2143 did not return answer from cache if there were no live upstreams.
2144
2145 *) Bugfix: the "worker_cpu_affinity" directive might not work.
2146
2147 *) Bugfix: nginx could not be built on Solaris; the bug had appeared in
2148 1.1.12.
2149
2150 *) Bugfix: in the ngx_http_mp4_module.
2151
2152
2153 Changes with nginx 1.1.12 26 Dec 2011
2154
2155 *) Change: a "proxy_pass" directive without URI part now uses changed
2156 URI after redirection with the "error_page" directive.
2157 Thanks to Lanshun Zhou.
2158
2159 *) Feature: the "proxy/fastcgi/scgi/uwsgi_cache_lock",
2160 "proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives.
2161
2162 *) Feature: the "pcre_jit" directive.
2163
2164 *) Feature: the "if" SSI command supports captures in regular
2165 expressions.
2166
2167 *) Bugfix: the "if" SSI command did not work inside the "block" command.
2168
2169 *) Bugfix: the "limit_conn_log_level" and "limit_req_log_level"
2170 directives might not work.
2171
2172 *) Bugfix: the "limit_rate" directive did not allow to use full
2173 throughput, even if limit value was very high.
2174
2175 *) Bugfix: the "sendfile_max_chunk" directive did not work, if the
2176 "limit_rate" directive was used.
2177
2178 *) Bugfix: a "proxy_pass" directive without URI part always used
2179 original request URI if variables were used.
2180
2181 *) Bugfix: a "proxy_pass" directive without URI part might use original
2182 request after redirection with the "try_files" directive.
2183 Thanks to Lanshun Zhou.
2184
2185 *) Bugfix: in the ngx_http_scgi_module.
2186
2187 *) Bugfix: in the ngx_http_mp4_module.
2188
2189 *) Bugfix: nginx could not be built on Solaris; the bug had appeared in
2190 1.1.9.
2191
2192
2193 Changes with nginx 1.1.11 12 Dec 2011
2194
2195 *) Feature: the "so_keepalive" parameter of the "listen" directive.
2196 Thanks to Vsevolod Stakhov.
2197
2198 *) Feature: the "if_not_empty" parameter of the
2199 "fastcgi/scgi/uwsgi_param" directives.
2200
2201 *) Feature: the $https variable.
2202
2203 *) Feature: the "proxy_redirect" directive supports variables in the
2204 first parameter.
2205
2206 *) Feature: the "proxy_redirect" directive supports regular expressions.
2207
2208 *) Bugfix: the $sent_http_cache_control variable might contain a wrong
2209 value if the "expires" directive was used.
2210 Thanks to Yichun Zhang.
2211
2212 *) Bugfix: the "read_ahead" directive might not work combined with
2213 "try_files" and "open_file_cache".
2214
2215 *) Bugfix: a segmentation fault might occur in a worker process if small
2216 time was used in the "inactive" parameter of the "proxy_cache_path"
2217 directive.
2218
2219 *) Bugfix: responses from cache might hang.
2220
2221
2222 Changes with nginx 1.1.10 30 Nov 2011
2223
2224 *) Bugfix: a segmentation fault occurred in a worker process if AIO was
2225 used on Linux; the bug had appeared in 1.1.9.
2226
2227
2228 Changes with nginx 1.1.9 28 Nov 2011
2229
2230 *) Change: now double quotes are encoded in an "echo" SSI-command
2231 output.
2232 Thanks to Zaur Abasmirzoev.
2233
2234 *) Feature: the "valid" parameter of the "resolver" directive. By
2235 default TTL returned by a DNS server is used.
2236 Thanks to Kirill A. Korinskiy.
2237
2238 *) Bugfix: nginx might hang after a worker process abnormal termination.
2239
2240 *) Bugfix: a segmentation fault might occur in a worker process if SNI
2241 was used; the bug had appeared in 1.1.2.
2242
2243 *) Bugfix: in the "keepalive_disable" directive; the bug had appeared in
2244 1.1.8.
2245 Thanks to Alexander Usov.
2246
2247 *) Bugfix: SIGWINCH signal did not work after first binary upgrade; the
2248 bug had appeared in 1.1.1.
2249
2250 *) Bugfix: backend responses with length not matching "Content-Length"
2251 header line are no longer cached.
2252
2253 *) Bugfix: in the "scgi_param" directive, if complex parameters were
2254 used.
2255
2256 *) Bugfix: in the "epoll" event method.
2257 Thanks to Yichun Zhang.
2258
2259 *) Bugfix: in the ngx_http_flv_module.
2260 Thanks to Piotr Sikora.
2261
2262 *) Bugfix: in the ngx_http_mp4_module.
2263
2264 *) Bugfix: IPv6 addresses are now handled properly in a request line and
2265 in a "Host" request header line.
2266
2267 *) Bugfix: "add_header" and "expires" directives did not work if a
2268 request was proxied and response status code was 206.
2269
2270 *) Bugfix: nginx could not be built on FreeBSD 10.
2271
2272 *) Bugfix: nginx could not be built on AIX.
2273
2274
2275 Changes with nginx 1.1.8 14 Nov 2011
2276
2277 *) Change: the ngx_http_limit_zone_module was renamed to the
2278 ngx_http_limit_conn_module.
2279
2280 *) Change: the "limit_zone" directive was superseded by the
2281 "limit_conn_zone" directive with a new syntax.
2282
2283 *) Feature: support for multiple "limit_conn" limits on the same level.
2284
2285 *) Feature: the "image_filter_sharpen" directive.
2286
2287 *) Bugfix: a segmentation fault might occur in a worker process if
2288 resolver got a big DNS response.
2289 Thanks to Ben Hawkes.
2290
2291 *) Bugfix: in cache key calculation if internal MD5 implementation was
2292 used; the bug had appeared in 1.0.4.
2293
2294 *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request
2295 header lines might be passed to backend while caching; or not passed
2296 without caching if caching was enabled in another part of the
2297 configuration.
2298
2299 *) Bugfix: the module ngx_http_mp4_module sent incorrect
2300 "Content-Length" response header line if the "start" argument was
2301 used.
2302 Thanks to Piotr Sikora.
2303
2304
2305 Changes with nginx 1.1.7 31 Oct 2011
2306
2307 *) Feature: support of several DNS servers in the "resolver" directive.
2308 Thanks to Kirill A. Korinskiy.
2309
2310 *) Bugfix: a segmentation fault occurred on start or during
2311 reconfiguration if the "ssl" directive was used at http level and
2312 there was no "ssl_certificate" defined.
2313
2314 *) Bugfix: reduced memory consumption while proxying big files if they
2315 were buffered to disk.
2316
2317 *) Bugfix: a segmentation fault might occur in a worker process if
2318 "proxy_http_version 1.1" directive was used.
2319
2320 *) Bugfix: in the "expires @time" directive.
2321
2322
2323 Changes with nginx 1.1.6 17 Oct 2011
2324
2325 *) Change in internal API: now module context data are cleared while
2326 internal redirect to named location.
2327 Requested by Yichun Zhang.
2328
2329 *) Change: if a server in an upstream failed, only one request will be
2330 sent to it after fail_timeout; the server will be considered alive if
2331 it will successfully respond to the request.
2332
2333 *) Change: now the 0x7F-0xFF characters are escaped as \xXX in an
2334 access_log.
2335
2336 *) Feature: "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support
2337 the following additional values: X-Accel-Limit-Rate,
2338 X-Accel-Buffering, X-Accel-Charset.
2339
2340 *) Feature: decrease of memory consumption if SSL is used.
2341
2342 *) Bugfix: some UTF-8 characters were processed incorrectly.
2343 Thanks to Alexey Kuts.
2344
2345 *) Bugfix: the ngx_http_rewrite_module directives specified at "server"
2346 level were executed twice if no matching locations were defined.
2347
2348 *) Bugfix: a socket leak might occurred if "aio sendfile" was used.
2349
2350 *) Bugfix: connections with fast clients might be closed after
2351 send_timeout if file AIO was used.
2352
2353 *) Bugfix: in the ngx_http_autoindex_module.
2354
2355 *) Bugfix: the module ngx_http_mp4_module did not support seeking on
2356 32-bit platforms.
2357
2358
2359 Changes with nginx 1.1.5 05 Oct 2011
2360
2361 *) Feature: the "uwsgi_buffering" and "scgi_buffering" directives.
2362 Thanks to Peter Smit.
2363
2364 *) Bugfix: non-cacheable responses might be cached if
2365 "proxy_cache_bypass" directive was used.
2366 Thanks to John Ferlito.
2367
2368 *) Bugfix: in HTTP/1.1 support in the ngx_http_proxy_module.
2369
2370 *) Bugfix: cached responses with an empty body were returned
2371 incorrectly; the bug had appeared in 0.8.31.
2372
2373 *) Bugfix: 201 responses of the ngx_http_dav_module were incorrect; the
2374 bug had appeared in 0.8.32.
2375
2376 *) Bugfix: in the "return" directive.
2377
2378 *) Bugfix: the "ssl_session_cache builtin" directive caused segmentation
2379 fault; the bug had appeared in 1.1.1.
2380
2381
2382 Changes with nginx 1.1.4 20 Sep 2011
2383
2384 *) Feature: the ngx_http_upstream_keepalive module.
2385
2386 *) Feature: the "proxy_http_version" directive.
2387
2388 *) Feature: the "fastcgi_keep_conn" directive.
2389
2390 *) Feature: the "worker_aio_requests" directive.
2391
2392 *) Bugfix: if nginx was built --with-file-aio it could not be run on
2393 Linux kernel which did not support AIO.
2394
2395 *) Bugfix: in Linux AIO error processing.
2396 Thanks to Hagai Avrahami.
2397
2398 *) Bugfix: reduced memory consumption for long-lived requests.
2399
2400 *) Bugfix: the module ngx_http_mp4_module did not support 64-bit MP4
2401 "co64" atom.
2402
2403
2404 Changes with nginx 1.1.3 14 Sep 2011
2405
2406 *) Feature: the module ngx_http_mp4_module.
2407
2408 *) Bugfix: in Linux AIO combined with open_file_cache.
2409
2410 *) Bugfix: open_file_cache did not update file info on retest if file
2411 was not atomically changed.
2412
2413 *) Bugfix: nginx could not be built on MacOSX 10.7.
2414
2415
2416 Changes with nginx 1.1.2 05 Sep 2011
2417
2418 *) Change: now if total size of all ranges is greater than source
2419 response size, then nginx disables ranges and returns just the source
2420 response.
2421
2422 *) Feature: the "max_ranges" directive.
2423
2424 *) Bugfix: the "ssl_verify_client", "ssl_verify_depth", and
2425 "ssl_prefer_server_ciphers" directives might work incorrectly if SNI
2426 was used.
2427
2428 *) Bugfix: in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort"
2429 directives.
2430
2431
2432 Changes with nginx 1.1.1 22 Aug 2011
2433
2434 *) Change: now cache loader processes either as many files as specified
2435 by "loader_files" parameter or works no longer than time specified by
2436 the "loader_threshold" parameter during each iteration.
2437
2438 *) Change: now SIGWINCH signal works only in daemon mode.
2439
2440 *) Feature: now shared zones and caches use POSIX semaphores on Solaris.
2441 Thanks to Den Ivanov.
2442
2443 *) Feature: accept filters are now supported on NetBSD.
2444
2445 *) Bugfix: nginx could not be built on Linux 3.0.
2446
2447 *) Bugfix: nginx did not use gzipping in some cases; the bug had
2448 appeared in 1.1.0.
2449
2450 *) Bugfix: request body might be processed incorrectly if client used
2451 pipelining.
2452
2453 *) Bugfix: in the "request_body_in_single_buf" directive.
2454
2455 *) Bugfix: in "proxy_set_body" and "proxy_pass_request_body" directives
2456 if SSL connection to backend was used.
2457
2458 *) Bugfix: nginx hogged CPU if all servers in an upstream were marked as
2459 "down".
2460
2461 *) Bugfix: a segmentation fault might occur during reconfiguration if
2462 ssl_session_cache was defined but not used in previous configuration.
2463
2464 *) Bugfix: a segmentation fault might occur in a worker process if many
2465 backup servers were used in an upstream.
2466
2467 *) Bugfix: a segmentation fault might occur in a worker process if
2468 "fastcgi/scgi/uwsgi_param" directives were used with values starting
2469 with "HTTP_"; the bug had appeared in 0.8.40.
2470
2471
2472 Changes with nginx 1.1.0 01 Aug 2011
2473
2474 *) Feature: cache loader run time decrease.
2475
2476 *) Feature: "loader_files", "loader_sleep", and "loader_threshold"
2477 options of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives.
2478
2479 *) Feature: loading time decrease of configuration with large number of
2480 HTTPS sites.
2481
2482 *) Feature: now nginx supports ECDHE key exchange ciphers.
2483 Thanks to Adrian Kotelba.
2484
2485 *) Feature: the "lingering_close" directive.
2486 Thanks to Maxim Dounin.
2487
2488 *) Bugfix: in closing connection for pipelined requests.
2489 Thanks to Maxim Dounin.
2490
2491 *) Bugfix: nginx did not disable gzipping if client sent "gzip;q=0" in
2492 "Accept-Encoding" request header line.
2493
2494 *) Bugfix: in timeout in unbuffered proxied mode.
2495 Thanks to Maxim Dounin.
2496
2497 *) Bugfix: memory leaks when a "proxy_pass" directive contains variables
2498 and proxies to an HTTPS backend.
2499 Thanks to Maxim Dounin.
2500
2501 *) Bugfix: in parameter validation of a "proxy_pass" directive with
2502 variables.
2503 Thanks to Lanshun Zhou.
2504
2505 *) Bugfix: SSL did not work on QNX.
2506 Thanks to Maxim Dounin.
2507
2508 *) Bugfix: SSL modules could not be built by gcc 4.6 without
2509 --with-debug option.
2510
2511
2512 Changes with nginx 1.0.5 19 Jul 2011
2513
2514 *) Change: now default SSL ciphers are "HIGH:!aNULL:!MD5".
2515 Thanks to Rob Stradling.
2516
2517 *) Feature: the "referer_hash_max_size" and "referer_hash_bucket_size"
2518 directives.
2519 Thanks to Witold Filipczyk.
2520
2521 *) Feature: $uid_reset variable.
2522
2523 *) Bugfix: a segmentation fault might occur in a worker process, if a
2524 caching was used.
2525 Thanks to Lanshun Zhou.
2526
2527 *) Bugfix: worker processes may got caught in an endless loop during
2528 reconfiguration, if a caching was used; the bug had appeared in
2529 0.8.48.
2530 Thanks to Maxim Dounin.
2531
2532 *) Bugfix: "stalled cache updating" alert.
2533 Thanks to Maxim Dounin.
2534
2535
2536 Changes with nginx 1.0.4 01 Jun 2011
2537
2538 *) Change: now regular expressions case sensitivity in the "map"
2539 directive is given by prefixes "~" or "~*".
2540
2541 *) Feature: now shared zones and caches use POSIX semaphores on Linux.
2542 Thanks to Denis F. Latypoff.
2543
2544 *) Bugfix: "stalled cache updating" alert.
2545
2546 *) Bugfix: nginx could not be built --without-http_auth_basic_module;
2547 the bug had appeared in 1.0.3.
2548
2549
2550 Changes with nginx 1.0.3 25 May 2011
2551
2552 *) Feature: the "auth_basic_user_file" directive supports "$apr1",
2553 "{PLAIN}", and "{SSHA}" password encryption methods.
2554 Thanks to Maxim Dounin.
2555
2556 *) Feature: the "geoip_org" directive and $geoip_org variable.
2557 Thanks to Alexander Uskov, Arnaud Granal, and Denis F. Latypoff.
2558
2559 *) Feature: ngx_http_geo_module and ngx_http_geoip_module support IPv4
2560 addresses mapped to IPv6 addresses.
2561
2562 *) Bugfix: a segmentation fault occurred in a worker process during
2563 testing IPv4 address mapped to IPv6 address, if access or deny rules
2564 were defined only for IPv6; the bug had appeared in 0.8.22.
2565
2566 *) Bugfix: a cached response may be broken if "proxy/fastcgi/scgi/
2567 uwsgi_cache_bypass" and "proxy/fastcgi/scgi/uwsgi_no_cache" directive
2568 values were different; the bug had appeared in 0.8.46.
2569
2570
2571 Changes with nginx 1.0.2 10 May 2011
2572
2573 *) Feature: now shared zones and caches use POSIX semaphores.
2574
2575 *) Bugfix: in the "rotate" parameter of the "image_filter" directive.
2576 Thanks to Adam Bocim.
2577
2578 *) Bugfix: nginx could not be built on Solaris; the bug had appeared in
2579 1.0.1.
2580
2581
2582 Changes with nginx 1.0.1 03 May 2011
2583
2584 *) Change: now the "split_clients" directive uses MurmurHash2 algorithm
2585 because of better distribution.
2586 Thanks to Oleg Mamontov.
2587
2588 *) Change: now long strings starting with zero are not considered as
2589 false values.
2590 Thanks to Maxim Dounin.
2591
2592 *) Change: now nginx uses a default listen backlog value 511 on Linux.
2593
2594 *) Feature: the $upstream_... variables may be used in the SSI and perl
2595 modules.
2596
2597 *) Bugfix: now nginx limits better disk cache size.
2598 Thanks to Oleg Mamontov.
2599
2600 *) Bugfix: a segmentation fault might occur while parsing incorrect IPv4
2601 address; the bug had appeared in 0.9.3.
2602 Thanks to Maxim Dounin.
2603
2604 *) Bugfix: nginx could not be built by gcc 4.6 without --with-debug
2605 option.
2606
2607 *) Bugfix: nginx could not be built on Solaris 9 and earlier; the bug
2608 had appeared in 0.9.3.
2609 Thanks to Dagobert Michelsen.
2610
2611 *) Bugfix: $request_time variable had invalid values if subrequests were
2612 used; the bug had appeared in 0.8.47.
2613 Thanks to Igor A. Valcov.
2614
2615
2616 Changes with nginx 1.0.0 12 Apr 2011
2617
2618 *) Bugfix: a cache manager might hog CPU after reload.
2619 Thanks to Maxim Dounin.
2620
2621 *) Bugfix: an "image_filter crop" directive worked incorrectly coupled
2622 with an "image_filter rotate 180" directive.
2623
2624 *) Bugfix: a "satisfy any" directive disabled custom 401 error page.
2625
2626
2627 Changes with nginx 0.9.7 04 Apr 2011
2628
2629 *) Feature: now keepalive connections may be closed premature, if there
2630 are no free worker connections.
2631 Thanks to Maxim Dounin.
2632
2633 *) Feature: the "rotate" parameter of the "image_filter" directive.
2634 Thanks to Adam Bocim.
2635
2636 *) Bugfix: a case when a backend in "fastcgi_pass", "scgi_pass", or
2637 "uwsgi_pass" directives is given by expression and refers to a
2638 defined upstream.
2639
2640
2641 Changes with nginx 0.9.6 21 Mar 2011
2642
2643 *) Feature: the "map" directive supports regular expressions as value of
2644 the first parameter.
2645
2646 *) Feature: $time_iso8601 access_log variable.
2647 Thanks to Michael Lustfield.
2648
2649
2650 Changes with nginx 0.9.5 21 Feb 2011
2651
2652 *) Change: now nginx uses a default listen backlog value -1 on Linux.
2653 Thanks to Andrei Nigmatulin.
2654
2655 *) Feature: the "utf8" parameter of "geoip_country" and "geoip_city"
2656 directives.
2657 Thanks to Denis F. Latypoff.
2658
2659 *) Bugfix: in a default "proxy_redirect" directive if "proxy_pass"
2660 directive has no URI part.
2661 Thanks to Maxim Dounin.
2662
2663 *) Bugfix: an "error_page" directive did not work with nonstandard error
2664 codes; the bug had appeared in 0.8.53.
2665 Thanks to Maxim Dounin.
2666
2667
2668 Changes with nginx 0.9.4 21 Jan 2011
2669
2670 *) Feature: the "server_name" directive supports the $hostname variable.
2671
2672 *) Feature: 494 code for "Request Header Too Large" error.
2673
2674
2675 Changes with nginx 0.9.3 13 Dec 2010
2676
2677 *) Bugfix: if there was a single server for given IPv6 address:port
2678 pair, then captures in regular expressions in a "server_name"
2679 directive did not work.
2680
2681 *) Bugfix: nginx could not be built on Solaris; the bug had appeared in
2682 0.9.0.
2683
2684
2685 Changes with nginx 0.9.2 06 Dec 2010
2686
2687 *) Feature: the "If-Unmodified-Since" client request header line
2688 support.
2689
2690 *) Workaround: fallback to accept() syscall if accept4() was not
2691 implemented; the issue had appeared in 0.9.0.
2692
2693 *) Bugfix: nginx could not be built on Cygwin; the bug had appeared in
2694 0.9.0.
2695
2696 *) Bugfix: for OpenSSL vulnerability CVE-2010-4180.
2697 Thanks to Maxim Dounin.
2698
2699
2700 Changes with nginx 0.9.1 30 Nov 2010
2701
2702 *) Bugfix: "return CODE message" directives did not work; the bug had
2703 appeared in 0.9.0.
2704
2705
2706 Changes with nginx 0.9.0 29 Nov 2010
2707
2708 *) Feature: the "keepalive_disable" directive.
2709
2710 *) Feature: the "map" directive supports variables as value of a defined
2711 variable.
2712
2713 *) Feature: the "map" directive supports empty strings as value of the
2714 first parameter.
2715
2716 *) Feature: the "map" directive supports expressions as the first
2717 parameter.
2718
2719 *) Feature: nginx(8) manual page.
2720 Thanks to Sergey Osokin.
2721
2722 *) Feature: Linux accept4() support.
2723 Thanks to Simon Liu.
2724
2725 *) Workaround: elimination of Linux linker warning about "sys_errlist"
2726 and "sys_nerr"; the warning had appeared in 0.8.35.
2727
2728 *) Bugfix: a segmentation fault might occur in a worker process, if the
2729 "auth_basic" directive was used.
2730 Thanks to Michail Laletin.
2731
2732 *) Bugfix: compatibility with ngx_http_eval_module; the bug had appeared
2733 in 0.8.42.
2734
2735
2736 Changes with nginx 0.8.53 18 Oct 2010
2737
2738 *) Feature: now the "error_page" directive allows to change a status
2739 code in a redirect.
2740
2741 *) Feature: the "gzip_disable" directive supports special "degradation"
2742 mask.
2743
2744 *) Bugfix: a socket leak might occurred if file AIO was used.
2745 Thanks to Maxim Dounin.
2746
2747 *) Bugfix: if the first server had no "listen" directive and there was
2748 no explicit default server, then a next server with a "listen"
2749 directive became the default server; the bug had appeared in 0.8.21.
2750
2751
2752 Changes with nginx 0.8.52 28 Sep 2010
2753
2754 *) Bugfix: nginx used SSL mode for a listen socket if any listen option
2755 was set; the bug had appeared in 0.8.51.
2756
2757
2758 Changes with nginx 0.8.51 27 Sep 2010
2759
2760 *) Change: the "secure_link_expires" directive has been canceled.
2761
2762 *) Change: a logging level of resolver errors has been lowered from
2763 "alert" to "error".
2764
2765 *) Feature: now a listen socket "ssl" parameter may be set several
2766 times.
2767
2768
2769 Changes with nginx 0.8.50 02 Sep 2010
2770
2771 *) Feature: the "secure_link", "secure_link_md5", and
2772 "secure_link_expires" directives of the ngx_http_secure_link_module.
2773
2774 *) Feature: the -q switch.
2775 Thanks to Gena Makhomed.
2776
2777 *) Bugfix: worker processes may got caught in an endless loop during
2778 reconfiguration, if a caching was used; the bug had appeared in
2779 0.8.48.
2780
2781 *) Bugfix: in the "gzip_disable" directive.
2782 Thanks to Derrick Petzold.
2783
2784 *) Bugfix: nginx/Windows could not send stop, quit, reopen, and reload
2785 signals to a process run in other session.
2786
2787
2788 Changes with nginx 0.8.49 09 Aug 2010
2789
2790 *) Feature: the "image_filter_jpeg_quality" directive supports
2791 variables.
2792
2793 *) Bugfix: a segmentation fault might occur in a worker process, if the
2794 $geoip_region_name variables was used; the bug had appeared in
2795 0.8.48.
2796
2797 *) Bugfix: errors intercepted by error_page were cached only for next
2798 request; the bug had appeared in 0.8.48.
2799
2800
2801 Changes with nginx 0.8.48 03 Aug 2010
2802
2803 *) Change: now the "server_name" directive default value is an empty
2804 name "".
2805 Thanks to Gena Makhomed.
2806
2807 *) Change: now the "server_name_in_redirect" directive default value is
2808 "off".
2809
2810 *) Feature: the $geoip_dma_code, $geoip_area_code, and
2811 $geoip_region_name variables.
2812 Thanks to Christine McGonagle.
2813
2814 *) Bugfix: the "proxy_pass", "fastcgi_pass", "uwsgi_pass", and
2815 "scgi_pass" directives were not inherited inside "limit_except"
2816 blocks.
2817
2818 *) Bugfix: the "proxy_cache_min_uses", "fastcgi_cache_min_uses"
2819 "uwsgi_cache_min_uses", and "scgi_cache_min_uses" directives did not
2820 work; the bug had appeared in 0.8.46.
2821
2822 *) Bugfix: the "fastcgi_split_path_info" directive used incorrectly
2823 captures, if only parts of an URI were captured.
2824 Thanks to Yuriy Taraday and Frank Enderle.
2825
2826 *) Bugfix: the "rewrite" directive did not escape a ";" character during
2827 copying from URI to query string.
2828 Thanks to Daisuke Murase.
2829
2830 *) Bugfix: the ngx_http_image_filter_module closed a connection, if an
2831 image was larger than "image_filter_buffer" size.
2832
2833
2834 Changes with nginx 0.8.47 28 Jul 2010
2835
2836 *) Bugfix: $request_time variable had invalid values for subrequests.
2837
2838 *) Bugfix: errors intercepted by error_page could not be cached.
2839
2840 *) Bugfix: a cache manager process may got caught in an endless loop, if
2841 max_size parameter was used; the bug had appeared in 0.8.46.
2842
2843
2844 Changes with nginx 0.8.46 19 Jul 2010
2845
2846 *) Change: now the "proxy_no_cache", "fastcgi_no_cache",
2847 "uwsgi_no_cache", and "scgi_no_cache" directives affect on a cached
2848 response saving only.
2849
2850 *) Feature: the "proxy_cache_bypass", "fastcgi_cache_bypass",
2851 "uwsgi_cache_bypass", and "scgi_cache_bypass" directives.
2852
2853 *) Bugfix: nginx did not free memory in cache keys zones if there was an
2854 error during working with backend: the memory was freed only after
2855 inactivity time or on memory low condition.
2856
2857
2858 Changes with nginx 0.8.45 13 Jul 2010
2859
2860 *) Feature: ngx_http_xslt_filter improvements.
2861 Thanks to Laurence Rowe.
2862
2863 *) Bugfix: SSI response might be truncated after include with
2864 wait="yes"; the bug had appeared in 0.7.25.
2865 Thanks to Maxim Dounin.
2866
2867 *) Bugfix: the "listen" directive did not support the "setfib=0"
2868 parameter.
2869
2870
2871 Changes with nginx 0.8.44 05 Jul 2010
2872
2873 *) Change: now nginx does not cache by default backend responses, if
2874 they have a "Set-Cookie" header line.
2875
2876 *) Feature: the "listen" directive supports the "setfib" parameter.
2877 Thanks to Andrew Filonov.
2878
2879 *) Bugfix: the "sub_filter" directive might change character case on
2880 partial match.
2881
2882 *) Bugfix: compatibility with HP/UX.
2883
2884 *) Bugfix: compatibility with AIX xlC_r compiler.
2885
2886 *) Bugfix: nginx treated large SSLv2 packets as plain requests.
2887 Thanks to Miroslaw Jaworski.
2888
2889
2890 Changes with nginx 0.8.43 30 Jun 2010
2891
2892 *) Feature: large geo ranges base loading speed-up.
2893
2894 *) Bugfix: an error_page redirection to "location /zero {return 204;}"
2895 without changing status code kept the error body; the bug had
2896 appeared in 0.8.42.
2897
2898 *) Bugfix: nginx might close IPv6 listen socket during reconfiguration.
2899 Thanks to Maxim Dounin.
2900
2901 *) Bugfix: the $uid_set variable may be used at any request processing
2902 stage.
2903
2904
2905 Changes with nginx 0.8.42 21 Jun 2010
2906
2907 *) Change: now nginx tests locations given by regular expressions, if
2908 request was matched exactly by a location given by a prefix string.
2909 The previous behavior has been introduced in 0.7.1.
2910
2911 *) Feature: the ngx_http_scgi_module.
2912 Thanks to Manlio Perillo.
2913
2914 *) Feature: a text answer may be added to a "return" directive.
2915
2916
2917 Changes with nginx 0.8.41 15 Jun 2010
2918
2919 *) Security: nginx/Windows worker might be terminated abnormally if a
2920 requested file name has invalid UTF-8 encoding.
2921
2922 *) Change: now nginx allows to use spaces in a request line.
2923
2924 *) Bugfix: the "proxy_redirect" directive changed incorrectly a backend
2925 "Refresh" response header line.
2926 Thanks to Andrey Andreew and Max Sogin.
2927
2928 *) Bugfix: nginx did not support path without host name in "Destination"
2929 request header line.
2930
2931
2932 Changes with nginx 0.8.40 07 Jun 2010
2933
2934 *) Security: now nginx/Windows ignores default file stream name.
2935 Thanks to Jose Antonio Vazquez Gonzalez.
2936
2937 *) Feature: the ngx_http_uwsgi_module.
2938 Thanks to Roberto De Ioris.
2939
2940 *) Feature: a "fastcgi_param" directive with value starting with "HTTP_"
2941 overrides a client request header line.
2942
2943 *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request
2944 header lines were passed to FastCGI-server while caching.
2945
2946 *) Bugfix: listen unix domain socket could not be changed during
2947 reconfiguration.
2948 Thanks to Maxim Dounin.
2949
2950
2951 Changes with nginx 0.8.39 31 May 2010
2952
2953 *) Bugfix: an inherited "alias" directive worked incorrectly in
2954 inclusive location.
2955
2956 *) Bugfix: in "alias" with variables and "try_files" directives
2957 combination.
2958
2959 *) Bugfix: listen unix domain and IPv6 sockets did not inherit while
2960 online upgrade.
2961 Thanks to Maxim Dounin.
2962
2963
2964 Changes with nginx 0.8.38 24 May 2010
2965
2966 *) Feature: the "proxy_no_cache" and "fastcgi_no_cache" directives.
2967
2968 *) Feature: now the "rewrite" directive does a redirect automatically if
2969 the $scheme variable is used.
2970 Thanks to Piotr Sikora.
2971
2972 *) Bugfix: now "limit_req" delay directive conforms to the described
2973 algorithm.
2974 Thanks to Maxim Dounin.
2975
2976 *) Bugfix: the $uid_got variable might not be used in the SSI and perl
2977 modules.
2978
2979
2980 Changes with nginx 0.8.37 17 May 2010
2981
2982 *) Feature: the ngx_http_split_clients_module.
2983
2984 *) Feature: the "map" directive supports keys more than 255 characters.
2985
2986 *) Bugfix: nginx ignored the "private" and "no-store" values in the
2987 "Cache-Control" backend response header line.
2988
2989 *) Bugfix: a "stub" parameter of an "include" SSI directive was not
2990 used, if empty response has 200 status code.
2991
2992 *) Bugfix: if a proxied or FastCGI request was internally redirected to
2993 another proxied or FastCGI location, then a segmentation fault might
2994 occur in a worker process; the bug had appeared in 0.8.33.
2995 Thanks to Yichun Zhang.
2996
2997 *) Bugfix: IMAP connections may hang until they timed out while talking
2998 to Zimbra server.
2999 Thanks to Alan Batie.
3000
3001
3002 Changes with nginx 0.8.36 22 Apr 2010
3003
3004 *) Bugfix: the ngx_http_dav_module handled incorrectly the DELETE, COPY,
3005 and MOVE methods for symlinks.
3006
3007 *) Bugfix: values of the $query_string, $arg_..., etc. variables cached
3008 in main request were used by the SSI module in subrequests.
3009
3010 *) Bugfix: a variable value was repeatedly encoded after each an "echo"
3011 SSI-command output; the bug had appeared in 0.6.14.
3012
3013 *) Bugfix: a worker process hung if a FIFO file was requested.
3014 Thanks to Vicente Aguilar and Maxim Dounin.
3015
3016 *) Bugfix: OpenSSL-1.0.0 compatibility on 64-bit Linux.
3017 Thanks to Maxim Dounin.
3018
3019 *) Bugfix: nginx could not be built --without-http-cache; the bug had
3020 appeared in 0.8.35.
3021
3022
3023 Changes with nginx 0.8.35 01 Apr 2010
3024
3025 *) Change: now the charset filter runs before the SSI filter.
3026
3027 *) Feature: the "chunked_transfer_encoding" directive.
3028
3029 *) Bugfix: an "&" character was not escaped when it was copied in
3030 arguments part in a rewrite rule.
3031
3032 *) Bugfix: nginx might be terminated abnormally while a signal
3033 processing or if the directive "timer_resolution" was used on
3034 platforms which do not support kqueue or eventport notification
3035 methods.
3036 Thanks to George Xie and Maxim Dounin.
3037
3038 *) Bugfix: if temporary files and permanent storage area resided at
3039 different file systems, then permanent file modification times were
3040 incorrect.
3041 Thanks to Maxim Dounin.
3042
3043 *) Bugfix: ngx_http_memcached_module might issue the error message
3044 "memcached sent invalid trailer".
3045 Thanks to Maxim Dounin.
3046
3047 *) Bugfix: nginx could not built zlib-1.2.4 library using the library
3048 sources.
3049 Thanks to Maxim Dounin.
3050
3051 *) Bugfix: a segmentation fault occurred in a worker process, if there
3052 was large stderr output before FastCGI response; the bug had appeared
3053 in 0.8.34.
3054 Thanks to Maxim Dounin.
3055
3056
3057 Changes with nginx 0.8.34 03 Mar 2010
3058
3059 *) Bugfix: nginx did not support all ciphers and digests used in client
3060 certificates.
3061 Thanks to Innocenty Enikeew.
3062
3063 *) Bugfix: nginx cached incorrectly FastCGI responses if there was large
3064 stderr output before response.
3065
3066 *) Bugfix: nginx did not support HTTPS referrers.
3067
3068 *) Bugfix: nginx/Windows might not find file if path in configuration
3069 was given in other character case; the bug had appeared in 0.8.33.
3070
3071 *) Bugfix: the $date_local variable has an incorrect value, if the "%s"
3072 format was used.
3073 Thanks to Maxim Dounin.
3074
3075 *) Bugfix: if ssl_session_cache was not set or was set to "none", then
3076 during client certificate verify the error "session id context
3077 uninitialized" might occur; the bug had appeared in 0.7.1.
3078
3079 *) Bugfix: a geo range returned default value if the range included two
3080 or more /16 networks and did not begin at /16 network boundary.
3081
3082 *) Bugfix: a block used in a "stub" parameter of an "include" SSI
3083 directive was output with "text/plain" MIME type.
3084
3085 *) Bugfix: $r->sleep() did not work; the bug had appeared in 0.8.11.
3086
3087
3088 Changes with nginx 0.8.33 01 Feb 2010
3089
3090 *) Security: now nginx/Windows ignores trailing spaces in URI.
3091 Thanks to Dan Crowley, Core Security Technologies.
3092
3093 *) Security: now nginx/Windows ignores short files names.
3094 Thanks to Dan Crowley, Core Security Technologies.
3095
3096 *) Change: now keepalive connections after POST requests are not
3097 disabled for MSIE 7.0+.
3098 Thanks to Adam Lounds.
3099
3100 *) Workaround: now keepalive connections are disabled for Safari.
3101 Thanks to Joshua Sierles.
3102
3103 *) Bugfix: if a proxied or FastCGI request was internally redirected to
3104 another proxied or FastCGI location, then $upstream_response_time
3105 variable may have abnormally large value; the bug had appeared in
3106 0.8.7.
3107
3108 *) Bugfix: a segmentation fault might occur in a worker process, while
3109 discarding a request body; the bug had appeared in 0.8.11.
3110
3111
3112 Changes with nginx 0.8.32 11 Jan 2010
3113
3114 *) Bugfix: UTF-8 encoding usage in the ngx_http_autoindex_module.
3115 Thanks to Maxim Dounin.
3116
3117 *) Bugfix: regular expression named captures worked for two names only.
3118 Thanks to Maxim Dounin.
3119
3120 *) Bugfix: now the "localhost" name is used in the "Host" request header
3121 line, if an unix domain socket is defined in the "auth_http"
3122 directive.
3123 Thanks to Maxim Dounin.
3124
3125 *) Bugfix: nginx did not support chunked transfer encoding for 201
3126 responses.
3127 Thanks to Julian Reich.
3128
3129 *) Bugfix: if the "expires modified" set date in the past, then a
3130 negative number was set in the "Cache-Control" response header line.
3131 Thanks to Alex Kapranoff.
3132
3133
3134 Changes with nginx 0.8.31 23 Dec 2009
3135
3136 *) Feature: now the "error_page" directive may redirect the 301 and 302
3137 responses.
3138
3139 *) Feature: the $geoip_city_continent_code, $geoip_latitude, and
3140 $geoip_longitude variables.
3141 Thanks to Arvind Sundararajan.
3142
3143 *) Feature: now the ngx_http_image_filter_module deletes always EXIF and
3144 other application specific data if the data consume more than 5% of a
3145 JPEG file.
3146
3147 *) Bugfix: nginx closed a connection if a cached response had an empty
3148 body.
3149 Thanks to Piotr Sikora.
3150
3151 *) Bugfix: nginx might not be built by gcc 4.x if the -O2 or higher
3152 optimization option was used.
3153 Thanks to Maxim Dounin and Denis F. Latypoff.
3154
3155 *) Bugfix: regular expressions in location were always tested in
3156 case-sensitive mode; the bug had appeared in 0.8.25.
3157
3158 *) Bugfix: nginx cached a 304 response if there was the "If-None-Match"
3159 header line in a proxied request.
3160 Thanks to Tim Dettrick and David Kostal.
3161
3162 *) Bugfix: nginx/Windows tried to delete a temporary file twice if the
3163 file should replace an already existent file.
3164
3165
3166 Changes with nginx 0.8.30 15 Dec 2009
3167
3168 *) Change: now the default buffer size of the
3169 "large_client_header_buffers" directive is 8K.
3170 Thanks to Andrew Cholakian.
3171
3172 *) Feature: the conf/fastcgi.conf for simple FastCGI configurations.
3173
3174 *) Bugfix: nginx/Windows tried to rename a temporary file twice if the
3175 file should replace an already existent file.
3176
3177 *) Bugfix: of "double free or corruption" error issued if host could not
3178 be resolved; the bug had appeared in 0.8.22.
3179 Thanks to Konstantin Svist.
3180
3181 *) Bugfix: in libatomic usage on some platforms.
3182 Thanks to W-Mark Kubacki.
3183
3184
3185 Changes with nginx 0.8.29 30 Nov 2009
3186
3187 *) Change: now the "009" status code is written to an access log for
3188 proxied HTTP/0.9 responses.
3189
3190 *) Feature: the "addition_types", "charset_types", "gzip_types",
3191 "ssi_types", "sub_filter_types", and "xslt_types" directives support
3192 an "*" parameter.
3193
3194 *) Feature: GCC 4.1+ built-in atomic operations usage.
3195 Thanks to W-Mark Kubacki.
3196
3197 *) Feature: the --with-libatomic[=DIR] option in the configure.
3198 Thanks to W-Mark Kubacki.
3199
3200 *) Bugfix: listen unix domain socket had limited access rights.
3201
3202 *) Bugfix: cached HTTP/0.9 responses were handled incorrectly.
3203
3204 *) Bugfix: regular expression named captures given by "?P<...>" did not
3205 work in a "server_name" directive.
3206 Thanks to Maxim Dounin.
3207
3208
3209 Changes with nginx 0.8.28 23 Nov 2009
3210
3211 *) Bugfix: nginx could not be built with the --without-pcre parameter;
3212 the bug had appeared in 0.8.25.
3213
3214
3215 Changes with nginx 0.8.27 17 Nov 2009
3216
3217 *) Bugfix: regular expressions did not work in nginx/Windows; the bug
3218 had appeared in 0.8.25.
3219
3220
3221 Changes with nginx 0.8.26 16 Nov 2009
3222
3223 *) Bugfix: in captures usage in "rewrite" directive; the bug had
3224 appeared in 0.8.25.
3225
3226 *) Bugfix: nginx could not be built without the --with-debug option; the
3227 bug had appeared in 0.8.25.
3228
3229
3230 Changes with nginx 0.8.25 16 Nov 2009
3231
3232 *) Change: now no message is written in an error log if a variable is
3233 not found by $r->variable() method.
3234
3235 *) Feature: the ngx_http_degradation_module.
3236
3237 *) Feature: regular expression named captures.
3238
3239 *) Feature: now URI part is not required a "proxy_pass" directive if
3240 variables are used.
3241
3242 *) Feature: now the "msie_padding" directive works for Chrome too.
3243
3244 *) Bugfix: a segmentation fault occurred in a worker process on low
3245 memory condition; the bug had appeared in 0.8.18.
3246
3247 *) Bugfix: nginx sent gzipped responses to clients those do not support
3248 gzip, if "gzip_static on" and "gzip_vary off"; the bug had appeared
3249 in 0.8.16.
3250
3251
3252 Changes with nginx 0.8.24 11 Nov 2009
3253
3254 *) Bugfix: nginx always added "Content-Encoding: gzip" response header
3255 line in 304 responses sent by ngx_http_gzip_static_module.
3256
3257 *) Bugfix: nginx could not be built without the --with-debug option; the
3258 bug had appeared in 0.8.23.
3259
3260 *) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive
3261 inherited incorrectly from previous level.
3262
3263 *) Bugfix: in resolving empty name.
3264
3265
3266 Changes with nginx 0.8.23 11 Nov 2009
3267
3268 *) Security: now SSL/TLS renegotiation is disabled.
3269 Thanks to Maxim Dounin.
3270
3271 *) Bugfix: listen unix domain socket did not inherit while online
3272 upgrade.
3273
3274 *) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive did
3275 not without yet another directive with any IP address.
3276
3277 *) Bugfix: segmentation fault and infinite looping in resolver.
3278
3279 *) Bugfix: in resolver.
3280 Thanks to Artem Bokhan.
3281
3282
3283 Changes with nginx 0.8.22 03 Nov 2009
3284
3285 *) Feature: the "proxy_bind", "fastcgi_bind", and "memcached_bind"
3286 directives.
3287
3288 *) Feature: the "access" and the "deny" directives support IPv6.
3289
3290 *) Feature: the "set_real_ip_from" directive supports IPv6 addresses in
3291 request headers.
3292
3293 *) Feature: the "unix:" parameter of the "set_real_ip_from" directive.
3294
3295 *) Bugfix: nginx did not delete unix domain socket after configuration
3296 testing.
3297
3298 *) Bugfix: nginx deleted unix domain socket while online upgrade.
3299
3300 *) Bugfix: the "!-x" operator did not work.
3301 Thanks to Maxim Dounin.
3302
3303 *) Bugfix: a segmentation fault might occur in a worker process, if
3304 limit_rate was used in HTTPS server.
3305 Thanks to Maxim Dounin.
3306
3307 *) Bugfix: a segmentation fault might occur in a worker process while
3308 $limit_rate logging.
3309 Thanks to Maxim Dounin.
3310
3311 *) Bugfix: a segmentation fault might occur in a worker process, if
3312 there was no "listen" directive in "server" block; the bug had
3313 appeared in 0.8.21.
3314
3315
3316 Changes with nginx 0.8.21 26 Oct 2009
3317
3318 *) Feature: now the "-V" switch shows TLS SNI support.
3319
3320 *) Feature: the "listen" directive of the HTTP module supports unix
3321 domain sockets.
3322 Thanks to Hongli Lai.
3323
3324 *) Feature: the "default_server" parameter of the "listen" directive.
3325
3326 *) Feature: now a "default" parameter is not required to set listen
3327 socket options.
3328
3329 *) Bugfix: nginx did not support dates in 2038 year on 32-bit platforms;
3330
3331 *) Bugfix: socket leak; the bug had appeared in 0.8.11.
3332
3333
3334 Changes with nginx 0.8.20 14 Oct 2009
3335
3336 *) Change: now default SSL ciphers are "HIGH:!ADH:!MD5".
3337
3338 *) Bugfix: the ngx_http_autoindex_module did not show the trailing slash
3339 in links to a directory; the bug had appeared in 0.7.15.
3340
3341 *) Bugfix: nginx did not close a log file set by the --error-log-path
3342 configuration option; the bug had appeared in 0.7.53.
3343
3344 *) Bugfix: nginx did not treat a comma as separator in the
3345 "Cache-Control" backend response header line.
3346
3347 *) Bugfix: nginx/Windows might not create temporary file, a cache file,
3348 or "proxy/fastcgi_store"d file if a worker had no enough access
3349 rights for top level directories.
3350
3351 *) Bugfix: the "Set-Cookie" and "P3P" FastCGI response header lines were
3352 not hidden while caching if no "fastcgi_hide_header" directives were
3353 used with any parameters.
3354
3355 *) Bugfix: nginx counted incorrectly disk cache size.
3356
3357
3358 Changes with nginx 0.8.19 06 Oct 2009
3359
3360 *) Change: now SSLv2 protocol is disabled by default.
3361
3362 *) Change: now default SSL ciphers are "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
3363
3364 *) Bugfix: a "limit_req" directive did not work; the bug had appeared in
3365 0.8.18.
3366
3367
3368 Changes with nginx 0.8.18 06 Oct 2009
3369
3370 *) Feature: the "read_ahead" directive.
3371
3372 *) Feature: now several "perl_modules" directives may be used.
3373
3374 *) Feature: the "limit_req_log_level" and "limit_conn_log_level"
3375 directives.
3376
3377 *) Bugfix: now "limit_req" directive conforms to the leaky bucket
3378 algorithm.
3379 Thanks to Maxim Dounin.
3380
3381 *) Bugfix: nginx did not work on Linux/sparc.
3382 Thanks to Marcus Ramberg.
3383
3384 *) Bugfix: nginx sent '\0' in a "Location" response header line on MKCOL
3385 request.
3386 Thanks to Xie Zhenye.
3387
3388 *) Bugfix: zero status code was logged instead of 499 status code; the
3389 bug had appeared in 0.8.11.
3390
3391 *) Bugfix: socket leak; the bug had appeared in 0.8.11.
3392
3393
3394 Changes with nginx 0.8.17 28 Sep 2009
3395
3396 *) Security: now "/../" are disabled in "Destination" request header
3397 line.
3398
3399 *) Change: now $host variable value is always low case.
3400
3401 *) Feature: the $ssl_session_id variable.
3402
3403 *) Bugfix: socket leak; the bug had appeared in 0.8.11.
3404
3405
3406 Changes with nginx 0.8.16 22 Sep 2009
3407
3408 *) Feature: the "image_filter_transparency" directive.
3409
3410 *) Bugfix: "addition_types" directive was incorrectly named
3411 "addtion_types".
3412
3413 *) Bugfix: resolver cache poisoning.
3414 Thanks to Matthew Dempsky.
3415
3416 *) Bugfix: memory leak in resolver.
3417 Thanks to Matthew Dempsky.
3418
3419 *) Bugfix: invalid request line in $request variable was written in
3420 access_log only if error_log was set to "info" or "debug" level.
3421
3422 *) Bugfix: in PNG alpha-channel support in the
3423 ngx_http_image_filter_module.
3424
3425 *) Bugfix: nginx always added "Vary: Accept-Encoding" response header
3426 line, if both "gzip_static" and "gzip_vary" were on.
3427
3428 *) Bugfix: in UTF-8 encoding support by "try_files" directive in
3429 nginx/Windows.
3430
3431 *) Bugfix: in "post_action" directive usage; the bug had appeared in
3432 0.8.11.
3433 Thanks to Igor Artemiev.
3434
3435
3436 Changes with nginx 0.8.15 14 Sep 2009
3437
3438 *) Security: a segmentation fault might occur in worker process while
3439 specially crafted request handling.
3440 Thanks to Chris Ries.
3441
3442 *) Bugfix: if names .domain.tld, .sub.domain.tld, and .domain-some.tld
3443 were defined, then the name .sub.domain.tld was matched by
3444 .domain.tld.
3445
3446 *) Bugfix: in transparency support in the ngx_http_image_filter_module.
3447
3448 *) Bugfix: in file AIO.
3449
3450 *) Bugfix: in X-Accel-Redirect usage; the bug had appeared in 0.8.11.
3451
3452 *) Bugfix: in embedded perl module; the bug had appeared in 0.8.11.
3453
3454
3455 Changes with nginx 0.8.14 07 Sep 2009
3456
3457 *) Bugfix: an expired cached response might stick in the "UPDATING"
3458 state.
3459
3460 *) Bugfix: a segmentation fault might occur in worker process, if
3461 error_log was set to info or debug level.
3462 Thanks to Sergey Bochenkov.
3463
3464 *) Bugfix: in embedded perl module; the bug had appeared in 0.8.11.
3465
3466 *) Bugfix: an "error_page" directive did not redirect a 413 error; the
3467 bug had appeared in 0.6.10.
3468
3469
3470 Changes with nginx 0.8.13 31 Aug 2009
3471
3472 *) Bugfix: in the "aio sendfile" directive; the bug had appeared in
3473 0.8.12.
3474
3475 *) Bugfix: nginx could not be built without the --with-file-aio option
3476 on FreeBSD; the bug had appeared in 0.8.12.
3477
3478
3479 Changes with nginx 0.8.12 31 Aug 2009
3480
3481 *) Feature: the "sendfile" parameter in the "aio" directive on FreeBSD.
3482
3483 *) Bugfix: in try_files; the bug had appeared in 0.8.11.
3484
3485 *) Bugfix: in memcached; the bug had appeared in 0.8.11.
3486
3487
3488 Changes with nginx 0.8.11 28 Aug 2009
3489
3490 *) Change: now directive "gzip_disable msie6" does not disable gzipping
3491 for MSIE 6.0 SV1.
3492
3493 *) Feature: file AIO support on FreeBSD and Linux.
3494
3495 *) Feature: the "directio_alignment" directive.
3496
3497
3498 Changes with nginx 0.8.10 24 Aug 2009
3499
3500 *) Bugfix: memory leaks if GeoIP City database was used.
3501
3502 *) Bugfix: in copying temporary files to permanent storage area; the bug
3503 had appeared in 0.8.9.
3504
3505
3506 Changes with nginx 0.8.9 17 Aug 2009
3507
3508 *) Feature: now the start cache loader runs in a separate process; this
3509 should improve large caches handling.
3510
3511 *) Feature: now temporary files and permanent storage area may reside at
3512 different file systems.
3513
3514
3515 Changes with nginx 0.8.8 10 Aug 2009
3516
3517 *) Bugfix: in handling FastCGI headers split in records.
3518
3519 *) Bugfix: a segmentation fault occurred in worker process, if a request
3520 was handled in two proxied or FastCGIed locations and a caching was
3521 enabled in the first location; the bug had appeared in 0.8.7.
3522
3523
3524 Changes with nginx 0.8.7 27 Jul 2009
3525
3526 *) Change: minimum supported OpenSSL version is 0.9.7.
3527
3528 *) Change: the "ask" parameter of the "ssl_verify_client" directive was
3529 changed to the "optional" parameter and now it checks a client
3530 certificate if it was offered.
3531 Thanks to Brice Figureau.
3532
3533 *) Feature: the $ssl_client_verify variable.
3534 Thanks to Brice Figureau.
3535
3536 *) Feature: the "ssl_crl" directive.
3537 Thanks to Brice Figureau.
3538
3539 *) Feature: the "proxy" parameter of the "geo" directive.
3540
3541 *) Feature: the "image_filter" directive supports variables for setting
3542 size.
3543
3544 *) Bugfix: the $ssl_client_cert variable usage corrupted memory; the bug
3545 had appeared in 0.7.7.
3546 Thanks to Sergey Zhuravlev.
3547
3548 *) Bugfix: "proxy_pass_header" and "fastcgi_pass_header" directives did
3549 not pass to a client the "X-Accel-Redirect", "X-Accel-Limit-Rate",
3550 "X-Accel-Buffering", and "X-Accel-Charset" lines from backend
3551 response header.
3552 Thanks to Maxim Dounin.
3553
3554 *) Bugfix: in handling "Last-Modified" and "Accept-Ranges" backend
3555 response header lines; the bug had appeared in 0.7.44.
3556 Thanks to Maxim Dounin.
3557
3558 *) Bugfix: the "[alert] zero size buf" error if subrequest returns an
3559 empty response; the bug had appeared in 0.8.5.
3560
3561
3562 Changes with nginx 0.8.6 20 Jul 2009
3563
3564 *) Feature: the ngx_http_geoip_module.
3565
3566 *) Bugfix: XSLT filter may fail with message "not well formed XML
3567 document" for valid XML document.
3568 Thanks to Kuramoto Eiji.
3569
3570 *) Bugfix: now in MacOSX, Cygwin, and nginx/Windows locations given by a
3571 regular expression are always tested in case insensitive mode.
3572
3573 *) Bugfix: now nginx/Windows ignores trailing dots in URI.
3574 Thanks to Hugo Leisink.
3575
3576 *) Bugfix: name of file specified in --conf-path was not honored during
3577 installation; the bug had appeared in 0.6.6.
3578 Thanks to Maxim Dounin.
3579
3580
3581 Changes with nginx 0.8.5 13 Jul 2009
3582
3583 *) Bugfix: now nginx allows underscores in a request method.
3584
3585 *) Bugfix: a 500 error code was returned for invalid login/password
3586 while HTTP Basic authentication on Windows.
3587
3588 *) Bugfix: ngx_http_perl_module responses did not work in subrequests.
3589
3590 *) Bugfix: in ngx_http_limit_req_module.
3591 Thanks to Maxim Dounin.
3592
3593
3594 Changes with nginx 0.8.4 22 Jun 2009
3595
3596 *) Bugfix: nginx could not be built --without-http-cache; the bug had
3597 appeared in 0.8.3.
3598
3599
3600 Changes with nginx 0.8.3 19 Jun 2009
3601
3602 *) Feature: the $upstream_cache_status variable.
3603
3604 *) Bugfix: nginx could not be built on MacOSX 10.6.
3605
3606 *) Bugfix: nginx could not be built --without-http-cache; the bug had
3607 appeared in 0.8.2.
3608
3609 *) Bugfix: a segmentation fault occurred in worker process, if a backend
3610 401 error was intercepted and the backend did not set the
3611 "WWW-Authenticate" response header line.
3612 Thanks to Eugene Mychlo.
3613
3614
3615 Changes with nginx 0.8.2 15 Jun 2009
3616
3617 *) Bugfix: in open_file_cache and proxy/fastcgi cache interaction on
3618 start up.
3619
3620 *) Bugfix: open_file_cache might cache open file descriptors too long;
3621 the bug had appeared in 0.7.4.
3622
3623
3624 Changes with nginx 0.8.1 08 Jun 2009
3625
3626 *) Feature: the "updating" parameter in "proxy_cache_use_stale" and
3627 "fastcgi_cache_use_stale" directives.
3628
3629 *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request
3630 header lines were passed to backend while caching if no
3631 "proxy_set_header" directive was used with any parameters.
3632
3633 *) Bugfix: the "Set-Cookie" and "P3P" response header lines were not
3634 hidden while caching if no "proxy_hide_header/fastcgi_hide_header"
3635 directives were used with any parameters.
3636
3637 *) Bugfix: the ngx_http_image_filter_module did not support GIF87a
3638 format.
3639 Thanks to Denis Ilyinyh.
3640
3641 *) Bugfix: nginx could not be built modules on Solaris 10 and early; the
3642 bug had appeared in 0.7.56.
3643
3644
3645 Changes with nginx 0.8.0 02 Jun 2009
3646
3647 *) Feature: the "keepalive_requests" directive.
3648
3649 *) Feature: the "limit_rate_after" directive.
3650 Thanks to Ivan Debnar.
3651
3652 *) Bugfix: XLST filter did not work in subrequests.
3653
3654 *) Bugfix: in relative paths handling in nginx/Windows.
3655
3656 *) Bugfix: in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache
3657 in nginx/Windows.
3658
3659 *) Bugfix: in memory allocation error handling.
3660 Thanks to Maxim Dounin and Kirill A. Korinskiy.
3661
3662
3663 Changes with nginx 0.7.59 25 May 2009
3664
3665 *) Feature: the "proxy_cache_methods" and "fastcgi_cache_methods"
3666 directives.
3667
3668 *) Bugfix: socket leak; the bug had appeared in 0.7.25.
3669 Thanks to Maxim Dounin.
3670
3671 *) Bugfix: a segmentation fault occurred in worker process, if a request
3672 had no body and the $request_body variable was used;
3673 the bug had appeared in 0.7.58.
3674
3675 *) Bugfix: the SSL modules might not built on Solaris and Linux;
3676 the bug had appeared in 0.7.56.
3677
3678 *) Bugfix: ngx_http_xslt_filter_module responses were not handled by
3679 SSI, charset, and gzip filters.
3680
3681 *) Bugfix: a "charset" directive did not set a charset to
3682 ngx_http_gzip_static_module responses.
3683
3684
3685 Changes with nginx 0.7.58 18 May 2009
3686
3687 *) Feature: a "listen" directive of the mail proxy module supports IPv6.
3688
3689 *) Feature: the "image_filter_jpeg_quality" directive.
3690
3691 *) Feature: the "client_body_in_single_buffer" directive.
3692
3693 *) Feature: the $request_body variable.
3694
3695 *) Bugfix: in ngx_http_autoindex_module in file name links having a ":"
3696 symbol in the name.
3697
3698 *) Bugfix: "make upgrade" procedure did not work; the bug had appeared
3699 in 0.7.53.
3700 Thanks to Denis F. Latypoff.
3701
3702
3703 Changes with nginx 0.7.57 12 May 2009
3704
3705 *) Bugfix: a floating-point fault occurred in worker process, if the
3706 ngx_http_image_filter_module errors were redirected to named
3707 location; the bug had appeared in 0.7.56.
3708
3709
3710 Changes with nginx 0.7.56 11 May 2009
3711
3712 *) Feature: nginx/Windows supports IPv6 in a "listen" directive of the
3713 HTTP module.
3714
3715 *) Bugfix: in ngx_http_image_filter_module.
3716
3717
3718 Changes with nginx 0.7.55 06 May 2009
3719
3720 *) Bugfix: the http_XXX parameters in "proxy_cache_use_stale" and
3721 "fastcgi_cache_use_stale" directives did not work.
3722
3723 *) Bugfix: fastcgi cache did not cache header only responses.
3724
3725 *) Bugfix: of "select() failed (9: Bad file descriptor)" error in
3726 nginx/Unix and "select() failed (10038: ...)" error in nginx/Windows.
3727
3728 *) Bugfix: a segmentation fault might occur in worker process, if an
3729 "debug_connection" directive was used; the bug had appeared in
3730 0.7.54.
3731
3732 *) Bugfix: fix ngx_http_image_filter_module building errors.
3733
3734 *) Bugfix: the files bigger than 2G could not be transferred using
3735 $r->sendfile.
3736 Thanks to Maxim Dounin.
3737
3738
3739 Changes with nginx 0.7.54 01 May 2009
3740
3741 *) Feature: the ngx_http_image_filter_module.
3742
3743 *) Feature: the "proxy_ignore_headers" and "fastcgi_ignore_headers"
3744 directives.
3745
3746 *) Bugfix: a segmentation fault might occur in worker process, if an
3747 "open_file_cache_errors off" directive was used; the bug had appeared
3748 in 0.7.53.
3749
3750 *) Bugfix: the "port_in_redirect off" directive did not work; the bug
3751 had appeared in 0.7.39.
3752
3753 *) Bugfix: improve handling of "select" method errors.
3754
3755 *) Bugfix: of "select() failed (10022: ...)" error in nginx/Windows.
3756
3757 *) Bugfix: in error text descriptions in nginx/Windows; the bug had
3758 appeared in 0.7.53.
3759
3760
3761 Changes with nginx 0.7.53 27 Apr 2009
3762
3763 *) Change: now a log set by --error-log-path is created from the very
3764 start-up.
3765
3766 *) Feature: now the start up errors and warnings are outputted to an
3767 error_log and stderr.
3768
3769 *) Feature: the empty --prefix= configure parameter forces nginx to use
3770 a directory where it was run as prefix.
3771
3772 *) Feature: the -p switch.
3773
3774 *) Feature: the -s switch on Unix platforms.
3775
3776 *) Feature: the -? and -h switches.
3777 Thanks to Jerome Loyet.
3778
3779 *) Feature: now switches may be set in condensed form.
3780
3781 *) Bugfix: nginx/Windows did not work if configuration file was given by
3782 the -c switch.
3783
3784 *) Bugfix: temporary files might be not removed if the "proxy_store",
3785 "fastcgi_store", "proxy_cache", or "fastcgi_cache" were used.
3786 Thanks to Maxim Dounin.
3787
3788 *) Bugfix: an incorrect value was passed to mail proxy authentication
3789 server in "Auth-Method" header line; the bug had appeared
3790 in 0.7.34.
3791 Thanks to Simon Lecaille.
3792
3793 *) Bugfix: system error text descriptions were not logged on Linux;
3794 the bug had appeared in 0.7.45.
3795
3796 *) Bugfix: the "fastcgi_cache_min_uses" directive did not work.
3797 Thanks to Andrew Vorobyoff.
3798
3799
3800 Changes with nginx 0.7.52 20 Apr 2009
3801
3802 *) Feature: the first native Windows binary release.
3803
3804 *) Bugfix: in processing HEAD method while caching.
3805
3806 *) Bugfix: in processing the "If-Modified-Since", "If-Range", etc.
3807 client request header lines while caching.
3808
3809 *) Bugfix: now the "Set-Cookie" and "P3P" header lines are hidden in
3810 cacheable responses.
3811
3812 *) Bugfix: if nginx was built with the ngx_http_perl_module and with a
3813 perl which supports threads, then during a master process exit the
3814 message "panic: MUTEX_LOCK" might be issued.
3815
3816 *) Bugfix: nginx could not be built --without-http-cache; the bug had
3817 appeared in 0.7.48.
3818
3819 *) Bugfix: nginx could not be built on platforms different from i386,
3820 amd64, sparc, and ppc; the bug had appeared in 0.7.42.
3821
3822
3823 Changes with nginx 0.7.51 12 Apr 2009
3824
3825 *) Feature: the "try_files" directive supports a response code in the
3826 fallback parameter.
3827
3828 *) Feature: now any response code can be used in the "return" directive.
3829
3830 *) Bugfix: the "error_page" directive made an external redirect without
3831 query string; the bug had appeared in 0.7.44.
3832
3833 *) Bugfix: if servers listened on several defined explicitly addresses,
3834 then virtual servers might not work; the bug had appeared in 0.7.39.
3835
3836
3837 Changes with nginx 0.7.50 06 Apr 2009
3838
3839 *) Bugfix: the $arg_... variables did not work; the bug had appeared in
3840 0.7.49.
3841
3842
3843 Changes with nginx 0.7.49 06 Apr 2009
3844
3845 *) Bugfix: a segmentation fault might occur in worker process, if the
3846 $arg_... variables were used; the bug had appeared in 0.7.48.
3847
3848
3849 Changes with nginx 0.7.48 06 Apr 2009
3850
3851 *) Feature: the "proxy_cache_key" directive.
3852
3853 *) Bugfix: now nginx takes into account the "X-Accel-Expires",
3854 "Expires", and "Cache-Control" header lines in a backend response.
3855
3856 *) Bugfix: now nginx caches responses for the GET requests only.
3857
3858 *) Bugfix: the "fastcgi_cache_key" directive was not inherited.
3859
3860 *) Bugfix: the $arg_... variables did not work with SSI subrequests.
3861 Thanks to Maxim Dounin.
3862
3863 *) Bugfix: nginx could not be built with uclibc library.
3864 Thanks to Timothy Redaelli.
3865
3866 *) Bugfix: nginx could not be built on OpenBSD; the bug had
3867 appeared in 0.7.46.
3868
3869
3870 Changes with nginx 0.7.47 01 Apr 2009
3871
3872 *) Bugfix: nginx could not be built on FreeBSD 6 and early versions; the
3873 bug had appeared in 0.7.46.
3874
3875 *) Bugfix: nginx could not be built on MacOSX; the bug had
3876 appeared in 0.7.46.
3877
3878 *) Bugfix: if the "max_size" parameter was set, then the cache manager
3879 might purge a whole cache; the bug had appeared in 0.7.46.
3880
3881 *) Change: a segmentation fault might occur in worker process, if the
3882 "proxy_cache"/"fastcgi_cache" and the "proxy_cache_valid"/
3883 "fastcgi_cache_valid" were set on different levels; the bug had
3884 appeared in 0.7.46.
3885
3886 *) Bugfix: a segmentation fault might occur in worker process, if a
3887 request was redirected to a proxied or FastCGI server via error_page
3888 or try_files; the bug had appeared in 0.7.44.
3889
3890
3891 Changes with nginx 0.7.46 30 Mar 2009
3892
3893 *) Bugfix: the previous release tarball was incorrect.
3894
3895
3896 Changes with nginx 0.7.45 30 Mar 2009
3897
3898 *) Change: now the "proxy_cache" and the "proxy_cache_valid" directives
3899 can be set on different levels.
3900
3901 *) Change: the "clean_time" parameter of the "proxy_cache_path"
3902 directive is canceled.
3903
3904 *) Feature: the "max_size" parameter of the "proxy_cache_path"
3905 directive.
3906
3907 *) Feature: the ngx_http_fastcgi_module preliminary cache support.
3908
3909 *) Feature: now on shared memory allocation errors directive and zone
3910 names are logged.
3911
3912 *) Bugfix: the directive "add_header last-modified ''" did not delete a
3913 "Last-Modified" response header line; the bug had appeared in 0.7.44.
3914
3915 *) Bugfix: a relative path in the "auth_basic_user_file" directive given
3916 without variables did not work; the bug had appeared in 0.7.44.
3917 Thanks to Jerome Loyet.
3918
3919 *) Bugfix: in an "alias" directive given using variables without
3920 references to captures of regular expressions; the bug had appeared
3921 in 0.7.42.
3922
3923
3924 Changes with nginx 0.7.44 23 Mar 2009
3925
3926 *) Feature: the ngx_http_proxy_module preliminary cache support.
3927
3928 *) Feature: the --with-pcre option in the configure.
3929
3930 *) Feature: the "try_files" directive is now allowed on the server block
3931 level.
3932
3933 *) Bugfix: the "try_files" directive handled incorrectly a query string
3934 in a fallback parameter.
3935
3936 *) Bugfix: the "try_files" directive might test incorrectly directories.
3937
3938 *) Bugfix: if there was a single server for given address:port pair,
3939 then captures in regular expressions in a "server_name" directive did
3940 not work.
3941
3942
3943 Changes with nginx 0.7.43 18 Mar 2009
3944
3945 *) Bugfix: a request was handled incorrectly, if a "root" directive used
3946 variables; the bug had appeared in 0.7.42.
3947
3948 *) Bugfix: if a server listened on wildcard address, then the
3949 $server_addr variable value was "0.0.0.0"; the bug had appeared in
3950 0.7.36.
3951
3952
3953 Changes with nginx 0.7.42 16 Mar 2009
3954
3955 *) Change: now the "Invalid argument" error returned by
3956 setsockopt(TCP_NODELAY) on Solaris, is ignored.
3957
3958 *) Change: now if a file specified in a "auth_basic_user_file" directive
3959 is absent, then the 403 error is returned instead of the 500 one.
3960
3961 *) Feature: the "auth_basic_user_file" directive supports variables.
3962 Thanks to Kirill A. Korinskiy.
3963
3964 *) Feature: the "listen" directive supports the "ipv6only" parameter.
3965 Thanks to Zhang Hua.
3966
3967 *) Bugfix: in an "alias" directive with references to captures of
3968 regular expressions; the bug had appeared in 0.7.40.
3969
3970 *) Bugfix: compatibility with Tru64 UNIX.
3971 Thanks to Dustin Marquess.
3972
3973 *) Bugfix: nginx could not be built without PCRE library; the bug had
3974 appeared in 0.7.41.
3975
3976
3977 Changes with nginx 0.7.41 11 Mar 2009
3978
3979 *) Bugfix: a segmentation fault might occur in worker process, if a
3980 "server_name" or a "location" directives had captures in regular
3981 expressions; the issue had appeared in 0.7.40.
3982 Thanks to Vladimir Sopot.
3983
3984
3985 Changes with nginx 0.7.40 09 Mar 2009
3986
3987 *) Feature: the "location" directive supports captures in regular
3988 expressions.
3989
3990 *) Feature: an "alias" directive with capture references may be used
3991 inside a location given by a regular expression with captures.
3992
3993 *) Feature: the "server_name" directive supports captures in regular
3994 expressions.
3995
3996 *) Workaround: the ngx_http_autoindex_module did not show the trailing
3997 slash in directories on XFS filesystem; the issue had appeared in
3998 0.7.15.
3999 Thanks to Dmitry Kuzmenko.
4000
4001
4002 Changes with nginx 0.7.39 02 Mar 2009
4003
4004 *) Bugfix: large response with SSI might hang, if gzipping was enabled;
4005 the bug had appeared in 0.7.28.
4006 Thanks to Artem Bokhan.
4007
4008 *) Bugfix: a segmentation fault might occur in worker process, if short
4009 static variants are used in a "try_files" directive.
4010
4011
4012 Changes with nginx 0.7.38 23 Feb 2009
4013
4014 *) Feature: authentication failures logging.
4015
4016 *) Bugfix: name/password in auth_basic_user_file were ignored after odd
4017 number of empty lines.
4018 Thanks to Alexander Zagrebin.
4019
4020 *) Bugfix: a segmentation fault occurred in a master process, if long
4021 path was used in unix domain socket; the bug had appeared in 0.7.36.
4022
4023
4024 Changes with nginx 0.7.37 21 Feb 2009
4025
4026 *) Bugfix: directives using upstreams did not work; the bug had appeared
4027 in 0.7.36.
4028
4029
4030 Changes with nginx 0.7.36 21 Feb 2009
4031
4032 *) Feature: a preliminary IPv6 support; the "listen" directive of the
4033 HTTP module supports IPv6.
4034
4035 *) Bugfix: the $ancient_browser variable did not work for browsers
4036 preset by a "modern_browser" directives.
4037
4038
4039 Changes with nginx 0.7.35 16 Feb 2009
4040
4041 *) Bugfix: a "ssl_engine" directive did not use a SSL-accelerator for
4042 asymmetric ciphers.
4043 Thanks to Marcin Gozdalik.
4044
4045 *) Bugfix: a "try_files" directive set MIME type depending on an
4046 original request extension.
4047
4048 *) Bugfix: "*domain.tld" names were handled incorrectly in
4049 "server_name", "valid_referers", and "map" directives, if
4050 ".domain.tld" and ".subdomain.domain.tld" wildcards were used;
4051 the bug had appeared in 0.7.9.
4052
4053
4054 Changes with nginx 0.7.34 10 Feb 2009
4055
4056 *) Feature: the "off" parameter of the "if_modified_since" directive.
4057
4058 *) Feature: now nginx sends an HELO/EHLO command after a XCLIENT
4059 command.
4060 Thanks to Maxim Dounin.
4061
4062 *) Feature: Microsoft specific "AUTH LOGIN with User Name" mode support
4063 in mail proxy server.
4064 Thanks to Maxim Dounin.
4065
4066 *) Bugfix: in a redirect rewrite directive original arguments were
4067 concatenated with new arguments by a "?" rather than an "&";
4068 the bug had appeared in 0.1.18.
4069 Thanks to Maxim Dounin.
4070
4071 *) Bugfix: nginx could not be built on AIX.
4072
4073
4074 Changes with nginx 0.7.33 02 Feb 2009
4075
4076 *) Bugfix: a double response might be returned if the epoll or rtsig
4077 methods are used and a redirect was returned to a request with body.
4078 Thanks to Eden Li.
4079
4080 *) Bugfix: the $sent_http_location variable was empty for some redirects
4081 types.
4082
4083 *) Bugfix: a segmentation fault might occur in worker process if
4084 "resolver" directive was used in SMTP proxy.
4085
4086
4087 Changes with nginx 0.7.32 26 Jan 2009
4088
4089 *) Feature: now a directory existence testing can be set explicitly in
4090 the "try_files" directive.
4091
4092 *) Bugfix: fastcgi_store stored files not always.
4093
4094 *) Bugfix: in geo ranges.
4095
4096 *) Bugfix: in shared memory allocations if nginx was built without
4097 debugging.
4098 Thanks to Andrey Kvasov.
4099
4100
4101 Changes with nginx 0.7.31 19 Jan 2009
4102
4103 *) Change: now the "try_files" directive tests files only and ignores
4104 directories.
4105
4106 *) Feature: the "fastcgi_split_path_info" directive.
4107
4108 *) Bugfixes in an "Expect" request header line support.
4109
4110 *) Bugfixes in geo ranges.
4111
4112 *) Bugfix: in a miss case ngx_http_memcached_module returned the "END"
4113 line as response body instead of default 404 page body; the bug had
4114 appeared in 0.7.18.
4115 Thanks to Maxim Dounin.
4116
4117 *) Bugfix: while SMTP proxying nginx issued message "250 2.0.0 OK"
4118 instead of "235 2.0.0 OK"; the bug had appeared in 0.7.22.
4119 Thanks to Maxim Dounin.
4120
4121
4122 Changes with nginx 0.7.30 24 Dec 2008
4123
4124 *) Bugfix: a segmentation fault occurred in worker process, if variables
4125 were used in the "fastcgi_pass" or "proxy_pass" directives and host
4126 name must be resolved; the bug had appeared in 0.7.29.
4127
4128
4129 Changes with nginx 0.7.29 24 Dec 2008
4130
4131 *) Bugfix: the "fastcgi_pass" and "proxy_pass" directives did not
4132 support variables if unix domain sockets were used.
4133
4134 *) Bugfixes in subrequest processing; the bugs had appeared in 0.7.25.
4135
4136 *) Bugfix: a "100 Continue" response was issued for HTTP/1.0 requests;
4137 Thanks to Maxim Dounin.
4138
4139 *) Bugfix: in memory allocation in the ngx_http_gzip_filter_module on
4140 Cygwin.
4141
4142
4143 Changes with nginx 0.7.28 22 Dec 2008
4144
4145 *) Change: in memory allocation in the ngx_http_gzip_filter_module.
4146
4147 *) Change: the default "gzip_buffers" directive values have been changed
4148 to 32 4k or 16 8k from 4 4k/8k.
4149
4150
4151 Changes with nginx 0.7.27 15 Dec 2008
4152
4153 *) Feature: the "try_files" directive.
4154
4155 *) Feature: variables support in the "fastcgi_pass" directive.
4156
4157 *) Feature: now the $geo variable may get an address from a variable.
4158 Thanks to Andrei Nigmatulin.
4159
4160 *) Feature: now a location's modifier may be used without space before
4161 name.
4162
4163 *) Feature: the $upstream_response_length variable.
4164
4165 *) Bugfix: now a "add_header" directive does not add an empty value.
4166
4167 *) Bugfix: if zero length static file was requested, then nginx just
4168 closed connection; the bug had appeared in 0.7.25.
4169
4170 *) Bugfix: a MOVE method could not move file in non-existent directory.
4171
4172 *) Bugfix: a segmentation fault occurred in worker process, if no one
4173 named location was defined in server, but some one was used in an
4174 error_page directive.
4175 Thanks to Sergey Bochenkov.
4176
4177
4178 Changes with nginx 0.7.26 08 Dec 2008
4179
4180 *) Bugfix: in subrequest processing; the bug had appeared in 0.7.25.
4181
4182
4183 Changes with nginx 0.7.25 08 Dec 2008
4184
4185 *) Change: in subrequest processing.
4186
4187 *) Change: now POSTs without "Content-Length" header line are allowed.
4188
4189 *) Bugfix: now the "limit_req" and "limit_conn" directives log a
4190 prohibition reason.
4191
4192 *) Bugfix: in the "delete" parameter of the "geo" directive.
4193
4194
4195 Changes with nginx 0.7.24 01 Dec 2008
4196
4197 *) Feature: the "if_modified_since" directive.
4198
4199 *) Bugfix: nginx did not process a FastCGI server response, if the
4200 server send too many messages to stderr before response.
4201
4202 *) Bugfix: the "$cookie_..." variables did not work in the SSI and the
4203 perl module.
4204
4205
4206 Changes with nginx 0.7.23 27 Nov 2008
4207
4208 *) Feature: the "delete" and "ranges" parameters in the "geo" directive.
4209
4210 *) Feature: speeding up loading of geo base with large number of values.
4211
4212 *) Feature: decrease of memory required for geo base load.
4213
4214
4215 Changes with nginx 0.7.22 20 Nov 2008
4216
4217 *) Feature: the "none" parameter in the "smtp_auth" directive.
4218 Thanks to Maxim Dounin.
4219
4220 *) Feature: the "$cookie_..." variables.
4221
4222 *) Bugfix: the "directio" directive did not work in XFS filesystem.
4223
4224 *) Bugfix: the resolver did not understand big DNS responses.
4225 Thanks to Zyb.
4226
4227
4228 Changes with nginx 0.7.21 11 Nov 2008
4229
4230 *) Changes in the ngx_http_limit_req_module.
4231
4232 *) Feature: the EXSLT support in the ngx_http_xslt_module.
4233 Thanks to Denis F. Latypoff.
4234
4235 *) Workaround: compatibility with glibc 2.3.
4236 Thanks to Eric Benson and Maxim Dounin.
4237
4238 *) Bugfix: nginx could not run on MacOSX 10.4 and earlier; the bug had
4239 appeared in 0.7.6.
4240
4241
4242 Changes with nginx 0.7.20 10 Nov 2008
4243
4244 *) Changes in the ngx_http_gzip_filter_module.
4245
4246 *) Feature: the ngx_http_limit_req_module.
4247
4248 *) Bugfix: worker processes might exit on a SIGBUS signal on sparc and
4249 ppc platforms; the bug had appeared in 0.7.3.
4250 Thanks to Maxim Dounin.
4251
4252 *) Bugfix: the "proxy_pass http://host/some:uri" directives did not
4253 work; the bug had appeared in 0.7.12.
4254
4255 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
4256 error.
4257
4258 *) Bugfix: the ngx_http_secure_link_module did not work inside
4259 locations, whose names are less than 3 characters.
4260
4261 *) Bugfix: $server_addr variable might have no value.
4262
4263
4264 Changes with nginx 0.7.19 13 Oct 2008
4265
4266 *) Bugfix: version number update.
4267
4268
4269 Changes with nginx 0.7.18 13 Oct 2008
4270
4271 *) Change: the "underscores_in_headers" directive; now nginx does not
4272 allows underscores in a client request header line names.
4273
4274 *) Feature: the ngx_http_secure_link_module.
4275
4276 *) Feature: the "real_ip_header" directive supports any header.
4277
4278 *) Feature: the "log_subrequest" directive.
4279
4280 *) Feature: the $realpath_root variable.
4281
4282 *) Feature: the "http_502" and "http_504" parameters of the
4283 "proxy_next_upstream" directive.
4284
4285 *) Bugfix: the "http_503" parameter of the "proxy_next_upstream" or
4286 "fastcgi_next_upstream" directives did not work.
4287
4288 *) Bugfix: nginx might send a "Transfer-Encoding: chunked" header line
4289 for HEAD requests.
4290
4291 *) Bugfix: now accept threshold depends on worker_connections.
4292
4293
4294 Changes with nginx 0.7.17 15 Sep 2008
4295
4296 *) Feature: now the "directio" directive works on Linux.
4297
4298 *) Feature: the $pid variable.
4299
4300 *) Bugfix: the "directio" optimization that had appeared in 0.7.15 did
4301 not work with open_file_cache.
4302
4303 *) Bugfix: the "access_log" with variables did not work on Linux; the
4304 bug had appeared in 0.7.7.
4305
4306 *) Bugfix: the ngx_http_charset_module did not understand quoted charset
4307 name received from backend.
4308
4309
4310 Changes with nginx 0.7.16 08 Sep 2008
4311
4312 *) Bugfix: nginx could not be built on 64-bit platforms; the bug had
4313 appeared in 0.7.15.
4314
4315
4316 Changes with nginx 0.7.15 08 Sep 2008
4317
4318 *) Feature: the ngx_http_random_index_module.
4319
4320 *) Feature: the "directio" directive has been optimized for file
4321 requests starting from arbitrary position.
4322
4323 *) Feature: the "directio" directive turns off sendfile if it is
4324 necessary.
4325
4326 *) Feature: now nginx allows underscores in a client request header line
4327 names.
4328
4329
4330 Changes with nginx 0.7.14 01 Sep 2008
4331
4332 *) Change: now the ssl_certificate and ssl_certificate_key directives
4333 have no default values.
4334
4335 *) Feature: the "listen" directive supports the "ssl" parameter.
4336
4337 *) Feature: now nginx takes into account a time zone change while
4338 reconfiguration on FreeBSD and Linux.
4339
4340 *) Bugfix: the "listen" directive parameters such as "backlog",
4341 "rcvbuf", etc. were not set, if a default server was not the first
4342 one.
4343
4344 *) Bugfix: if URI part captured by a "rewrite" directive was used as a
4345 query string, then the query string was not escaped.
4346
4347 *) Bugfix: configuration file validity test improvements.
4348
4349
4350 Changes with nginx 0.7.13 26 Aug 2008
4351
4352 *) Bugfix: nginx could not be built on Linux and Solaris; the bug had
4353 appeared in 0.7.12.
4354
4355
4356 Changes with nginx 0.7.12 26 Aug 2008
4357
4358 *) Feature: the "server_name" directive supports empty name "".
4359
4360 *) Feature: the "gzip_disable" directive supports special "msie6" mask.
4361
4362 *) Bugfix: if the "max_fails=0" parameter was used in upstream with
4363 several servers, then a worker process exited on a SIGFPE signal.
4364 Thanks to Maxim Dounin.
4365
4366 *) Bugfix: a request body was dropped while redirection via an
4367 "error_page" directive.
4368
4369 *) Bugfix: a full response was returned for request method HEAD while
4370 redirection via an "error_page" directive.
4371
4372 *) Bugfix: the $r->header_in() method did not return value of the
4373 "Host", "User-Agent", and "Connection" request header lines; the bug
4374 had appeared in 0.7.0.
4375
4376
4377 Changes with nginx 0.7.11 18 Aug 2008
4378
4379 *) Change: now ngx_http_charset_module does not work by default with
4380 text/css MIME type.
4381
4382 *) Feature: now nginx returns the 405 status code for POST method
4383 requesting a static file only if the file exists.
4384
4385 *) Feature: the "proxy_ssl_session_reuse" directive.
4386
4387 *) Bugfix: a "proxy_pass" directive without URI part might use original
4388 request after the "X-Accel-Redirect" redirection was used.
4389
4390 *) Bugfix: if a directory has search only rights and the first index
4391 file was absent, then nginx returned the 500 status code.
4392
4393 *) Bugfix: in inclusive locations; the bugs had appeared in 0.7.1.
4394
4395
4396 Changes with nginx 0.7.10 13 Aug 2008
4397
4398 *) Bugfix: in the "addition_types", "charset_types", "gzip_types",
4399 "ssi_types", "sub_filter_types", and "xslt_types" directives; the
4400 bugs had appeared in 0.7.9.
4401
4402 *) Bugfix: of recursive error_page for 500 status code.
4403
4404 *) Bugfix: now the ngx_http_realip_module sets address not for whole
4405 keepalive connection, but for each request passed via the connection.
4406
4407
4408 Changes with nginx 0.7.9 12 Aug 2008
4409
4410 *) Change: now ngx_http_charset_module works by default with following
4411 MIME types: text/html, text/css, text/xml, text/plain,
4412 text/vnd.wap.wml, application/x-javascript, and application/rss+xml.
4413
4414 *) Feature: the "charset_types" and "addition_types" directives.
4415
4416 *) Feature: now the "gzip_types", "ssi_types", and "sub_filter_types"
4417 directives use hash.
4418
4419 *) Feature: the ngx_cpp_test_module.
4420
4421 *) Feature: the "expires" directive supports daily time.
4422
4423 *) Feature: the ngx_http_xslt_module improvements and bug fixing.
4424 Thanks to Denis F. Latypoff and Maxim Dounin.
4425
4426 *) Bugfix: the "log_not_found" directive did not work for index files
4427 tests.
4428
4429 *) Bugfix: HTTPS connections might hang, if kqueue, epoll, rtsig, or
4430 eventport methods were used; the bug had appeared in 0.7.7.
4431
4432 *) Bugfix: if the "server_name", "valid_referers", and "map" directives
4433 used an "*.domain.tld" wildcard and exact name "domain.tld" was not
4434 set, then the exact name was matched by the wildcard; the bug had
4435 appeared in 0.3.18.
4436
4437
4438 Changes with nginx 0.7.8 04 Aug 2008
4439
4440 *) Feature: the ngx_http_xslt_module.
4441
4442 *) Feature: the "$arg_..." variables.
4443
4444 *) Feature: Solaris directio support.
4445 Thanks to Ivan Debnar.
4446
4447 *) Bugfix: now if FastCGI server sends a "Location" header line without
4448 status line, then nginx uses 302 status code.
4449 Thanks to Maxim Dounin.
4450
4451
4452 Changes with nginx 0.7.7 30 Jul 2008
4453
4454 *) Change: now the EAGAIN error returned by connect() is not considered
4455 as temporary error.
4456
4457 *) Change: now the $ssl_client_cert variable value is a certificate with
4458 TAB character intended before each line except first one; an
4459 unchanged certificate is available in the $ssl_client_raw_cert
4460 variable.
4461
4462 *) Feature: the "ask" parameter in the "ssl_verify_client" directive.
4463
4464 *) Feature: byte-range processing improvements.
4465 Thanks to Maxim Dounin.
4466
4467 *) Feature: the "directio" directive.
4468 Thanks to Jiang Hong.
4469
4470 *) Feature: MacOSX 10.5 sendfile() support.
4471
4472 *) Bugfix: now in MacOSX and Cygwin locations are tested in case
4473 insensitive mode; however, the compare is provided by single-byte
4474 locales only.
4475
4476 *) Bugfix: mail proxy SSL connections hanged, if select, poll, or
4477 /dev/poll methods were used.
4478
4479 *) Bugfix: UTF-8 encoding usage in the ngx_http_autoindex_module.
4480
4481
4482 Changes with nginx 0.7.6 07 Jul 2008
4483
4484 *) Bugfix: now if variables are used in the "access_log" directive a
4485 request root existence is always tested.
4486
4487 *) Bugfix: the ngx_http_flv_module did not support several values in a
4488 query string.
4489
4490
4491 Changes with nginx 0.7.5 01 Jul 2008
4492
4493 *) Bugfixes in variables support in the "access_log" directive; the bugs
4494 had appeared in 0.7.4.
4495
4496 *) Bugfix: nginx could not be built --without-http_gzip_module; the bug
4497 had appeared in 0.7.3.
4498 Thanks to Kirill A. Korinskiy.
4499
4500 *) Bugfix: if sub_filter and SSI were used together, then responses
4501 might were transferred incorrectly.
4502
4503
4504 Changes with nginx 0.7.4 30 Jun 2008
4505
4506 *) Feature: variables support in the "access_log" directive.
4507
4508 *) Feature: the "open_log_file_cache" directive.
4509
4510 *) Feature: the -g switch.
4511
4512 *) Feature: the "Expect" request header line support.
4513
4514 *) Bugfix: large SSI inclusions might be truncated.
4515
4516
4517 Changes with nginx 0.7.3 23 Jun 2008
4518
4519 *) Change: the "rss" extension MIME type has been changed to
4520 "application/rss+xml".
4521
4522 *) Change: now the "gzip_vary" directive turned on issues a
4523 "Vary: Accept-Encoding" header line for uncompressed responses too.
4524
4525 *) Feature: now the "rewrite" directive does a redirect automatically if
4526 the "https://" protocol is used.
4527
4528 *) Bugfix: the "proxy_pass" directive did not work with the HTTPS
4529 protocol; the bug had appeared in 0.6.9.
4530
4531
4532 Changes with nginx 0.7.2 16 Jun 2008
4533
4534 *) Feature: now nginx supports EDH key exchange ciphers.
4535
4536 *) Feature: the "ssl_dhparam" directive.
4537
4538 *) Feature: the $ssl_client_cert variable.
4539 Thanks to Manlio Perillo.
4540
4541 *) Bugfix: after changing URI via a "rewrite" directive nginx did not
4542 search a new location; the bug had appeared in 0.7.1.
4543 Thanks to Maxim Dounin.
4544
4545 *) Bugfix: nginx could not be built without PCRE library; the bug had
4546 appeared in 0.7.1.
4547
4548 *) Bugfix: when a request to a directory was redirected with the slash
4549 added, nginx dropped a query string from the original request.
4550
4551
4552 Changes with nginx 0.7.1 26 May 2008
4553
4554 *) Change: now locations are searched in a tree.
4555
4556 *) Change: the "optimize_server_names" directive was canceled due to the
4557 "server_name_in_redirect" directive introduction.
4558
4559 *) Change: some long deprecated directives are not supported anymore.
4560
4561 *) Change: the "none" parameter in the "ssl_session_cache" directive;
4562 now this is default parameter.
4563 Thanks to Rob Mueller.
4564
4565 *) Bugfix: worker processes might not catch reconfiguration and log
4566 rotation signals.
4567
4568 *) Bugfix: nginx could not be built on latest Fedora 9 Linux.
4569 Thanks to Roxis.
4570
4571
4572 Changes with nginx 0.7.0 19 May 2008
4573
4574 *) Change: now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX
4575 in an access_log.
4576 Thanks to Maxim Dounin.
4577
4578 *) Change: now nginx allows several "Host" request header line.
4579
4580 *) Feature: the "modified" flag in the "expires" directive.
4581
4582 *) Feature: the $uid_got and $uid_set variables may be used at any
4583 request processing stage.
4584
4585 *) Feature: the $hostname variable.
4586 Thanks to Andrei Nigmatulin.
4587
4588 *) Feature: DESTDIR support.
4589 Thanks to Todd A. Fisher and Andras Voroskoi.
4590
4591 *) Bugfix: a segmentation fault might occur in worker process on Linux,
4592 if keepalive was enabled.
4593
4594
4595 Changes with nginx 0.6.31 12 May 2008
4596
4597 *) Bugfix: nginx did not process FastCGI response if header was at the
4598 end of FastCGI record; the bug had appeared in 0.6.2.
4599 Thanks to Sergey Serov.
4600
4601 *) Bugfix: a segmentation fault might occur in worker process if a file
4602 was deleted and the "open_file_cache_errors" directive was off.
4603
4604
4605 Changes with nginx 0.6.30 29 Apr 2008
4606
4607 *) Change: now if an "include" directive pattern does not match any
4608 file, then nginx does not issue an error.
4609
4610 *) Feature: now the time in directives may be specified without spaces,
4611 for example, "1h50m".
4612
4613 *) Bugfix: memory leaks if the "ssl_verify_client" directive was on.
4614 Thanks to Chavelle Vincent.
4615
4616 *) Bugfix: the "sub_filter" directive might set text to change into
4617 output.
4618
4619 *) Bugfix: the "error_page" directive did not take into account
4620 arguments in redirected URI.
4621
4622 *) Bugfix: now nginx always opens files in binary mode under Cygwin.
4623
4624 *) Bugfix: nginx could not be built on OpenBSD; the bug had appeared in
4625 0.6.15.
4626
4627
4628 Changes with nginx 0.6.29 18 Mar 2008
4629
4630 *) Feature: the ngx_google_perftools_module.
4631
4632 *) Bugfix: the ngx_http_perl_module could not be built on 64-bit
4633 platforms; the bug had appeared in 0.6.27.
4634
4635
4636 Changes with nginx 0.6.28 13 Mar 2008
4637
4638 *) Bugfix: the rtsig method could not be built; the bug had appeared in
4639 0.6.27.
4640
4641
4642 Changes with nginx 0.6.27 12 Mar 2008
4643
4644 *) Change: now by default the rtsig method is not built on
4645 Linux 2.6.18+.
4646
4647 *) Change: now a request method is not changed while redirection to a
4648 named location via an "error_page" directive.
4649
4650 *) Feature: the "resolver" and "resolver_timeout" directives in SMTP
4651 proxy.
4652
4653 *) Feature: the "post_action" directive supports named locations.
4654
4655 *) Bugfix: a segmentation fault occurred in worker process, if a request
4656 was redirected from proxy, FastCGI, or memcached location to static
4657 named locations.
4658
4659 *) Bugfix: browsers did not repeat SSL handshake if there is no valid
4660 client certificate in first handshake.
4661 Thanks to Alexander V. Inyukhin.
4662
4663 *) Bugfix: if response code 495-497 was redirected via an "error_page"
4664 directive without code change, then nginx tried to allocate too many
4665 memory.
4666
4667 *) Bugfix: memory leak in long-lived non buffered connections.
4668
4669 *) Bugfix: memory leak in resolver.
4670
4671 *) Bugfix: a segmentation fault occurred in worker process, if a request
4672 was redirected from proxy, FastCGI, or memcached location to static
4673 named locations.
4674
4675 *) Bugfix: in the $proxy_host and $proxy_port variables caching.
4676 Thanks to Sergey Bochenkov.
4677
4678 *) Bugfix: a "proxy_pass" directive with variables used incorrectly the
4679 same port as in another "proxy_pass" directive with the same host
4680 name and without variables.
4681 Thanks to Sergey Bochenkov.
4682
4683 *) Bugfix: an alert "sendmsg() failed (9: Bad file descriptor)" on some
4684 64-bit platforms while reconfiguration.
4685
4686 *) Bugfix: a segmentation fault occurred in worker process, if empty
4687 stub block was used second time in SSI.
4688
4689 *) Bugfix: in copying URI part contained escaped symbols into arguments.
4690
4691
4692 Changes with nginx 0.6.26 11 Feb 2008
4693
4694 *) Bugfix: the "proxy_store" and "fastcgi_store" directives did not
4695 check a response length.
4696
4697 *) Bugfix: a segmentation fault occurred in worker process, if big value
4698 was used in a "expires" directive.
4699 Thanks to Joaquin Cuenca Abela.
4700
4701 *) Bugfix: nginx incorrectly detected cache line size on Pentium 4.
4702 Thanks to Gena Makhomed.
4703
4704 *) Bugfix: in proxied or FastCGI subrequests a client original method
4705 was used instead of the GET method.
4706
4707 *) Bugfix: socket leak in HTTPS mode if deferred accept was used.
4708 Thanks to Ben Maurer.
4709
4710 *) Bugfix: nginx issued the bogus error message "SSL_shutdown() failed
4711 (SSL: )"; the bug had appeared in 0.6.23.
4712
4713 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
4714 error; the bug had appeared in 0.6.23.
4715
4716
4717 Changes with nginx 0.6.25 08 Jan 2008
4718
4719 *) Change: now the "server_name_in_redirect" directive is used instead
4720 of the "server_name" directive's special "*" parameter.
4721
4722 *) Change: now wildcard and regex names can be used as main name in a
4723 "server_name" directive.
4724
4725 *) Change: the "satisfy_any" directive was replaced by the "satisfy"
4726 directive.
4727
4728 *) Workaround: old worker processes might hog CPU after reconfiguration
4729 if they was run under Linux OpenVZ.
4730
4731 *) Feature: the "min_delete_depth" directive.
4732
4733 *) Bugfix: the COPY and MOVE methods did not work with single files.
4734
4735 *) Bugfix: the ngx_http_gzip_static_module did not allow the
4736 ngx_http_dav_module to work; the bug had appeared in 0.6.23.
4737
4738 *) Bugfix: socket leak in HTTPS mode if deferred accept was used.
4739 Thanks to Ben Maurer.
4740
4741 *) Bugfix: nginx could not be built without PCRE library; the bug had
4742 appeared in 0.6.23.
4743
4744
4745 Changes with nginx 0.6.24 27 Dec 2007
4746
4747 *) Bugfix: a segmentation fault might occur in worker process if HTTPS
4748 was used; the bug had appeared in 0.6.23.
4749
4750
4751 Changes with nginx 0.6.23 27 Dec 2007
4752
4753 *) Change: the "off" parameter in the "ssl_session_cache" directive; now
4754 this is default parameter.
4755
4756 *) Change: the "open_file_cache_retest" directive was renamed to the
4757 "open_file_cache_valid".
4758
4759 *) Feature: the "open_file_cache_min_uses" directive.
4760
4761 *) Feature: the ngx_http_gzip_static_module.
4762
4763 *) Feature: the "gzip_disable" directive.
4764
4765 *) Feature: the "memcached_pass" directive may be used inside the "if"
4766 block.
4767
4768 *) Bugfix: a segmentation fault occurred in worker process, if the
4769 "memcached_pass" and "if" directives were used in the same location.
4770
4771 *) Bugfix: if a "satisfy_any on" directive was used and not all access
4772 and auth modules directives were set, then other given access and
4773 auth directives were not tested;
4774
4775 *) Bugfix: regex parameters in a "valid_referers" directive were not
4776 inherited from previous level.
4777
4778 *) Bugfix: a "post_action" directive did run if a request was completed
4779 with 499 status code.
4780
4781 *) Bugfix: optimization of 16K buffer usage in a SSL connection.
4782 Thanks to Ben Maurer.
4783
4784 *) Bugfix: the STARTTLS in SMTP mode did not work.
4785 Thanks to Oleg Motienko.
4786
4787 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
4788 error; the bug had appeared in 0.5.13.
4789
4790
4791 Changes with nginx 0.6.22 19 Dec 2007
4792
4793 *) Change: now all ngx_http_perl_module methods return values copied to
4794 perl's allocated memory.
4795
4796 *) Bugfix: if nginx was built with ngx_http_perl_module, the perl before
4797 5.8.6 was used, and perl supported threads, then during
4798 reconfiguration the master process aborted; the bug had appeared in
4799 0.5.9.
4800 Thanks to Boris Zhmurov.
4801
4802 *) Bugfix: the ngx_http_perl_module methods may get invalid values of
4803 the regex captures.
4804
4805 *) Bugfix: a segmentation fault occurred in worker process, if the
4806 $r->has_request_body() method was called for a request whose small
4807 request body was already received.
4808
4809 *) Bugfix: large_client_header_buffers did not freed before going to
4810 keep-alive state.
4811 Thanks to Olexander Shtepa.
4812
4813 *) Bugfix: the last address was missed in the $upstream_addr variable;
4814 the bug had appeared in 0.6.18.
4815
4816 *) Bugfix: the "fastcgi_catch_stderr" directive did return error code;
4817 now it returns 502 code, that can be rerouted to a next server using
4818 the "fastcgi_next_upstream invalid_header" directive.
4819
4820 *) Bugfix: a segmentation fault occurred in master process if the
4821 "fastcgi_catch_stderr" directive was used; the bug had appeared in
4822 0.6.10.
4823 Thanks to Manlio Perillo.
4824
4825
4826 Changes with nginx 0.6.21 03 Dec 2007
4827
4828 *) Change: if variable values used in a "proxy_pass" directive contain
4829 IP-addresses only, then a "resolver" directive is not mandatory.
4830
4831 *) Bugfix: a segmentation fault might occur in worker process if a
4832 "proxy_pass" directive with URI-part was used; the bug had appeared
4833 in 0.6.19.
4834
4835 *) Bugfix: if resolver was used on platform that does not support
4836 kqueue, then nginx issued an alert "name is out of response".
4837 Thanks to Andrei Nigmatulin.
4838
4839 *) Bugfix: if the $server_protocol was used in FastCGI parameters and a
4840 request line length was near to the "client_header_buffer_size"
4841 directive value, then nginx issued an alert "fastcgi: the request
4842 record is too big".
4843
4844 *) Bugfix: if a plain text HTTP/0.9 version request was made to HTTPS
4845 server, then nginx returned usual response.
4846
4847
4848 Changes with nginx 0.6.20 28 Nov 2007
4849
4850 *) Bugfix: a segmentation fault might occur in worker process if a
4851 "proxy_pass" directive with URI-part was used; the bug had appeared
4852 in 0.6.19.
4853
4854
4855 Changes with nginx 0.6.19 27 Nov 2007
4856
4857 *) Bugfix: the 0.6.18 version could not be built.
4858
4859
4860 Changes with nginx 0.6.18 27 Nov 2007
4861
4862 *) Change: now the ngx_http_userid_module adds start time microseconds
4863 to the cookie field contains a pid value.
4864
4865 *) Change: now the full request line instead of URI only is written to
4866 error_log.
4867
4868 *) Feature: variables support in the "proxy_pass" directive.
4869
4870 *) Feature: the "resolver" and "resolver_timeout" directives.
4871
4872 *) Feature: now the directive "add_header last-modified ''" deletes a
4873 "Last-Modified" response header line.
4874
4875 *) Bugfix: the "limit_rate" directive did not allow to use full
4876 throughput, even if limit value was very high.
4877
4878
4879 Changes with nginx 0.6.17 15 Nov 2007
4880
4881 *) Feature: the "If-Range" request header line support.
4882 Thanks to Alexander V. Inyukhin.
4883
4884 *) Bugfix: URL double escaping in a redirect of the "msie_refresh"
4885 directive; the bug had appeared in 0.6.4.
4886
4887 *) Bugfix: the "autoindex" directive did not work with the "alias /"
4888 directive.
4889
4890 *) Bugfix: a segmentation fault might occur in worker process if
4891 subrequests were used.
4892
4893 *) Bugfix: the big responses may be transferred truncated if SSL and
4894 gzip were used.
4895
4896 *) Bugfix: the $status variable was equal to 0 if a proxied server
4897 returned response in HTTP/0.9 version.
4898
4899
4900 Changes with nginx 0.6.16 29 Oct 2007
4901
4902 *) Change: now the uname(2) is used on Linux instead of procfs.
4903 Thanks to Ilya Novikov.
4904
4905 *) Bugfix: if the "?" character was in a "error_page" directive, then it
4906 was escaped in a proxied request; the bug had appeared in 0.6.11.
4907
4908 *) Bugfix: compatibility with mget.
4909
4910
4911 Changes with nginx 0.6.15 22 Oct 2007
4912
4913 *) Feature: Cygwin compatibility.
4914 Thanks to Vladimir Kutakov.
4915
4916 *) Feature: the "merge_slashes" directive.
4917
4918 *) Feature: the "gzip_vary" directive.
4919
4920 *) Feature: the "server_tokens" directive.
4921
4922 *) Bugfix: nginx did not unescape URI in the "include" SSI command.
4923
4924 *) Bugfix: the segmentation fault was occurred on start or while
4925 reconfiguration if variable was used in the "charset" or
4926 "source_charset" directives.
4927
4928 *) Bugfix: nginx returned the 400 response on requests like
4929 "GET http://www.domain.com HTTP/1.0".
4930 Thanks to James Oakley.
4931
4932 *) Bugfix: if request with request body was redirected using the
4933 "error_page" directive, then nginx tried to read the request body
4934 again; the bug had appeared in 0.6.7.
4935
4936 *) Bugfix: a segmentation fault occurred in worker process if no
4937 server_name was explicitly defined for server processing request; the
4938 bug had appeared in 0.6.7.
4939
4940
4941 Changes with nginx 0.6.14 15 Oct 2007
4942
4943 *) Change: now by default the "echo" SSI command uses entity encoding.
4944
4945 *) Feature: the "encoding" parameter in the "echo" SSI command.
4946
4947 *) Feature: the "access_log" directive may be used inside the
4948 "limit_except" block.
4949
4950 *) Bugfix: if all upstream servers were failed, then all servers had got
4951 weight the was equal one until servers became alive; the bug had
4952 appeared in 0.6.6.
4953
4954 *) Bugfix: a segmentation fault occurred in worker process if
4955 $date_local and $date_gmt were used outside the
4956 ngx_http_ssi_filter_module.
4957
4958 *) Bugfix: a segmentation fault might occur in worker process if debug
4959 log was enabled.
4960 Thanks to Andrei Nigmatulin.
4961
4962 *) Bugfix: ngx_http_memcached_module did not set
4963 $upstream_response_time.
4964 Thanks to Maxim Dounin.
4965
4966 *) Bugfix: a worker process may got caught in an endless loop, if the
4967 memcached was used.
4968
4969 *) Bugfix: nginx supported low case only "close" and "keep-alive" values
4970 in the "Connection" request header line; the bug had appeared in
4971 0.6.11.
4972
4973 *) Bugfix: sub_filter did not work with empty substitution.
4974
4975 *) Bugfix: in sub_filter parsing.
4976
4977
4978 Changes with nginx 0.6.13 24 Sep 2007
4979
4980 *) Bugfix: nginx did not close directory file on HEAD request if
4981 autoindex was used.
4982 Thanks to Arkadiusz Patyk.
4983
4984
4985 Changes with nginx 0.6.12 21 Sep 2007
4986
4987 *) Change: mail proxy was split on three modules: pop3, imap and smtp.
4988
4989 *) Feature: the --without-mail_pop3_module, --without-mail_imap_module,
4990 and --without-mail_smtp_module configuration parameters.
4991
4992 *) Feature: the "smtp_greeting_delay" and "smtp_client_buffer"
4993 directives of the ngx_mail_smtp_module.
4994
4995 *) Bugfix: the trailing wildcards did not work; the bug had appeared in
4996 0.6.9.
4997
4998 *) Bugfix: nginx could not start on Solaris if the shared PCRE library
4999 located in non-standard place was used.
5000
5001 *) Bugfix: the "proxy_hide_header" and "fastcgi_hide_header" directives
5002 did not hide response header lines whose name was longer than 32
5003 characters.
5004 Thanks to Manlio Perillo.
5005
5006
5007 Changes with nginx 0.6.11 11 Sep 2007
5008
5009 *) Bugfix: active connection counter always increased if mail proxy was
5010 used.
5011
5012 *) Bugfix: if backend returned response header only using non-buffered
5013 proxy, then nginx closed backend connection on timeout.
5014
5015 *) Bugfix: nginx did not support several "Connection" request header
5016 lines.
5017
5018 *) Bugfix: if the "max_fails" was set for upstream server, then after
5019 first failure server weight was always one; the bug had appeared in
5020 0.6.6.
5021
5022
5023 Changes with nginx 0.6.10 03 Sep 2007
5024
5025 *) Feature: the "open_file_cache", "open_file_cache_retest", and
5026 "open_file_cache_errors" directives.
5027
5028 *) Bugfix: socket leak; the bug had appeared in 0.6.7.
5029
5030 *) Bugfix: a charset set by the "charset" directive was not appended to
5031 the "Content-Type" header set by $r->send_http_header().
5032
5033 *) Bugfix: a segmentation fault might occur in worker process if
5034 /dev/poll method was used.
5035
5036
5037 Changes with nginx 0.6.9 28 Aug 2007
5038
5039 *) Bugfix: a worker process may got caught in an endless loop, if the
5040 HTTPS protocol was used; the bug had appeared in 0.6.7.
5041
5042 *) Bugfix: if server listened on two addresses or ports and trailing
5043 wildcard was used, then nginx did not run.
5044
5045 *) Bugfix: the "ip_hash" directive might incorrectly mark servers as
5046 down.
5047
5048 *) Bugfix: nginx could not be built on amd64; the bug had appeared in
5049 0.6.8.
5050
5051
5052 Changes with nginx 0.6.8 20 Aug 2007
5053
5054 *) Change: now nginx tries to set the "worker_priority",
5055 "worker_rlimit_nofile", "worker_rlimit_core", and
5056 "worker_rlimit_sigpending" without super-user privileges.
5057
5058 *) Change: now nginx escapes space and "%" in request to a mail proxy
5059 authentication server.
5060
5061 *) Change: now nginx escapes "%" in $memcached_key variable.
5062
5063 *) Bugfix: nginx used path relative to configuration prefix for
5064 non-absolute configuration file path specified in the "-c" key; the
5065 bug had appeared in 0.6.6.
5066
5067 *) Bugfix: nginx did not work on FreeBSD/sparc64.
5068
5069
5070 Changes with nginx 0.6.7 15 Aug 2007
5071
5072 *) Change: now the paths specified in the "include",
5073 "auth_basic_user_file", "perl_modules", "ssl_certificate",
5074 "ssl_certificate_key", and "ssl_client_certificate" directives are
5075 relative to directory of nginx configuration file nginx.conf, but not
5076 to nginx prefix directory.
5077
5078 *) Change: the --sysconfdir=PATH option in configure was canceled.
5079
5080 *) Change: the special make target "upgrade1" was defined for online
5081 upgrade of 0.1.x versions.
5082
5083 *) Feature: the "server_name" and "valid_referers" directives support
5084 regular expressions.
5085
5086 *) Feature: the "server" directive in the "upstream" context supports
5087 the "backup" parameter.
5088
5089 *) Feature: the ngx_http_perl_module supports the
5090 $r->discard_request_body.
5091
5092 *) Feature: the "add_header Last-Modified ..." directive changes the
5093 "Last-Modified" response header line.
5094
5095 *) Bugfix: if a response different than 200 was returned to a request
5096 with body and connection went to the keep-alive state after the
5097 request, then nginx returned 400 for the next request.
5098
5099 *) Bugfix: a segmentation fault occurred in worker process if invalid
5100 address was set in the "auth_http" directive.
5101
5102 *) Bugfix: now nginx uses default listen backlog value 511 on all
5103 platforms except FreeBSD.
5104 Thanks to Jiang Hong.
5105
5106 *) Bugfix: a worker process may got caught in an endless loop, if a
5107 "server" inside "upstream" block was marked as "down"; the bug had
5108 appeared in 0.6.6.
5109
5110 *) Bugfix: now Solaris sendfilev() is not used to transfer the client
5111 request body to FastCGI-server via the unix domain socket.
5112
5113
5114 Changes with nginx 0.6.6 30 Jul 2007
5115
5116 *) Feature: the --sysconfdir=PATH option in configure.
5117
5118 *) Feature: named locations.
5119
5120 *) Feature: the $args variable can be set with the "set" directive.
5121
5122 *) Feature: the $is_args variable.
5123
5124 *) Bugfix: fair big weight upstream balancer.
5125
5126 *) Bugfix: if a client has closed connection to mail proxy then nginx
5127 might not close connection to backend.
5128
5129 *) Bugfix: if the same host without specified port was used as backend
5130 for HTTP and HTTPS, then nginx used only one port - 80 or 443.
5131
5132 *) Bugfix: fix building on Solaris/amd64 by Sun Studio 11 and early
5133 versions; the bug had appeared in 0.6.4.
5134
5135
5136 Changes with nginx 0.6.5 23 Jul 2007
5137
5138 *) Feature: $nginx_version variable.
5139 Thanks to Nick S. Grechukh.
5140
5141 *) Feature: the mail proxy supports AUTHENTICATE in IMAP mode.
5142 Thanks to Maxim Dounin.
5143
5144 *) Feature: the mail proxy supports STARTTLS in SMTP mode.
5145 Thanks to Maxim Dounin.
5146
5147 *) Bugfix: now nginx escapes space in $memcached_key variable.
5148
5149 *) Bugfix: nginx was incorrectly built by Sun Studio on Solaris/amd64.
5150 Thanks to Jiang Hong.
5151
5152 *) Bugfix: of minor potential bugs.
5153 Thanks to Coverity's Scan.
5154
5155
5156 Changes with nginx 0.6.4 17 Jul 2007
5157
5158 *) Security: the "msie_refresh" directive allowed XSS.
5159 Thanks to Maxim Boguk.
5160
5161 *) Change: the "proxy_store" and "fastcgi_store" directives were
5162 changed.
5163
5164 *) Feature: the "proxy_store_access" and "fastcgi_store_access"
5165 directives.
5166
5167 *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun
5168 Studio.
5169 Thanks to Andrei Nigmatulin.
5170
5171 *) Workaround: for Sun Studio 12.
5172 Thanks to Jiang Hong.
5173
5174
5175 Changes with nginx 0.6.3 12 Jul 2007
5176
5177 *) Feature: the "proxy_store" and "fastcgi_store" directives.
5178
5179 *) Bugfix: a segmentation fault might occur in worker process if the
5180 "auth_http_header" directive was used.
5181 Thanks to Maxim Dounin.
5182
5183 *) Bugfix: a segmentation fault occurred in worker process if the
5184 CRAM-MD5 authentication method was used, but it was not enabled.
5185
5186 *) Bugfix: a segmentation fault might occur in worker process when the
5187 HTTPS protocol was used in the "proxy_pass" directive.
5188
5189 *) Bugfix: a segmentation fault might occur in worker process if the
5190 eventport method was used.
5191
5192 *) Bugfix: the "proxy_ignore_client_abort" and
5193 "fastcgi_ignore_client_abort" directives did not work; the bug had
5194 appeared in 0.5.13.
5195
5196
5197 Changes with nginx 0.6.2 09 Jul 2007
5198
5199 *) Bugfix: if the FastCGI header was split in records, then nginx passed
5200 garbage in the header to a client.
5201
5202
5203 Changes with nginx 0.6.1 17 Jun 2007
5204
5205 *) Bugfix: in SSI parsing.
5206
5207 *) Bugfix: if remote SSI subrequest was used, then posterior local file
5208 subrequest might transferred to client in wrong order.
5209
5210 *) Bugfix: large SSI inclusions buffered in temporary files were
5211 truncated.
5212
5213 *) Bugfix: the perl $$ variable value in ngx_http_perl_module was equal
5214 to the master process identification number.
5215
5216
5217 Changes with nginx 0.6.0 14 Jun 2007
5218
5219 *) Feature: the "server_name", "map", and "valid_referers" directives
5220 support the "www.example.*" wildcards.
5221
5222
5223 Changes with nginx 0.5.25 11 Jun 2007
5224
5225 *) Bugfix: nginx could not be built with the
5226 --without-http_rewrite_module parameter; the bug had appeared in
5227 0.5.24.
5228
5229
5230 Changes with nginx 0.5.24 06 Jun 2007
5231
5232 *) Security: the "ssl_verify_client" directive did not work if request
5233 was made using HTTP/0.9.
5234
5235 *) Bugfix: a part of response body might be passed uncompressed if gzip
5236 was used; the bug had appeared in 0.5.23.
5237
5238
5239 Changes with nginx 0.5.23 04 Jun 2007
5240
5241 *) Feature: the ngx_http_ssl_module supports Server Name Indication TLS
5242 extension.
5243
5244 *) Feature: the "fastcgi_catch_stderr" directive.
5245 Thanks to Nick S. Grechukh, OWOX project.
5246
5247 *) Bugfix: a segmentation fault occurred in master process if two
5248 virtual servers should bind() to the overlapping ports.
5249
5250 *) Bugfix: if nginx was built with ngx_http_perl_module and perl
5251 supported threads, then during second reconfiguration the error
5252 messages "panic: MUTEX_LOCK" and "perl_parse() failed" were issued.
5253
5254 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
5255
5256
5257 Changes with nginx 0.5.22 29 May 2007
5258
5259 *) Bugfix: a big request body might not be passed to backend; the bug
5260 had appeared in 0.5.21.
5261
5262
5263 Changes with nginx 0.5.21 28 May 2007
5264
5265 *) Bugfix: if server has more than about ten locations, then regex
5266 locations might be chosen not in that order as they were specified.
5267
5268 *) Bugfix: a worker process may got caught in an endless loop on 64-bit
5269 platform, if the 33-rd or next in succession backend has failed.
5270 Thanks to Anton Povarov.
5271
5272 *) Bugfix: a bus error might occur on Solaris/sparc64 if the PCRE
5273 library was used.
5274 Thanks to Andrei Nigmatulin.
5275
5276 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
5277
5278
5279 Changes with nginx 0.5.20 07 May 2007
5280
5281 *) Feature: the "sendfile_max_chunk" directive.
5282
5283 *) Feature: the "$http_...", "$sent_http_...", and "$upstream_http_..."
5284 variables may be changed using the "set" directive.
5285
5286 *) Bugfix: a segmentation fault might occur in worker process if the SSI
5287 command 'if expr="$var = /"' was used.
5288
5289 *) Bugfix: trailing boundary of multipart range response was transferred
5290 incorrectly.
5291 Thanks to Evan Miller.
5292
5293 *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun
5294 Studio.
5295 Thanks to Andrei Nigmatulin.
5296
5297 *) Bugfix: the ngx_http_perl_module could not be built by Solaris make.
5298 Thanks to Andrei Nigmatulin.
5299
5300
5301 Changes with nginx 0.5.19 24 Apr 2007
5302
5303 *) Change: now the $request_time variable has millisecond precision.
5304
5305 *) Change: the method $r->rflush of ngx_http_perl_module was renamed to
5306 the $r->flush.
5307
5308 *) Feature: the $upstream_addr variable.
5309
5310 *) Feature: the "proxy_headers_hash_max_size" and
5311 "proxy_headers_hash_bucket_size" directives.
5312 Thanks to Volodymyr Kostyrko.
5313
5314 *) Bugfix: the files more than 2G could not be transferred using
5315 sendfile and limit_rate on 64-bit platforms.
5316
5317 *) Bugfix: the files more than 2G could not be transferred using
5318 sendfile on 64-bit Linux.
5319
5320
5321 Changes with nginx 0.5.18 19 Apr 2007
5322
5323 *) Feature: the ngx_http_sub_filter_module.
5324
5325 *) Feature: the "$upstream_http_..." variables.
5326
5327 *) Feature: now the $upstream_status and $upstream_response_time
5328 variables keep data about all upstreams before X-Accel-Redirect.
5329
5330 *) Bugfix: a segmentation fault occurred in master process after first
5331 reconfiguration and receiving any signal if nginx was built with
5332 ngx_http_perl_module and perl did not support multiplicity; the bug
5333 had appeared in 0.5.9.
5334
5335 *) Bugfix: if perl did not support multiplicity, then after
5336 reconfiguration perl code did not work; the bug had appeared in
5337 0.3.38.
5338
5339
5340 Changes with nginx 0.5.17 02 Apr 2007
5341
5342 *) Change: now nginx always returns the 405 status for the TRACE method.
5343
5344 *) Feature: now nginx supports the "include" directive inside the
5345 "types" block.
5346
5347 *) Bugfix: the $document_root variable usage in the "root" and "alias"
5348 directives is disabled: this caused recursive stack overflow.
5349
5350 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
5351
5352 *) Bugfix: in some cases non-cacheable variables (such as $uri variable)
5353 returned old cached value.
5354
5355
5356 Changes with nginx 0.5.16 26 Mar 2007
5357
5358 *) Bugfix: the C-class network was not used as hash key in the "ip_hash"
5359 directive.
5360 Thanks to Pavel Yarkovoy.
5361
5362 *) Bugfix: a segmentation fault might occur in worker process if a
5363 charset was set in the "Content-Type" header line and the line has
5364 trailing ";"; the bug had appeared in 0.3.50.
5365
5366 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was
5367 used and a request body written in a temporary file was multiple of
5368 32K.
5369
5370 *) Bugfix: nginx could not be built on Solaris without the --with-debug
5371 option; the bug had appeared in 0.5.15.
5372
5373
5374 Changes with nginx 0.5.15 19 Mar 2007
5375
5376 *) Feature: the mail proxy supports authenticated SMTP proxying and the
5377 "smtp_auth", "smtp_capabilities", and "xclient" directives.
5378 Thanks to Anton Yuzhaninov and Maxim Dounin.
5379
5380 *) Feature: now the keep-alive connections are closed just after
5381 receiving the reconfiguration signal.
5382
5383 *) Change: the "imap" and "auth" directives were renamed to the "mail"
5384 and "pop3_auth" directives.
5385
5386 *) Bugfix: a segmentation fault occurred in worker process if the
5387 CRAM-MD5 authentication method was used and the APOP method was
5388 disabled.
5389
5390 *) Bugfix: if the "starttls only" directive was used in POP3 protocol,
5391 then nginx allowed authentication without switching to the SSL mode.
5392
5393 *) Bugfix: worker processes did not exit after reconfiguration and did
5394 not rotate logs if the eventport method was used.
5395
5396 *) Bugfix: a worker process may got caught in an endless loop, if the
5397 "ip_hash" directive was used.
5398
5399 *) Bugfix: now nginx does not log some alerts if eventport or /dev/poll
5400 methods are used.
5401
5402
5403 Changes with nginx 0.5.14 23 Feb 2007
5404
5405 *) Bugfix: nginx ignored superfluous closing "}" in the end of
5406 configuration file.
5407
5408
5409 Changes with nginx 0.5.13 19 Feb 2007
5410
5411 *) Feature: the COPY and MOVE methods.
5412
5413 *) Bugfix: the ngx_http_realip_module set garbage for requests passed
5414 via keep-alive connection.
5415
5416 *) Bugfix: nginx did not work on big-endian 64-bit Linux.
5417 Thanks to Andrei Nigmatulin.
5418
5419 *) Bugfix: now when IMAP/POP3 proxy receives too long command it closes
5420 the connection right away, but not after timeout.
5421
5422 *) Bugfix: if the "epoll" method was used and a client closed a
5423 connection prematurely, then nginx closed the connection after a send
5424 timeout only.
5425
5426 *) Bugfix: nginx could not be built on platforms different from i386,
5427 amd64, sparc, and ppc; the bug had appeared in 0.5.8.
5428
5429
5430 Changes with nginx 0.5.12 12 Feb 2007
5431
5432 *) Bugfix: nginx could not be built on platforms different from i386,
5433 amd64, sparc, and ppc; the bug had appeared in 0.5.8.
5434
5435 *) Bugfix: a segmentation fault might occur in worker process if the
5436 temporary files were used while working with FastCGI server; the bug
5437 had appeared in 0.5.8.
5438
5439 *) Bugfix: a segmentation fault might occur in worker process if the
5440 $fastcgi_script_name variable was logged.
5441
5442 *) Bugfix: ngx_http_perl_module could not be built on Solaris.
5443
5444
5445 Changes with nginx 0.5.11 05 Feb 2007
5446
5447 *) Feature: now configure detects system PCRE library in MacPorts.
5448 Thanks to Chris McGrath.
5449
5450 *) Bugfix: the response was incorrect if several ranges were requested;
5451 the bug had appeared in 0.5.6.
5452
5453 *) Bugfix: the "create_full_put_path" directive could not create the
5454 intermediate directories if no "dav_access" directive was set.
5455 Thanks to Evan Miller.
5456
5457 *) Bugfix: the "0" response code might be logged in the access_log
5458 instead of the "400" and "408" error codes.
5459
5460 *) Bugfix: a segmentation fault might occur in worker process if nginx
5461 was built with -O2 optimization.
5462
5463
5464 Changes with nginx 0.5.10 26 Jan 2007
5465
5466 *) Bugfix: while online executable file upgrade the new master process
5467 did not inherit the listening sockets; the bug had appeared in 0.5.9.
5468
5469 *) Bugfix: a segmentation fault might occur in worker process if nginx
5470 was built with -O2 optimization; the bug had appeared in 0.5.1.
5471
5472
5473 Changes with nginx 0.5.9 25 Jan 2007
5474
5475 *) Change: now the ngx_http_memcached_module uses the $memcached_key
5476 variable value as a key.
5477
5478 *) Feature: the $memcached_key variable.
5479
5480 *) Feature: the "clean" parameter in the "client_body_in_file_only"
5481 directive.
5482
5483 *) Feature: the "env" directive.
5484
5485 *) Feature: the "sendfile" directive is available inside the "if" block.
5486
5487 *) Feature: now on failure of the writing to access nginx logs a message
5488 to error_log, but not more often than once a minute.
5489
5490 *) Bugfix: the "access_log off" directive did not always turn off the
5491 logging.
5492
5493
5494 Changes with nginx 0.5.8 19 Jan 2007
5495
5496 *) Bugfix: a segmentation fault might occur if
5497 "client_body_in_file_only on" was used and a request body was small.
5498
5499 *) Bugfix: a segmentation fault occurred if
5500 "client_body_in_file_only on" and "proxy_pass_request_body off" or
5501 "fastcgi_pass_request_body off" directives were used, and nginx
5502 switched to a next upstream.
5503
5504 *) Bugfix: if the "proxy_buffering off" directive was used and a client
5505 connection was non-active, then the connection was closed after send
5506 timeout; the bug had appeared in 0.4.7.
5507
5508 *) Bugfix: if the "epoll" method was used and a client closed a
5509 connection prematurely, then nginx closed the connection after a send
5510 timeout only.
5511
5512 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was
5513 used.
5514
5515 *) Bugfixes in the "limit_zone" directive.
5516
5517
5518 Changes with nginx 0.5.7 15 Jan 2007
5519
5520 *) Feature: the ssl_session_cache storage optimization.
5521
5522 *) Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
5523
5524 *) Bugfix: the segmentation fault was occurred on start or while
5525 reconfiguration if the "ssl_session_cache" or "limit_zone" directives
5526 were used on 64-bit platforms.
5527
5528 *) Bugfix: a segmentation fault occurred if the "add_before_body" or
5529 "add_after_body" directives were used and there was no "Content-Type"
5530 header line in response.
5531
5532 *) Bugfix: the OpenSSL library was always built with the threads
5533 support.
5534 Thanks to Den Ivanov.
5535
5536 *) Bugfix: the PCRE-6.5+ library and the icc compiler compatibility.
5537
5538
5539 Changes with nginx 0.5.6 09 Jan 2007
5540
5541 *) Change: now the ngx_http_index_module ignores all methods except the
5542 GET, HEAD, and POST methods.
5543
5544 *) Feature: the ngx_http_limit_zone_module.
5545
5546 *) Feature: the $binary_remote_addr variable.
5547
5548 *) Feature: the "ssl_session_cache" directives of the
5549 ngx_http_ssl_module and ngx_imap_ssl_module.
5550
5551 *) Feature: the DELETE method supports recursive removal.
5552
5553 *) Bugfix: the byte-ranges were transferred incorrectly if the
5554 $r->sendfile() was used.
5555
5556
5557 Changes with nginx 0.5.5 24 Dec 2006
5558
5559 *) Change: the -v switch does not show compiler information any more.
5560
5561 *) Feature: the -V switch.
5562
5563 *) Feature: the "worker_rlimit_core" directive supports size in K, M,
5564 and G.
5565
5566 *) Bugfix: the nginx.pm module now could be installed by an unprivileged
5567 user.
5568
5569 *) Bugfix: a segmentation fault might occur if the $r->request_body or
5570 $r->request_body_file methods were used.
5571
5572 *) Bugfix: the ppc platform specific bugs.
5573
5574
5575 Changes with nginx 0.5.4 15 Dec 2006
5576
5577 *) Feature: the "perl" directive may be used inside the "limit_except"
5578 block.
5579
5580 *) Bugfix: the ngx_http_dav_module required the "Date" request header
5581 line for the DELETE method.
5582
5583 *) Bugfix: if one only parameter was used in the "dav_access" directive,
5584 then nginx might report about configuration error.
5585
5586 *) Bugfix: a segmentation fault might occur if the $host variable was
5587 used; the bug had appeared in 0.4.14.
5588
5589
5590 Changes with nginx 0.5.3 13 Dec 2006
5591
5592 *) Feature: the ngx_http_perl_module supports the $r->status,
5593 $r->log_error, and $r->sleep methods.
5594
5595 *) Feature: the $r->variable method supports variables that do not exist
5596 in nginx configuration.
5597
5598 *) Bugfix: the $r->has_request_body method did not work.
5599
5600
5601 Changes with nginx 0.5.2 11 Dec 2006
5602
5603 *) Bugfix: if the "proxy_pass" directive used the name of the "upstream"
5604 block, then nginx tried to resolve the name; the bug had appeared in
5605 0.5.1.
5606
5607
5608 Changes with nginx 0.5.1 11 Dec 2006
5609
5610 *) Bugfix: the "post_action" directive might not run after a
5611 unsuccessful completion of a request.
5612
5613 *) Workaround: for Eudora for Mac; the bug had appeared in 0.4.11.
5614 Thanks to Bron Gondwana.
5615
5616 *) Bugfix: if the "upstream" name was used in the "fastcgi_pass", then
5617 the message "no port in upstream" was issued; the bug had appeared in
5618 0.5.0.
5619
5620 *) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the
5621 same servers but different ports, then these directives uses the
5622 first described port; the bug had appeared in 0.5.0.
5623
5624 *) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the
5625 unix domain sockets, then these directives used first described
5626 socket; the bug had appeared in 0.5.0.
5627
5628 *) Bugfix: ngx_http_auth_basic_module ignored the user if it was in the
5629 last line in the password file and there was no the carriage return,
5630 the line feed, or the ":" symbol after the password.
5631
5632 *) Bugfix: the $upstream_response_time variable might be equal to
5633 "0.000", although response time was more than 1 millisecond.
5634
5635
5636 Changes with nginx 0.5.0 04 Dec 2006
5637
5638 *) Change: the parameters in the "%name" form in the "log_format"
5639 directive are not supported anymore.
5640
5641 *) Change: the "proxy_upstream_max_fails",
5642 "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails",
5643 "fastcgi_upstream_fail_timeout", "memcached_upstream_max_fails", and
5644 "memcached_upstream_fail_timeout" directives are not supported
5645 anymore.
5646
5647 *) Feature: the "server" directive in the "upstream" context supports
5648 the "max_fails", "fail_timeout", and "down" parameters.
5649
5650 *) Feature: the "ip_hash" directive inside the "upstream" block.
5651
5652 *) Feature: the WAIT status in the "Auth-Status" header line of the
5653 IMAP/POP3 proxy authentication server response.
5654
5655 *) Bugfix: nginx could not be built on 64-bit platforms; the bug had
5656 appeared in 0.4.14.
5657
5658
5659 Changes with nginx 0.4.14 27 Nov 2006
5660
5661 *) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
5662
5663 *) Feature: now configure detects system PCRE library on FreeBSD, Linux,
5664 and NetBSD.
5665
5666 *) Bugfix: ngx_http_perl_module did not work with perl built with the
5667 threads support; the bug had appeared in 0.3.38.
5668
5669 *) Bugfix: ngx_http_perl_module did not work if perl was called
5670 recursively.
5671
5672 *) Bugfix: nginx ignored a host name in a request line.
5673
5674 *) Bugfix: a worker process may got caught in an endless loop, if a
5675 FastCGI server sent too many data to the stderr.
5676
5677 *) Bugfix: the $upstream_response_time variable may be negative if the
5678 system time was changed backward.
5679
5680 *) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3
5681 proxy authentication server when POP3 was used.
5682
5683 *) Bugfix: a segmentation fault might occur if connect to IMAP/POP3
5684 proxy authentication server failed.
5685
5686
5687 Changes with nginx 0.4.13 15 Nov 2006
5688
5689 *) Feature: the "proxy_pass" directive may be used inside the
5690 "limit_except" block.
5691
5692 *) Feature: the "limit_except" directive supports all WebDAV methods.
5693
5694 *) Bugfix: if the "add_before_body" directive was used without the
5695 "add_after_body" directive, then a response did not transferred
5696 complete.
5697
5698 *) Bugfix: a large request body did not receive if the epoll method and
5699 the deferred accept() were used.
5700
5701 *) Bugfix: a charset could not be set for ngx_http_autoindex_module
5702 responses; the bug had appeared in 0.3.50.
5703
5704 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was
5705 used;
5706
5707 *) Bugfix: the --group= configuration parameter was ignored.
5708 Thanks to Thomas Moschny.
5709
5710 *) Bugfix: the 50th subrequest in SSI response did not work; the bug had
5711 appeared in 0.3.50.
5712
5713
5714 Changes with nginx 0.4.12 31 Oct 2006
5715
5716 *) Feature: the ngx_http_perl_module supports the $r->variable method.
5717
5718 *) Bugfix: if a big static file was included using SSI in a response,
5719 then the response may be transferred incomplete.
5720
5721 *) Bugfix: nginx did not omit the "#fragment" part in URI.
5722
5723
5724 Changes with nginx 0.4.11 25 Oct 2006
5725
5726 *) Feature: the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5.
5727
5728 *) Feature: the ngx_http_perl_module supports the $r->allow_ranges
5729 method.
5730
5731 *) Bugfix: if the APOP was enabled in the POP3 proxy, then the USER/PASS
5732 commands might not work; the bug had appeared in 0.4.10.
5733
5734
5735 Changes with nginx 0.4.10 23 Oct 2006
5736
5737 *) Feature: the POP3 proxy supports the APOP command.
5738
5739 *) Bugfix: if the select, poll or /dev/poll methods were used, then
5740 while waiting authentication server response the IMAP/POP3 proxy
5741 hogged CPU.
5742
5743 *) Bugfix: a segmentation fault might occur if the $server_addr variable
5744 was used in the "map" directive.
5745
5746 *) Bugfix: the ngx_http_flv_module did not support the byte ranges for
5747 full responses; the bug had appeared in 0.4.7.
5748
5749 *) Bugfix: nginx could not be built on Debian amd64; the bug had
5750 appeared in 0.4.9.
5751
5752
5753 Changes with nginx 0.4.9 13 Oct 2006
5754
5755 *) Feature: the "set" parameter in the "include" SSI command.
5756
5757 *) Feature: the ngx_http_perl_module now tests the nginx.pm module
5758 version.
5759
5760
5761 Changes with nginx 0.4.8 11 Oct 2006
5762
5763 *) Bugfix: if an "include" SSI command were before another "include" SSI
5764 command with a "wait" parameter, then the "wait" parameter might not
5765 work.
5766
5767 *) Bugfix: the ngx_http_flv_module added the FLV header to the full
5768 responses.
5769 Thanks to Alexey Kovyrin.
5770
5771
5772 Changes with nginx 0.4.7 10 Oct 2006
5773
5774 *) Feature: the ngx_http_flv_module.
5775
5776 *) Feature: the $request_body_file variable.
5777
5778 *) Feature: the "charset" and "source_charset" directives support the
5779 variables.
5780
5781 *) Bugfix: if an "include" SSI command were before another "include" SSI
5782 command with a "wait" parameter, then the "wait" parameter might not
5783 work.
5784
5785 *) Bugfix: if the "proxy_buffering off" directive was used or while
5786 working with memcached the connections might not be closed on
5787 timeout.
5788
5789 *) Bugfix: nginx did not run on 64-bit platforms except amd64, sparc64,
5790 and ppc64.
5791
5792
5793 Changes with nginx 0.4.6 06 Oct 2006
5794
5795 *) Bugfix: nginx did not run on 64-bit platforms except amd64, sparc64,
5796 and ppc64.
5797
5798 *) Bugfix: nginx sent the chunked response for HTTP/1.1 request,
5799 if its length was set by text string in the
5800 $r->headers_out("Content-Length", ...) method.
5801
5802 *) Bugfix: after redirecting error by an "error_page" directive any
5803 ngx_http_rewrite_module directive returned this error code; the bug
5804 had appeared in 0.4.4.
5805
5806
5807 Changes with nginx 0.4.5 02 Oct 2006
5808
5809 *) Bugfix: nginx could not be built on Linux and Solaris; the bug had
5810 appeared in 0.4.4.
5811
5812
5813 Changes with nginx 0.4.4 02 Oct 2006
5814
5815 *) Feature: the $scheme variable.
5816
5817 *) Feature: the "expires" directive supports the "max" parameter.
5818
5819 *) Feature: the "include" directive supports the "*" mask.
5820 Thanks to Jonathan Dance.
5821
5822 *) Bugfix: the "return" directive always overrode the "error_page"
5823 response code redirected by the "error_page" directive.
5824
5825 *) Bugfix: a segmentation fault occurred if zero-length body was in PUT
5826 method.
5827
5828 *) Bugfix: the redirect was changed incorrectly if the variables were
5829 used in the "proxy_redirect" directive.
5830
5831
5832 Changes with nginx 0.4.3 26 Sep 2006
5833
5834 *) Change: now the 499 error could not be redirected using an
5835 "error_page" directive.
5836
5837 *) Feature: the Solaris 10 event ports support.
5838
5839 *) Feature: the ngx_http_browser_module.
5840
5841 *) Bugfix: a segmentation fault may occur while redirecting the 400
5842 error to the proxied server using a "proxy_pass" directive.
5843
5844 *) Bugfix: a segmentation fault occurred if an unix domain socket was
5845 used in a "proxy_pass" directive; the bug had appeared in 0.3.47.
5846
5847 *) Bugfix: SSI did work with memcached and nonbuffered responses.
5848
5849 *) Workaround: of the Sun Studio PAUSE hardware capability bug.
5850
5851
5852 Changes with nginx 0.4.2 14 Sep 2006
5853
5854 *) Bugfix: the O_NOATIME flag support on Linux was canceled; the bug had
5855 appeared in 0.4.1.
5856
5857
5858 Changes with nginx 0.4.1 14 Sep 2006
5859
5860 *) Bugfix: the DragonFlyBSD compatibility.
5861 Thanks to Pavel Nazarov.
5862
5863 *) Workaround: of bug in 64-bit Linux sendfile(), when file is more than
5864 2G.
5865
5866 *) Feature: now on Linux nginx uses O_NOATIME flag for static requests.
5867 Thanks to Yusuf Goolamabbas.
5868
5869
5870 Changes with nginx 0.4.0 30 Aug 2006
5871
5872 *) Change in internal API: the HTTP modules initialization was moved
5873 from the init module phase to the HTTP postconfiguration phase.
5874
5875 *) Change: now the request body is not read beforehand for the
5876 ngx_http_perl_module: it's required to start the reading using the
5877 $r->has_request_body method.
5878
5879 *) Feature: the ngx_http_perl_module supports the DECLINED return code.
5880
5881 *) Feature: the ngx_http_dav_module supports the incoming "Date" header
5882 line for the PUT method.
5883
5884 *) Feature: the "ssi" directive is available inside the "if" block.
5885
5886 *) Bugfix: a segmentation fault occurred if there was an "index"
5887 directive with variables and the first index name was without
5888 variables; the bug had appeared in 0.1.29.
5889
5890
5891 Changes with nginx 0.3.61 28 Aug 2006
5892
5893 *) Change: now the "tcp_nodelay" directive is turned on by default.
5894
5895 *) Feature: the "msie_refresh" directive.
5896
5897 *) Feature: the "recursive_error_pages" directive.
5898
5899 *) Bugfix: the "rewrite" directive returned incorrect redirect, if the
5900 redirect had the captured escaped symbols from original URI.
5901
5902
5903 Changes with nginx 0.3.60 18 Aug 2006
5904
5905 *) Bugfix: a worker process may got caught in an endless loop while an
5906 error redirection; the bug had appeared in 0.3.59.
5907
5908
5909 Changes with nginx 0.3.59 16 Aug 2006
5910
5911 *) Feature: now is possible to do several redirection using the
5912 "error_page" directive.
5913
5914 *) Bugfix: the "dav_access" directive did not support three parameters.
5915
5916 *) Bugfix: the "error_page" directive did not changes the "Content-Type"
5917 header line after the "X-Accel-Redirect" was used; the bug had
5918 appeared in 0.3.58.
5919
5920
5921 Changes with nginx 0.3.58 14 Aug 2006
5922
5923 *) Feature: the "error_page" directive supports the variables.
5924
5925 *) Change: now the procfs interface instead of sysctl is used on Linux.
5926
5927 *) Change: now the "Content-Type" header line is inherited from first
5928 response when the "X-Accel-Redirect" was used.
5929
5930 *) Bugfix: the "error_page" directive did not redirect the 413 error.
5931
5932 *) Bugfix: the trailing "?" did not remove old arguments if no new
5933 arguments were added to a rewritten URI.
5934
5935 *) Bugfix: nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
5936
5937
5938 Changes with nginx 0.3.57 09 Aug 2006
5939
5940 *) Feature: the $ssl_client_serial variable.
5941
5942 *) Bugfix: in the "!-e" operator of the "if" directive.
5943 Thanks to Andrian Budanstov.
5944
5945 *) Bugfix: while a client certificate verification nginx did not send to
5946 a client the required certificates information.
5947
5948 *) Bugfix: the $document_root variable did not support the variables in
5949 the "root" directive.
5950
5951
5952 Changes with nginx 0.3.56 04 Aug 2006
5953
5954 *) Feature: the "dav_access" directive.
5955
5956 *) Feature: the "if" directive supports the "-d", "!-d", "-e", "!-e",
5957 "-x", and "!-x" operators.
5958
5959 *) Bugfix: a segmentation fault occurred if a request returned a
5960 redirect and some sent to client header lines were logged in the
5961 access log.
5962
5963
5964 Changes with nginx 0.3.55 28 Jul 2006
5965
5966 *) Feature: the "stub" parameter in the "include" SSI command.
5967
5968 *) Feature: the "block" SSI command.
5969
5970 *) Feature: the unicode2nginx script was added to contrib.
5971
5972 *) Bugfix: if a "root" was specified by variable only, then the root was
5973 relative to a server prefix.
5974
5975 *) Bugfix: if the request contained "//" or "/./" and escaped symbols
5976 after them, then the proxied request was sent unescaped.
5977
5978 *) Bugfix: the $r->header_in("Cookie") of the ngx_http_perl_module now
5979 returns all "Cookie" header lines.
5980
5981 *) Bugfix: a segmentation fault occurred if
5982 "client_body_in_file_only on" was used and nginx switched to a next
5983 upstream.
5984
5985 *) Bugfix: on some condition while reconfiguration character codes
5986 inside the "charset_map" may be treated invalid; the bug had appeared
5987 in 0.3.50.
5988
5989
5990 Changes with nginx 0.3.54 11 Jul 2006
5991
5992 *) Feature: nginx now logs the subrequest information to the error log.
5993
5994 *) Feature: the "proxy_next_upstream", "fastcgi_next_upstream", and
5995 "memcached_next_upstream" directives support the "off" parameter.
5996
5997 *) Feature: the "debug_connection" directive supports the CIDR address
5998 form.
5999
6000 *) Bugfix: if a response of proxied server or FastCGI server was
6001 converted from UTF-8 or back, then it may be transferred incomplete.
6002
6003 *) Bugfix: the $upstream_response_time variable had the time of the
6004 first request to a backend only.
6005
6006 *) Bugfix: nginx could not be built on amd64 platform; the bug had
6007 appeared in 0.3.53.
6008
6009
6010 Changes with nginx 0.3.53 07 Jul 2006
6011
6012 *) Change: the "add_header" directive adds the string to 204, 301, and
6013 302 responses.
6014
6015 *) Feature: the "server" directive in the "upstream" context supports
6016 the "weight" parameter.
6017
6018 *) Feature: the "server_name" directive supports the "*" wildcard.
6019
6020 *) Feature: nginx supports the request body size more than 2G.
6021
6022 *) Bugfix: if a client was successfully authorized using "satisfy_any
6023 on", then anyway the message "access forbidden by rule" was written
6024 in the log.
6025
6026 *) Bugfix: the "PUT" method may erroneously not create a file and return
6027 the 409 code.
6028
6029 *) Bugfix: if the IMAP/POP3 backend returned an error, then nginx
6030 continued proxying anyway.
6031
6032
6033 Changes with nginx 0.3.52 03 Jul 2006
6034
6035 *) Change: the ngx_http_index_module behavior for the "POST /" requests
6036 is reverted to the 0.3.40 version state: the module now does not
6037 return the 405 error.
6038
6039 *) Bugfix: the worker process may got caught in an endless loop if the
6040 limit rate was used; the bug had appeared in 0.3.37.
6041
6042 *) Bugfix: ngx_http_charset_module logged "unknown charset" alert, even
6043 if the recoding was not needed; the bug had appeared in 0.3.50.
6044
6045 *) Bugfix: if a code response of the PUT request was 409, then a
6046 temporary file was not removed.
6047
6048
6049 Changes with nginx 0.3.51 30 Jun 2006
6050
6051 *) Bugfix: the "<" symbols might disappeared some conditions in the SSI;
6052 the bug had appeared in 0.3.50.
6053
6054
6055 Changes with nginx 0.3.50 28 Jun 2006
6056
6057 *) Change: the "proxy_redirect_errors" and "fastcgi_redirect_errors"
6058 directives was renamed to the "proxy_intercept_errors" and
6059 "fastcgi_intercept_errors" directives.
6060
6061 *) Feature: the ngx_http_charset_module supports the recoding from the
6062 single byte encodings to the UTF-8 encoding and back.
6063
6064 *) Feature: the "X-Accel-Charset" response header line is supported in
6065 proxy and FastCGI mode.
6066
6067 *) Bugfix: the "\" escape symbol in the "\"" and "\'" pairs in the SSI
6068 command was removed only if the command also has the "$" symbol.
6069
6070 *) Bugfix: the "<!--" string might be added on some conditions in the
6071 SSI after inclusion.
6072
6073 *) Bugfix: if the "Content-Length: 0" header line was in response, then
6074 in nonbuffered proxying mode the client connection was not closed.
6075
6076
6077 Changes with nginx 0.3.49 31 May 2006
6078
6079 *) Bugfix: in the "set" directive.
6080
6081 *) Bugfix: if two or more FastCGI subrequests was in SSI, then first
6082 subrequest output was included instead of second and following
6083 subrequests.
6084
6085
6086 Changes with nginx 0.3.48 29 May 2006
6087
6088 *) Change: now the ngx_http_charset_module works for subrequests, if the
6089 response has no "Content-Type" header line.
6090
6091 *) Bugfix: if the "proxy_pass" directive has no URI part, then the
6092 "proxy_redirect default" directive add the unnecessary slash in start
6093 of the rewritten redirect.
6094
6095 *) Bugfix: the internal redirect always transform client's HTTP method
6096 to GET, now the transformation is made for the "X-Accel-Redirect"
6097 redirects only and if the method is not HEAD; the bug had appeared in
6098 0.3.42.
6099
6100 *) Bugfix: the ngx_http_perl_module could not be built, if the perl was
6101 built with the threads support; the bug had appeared in 0.3.46.
6102
6103
6104 Changes with nginx 0.3.47 23 May 2006
6105
6106 *) Feature: the "upstream" directive.
6107
6108 *) Change: now the "\" escape symbol in the "\"" and "\'" pairs in the
6109 SSI command is always removed.
6110
6111
6112 Changes with nginx 0.3.46 11 May 2006
6113
6114 *) Feature: the "proxy_hide_header", "proxy_pass_header",
6115 "fastcgi_hide_header", and "fastcgi_pass_header" directives.
6116
6117 *) Change: the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and
6118 "proxy_pass_server" directives were canceled.
6119
6120 *) Feature: the "X-Accel-Buffering" response header line is supported in
6121 proxy mode.
6122
6123 *) Bugfix: the reconfiguration bug and memory leaks in the
6124 ngx_http_perl_module.
6125
6126
6127 Changes with nginx 0.3.45 06 May 2006
6128
6129 *) Feature: the "ssl_verify_client", "ssl_verify_depth", and
6130 "ssl_client_certificate" directives.
6131
6132 *) Change: the $request_method variable now returns the main request
6133 method.
6134
6135 *) Change: the ° symbol codes were changed in koi-win conversion
6136 table.
6137
6138 *) Feature: the euro and N symbols were added to koi-win conversion
6139 table.
6140
6141 *) Bugfix: if nginx distributed the requests among several backends and
6142 some backend failed, then requests intended for this backend was
6143 directed to one live backend only instead of being distributed among
6144 the rest.
6145
6146
6147 Changes with nginx 0.3.44 04 May 2006
6148
6149 *) Feature: the "wait" parameter in the "include" SSI command.
6150
6151 *) Feature: the Ukrainian and Byelorussian characters were added to
6152 koi-win conversion table.
6153
6154 *) Bugfix: in the SSI.
6155
6156
6157 Changes with nginx 0.3.43 26 Apr 2006
6158
6159 *) Bugfix: in the SSI.
6160
6161
6162 Changes with nginx 0.3.42 26 Apr 2006
6163
6164 *) Feature: the "bind" option of the "listen" directive in IMAP/POP3
6165 proxy.
6166
6167 *) Bugfix: if the same capture in the "rewrite" directive was used more
6168 then once.
6169
6170 *) Bugfix: the $sent_http_content_type, $sent_http_content_length,
6171 $sent_http_last_modified, $sent_http_connection,
6172 $sent_http_keep_alive, and $sent_http_transfer_encoding variables
6173 were not written to access log.
6174
6175 *) Bugfix: the $sent_http_cache_control returned value of the single
6176 "Cache-Control" response header line.
6177
6178
6179 Changes with nginx 0.3.41 21 Apr 2006
6180
6181 *) Feature: the -v switch.
6182
6183 *) Bugfix: the segmentation fault may occurred if the SSI page has
6184 remote subrequests.
6185
6186 *) Bugfix: in FastCGI handling.
6187
6188 *) Bugfix: if the perl modules path was not set using
6189 --with-perl_modules_path=PATH or the "perl_modules", then the
6190 segmentation fault was occurred.
6191
6192
6193 Changes with nginx 0.3.40 19 Apr 2006
6194
6195 *) Feature: the ngx_http_dav_module supports the MKCOL method.
6196
6197 *) Feature: the "create_full_put_path" directive.
6198
6199 *) Feature: the "$limit_rate" variable.
6200
6201
6202 Changes with nginx 0.3.39 17 Apr 2006
6203
6204 *) Feature: the "uninitialized_variable_warn" directive; the logging
6205 level of the "uninitialized variable" message was lowered from
6206 "alert" to "warn".
6207
6208 *) Feature: the "override_charset" directive.
6209
6210 *) Change: now if the unknown variable is used in the "echo" and "if
6211 expr='$name'" SSI-commands, then the "unknown variable" message is
6212 not logged.
6213
6214 *) Bugfix: the active connection counter increased on the exceeding of
6215 the connection limit specified by the "worker_connections" directive;
6216 the bug had appeared in 0.2.0.
6217
6218 *) Bugfix: the limit rate might not work on some condition; the bug had
6219 appeared in 0.3.38.
6220
6221
6222 Changes with nginx 0.3.38 14 Apr 2006
6223
6224 *) Feature: the ngx_http_dav_module.
6225
6226 *) Change: the ngx_http_perl_module optimizations.
6227 Thanks to Sergey Skvortsov.
6228
6229 *) Feature: the ngx_http_perl_module supports the $r->request_body_file
6230 method.
6231
6232 *) Feature: the "client_body_in_file_only" directive.
6233
6234 *) Workaround: now on disk overflow nginx tries to write access logs
6235 once a second only.
6236 Thanks to Anton Yuzhaninov and Maxim Dounin.
6237
6238 *) Bugfix: now the "limit_rate" directive more precisely limits rate if
6239 rate is more than 100 Kbyte/s.
6240 Thanks to ForJest.
6241
6242 *) Bugfix: now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in
6243 login and password to pass authorization server.
6244 Thanks to Maxim Dounin.
6245
6246
6247 Changes with nginx 0.3.37 07 Apr 2006
6248
6249 *) Feature: the "limit_except" directive.
6250
6251 *) Feature: the "if" directive supports the "!~", "!~*", "-f", and "!-f"
6252 operators.
6253
6254 *) Feature: the ngx_http_perl_module supports the $r->request_body
6255 method.
6256
6257 *) Bugfix: in the ngx_http_addition_filter_module.
6258
6259
6260 Changes with nginx 0.3.36 05 Apr 2006
6261
6262 *) Feature: the ngx_http_addition_filter_module.
6263
6264 *) Feature: the "proxy_pass" and "fastcgi_pass" directives may be used
6265 inside the "if" block.
6266
6267 *) Feature: the "proxy_ignore_client_abort" and
6268 "fastcgi_ignore_client_abort" directives.
6269
6270 *) Feature: the "$request_completion" variable.
6271
6272 *) Feature: the ngx_http_perl_module supports the $r->request_method and
6273 $r->remote_addr.
6274
6275 *) Feature: the ngx_http_ssi_module supports the "elif" command.
6276
6277 *) Bugfix: the "\/" string in the expression of the "if" command of the
6278 ngx_http_ssi_module was treated incorrectly.
6279
6280 *) Bugfix: in the regular expressions in the "if" command of the
6281 ngx_http_ssi_module.
6282
6283 *) Bugfix: if the relative path was specified in the
6284 "client_body_temp_path", "proxy_temp_path", "fastcgi_temp_path", and
6285 "perl_modules" directives, then the directory was used relatively to
6286 a current path but not to a server prefix.
6287
6288
6289 Changes with nginx 0.3.35 22 Mar 2006
6290
6291 *) Bugfix: the accept-filter and the TCP_DEFER_ACCEPT option were set
6292 for first "listen" directive only; the bug had appeared in 0.3.31.
6293
6294 *) Bugfix: in the "proxy_pass" directive without the URI part in a
6295 subrequest.
6296
6297
6298 Changes with nginx 0.3.34 21 Mar 2006
6299
6300 *) Feature: the "add_header" directive supports the variables.
6301
6302
6303 Changes with nginx 0.3.33 15 Mar 2006
6304
6305 *) Feature: the "http_503" parameter of the "proxy_next_upstream" or
6306 "fastcgi_next_upstream" directives.
6307
6308 *) Bugfix: ngx_http_perl_module did not work with inlined in the
6309 configuration code, if it was not started with the "sub" word.
6310
6311 *) Bugfix: in the "post_action" directive.
6312
6313
6314 Changes with nginx 0.3.32 11 Mar 2006
6315
6316 *) Bugfix: the debug logging on startup and reconfiguration time was
6317 removed; the bug had appeared in 0.3.31.
6318
6319
6320 Changes with nginx 0.3.31 10 Mar 2006
6321
6322 *) Change: now nginx passes the malformed proxied backend responses.
6323
6324 *) Feature: the "listen" directives support the address in the "*:port"
6325 form.
6326
6327 *) Feature: the EVFILER_TIMER support in MacOSX 10.4.
6328
6329 *) Workaround: for MacOSX 64-bit kernel kqueue millisecond timeout bug.
6330 Thanks to Andrei Nigmatulin.
6331
6332 *) Bugfix: if there were several "listen" directives listening one
6333 various addresses inside one server, then server names like
6334 "*.domain.tld" worked for first address only; the bug had appeared in
6335 0.3.18.
6336
6337 *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive
6338 and the request body was in temporary file then the request was not
6339 transferred.
6340
6341 *) Bugfix: perl 5.8.8 compatibility.
6342
6343
6344 Changes with nginx 0.3.30 22 Feb 2006
6345
6346 *) Change: the ECONNABORTED error log level was changed to "error" from
6347 "crit".
6348
6349 *) Bugfix: the ngx_http_perl_module could not be build without the
6350 ngx_http_ssi_filter_module.
6351
6352 *) Bugfix: nginx could not be built on i386 platform, if the PIC was
6353 used; the bug had appeared in 0.3.27.
6354
6355
6356 Changes with nginx 0.3.29 20 Feb 2006
6357
6358 *) Feature: now nginx uses less memory, if PHP in FastCGI mode sends
6359 many warnings before the response.
6360
6361 *) Bugfix: the "Transfer-Encoding: chunked" header line was issued in
6362 the 204 responses for the HTTP/1.1 requests.
6363
6364 *) Bugfix: nginx returned the 502 response, if the complete response
6365 header lines were transferred in a separate FastCGI records.
6366
6367 *) Bugfix: if the proxied URI was specified in the "post_action"
6368 directive, then it ran only after a successful completion of a
6369 request.
6370
6371
6372 Changes with nginx 0.3.28 16 Feb 2006
6373
6374 *) Feature: the "restrict_host_names" directive was canceled.
6375
6376 *) Feature: the --with-cpu-opt=ppc64 configuration parameter.
6377
6378 *) Bugfix: on some condition the proxied connection with a client was
6379 terminated prematurely.
6380 Thanks to Vladimir Shutoff.
6381
6382 *) Bugfix: the "X-Accel-Limit-Rate" header line was not taken into
6383 account if the request was redirected using the "X-Accel-Redirect"
6384 header line.
6385
6386 *) Bugfix: the "post_action" directive ran only after a successful
6387 completion of a request.
6388
6389 *) Bugfix: the proxied response body generated by the "post_action"
6390 directive was transferred to a client.
6391
6392
6393 Changes with nginx 0.3.27 08 Feb 2006
6394
6395 *) Change: the "variables_hash_max_size" and
6396 "variables_hash_bucket_size" directives.
6397
6398 *) Feature: the $body_bytes_sent variable can be used not only in the
6399 "log_format" directive.
6400
6401 *) Feature: the $ssl_protocol and $ssl_cipher variables.
6402
6403 *) Feature: the cache line size detection for widespread CPUs at start
6404 time.
6405
6406 *) Feature: now the "accept_mutex" directive is supported using fcntl(2)
6407 on platforms different from i386, amd64, sparc64, and ppc.
6408
6409 *) Feature: the "lock_file" directive and the --with-lock-path=PATH
6410 autoconfiguration directive.
6411
6412 *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive
6413 then the requests with the body was not transferred.
6414
6415
6416 Changes with nginx 0.3.26 03 Feb 2006
6417
6418 *) Change: the "optimize_host_names" directive was renamed to the
6419 "optimize_server_names".
6420
6421 *) Bugfix: if in the "proxy_pass" directive was no the URI part, then
6422 the main request URI was transferred to a backend while proxying the
6423 SSI subrequest.
6424
6425
6426 Changes with nginx 0.3.25 01 Feb 2006
6427
6428 *) Bugfix: the segmentation fault was occurred on start or while
6429 reconfiguration if there was invalid configuration; the bug had
6430 appeared in 0.3.24.
6431
6432
6433 Changes with nginx 0.3.24 01 Feb 2006
6434
6435 *) Workaround: for bug in FreeBSD kqueue.
6436
6437 *) Bugfix: now a response generated by the "post_action" directive is
6438 not transferred to a client.
6439
6440 *) Bugfix: the memory leaks were occurring if many log files were used.
6441
6442 *) Bugfix: the first "proxy_redirect" directive was working inside one
6443 location.
6444
6445 *) Bugfix: on 64-bit platforms segmentation fault may occurred on start
6446 if the many names were used in the "server_name" directives; the bug
6447 had appeared in 0.3.18.
6448
6449
6450 Changes with nginx 0.3.23 24 Jan 2006
6451
6452 *) Feature: the "optimize_host_names" directive.
6453
6454 *) Bugfix: in using of the variables in the "path" and "alias"
6455 directives.
6456
6457 *) Bugfix: the ngx_http_perl_module was incorrectly built on Linux and
6458 Solaris.
6459
6460
6461 Changes with nginx 0.3.22 17 Jan 2006
6462
6463 *) Feature: the ngx_http_perl_module supports the $r->args and
6464 $r->unescape methods.
6465
6466 *) Feature: the method $r->query_string of ngx_http_perl_module was
6467 canceled.
6468
6469 *) Bugfix: segmentation fault was occurred if the "none" or "blocked"
6470 values was specified in the "valid_referers" directive; the bug had
6471 appeared in 0.3.18.
6472
6473
6474 Changes with nginx 0.3.21 16 Jan 2006
6475
6476 *) Feature: the ngx_http_perl_module.
6477
6478 *) Change: the "valid_referers" directive allows the referrers without
6479 URI part.
6480
6481
6482 Changes with nginx 0.3.20 11 Jan 2006
6483
6484 *) Bugfix: in SSI handling.
6485
6486 *) Bugfix: the ngx_http_memcached_module did not support the keys in the
6487 "/usr?args" form.
6488
6489
6490 Changes with nginx 0.3.19 28 Dec 2005
6491
6492 *) Feature: the "path" and "alias" directives support the variables.
6493
6494 *) Change: now the "valid_referers" directive again checks the URI part.
6495
6496 *) Bugfix: in SSI handling.
6497
6498
6499 Changes with nginx 0.3.18 26 Dec 2005
6500
6501 *) Feature: the "server_names" directive supports the ".domain.tld"
6502 names.
6503
6504 *) Feature: the "server_names" directive uses the hash for the
6505 "*.domain.tld" names and more effective hash for usual names.
6506
6507 *) Change: the "server_names_hash_max_size" and
6508 "server_names_hash_bucket_size" directives.
6509
6510 *) Change: the "server_names_hash" and "server_names_hash_threshold"
6511 directives were canceled.
6512
6513 *) Feature: the "valid_referers" directive uses the hash site names.
6514
6515 *) Change: now the "valid_referers" directive checks the site names only
6516 without the URI part.
6517
6518 *) Bugfix: some ".domain.tld" names incorrectly processed by the
6519 ngx_http_map_module.
6520
6521 *) Bugfix: segmentation fault was occurred if configuration file did not
6522 exist; the bug had appeared in 0.3.12.
6523
6524 *) Bugfix: on 64-bit platforms segmentation fault may occurred on start;
6525 the bug had appeared in 0.3.16.
6526
6527
6528 Changes with nginx 0.3.17 18 Dec 2005
6529
6530 *) Change: now on Linux configure checks the presence of epoll and
6531 sendfile64() in kernel.
6532
6533 *) Feature: the "map" directive supports domain names in the
6534 ".domain.tld" form.
6535
6536 *) Bugfix: the timeouts were not used in SSL handshake; the bug had
6537 appeared in 0.2.4.
6538
6539 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
6540
6541 *) Bugfix: when the HTTPS protocol was used in the "proxy_pass"
6542 directive the port 80 was used by default.
6543
6544
6545 Changes with nginx 0.3.16 16 Dec 2005
6546
6547 *) Feature: the ngx_http_map_module.
6548
6549 *) Feature: the "types_hash_max_size" and "types_hash_bucket_size"
6550 directives.
6551
6552 *) Feature: the "ssi_value_length" directive.
6553
6554 *) Feature: the "worker_rlimit_core" directive.
6555
6556 *) Workaround: the connection number in logs was always 1 if nginx was
6557 built by the icc 8.1 or 9.0 compilers with optimization for
6558 Pentium 4.
6559
6560 *) Bugfix: the "config timefmt" SSI command set incorrect time format.
6561
6562 *) Bugfix: nginx did not close connection to IMAP/POP3 backend for the
6563 SSL connections; the bug had appeared in 0.3.13.
6564 Thanks to Rob Mueller.
6565
6566 *) Bugfix: segmentation fault may occurred in at SSL shutdown; the bug
6567 had appeared in 0.3.13.
6568
6569
6570 Changes with nginx 0.3.15 07 Dec 2005
6571
6572 *) Feature: the new 444 code of the "return" directive to close
6573 connection.
6574
6575 *) Feature: the "so_keepalive" directive in IMAP/POP3 proxy.
6576
6577 *) Bugfix: if there are unclosed connection nginx now calls abort() only
6578 on graceful quit and active "debug_points" directive.
6579
6580
6581 Changes with nginx 0.3.14 05 Dec 2005
6582
6583 *) Bugfix: in the 304 response the body was transferred; the bug had
6584 appeared in 0.3.13.
6585
6586
6587 Changes with nginx 0.3.13 05 Dec 2005
6588
6589 *) Feature: the IMAP/POP3 proxy supports STARTTLS and STLS.
6590
6591 *) Bugfix: the IMAP/POP3 proxy did not work with the select, poll, and
6592 /dev/poll methods.
6593
6594 *) Bugfix: in SSI handling.
6595
6596 *) Bugfix: now Solaris sendfilev() is not used to transfer the client
6597 request body to FastCGI-server via the unix domain socket.
6598
6599 *) Bugfix: the "auth_basic" directive did not disable the authorization;
6600 the bug had appeared in 0.3.11.
6601
6602
6603 Changes with nginx 0.3.12 26 Nov 2005
6604
6605 *) Security: if nginx was built with the ngx_http_realip_module and the
6606 "satisfy_any on" directive was used, then access and authorization
6607 directives did not work. The ngx_http_realip_module was not built and
6608 is not built by default.
6609
6610 *) Change: the "$time_gmt" variable name was changed to "$time_local".
6611
6612 *) Change: the "proxy_header_buffer_size" and
6613 "fastcgi_header_buffer_size" directives was renamed to the
6614 "proxy_buffer_size" and "fastcgi_buffer_size" directives.
6615
6616 *) Feature: the ngx_http_memcached_module.
6617
6618 *) Feature: the "proxy_buffering" directive.
6619
6620 *) Bugfix: the changes in accept mutex handling when the "rtsig" method
6621 was used; the bug had appeared in 0.3.0.
6622
6623 *) Bugfix: if the client sent the "Transfer-Encoding: chunked" header
6624 line, then nginx returns the 411 error.
6625
6626 *) Bugfix: if the "auth_basic" directive was inherited from the http
6627 level, then the realm in the "WWW-Authenticate" header line was
6628 without the "Basic realm" text.
6629
6630 *) Bugfix: if the "combined" format was explicitly specified in the
6631 "access_log" directive, then the empty lines was written to the log;
6632 the bug had appeared in 0.3.8.
6633
6634 *) Bugfix: nginx did not run on the sparc platform under any OS except
6635 Solaris.
6636
6637 *) Bugfix: now it is not necessary to place space between the quoted
6638 string and closing bracket in the "if" directive.
6639
6640
6641 Changes with nginx 0.3.11 15 Nov 2005
6642
6643 *) Bugfix: nginx did not pass the client request headers and body while
6644 proxying; the bug had appeared in 0.3.10.
6645
6646
6647 Changes with nginx 0.3.10 15 Nov 2005
6648
6649 *) Change: the "valid_referers" directive and the "$invalid_referer"
6650 variable were moved to the new ngx_http_referer_module from the
6651 ngx_http_rewrite_module.
6652
6653 *) Change: the "$apache_bytes_sent" variable name was changed to
6654 "$body_bytes_sent".
6655
6656 *) Feature: the "$sent_http_..." variables.
6657
6658 *) Feature: the "if" directive supports the "=" and "!=" operations.
6659
6660 *) Feature: the "proxy_pass" directive supports the HTTPS protocol.
6661
6662 *) Feature: the "proxy_set_body" directive.
6663
6664 *) Feature: the "post_action" directive.
6665
6666 *) Feature: the ngx_http_empty_gif_module.
6667
6668 *) Feature: the "worker_cpu_affinity" directive for Linux.
6669
6670 *) Bugfix: the "rewrite" directive did not unescape URI part in
6671 redirect, now it is unescaped except the %00-%25 and %7F-%FF
6672 characters.
6673
6674 *) Bugfix: nginx could not be built by the icc 9.0 compiler.
6675
6676 *) Bugfix: if the SSI was enabled for zero size static file, then the
6677 chunked response was encoded incorrectly.
6678
6679
6680 Changes with nginx 0.3.9 10 Nov 2005
6681
6682 *) Bugfix: nginx considered URI as unsafe if two any symbols was between
6683 two slashes; the bug had appeared in 0.3.8.
6684
6685
6686 Changes with nginx 0.3.8 09 Nov 2005
6687
6688 *) Security: nginx now checks URI got from a backend in
6689 "X-Accel-Redirect" header line or in SSI file for the "/../" paths
6690 and zeroes.
6691
6692 *) Change: nginx now does not treat the empty user name in the
6693 "Authorization" header line as valid one.
6694
6695 *) Feature: the "ssl_session_timeout" directives of the
6696 ngx_http_ssl_module and ngx_imap_ssl_module.
6697
6698 *) Feature: the "auth_http_header" directive of the
6699 ngx_imap_auth_http_module.
6700
6701 *) Feature: the "add_header" directive.
6702
6703 *) Feature: the ngx_http_realip_module.
6704
6705 *) Feature: the new variables to use in the "log_format" directive:
6706 $bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri,
6707 $request_time, $request_length, $upstream_status,
6708 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
6709 $connection, $pipe, and $msec. The parameters in the "%name" form
6710 will be canceled soon.
6711
6712 *) Change: now the false variable values in the "if" directive are the
6713 empty string "" and string starting with "0".
6714
6715 *) Bugfix: while using proxied or FastCGI-server nginx may leave
6716 connections and temporary files with client requests in open state.
6717
6718 *) Bugfix: the worker processes did not flush the buffered logs on
6719 graceful exit.
6720
6721 *) Bugfix: if the request URI was changes by the "rewrite" directive and
6722 the request was proxied in location given by regular expression, then
6723 the incorrect request was transferred to backend; the bug had
6724 appeared in 0.2.6.
6725
6726 *) Bugfix: the "expires" directive did not remove the previous "Expires"
6727 header.
6728
6729 *) Bugfix: nginx may stop to accept requests if the "rtsig" method and
6730 several worker processes were used.
6731
6732 *) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in
6733 SSI commands.
6734
6735 *) Bugfix: if the response was ended just after the SSI command and
6736 gzipping was used, then the response did not transferred complete or
6737 did not transferred at all.
6738
6739
6740 Changes with nginx 0.3.7 27 Oct 2005
6741
6742 *) Feature: the "access_log" supports the "buffer=" parameter.
6743
6744 *) Bugfix: nginx could not be built on platforms different from i386,
6745 amd64, sparc, and ppc; the bug had appeared in 0.3.2.
6746
6747
6748 Changes with nginx 0.3.6 24 Oct 2005
6749
6750 *) Change: now the IMAP/POP3 proxy do not send the empty login to
6751 authorization server.
6752
6753 *) Feature: the "log_format" supports the variables in the $name form.
6754
6755 *) Bugfix: if at least in one server was no the "listen" directive, then
6756 nginx did not listen on the 80 port; the bug had appeared in 0.3.3.
6757
6758 *) Bugfix: if the URI part is omitted in "proxy_pass" directive, the 80
6759 port was always used.
6760
6761
6762 Changes with nginx 0.3.5 21 Oct 2005
6763
6764 *) Bugfix: the segmentation fault may occurred if the IMAP/POP3 login
6765 was changed by authorization server; the bug had appeared in 0.2.2.
6766
6767 *) Bugfix: the accept mutex did not work and all connections were
6768 handled by one process; the bug had appeared in 0.3.3.
6769
6770 *) Bugfix: the timeout did not work if the "rtsig" method and the
6771 "timer_resolution" directive were used.
6772
6773
6774 Changes with nginx 0.3.4 19 Oct 2005
6775
6776 *) Bugfix: nginx could not be built on Linux 2.4+ and MacOS X; the bug
6777 had appeared in 0.3.3.
6778
6779
6780 Changes with nginx 0.3.3 19 Oct 2005
6781
6782 *) Change: the "bl" and "af" parameters of the "listen" directive was
6783 renamed to the "backlog" and "accept_filter".
6784
6785 *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen"
6786 directive.
6787
6788 *) Change: the "$msec" log parameter does not require now the additional
6789 the gettimeofday() system call.
6790
6791 *) Feature: the -t switch now tests the "listen" directives.
6792
6793 *) Bugfix: if the invalid address was specified in the "listen"
6794 directive, then after the -HUP signal nginx left an open socket in
6795 the CLOSED state.
6796
6797 *) Bugfix: the mime type may be incorrectly set to default value for
6798 index file with variable in the name; the bug had appeared in 0.3.0.
6799
6800 *) Feature: the "timer_resolution" directive.
6801
6802 *) Feature: the millisecond "$upstream_response_time" log parameter.
6803
6804 *) Bugfix: a temporary file with client request body now is removed just
6805 after the response header was transferred to a client.
6806
6807 *) Bugfix: OpenSSL 0.9.6 compatibility.
6808
6809 *) Bugfix: the SSL certificate and key file paths could not be relative.
6810
6811 *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in the
6812 ngx_imap_ssl_module.
6813
6814 *) Bugfix: the "ssl_protocols" directive allowed to specify the single
6815 protocol only.
6816
6817
6818 Changes with nginx 0.3.2 12 Oct 2005
6819
6820 *) Feature: the Sun Studio 10 C compiler support.
6821
6822 *) Feature: the "proxy_upstream_max_fails",
6823 "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and
6824 "fastcgi_upstream_fail_timeout" directives.
6825
6826
6827 Changes with nginx 0.3.1 10 Oct 2005
6828
6829 *) Bugfix: the segmentation fault occurred when the signal queue
6830 overflowed if the "rtsig" method was used; the bug had appeared in
6831 0.2.0.
6832
6833 *) Change: correct handling of the "\\", "\"", "\'", and "\$" pairs in
6834 SSI.
6835
6836
6837 Changes with nginx 0.3.0 07 Oct 2005
6838
6839 *) Change: the 10-days live time limit of worker process was eliminated.
6840 The limit was introduced because of millisecond timers overflow.
6841
6842
6843 Changes with nginx 0.2.6 05 Oct 2005
6844
6845 *) Change: while using load-balancing the time before the failed backend
6846 retry was decreased from 60 to 10 seconds.
6847
6848 *) Change: the "proxy_pass_unparsed_uri" was canceled, the original URI
6849 now passed, if the URI part is omitted in "proxy_pass" directive.
6850
6851 *) Feature: the "error_page" directive supports redirects and allows
6852 more flexible to change an error code.
6853
6854 *) Change: the charset in the "Content-Type" header line now is ignored
6855 in proxied subrequests.
6856
6857 *) Bugfix: if the URI was changed in the "if" block and request did not
6858 found new configuration, then the ngx_http_rewrite_module rules ran
6859 again.
6860
6861 *) Bugfix: if the "set" directive set the ngx_http_geo_module variable
6862 in some configuration part, the this variable was not available in
6863 other configuration parts and the "using uninitialized variable"
6864 error was occurred; the bug had appeared in 0.2.2.
6865
6866
6867 Changes with nginx 0.2.5 04 Oct 2005
6868
6869 *) Change: the duplicate value of the ngx_http_geo_module variable now
6870 causes the warning and changes old value.
6871
6872 *) Feature: the ngx_http_ssi_module supports the "set" command.
6873
6874 *) Feature: the ngx_http_ssi_module supports the "file" parameter in the
6875 "include" command.
6876
6877 *) Feature: the ngx_http_ssi_module supports the variable value
6878 substitutions in expressions of the "if" command.
6879
6880
6881 Changes with nginx 0.2.4 03 Oct 2005
6882
6883 *) Feature: the ngx_http_ssi_module supports "$var=text", "$var!=text",
6884 "$var=/text/", and "$var!=/text/" expressions in the "if" command.
6885
6886 *) Bugfix: in proxying location without trailing slash; the bug had
6887 appeared in 0.1.44.
6888
6889 *) Bugfix: the segmentation fault may occurred if the "rtsig" method was
6890 used; the bug had appeared in 0.2.0.
6891
6892
6893 Changes with nginx 0.2.3 30 Sep 2005
6894
6895 *) Bugfix: nginx could not be built without the --with-debug option; the
6896 bug had appeared in 0.2.2.
6897
6898
6899 Changes with nginx 0.2.2 30 Sep 2005
6900
6901 *) Feature: the "config errmsg" command of the ngx_http_ssi_module.
6902
6903 *) Change: the ngx_http_geo_module variables can be overridden by the
6904 "set" directive.
6905
6906 *) Feature: the "ssl_protocols" and "ssl_prefer_server_ciphers"
6907 directives of the ngx_http_ssl_module and ngx_imap_ssl_module.
6908
6909 *) Bugfix: the ngx_http_autoindex_module did not show correctly the long
6910 file names;
6911
6912 *) Bugfix: the ngx_http_autoindex_module now do not show the files
6913 starting by dot.
6914
6915 *) Bugfix: if the SSL handshake failed then another connection may be
6916 closed too.
6917 Thanks to Rob Mueller.
6918
6919 *) Bugfix: the export versions of MSIE 5.x could not connect via HTTPS.
6920
6921
6922 Changes with nginx 0.2.1 23 Sep 2005
6923
6924 *) Bugfix: if all backend using in load-balancing failed after one
6925 error, then nginx may got caught in an endless loop; the bug had
6926 appeared in 0.2.0.
6927
6928
6929 Changes with nginx 0.2.0 23 Sep 2005
6930
6931 *) The pid-file names used during online upgrade was changed and now is
6932 not required a manual rename operation. The old master process adds
6933 the ".oldbin" suffix to its pid-file and executes a new binary file.
6934 The new master process creates usual pid-file without the ".newbin"
6935 suffix. If the master process exits, then old master process renames
6936 back its pid-file with the ".oldbin" suffix to the pid-file without
6937 suffix.
6938
6939 *) Change: the "worker_connections" directive, new name of the
6940 "connections" directive; now the directive specifies maximum number
6941 of connections, but not maximum socket descriptor number.
6942
6943 *) Feature: SSL supports the session cache inside one worker process.
6944
6945 *) Feature: the "satisfy_any" directive.
6946
6947 *) Change: the ngx_http_access_module and ngx_http_auth_basic_module do
6948 not run for subrequests.
6949
6950 *) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending"
6951 directives.
6952
6953 *) Bugfix: if all backend using in load-balancing failed after one
6954 error, then nginx did not try do connect to them during 60 seconds.
6955
6956 *) Bugfix: in IMAP/POP3 command argument parsing.
6957 Thanks to Rob Mueller.
6958
6959 *) Bugfix: errors while using SSL in IMAP/POP3 proxy.
6960
6961 *) Bugfix: errors while using SSI and gzipping.
6962
6963 *) Bugfix: the "Expires" and "Cache-Control" header lines were omitted
6964 from the 304 responses.
6965 Thanks to Alexandr Kukushkin.
6966
6967
6968 Changes with nginx 0.1.45 08 Sep 2005
6969
6970 *) Change: the "ssl_engine" directive was canceled in the
6971 ngx_http_ssl_module and now is introduced at global level.
6972
6973 *) Bugfix: the responses with SSI subrequests did not transferred via
6974 SSL connection.
6975
6976 *) Various bug fixes in the IMAP/POP3 proxy.
6977
6978
6979 Changes with nginx 0.1.44 06 Sep 2005
6980
6981 *) Feature: the IMAP/POP3 proxy supports SSL.
6982
6983 *) Feature: the "proxy_timeout" directive of the ngx_imap_proxy_module.
6984
6985 *) Feature: the "userid_mark" directive.
6986
6987 *) Feature: the $remote_user variable value is determined independently
6988 of authorization use.
6989
6990
6991 Changes with nginx 0.1.43 30 Aug 2005
6992
6993 *) Feature: the listen(2) backlog in the "listen" directive can be
6994 changed using the -HUP signal.
6995
6996 *) Feature: the geo2nginx.pl script was added to contrib.
6997
6998 *) Change: the FastCGI parameters with the empty values now are passed
6999 to a server.
7000
7001 *) Bugfix: the segmentation fault occurred or the worker process may got
7002 caught in an endless loop if the proxied or FastCGI server sent the
7003 "Cache-Control" header line and the "expires" directive was used; in
7004 the proxied mode the bug had appeared in 0.1.29.
7005
7006
7007 Changes with nginx 0.1.42 23 Aug 2005
7008
7009 *) Bugfix: if the request URI had a zero length after the processing in
7010 the ngx_http_proxy_module, then the segmentation fault or bus error
7011 occurred in the ngx_http_proxy_module.
7012
7013 *) Bugfix: the "limit_rate" directive did not work inside the "if"
7014 block; the bug had appeared in 0.1.38.
7015
7016
7017 Changes with nginx 0.1.41 25 Jul 2005
7018
7019 *) Bugfix: if the variable was used in the configuration file, then it
7020 can not be used in SSI.
7021
7022
7023 Changes with nginx 0.1.40 22 Jul 2005
7024
7025 *) Bugfix: if a client sent too long header line, then the request
7026 information did not logged in the error log.
7027
7028 *) Bugfix: the "Set-Cookie" header line was not transferred when the
7029 "X-Accel-Redirect" was used; the bug had appeared in 0.1.39.
7030
7031 *) Bugfix: the "Content-Disposition" header line was not transferred
7032 when the "X-Accel-Redirect" was used.
7033
7034 *) Bugfix: the master process did not close the listen socket on the
7035 SIGQUIT signal.
7036
7037 *) Bugfix: after on-line upgrade on Linux and Solaris the process name
7038 became shorter in the "ps" command.
7039
7040
7041 Changes with nginx 0.1.39 14 Jul 2005
7042
7043 *) The changes in the ngx_http_charset_module: the "default_charset"
7044 directive was canceled; the "charset" directive sets the response
7045 charset; the "source_charset" directive sets the source charset only.
7046
7047 *) Bugfix: the backend "WWW-Authenticate" header line did not
7048 transferred while the 401 response code redirecting.
7049
7050 *) Bugfix: the ngx_http_proxy_module and ngx_http_fastcgi_module may
7051 close a connection before anything was transferred to a client; the
7052 bug had appeared in 0.1.38.
7053
7054 *) Workaround: the Linux glibc crypt_r() initialization bug.
7055
7056 *) Bugfix: the ngx_http_ssi_module did not support the relative URI in
7057 the "include virtual" command.
7058
7059 *) Bugfix: if the backend response had the "Location" header line and
7060 nginx should not rewrite this line, then the 500 code response body
7061 was transferred; the bug had appeared in 0.1.29.
7062
7063 *) Bugfix: some directives of the ngx_http_proxy_module and
7064 ngx_http_fastcgi_module were not inherited from the server to the
7065 location level; the bug had appeared in 0.1.29.
7066
7067 *) Bugfix: the ngx_http_ssl_module did not support the certificate
7068 chain.
7069
7070 *) Bugfix: the ngx_http_autoindex_module did not show correctly the long
7071 file names; the bug had appeared in 0.1.38.
7072
7073 *) Bugfixes in IMAP/POP3 proxy in interaction with a backend at the
7074 login state.
7075
7076
7077 Changes with nginx 0.1.38 08 Jul 2005
7078
7079 *) Feature: the "limit_rate" directive is supported in proxy and FastCGI
7080 mode.
7081
7082 *) Feature: the "X-Accel-Limit-Rate" response header line is supported
7083 in proxy and FastCGI mode.
7084
7085 *) Feature: the "break" directive.
7086
7087 *) Feature: the "log_not_found" directive.
7088
7089 *) Bugfix: the response status code was not changed when request was
7090 redirected by the ""X-Accel-Redirect" header line.
7091
7092 *) Bugfix: the variables set by the "set" directive could not be used in
7093 SSI.
7094
7095 *) Bugfix: the segmentation fault may occurred if the SSI page has more
7096 than one remote subrequest.
7097
7098 *) Bugfix: nginx treated the backend response as invalid if the status
7099 line in the header was transferred in two packets; the bug had
7100 appeared in 0.1.29.
7101
7102 *) Feature: the "ssi_types" directive.
7103
7104 *) Feature: the "autoindex_exact_size" directive.
7105
7106 *) Bugfix: the ngx_http_autoindex_module did not support the long file
7107 names in UTF-8.
7108
7109 *) Feature: the IMAP/POP3 proxy.
7110
7111
7112 Changes with nginx 0.1.37 23 Jun 2005
7113
7114 *) Change: now the "\n" is added to the end of the "nginx.pid" file.
7115
7116 *) Bugfix: the responses may be transferred not completely, if many
7117 parts or the big parts were included by SSI.
7118
7119 *) Bugfix: if all backends had returned the 404 response and the
7120 "http_404" parameter of the "proxy_next_upstream" or
7121 "fastcgi_next_upstream" directives was used, then nginx started to
7122 request all backends again.
7123
7124
7125 Changes with nginx 0.1.36 15 Jun 2005
7126
7127 *) Change: if the request header has duplicate the "Host", "Connection",
7128 "Content-Length", or "Authorization" lines, then nginx now returns
7129 the 400 error.
7130
7131 *) Change: the "post_accept_timeout" directive was canceled.
7132
7133 *) Feature: the "default", "af=", "bl=", "deferred", and "bind"
7134 parameters of the "listen" directive.
7135
7136 *) Feature: the FreeBSD accept filters support.
7137
7138 *) Feature: the Linux TCP_DEFER_ACCEPT support.
7139
7140 *) Bugfix: the ngx_http_autoindex_module did not support the file names
7141 in UTF-8.
7142
7143 *) Bugfix: the new log file can be rotated by the -USR1 signal only if
7144 the reconfiguration by the -HUP signal was made twice.
7145
7146
7147 Changes with nginx 0.1.35 07 Jun 2005
7148
7149 *) Feature: the "working_directory" directive.
7150
7151 *) Feature: the "port_in_redirect" directive.
7152
7153 *) Bugfix: the segmentation fault was occurred if the backend response
7154 header was in several packets; the bug had appeared in 0.1.29.
7155
7156 *) Bugfix: if more than 10 servers were configured or some server did
7157 not use the "listen" directive, then the segmentation fault was
7158 occurred on the start.
7159
7160 *) Bugfix: the segmentation fault might occur if the response was bigger
7161 than the temporary file.
7162
7163 *) Bugfix: nginx returned the 400 response on requests like
7164 "GET http://www.domain.com/uri HTTP/1.0"; the bug had appeared in
7165 0.1.28.
7166
7167
7168 Changes with nginx 0.1.34 26 May 2005
7169
7170 *) Bugfix: the worker process may got caught in an endless loop if the
7171 big response part were include by SSI.
7172
7173 *) Bugfix: the variables set by the "set" directive were not available
7174 in SSI.
7175
7176 *) Feature: the "autoindex_localtime" directive.
7177
7178 *) Bugfix: the empty value of the "proxy_set_header" directive forbids
7179 the client request header line passing.
7180
7181
7182 Changes with nginx 0.1.33 23 May 2005
7183
7184 *) Bugfix: nginx could not be built with the --without-pcre parameter;
7185 the bug had appeared in 0.1.29.
7186
7187 *) Bugfix: 3, 4, 7, and 8 the "proxy_set_header" directives in one level
7188 cause the bus fault on start up.
7189
7190 *) Bugfix: the HTTP protocol was specified in the HTTPS redirects.
7191
7192 *) Bugfix: if the "rewrite" directive used the captures inside the "if"
7193 directive, then the 500 error code was returned.
7194
7195
7196 Changes with nginx 0.1.32 19 May 2005
7197
7198 *) Bugfix: the arguments were omitted in the redirects, issued by the
7199 "rewrite" directive; the bug had appeared in 0.1.29.
7200
7201 *) Feature: the "if" directive supports the captures in regular
7202 expressions.
7203
7204 *) Feature: the "set" directive supports the variables and the captures
7205 of regular expressions.
7206
7207 *) Feature: the "X-Accel-Redirect" response header line is supported in
7208 proxy and FastCGI mode.
7209
7210
7211 Changes with nginx 0.1.31 16 May 2005
7212
7213 *) Bugfix: the response encrypted by SSL may not transferred complete.
7214
7215 *) Bugfix: errors while processing FastCGI response by SSI.
7216
7217 *) Bugfix: errors while using SSI and gzipping.
7218
7219 *) Bugfix: the redirect with the 301 code was transferred without
7220 response body; the bug had appeared in 0.1.30.
7221
7222
7223 Changes with nginx 0.1.30 14 May 2005
7224
7225 *) Bugfix: the worker process may got caught in an endless loop if the
7226 SSI was used.
7227
7228 *) Bugfix: the response encrypted by SSL may not transferred complete.
7229
7230 *) Bugfix: if the length of the response part received at once from
7231 proxied or FastCGI server was equal to 500, then nginx returns the
7232 500 response code; in proxy mode the bug had appeared in 0.1.29 only.
7233
7234 *) Bugfix: nginx did not consider the directives with 8 or 9 parameters
7235 as invalid.
7236
7237 *) Feature: the "return" directive can return the 204 response code.
7238
7239 *) Feature: the "ignore_invalid_headers" directive.
7240
7241
7242 Changes with nginx 0.1.29 12 May 2005
7243
7244 *) Feature: the ngx_http_ssi_module supports "include virtual" command.
7245
7246 *) Feature: the ngx_http_ssi_module supports the condition command like
7247 'if expr="$NAME"' and "else" and "endif" commands. Only one nested
7248 level is supported.
7249
7250 *) Feature: the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT
7251 variables and "config timefmt" command.
7252
7253 *) Feature: the "ssi_ignore_recycled_buffers" directive.
7254
7255 *) Bugfix: the "echo" command did not show the default value for the
7256 empty QUERY_STRING variable.
7257
7258 *) Change: the ngx_http_proxy_module was rewritten.
7259
7260 *) Feature: the "proxy_redirect", "proxy_pass_request_headers",
7261 "proxy_pass_request_body", and "proxy_method" directives.
7262
7263 *) Feature: the "proxy_set_header" directive. The "proxy_x_var" was
7264 canceled and must be replaced with the proxy_set_header directive.
7265
7266 *) Change: the "proxy_preserve_host" is canceled and must be replaced
7267 with the "proxy_set_header Host $host" and the "proxy_redirect off"
7268 directives, the "proxy_set_header Host $host:$proxy_port" directive
7269 and the appropriate proxy_redirect directives.
7270
7271 *) Change: the "proxy_set_x_real_ip" is canceled and must be replaced
7272 with the "proxy_set_header X-Real-IP $remote_addr" directive.
7273
7274 *) Change: the "proxy_add_x_forwarded_for" is canceled and must be
7275 replaced with
7276 the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for"
7277 directive.
7278
7279 *) Change: the "proxy_set_x_url" is canceled and must be replaced with
7280 the "proxy_set_header X-URL http://$host:$server_port$request_uri"
7281 directive.
7282
7283 *) Feature: the "fastcgi_param" directive.
7284
7285 *) Change: the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params"
7286 directive are canceled and must be replaced with the fastcgi_param
7287 directives.
7288
7289 *) Feature: the "index" directive can use the variables.
7290
7291 *) Feature: the "index" directive can be used at http and server levels.
7292
7293 *) Change: the last index only in the "index" directive can be absolute.
7294
7295 *) Feature: the "rewrite" directive can use the variables.
7296
7297 *) Feature: the "internal" directive.
7298
7299 *) Feature: the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
7300 SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
7301 REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables.
7302
7303 *) Change: nginx now passes the invalid lines in a client request
7304 headers or a backend response header.
7305
7306 *) Bugfix: if the backend did not transfer response for a long time and
7307 the "send_timeout" was less than "proxy_read_timeout", then nginx
7308 returned the 408 response.
7309
7310 *) Bugfix: the segmentation fault was occurred if the backend sent an
7311 invalid line in response header; the bug had appeared in 0.1.26.
7312
7313 *) Bugfix: the segmentation fault may occurred in FastCGI fault
7314 tolerance configuration.
7315
7316 *) Bugfix: the "expires" directive did not remove the previous "Expires"
7317 and "Cache-Control" headers.
7318
7319 *) Bugfix: nginx did not take into account trailing dot in "Host" header
7320 line.
7321
7322 *) Bugfix: the ngx_http_auth_module did not work under Linux.
7323
7324 *) Bugfix: the rewrite directive worked incorrectly, if the arguments
7325 were in a request.
7326
7327 *) Bugfix: nginx could not be built on MacOS X.
7328
7329
7330 Changes with nginx 0.1.28 08 Apr 2005
7331
7332 *) Bugfix: nginx hogs CPU while proxying the huge files.
7333
7334 *) Bugfix: nginx could not be built by gcc 4.0 on Linux.
7335
7336
7337 Changes with nginx 0.1.27 28 Mar 2005
7338
7339 *) Feature: the "blocked" parameter of the "valid_referers" directive.
7340
7341 *) Change: the errors while handling the request header now logged at
7342 "info" level. The server name and the "Host" and "Referer" header
7343 lines also logged.
7344
7345 *) Change: the "Host" header line is also logged in error log.
7346
7347 *) Feature: the proxy_pass_unparsed_uri directive. The special handling
7348 of the "://" symbols in URI, appeared in 0.1.11 version, now is
7349 canceled.
7350
7351 *) Bugfix: nginx could not be built on FreeBSD and Linux, if the
7352 --without-ngx_http_auth_basic_module configuration parameter was
7353 used.
7354
7355
7356 Changes with nginx 0.1.26 22 Mar 2005
7357
7358 *) Change: the invalid client header lines are now ignored and logged at
7359 the info level.
7360
7361 *) Change: the server name is also logged in error log.
7362
7363 *) Feature: the ngx_http_auth_basic_module module and the auth_basic and
7364 auth_basic_user_file directives.
7365
7366
7367 Changes with nginx 0.1.25 19 Mar 2005
7368
7369 *) Bugfix: nginx did run on Linux parisc.
7370
7371 *) Feature: nginx now does not start under FreeBSD if the sysctl
7372 kern.ipc.somaxconn value is too big.
7373
7374 *) Bugfix: if a request was internally redirected by the
7375 ngx_http_index_module module to the ngx_http_proxy_module or
7376 ngx_http_fastcgi_module modules, then the index file was not closed
7377 after request completion.
7378
7379 *) Feature: the "proxy_pass" can be used in location with regular
7380 expression.
7381
7382 *) Feature: the ngx_http_rewrite_filter_module module supports the
7383 condition like "if ($HTTP_USER_AGENT ~ MSIE)".
7384
7385 *) Bugfix: nginx started too slow if the large number of addresses and
7386 text values were used in the "geo" directive.
7387
7388 *) Change: a variable name must be declared as "$name" in the "geo"
7389 directive. The previous variant without "$" is still supported, but
7390 will be removed soon.
7391
7392 *) Feature: the "%{VARIABLE}v" logging parameter.
7393
7394 *) Feature: the "set $name value" directive.
7395
7396 *) Bugfix: gcc 4.0 compatibility.
7397
7398 *) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
7399
7400
7401 Changes with nginx 0.1.24 04 Mar 2005
7402
7403 *) Feature: the ngx_http_ssi_filter_module supports the QUERY_STRING and
7404 DOCUMENT_URI variables.
7405
7406 *) Bugfix: the ngx_http_autoindex_module may some times return the 404
7407 response for existent directory, if this directory was used in
7408 "alias" directive.
7409
7410 *) Bugfix: the ngx_http_ssi_filter_module ran incorrectly for large
7411 responses.
7412
7413 *) Bugfix: the lack of the "Referer" header line was always accounted as
7414 valid referrer.
7415
7416
7417 Changes with nginx 0.1.23 01 Mar 2005
7418
7419 *) Feature: the ngx_http_ssi_filter_module and the ssi,
7420 ssi_silent_errors, and ssi_min_file_chunk directives. The 'echo
7421 var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands are
7422 supported.
7423
7424 *) Feature: the %request_time log parameter.
7425
7426 *) Feature: if the request has no the "Host" header line, then the
7427 "proxy_preserve_host" directive set this header line to the first
7428 server name of the "server_name" directive.
7429
7430 *) Bugfix: nginx could not be built on platforms different from i386,
7431 amd64, sparc, and ppc; the bug had appeared in 0.1.22.
7432
7433 *) Bugfix: the ngx_http_autoindex_module now shows the information not
7434 about the symlink, but about file or directory it points to.
7435
7436 *) Bugfix: the %apache_length parameter logged the negative length of
7437 the response header if the no response was transferred to a client.
7438
7439
7440 Changes with nginx 0.1.22 22 Feb 2005
7441
7442 *) Bugfix: the ngx_http_stub_status_module showed incorrect handled
7443 connections statistics if the proxying or FastCGI server were used.
7444
7445 *) Bugfix: the installation paths were incorrectly quoted on Linux and
7446 Solaris; the bug had appeared in 0.1.21.
7447
7448
7449 Changes with nginx 0.1.21 22 Feb 2005
7450
7451 *) Bugfix: the ngx_http_stub_status_module showed incorrect statistics
7452 if "rtsig" method was used or if several worker process ran on SMP.
7453
7454 *) Bugfix: nginx could not be built by the icc compiler on Linux or if
7455 the zlib-1.2.x library was building from sources.
7456
7457 *) Bugfix: nginx could not be built on NetBSD 2.0.
7458
7459
7460 Changes with nginx 0.1.20 17 Feb 2005
7461
7462 *) Feature: the new "script_filename" and "remote_port" parameters of
7463 the fastcgi_params directive.
7464
7465 *) Bugfix: the FastCGI stderr stream was handled incorrectly.
7466
7467
7468 Changes with nginx 0.1.19 16 Feb 2005
7469
7470 *) Bugfix: now, if request contains the zero, then the 404 error is
7471 returned for the local requests.
7472
7473 *) Bugfix: nginx could not be built on NetBSD 2.0.
7474
7475 *) Bugfix: the timeout may occur while reading of the client request
7476 body via SSL connections.
7477
7478
7479 Changes with nginx 0.1.18 09 Feb 2005
7480
7481 *) Workaround: the default values of the devpoll_events and the
7482 devpoll_changes directives changed from 512 to 32 to be compatible
7483 with Solaris 10.
7484
7485 *) Bugfix: the proxy_set_x_var and fastcgi_set_var directives were not
7486 inherited.
7487
7488 *) Bugfix: in a redirect rewrite directive arguments were concatenated
7489 with URI by an "&" rather than a "?".
7490
7491 *) Bugfix: the lines without trailing ";" in the file being included by
7492 the ngx_http_geo_module were silently ignored.
7493
7494 *) Feature: the ngx_http_stub_status_module.
7495
7496 *) Bugfix: the unknown log format in the access_log directive caused the
7497 segmentation fault.
7498
7499 *) Feature: the new "document_root" parameter of the fastcgi_params
7500 directive.
7501
7502 *) Feature: the fastcgi_redirect_errors directive.
7503
7504 *) Feature: the new "break" modifier of the "rewrite" directive allows
7505 to stop the rewrite/location cycle and sets the current configuration
7506 to the request.
7507
7508
7509 Changes with nginx 0.1.17 03 Feb 2005
7510
7511 *) Change: the ngx_http_rewrite_module was rewritten from the scratch.
7512 Now it is possible to redirect, to return the error codes, to check
7513 the variables and referrers. The directives can be used inside
7514 locations. The redirect directive was canceled.
7515
7516 *) Feature: the ngx_http_geo_module.
7517
7518 *) Feature: the proxy_set_x_var and fastcgi_set_var directives.
7519
7520 *) Bugfix: the location configuration with "=" modifier may be used in
7521 another location.
7522
7523 *) Bugfix: the correct content type was set only for requests that use
7524 small caps letters in extension.
7525
7526 *) Bugfix: if the proxy_pass or fastcgi_pass directives were set in the
7527 location, and access was denied, and the error was redirected to a
7528 static page, then the segmentation fault occurred.
7529
7530 *) Bugfix: if in a proxied "Location" header was a relative URL, then a
7531 host name and a slash were added to them; the bug had appeared in
7532 0.1.14.
7533
7534 *) Bugfix: the system error message was not logged on Linux.
7535
7536
7537 Changes with nginx 0.1.16 25 Jan 2005
7538
7539 *) Bugfix: if the response were transferred by chunks, then on the HEAD
7540 request the final chunk was issued.
7541
7542 *) Bugfix: the "Connection: keep-alive" header were issued, even if the
7543 keepalive_timeout directive forbade the keep-alive use.
7544
7545 *) Bugfix: the errors in the ngx_http_fastcgi_module caused the
7546 segmentation faults.
7547
7548 *) Bugfix: the compressed response encrypted by SSL may not transferred
7549 complete.
7550
7551 *) Bugfix: the TCP-specific TCP_NODELAY, TCP_NOPUSH, and TCP_CORK
7552 options, are not used for the unix domain sockets.
7553
7554 *) Feature: the rewrite directive supports the arguments rewriting.
7555
7556 *) Bugfix: the response code 400 was returned for the POST request with
7557 the "Content-Length: 0" header; the bug had appeared in 0.1.14.
7558
7559
7560 Changes with nginx 0.1.15 19 Jan 2005
7561
7562 *) Bugfix: the error while the connecting to the FastCGI server caused
7563 segmentation fault.
7564
7565 *) Bugfix: the correct handling of the regular expression, that has
7566 different number of the captures and substitutions.
7567
7568 *) Feature: the location, that is passed to the FastCGI server, can be
7569 regular expression.
7570
7571 *) Bugfix: the FastCGI's parameter REQUEST_URI is now passed with the
7572 arguments and in the original state.
7573
7574 *) Bugfix: the ngx_http_rewrite_module module was required to be built
7575 to use the regular expressions in locations.
7576
7577 *) Bugfix: the directive "proxy_preserve_host on" adds port 80 to the
7578 "Host" headers, if upstream listen on port 80; the bug had appeared
7579 in 0.1.14.
7580
7581 *) Bugfix: the same paths in autoconfiguration parameters
7582 --http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH, or
7583 --http-client-body-temp-path=PATH and --http-fastcgi-temp-path=PATH
7584 caused segmentation fault.
7585
7586
7587 Changes with nginx 0.1.14 18 Jan 2005
7588
7589 *) Feature: the autoconfiguration directives:
7590 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and
7591 --http-fastcgi-temp-path=PATH
7592
7593 *) Change: the directory name for the temporary files with the client
7594 request body is specified by directive client_body_temp_path, by
7595 default it is <prefix>/client_body_temp.
7596
7597 *) Feature: the ngx_http_fastcgi_module and the directives:
7598 fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params,
7599 fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout,
7600 fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers,
7601 fastcgi_busy_buffers_size, fastcgi_temp_path,
7602 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
7603 fastcgi_next_upstream, and fastcgi_x_powered_by.
7604
7605 *) Bugfix: the "[alert] zero size buf" error; the bug had appeared in
7606 0.1.3.
7607
7608 *) Change: the URI must be specified after the host name in the
7609 proxy_pass directive.
7610
7611 *) Change: the %3F symbol in the URI was considered as the argument
7612 string start.
7613
7614 *) Feature: the unix domain sockets support in the
7615 ngx_http_proxy_module.
7616
7617 *) Feature: the ssl_engine and ssl_ciphers directives.
7618 Thanks to Sergey Skvortsov for SSL-accelerator.
7619
7620
7621 Changes with nginx 0.1.13 21 Dec 2004
7622
7623 *) Feature: the server_names_hash and server_names_hash_threshold
7624 directives.
7625
7626 *) Bugfix: the *.domain.tld names in the "server_name" directive did not
7627 work.
7628
7629 *) Bugfix: the %request_length log parameter logged the incorrect
7630 length.
7631
7632
7633 Changes with nginx 0.1.12 06 Dec 2004
7634
7635 *) Feature: the %request_length log parameter.
7636
7637 *) Bugfix: when using the /dev/poll, select and poll on the platforms,
7638 where these methods may do the false reports, there may be the long
7639 delay when the request was passed via the keep-alive connection. It
7640 may be at least on Solaris when using the /dev/poll.
7641
7642 *) Bugfix: the send_lowat directive is ignored on Linux because Linux
7643 does not support the SO_SNDLOWAT option.
7644
7645
7646 Changes with nginx 0.1.11 02 Dec 2004
7647
7648 *) Feature: the worker_priority directive.
7649
7650 *) Change: both tcp_nopush and tcp_nodelay directives affect the
7651 transferred response.
7652
7653 *) Bugfix: nginx did not call initgroups().
7654 Thanks to Andrew Sitnikov and Andrei Nigmatulin.
7655
7656 *) Change: now the ngx_http_autoindex_module shows the file size in the
7657 bytes.
7658
7659 *) Bugfix: the ngx_http_autoindex_module returned the 500 error if the
7660 broken symlink was in a directory.
7661
7662 *) Bugfix: the files bigger than 4G could not be transferred using
7663 sendfile.
7664
7665 *) Bugfix: if the backend was resolved to several backends and there was
7666 an error while the response waiting then process may got caught in an
7667 endless loop.
7668
7669 *) Bugfix: the worker process may exit with the "unknown cycle" message
7670 when the /dev/poll method was used.
7671
7672 *) Bugfix: "close() channel failed" errors.
7673
7674 *) Bugfix: the autodetection of the "nobody" and "nogroup" groups.
7675
7676 *) Bugfix: the send_lowat directive did not work on Linux.
7677
7678 *) Bugfix: the segmentation fault occurred if there was no events
7679 section in configuration.
7680
7681 *) Bugfix: nginx could not be built on OpenBSD.
7682
7683 *) Bugfix: the double slashes in "://" in the URI were converted to
7684 ":/".
7685
7686
7687 Changes with nginx 0.1.10 26 Nov 2004
7688
7689 *) Bugfix: if the request without arguments contains "//", "/./", "/../"
7690 or "%XX" then the last character in the request line was lost; the
7691 bug had appeared in 0.1.9.
7692
7693 *) Bugfix: the fix in 0.1.9 for the files bigger than 2G on Linux did
7694 not work.
7695
7696
7697 Changes with nginx 0.1.9 25 Nov 2004
7698
7699 *) Bugfix: the proxied request was sent without arguments if the request
7700 contains "//", "/./", "/../" or "%XX".
7701
7702 *) Bugfix: the large compressed responses may be transferred not
7703 completely.
7704
7705 *) Bugfix: the files bigger than 2G was not transferred on Linux that
7706 does not support sendfile64().
7707
7708 *) Bugfix: while the build configuration on Linux the --with-poll_module
7709 parameter was required; the bug had appeared in 0.1.8.
7710
7711
7712 Changes with nginx 0.1.8 20 Nov 2004
7713
7714 *) Bugfix: in the ngx_http_autoindex_module if the long file names were
7715 in the listing.
7716
7717 *) Feature: the "^~" modifier in the location directive.
7718
7719 *) Feature: the proxy_max_temp_file_size directive.
7720
7721
7722 Changes with nginx 0.1.7 12 Nov 2004
7723
7724 *) Bugfix: on FreeBSD the segmentation fault may occur if the size of
7725 the transferred file was changed; the bug had appeared in 0.1.5.
7726
7727
7728 Changes with nginx 0.1.6 11 Nov 2004
7729
7730 *) Bugfix: some location directive combinations with the regular
7731 expressions caused the wrong configuration choose.
7732
7733
7734 Changes with nginx 0.1.5 11 Nov 2004
7735
7736 *) Bugfix: on Solaris and Linux there may be too many "recvmsg()
7737 returned not enough data" alerts.
7738
7739 *) Bugfix: there were the "writev() failed (22: Invalid argument)"
7740 errors on Solaris in proxy mode without sendfile. On other platforms
7741 that do not support sendfile at all the process got caught in an
7742 endless loop.
7743
7744 *) Bugfix: segmentation fault on Solaris in proxy mode and using
7745 sendfile.
7746
7747 *) Bugfix: segmentation fault on Solaris.
7748
7749 *) Bugfix: on-line upgrade did not work on Linux.
7750
7751 *) Bugfix: the ngx_http_autoindex_module module did not escape the
7752 spaces, the quotes, and the percent signs in the directory listing.
7753
7754 *) Change: the decrease of the copy operations.
7755
7756 *) Feature: the userid_p3p directive.
7757
7758
7759 Changes with nginx 0.1.4 26 Oct 2004
7760
7761 *) Bugfix: in the ngx_http_autoindex_module.
7762
7763
7764 Changes with nginx 0.1.3 25 Oct 2004
7765
7766 *) Feature: the ngx_http_autoindex_module and the autoindex directive.
7767
7768 *) Feature: the proxy_set_x_url directive.
7769
7770 *) Bugfix: proxy module may get caught in an endless loop when sendfile
7771 is not used.
7772
7773
7774 Changes with nginx 0.1.2 21 Oct 2004
7775
7776 *) Feature: the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS
7777 options in configure.
7778
7779 *) Feature: the server_name directive supports *.domain.tld.
7780
7781 *) Bugfix: the portability improvements.
7782
7783 *) Bugfix: if configuration file was set in command line, the
7784 reconfiguration was impossible; the bug had appeared in 0.1.1.
7785
7786 *) Bugfix: proxy module may get caught in an endless loop when sendfile
7787 is not used.
7788
7789 *) Bugfix: with sendfile the response was not recoded according to the
7790 charset module directives; the bug had appeared in 0.1.1.
7791
7792 *) Bugfix: very seldom bug in the kqueue processing.
7793
7794 *) Bugfix: the gzip module compressed the proxied responses that was
7795 already compressed.
7796
7797
7798 Changes with nginx 0.1.1 11 Oct 2004
7799
7800 *) Feature: the gzip_types directive.
7801
7802 *) Feature: the tcp_nodelay directive.
7803
7804 *) Feature: the send_lowat directive is working not only on OSes that
7805 support kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT.
7806
7807 *) Feature: the setproctitle() emulation for Linux and Solaris.
7808
7809 *) Bugfix: the "Location" header rewrite bug fixed while the proxying.
7810
7811 *) Bugfix: the ngx_http_chunked_module module may get caught in an
7812 endless loop.
7813
7814 *) Bugfix: the /dev/poll module bugs fixed.
7815
7816 *) Bugfix: the responses were corrupted when the temporary files were
7817 used while the proxying.
7818
7819 *) Bugfix: the unescaped requests were passed to the backend.
7820
7821 *) Bugfix: while the build configuration on Linux 2.4 the
7822 --with-poll_module parameter was required.
7823
7824
7825 Changes with nginx 0.1.0 04 Oct 2004
7826
7827 *) The first public version.
7828