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