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