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