source: server/CHANGES @ c7670f

Revision c7670f, 157.1 KB checked in by George Potapov <nephrite@…>, 3 years ago (diff)

Vendor drop nginx v0.8.21

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