upstream nginx-0.7.38
[nginx.git] / nginx / CHANGES
1
2 Changes with nginx 0.7.38                                        23 Feb 2009
3
4     *) Feature: authentication failures logging.
5
6     *) Bugfix: name/password in auth_basic_user_file were ignored after odd 
7        number of empty lines.
8        Thanks to Alexander Zagrebin.
9
10     *) Bugfix: a segmentation fault occurred in a master process, if long 
11        path was used in unix domain socket; the bug had appeared in 0.7.36.
12
13
14 Changes with nginx 0.7.37                                        21 Feb 2009
15
16     *) Bugfix: directives using upstreams did not work; the bug had 
17        appeared in 0.7.36.
18
19
20 Changes with nginx 0.7.36                                        21 Feb 2009
21
22     *) Feature: a preliminary IPv6 support; the "listen" directive of the 
23        HTTP module supports IPv6.
24
25     *) Bugfix: the $ancient_browser variable did not work for browsers 
26        preset by a "modern_browser" directives.
27
28
29 Changes with nginx 0.7.35                                        16 Feb 2009
30
31     *) Bugfix: a "ssl_engine" directive did not use a SSL-accelerator for 
32        asymmetric ciphers.
33        Thanks to Marcin Gozdalik.
34
35     *) Bugfix: a "try_files" directive set MIME type depending on an 
36        original request extension.
37
38     *) Bugfix: "*domain.tld" names were handled incorrectly in 
39        "server_name", "valid_referers", and "map" directives, if an 
40        ".domain.tld" and ".subdomain.domain.tld" wildcards were used; 
41        the bug had appeared in 0.7.9.
42
43
44 Changes with nginx 0.7.34                                        10 Feb 2009
45
46     *) Feature: the "off" parameter of the "if_modified_since" directive.
47
48     *) Feature: now nginx sends an HELO/EHLO command after a XCLIENT 
49        command.
50        Thanks to Maxim Dounin.
51
52     *) Feature: Microsoft specific "AUTH LOGIN with User Name" mode support 
53        in mail proxy server.
54        Thanks to Maxim Dounin.
55
56     *) Bugfix: in a redirect rewrite directive original arguments were 
57        concatenated with new arguments by an "?" rather than an "&";
58        the bug had appeared in 0.1.18.
59        Thanks to Maxim Dounin.
60
61     *) Bugfix: nginx could not be built on AIX.
62
63
64 Changes with nginx 0.7.33                                        02 Feb 2009
65
66     *) Bugfix: a double response might be returned if the epoll or rtsig 
67        methods are used and a redirect was returned to a request with 
68        body.
69        Thanks to Eden Li.
70
71     *) Bugfix: the $sent_http_location variable was empty for some 
72        redirects types.
73
74     *) Bugfix: a segmentation fault might occur in worker process if 
75        "resolver" directive was used in SMTP proxy.
76
77
78 Changes with nginx 0.7.32                                        26 Jan 2009
79
80     *) Feature: now a directory existence testing can be set explicitly in 
81        the "try_files" directive.
82
83     *) Bugfix: fastcgi_store stored files not always.
84
85     *) Bugfix: in geo ranges.
86
87     *) Bugfix: in shared memory allocations if nginx was built without 
88        debugging.
89        Thanks to Andrey Kvasov.
90
91
92 Changes with nginx 0.7.31                                        19 Jan 2009
93
94     *) Change: now the "try_files" directive tests files only and ignores 
95        directories.
96
97     *) Feature: the "fastcgi_split_path_info" directive.
98
99     *) Bugfixes in an "Expect" request header line support.
100
101     *) Bugfixes in geo ranges.
102
103     *) Bugfix: in a miss case ngx_http_memcached_module returned the "END" 
104        line as response body instead of default 404 page body; the bug had 
105        appeared in 0.7.18.
106        Thanks to Maxim Dounin.
107
108     *) Bugfix: while SMTP proxying nginx issued message "250 2.0.0 OK" 
109        instead of "235 2.0.0 OK"; the bug had appeared in 0.7.22.
110        Thanks to Maxim Dounin.
111
112
113 Changes with nginx 0.7.30                                        24 Dec 2008
114
115     *) Bugfix: a segmentation fault occurred in worker process, if 
116        variables were used in the "fastcgi_pass" or "proxy_pass" directives 
117        and host name must be resolved; the bug had appeared in 0.7.29.
118
119
120 Changes with nginx 0.7.29                                        24 Dec 2008
121
122     *) Bugfix: the "fastcgi_pass" and "proxy_pass" directives did not 
123        support variables if unix domain sockets were used.
124
125     *) Bugfixes in subrequest processing; the bugs had appeared in 0.7.25.
126
127     *) Bugfix: a "100 Continue" response was issued for HTTP/1.0 
128        requests;
129        Thanks to Maxim Dounin.
130
131     *) Bugfix: in memory allocation in the ngx_http_gzip_filter_module on 
132        Cygwin.
133
134
135 Changes with nginx 0.7.28                                        22 Dec 2008
136
137     *) Change: in memory allocation in the ngx_http_gzip_filter_module.
138
139     *) Change: the default "gzip_buffers" directive values have been 
140        changed to 32 4k or 16 8k from 4 4k/8k.
141
142
143 Changes with nginx 0.7.27                                        15 Dec 2008
144
145     *) Feature: the "try_files" directive.
146
147     *) Feature: variables support in the "fastcgi_pass" directive.
148
149     *) Feature: now the $geo variable may get an address from a 
150        variable.
151        Thanks to Andrei Nigmatulin.
152
153     *) Feature: now a location's modifier may be used without space before 
154        name.
155
156     *) Feature: the $upstream_response_length variable.
157
158     *) Bugfix: now a "add_header" directive does not add an empty value.
159
160     *) Bugfix: if zero length static file was requested, then nginx just 
161        closed connection; the bug had appeared in 0.7.25.
162
163     *) Bugfix: a MOVE method could not move file in non-existent directory.
164
165     *) Bugfix: a segmentation fault occurred in worker process, if no one 
166        named location was defined in server, but some one was used in an 
167        error_page directive.
168        Thanks to Sergey Bochenkov.
169
170
171 Changes with nginx 0.7.26                                        08 Dec 2008
172
173     *) Bugfix: in subrequest processing; the bug had appeared in 0.7.25.
174
175
176 Changes with nginx 0.7.25                                        08 Dec 2008
177
178     *) Change: in subrequest processing.
179
180     *) Change: now POSTs without "Content-Length" header line are allowed.
181
182     *) Bugfix: now the "limit_req" and "limit_conn" directives log a 
183        prohibition reason.
184
185     *) Bugfix: in the "delete" parameter of the "geo" directive.
186
187
188 Changes with nginx 0.7.24                                        01 Dec 2008
189
190     *) Feature: the "if_modified_since" directive.
191
192     *) Bugfix: nginx did not process a FastCGI server response, if the 
193        server send too many messages to stderr before response.
194
195     *) Bugfix: the "$cookie_..." variables did not work in the SSI and the 
196        perl module.
197
198
199 Changes with nginx 0.7.23                                        27 Nov 2008
200
201     *) Feature: the "delete" and "ranges" parameters in the "geo" directive.
202
203     *) Feature: speeding up loading of geo base with large number of values.
204
205     *) Feature: decrease of memory required for geo base load.
206
207
208 Changes with nginx 0.7.22                                        20 Nov 2008
209
210     *) Feature: the "none" parameter in the "smtp_auth" directive.
211        Thanks to Maxim Dounin.
212
213     *) Feature: the "$cookie_..." variables.
214
215     *) Bugfix: the "directio" directive did not work in XFS filesystem.
216
217     *) Bugfix: the resolver did not understand big DNS responses.
218        Thanks to Zyb.
219
220
221 Changes with nginx 0.7.21                                        11 Nov 2008
222
223     *) Changes in the ngx_http_limit_req_module.
224
225     *) Feature: the EXSLT support in the ngx_http_xslt_module.
226        Thanks to Denis F. Latypoff.
227
228     *) Workaround: compatibility with glibc 2.3.
229        Thanks to Eric Benson and Maxim Dounin.
230
231     *) Bugfix: nginx could not run on MacOSX 10.4 and earlier; the bug had 
232        appeared in 0.7.6.
233
234
235 Changes with nginx 0.7.20                                        10 Nov 2008
236
237     *) Changes in the ngx_http_gzip_filter_module.
238
239     *) Feature: the ngx_http_limit_req_module.
240
241     *) Bugfix: worker processes might exit on a SIGBUS signal on sparc and 
242        ppc platforms; the bug had appeared in 0.7.3.
243        Thanks to Maxim Dounin.
244
245     *) Bugfix: the "proxy_pass http://host/some:uri" directives did not 
246        work; the bug had appeared in 0.7.12.
247
248     *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" 
249        error.
250
251     *) Bugfix: the ngx_http_secure_link_module did not work inside 
252        locations, whose names are less than 3 characters.
253
254     *) Bugfix: $server_addr variable might have no value.
255
256
257 Changes with nginx 0.7.19                                        13 Oct 2008
258
259     *) Bugfix: version number update.
260
261
262 Changes with nginx 0.7.18                                        13 Oct 2008
263
264     *) Change: the "underscores_in_headers" directive; now nginx does not 
265        allows underscores in a client request header line names.
266
267     *) Feature: the ngx_http_secure_link_module.
268
269     *) Feature: the "real_ip_header" directive supports any header.
270
271     *) Feature: the "log_subrequest" directive.
272
273     *) Feature: the $realpath_root variable.
274
275     *) Feature: the "http_502" and "http_504" parameters of the 
276        "proxy_next_upstream" directive.
277
278     *) Bugfix: the "http_503" parameter of the "proxy_next_upstream" or 
279        "fastcgi_next_upstream" directives did not work.
280
281     *) Bugfix: nginx might send a "Transfer-Encoding: chunked" heaer line 
282        for HEAD requests.
283
284     *) Bugfix: now accept threshold depends on worker_connections.
285
286
287 Changes with nginx 0.7.17                                        15 Sep 2008
288
289     *) Feature: now the "directio" directive works on Linux.
290
291     *) Feature: the $pid variable.
292
293     *) Bugfix: the "directio" optimization that had appeared in 0.7.15 did 
294        not work with open_file_cache.
295
296     *) Bugfix: the "access_log" with variables did not work on Linux; the 
297        bug had appeared in 0.7.7.
298
299     *) Bugfix: the ngx_http_charset_module did not understand quoted 
300        charset name received from backend.
301
302
303 Changes with nginx 0.7.16                                        08 Sep 2008
304
305     *) Bugfix: nginx could not be built on 64-bit platforms; the bug had 
306        appeared in 0.7.15.
307
308
309 Changes with nginx 0.7.15                                        08 Sep 2008
310
311     *) Feature: the ngx_http_random_index_module.
312
313     *) Feature: the "directio" directive has been optimized for file 
314        requests starting from arbitrary position.
315
316     *) Feature: the "directio" directive turns off sendfile if it is 
317        necessary.
318
319     *) Feature: now nginx allows underscores in a client request header 
320        line names.
321
322
323 Changes with nginx 0.7.14                                        01 Sep 2008
324
325     *) Change: now the ssl_certificate and ssl_certificate_key directives 
326        have not default values.
327
328     *) Feature: the "listen" directive supports the "ssl" parameter.
329
330     *) Feature: now nginx takes into account a time zone change while 
331        reconfiguration on FreeBSD and Linux.
332
333     *) Bugfix: the "listen" directive parameters such as "backlog", 
334        "rcvbuf", etc. were not set, if a default server was not the first 
335        one.
336
337     *) Bugfix: if URI part captured by a "rewrite" directive was used as a 
338        query string, then the query string was not escaped.
339
340     *) Bugfix: configuration file validity test improvements.
341
342
343 Changes with nginx 0.7.13                                        26 Aug 2008
344
345     *) Bugfix: nginx could not be built on Linux and Solaris; the bug had 
346        appeared in 0.7.12.
347
348
349 Changes with nginx 0.7.12                                        26 Aug 2008
350
351     *) Feature: the "server_name" directive supports empty name "".
352
353     *) Feature: the "gzip_disable" directive supports special "msie6" mask.
354
355     *) Bugfix: if the "max_fails=0" parameter was used in upstream with 
356        several servers, then a worker process exited on a SIGFPE signal.
357        Thanks to Maxim Dounin.
358
359     *) Bugfix: a request body was dropped while redirection via an 
360        "error_page" directive.
361
362     *) Bugfix: a full response was returned for request method HEAD while 
363        redirection via an "error_page" directive.
364
365     *) Bugfix: the $r->header_in() method did not return value of the 
366        "Host", "User-Agent", and "Connection" request header lines; the bug 
367        had appeared in 0.7.0.
368
369
370 Changes with nginx 0.7.11                                        18 Aug 2008
371
372     *) Change: now ngx_http_charset_module does not work by default with 
373        text/css MIME type.
374
375     *) Feature: now nginx returns the 405 status code for POST method 
376        requesting a static file only if the file exists.
377
378     *) Feature: the "proxy_ssl_session_reuse" directive.
379
380     *) Bugfix: a "proxy_pass" directive without URI part might use original 
381        request after the "X-Accel-Redirect" redirection was used;
382
383     *) Bugfix: if a directory has search only rights and the first index 
384        file was absent, then nginx returned the 500 status code.
385
386     *) Bugfix: in inclusive locations; the bugs had appeared in 0.7.1.
387
388
389 Changes with nginx 0.7.10                                        13 Aug 2008
390
391     *) Bugfix: in the "addition_types", "charset_types", "gzip_types", 
392        "ssi_types", "sub_filter_types", and "xslt_types" directives; the 
393        bugs had appeared in 0.7.9.
394
395     *) Bugfix: of recursive error_page for 500 status code.
396
397     *) Bugfix: now the ngx_http_realip_module sets address not for whole 
398        keepalive connection, but for each request passed via the connection.
399
400
401 Changes with nginx 0.7.9                                         12 Aug 2008
402
403     *) Change: now ngx_http_charset_module works by default with following 
404        MIME types: text/html, text/css, text/xml, text/plain, 
405        text/vnd.wap.wml, application/x-javascript, and application/rss+xml.
406
407     *) Feature: the "charset_types" and "addition_types" directives.
408
409     *) Feature: now the "gzip_types", "ssi_types", and "sub_filter_types" 
410        directives use hash.
411
412     *) Feature: the ngx_cpp_test_module.
413
414     *) Feature: the "expires" directive supports daily time.
415
416     *) Feature: the ngx_http_xslt_module improvements and bug fixing.
417        Thanks to Denis F. Latypoff and Maxim Dounin.
418
419     *) Bugfix: the "log_not_found" directive did not work for index files 
420        tests.
421
422     *) Bugfix: HTTPS connections might hang, if kqueue, epoll, rtsig, or 
423        eventport methods were used; the bug had appeared in 0.7.7.
424
425     *) Bugfix: if the "server_name", "valid_referers", and "map" directives 
426        used an "*.domain.tld" wildcard and exact name "domain.tld" was not 
427        set, then the exact name was matched by the wildcard; the bug had 
428        appeared in 0.3.18.
429
430
431 Changes with nginx 0.7.8                                         04 Aug 2008
432
433     *) Feature: the ngx_http_xslt_module.
434
435     *) Feature: the "$arg_..." variables.
436
437     *) Feature: Solaris directio support.
438        Thanks to Ivan Debnar.
439
440     *) Bugfix: now if FastCGI server sends a "Location" header line without 
441        status line, then nginx uses 302 status code.
442        Thanks to Maxim Dounin.
443
444
445 Changes with nginx 0.7.7                                         30 Jul 2008
446
447     *) Change: now the EAGAIN error returned by connect() is not considered 
448        as temporary error.
449
450     *) Change: now the $ssl_client_cert variable value is a certificate 
451        with TAB character intended before each line except first one; an 
452        unchanged certificate is available in the $ssl_client_raw_cert 
453        variable.
454
455     *) Feature: the "ask" parameter in the "ssl_verify_client" directive.
456
457     *) Feature: byte-range processing improvements.
458        Thanks to Maxim Dounin.
459
460     *) Feature: the "directio" directive.
461        Thanks to Jiang Hong.
462
463     *) Feature: MacOSX 10.5 sendfile() support.
464
465     *) Bugfix: now in MacOSX and Cygwin locations are tested in case 
466        insensitive mode; however, the compare is provided by single-byte 
467        locales only.
468
469     *) Bugfix: mail proxy SSL connections hanged, if select, poll, or 
470        /dev/poll methods were used.
471
472     *) Bugfix: UTF-8 encoding usage in the ngx_http_autoindex_module.
473
474
475 Changes with nginx 0.7.6                                         07 Jul 2008
476
477     *) Bugfix: now if variables are used in the "access_log" directive a 
478        request root existence is always tested.
479
480     *) Bugfix: the ngx_http_flv_module did not support several values in a 
481        query string.
482
483
484 Changes with nginx 0.7.5                                         01 Jul 2008
485
486     *) Bugfixes in variables support in the "access_log" directive; the 
487        bugs had appeared in 0.7.4.
488
489     *) Bugfix: nginx could not be built --without-http_gzip_module; the bug 
490        had appeared in 0.7.3.
491        Thanks to Kirill A. Korinskiy.
492
493     *) Bugfix: if sub_filter and SSI were used together, then responses 
494        might were transferred incorrectly.
495
496
497 Changes with nginx 0.7.4                                         30 Jun 2008
498
499     *) Feature: variables support in the "access_log" directive.
500
501     *) Feature: the "open_log_file_cache" directive.
502
503     *) Feature: the -g switch.
504
505     *) Feature: the "Expect" request header line support.
506
507     *) Bugfix: large SSI inclusions might be truncated.
508
509
510 Changes with nginx 0.7.3                                         23 Jun 2008
511
512     *) Change: the "rss" extension MIME type has been changed to 
513        "application/rss+xml".
514
515     *) Change: now the "gzip_vary" directive turned on issues a 
516        "Vary: Accept-Encoding" header line for uncompressed responses too.
517
518     *) Feature: now the "rewrite" directive does a redirect automatically 
519        if the "https://" protocol is used.
520
521     *) Bugfix: the "proxy_pass" directive did not work with the HTTPS 
522        protocol; the bug had appeared in 0.6.9.
523
524
525 Changes with nginx 0.7.2                                         16 Jun 2008
526
527     *) Feature: now nginx supports EDH key exchange ciphers.
528
529     *) Feature: the "ssl_dhparam" directive.
530
531     *) Feature: the $ssl_client_cert variable.
532        Thanks to Manlio Perillo.
533
534     *) Bugfix: after changing URI via a "rewrite" directive nginx did not 
535        search a new location; the bug had appeared in 0.7.1.
536        Thanks to Maxim Dounin.
537
538     *) Bugfix: nginx could not be built without PCRE library; the bug had 
539        appeared in 0.7.1.
540
541     *) Bugfix: when a request to a directory was redirected with the slash 
542        added, nginx dropped a query string from the original request.
543
544
545 Changes with nginx 0.7.1                                         26 May 2008
546
547     *) Change: now locations are searched in a tree.
548
549     *) Change: the "optimize_server_names" directive was canceled due to 
550        the "server_name_in_redirect" directive introduction.
551
552     *) Change: some long deprecated directives are not supported anymore.
553
554     *) Change: the "none" parameter in the "ssl_session_cache" directive; 
555        now this is default parameter.
556        Thanks to Rob Mueller.
557
558     *) Bugfix: worker processes might not catch reconfiguration and log 
559        rotation signals.
560
561     *) Bugfix: nginx could not be built on latest Fedora 9 Linux.
562        Thanks to Roxis.
563
564
565 Changes with nginx 0.7.0                                         19 May 2008
566
567     *) Change: now the 0x00-0x1F, '"' and '\' characters are escaped as 
568        \xXX in an access_log.
569        Thanks to Maxim Dounin.
570
571     *) Change: now nginx allows several "Host" request header line.
572
573     *) Feature: the "modified" flag in the "expires" directive.
574
575     *) Feature: the $uid_got and $uid_set variables may be used at any 
576        request processing stage.
577
578     *) Feature: the $hostname variable.
579        Thanks to Andrei Nigmatulin.
580
581     *) Feature: DESTDIR support.
582        Thanks to Todd A. Fisher and Andras Voroskoi.
583
584     *) Bugfix: a segmentation fault might occur in worker process on Linux, 
585        if keepalive was enabled.
586
587
588 Changes with nginx 0.6.31                                        12 May 2008
589
590     *) Bugfix: nginx did not process FastCGI response if header was at the 
591        end of FastCGI record; the bug had appeared in 0.6.2.
592        Thanks to Sergey Serov.
593
594     *) Bugfix: a segmentation fault might occur in worker process if a file 
595        was deleted and the "open_file_cache_errors" directive was off.
596
597
598 Changes with nginx 0.6.30                                        29 Apr 2008
599
600     *) Change: now if an "include" directive pattern does not match any 
601        file, then nginx does not issue an error.
602
603     *) Feature: now the time in directives may be specified without spaces, 
604        for example, "1h50m".
605
606     *) Bugfix: memory leaks if the "ssl_verify_client" directive was on.
607        Thanks to Chavelle Vincent.
608
609     *) Bugfix: the "sub_filter" directive might set text to change into 
610        output.
611
612     *) Bugfix: the "error_page" directive did not take into account 
613        arguments in redirected URI.
614
615     *) Bugfix: now nginx always opens files in binary mode under Cygwin.
616
617     *) Bugfix: nginx could not be built on OpenBSD; the bug had appeared in 
618        0.6.15.
619
620
621 Changes with nginx 0.6.29                                        18 Mar 2008
622
623     *) Feature: the ngx_google_perftools_module.
624
625     *) Bugfix: the ngx_http_perl_module could not be built on 64-bit 
626        platforms; the bug had appeared in 0.6.27.
627
628
629 Changes with nginx 0.6.28                                        13 Mar 2008
630
631     *) Bugfix: the rtsig method could not be built; the bug had appeared in 
632        0.6.27.
633
634
635 Changes with nginx 0.6.27                                        12 Mar 2008
636
637     *) Change: now by default the rtsig method is not built on 
638        Linux 2.6.18+.
639
640     *) Change: now a request method is not changed while redirection to a 
641        named location via an "error_page" directive.
642
643     *) Feature: the "resolver" and "resolver_timeout" directives in SMTP 
644        proxy.
645
646     *) Feature: the "post_action" directive supports named locations.
647
648     *) Bugfix: a segmentation fault occurred in worker process, if a 
649        request was redirected from proxy, FastCGI, or memcached location to 
650        static named locations.
651
652     *) Bugfix: browsers did not repeat SSL handshake if there is no valid 
653        client certificate in first handshake. 
654        Thanks to Alexander V. Inyukhin.
655
656     *) Bugfix: if response code 495-497 was redirected via an "error_page" 
657        directive without code change, then nginx tried to allocate too many 
658        memory.
659
660     *) Bugfix: memory leak in long-lived non buffered connections.
661
662     *) Bugfix: memory leak in resolver.
663
664     *) Bugfix: a segmentation fault occurred in worker process, if a 
665        request was redirected from proxy, FastCGI, or memcached location to 
666        static named locations.
667
668     *) Bugfix: in the $proxy_host and $proxy_port variables caching.
669        Thanks to Sergey Bochenkov.
670
671     *) Bugfix: a "proxy_pass" directive with variables used incorrectly the 
672        same port as in another "proxy_pass" directive with the same host 
673        name and without variables.
674        Thanks to Sergey Bochenkov.
675
676     *) Bugfix: an alert "sendmsg() failed (9: Bad file descriptor)" on some 
677        64-bit platforms while reconfiguration.
678
679     *) Bugfix: a segmentation fault occurred in worker process, if empty 
680        stub block was used second time in SSI.
681
682     *) Bugfix: in copying URI part contained escaped symbols into arguments.
683
684
685 Changes with nginx 0.6.26                                        11 Feb 2008
686
687     *) Bugfix: the "proxy_store" and "fastcgi_store" directives did not 
688        check a response length.
689
690     *) Bugfix: a segmentation fault occurred in worker process, if big 
691        value was used in a "expires" directive.
692        Thanks to Joaquin Cuenca Abela.
693
694     *) Bugfix: nginx incorrectly detected cache line size on Pentium 4.
695        Thanks to Gena Makhomed.
696
697     *) Bugfix: in proxied or FastCGI subrequests a client original method 
698        was used instead of the GET method.
699
700     *) Bugfix: socket leak in HTTPS mode if deferred accept was used.
701        Thanks to Ben Maurer.
702
703     *) Bugfix: nginx issued the bogus error message "SSL_shutdown() failed 
704        (SSL: )"; the bug had appeared in 0.6.23.
705
706     *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" 
707        error; the bug had appeared in 0.6.23.
708
709
710 Changes with nginx 0.6.25                                        08 Jan 2008
711
712     *) Change: now the "server_name_in_redirect" directive is used instead 
713        of the "server_name" directive's special "*" parameter.
714
715     *) Change: now wildcard and regex names can be used as main name in a 
716        "server_name" directive.
717
718     *) Change: the "satisfy_any" directive was replaced by the "satisfy" 
719        directive.
720
721     *) Workaround: old worker processes might hog CPU after reconfiguration 
722        if they was run under Linux OpenVZ.
723
724     *) Feature: the "min_delete_depth" directive.
725
726     *) Bugfix: the COPY and MOVE methods did not work with single files.
727
728     *) Bugfix: the ngx_http_gzip_static_module did not allow the 
729        ngx_http_dav_module to work; the bug had appeared in 0.6.23.
730
731     *) Bugfix: socket leak in HTTPS mode if deferred accept was used.
732        Thanks to Ben Maurer.
733
734     *) Bugfix: nginx could not be built without PCRE library; the bug had 
735        appeared in 0.6.23.
736
737
738 Changes with nginx 0.6.24                                        27 Dec 2007
739
740     *) Bugfix: a segmentation fault might occur in worker process if HTTPS 
741        was used; the bug had appeared in 0.6.23.
742
743
744 Changes with nginx 0.6.23                                        27 Dec 2007
745
746     *) Change: the "off" parameter in the "ssl_session_cache" directive; 
747        now this is default parameter.
748
749     *) Change: the "open_file_cache_retest" directive was renamed to the 
750        "open_file_cache_valid".
751
752     *) Feature: the "open_file_cache_min_uses" directive.
753
754     *) Feature: the ngx_http_gzip_static_module.
755
756     *) Feature: the "gzip_disable" directive.
757
758     *) Feature: the "memcached_pass" directive may be used inside the "if" 
759        block.
760
761     *) Bugfix: a segmentation fault occurred in worker process, if the 
762        "memcached_pass" and "if" directives were used in the same location.
763
764     *) Bugfix: if a "satisfy_any on" directive was used and not all access 
765        and auth modules directives were set, then other given access and 
766        auth directives were not tested;
767
768     *) Bugfix: regex parameters in a "valid_referers" directive were not 
769        inherited from previous level.
770
771     *) Bugfix: a "post_action" directive did run if a request was completed 
772        with 499 status code.
773
774     *) Bugfix: optimization of 16K buffer usage in a SSL connection.
775        Thanks to Ben Maurer.
776
777     *) Bugfix: the STARTTLS in SMTP mode did not work.
778        Thanks to Oleg Motienko.
779
780     *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" 
781        error; the bug had appeared in 0.5.13.
782
783
784 Changes with nginx 0.6.22                                        19 Dec 2007
785
786     *) Change: now all ngx_http_perl_module methods return values copied to 
787        perl's allocated memory.
788
789     *) Bugfix: if nginx was built with ngx_http_perl_module, the perl 
790        before 5.8.6 was used, and perl supported threads, then during 
791        reconfiguration the master process aborted; the bug had appeared in 
792        0.5.9.
793        Thanks to Boris Zhmurov.
794
795     *) Bugfix: the ngx_http_perl_module methods may get invalid values of 
796        the regex captures.
797
798     *) Bugfix: a segmentation fault occurred in worker process, if the 
799        $r->has_request_body() method was called for a request whose small 
800        request body was already received.
801
802     *) Bugfix: large_client_header_buffers did not freed before going to 
803        keep-alive state.
804        Thanks to Olexander Shtepa.
805
806     *) Bugfix: the last address was missed in the $upstream_addr variable; 
807        the bug had appeared in 0.6.18.
808
809     *) Bugfix: the "fastcgi_catch_stderr" directive did return error code; 
810        now it returns 502 code, that can be rerouted to a next server using 
811        the "fastcgi_next_upstream invalid_header" directive.
812
813     *) Bugfix: a segmentation fault occurred in master process if the 
814        "fastcgi_catch_stderr" directive was used; the bug had appeared in 
815        0.6.10.
816        Thanks to Manlio Perillo.
817
818
819 Changes with nginx 0.6.21                                        03 Dec 2007
820
821     *) Change: if variable values used in a "proxy_pass" directive contain 
822        IP-addresses only, then a "resolver" directive is not mandatory.
823
824     *) Bugfix: a segmentation fault might occur in worker process if a 
825        "proxy_pass" directive with URI-part was used; the bug had appeared 
826        in 0.6.19.
827
828     *) Bugfix: if resolver was used on platform that does not support 
829        kqueue, then nginx issued an alert "name is out of response".
830        Thanks to Andrei Nigmatulin.
831
832     *) Bugfix: if the $server_protocol was used in FastCGI parameters and a 
833        request line length was near to the "client_header_buffer_size" 
834        directive value, then nginx issued an alert "fastcgi: the request 
835        record is too big".
836
837     *) Bugfix: if a plain text HTTP/0.9 version request was made to HTTPS 
838        server, then nginx returned usual response.
839
840
841 Changes with nginx 0.6.20                                        28 Nov 2007
842
843     *) Bugfix: a segmentation fault might occur in worker process if a 
844        "proxy_pass" directive with URI-part was used; the bug had appeared 
845        in 0.6.19.
846
847
848 Changes with nginx 0.6.19                                        27 Nov 2007
849
850     *) Bugfix: the 0.6.18 version could not be built.
851
852
853 Changes with nginx 0.6.18                                        27 Nov 2007
854
855     *) Change: now the ngx_http_userid_module adds start time microseconds 
856        to the cookie field contains a pid value.
857
858     *) Change: now the full request line instead of URI only is written to 
859        error_log.
860
861     *) Feature: variables support in the "proxy_pass" directive.
862
863     *) Feature: the "resolver" and "resolver_timeout" directives.
864
865     *) Feature: now the directive "add_header last-modified ''" deletes a 
866        "Last-Modified" response header line.
867
868     *) Bugfix: the "limit_rate" directive did not allow to use full 
869        throughput, even if limit value was very high.
870
871
872 Changes with nginx 0.6.17                                        15 Nov 2007
873
874     *) Feature: the "If-Range" request header line support.
875        Thanks to Alexander V. Inyukhin.
876
877     *) Bugfix: URL double escaping in a redirect of the "msie_refresh" 
878        directive; the bug had appeared in 0.6.4.
879
880     *) Bugfix: the "autoindex" directive did not work with the "alias /" 
881        directive.
882
883     *) Bugfix: a segmentation fault might occur in worker process if 
884        subrequests were used.
885
886     *) Bugfix: the big responses may be transferred truncated if SSL and 
887        gzip were used.
888
889     *) Bugfix: the $status variable was equal to 0 if a proxied server 
890        returned response in HTTP/0.9 version.
891
892
893 Changes with nginx 0.6.16                                        29 Oct 2007
894
895     *) Change: now the uname(2) is used on Linux instead of procfs.
896        Thanks to Ilya Novikov.
897
898     *) Bugfix: if the "?" character was in a "error_page" directive, then 
899        it was escaped in a proxied request; the bug had appeared in 0.6.11.
900
901     *) Bugfix: compatibility with mget.
902
903
904 Changes with nginx 0.6.15                                        22 Oct 2007
905
906     *) Feature: Cygwin compatibility.
907        Thanks to Vladimir Kutakov.
908
909     *) Feature: the "merge_slashes" directive.
910
911     *) Feature: the "gzip_vary" directive.
912
913     *) Feature: the "server_tokens" directive.
914
915     *) Bugfix: nginx did not unescape URI in the "include" SSI command.
916
917     *) Bugfix: the segmentation fault was occurred on start or while 
918        reconfiguration if variable was used in the "charset" or 
919        "source_charset" directives.
920
921     *) Bugfix: nginx returned the 400 response on requests like 
922        "GET http://www.domain.com HTTP/1.0".
923        Thanks to James Oakley.
924
925     *) Bugfix: if request with request body was redirected using the 
926        "error_page" directive, then nginx tried to read the request body 
927        again; the bug had appeared in 0.6.7.
928
929     *) Bugfix: a segmentation fault occurred in worker process if no 
930        server_name was explicitly defined for server processing request; 
931        the bug had appeared in 0.6.7.
932
933
934 Changes with nginx 0.6.14                                        15 Oct 2007
935
936     *) Change: now by default the "echo" SSI command uses entity encoding.
937
938     *) Feature: the "encoding" parameter in the "echo" SSI command.
939
940     *) Feature: the "access_log" directive may be used inside the 
941        "limit_except" block.
942
943     *) Bugfix: if all upstream servers were failed, then all servers had 
944        got weight the was equal one until servers became alive; the bug had 
945        appeared in 0.6.6.
946
947     *) Bugfix: a segmentation fault occurred in worker process if 
948        $date_local and $date_gmt were used outside the 
949        ngx_http_ssi_filter_module.
950
951     *) Bugfix: a segmentation fault might occur in worker process if debug 
952        log was enabled.
953        Thanks to Andrei Nigmatulin.
954
955     *) Bugfix: ngx_http_memcached_module did not set 
956        $upstream_response_time.
957        Thanks to Maxim Dounin.
958
959     *) Bugfix: a worker process may got caught in an endless loop, if the 
960        memcached was used.
961
962     *) Bugfix: nginx supported low case only "close" and "keep-alive" 
963        values in the "Connection" request header line; the bug had appeared 
964        in 0.6.11.
965
966     *) Bugfix: sub_filter did not work with empty substitution.
967
968     *) Bugfix: in sub_filter parsing.
969
970
971 Changes with nginx 0.6.13                                        24 Sep 2007
972
973     *) Bugfix: nginx did not close directory file on HEAD request if 
974        autoindex was used.
975        Thanks to Arkadiusz Patyk.
976
977
978 Changes with nginx 0.6.12                                        21 Sep 2007
979
980     *) Change: mail proxy was split on three modules: pop3, imap and smtp.
981
982     *) Feature: the --without-mail_pop3_module, --without-mail_imap_module, 
983        and --without-mail_smtp_module configuration parameters.
984
985     *) Feature: the "smtp_greeting_delay" and "smtp_client_buffer" 
986        directives of the ngx_mail_smtp_module.
987
988     *) Bugfix: the trailing wildcards did not work; the bug had appeared in 
989        0.6.9.
990
991     *) Bugfix: nginx could not start on Solaris if the shared PCRE library 
992        located in non-standard place was used.
993
994     *) Bugfix: the "proxy_hide_header" and "fastcgi_hide_header" directives 
995        did not hide response header lines whose name was longer than 32 
996        characters.
997        Thanks to Manlio Perillo.
998
999
1000 Changes with nginx 0.6.11                                        11 Sep 2007
1001
1002     *) Bugfix: active connection counter always increased if mail proxy was 
1003        used.
1004
1005     *) Bugfix: if backend returned response header only using non-buffered 
1006        proxy, then nginx closed backend connection on timeout.
1007
1008     *) Bugfix: nginx did not support several "Connection" request header 
1009        lines.
1010
1011     *) Bugfix: if the "max_fails" was set for upstream server, then after 
1012        first failure server weight was always one; the bug had appeared in 
1013        0.6.6.
1014
1015
1016 Changes with nginx 0.6.10                                        03 Sep 2007
1017
1018     *) Feature: the "open_file_cache", "open_file_cache_retest", and 
1019        "open_file_cache_errors" directives.
1020
1021     *) Bugfix: socket leak; the bug had appeared in 0.6.7.
1022
1023     *) Bugfix: a charset set by the "charset" directive was not appended to 
1024        the "Content-Type" header set by $r->send_http_header().
1025
1026     *) Bugfix: a segmentation fault might occur in worker process if 
1027        /dev/poll method was used.
1028
1029
1030 Changes with nginx 0.6.9                                         28 Aug 2007
1031
1032     *) Bugfix: a worker process may got caught in an endless loop, if the 
1033        HTTPS protocol was used; the bug had appeared in 0.6.7.
1034
1035     *) Bugfix: if server listened on two addresses or ports and trailing 
1036        wildcard was used, then nginx did not run.
1037
1038     *) Bugfix: the "ip_hash" directive might incorrectly mark servers as 
1039        down.
1040
1041     *) Bugfix: nginx could not be built on amd64; the bug had appeared in 
1042        0.6.8.
1043
1044
1045 Changes with nginx 0.6.8                                         20 Aug 2007
1046
1047     *) Change: now nginx tries to set the "worker_priority", 
1048        "worker_rlimit_nofile", "worker_rlimit_core", and 
1049        "worker_rlimit_sigpending" without super-user privileges.
1050
1051     *) Change: now nginx escapes space and "%" in request to a mail proxy 
1052        authentication server.
1053
1054     *) Change: now nginx escapes "%" in $memcached_key variable.
1055
1056     *) Bugfix: nginx used path relative to configuration prefix for 
1057        non-absolute configuration file path specified in the "-c" key; the 
1058        bug had appeared in 0.6.6.
1059
1060     *) Bugfix: nginx did not work on FreeBSD/sparc64.
1061
1062
1063 Changes with nginx 0.6.7                                         15 Aug 2007
1064
1065     *) Change: now the paths specified in the "include", 
1066        "auth_basic_user_file", "perl_modules", "ssl_certificate", 
1067        "ssl_certificate_key", and "ssl_client_certificate" directives are 
1068        relative to directory of nginx configuration file nginx.conf, but 
1069        not to nginx prefix directory.
1070
1071     *) Change: the --sysconfdir=PATH option in configure was canceled.
1072
1073     *) Change: the special make target "upgrade1" was defined for online 
1074        upgrade of 0.1.x versions.
1075
1076     *) Feature: the "server_name" and "valid_referers" directives support 
1077        regular expressions.
1078
1079     *) Feature: the "server" directive in the "upstream" context supports 
1080        the "backup" parameter.
1081
1082     *) Feature: the ngx_http_perl_module supports the 
1083        $r->discard_request_body.
1084
1085     *) Feature: the "add_header Last-Modified ..." directive changes the 
1086        "Last-Modified" response header line.
1087
1088     *) Bugfix: if a response different than 200 was returned to a request 
1089        with body and connection went to the keep-alive state after the 
1090        request, then nginx returned 400 for the next request.
1091
1092     *) Bugfix: a segmentation fault occurred in worker process if invalid 
1093        address was set in the "auth_http" directive.
1094
1095     *) Bugfix: now nginx uses default listen backlog value 511 on all 
1096        platforms except FreeBSD.
1097        Thanks to Jiang Hong.
1098
1099     *) Bugfix: a worker process may got caught in an endless loop, if a 
1100        "server" inside "upstream" block was marked as "down"; the bug had 
1101        appeared in 0.6.6.
1102
1103     *) Bugfix: now Solaris sendfilev() is not used to transfer the client 
1104        request body to FastCGI-server via the unix domain socket.
1105
1106
1107 Changes with nginx 0.6.6                                         30 Jul 2007
1108
1109     *) Feature: the --sysconfdir=PATH option in configure.
1110
1111     *) Feature: named locations.
1112
1113     *) Feature: the $args variable can be set with the "set" directive.
1114
1115     *) Feature: the $is_args variable.
1116
1117     *) Bugfix: fair big weight upstream balancer.
1118
1119     *) Bugfix: if a client has closed connection to mail proxy then nginx 
1120        might not close connection to backend.
1121
1122     *) Bugfix: if the same host without specified port was used as backend 
1123        for HTTP and HTTPS, then nginx used only one port - 80 or 443.
1124
1125     *) Bugfix: fix building on Solaris/amd64 by Sun Studio 11 and early 
1126        versions; the bug had appeared in 0.6.4.
1127
1128
1129 Changes with nginx 0.6.5                                         23 Jul 2007
1130
1131     *) Feature: $nginx_version variable.
1132        Thanks to Nick S. Grechukh.
1133
1134     *) Feature: the mail proxy supports AUTHENTICATE in IMAP mode.
1135        Thanks to Maxim Dounin.
1136
1137     *) Feature: the mail proxy supports STARTTLS in SMTP mode.
1138        Thanks to Maxim Dounin.
1139
1140     *) Bugfix: now nginx escapes space in $memcached_key variable.
1141
1142     *) Bugfix: nginx was incorrectly built by Sun Studio on 
1143        Solaris/amd64.
1144        Thanks to Jiang Hong.
1145
1146     *) Bugfix: of minor potential bugs.
1147        Thanks to Coverity's Scan.
1148
1149
1150 Changes with nginx 0.6.4                                         17 Jul 2007
1151
1152     *) Security: the "msie_refresh" directive allowed XSS.
1153        Thanks to Maxim Boguk.
1154
1155     *) Change: the "proxy_store" and "fastcgi_store" directives were 
1156        changed.
1157
1158     *) Feature: the "proxy_store_access" and "fastcgi_store_access" 
1159        directives.
1160
1161     *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun 
1162        Studio.
1163        Thanks to Andrei Nigmatulin.
1164
1165     *) Workaround: for Sun Studio 12.
1166        Thanks to Jiang Hong.
1167
1168
1169 Changes with nginx 0.6.3                                         12 Jul 2007
1170
1171     *) Feature: the "proxy_store" and "fastcgi_store" directives.
1172
1173     *) Bugfix: a segmentation fault might occur in worker process if the 
1174        "auth_http_header" directive was used.
1175        Thanks to Maxim Dounin.
1176
1177     *) Bugfix: a segmentation fault occurred in worker process if the 
1178        CRAM-MD5 authentication method was used, but it was not enabled.
1179
1180     *) Bugfix: a segmentation fault might occur in worker process when the 
1181        HTTPS protocol was used in the "proxy_pass" directive.
1182
1183     *) Bugfix: a segmentation fault might occur in worker process if the 
1184        eventport method was used.
1185
1186     *) Bugfix: the "proxy_ignore_client_abort" and 
1187        "fastcgi_ignore_client_abort" directives did not work; the bug had 
1188        appeared in 0.5.13.
1189
1190
1191 Changes with nginx 0.6.2                                         09 Jul 2007
1192
1193     *) Bugfix: if the FastCGI header was split in records, then nginx 
1194        passed garbage in the header to a client.
1195
1196
1197 Changes with nginx 0.6.1                                         17 Jun 2007
1198
1199     *) Bugfix: in SSI parsing.
1200
1201     *) Bugfix: if remote SSI subrequest was used, then posterior local file 
1202        subrequest might transferred to client in wrong order.
1203
1204     *) Bugfix: large SSI inclusions buffered in temporary files were 
1205        truncated.
1206
1207     *) Bugfix: the perl $$ variable value in ngx_http_perl_module was equal 
1208        to the master process identification number.
1209
1210
1211 Changes with nginx 0.6.0                                         14 Jun 2007
1212
1213     *) Feature: the "server_name", "map", and "valid_referers" directives 
1214        support the "www.example.*" wildcards.
1215
1216
1217 Changes with nginx 0.5.25                                        11 Jun 2007
1218
1219     *) Bugfix: nginx could not be built with the 
1220        --without-http_rewrite_module parameter; the bug had appeared in 
1221        0.5.24.
1222
1223
1224 Changes with nginx 0.5.24                                        06 Jun 2007
1225
1226     *) Security: the "ssl_verify_client" directive did not work if request 
1227        was made using HTTP/0.9.
1228
1229     *) Bugfix: a part of response body might be passed uncompressed if gzip 
1230        was used; the bug had appeared in 0.5.23.
1231
1232
1233 Changes with nginx 0.5.23                                        04 Jun 2007
1234
1235     *) Feature: the ngx_http_ssl_module supports Server Name Indication TLS 
1236        extension.
1237
1238     *) Feature: the "fastcgi_catch_stderr" directive.
1239        Thanks to Nick S. Grechukh, OWOX project.
1240
1241     *) Bugfix: a segmentation fault occurred in master process if two 
1242        virtual servers should bind() to the overlapping ports.
1243
1244     *) Bugfix: if nginx was built with ngx_http_perl_module and perl 
1245        supported threads, then during second reconfiguration the error 
1246        messages "panic: MUTEX_LOCK" and "perl_parse() failed" were issued.
1247
1248     *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
1249
1250
1251 Changes with nginx 0.5.22                                        29 May 2007
1252
1253     *) Bugfix: a big request body might not be passed to backend; the bug 
1254        had appeared in 0.5.21.
1255
1256
1257 Changes with nginx 0.5.21                                        28 May 2007
1258
1259     *) Bugfix: if server has more than about ten locations, then regex 
1260        locations might be choosen not in that order as they were specified.
1261
1262     *) Bugfix: a worker process may got caught in an endless loop on 64-bit 
1263        platform, if the 33-rd or next in succession backend has failed.
1264        Thanks to Anton Povarov.
1265
1266     *) Bugfix: a bus error might occur on Solaris/sparc64 if the PCRE 
1267        library was used.
1268        Thanks to Andrei Nigmatulin.
1269
1270     *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
1271
1272
1273 Changes with nginx 0.5.20                                        07 May 2007
1274
1275     *) Feature: the "sendfile_max_chunk" directive.
1276
1277     *) Feature: the "$http_...", "$sent_http_...", and "$upstream_http_..." 
1278        variables may be changed using the "set" directive.
1279
1280     *) Bugfix: a segmentation fault might occur in worker process if the 
1281        SSI command 'if expr="$var = /"' was used.
1282
1283     *) Bugfix: trailing boundary of multipart range response was 
1284        transferred incorrectly.
1285        Thanks to Evan Miller.
1286
1287     *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun 
1288        Studio.
1289        Thanks to Andrei Nigmatulin.
1290
1291     *) Bugfix: the ngx_http_perl_module could not be built by Solaris 
1292        make.
1293        Thanks to Andrei Nigmatulin.
1294
1295
1296 Changes with nginx 0.5.19                                        24 Apr 2007
1297
1298     *) Change: now the $request_time variable has millisecond precision.
1299
1300     *) Change: the method $r->rflush of ngx_http_perl_module was renamed to 
1301        the $r->flush.
1302
1303     *) Feature: the $upstream_addr variable.
1304
1305     *) Feature: the "proxy_headers_hash_max_size" and 
1306        "proxy_headers_hash_bucket_size" directives.
1307        Thanks to Volodymyr Kostyrko.
1308
1309     *) Bugfix: the files more than 2G could not be transferred using 
1310        sendfile and limit_rate on 64-bit platforms.
1311
1312     *) Bugfix: the files more than 2G could not be transferred using 
1313        sendfile on 64-bit Linux.
1314
1315
1316 Changes with nginx 0.5.18                                        19 Apr 2007
1317
1318     *) Feature: the ngx_http_sub_filter_module.
1319
1320     *) Feature: the "$upstream_http_..." variables.
1321
1322     *) Feature: now the $upstream_status and $upstream_response_time 
1323        variables keep data about all upstreams before X-Accel-Redirect.
1324
1325     *) Bugfix: a segmentation fault occurred in master process after first 
1326        reconfiguration and receiving any signal if nginx was built with 
1327        ngx_http_perl_module and perl did not support multiplicity; the bug 
1328        had appeared in 0.5.9.
1329
1330     *) Bugfix: if perl did not support multiplicity, then after 
1331        reconfiguration perl code did not work; the bug had appeared in 
1332        0.3.38.
1333
1334
1335 Changes with nginx 0.5.17                                        02 Apr 2007
1336
1337     *) Change: now nginx always returns the 405 status for the TRACE method.
1338
1339     *) Feature: now nginx supports the "include" directive inside the 
1340        "types" block.
1341
1342     *) Bugfix: the $document_root variable usage in the "root" and "alias" 
1343        directives is disabled: this caused recursive stack overflow.
1344
1345     *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
1346
1347     *) Bugfix: in some cases non-cachable variables (such as $uri variable) 
1348        returned old cached value.
1349
1350
1351 Changes with nginx 0.5.16                                        26 Mar 2007
1352
1353     *) Bugfix: the C-class network was not used as hash key in the 
1354        "ip_hash" directive.
1355        Thanks to Pavel Yarkovoy.
1356
1357     *) Bugfix: a segmentation fault might occur in worker process if a 
1358        charset was set in the "Content-Type" header line and the line has 
1359        trailing ";"; the bug had appeared in 0.3.50.
1360
1361     *) Bugfix: the "[alert] zero size buf" error when FastCGI server was 
1362        used and a request body written in a temporary file was multiple of 
1363        32K.
1364
1365     *) Bugfix: nginx could not be built on Solaris without the --with-debug 
1366        option; the bug had appeared in 0.5.15.
1367
1368
1369 Changes with nginx 0.5.15                                        19 Mar 2007
1370
1371     *) Feature: the mail proxy supports authenticated SMTP proxying and the 
1372        "smtp_auth", "smtp_capablities", and "xclient" directives.
1373        Thanks to Anton Yuzhaninov and Maxim Dounin.
1374
1375     *) Feature: now the keep-alive connections are closed just after 
1376        receiving the reconfiguration signal.
1377
1378     *) Change: the "imap" and "auth" directives were renamed to the "mail" 
1379        and "pop3_auth" directives.
1380
1381     *) Bugfix: a segmentation fault occurred in worker process if the 
1382        CRAM-MD5 authentication method was used and the APOP method was 
1383        disabled.
1384
1385     *) Bugfix: if the "starttls only" directive was used in POP3 protocol, 
1386        then nginx allowed authentication without switching to the SSL mode.
1387
1388     *) Bugfix: worker processes did not exit after reconfiguration and did 
1389        not rotate logs if the eventport method was used.
1390
1391     *) Bugfix: a worker process may got caught in an endless loop, if the 
1392        "ip_hash" directive was used.
1393
1394     *) Bugfix: now nginx does not log some alerts if eventport or /dev/poll 
1395        methods are used.
1396
1397
1398 Changes with nginx 0.5.14                                        23 Feb 2007
1399
1400     *) Bugfix: nginx ignored superfluous closing "}" in the end of 
1401        configuration file.
1402
1403
1404 Changes with nginx 0.5.13                                        19 Feb 2007
1405
1406     *) Feature: the COPY and MOVE methods.
1407
1408     *) Bugfix: the ngx_http_realip_module set garbage for requests passed 
1409        via keep-alive connection.
1410
1411     *) Bugfix: nginx did not work on big-endian 64-bit Linux.
1412        Thanks to Andrei Nigmatulin.
1413
1414     *) Bugfix: now when IMAP/POP3 proxy receives too long command it closes 
1415        the connection right away, but not after timeout.
1416
1417     *) Bugfix: if the "epoll" method was used and a client closed a 
1418        connection prematurely, then nginx closed the connection after a 
1419        send timeout only.
1420
1421     *) Bugfix: nginx could not be built on platforms different from i386, 
1422        amd64, sparc, and ppc; the bug had appeared in 0.5.8.
1423
1424
1425 Changes with nginx 0.5.12                                        12 Feb 2007
1426
1427     *) Bugfix: nginx could not be built on platforms different from i386, 
1428        amd64, sparc, and ppc; the bug had appeared in 0.5.8.
1429
1430     *) Bugfix: a segmentation fault might occur in worker process if the 
1431        temporarily files were used while working with FastCGI server; the 
1432        bug had appeared in 0.5.8.
1433
1434     *) Bugfix: a segmentation fault might occur in worker process if the 
1435        $fastcgi_script_name variable was logged.
1436
1437     *) Bugfix: ngx_http_perl_module could not be built on Solaris.
1438
1439
1440 Changes with nginx 0.5.11                                        05 Feb 2007
1441
1442     *) Feature: now configure detects system PCRE library in MacPorts.
1443        Thanks to Chris McGrath.
1444
1445     *) Bugfix: the response was incorrect if several ranges were requested; 
1446        the bug had appeared in 0.5.6.
1447
1448     *) Bugfix: the "create_full_put_path" directive could not create the 
1449        intermediate directories if no "dav_access" directive was set.
1450        Thanks to Evan Miller.
1451
1452     *) Bugfix: the "0" response code might be logged in the access_log 
1453        instead of the "400" and "408" error codes.
1454
1455     *) Bugfix: a segmentation fault might occur in worker process if nginx 
1456        was built with -O2 optimization.
1457
1458
1459 Changes with nginx 0.5.10                                        26 Jan 2007
1460
1461     *) Bugfix: while online executable file upgrade the new master process 
1462        did not inherit the listening sockets; the bug had appeared in 0.5.9.
1463
1464     *) Bugfix: a segmentation fault might occur in worker process if nginx 
1465        was built with -O2 optimization; the bug had appeared in 0.5.1.
1466
1467
1468 Changes with nginx 0.5.9                                         25 Jan 2007
1469
1470     *) Change: now the ngx_http_memcached_module uses the $memcached_key 
1471        variable value as a key.
1472
1473     *) Feature: the $memcached_key variable.
1474
1475     *) Feature: the "clean" parameter in the "client_body_in_file_only" 
1476        directive.
1477
1478     *) Feature: the "env" directive.
1479
1480     *) Feature: the "sendfile" directive is available inside the "if" block.
1481
1482     *) Feature: now on failure of the writing to access nginx logs a 
1483        message to error_log, but not more often than once a minute.
1484
1485     *) Bugfix: the "access_log off" directive did not always turn off the 
1486        logging.
1487
1488
1489 Changes with nginx 0.5.8                                         19 Jan 2007
1490
1491     *) Bugfix: a segmentation fault might occur if 
1492        "client_body_in_file_only on" was used and a request body was small.
1493
1494     *) Bugfix: a segmentation fault occurred if 
1495        "client_body_in_file_only on" and "proxy_pass_request_body off" or 
1496        "fastcgi_pass_request_body off" directives were used, and nginx 
1497        switched to a next upstream.
1498
1499     *) Bugfix: if the "proxy_buffering off" directive was used and a client 
1500        connection was non-active, then the connection was closed after send 
1501        timeout; the bug had appeared in 0.4.7.
1502
1503     *) Bugfix: if the "epoll" method was used and a client closed a 
1504        connection prematurely, then nginx closed the connection after a 
1505        send timeout only.
1506
1507     *) Bugfix: the "[alert] zero size buf" error when FastCGI server was 
1508        used.
1509
1510     *) Bugfixes in the "limit_zone" directive.
1511
1512
1513 Changes with nginx 0.5.7                                         15 Jan 2007
1514
1515     *) Feature: the ssl_session_cache storage optimization.
1516
1517     *) Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
1518
1519     *) Bugfix: the segmentation fault was occurred on start or while 
1520        reconfiguration if the "ssl_session_cache" or "limit_zone" 
1521        directives were used on 64-bit platforms.
1522
1523     *) Bugfix: a segmentation fault occurred if the "add_before_body" or 
1524        "add_after_body" directives were used and there was no 
1525        "Content-Type" header line in response.
1526
1527     *) Bugfix: the OpenSSL library was always built with the threads 
1528        support.
1529        Thanks to Den Ivanov.
1530
1531     *) Bugfix: the PCRE-6.5+ library and the icc compiler compatibility.
1532
1533
1534 Changes with nginx 0.5.6                                         09 Jan 2007
1535
1536     *) Change: now the ngx_http_index_module ignores all methods except the 
1537        GET, HEAD, and POST methods.
1538
1539     *) Feature: the ngx_http_limit_zone_module.
1540
1541     *) Feature: the $binary_remote_addr variable.
1542
1543     *) Feature: the "ssl_session_cache" directives of the 
1544        ngx_http_ssl_module and ngx_imap_ssl_module.
1545
1546     *) Feature: the DELETE method supports recursive removal.
1547
1548     *) Bugfix: the byte-ranges were transferred incorrectly if the 
1549        $r->sendfile() was used.
1550
1551
1552 Changes with nginx 0.5.5                                         24 Dec 2006
1553
1554     *) Change: the -v switch does not show compiler information any more.
1555
1556     *) Feature: the -V switch.
1557
1558     *) Feature: the "worker_rlimit_core" directive supports size in K, M, 
1559        and G.
1560
1561     *) Bugfix: the nginx.pm module now could be installed by an 
1562        unprivileged user.
1563
1564     *) Bugfix: a segmentation fault might occur if the $r->request_body or 
1565        $r->request_body_file methods were used.
1566
1567     *) Bugfix: the ppc platform specific bugs.
1568
1569
1570 Changes with nginx 0.5.4                                         15 Dec 2006
1571
1572     *) Feature: the "perl" directive may be used inside the "limit_except" 
1573        block.
1574
1575     *) Bugfix: the ngx_http_dav_module required the "Date" request header 
1576        line for the DELETE method.
1577
1578     *) Bugfix: if one only parameter was used in the "dav_access" 
1579        directive, then nginx might report about configuration error.
1580
1581     *) Bugfix: a segmentation fault might occur if the $host variable was 
1582        used; the bug had appeared in 0.4.14.
1583
1584
1585 Changes with nginx 0.5.3                                         13 Dec 2006
1586
1587     *) Feature: the ngx_http_perl_module supports the $r->status, 
1588        $r->log_error, and $r->sleep methods.
1589
1590     *) Feature: the $r->variable method supports variables that do not 
1591        exist in nginx configuration.
1592
1593     *) Bugfix: the $r->has_request_body method did not work.
1594
1595
1596 Changes with nginx 0.5.2                                         11 Dec 2006
1597
1598     *) Bugfix: if the "proxy_pass" directive used the name of the 
1599        "upstream" block, then nginx tried to resolve the name; the bug had 
1600        appeared in 0.5.1.
1601
1602
1603 Changes with nginx 0.5.1                                         11 Dec 2006
1604
1605     *) Bugfix: the "post_action" directive might not run after a 
1606        unsuccessful completion of a request.
1607
1608     *) Workaround: for Eudora for Mac; the bug had appeared in 0.4.11.
1609        Thanks to Bron Gondwana.
1610
1611     *) Bugfix: if the "upstream" name was used in the "fastcgi_pass", then 
1612        the message "no port in upstream" was issued; the bug had appeared 
1613        in 0.5.0.
1614
1615     *) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the 
1616        same servers but different ports, then these directives uses the 
1617        first described port; the bug had appeared in 0.5.0.
1618
1619     *) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the 
1620        unix domain sockets, then these directives used first described 
1621        socket; the bug had appeared in 0.5.0.
1622
1623     *) Bugfix: ngx_http_auth_basic_module ignored the user if it was in the 
1624        last line in the password file and there was no the carriage return, 
1625        the line feed, or the ":" symbol after the password.
1626
1627     *) Bugfix: the $upstream_response_time variable might be equal to 
1628        "0.000", although response time was more than 1 millisecond.
1629
1630
1631 Changes with nginx 0.5.0                                         04 Dec 2006
1632
1633     *) Change: the parameters in the "%name" form in the "log_format" 
1634        directive are not supported anymore.
1635
1636     *) Change: the "proxy_upstream_max_fails", 
1637        "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", 
1638        "fastcgi_upstream_fail_timeout", "memcached_upstream_max_fails", and 
1639        "memcached_upstream_fail_timeout" directives are not supported 
1640        anymore.
1641
1642     *) Feature: the "server" directive in the "upstream" context supports 
1643        the "max_fails", "fail_timeout", and "down" parameters.
1644
1645     *) Feature: the "ip_hash" directive inside the "upstream" block.
1646
1647     *) Feature: the WAIT status in the "Auth-Status" header line of the 
1648        IMAP/POP3 proxy authentication server response.
1649
1650     *) Bugfix: nginx could not be built on 64-bit platforms; the bug had 
1651        appeared in 0.4.14.
1652
1653
1654 Changes with nginx 0.4.14                                        27 Nov 2006
1655
1656     *) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
1657
1658     *) Feature: now configure detects system PCRE library on FreeBSD, 
1659        Linux, and NetBSD.
1660
1661     *) Bugfix: ngx_http_perl_module did not work with perl built with the 
1662        threads support; the bug had appeared in 0.3.38.
1663
1664     *) Bugfix: ngx_http_perl_module did not work if perl was called 
1665        recursively.
1666
1667     *) Bugfix: nginx ignored a host name in a request line.
1668
1669     *) Bugfix: a worker process may got caught in an endless loop, if a 
1670        FastCGI server sent too many data to the stderr.
1671
1672     *) Bugfix: the $upstream_response_time variable may be negative if the 
1673        system time was changed backward.
1674
1675     *) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3 
1676        proxy authentication server when POP3 was used.
1677
1678     *) Bugfix: a segmentation fault might occur if connect to IMAP/POP3 
1679        proxy authentication server failed.
1680
1681
1682 Changes with nginx 0.4.13                                        15 Nov 2006
1683
1684     *) Feature: the "proxy_pass" directive may be used inside the 
1685        "limit_except" block.
1686
1687     *) Feature: the "limit_except" directive supports all WebDAV methods.
1688
1689     *) Bugfix: if the "add_before_body" directive was used without the 
1690        "add_after_body" directive, then a response did not transferred 
1691        complete.
1692
1693     *) Bugfix: a large request body did not receive if the epoll method and 
1694        the deferred accept() were used.
1695
1696     *) Bugfix: a charset could not be set for ngx_http_autoindex_module 
1697        responses; the bug had appeared in 0.3.50.
1698
1699     *) Bugfix: the "[alert] zero size buf" error when FastCGI server was 
1700        used;
1701
1702     *) Bugfix: the --group= configuration parameter was ignored.
1703        Thanks to Thomas Moschny.
1704
1705     *) Bugfix: the 50th subrequest in SSI response did not work; the bug 
1706        had appeared in 0.3.50.
1707
1708
1709 Changes with nginx 0.4.12                                        31 Oct 2006
1710
1711     *) Feature: the ngx_http_perl_module supports the $r->variable method.
1712
1713     *) Bugfix: if a big static file was included using SSI in a response, 
1714        then the response may be transferred incomplete.
1715
1716     *) Bugfix: nginx did not omit the "#fragment" part in URI.
1717
1718
1719 Changes with nginx 0.4.11                                        25 Oct 2006
1720
1721     *) Feature: the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5.
1722
1723     *) Feature: the ngx_http_perl_module supports the $r->allow_ranges 
1724        method.
1725
1726     *) Bugfix: if the APOP was enabled in the POP3 proxy, then the 
1727        USER/PASS commands might not work; the bug had appeared in 0.4.10.
1728
1729
1730 Changes with nginx 0.4.10                                        23 Oct 2006
1731
1732     *) Feature: the POP3 proxy supports the APOP command.
1733
1734     *) Bugfix: if the select, poll or /dev/poll methods were used, then 
1735        while waiting authentication server response the IMAP/POP3 proxy 
1736        hogged CPU.
1737
1738     *) Bugfix: a segmentation fault might occur if the $server_addr 
1739        variable was used in the "map" directive.
1740
1741     *) Bugfix: the ngx_http_flv_module did not support the byte ranges for 
1742        full responses; the bug had appeared in 0.4.7.
1743
1744     *) Bugfix: nginx could not be built on Debian amd64; the bug had 
1745        appeared in 0.4.9.
1746
1747
1748 Changes with nginx 0.4.9                                         13 Oct 2006
1749
1750     *) Feature: the "set" parameter in the "include" SSI command.
1751
1752     *) Feature: the ngx_http_perl_module now tests the nginx.pm module 
1753        version.
1754
1755
1756 Changes with nginx 0.4.8                                         11 Oct 2006
1757
1758     *) Bugfix: if an "include" SSI command were before another "include" 
1759        SSI command with a "wait" parameter, then the "wait" parameter might 
1760        not work.
1761
1762     *) Bugfix: the ngx_http_flv_module added the FLV header to the full 
1763        responses.
1764        Thanks to Alexey Kovyrin.
1765
1766
1767 Changes with nginx 0.4.7                                         10 Oct 2006
1768
1769     *) Feature: the ngx_http_flv_module.
1770
1771     *) Feature: the $request_body_file variable.
1772
1773     *) Feature: the "charset" and "source_charset" directives support the 
1774        variables.
1775
1776     *) Bugfix: if an "include" SSI command were before another "include" 
1777        SSI command with a "wait" parameter, then the "wait" parameter might 
1778        not work.
1779
1780     *) Bugfix: if the "proxy_buffering off" directive was used or while 
1781        working with memcached the connections might not be closed on 
1782        timeout.
1783
1784     *) Bugfix: nginx did not run on 64-bit platforms except amd64, sparc64, 
1785        and ppc64.
1786
1787
1788 Changes with nginx 0.4.6                                         06 Oct 2006
1789
1790     *) Bugfix: nginx did not run on 64-bit platforms except amd64, sparc64, 
1791        and ppc64.
1792
1793     *) Bugfix: nginx sent the chunked response for HTTP/1.1 request,
1794        if its length was set by text string in the 
1795        $r->headers_out("Content-Length", ...) method.
1796
1797     *) Bugfix: after redirecting error by an "error_page" directive any 
1798        ngx_http_rewrite_module directive returned this error code; the bug 
1799        had appeared in 0.4.4.
1800
1801
1802 Changes with nginx 0.4.5                                         02 Oct 2006
1803
1804     *) Bugfix: nginx could not be built on Linux and Solaris; the bug had 
1805        appeared in 0.4.4.
1806
1807
1808 Changes with nginx 0.4.4                                         02 Oct 2006
1809
1810     *) Feature: the $scheme variable.
1811
1812     *) Feature: the "expires" directive supports the "max" parameter.
1813
1814     *) Feature: the "include" directive supports the "*" mask.
1815        Thanks to Jonathan Dance.
1816
1817     *) Bugfix: the "return" directive always overrode the "error_page" 
1818        response code redirected by the "error_page" directive.
1819
1820     *) Bugfix: a segmentation fault occurred if zero-length body was in PUT 
1821        method.
1822
1823     *) Bugfix: the redirect was changed incorrectly if the variables were 
1824        used in the "proxy_redirect" directive.
1825
1826
1827 Changes with nginx 0.4.3                                         26 Sep 2006
1828
1829     *) Change: now the 499 error could not be redirected using an 
1830        "error_page" directive.
1831
1832     *) Feature: the Solaris 10 event ports support.
1833
1834     *) Feature: the ngx_http_browser_module.
1835
1836     *) Bugfix: a segmentation fault may occur while redirecting the 400 
1837        error to the proxied server using a "proxy_pass" directive.
1838
1839     *) Bugfix: a segmentation fault occurred if an unix domain socket was 
1840        used in a "proxy_pass" directive; the bug had appeared in 0.3.47.
1841
1842     *) Bugfix: SSI did work with memcached and nonbuffered responses.
1843
1844     *) Workaround: of the Sun Studio PAUSE hardware capability bug.
1845
1846
1847 Changes with nginx 0.4.2                                         14 Sep 2006
1848
1849     *) Bugfix: the O_NOATIME flag support on Linux was canceled; the bug 
1850        had appeared in 0.4.1.
1851
1852
1853 Changes with nginx 0.4.1                                         14 Sep 2006
1854
1855     *) Bugfix: the DragonFlyBSD compatibility.
1856        Thanks to Pavel Nazarov.
1857
1858     *) Workaround: of bug in 64-bit Linux sendfile(), when file is more 
1859        than 2G.
1860
1861     *) Feature: now on Linux nginx uses O_NOATIME flag for static 
1862        requests.
1863        Thanks to Yusuf Goolamabbas.
1864
1865
1866 Changes with nginx 0.4.0                                         30 Aug 2006
1867
1868     *) Change in internal API: the HTTP modules initialization was moved 
1869        from the init module phase to the HTTP postconfiguration phase.
1870
1871     *) Change: now the request body is not read beforehand for the 
1872        ngx_http_perl_module: it's required to start the reading using the 
1873        $r->has_request_body method.
1874
1875     *) Feature: the ngx_http_perl_module supports the DECLINED return code.
1876
1877     *) Feature: the ngx_http_dav_module supports the incoming "Date" header 
1878        line for the PUT method.
1879
1880     *) Feature: the "ssi" directive is available inside the "if" block.
1881
1882     *) Bugfix: a segmentation fault occurred if there was an "index" 
1883        directive with variables and the first index name was without 
1884        variables; the bug had appeared in 0.1.29.
1885
1886
1887 Changes with nginx 0.3.61                                        28 Aug 2006
1888
1889     *) Change: now the "tcp_nodelay" directive is turned on by default.
1890
1891     *) Feature: the "msie_refresh" directive.
1892
1893     *) Feature: the "recursive_error_pages" directive.
1894
1895     *) Bugfix: the "rewrite" directive returned incorrect redirect, if the 
1896        redirect had the captured escaped symbols from original URI.
1897
1898
1899 Changes with nginx 0.3.60                                        18 Aug 2006
1900
1901     *) Bugfix: a worker process may got caught in an endless loop while an 
1902        error redirection; the bug had appeared in 0.3.59.
1903
1904
1905 Changes with nginx 0.3.59                                        16 Aug 2006
1906
1907     *) Feature: now is possible to do several redirection using the 
1908        "error_page" directive.
1909
1910     *) Bugfix: the "dav_access" directive did not support three parameters.
1911
1912     *) Bugfix: the "error_page" directive did not changes the 
1913        "Content-Type" header line after the "X-Accel-Redirect" was used; 
1914        the bug had appeared in 0.3.58.
1915
1916
1917 Changes with nginx 0.3.58                                        14 Aug 2006
1918
1919     *) Feature: the "error_page" directive supports the variables.
1920
1921     *) Change: now the procfs interface instead of sysctl is used on Linux.
1922
1923     *) Change: now the "Content-Type" header line is inherited from first 
1924        response when the "X-Accel-Redirect" was used.
1925
1926     *) Bugfix: the "error_page" directive did not redirect the 413 error.
1927
1928     *) Bugfix: the trailing "?" did not remove old arguments if no new 
1929        arguments were added to a rewritten URI.
1930
1931     *) Bugfix: nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
1932
1933
1934 Changes with nginx 0.3.57                                        09 Aug 2006
1935
1936     *) Feature: the $ssl_client_serial variable.
1937
1938     *) Bugfix: in the "!-e" operator of the "if" directive.
1939        Thanks to Andrian Budanstov.
1940
1941     *) Bugfix: while a client certificate verification nginx did not send 
1942        to a client the required certificates information.
1943
1944     *) Bugfix: the $document_root variable did not support the variables in 
1945        the "root" directive.
1946
1947
1948 Changes with nginx 0.3.56                                        04 Aug 2006
1949
1950     *) Feature: the "dav_access" directive.
1951
1952     *) Feature: the "if" directive supports the "-d", "!-d", "-e", "!-e", 
1953        "-x", and "!-x" operators.
1954
1955     *) Bugfix: a segmentation fault occurred if a request returned a 
1956        redirect and some sent to client header lines were logged in the 
1957        access log.
1958
1959
1960 Changes with nginx 0.3.55                                        28 Jul 2006
1961
1962     *) Feature: the "stub" parameter in the "include" SSI command.
1963
1964     *) Feature: the "block" SSI command.
1965
1966     *) Feature: the unicode2nginx script was added to contrib.
1967
1968     *) Bugfix: if a "root" was specified by variable only, then the root 
1969        was relative to a server prefix.
1970
1971     *) Bugfix: if the request contained "//" or "/./" and escaped symbols 
1972        after them, then the proxied request was sent unescaped.
1973
1974     *) Bugfix: the $r->header_in("Cookie") of the ngx_http_perl_module now 
1975        returns all "Cookie" header lines.
1976
1977     *) Bugfix: a segmentation fault occurred if 
1978        "client_body_in_file_only on" was used and nginx switched to a next 
1979        upstream.
1980
1981     *) Bugfix: on some condition while reconfiguration character codes 
1982        inside the "charset_map" may be treated invalid; the bug had 
1983        appeared in 0.3.50.
1984
1985
1986 Changes with nginx 0.3.54                                        11 Jul 2006
1987
1988     *) Feature: nginx now logs the subrequest information to the error log.
1989
1990     *) Feature: the "proxy_next_upstream", "fastcgi_next_upstream", and 
1991        "memcached_next_upstream" directives support the "off" parameter.
1992
1993     *) Feature: the "debug_connection" directive supports the CIDR address 
1994        form.
1995
1996     *) Bugfix: if a response of proxied server or FastCGI server was 
1997        converted from UTF-8 or back, then it may be transferred incomplete.
1998
1999     *) Bugfix: the $upstream_response_time variable had the time of the 
2000        first request to a backend only.
2001
2002     *) Bugfix: nginx could not be built on amd64 platform; the bug had 
2003        appeared in 0.3.53.
2004
2005
2006 Changes with nginx 0.3.53                                        07 Jul 2006
2007
2008     *) Change: the "add_header" directive adds the string to 204, 301, and 
2009        302 responses.
2010
2011     *) Feature: the "server" directive in the "upstream" context supports 
2012        the "weight" parameter.
2013
2014     *) Feature: the "server_name" directive supports the "*" wildcard.
2015
2016     *) Feature: nginx supports the request body size more than 2G.
2017
2018     *) Bugfix: if a client was successfully authorized using "satisfy_any 
2019        on", then anyway the message "access forbidden by rule" was written 
2020        in the log.
2021
2022     *) Bugfix: the "PUT" method may erroneously not create a file and 
2023        return the 409 code.
2024
2025     *) Bugfix: if the IMAP/POP3 backend returned an error, then nginx 
2026        continued proxying anyway.
2027
2028
2029 Changes with nginx 0.3.52                                        03 Jul 2006
2030
2031     *) Change: the ngx_http_index_module behavior for the "POST /" requests 
2032        is reverted to the 0.3.40 version state: the module now does not 
2033        return the 405 error.
2034
2035     *) Bugfix: the worker process may got caught in an endless loop if the 
2036        limit rate was used; the bug had appeared in 0.3.37.
2037
2038     *) Bugfix: ngx_http_charset_module logged "unknown charset" alert, even 
2039        if the recoding was not needed; the bug had appeared in 0.3.50.
2040
2041     *) Bugfix: if a code response of the PUT request was 409, then a 
2042        temporary file was not removed.
2043
2044
2045 Changes with nginx 0.3.51                                        30 Jun 2006
2046
2047     *) Bugfix: the "<" symbols might disappeared some conditions in the 
2048        SSI; the bug had appeared in 0.3.50.
2049
2050
2051 Changes with nginx 0.3.50                                        28 Jun 2006
2052
2053     *) Change: the "proxy_redirect_errors" and "fastcgi_redirect_errors" 
2054        directives was renamed to the "proxy_intercept_errors" and 
2055        "fastcgi_intercept_errors" directives.
2056
2057     *) Feature: the ngx_http_charset_module supports the recoding from the 
2058        single byte encodings to the UTF-8 encoding and back.
2059
2060     *) Feature: the "X-Accel-Charset" response header line is supported in 
2061        proxy and FastCGI mode.
2062
2063     *) Bugfix: the "\" escape symbol in the "\"" and "\'" pairs in the SSI 
2064        command was removed only if the command also has the "$" symbol.
2065
2066     *) Bugfix: the "<!--" string might be added on some conditions in the 
2067        SSI after inclusion.
2068
2069     *) Bugfix: if the "Content-Length: 0" header line was in response, then 
2070        in nonbuffered proxying mode the client connection was not closed.
2071
2072
2073 Changes with nginx 0.3.49                                        31 May 2006
2074
2075     *) Bugfix: in the "set" directive.
2076
2077     *) Bugfix: if two or more FastCGI subrequests was in SSI, then first 
2078        subrequest output was included instead of second and following 
2079        subrequests.
2080
2081
2082 Changes with nginx 0.3.48                                        29 May 2006
2083
2084     *) Change: now the ngx_http_charset_module works for subrequests, if 
2085        the response has no "Content-Type" header line.
2086
2087     *) Bugfix: if the "proxy_pass" directive has no URI part, then the 
2088        "proxy_redirect default" directive add the unnecessary slash in 
2089        start of the rewritten redirect.
2090
2091     *) Bugfix: the internal redirect always transform client's HTTP method 
2092        to GET, now the transformation is made for the "X-Accel-Redirect" 
2093        redirects only and if the method is not HEAD; the bug had appeared 
2094        in 0.3.42.
2095
2096     *) Bugfix: the ngx_http_perl_module could not be built, if the perl was 
2097        built with the threads support; the bug had appeared in 0.3.46.
2098
2099
2100 Changes with nginx 0.3.47                                        23 May 2006
2101
2102     *) Feature: the "upstream" directive.
2103
2104     *) Change: now the "\" escape symbol in the "\"" and "\'" pairs in the 
2105        SSI command is always removed.
2106
2107
2108 Changes with nginx 0.3.46                                        11 May 2006
2109
2110     *) Feature: the "proxy_hide_header", "proxy_pass_header", 
2111        "fastcgi_hide_header", and "fastcgi_pass_header" directives.
2112
2113     *) Change: the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and 
2114        "proxy_pass_server" directives were canceled.
2115
2116     *) Feature: the "X-Accel-Buffering" response header line is supported 
2117        in proxy mode.
2118
2119     *) Bugfix: the reconfiguration bug and memory leaks in the 
2120        ngx_http_perl_module.
2121
2122
2123 Changes with nginx 0.3.45                                        06 May 2006
2124
2125     *) Feature: the "ssl_verify_client", "ssl_verify_depth", and 
2126        "ssl_client_certificate" directives.
2127
2128     *) Change: the $request_method variable now returns the main request 
2129        method.
2130
2131     *) Change: the &deg; symbol codes were changed in koi-win conversion 
2132        table.
2133
2134     *) Feature: the euro and N symbols were added to koi-win conversion 
2135        table.
2136
2137     *) Bugfix: if nginx distributed the requests among several backends and 
2138        some backend failed, then requests intended for this backend was 
2139        directed to one live backend only instead of being distributed among 
2140        the rest.
2141
2142
2143 Changes with nginx 0.3.44                                        04 May 2006
2144
2145     *) Feature: the "wait" parameter in the "include" SSI command.
2146
2147     *) Feature: the Ukrainian and Byelorussian characters were added to 
2148        koi-win conversion table.
2149
2150     *) Bugfix: in the SSI.
2151
2152
2153 Changes with nginx 0.3.43                                        26 Apr 2006
2154
2155     *) Bugfix: in the SSI.
2156
2157
2158 Changes with nginx 0.3.42                                        26 Apr 2006
2159
2160     *) Feature: the "bind" option of the "listen" directive in IMAP/POP3 
2161        proxy.
2162
2163     *) Bugfix: if the same capture in the "rewrite" directive was used more 
2164        then once.
2165
2166     *) Bugfix: the $sent_http_content_type, $sent_http_content_length, 
2167        $sent_http_last_modified, $sent_http_connection, 
2168        $sent_http_keep_alive, and $sent_http_transfer_encoding variables 
2169        were not written to access log.
2170
2171     *) Bugfix: the $sent_http_cache_control returned value of the single 
2172        "Cache-Control" response header line.
2173
2174
2175 Changes with nginx 0.3.41                                        21 Apr 2006
2176
2177     *) Feature: the -v switch.
2178
2179     *) Bugfix: the segmentation fault may occurred if the SSI page has 
2180        remote subrequests.
2181
2182     *) Bugfix: in FastCGI handling.
2183
2184     *) Bugfix: if the perl modules path was not set using 
2185        --with-perl_modules_path=PATH or the "perl_modules", then the 
2186        segmentation fault was occurred.
2187
2188
2189 Changes with nginx 0.3.40                                        19 Apr 2006
2190
2191     *) Feature: the ngx_http_dav_module supports the MKCOL method.
2192
2193     *) Feature: the "create_full_put_path" directive.
2194
2195     *) Feature: the "$limit_rate" variable.
2196
2197
2198 Changes with nginx 0.3.39                                        17 Apr 2006
2199
2200     *) Feature: the "uninitialized_variable_warn" directive; the logging 
2201        level of the "uninitialized variable" message was lowered from 
2202        "alert" to "warn".
2203
2204     *) Feature: the "override_charset" directive.
2205
2206     *) Change: now if the unknown variable is used in the "echo" and "if 
2207        expr='$name'" SSI-commands, then the "unknown variable" message is 
2208        not logged.
2209
2210     *) Bugfix: the active connection counter increased on the exceeding of 
2211        the connection limit specified by the "worker_connections" 
2212        directive; the bug had appeared in 0.2.0.
2213
2214     *) Bugfix: the limit rate might not work on some condition; the bug had 
2215        appeared in 0.3.38.
2216
2217
2218 Changes with nginx 0.3.38                                        14 Apr 2006
2219
2220     *) Feature: the ngx_http_dav_module.
2221
2222     *) Change: the ngx_http_perl_module optimizations.
2223        Thanks to Sergey Skvortsov.
2224
2225     *) Feature: the ngx_http_perl_module supports the $r->request_body_file 
2226        method.
2227
2228     *) Feature: the "client_body_in_file_only" directive.
2229
2230     *) Workaround: now on disk overflow nginx tries to write access logs 
2231        once a second only.
2232        Thanks to Anton Yuzhaninov and Maxim Dounin.
2233
2234     *) Bugfix: now the "limit_rate" directive more precisely limits rate if 
2235        rate is more than 100 Kbyte/s.
2236        Thanks to ForJest.
2237
2238     *) Bugfix: now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in 
2239        login and password to pass authorization server.
2240        Thanks to Maxim Dounin.
2241
2242
2243 Changes with nginx 0.3.37                                        07 Apr 2006
2244
2245     *) Feature: the "limit_except" directive.
2246
2247     *) Feature: the "if" directive supports the "!~", "!~*", "-f", and 
2248        "!-f" operators.
2249
2250     *) Feature: the ngx_http_perl_module supports the $r->request_body 
2251        method.
2252
2253     *) Bugfix: in the ngx_http_addition_filter_module.
2254
2255
2256 Changes with nginx 0.3.36                                        05 Apr 2006
2257
2258     *) Feature: the ngx_http_addition_filter_module.
2259
2260     *) Feature: the "proxy_pass" and "fastcgi_pass" directives may be used 
2261        inside the "if" block.
2262
2263     *) Feature: the "proxy_ignore_client_abort" and 
2264        "fastcgi_ignore_client_abort" directives.
2265
2266     *) Feature: the "$request_completion" variable.
2267
2268     *) Feature: the ngx_http_perl_module supports the $r->request_method 
2269        and $r->remote_addr.
2270
2271     *) Feature: the ngx_http_ssi_module supports the "elif" command.
2272
2273     *) Bugfix: the "\/" string in the expression of the "if" command of the 
2274        ngx_http_ssi_module was treated incorrectly.
2275
2276     *) Bugfix: in the regular expressions in the "if" command of the 
2277        ngx_http_ssi_module.
2278
2279     *) Bugfix: if the relative path was specified in the 
2280        "client_body_temp_path", "proxy_temp_path", "fastcgi_temp_path", and 
2281        "perl_modules" directives, then the directory was used relatively to 
2282        a current path but not to a server prefix.
2283
2284
2285 Changes with nginx 0.3.35                                        22 Mar 2006
2286
2287     *) Bugfix: the accept-filter and the TCP_DEFER_ACCEPT option were set 
2288        for first "listen" directive only; the bug had appeared in 0.3.31.
2289
2290     *) Bugfix: in the "proxy_pass" directive without the URI part in a 
2291        subrequest.
2292
2293
2294 Changes with nginx 0.3.34                                        21 Mar 2006
2295
2296     *) Feature: the "add_header" directive supports the variables.
2297
2298
2299 Changes with nginx 0.3.33                                        15 Mar 2006
2300
2301     *) Feature: the "http_503" parameter of the "proxy_next_upstream" or 
2302        "fastcgi_next_upstream" directives.
2303
2304     *) Bugfix: ngx_http_perl_module did not work with inlined in the 
2305        configuration code, if it was not started with the "sub" word.
2306
2307     *) Bugfix: in the "post_action" directive.
2308
2309
2310 Changes with nginx 0.3.32                                        11 Mar 2006
2311
2312     *) Bugfix: the debug logging on startup and reconfiguration time was 
2313        removed; the bug had appeared in 0.3.31.
2314
2315
2316 Changes with nginx 0.3.31                                        10 Mar 2006
2317
2318     *) Change: now nginx passes the malformed proxied backend responses.
2319
2320     *) Feature: the "listen" directives support the address in the "*:port" 
2321        form.
2322
2323     *) Feature: the EVFILER_TIMER support in MacOSX 10.4.
2324
2325     *) Workaround: for MacOSX 64-bit kernel kqueue millisecond timeout 
2326        bug.
2327        Thanks to Andrei Nigmatulin.
2328
2329     *) Bugfix: if there were several "listen" directives listening one 
2330        various addresses inside one server, then server names like 
2331        "*.domain.tld" worked for first address only; the bug had appeared 
2332        in 0.3.18.
2333
2334     *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive 
2335        and the request body was in temporarily file then the request was 
2336        not transferred.
2337
2338     *) Bugfix: perl 5.8.8 compatibility.
2339
2340
2341 Changes with nginx 0.3.30                                        22 Feb 2006
2342
2343     *) Change: the ECONNABORTED error log level was changed to "error" from 
2344        "crit".
2345
2346     *) Bugfix: the ngx_http_perl_module could not be build without the 
2347        ngx_http_ssi_filter_module.
2348
2349     *) Bugfix: nginx could not be built on i386 platform, if the PIC was 
2350        used; the bug had appeared in 0.3.27.
2351
2352
2353 Changes with nginx 0.3.29                                        20 Feb 2006
2354
2355     *) Feature: now nginx uses less memory, if PHP in FastCGI mode sends 
2356        many warnings before the response.
2357
2358     *) Bugfix: the "Transfer-Encoding: chunked" header line was issued in 
2359        the 204 responses for the HTTP/1.1 requests.
2360
2361     *) Bugfix: nginx returned the 502 response, if the complete response 
2362        header lines were transferred in a separate FastCGI records.
2363
2364     *) Bugfix: if the proxied URI was specified in the "post_action" 
2365        directive, then it ran only after a successful completion of a 
2366        request.
2367
2368
2369 Changes with nginx 0.3.28                                        16 Feb 2006
2370
2371     *) Feature: the "restrict_host_names" directive was canceled.
2372
2373     *) Feature: the --with-cpu-opt=ppc64 configuration parameter.
2374
2375     *) Bugfix: on some condition the proxied connection with a client was 
2376        terminated prematurely.
2377        Thanks to Vladimir Shutoff.
2378
2379     *) Bugfix: the "X-Accel-Limit-Rate" header line was not taken into 
2380        account if the request was redirected using the "X-Accel-Redirect" 
2381        header line.
2382
2383     *) Bugfix: the "post_action" directive ran only after a successful 
2384        completion of a request.
2385
2386     *) Bugfix: the proxied response body generated by the "post_action" 
2387        directive was transferred to a client.
2388
2389
2390 Changes with nginx 0.3.27                                        08 Feb 2006
2391
2392     *) Change: the "variables_hash_max_size" and 
2393        "variables_hash_bucket_size" directives.
2394
2395     *) Feature: the $body_bytes_sent variable can be used not only in the 
2396        "log_format" directive.
2397
2398     *) Feature: the $ssl_protocol and $ssl_cipher variables.
2399
2400     *) Feature: the cache line size detection for widespread CPUs at start 
2401        time.
2402
2403     *) Feature: now the "accept_mutex" directive is supported using 
2404        fcntl(2) on platforms different from i386, amd64, sparc64, and ppc.
2405
2406     *) Feature: the "lock_file" directive and the --with-lock-path=PATH 
2407        autoconfiguration directive.
2408
2409     *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive 
2410        then the requests with the body was not transferred.
2411
2412
2413 Changes with nginx 0.3.26                                        03 Feb 2006
2414
2415     *) Change: the "optimize_host_names" directive was renamed to the 
2416        "optimize_server_names".
2417
2418     *) Bugfix: if in the "proxy_pass" directive was no the URI part, then 
2419        the main request URI was transferred to a backend while proxying the 
2420        SSI subrequest.
2421
2422
2423 Changes with nginx 0.3.25                                        01 Feb 2006
2424
2425     *) Bugfix: the segmentation fault was occurred on start or while 
2426        reconfiguration if there was invalid configuration; the bug had 
2427        appeared in 0.3.24.
2428
2429
2430 Changes with nginx 0.3.24                                        01 Feb 2006
2431
2432     *) Workaround: for bug in FreeBSD kqueue.
2433
2434     *) Bugfix: now a response generated by the "post_action" directive is 
2435        not transferred to a client.
2436
2437     *) Bugfix: the memory leaks were occurring if many log files were used.
2438
2439     *) Bugfix: the first "proxy_redirect" directive was working inside one 
2440        location.
2441
2442     *) Bugfix: on 64-bit platforms segmentation fault may occurred on start 
2443        if the many names were used in the "server_name" directives; the bug 
2444        had appeared in 0.3.18.
2445
2446
2447 Changes with nginx 0.3.23                                        24 Jan 2006
2448
2449     *) Feature: the "optimize_host_names" directive.
2450
2451     *) Bugfix: in using of the variables in the "path" and "alias" 
2452        directives.
2453
2454     *) Bugfix: the ngx_http_perl_module was incorrectly built on Linux and 
2455        Solaris.
2456
2457
2458 Changes with nginx 0.3.22                                        17 Jan 2006
2459
2460     *) Feature: the ngx_http_perl_module supports the $r->args and 
2461        $r->unescape methods.
2462
2463     *) Feature: the method $r->query_string of ngx_http_perl_module was 
2464        canceled.
2465
2466     *) Bugfix: segmentation fault was occurred if the "none" or "blocked" 
2467        values was specified in the "valid_referers" directive; the bug had 
2468        appeared in 0.3.18.
2469
2470
2471 Changes with nginx 0.3.21                                        16 Jan 2006
2472
2473     *) Feature: the ngx_http_perl_module.
2474
2475     *) Change: the "valid_referers" directive allows the referreres without 
2476        URI part.
2477
2478
2479 Changes with nginx 0.3.20                                        11 Jan 2006
2480
2481     *) Bugfix: in SSI handling.
2482
2483     *) Bugfix: the ngx_http_memcached_module did not support the keys in 
2484        the "/usr?args" form.
2485
2486
2487 Changes with nginx 0.3.19                                        28 Dec 2005
2488
2489     *) Feature: the "path" and "alias" directives support the variables.
2490
2491     *) Change: now the "valid_referers" directive again checks the URI part.
2492
2493     *) Bugfix: in SSI handling.
2494
2495
2496 Changes with nginx 0.3.18                                        26 Dec 2005
2497
2498     *) Feature: the "server_names" directive supports the ".domain.tld" 
2499        names.
2500
2501     *) Feature: the "server_names" directive uses the hash for the 
2502        "*.domain.tld" names and more effective hash for usual names.
2503
2504     *) Change: the "server_names_hash_max_size" and 
2505        "server_names_hash_bucket_size" directives.
2506
2507     *) Change: the "server_names_hash" and "server_names_hash_threshold" 
2508        directives were canceled.
2509
2510     *) Feature: the "valid_referers" directive uses the hash site names.
2511
2512     *) Change: now the "valid_referers" directive checks the site names 
2513        only without the URI part.
2514
2515     *) Bugfix: some ".domain.tld" names incorrectly processed by the 
2516        ngx_http_map_module.
2517
2518     *) Bugfix: segmentation fault was occurred if configuration file did 
2519        not exist; the bug had appeared in 0.3.12.
2520
2521     *) Bugfix: on 64-bit platforms segmentation fault may occurred on 
2522        start; the bug had appeared in 0.3.16.
2523
2524
2525 Changes with nginx 0.3.17                                        18 Dec 2005
2526
2527     *) Change: now on Linux configure checks the presence of epoll and 
2528        sendfile64() in kernel.
2529
2530     *) Feature: the "map" directive supports domain names in the 
2531        ".domain.tld" form.
2532
2533     *) Bugfix: the timeouts were not used in SSL handshake; the bug had 
2534        appeared in 0.2.4.
2535
2536     *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
2537
2538     *) Bugfix: when the HTTPS protocol was used in the "proxy_pass" 
2539        directive the port 80 was used by default.
2540
2541
2542 Changes with nginx 0.3.16                                        16 Dec 2005
2543
2544     *) Feature: the ngx_http_map_module.
2545
2546     *) Feature: the "types_hash_max_size" and "types_hash_bucket_size" 
2547        directives.
2548
2549     *) Feature: the "ssi_value_length" directive.
2550
2551     *) Feature: the "worker_rlimit_core" directive.
2552
2553     *) Workaround: the connection number in logs was always 1 if nginx was 
2554        built by the icc 8.1 or 9.0 compilers with optimization for 
2555        Pentium 4.
2556
2557     *) Bugfix: the "config timefmt" SSI command set incorrect time format.
2558
2559     *) Bugfix: nginx did not close connection to IMAP/POP3 backend for the 
2560        SSL connections; the bug had appeared in 0.3.13.
2561        Thanks to Rob Mueller.
2562
2563     *) Bugfix: segmentation fault may occurred in at SSL shutdown; the bug 
2564        had appeared in 0.3.13.
2565
2566
2567 Changes with nginx 0.3.15                                        07 Dec 2005
2568
2569     *) Feature: the new 444 code of the "return" directive to close 
2570        connection.
2571
2572     *) Feature: the "so_keepalive" directive in IMAP/POP3 proxy.
2573
2574     *) Bugfix: if there are unclosed connection nginx now calls abort() 
2575        only on gracefull quit and active "debug_points" directive.
2576
2577
2578 Changes with nginx 0.3.14                                        05 Dec 2005
2579
2580     *) Bugfix: in the 304 response the body was transferred; the bug had 
2581        appeared in 0.3.13.
2582
2583
2584 Changes with nginx 0.3.13                                        05 Dec 2005
2585
2586     *) Feature: the IMAP/POP3 proxy supports STARTTLS and STLS.
2587
2588     *) Bugfix: the IMAP/POP3 proxy did not work with the select, poll, and 
2589        /dev/poll methods.
2590
2591     *) Bugfix: in SSI handling.
2592
2593     *) Bugfix: now Solaris sendfilev() is not used to transfer the client 
2594        request body to FastCGI-server via the unix domain socket.
2595
2596     *) Bugfix: the "auth_basic" directive did not disable the 
2597        authorization; the bug had appeared in 0.3.11.
2598
2599
2600 Changes with nginx 0.3.12                                        26 Nov 2005
2601
2602     *) Security: if nginx was built with the ngx_http_realip_module and the 
2603        "satisfy_any on" directive was used, then access and authorization 
2604        directives did not work. The ngx_http_realip_module was not built 
2605        and is not built by default.
2606
2607     *) Change: the "$time_gmt" variable name was changed to "$time_local".
2608
2609     *) Change: the "proxy_header_buffer_size" and 
2610        "fastcgi_header_buffer_size" directives was renamed to the 
2611        "proxy_buffer_size" and "fastcgi_buffer_size" directives.
2612
2613     *) Feature: the ngx_http_memcached_module.
2614
2615     *) Feature: the "proxy_buffering" directive.
2616
2617     *) Bugfix: the changes in accept mutex handling when the "rtsig" method 
2618        was used; the bug had appeared in 0.3.0.
2619
2620     *) Bugfix: if the client sent the "Transfer-Encoding: chunked" header 
2621        line, then nginx returns the 411 error.
2622
2623     *) Bugfix: if the "auth_basic" directive was inherited from the http 
2624        level, then the realm in the "WWW-Authenticate" header line was 
2625        without the "Basic realm" text.
2626
2627     *) Bugfix: if the "combined" format was explicitly specified in the 
2628        "access_log" directive, then the empty lines was written to the log; 
2629        the bug had appeared in 0.3.8.
2630
2631     *) Bugfix: nginx did not run on the sparc platform under any OS except 
2632        Solaris.
2633
2634     *) Bugfix: now it is not necessary to place space between the quoted 
2635        string and closing bracket in the "if" directive.
2636
2637
2638 Changes with nginx 0.3.11                                        15 Nov 2005
2639
2640     *) Bugfix: nginx did not pass the client request headers and body while 
2641        proxying; the bug had appeared in 0.3.10.
2642
2643
2644 Changes with nginx 0.3.10                                        15 Nov 2005
2645
2646     *) Change: the "valid_referers" directive and the "$invalid_referer" 
2647        variable were moved to the new ngx_http_referer_module from the 
2648        ngx_http_rewrite_module.
2649
2650     *) Change: the "$apache_bytes_sent" variable name was changed to 
2651        "$body_bytes_sent".
2652
2653     *) Feature: the "$sent_http_..." variables.
2654
2655     *) Feature: the "if" directive supports the "=" and "!=" operations.
2656
2657     *) Feature: the "proxy_pass" directive supports the HTTPS protocol.
2658
2659     *) Feature: the "proxy_set_body" directive.
2660
2661     *) Feature: the "post_action" directive.
2662
2663     *) Feature: the ngx_http_empty_gif_module.
2664
2665     *) Feature: the "worker_cpu_affinity" directive for Linux.
2666
2667     *) Bugfix: the "rewrite" directive did not unescape URI part in 
2668        redirect, now it is unescaped except the %00-%25 and %7F-%FF 
2669        characters.
2670
2671     *) Bugfix: nginx could not be built by the icc 9.0 compiler.
2672
2673     *) Bugfix: if the SSI was enabled for zero size static file, then the 
2674        chunked response was encoded incorrectly.
2675
2676
2677 Changes with nginx 0.3.9                                         10 Nov 2005
2678
2679     *) Bugfix: nginx considered URI as unsafe if two any symbols was 
2680        between two slashes; the bug had appeared in 0.3.8.
2681
2682
2683 Changes with nginx 0.3.8                                         09 Nov 2005
2684
2685     *) Security: nginx now checks URI got from a backend in 
2686        "X-Accel-Redirect" header line or in SSI file for the "/../" paths 
2687        and zeroes.
2688
2689     *) Change: nginx now does not treat the empty user name in the 
2690        "Authorization" header line as valid one.
2691
2692     *) Feature: the "ssl_session_timeout" directives of the 
2693        ngx_http_ssl_module and ngx_imap_ssl_module.
2694
2695     *) Feature: the "auth_http_header" directive of the 
2696        ngx_imap_auth_http_module.
2697
2698     *) Feature: the "add_header" directive.
2699
2700     *) Feature: the ngx_http_realip_module.
2701
2702     *) Feature: the new variables to use in the "log_format" directive: 
2703        $bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri, 
2704        $request_time, $request_length, $upstream_status, 
2705        $upstream_response_time, $gzip_ratio, $uid_got, $uid_set, 
2706        $connection, $pipe, and $msec. The parameters in the "%name" form 
2707        will be canceled soon.
2708
2709     *) Change: now the false variable values in the "if" directive are the 
2710        empty string "" and string starting with "0".
2711
2712     *) Bugfix: while using proxied or FastCGI-server nginx may leave 
2713        connections and temporary files with client requests in open state.
2714
2715     *) Bugfix: the worker processes did not flush the buffered logs on 
2716        graceful exit.
2717
2718     *) Bugfix: if the request URI was changes by the "rewrite" directive 
2719        and the request was proxied in location given by regular expression, 
2720        then the incorrect request was transferred to backend; the bug had 
2721        appeared in 0.2.6.
2722
2723     *) Bugfix: the "expires" directive did not remove the previous 
2724        "Expires" header.
2725
2726     *) Bugfix: nginx may stop to accept requests if the "rtsig" method and 
2727        several worker processes were used.
2728
2729     *) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in 
2730        SSI commands.
2731
2732     *) Bugfix: if the response was ended just after the SSI command and 
2733        gzipping was used, then the response did not transferred complete or 
2734        did not transferred at all.
2735
2736
2737 Changes with nginx 0.3.7                                         27 Oct 2005
2738
2739     *) Feature: the "access_log" supports the "buffer=" parameter.
2740
2741     *) Bugfix: nginx could not be built on platforms different from i386, 
2742        amd64, sparc, and ppc; the bug had appeared in 0.3.2.
2743
2744
2745 Changes with nginx 0.3.6                                         24 Oct 2005
2746
2747     *) Change: now the IMAP/POP3 proxy do not send the empty login to 
2748        authorization server.
2749
2750     *) Feature: the "log_format" supports the variables in the $name form.
2751
2752     *) Bugfix: if at least in one server was no the "listen" directive, 
2753        then nginx did not listen on the 80 port; the bug had appeared in 
2754        0.3.3.
2755
2756     *) Bugfix: if the URI part is omitted in "proxy_pass" directive, the 
2757        the 80 port was always used.
2758
2759
2760 Changes with nginx 0.3.5                                         21 Oct 2005
2761
2762     *) Bugfix: the segmentation fault may occurred if the IMAP/POP3 login 
2763        was changed by authorization server; the bug had appeared in 0.2.2.
2764
2765     *) Bugfix: the accept mutex did not work and all connections were 
2766        handled by one process; the bug had appeared in 0.3.3.
2767
2768     *) Bugfix: the timeout did not work if the "rtsig" method and the 
2769        "timer_resolution" directive were used.
2770
2771
2772 Changes with nginx 0.3.4                                         19 Oct 2005
2773
2774     *) Bugfix: nginx could not be built on Linux 2.4+ and MacOS X; the bug 
2775        had appeared in 0.3.3.
2776
2777
2778 Changes with nginx 0.3.3                                         19 Oct 2005
2779
2780     *) Change: the "bl" and "af" parameters of the "listen" directive was 
2781        renamed to the "backlog" and "accept_filter".
2782
2783     *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" 
2784        directive.
2785
2786     *) Change: the "$msec" log parameter does not require now the 
2787        additional the gettimeofday() system call.
2788
2789     *) Feature: the -t switch now tests the "listen" directives.
2790
2791     *) Bugfix: if the invalid address was specified in the "listen" 
2792        directive, then after the -HUP signal nginx left an open socket in 
2793        the CLOSED state.
2794
2795     *) Bugfix: the mime type may be incorrectly set to default value for 
2796        index file with variable in the name; the bug had appeared in 0.3.0.
2797
2798     *) Feature: the "timer_resolution" directive.
2799
2800     *) Feature: the millisecond "$upstream_response_time" log parameter.
2801
2802     *) Bugfix: a temporary file with client request body now is removed 
2803        just after the response header was transferred to a client.
2804
2805     *) Bugfix: OpenSSL 0.9.6 compatibility.
2806
2807     *) Bugfix: the SSL certificate and key file paths could not be relative.
2808
2809     *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in 
2810        the ngx_imap_ssl_module.
2811
2812     *) Bugfix: the "ssl_protocols" directive allowed to specify the single 
2813        protocol only.
2814
2815
2816 Changes with nginx 0.3.2                                         12 Oct 2005
2817
2818     *) Feature: the Sun Studio 10 C compiler support.
2819
2820     *) Feature: the "proxy_upstream_max_fails", 
2821        "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and 
2822        "fastcgi_upstream_fail_timeout" directives.
2823
2824
2825 Changes with nginx 0.3.1                                         10 Oct 2005
2826
2827     *) Bugfix: the segmentation fault occurred when the signal queue 
2828        overflowed if the "rtsig" method was used; the bug had appeared in 
2829        0.2.0.
2830
2831     *) Change: correct handling of the "\\", "\"", "\'", and "\$" pairs in 
2832        SSI.
2833
2834
2835 Changes with nginx 0.3.0                                         07 Oct 2005
2836
2837     *) Change: the 10-days live time limit of worker process was 
2838        eliminated. The limit was introduced because of millisecond timers 
2839        overflow.
2840
2841
2842 Changes with nginx 0.2.6                                         05 Oct 2005
2843
2844     *) Change: while using load-balancing the time before the failed 
2845        backend retry was decreased from 60 to 10 seconds.
2846
2847     *) Change: the "proxy_pass_unparsed_uri" was canceled, the original URI 
2848        now passed, if the URI part is omitted in "proxy_pass" directive.
2849
2850     *) Feature: the "error_page" directive supports redirects and allows 
2851        more flexible to change an error code.
2852
2853     *) Change: the charset in the "Content-Type" header line now is ignored 
2854        in proxied subrequests.
2855
2856     *) Bugfix: if the URI was changed in the "if" block and request did not 
2857        found new configuration, then the ngx_http_rewrite_module rules ran 
2858        again.
2859
2860     *) Bugfix: if the "set" directive set the ngx_http_geo_module variable 
2861        in some configuration part, the this variable was not available in 
2862        other configuration parts and the "using uninitialized variable" 
2863        error was occurred; the bug had appeared in 0.2.2.
2864
2865
2866 Changes with nginx 0.2.5                                         04 Oct 2005
2867
2868     *) Change: the duplicate value of the ngx_http_geo_module variable now 
2869        causes the warning and changes old value.
2870
2871     *) Feature: the ngx_http_ssi_module supports the "set" command.
2872
2873     *) Feature: the ngx_http_ssi_module supports the "file" parameter in 
2874        the "include" command.
2875
2876     *) Feature: the ngx_http_ssi_module supports the variable value 
2877        substitutions in expressions of the "if" command.
2878
2879
2880 Changes with nginx 0.2.4                                         03 Oct 2005
2881
2882     *) Feature: the ngx_http_ssi_module supports "$var=text", "$var!=text", 
2883        "$var=/text/", and "$var!=/text/" expressions in the "if" command.
2884
2885     *) Bugfix: in proxying location without trailing slash; the bug had 
2886        appeared in 0.1.44.
2887
2888     *) Bugfix: the segmentation fault may occurred if the "rtsig" method 
2889        was used; the bug had appeared in 0.2.0.
2890
2891
2892 Changes with nginx 0.2.3                                         30 Sep 2005
2893
2894     *) Bugfix: nginx could not be built without the --with-debug option; 
2895        the bug had appeared in 0.2.2.
2896
2897
2898 Changes with nginx 0.2.2                                         30 Sep 2005
2899
2900     *) Feature: the "config errmsg" command of the ngx_http_ssi_module.
2901
2902     *) Change: the ngx_http_geo_module variables can be overridden by the 
2903        "set" directive.
2904
2905     *) Feature: the "ssl_protocols" and "ssl_prefer_server_ciphers" 
2906        directives of the ngx_http_ssl_module and ngx_imap_ssl_module.
2907
2908     *) Bugfix: the ngx_http_autoindex_module did not show correctly the 
2909        long file names;
2910
2911     *) Bugfix: the ngx_http_autoindex_module now do not show the files 
2912        starting by dot.
2913
2914     *) Bugfix: if the SSL handshake failed then another connection may be 
2915        closed too.
2916        Thanks to Rob Mueller.
2917
2918     *) Bugfix: the export versions of MSIE 5.x could not connect via HTTPS.
2919
2920
2921 Changes with nginx 0.2.1                                         23 Sep 2005
2922
2923     *) Bugfix: if all backend using in load-balancing failed after one 
2924        error, then nginx may got caught in an endless loop; the bug had 
2925        appeared in 0.2.0.
2926
2927
2928 Changes with nginx 0.2.0                                         23 Sep 2005
2929
2930     *) The pid-file names used during online upgrade was changed and now is 
2931        not required a manual rename operation. The old master process adds 
2932        the ".oldbin" suffix to its pid-file and executes a new binary file. 
2933        The new master process creates usual pid-file without the ".newbin" 
2934        suffix. If the master process exits, then old master process renames 
2935        back its pid-file with the ".oldbin" suffix to the pid-file without 
2936        suffix.
2937
2938     *) Change: the "worker_connections" directive, new name of the 
2939        "connections" directive; now the directive specifies maximum number 
2940        of connections, but not maximum socket descriptor number.
2941
2942     *) Feature: SSL supports the session cache inside one worker process.
2943
2944     *) Feature: the "satisfy_any" directive.
2945
2946     *) Change: the ngx_http_access_module and ngx_http_auth_basic_module do 
2947        not run for subrequests.
2948
2949     *) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending" 
2950        directives.
2951
2952     *) Bugfix: if all backend using in load-balancing failed after one 
2953        error, then nginx did not try do connect to them during 60 seconds.
2954
2955     *) Bugfix: in IMAP/POP3 command argument parsing.
2956        Thanks to Rob Mueller.
2957
2958     *) Bugfix: errors while using SSL in IMAP/POP3 proxy.
2959
2960     *) Bugfix: errors while using SSI and gzipping.
2961
2962     *) Bugfix: the "Expires" and "Cache-Control" header lines were omitted 
2963        from the 304 responses.
2964        Thanks to Alexandr Kukushkin.
2965
2966
2967 Changes with nginx 0.1.45                                        08 Sep 2005
2968
2969     *) Change: the "ssl_engine" directive was canceled in the 
2970        ngx_http_ssl_module and now is introduced at global level.
2971
2972     *) Bugfix: the responses with SSI subrequests did not transferred via 
2973        SSL connection.
2974
2975     *) Various bug fixes in the IMAP/POP3 proxy.
2976
2977
2978 Changes with nginx 0.1.44                                        06 Sep 2005
2979
2980     *) Feature: the IMAP/POP3 proxy supports SSL.
2981
2982     *) Feature: the "proxy_timeout" directive of the ngx_imap_proxy_module.
2983
2984     *) Feature: the "userid_mark" directive.
2985
2986     *) Feature: the $remote_user variable value is determined independently 
2987        of authorization use.
2988
2989
2990 Changes with nginx 0.1.43                                        30 Aug 2005
2991
2992     *) Feature: the listen(2) backlog in the "listen" directive can be 
2993        changed using the -HUP signal.
2994
2995     *) Feature: the geo2nginx.pl script was added to contrib.
2996
2997     *) Change: the FastCGI parameters with the empty values now are passed 
2998        to a server.
2999
3000     *) Bugfix: the segmentation fault occurred or the worker process may 
3001        got caught in an endless loop if the proxied or FastCGI server sent 
3002        the "Cache-Control" header line and the "expires" directive was 
3003        used; in the proxied mode the the bug had appeared in 0.1.29.
3004
3005
3006 Changes with nginx 0.1.42                                        23 Aug 2005
3007
3008     *) Bugfix: if the request URI had a zero length after the processing in 
3009        the ngx_http_proxy_module, then the segmentation fault or bus error 
3010        occurred in the ngx_http_proxy_module.
3011
3012     *) Bugfix: the "limit_rate" directive did not work inside the "if" 
3013        block; the bug had appeared in 0.1.38.
3014
3015
3016 Changes with nginx 0.1.41                                        25 Jul 2005
3017
3018     *) Bugfix: if the variable was used in the configuration file, then it 
3019        can not be used in SSI.
3020
3021
3022 Changes with nginx 0.1.40                                        22 Jul 2005
3023
3024     *) Bugfix: if a client sent too long header line, then the request 
3025        information did not logged in the error log.
3026
3027     *) Bugfix: the "Set-Cookie" header line was not transferred when the 
3028        "X-Accel-Redirect" was used; the bug had appeared in 0.1.39.
3029
3030     *) Bugfix: the "Content-Disposition" header line was not transferred 
3031        when the "X-Accel-Redirect" was used.
3032
3033     *) Bugfix: the master process did not close the listen socket on the 
3034        SIGQUIT signal.
3035
3036     *) Bugfix: after on-line upgrade on Linux and Solaris the process name 
3037        became shorter in the "ps" command.
3038
3039
3040 Changes with nginx 0.1.39                                        14 Jul 2005
3041
3042     *) The changes in the ngx_http_charset_module: the "default_charset" 
3043        directive was canceled; the "charset" directive sets the response 
3044        charset; the "source_charset" directive sets the source charset only.
3045
3046     *) Bugfix: the backend "WWW-Authenticate" header line did not 
3047        transferred while the 401 response code redirecting.
3048
3049     *) Bugfix: the ngx_http_proxy_module and ngx_http_fastcgi_module may 
3050        close a connection before anything was transferred to a client; the 
3051        bug had appeared in 0.1.38.
3052
3053     *) Workaround: the Linux glibc crypt_r() initialization bug.
3054
3055     *) Bugfix: the ngx_http_ssi_module did not support the relative URI in 
3056        the "include virtual" command.
3057
3058     *) Bugfix: if the backend response had the "Location" header line and 
3059        nginx should not rewrite this line, then the 500 code response body 
3060        was transferred; the bug had appeared in 0.1.29.
3061
3062     *) Bugfix: some directives of the ngx_http_proxy_module and 
3063        ngx_http_fastcgi_module were not inherited from the server to the 
3064        location level; the bug had appeared in 0.1.29.
3065
3066     *) Bugfix: the ngx_http_ssl_module did not support the certificate 
3067        chain.
3068
3069     *) Bugfix: the ngx_http_autoindex_module did not show correctly the 
3070        long file names; the bug had appeared in 0.1.38.
3071
3072     *) Bugfixes in IMAP/POP3 proxy in interaction with a backend at the 
3073        login state.
3074
3075
3076 Changes with nginx 0.1.38                                        08 Jul 2005
3077
3078     *) Feature: the "limit_rate" directive is supported in in proxy and 
3079        FastCGI mode.
3080
3081     *) Feature: the "X-Accel-Limit-Rate" response header line is supported 
3082        in proxy and FastCGI mode.
3083
3084     *) Feature: the "break" directive.
3085
3086     *) Feature: the "log_not_found" directive.
3087
3088     *) Bugfix: the response status code was not changed when request was 
3089        redirected by the ""X-Accel-Redirect" header line.
3090
3091     *) Bugfix: the variables set by the "set" directive could not be used 
3092        in SSI.
3093
3094     *) Bugfix: the segmentation fault may occurred if the SSI page has more 
3095        than one remote subrequest.
3096
3097     *) Bugfix: nginx treated the backend response as invalid if the status 
3098        line in the header was transferred in two packets; the bug had 
3099        appeared in 0.1.29.
3100
3101     *) Feature: the "ssi_types" directive.
3102
3103     *) Feature: the "autoindex_exact_size" directive.
3104
3105     *) Bugfix: the ngx_http_autoindex_module did not support the long file 
3106        names in UTF-8.
3107
3108     *) Feature: the IMAP/POP3 proxy.
3109
3110
3111 Changes with nginx 0.1.37                                        23 Jun 2005
3112
3113     *) Change: now the "\n" is added to the end of the "nginx.pid" file.
3114
3115     *) Bugfix: the responses may be transferred not completely, if many 
3116        parts or the big parts were included by SSI.
3117
3118     *) Bugfix: if all backends had returned the 404 reponse and the 
3119        "http_404" parameter of the "proxy_next_upstream" or 
3120        "fastcgi_next_upstream" directives was used, then nginx started to 
3121        request all backends again.
3122
3123
3124 Changes with nginx 0.1.36                                        15 Jun 2005
3125
3126     *) Change: if the request header has duplicate the "Host", 
3127        "Connection", "Content-Length", or "Authorization" lines, then nginx 
3128        now returns the 400 error.
3129
3130     *) Change: the "post_accept_timeout" directive was canceled.
3131
3132     *) Feature: the "default", "af=", "bl=", "deferred", and "bind" 
3133        parameters of the "listen" directive.
3134
3135     *) Feature: the FreeBSD accept filters support.
3136
3137     *) Feature: the Linux TCP_DEFER_ACCEPT support.
3138
3139     *) Bugfix: the ngx_http_autoindex_module did not support the file names 
3140        in UTF-8.
3141
3142     *) Bugfix: the new log file can be rotated by the -USR1 signal only if 
3143        the reconfiguration by the -HUP signal was made twice.
3144
3145
3146 Changes with nginx 0.1.35                                        07 Jun 2005
3147
3148     *) Feature: the "working_directory" directive.
3149
3150     *) Feature: the "port_in_redirect" directive.
3151
3152     *) Bugfix: the segmentation fault was occurred if the backend response 
3153        header was in several packets; the bug had appeared in 0.1.29.
3154
3155     *) Bugfix: if more than 10 servers were configured or some server did 
3156        not use the "listen" directive, then the segmentation fault was 
3157        occurred on the start.
3158
3159     *) Bugfix: the segmentation fault might occur if the response was 
3160        bigger than the temporary file.
3161
3162     *) Bugfix: nginx returned the 400 response on requests like 
3163        "GET http://www.domain.com/uri HTTP/1.0"; the bug had appeared in 
3164        0.1.28.
3165
3166
3167 Changes with nginx 0.1.34                                        26 May 2005
3168
3169     *) Bugfix: the worker process may got caught in an endless loop if the 
3170        big response part were include by SSI.
3171
3172     *) Bugfix: the variables set by the "set" directive were not available 
3173        in SSI.
3174
3175     *) Feature: the "autoindex_localtime" directive.
3176
3177     *) Bugfix: the empty value of the "proxy_set_header" directive forbids 
3178        the client request header line passing.
3179
3180
3181 Changes with nginx 0.1.33                                        23 May 2005
3182
3183     *) Bugfix: nginx could not be built with the --without-pcre parameter; 
3184        the bug had appeared in 0.1.29.
3185
3186     *) Bugfix: 3, 4, 7, and 8 the "proxy_set_header" directives in one 
3187        level cause the bus fault on start up.
3188
3189     *) Bugfix: the HTTP protocol was specified in the HTTPS redirects.
3190
3191     *) Bugfix: if the "rewrite" directive used the captures inside the "if" 
3192        directive, then the 500 error code was returned.
3193
3194
3195 Changes with nginx 0.1.32                                        19 May 2005
3196
3197     *) Bugfix: the arguments were omitted in the redirects, issued by the 
3198        "rewrite" directive; the bug had appeared in 0.1.29.
3199
3200     *) Feature: the "if" directive supports the captures in regular 
3201        expressions.
3202
3203     *) Feature: the "set" directive supports the variables and the captures 
3204        of regular expressions.
3205
3206     *) Feature: the "X-Accel-Redirect" response header line is supported in 
3207        proxy and FastCGI mode.
3208
3209
3210 Changes with nginx 0.1.31                                        16 May 2005
3211
3212     *) Bugfix: the response encrypted by SSL may not transferred complete.
3213
3214     *) Bugfix: errors while processing FastCGI response by SSI.
3215
3216     *) Bugfix: errors while using SSI and gzipping.
3217
3218     *) Bugfix: the redirect with the 301 code was transferred without 
3219        response body; the bug had appeared in 0.1.30.
3220
3221
3222 Changes with nginx 0.1.30                                        14 May 2005
3223
3224     *) Bugfix: the worker process may got caught in an endless loop if the 
3225        SSI was used.
3226
3227     *) Bugfix: the response encrypted by SSL may not transferred complete.
3228
3229     *) Bugfix: if the length of the response part received at once from 
3230        proxied or FastCGI server was equal to 500, then nginx returns the 
3231        500 response code; in proxy mode the the bug had appeared in 0.1.29 
3232        only.
3233
3234     *) Bugfix: nginx did not consider the directives with 8 or 9 parameters 
3235        as invalid.
3236
3237     *) Feature: the "return" directive can return the 204 response code.
3238
3239     *) Feature: the "ignore_invalid_headers" directive.
3240
3241
3242 Changes with nginx 0.1.29                                        12 May 2005
3243
3244     *) Feature: the ngx_http_ssi_module supports "include virtual" command.
3245
3246     *) Feature: the ngx_http_ssi_module supports the condition command like 
3247        'if expr="$NAME"' and "else" and "endif" commands. Only one nested 
3248        level is supported.
3249
3250     *) Feature: the ngx_http_ssi_module supports the DATE_LOCAL and 
3251        DATE_GMT variables and "config timefmt" command.
3252
3253     *) Feature: the "ssi_ignore_recycled_buffers" directive.
3254
3255     *) Bugfix: the "echo" command did not show the default value for the 
3256        empty QUERY_STRING variable.
3257
3258     *) Change: the ngx_http_proxy_module was rewritten.
3259
3260     *) Feature: the "proxy_redirect", "proxy_pass_request_headers", 
3261        "proxy_pass_request_body", and "proxy_method" directives.
3262
3263     *) Feature: the "proxy_set_header" directive. The "proxy_x_var" was 
3264        canceled and must be replaced with the proxy_set_header directive.
3265
3266     *) Change: the "proxy_preserve_host" is canceled and must be replaced 
3267        with the "proxy_set_header Host $host" and the "proxy_redirect off" 
3268        directives, the "proxy_set_header Host $host:$proxy_port" directive 
3269        and the appropriate proxy_redirect directives.
3270
3271     *) Change: the "proxy_set_x_real_ip" is canceled and must be replaced 
3272        with the "proxy_set_header X-Real-IP $remote_addr" directive.
3273
3274     *) Change: the "proxy_add_x_forwarded_for" is canceled and must be 
3275        replaced with 
3276        the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for" 
3277        directive.
3278
3279     *) Change: the "proxy_set_x_url" is canceled and must be replaced with 
3280        the "proxy_set_header X-URL http://$host:$server_port$request_uri" 
3281        directive.
3282
3283     *) Feature: the "fastcgi_param" directive.
3284
3285     *) Change: the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" 
3286        directive are canceled and must be replaced with the fastcgi_param 
3287        directives.
3288
3289     *) Feature: the "index" directive can use the variables.
3290
3291     *) Feature: the "index" directive can be used at http and server levels.
3292
3293     *) Change: the last index only in the "index" directive can be absolute.
3294
3295     *) Feature: the "rewrite" directive can use the variables.
3296
3297     *) Feature: the "internal" directive.
3298
3299     *) Feature: the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, 
3300        SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, 
3301        REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables.
3302
3303     *) Change: nginx now passes the invalid lines in a client request 
3304        headers or a backend response header.
3305
3306     *) Bugfix: if the backend did not transfer response for a long time and 
3307        the "send_timeout" was less than "proxy_read_timeout", then nginx 
3308        returned the 408 response.
3309
3310     *) Bugfix: the segmentation fault was occurred if the backend sent an 
3311        invalid line in response header; the bug had appeared in 0.1.26.
3312
3313     *) Bugfix: the segmentation fault may occurred in FastCGI fault 
3314        tolerance configuration.
3315
3316     *) Bugfix: the "expires" directive did not remove the previous 
3317        "Expires" and "Cache-Control" headers.
3318
3319     *) Bugfix: nginx did not take into account trailing dot in "Host" 
3320        header line.
3321
3322     *) Bugfix: the ngx_http_auth_module did not work under Linux.
3323
3324     *) Bugfix: the rewrite directive worked incorrectly, if the arguments 
3325        were in a request.
3326
3327     *) Bugfix: nginx could not be built on MacOS X.
3328
3329
3330 Changes with nginx 0.1.28                                        08 Apr 2005
3331
3332     *) Bugfix: nginx hogs CPU while proxying the huge files.
3333
3334     *) Bugfix: nginx could not be built by gcc 4.0 on Linux.
3335
3336
3337 Changes with nginx 0.1.27                                        28 Mar 2005
3338
3339     *) Feature: the "blocked" parameter of the "valid_referers" directive.
3340
3341     *) Change: the errors while handling the request header now logged at 
3342        "info" level. The server name and the "Host" and "Referer" header 
3343        lines also logged.
3344
3345     *) Change: the "Host" header line is also logged in error log.
3346
3347     *) Feature: the proxy_pass_unparsed_uri directive. The special handling 
3348        of the "://" symbols in URI, appeared in 0.1.11 version, now is 
3349        canceled.
3350
3351     *) Bugfix: nginx could not be built on FreeBSD and Linux, if the 
3352        --without-ngx_http_auth_basic_module configuration parameter was 
3353        used.
3354
3355
3356 Changes with nginx 0.1.26                                        22 Mar 2005
3357
3358     *) Change: the invalid client header lines are now ignored and logged 
3359        at the info level.
3360
3361     *) Change: the server name is also logged in error log.
3362
3363     *) Feature: the ngx_http_auth_basic_module module and the auth_basic 
3364        and auth_basic_user_file directives.
3365
3366
3367 Changes with nginx 0.1.25                                        19 Mar 2005
3368
3369     *) Bugfix: nginx did run on Linux parisc.
3370
3371     *) Feature: nginx now does not start under FreeBSD if the sysctl 
3372        kern.ipc.somaxconn value is too big.
3373
3374     *) Bugfix: if a request was internally redirected by the 
3375        ngx_http_index_module module to the ngx_http_proxy_module or 
3376        ngx_http_fastcgi_module modules, then the index file was not closed 
3377        after request completion.
3378
3379     *) Feature: the "proxy_pass" can be used in location with regular 
3380        expression.
3381
3382     *) Feature: the ngx_http_rewrite_filter_module module supports the 
3383        condition like "if ($HTTP_USER_AGENT ~ MSIE)".
3384
3385     *) Bugfix: nginx started too slow if the large number of addresses and 
3386        text values were used in the "geo" directive.
3387
3388     *) Change: a variable name must be declared as "$name" in the "geo" 
3389        directive. The previous variant without "$" is still supported, but 
3390        will be removed soon.
3391
3392     *) Feature: the "%{VARIABLE}v" logging parameter.
3393
3394     *) Feature: the "set $name value" directive.
3395
3396     *) Bugfix: gcc 4.0 compatibility.
3397
3398     *) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
3399
3400
3401 Changes with nginx 0.1.24                                        04 Mar 2005
3402
3403     *) Feature: the ngx_http_ssi_filter_module supports the QUERY_STRING 
3404        and DOCUMENT_URI variables.
3405
3406     *) Bugfix: the ngx_http_autoindex_module may some times return the 404 
3407        response for existent directory, if this directory was used in 
3408        "alias" directive.
3409
3410     *) Bugfix: the ngx_http_ssi_filter_module ran incorrectly for large 
3411        responses.
3412
3413     *) Bugfix: the lack of the "Referer" header line was always accounted 
3414        as valid referrer.
3415
3416
3417 Changes with nginx 0.1.23                                        01 Mar 2005
3418
3419     *) Feature: the ngx_http_ssi_filter_module and the ssi, 
3420        ssi_silent_errors, and ssi_min_file_chunk directives. The 'echo 
3421        var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands are 
3422        supported.
3423
3424     *) Feature: the %request_time log parameter.
3425
3426     *) Feature: if the request has no the "Host" header line, then the 
3427        "proxy_preserve_host" directive set this header line to the first 
3428        server name of the "server_name" directive.
3429
3430     *) Bugfix: nginx could not be built on platforms different from i386, 
3431        amd64, sparc, and ppc; the bug had appeared in 0.1.22.
3432
3433     *) Bugfix: the ngx_http_autoindex_module now shows the information not 
3434        about the symlink, but about file or directory it points to.
3435
3436     *) Bugfix: the %apache_length parameter logged the negative length of 
3437        the response header if the no response was transferred to a client.
3438
3439
3440 Changes with nginx 0.1.22                                        22 Feb 2005
3441
3442     *) Bugfix: the ngx_http_stub_status_module showed incorrect handled 
3443        connections statistics if the proxying or FastCGI server were used.
3444
3445     *) Bugfix: the installation paths were incorrectly quoted on Linux and 
3446        Solaris; the bug had appeared in 0.1.21.
3447
3448
3449 Changes with nginx 0.1.21                                        22 Feb 2005
3450
3451     *) Bugfix: the ngx_http_stub_status_module showed incorrect statistics 
3452        if "rtsig" method was used or if several worker process ran on SMP.
3453
3454     *) Bugfix: nginx could not be built by the icc compiler on Linux or if 
3455        the zlib-1.2.x library was building from sources.
3456
3457     *) Bugfix: nginx could not be built on NetBSD 2.0.
3458
3459
3460 Changes with nginx 0.1.20                                        17 Feb 2005
3461
3462     *) Feature: the new "script_filename" and "remote_port" parameters of 
3463        the fastcgi_params directive.
3464
3465     *) Bugfix: the FastCGI stderr stream was handled incorrectly.
3466
3467
3468 Changes with nginx 0.1.19                                        16 Feb 2005
3469
3470     *) Bugfix: now, if request contains the zero, then the 404 error is 
3471        returned for the local requests.
3472
3473     *) Bugfix: nginx could not be built on NetBSD 2.0.
3474
3475     *) Bugfix: the timeout may occur while reading of the the client 
3476        request body via SSL connections.
3477
3478
3479 Changes with nginx 0.1.18                                        09 Feb 2005
3480
3481     *) Workaround: the default values of the devpoll_events and the 
3482        devpoll_changes directives changed from 512 to 32 to be compatible 
3483        with Solaris 10.
3484
3485     *) Bugfix: the proxy_set_x_var and fastcgi_set_var directives were not 
3486        inherited.
3487
3488     *) Bugfix: in a redirect rewrite directive arguments were concatenated 
3489        with URI by an "&" rather than an "?".
3490
3491     *) Bugfix: the lines without trailing ";" in the file being included by 
3492        the ngx_http_geo_module were silently ignored.
3493
3494     *) Feature: the ngx_http_stub_status_module.
3495
3496     *) Bugfix: the unknown log format in the access_log directive caused 
3497        the segmentation fault.
3498
3499     *) Feature: the new "document_root" parameter of the fastcgi_params 
3500        directive.
3501
3502     *) Feature: the fastcgi_redirect_errors directive.
3503
3504     *) Feature: the new "break" modifier of the "rewrite" directive allows 
3505        to stop the rewrite/location cycle and sets the current 
3506        configuration to the request.
3507
3508
3509 Changes with nginx 0.1.17                                        03 Feb 2005
3510
3511     *) Change: the ngx_http_rewrite_module was rewritten from the scratch. 
3512        Now it is possible to redirect, to return the error codes, to check 
3513        the variables and referrers. The directives can be used inside 
3514        locations. The redirect directive was canceled.
3515
3516     *) Feature: the ngx_http_geo_module.
3517
3518     *) Feature: the proxy_set_x_var and fastcgi_set_var directives.
3519
3520     *) Bugfix: the location configuration with "=" modifier may be used in 
3521        another location.
3522
3523     *) Bugfix: the correct content type was set only for requests that use 
3524        small caps letters in extension.
3525
3526     *) Bugfix: if the proxy_pass or fastcgi_pass directives were set in the 
3527        location, and access was denied, and the error was redirected to a 
3528        static page, then the segmentation fault occurred.
3529
3530     *) Bugfix: if in a proxied "Location" header was a relative URL, then a 
3531        host name and a slash were added to them; the bug had appeared in 
3532        0.1.14.
3533
3534     *) Bugfix: the system error message was not logged on Linux.
3535
3536
3537 Changes with nginx 0.1.16                                        25 Jan 2005
3538
3539     *) Bugfix: if the response were transferred by chunks, then on the HEAD 
3540        request the final chunk was issued.
3541
3542     *) Bugfix: the "Connection: keep-alive" header were issued, even if the 
3543        keepalive_timeout directive forbade the keep-alive use.
3544
3545     *) Bugfix: the errors in the ngx_http_fastcgi_module caused the 
3546        segmentation faults.
3547
3548     *) Bugfix: the compressed response encrypted by SSL may not transferred 
3549        complete.
3550
3551     *) Bugfix: the TCP-specific TCP_NODELAY, TCP_NOPSUH, and TCP_CORK 
3552        options, are not used for the unix domain sockets.
3553
3554     *) Feature: the rewrite directive supports the arguments rewriting.
3555
3556     *) Bugfix: the response code 400 was returned for the POST request with 
3557        the "Content-Length: 0" header; the bug had appeared in 0.1.14.
3558
3559
3560 Changes with nginx 0.1.15                                        19 Jan 2005
3561
3562     *) Bugfix: the error while the connecting to the FastCGI server caused 
3563        segmentation fault.
3564
3565     *) Bugfix: the correct handling of the regular expression, that has 
3566        different number of the captures and substitutions.
3567
3568     *) Feature: the location, that is passed to the FastCGI server, can be 
3569        regular expression.
3570
3571     *) Bugfix: the FastCGI's parameter REQUEST_URI is now passed with the 
3572        arguments and in the original state.
3573
3574     *) Bugfix: the ngx_http_rewrite_module module was required to be built 
3575        to use the regular expressions in locations.
3576
3577     *) Bugfix: the directive "proxy_preserve_host  on" adds port 80 to the 
3578        "Host" headers, if upstream listen on port 80; the bug had appeared 
3579        in 0.1.14.
3580
3581     *) Bugfix: the same paths in autoconfiguration parameters 
3582        --http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH, 
3583        or --http-client-body-temp-path=PATH and 
3584        --http-fastcgi-temp-path=PATH caused segmentation fault.
3585
3586
3587 Changes with nginx 0.1.14                                        18 Jan 2005
3588
3589     *) Feature: the autoconfiguration directives: 
3590        --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and 
3591        --http-fastcgi-temp-path=PATH
3592
3593     *) Change: the directory name for the temporary files with the client 
3594        request body is specified by directive client_body_temp_path, by 
3595        default it is <prefix>/client_body_temp.
3596
3597     *) Feature: the ngx_http_fastcgi_module and the directives: 
3598        fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params, 
3599        fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout, 
3600        fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers, 
3601        fastcgi_busy_buffers_size, fastcgi_temp_path, 
3602        fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, 
3603        fastcgi_next_upstream, and fastcgi_x_powered_by.
3604
3605     *) Bugfix: the "[alert] zero size buf" error; the bug had appeared in 
3606        0.1.3.
3607
3608     *) Change: the URI must be specified after the host name in the 
3609        proxy_pass directive.
3610
3611     *) Change: the %3F symbol in the URI was considered as the argument 
3612        string start.
3613
3614     *) Feature: the unix domain sockets support in the 
3615        ngx_http_proxy_module.
3616
3617     *) Feature: the ssl_engine and ssl_ciphers directives.
3618        Thanks to Sergey Skvortsov for SSL-accelerator.
3619
3620
3621 Changes with nginx 0.1.13                                        21 Dec 2004
3622
3623     *) Feature: the server_names_hash and server_names_hash_threshold 
3624        directives.
3625
3626     *) Bugfix: the *.domain.tld names in the "server_name" directive did 
3627        not work.
3628
3629     *) Bugfix: the %request_length log parameter logged the incorrect 
3630        length.
3631
3632
3633 Changes with nginx 0.1.12                                        06 Dec 2004
3634
3635     *) Feature: the %request_length log parameter.
3636
3637     *) Bugfix: when using the /dev/poll, select and poll on the platforms, 
3638        where these methods may do the false reports, there may be the long 
3639        delay when the request was passed via the keep-alive connection. It 
3640        may be at least on Solaris when using the /dev/poll.
3641
3642     *) Bugfix: the send_lowat directive is ignored on Linux because Linux 
3643        does not support the SO_SNDLOWAT option.
3644
3645
3646 Changes with nginx 0.1.11                                        02 Dec 2004
3647
3648     *) Feature: the worker_priority directive.
3649
3650     *) Change: both tcp_nopush and tcp_nodelay directives affect the 
3651        transferred response.
3652
3653     *) Bugfix: nginx did not call initgroups().
3654        Thanks to Andrew Sitnikov and Andrei Nigmatulin.
3655
3656     *) Change: now the ngx_http_autoindex_module shows the file size in the 
3657        bytes.
3658
3659     *) Bugfix: the ngx_http_autoindex_module returned the 500 error if the 
3660        broken symlink was in a directory.
3661
3662     *) Bugfix: the files bigger than 4G could not be transferred using 
3663        sendfile.
3664
3665     *) Bugfix: if the backend was resolved to several backends and there 
3666        was an error while the response waiting then process may got caught 
3667        in an endless loop.
3668
3669     *) Bugfix: the worker process may exit with the "unknown cycle" message 
3670        when the /dev/poll method was used.
3671
3672     *) Bugfix: "close() channel failed" errors.
3673
3674     *) Bugfix: the autodetection of the "nobody" and "nogroup" groups.
3675
3676     *) Bugfix: the send_lowat directive did not work on Linux.
3677
3678     *) Bugfix: the segmentation fault occurred if there was no events 
3679        section in configuration.
3680
3681     *) Bugfix: nginx could not be built on OpenBSD.
3682
3683     *) Bugfix: the double slashes in "://" in the URI were converted to 
3684        ":/".
3685
3686
3687 Changes with nginx 0.1.10                                        26 Nov 2004
3688
3689     *) Bugfix: if the request without arguments contains "//", "/./", 
3690        "/../" or "%XX" then the lost character in the request line was 
3691        lost; the bug had appeared in 0.1.9.
3692
3693     *) Bugfix: the fix in 0.1.9 for the files bigger than 2G on Linux did 
3694        not work.
3695
3696
3697 Changes with nginx 0.1.9                                         25 Nov 2004
3698
3699     *) Bugfix: the proxied request was sent without arguments if the 
3700        request contains "//", "/./", "/../" or "%XX".
3701
3702     *) Bugfix: the large compressed responses may be transferred not 
3703        completely.
3704
3705     *) Bugfix: the files bigger than 2G was not transferred on Linux that 
3706        does not support sendfile64().
3707
3708     *) Bugfix: while the build configuration on Linux the 
3709        --with-poll_module parameter was required; the bug had appeared in 
3710        0.1.8.
3711
3712
3713 Changes with nginx 0.1.8                                         20 Nov 2004
3714
3715     *) Bugfix: in the ngx_http_autoindex_module if the long file names were 
3716        in the listing.
3717
3718     *) Feature: the "^~" modifier in the location directive.
3719
3720     *) Feature: the proxy_max_temp_file_size directive.
3721
3722
3723 Changes with nginx 0.1.7                                         12 Nov 2004
3724
3725     *) Bugfix: on FreeBSD the segmentation fault may occur if the size of 
3726        the transferred file was changed; the bug had appeared in 0.1.5.
3727
3728
3729 Changes with nginx 0.1.6                                         11 Nov 2004
3730
3731     *) Bugfix: some location directive combinations with the regular 
3732        expressions caused the wrong configuration choose.
3733
3734
3735 Changes with nginx 0.1.5                                         11 Nov 2004
3736
3737     *) Bugfix: on Solaris and Linux there may be too many "recvmsg() 
3738        returned not enough data" alerts.
3739
3740     *) Bugfix: there were the "writev() failed (22: Invalid argument)" 
3741        errors on Solaris in proxy mode without sendfile. On other platforms 
3742        that do not support sendfile at all the process got caught in an 
3743        endless loop.
3744
3745     *) Bugfix: segmentation fault on Solaris in proxy mode and using 
3746        sendfile.
3747
3748     *) Bugfix: segmentation fault on Solaris.
3749
3750     *) Bugfix: on-line upgrade did not work on Linux.
3751
3752     *) Bugfix: the ngx_http_autoindex_module module did not escape the 
3753        spaces, the quotes, and the percent signs in the directory listing.
3754
3755     *) Change: the decrease of the copy operations.
3756
3757     *) Feature: the userid_p3p directive.
3758
3759
3760 Changes with nginx 0.1.4                                         26 Oct 2004
3761
3762     *) Bugfix: in the ngx_http_autoindex_module.
3763
3764
3765 Changes with nginx 0.1.3                                         25 Oct 2004
3766
3767     *) Feature: the ngx_http_autoindex_module and the autoindex directive.
3768
3769     *) Feature: the proxy_set_x_url directive.
3770
3771     *) Bugfix: proxy module may get caught in an endless loop when sendfile 
3772        is not used.
3773
3774
3775 Changes with nginx 0.1.2                                         21 Oct 2004
3776
3777     *) Feature: the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS 
3778        options in configure.
3779
3780     *) Feature: the server_name directive supports *.domain.tld.
3781
3782     *) Bugfix: the portability improvements.
3783
3784     *) Bugfix: if configuration file was set in command line, the 
3785        reconfiguration was impossible; the bug had appeared in 0.1.1.
3786
3787     *) Bugfix: proxy module may get caught in an endless loop when sendfile 
3788        is not used.
3789
3790     *) Bugfix: with sendfile the response was not recoded according to the 
3791        charset module directives; the bug had appeared in 0.1.1.
3792
3793     *) Bugfix: very seldom bug in the kqueue processing.
3794
3795     *) Bugfix: the gzip module compressed the proxied responses that was 
3796        already compressed.
3797
3798
3799 Changes with nginx 0.1.1                                         11 Oct 2004
3800
3801     *) Feature: the gzip_types directive.
3802
3803     *) Feature: the tcp_nodelay directive.
3804
3805     *) Feature: the send_lowat directive is working not only on OSes that 
3806        support kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT.
3807
3808     *) Feature: the setproctitle() emulation for Linux and Solaris.
3809
3810     *) Bugfix: the "Location" header rewrite bug fixed while the proxying.
3811
3812     *) Bugfix: the ngx_http_chunked_module module may get caught in an 
3813        endless loop.
3814
3815     *) Bugfix: the /dev/poll module bugs fixed.
3816
3817     *) Bugfix: the responses were corrupted when the temporary files were 
3818        used while the proxying.
3819
3820     *) Bugfix: the unescaped requests were passed to the backend.
3821
3822     *) Bugfix: while the build configuration on Linux 2.4 the 
3823        --with-poll_module parameter was required.
3824
3825
3826 Changes with nginx 0.1.0                                         04 Oct 2004
3827
3828     *) The first public version.
3829