2 Changes with nginx-catap 0.8.41.595.52dc8e5 16 Jun 2010
4 *) Feature: implement support value from POST by $arg_ variables
6 *) Feature: add ngx_http_upstream_keepalive by Maxim Dounin
8 *) Feature: add ginx-eval-module by Valery Kholodkov
10 *) Workaround: update to new API.
13 Changes with nginx 0.8.41 15 Jun 2010
15 *) Security: nginx/Windows worker might be terminated abnormally if a
16 requested file name has invalid UTF-8 encoding.
18 *) Change: now nginx allows to use spaces in a request line.
20 *) Bugfix: the "proxy_redirect" directive changed incorrectly a backend
21 "Refresh" response header line.
22 Thanks to Andrey Andreew and Max Sogin.
24 *) Bugfix: nginx did not support path without host name in
25 "Destination" request header line.
28 Changes with nginx 0.8.40 07 Jun 2010
30 *) Security: now nginx/Windows ignores default file stream name.
31 Thanks to Jose Antonio Vazquez Gonzalez.
33 *) Feature: the ngx_http_uwsgi_module.
34 Thanks to Roberto De Ioris.
36 *) Feature: a "fastcgi_param" directive with value starting with
37 "HTTP_" overrides a client request header line.
39 *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request
40 header lines were passed to FastCGI-server while caching.
42 *) Bugfix: listen unix domain socket could not be changed during
44 Thanks to Maxim Dounin.
47 Changes with nginx 0.8.39 31 May 2010
49 *) Bugfix: an inherited "alias" directive worked incorrectly in
52 *) Bugfix: in "alias" with variables and "try_files" directives
55 *) Bugfix: listen unix domain and IPv6 sockets did not inherit while
57 Thanks to Maxim Dounin.
60 Changes with nginx 0.8.38 24 May 2010
62 *) Feature: the "proxy_no_cache" and "fastcgi_no_cache" directives.
64 *) Feature: now the "rewrite" directive does a redirect automatically
65 if the $scheme variable is used.
66 Thanks to Piotr Sikora.
68 *) Bugfix: now "limit_req" delay directive conforms to the described
70 Thanks to Maxim Dounin.
72 *) Bugfix: the $uid_got variable might not be used in the SSI and perl
76 Changes with nginx 0.8.37 17 May 2010
78 *) Feature: the ngx_http_split_clients_module.
80 *) Feature: the "map" directive supports keys more than 255 characters.
82 *) Bugfix: nginx ignored the "private" and "no-store" values in the
83 "Cache-Control" backend response header line.
85 *) Bugfix: a "stub" parameter of an "include" SSI directive was not
86 used, if empty response has 200 status code.
88 *) Bugfix: if a proxied or FastCGI request was internally redirected to
89 another proxied or FastCGI location, then a segmentation fault might
90 occur in a worker process; the bug had appeared in 0.8.33.
91 Thanks to Yichun Zhang.
93 *) Bugfix: IMAP connections may hang until they timed out while talking
98 Changes with nginx 0.8.36 22 Apr 2010
100 *) Bugfix: the ngx_http_dav_module handled incorrectly the DELETE,
101 COPY, and MOVE methods for symlinks.
103 *) Bugfix: values of the $query_string, $arg_..., etc. variables cached
104 in main request were used by the SSI module in subrequests.
106 *) Bugfix: a variable value was repeatedly encoded after each an "echo"
107 SSI-command output; the bug had appeared in 0.6.14.
109 *) Bugfix: a worker process hung if a FIFO file was requested.
110 Thanks to Vicente Aguilar and Maxim Dounin.
112 *) Bugfix: OpenSSL-1.0.0 compatibility on 64-bit Linux.
113 Thanks to Maxim Dounin.
115 *) Bugfix: nginx could not be built --without-http-cache; the bug had
119 Changes with nginx 0.8.35 01 Apr 2010
121 *) Change: now the charset filter runs before the SSI filter.
123 *) Feature: the "chunked_transfer_encoding" directive.
125 *) Bugfix: an "&" character was not escaped when it was copied in
126 arguments part in a rewrite rule.
128 *) Bugfix: nginx might be terminated abnormally while a signal
129 processing or if the directive "timer_resolution" was used on
130 platforms which do not support kqueue or eventport notification
132 Thanks to George Xie and Maxim Dounin.
134 *) Bugfix: if temporary files and permanent storage area resided at
135 different file systems, then permanent file modification times were
137 Thanks to Maxim Dounin.
139 *) Bugfix: ngx_http_memcached_module might issue the error message
140 "memcached sent invalid trailer".
141 Thanks to Maxim Dounin.
143 *) Bugfix: nginx could not built zlib-1.2.4 library using the library
145 Thanks to Maxim Dounin.
147 *) Bugfix: a segmentation fault occurred in a worker process, if there
148 was large stderr output before FastCGI response; the bug had
150 Thanks to Maxim Dounin.
153 Changes with nginx-catap 0.8.34.578.1130047 11 Mar 2010
155 *) Feature: implement support complex value for `secure_link_secret'
157 *) Bugfix: fix a counter in status
159 *) Bugfix: nginx did not build on system without md5 development files
161 *) Workaround: update to new API.
164 Changes with nginx 0.8.34 03 Mar 2010
166 *) Bugfix: nginx did not support all ciphers and digests used in client
168 Thanks to Innocenty Enikeew.
170 *) Bugfix: nginx cached incorrectly FastCGI responses if there was
171 large stderr output before response.
173 *) Bugfix: nginx did not support HTTPS referrers.
175 *) Bugfix: nginx/Windows might not find file if path in configuration
176 was given in other character case; the bug had appeared in 0.8.33.
178 *) Bugfix: the $date_local variable has an incorrect value, if the "%s"
180 Thanks to Maxim Dounin.
182 *) Bugfix: if ssl_session_cache was not set or was set to "none", then
183 during client certificate verify the error "session id context
184 uninitialized" might occur; the bug had appeared in 0.7.1.
186 *) Bugfix: a geo range returned default value if the range included two
187 or more /16 networks and did not begin at /16 network boundary.
189 *) Bugfix: a block used in a "stub" parameter of an "include" SSI
190 directive was output with "text/plain" MIME type.
192 *) Bugfix: $r->sleep() did not work; the bug had appeared in 0.8.11.
195 Changes with nginx-catap 0.8.33.562.b1bb423 17 Feb 2010
197 *) Workaround: update to new API.
200 Changes with nginx 0.8.33 01 Feb 2010
202 *) Security: now nginx/Windows ignores trailing spaces in URI.
203 Thanks to Dan Crowley, Core Security Technologies.
205 *) Security: now nginx/Windows ignores short files names.
206 Thanks to Dan Crowley, Core Security Technologies.
208 *) Change: now keepalive connections after POST requests are not
209 disabled for MSIE 7.0+.
210 Thanks to Adam Lounds.
212 *) Workaround: now keepalive connections are disabled for Safari.
213 Thanks to Joshua Sierles.
215 *) Bugfix: if a proxied or FastCGI request was internally redirected to
216 another proxied or FastCGI location, then $upstream_response_time
217 variable may have abnormally large value; the bug had appeared in
220 *) Bugfix: a segmentation fault might occur in a worker process, while
221 discarding a request body; the bug had appeared in 0.8.11.
224 Changes with nginx 0.8.32 11 Jan 2010
226 *) Bugfix: UTF-8 encoding usage in the ngx_http_autoindex_module.
227 Thanks to Maxim Dounin.
229 *) Bugfix: regular expression named captures worked for two names only.
230 Thanks to Maxim Dounin.
232 *) Bugfix: now the "localhost" name is used in the "Host" request
233 header line, if an unix domain socket is defined in the "auth_http"
235 Thanks to Maxim Dounin.
237 *) Bugfix: nginx did not support chunked transfer encoding for 201
239 Thanks to Julian Reich.
241 *) Bugfix: if the "expires modified" set date in the past, then a
242 negative number was set in the "Cache-Control" response header line.
243 Thanks to Alex Kapranoff.
246 Changes with nginx 0.8.31 23 Dec 2009
248 *) Feature: now the "error_page" directive may redirect the 301 and 302
251 *) Feature: the $geoip_city_continent_code, $geoip_latitude, and
252 $geoip_longitude variables.
253 Thanks to Arvind Sundararajan.
255 *) Feature: now the ngx_http_image_filter_module deletes always EXIF
256 and other application specific data if the data consume more than 5%
259 *) Bugfix: nginx closed a connection if a cached response had an empty
261 Thanks to Piotr Sikora.
263 *) Bugfix: nginx might not be built by gcc 4.x if the -O2 or higher
264 optimization option was used.
265 Thanks to Maxim Dounin and Denis F. Latypoff.
267 *) Bugfix: regular expressions in location were always tested in
268 case-sensitive mode; the bug had appeared in 0.8.25.
270 *) Bugfix: nginx cached a 304 response if there was the "If-None-Match"
271 header line in a proxied request.
272 Thanks to Tim Dettrick and David Kostal.
274 *) Bugfix: nginx/Windows tried to delete a temporary file twice if the
275 file should replace an already existent file.
278 Changes with nginx 0.8.30 15 Dec 2009
280 *) Change: now the default buffer size of the
281 "large_client_header_buffers" directive is 8K.
282 Thanks to Andrew Cholakian.
284 *) Feature: the conf/fastcgi.conf for simple FastCGI configurations.
286 *) Bugfix: nginx/Windows tried to rename a temporary file twice if the
287 file should replace an already existent file.
289 *) Bugfix: of "double free or corruption" error issued if host could
290 not be resolved; the bug had appeared in 0.8.22.
291 Thanks to Konstantin Svist.
293 *) Bugfix: in libatomic usage on some platforms.
294 Thanks to W-Mark Kubacki.
297 Changes with nginx-catap 0.8.29.562.b1bb423 08 Dec 2009
299 *) Workaround: update to new API.
301 *) Bugfix: $md5_ variables have a missing 0.
303 *) Bugfix: status_heap do not compile on some compilers.
306 Changes with nginx 0.8.29 30 Nov 2009
308 *) Change: now the "009" status code is written to an access log for
309 proxied HTTP/0.9 responses.
311 *) Feature: the "addition_types", "charset_types", "gzip_types",
312 "ssi_types", "sub_filter_types", and "xslt_types" directives support
315 *) Feature: GCC 4.1+ built-in atomic operations usage.
316 Thanks to W-Mark Kubacki.
318 *) Feature: the --with-libatomic[=DIR] option in the configure.
319 Thanks to W-Mark Kubacki.
321 *) Bugfix: listen unix domain socket had limited access rights.
323 *) Bugfix: cached HTTP/0.9 responses were handled incorrectly.
325 *) Bugfix: regular expression named captures given by "?P<...>" did not
326 work in a "server_name" directive.
327 Thanks to Maxim Dounin.
330 Changes with nginx 0.8.28 23 Nov 2009
332 *) Bugfix: nginx could not be built with the --without-pcre parameter;
333 the bug had appeared in 0.8.25.
336 Changes with nginx 0.8.27 17 Nov 2009
338 *) Bugfix: regular expressions did not work in nginx/Windows; the bug
339 had appeared in 0.8.25.
342 Changes with nginx 0.8.26 16 Nov 2009
344 *) Bugfix: in captures usage in "rewrite" directive; the bug had
347 *) Bugfix: nginx could not be built without the --with-debug option;
348 the bug had appeared in 0.8.25.
351 Changes with nginx 0.8.25 16 Nov 2009
353 *) Change: now no message is written in an error log if a variable is
354 not found by $r->variable() method.
356 *) Feature: the ngx_http_degradation_module.
358 *) Feature: regular expression named captures.
360 *) Feature: now URI part is not required a "proxy_pass" directive if
363 *) Feature: now the "msie_padding" directive works for Chrome too.
365 *) Bugfix: a segmentation fault occurred in a worker process on low
366 memory condition; the bug had appeared in 0.8.18.
368 *) Bugfix: nginx sent gzipped responses to clients those do not support
369 gzip, if "gzip_static on" and "gzip_vary off"; the bug had appeared
373 Changes with nginx 0.8.24 11 Nov 2009
375 *) Bugfix: nginx always added "Content-Encoding: gzip" response header
376 line in 304 responses sent by ngx_http_gzip_static_module.
378 *) Bugfix: nginx could not be built without the --with-debug option;
379 the bug had appeared in 0.8.23.
381 *) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive
382 inherited incorrectly from previous level.
384 *) Bugfix: in resolving empty name.
387 Changes with nginx 0.8.23 11 Nov 2009
389 *) Security: now SSL/TLS renegotiation is disabled.
390 Thanks to Maxim Dounin.
392 *) Bugfix: listen unix domain socket did not inherit while online
395 *) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive
396 did not without yet another directive with any IP address.
398 *) Bugfix: segmentation fault and infinite looping in resolver.
400 *) Bugfix: in resolver.
401 Thanks to Artem Bokhan.
404 Changes with nginx 0.8.22 03 Nov 2009
406 *) Feature: the "proxy_bind", "fastcgi_bind", and "memcached_bind"
409 *) Feature: the "access" and the "deny" directives support IPv6.
411 *) Feature: the "set_real_ip_from" directive supports IPv6 addresses in
414 *) Feature: the "unix:" parameter of the "set_real_ip_from" directive.
416 *) Bugfix: nginx did not delete unix domain socket after configuration
419 *) Bugfix: nginx deleted unix domain socket while online upgrade.
421 *) Bugfix: the "!-x" operator did not work.
422 Thanks to Maxim Dounin.
424 *) Bugfix: a segmentation fault might occur in a worker process, if
425 limit_rate was used in HTTPS server.
426 Thanks to Maxim Dounin.
428 *) Bugfix: a segmentation fault might occur in a worker process while
430 Thanks to Maxim Dounin.
432 *) Bugfix: a segmentation fault might occur in a worker process, if
433 there was no "listen" directive in "server" block; the bug had
437 Changes with nginx 0.8.21 26 Oct 2009
439 *) Feature: now the "-V" switch shows TLS SNI support.
441 *) Feature: the "listen" directive of the HTTP module supports unix
443 Thanks to Hongli Lai.
445 *) Feature: the "default_server" parameter of the "listen" directive.
447 *) Feature: now a "default" parameter is not required to set listen
450 *) Bugfix: nginx did not support dates in 2038 year on 32-bit platforms;
452 *) Bugfix: socket leak; the bug had appeared in 0.8.11.
455 Changes with nginx 0.8.20 14 Oct 2009
457 *) Change: now default SSL ciphers are "HIGH:!ADH:!MD5".
459 *) Bugfix: the ngx_http_autoindex_module did not show the trailing
460 slash in links to a directory; the bug had appeared in 0.7.15.
462 *) Bugfix: nginx did not close a log file set by the --error-log-path
463 configuration option; the bug had appeared in 0.7.53.
465 *) Bugfix: nginx did not treat a comma as separator in the
466 "Cache-Control" backend response header line.
468 *) Bugfix: nginx/Windows might not create temporary file, a cache file,
469 or "proxy/fastcgi_store"d file if a worker had no enough access
470 rights for top level directories.
472 *) Bugfix: the "Set-Cookie" and "P3P" FastCGI response header lines
473 were not hidden while caching if no "fastcgi_hide_header" directives
474 were used with any parameters.
476 *) Bugfix: nginx counted incorrectly disk cache size.
479 Changes with nginx-catap 0.8.19.546.dd3dad5 12 Oct 2009
481 *) Workaround: update to new API.
484 Changes with nginx 0.8.19 06 Oct 2009
486 *) Change: now SSLv2 protocol is disabled by default.
488 *) Change: now default SSL ciphers are "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
490 *) Bugfix: a "limit_req" directive did not work; the bug had appeared
494 Changes with nginx 0.8.18 06 Oct 2009
496 *) Feature: the "read_ahead" directive.
498 *) Feature: now several "perl_modules" directives may be used.
500 *) Feature: the "limit_req_log_level" and "limit_conn_log_level"
503 *) Bugfix: now "limit_req" directive conforms to the leaky bucket
505 Thanks to Maxim Dounin.
507 *) Bugfix: nginx did not work on Linux/sparc.
508 Thanks to Marcus Ramberg.
510 *) Bugfix: nginx sent '\0' in a "Location" response header line on
512 Thanks to Xie Zhenye.
514 *) Bugfix: zero status code was logged instead of 499 status code; the
515 bug had appeared in 0.8.11.
517 *) Bugfix: socket leak; the bug had appeared in 0.8.11.
520 Changes with nginx 0.8.17 28 Sep 2009
522 *) Security: now "/../" are disabled in "Destination" request header
525 *) Change: now $host variable value is always low case.
527 *) Feature: the $ssl_session_id variable.
529 *) Bugfix: socket leak; the bug had appeared in 0.8.11.
532 Changes with nginx 0.8.16 22 Sep 2009
534 *) Feature: the "image_filter_transparency" directive.
536 *) Bugfix: "addition_types" directive was incorrectly named
539 *) Bugfix: resolver cache poisoning.
540 Thanks to Matthew Dempsky.
542 *) Bugfix: memory leak in resolver.
543 Thanks to Matthew Dempsky.
545 *) Bugfix: invalid request line in $request variable was written in
546 access_log only if error_log was set to "info" or "debug" level.
548 *) Bugfix: in PNG alpha-channel support in the
549 ngx_http_image_filter_module.
551 *) Bugfix: nginx always added "Vary: Accept-Encoding" response header
552 line, if both "gzip_static" and "gzip_vary" were on.
554 *) Bugfix: in UTF-8 encoding support by "try_files" directive in
557 *) Bugfix: in "post_action" directive usage; the bug had appeared in
559 Thanks to Igor Artemiev.
562 Changes with nginx-catap 0.8.15.540.c5418c6 17 Sep 2009
564 *) Workaround: update to new API.
567 Changes with nginx 0.8.15 14 Sep 2009
569 *) Security: a segmentation fault might occur in worker process while
570 specially crafted request handling.
571 Thanks to Chris Ries.
573 *) Bugfix: if names .domain.tld, .sub.domain.tld, and .domain-some.tld
574 were defined, then the name .sub.domain.tld was matched by
577 *) Bugfix: in transparency support in the ngx_http_image_filter_module.
579 *) Bugfix: in file AIO.
581 *) Bugfix: in X-Accel-Redirect usage; the bug had appeared in 0.8.11.
583 *) Bugfix: in embedded perl module; the bug had appeared in 0.8.11.
586 Changes with nginx 0.8.14 07 Sep 2009
588 *) Bugfix: an expired cached response might stick in the "UPDATING"
591 *) Bugfix: a segmentation fault might occur in worker process, if
592 error_log was set to info or debug level.
593 Thanks to Sergey Bochenkov.
595 *) Bugfix: in embedded perl module; the bug had appeared in 0.8.11.
597 *) Bugfix: an "error_page" directive did not redirect a 413 error; the
598 bug had appeared in 0.6.10.
601 Changes with nginx 0.8.13 31 Aug 2009
603 *) Bugfix: in the "aio sendfile" directive; the bug had appeared in
606 *) Bugfix: nginx could not be built without the --with-file-aio option
607 on FreeBSD; the bug had appeared in 0.8.12.
610 Changes with nginx 0.8.12 31 Aug 2009
612 *) Feature: the "sendfile" parameter in the "aio" directive on FreeBSD.
614 *) Bugfix: in try_files; the bug had appeared in 0.8.11.
616 *) Bugfix: in memcached; the bug had appeared in 0.8.11.
619 Changes with nginx 0.8.11 28 Aug 2009
621 *) Change: now directive "gzip_disable msie6" does not disable gzipping
624 *) Feature: file AIO support on FreeBSD and Linux.
626 *) Feature: the "directio_alignment" directive.
629 Changes with nginx-catap 0.8.10.533.616006b 27 Aug 2009
631 *) Workaround: update to new API.
634 Changes with nginx 0.8.10 24 Aug 2009
636 *) Bugfix: memory leaks if GeoIP City database was used.
638 *) Bugfix: in copying temporary files to permanent storage area; the
639 bug had appeared in 0.8.9.
642 Changes with nginx 0.8.9 17 Aug 2009
644 *) Feature: now the start cache loader runs in a separate process; this
645 should improve large caches handling.
647 *) Feature: now temporary files and permanent storage area may reside
648 at different file systems.
651 Changes with nginx 0.8.8 10 Aug 2009
653 *) Bugfix: in handling FastCGI headers split in records.
655 *) Bugfix: a segmentation fault occurred in worker process, if a
656 request was handled in two proxied or FastCGIed locations and a
657 caching was enabled in the first location; the bug had appeared in
660 Changes with nginx-catap 0.8.7.528.179136c 27 Jul 2009
662 *) Feature: support some values in map.
664 *) Feature: can do rewrite to named location.
667 Changes with nginx 0.8.7 27 Jul 2009
669 *) Change: minimum supported OpenSSL version is 0.9.7.
671 *) Change: the "ask" parameter of the "ssl_verify_client" directive was
672 changed to the "optional" parameter and now it checks a client
673 certificate if it was offered.
674 Thanks to Brice Figureau.
676 *) Feature: the $ssl_client_verify variable.
677 Thanks to Brice Figureau.
679 *) Feature: the "ssl_crl" directive.
680 Thanks to Brice Figureau.
682 *) Feature: the "proxy" parameter of the "geo" directive.
684 *) Feature: the "image_filter" directive supports variables for setting
687 *) Bugfix: the $ssl_client_cert variable usage corrupted memory; the
688 bug had appeared in 0.7.7.
689 Thanks to Sergey Zhuravlev.
691 *) Bugfix: "proxy_pass_header" and "fastcgi_pass_header" directives did
692 not pass to a client the "X-Accel-Redirect", "X-Accel-Limit-Rate",
693 "X-Accel-Buffering", and "X-Accel-Charset" lines from backend
695 Thanks to Maxim Dounin.
697 *) Bugfix: in handling "Last-Modified" and "Accept-Ranges" backend
698 response header lines; the bug had appeared in 0.7.44.
699 Thanks to Maxim Dounin.
701 *) Bugfix: the "[alert] zero size buf" error if subrequest returns an
702 empty response; the bug had appeared in 0.8.5.
705 Changes with nginx-catap 0.8.6.518.4f6a4d9 20 Jul 2009
707 *) Bugfix: nginx-catap could not be built by gcc 3.4 on Linux.
710 Changes with nginx 0.8.6 20 Jul 2009
712 *) Feature: the ngx_http_geoip_module.
714 *) Bugfix: XSLT filter may fail with message "not well formed XML
715 document" for valid XML document.
716 Thanks to Kuramoto Eiji.
718 *) Bugfix: now in MacOSX, Cygwin, and nginx/Windows locations given by
719 a regular expression are always tested in case insensitive mode.
721 *) Bugfix: now nginx/Windows ignores trailing dots in URI.
722 Thanks to Hugo Leisink.
724 *) Bugfix: name of file specified in --conf-path was not honored during
725 installation; the bug had appeared in 0.6.6.
726 Thanks to Maxim Dounin.
729 Changes with nginx-catap 0.8.5.513.af62db1 17 Jul 2009
731 *) Bugfix: nginx don't open a small uri after enabled
732 ngx_http_status_heap.
735 Changes with nginx-catap 0.8.5.510.d50609c 17 Jul 2009
737 *) Feature: implement a ngx_http_status_heap module.
739 *) Feature: implement a ngx_http_rnd_filter_module and $rnd,
742 *) Workaround: add support dash in http variables name.
744 *) Bugfix: Fix a result of a $md5_ variables.
747 Changes with nginx 0.8.5 13 Jul 2009
749 *) Bugfix: now nginx allows underscores in a request method.
751 *) Bugfix: a 500 error code was returned for invalid login/password
752 while HTTP Basic authentication on Windows.
754 *) Bugfix: ngx_http_perl_module responses did not work in subrequests.
756 *) Bugfix: in ngx_http_limit_req_module.
757 Thanks to Maxim Dounin.
760 Changes with nginx-catap 0.8.4.489.ad1dcd0 22 Jun 2009
762 *) Workaround: update to new API.
764 *) Workaround: update to ngx_status-0.5.
766 *) Bugfix: always setting log level to error.
769 Changes with nginx 0.8.4 22 Jun 2009
771 *) Bugfix: nginx could not be built --without-http-cache; the bug had
775 Changes with nginx 0.8.3 19 Jun 2009
777 *) Feature: the $upstream_cache_status variable.
779 *) Bugfix: nginx could not be built on MacOSX 10.6.
781 *) Bugfix: nginx could not be built --without-http-cache; the bug had
784 *) Bugfix: a segmentation fault occurred in worker process, if a
785 backend 401 error was intercepted and the backend did not set the
786 "WWW-Authenticate" response header line.
787 Thanks to Eugene Mychlo.
790 Changes with nginx-catap 0.8.2.482.65a5001 15 Jun 2009
792 *) Workaround: update to new API.
795 Changes with nginx 0.8.2 15 Jun 2009
797 *) Bugfix: in open_file_cache and proxy/fastcgi cache interaction on
800 *) Bugfix: open_file_cache might cache open file descriptors too long;
801 the bug had appeared in 0.7.4.
804 Changes with nginx-catap 0.8.1.479.556c248 11 Jun 2009
806 *) Bugfix: fxinig using embedded perl.
809 Changes with nginx-catap 0.8.1.477.7e7b833 10 Jun 2009
811 *) Feature: use args from request for include file if not define
814 *) Bugfix: fix segmentation fault for internal redirect.
817 Changes with nginx 0.8.1 08 Jun 2009
819 *) Feature: the "updating" parameter in "proxy_cache_use_stale" and
820 "fastcgi_cache_use_stale" directives.
822 *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request
823 header lines were passed to backend while caching if no
824 "proxy_set_header" directive was used with any parameters.
826 *) Bugfix: the "Set-Cookie" and "P3P" response header lines were not
827 hidden while caching if no "proxy_hide_header/fastcgi_hide_header"
828 directives were used with any parameters.
830 *) Bugfix: the ngx_http_image_filter_module did not support GIF87a
832 Thanks to Denis Ilyinyh.
834 *) Bugfix: nginx could not be built modules on Solaris 10 and early;
835 the bug had appeared in 0.7.56.
838 Changes with nginx-catap 0.8.0.468.a7d939e 03 Jun 2009
840 *) Feature: the $loadavg_1m, $loadavg_5m and $loadavg_15m variables.
842 *) Feature: Add '>', '!>', '<' and '<' in config if statment.
844 *) Feature: Add a `status_xml_xsl_uri' directive.
846 *) Bugfix: nginx-catap don't build without ngx_http_stub_status_module.
849 Changes with nginx 0.8.0 02 Jun 2009
851 *) Feature: the "keepalive_requests" directive.
853 *) Feature: the "limit_rate_after" directive.
854 Thanks to Ivan Debnar.
856 *) Bugfix: XLST filter did not work in subrequests.
858 *) Bugfix: in relative paths handling in nginx/Windows.
860 *) Bugfix: in proxy_store, fastcgi_store, proxy_cache, and
861 fastcgi_cache in nginx/Windows.
863 *) Bugfix: in memory allocation error handling.
864 Thanks to Maxim Dounin and Kirill A. Korinskiy.
867 Changes with nginx-catap 0.7.59.456.f39baf9 25 May 2009
869 *) Feature: update to ngx_status-0.2.
872 Changes with nginx-catap 0.7.59.450.e8e233a 25 May 2009
874 *) Feature: add new status.
876 *) Feature: add $mstimestamp variable.
878 *) Workaround: setting content-length: 0 only for No Content response.
880 *) Workaround: update to new API.
883 Changes with nginx 0.7.59 25 May 2009
885 *) Feature: the "proxy_cache_methods" and "fastcgi_cache_methods"
888 *) Bugfix: socket leak; the bug had appeared in 0.7.25.
889 Thanks to Maxim Dounin.
891 *) Bugfix: a segmentation fault occurred in worker process,
892 if a request had no body and the $request_body variable was used;
893 the bug had appeared in 0.7.58.
895 *) Bugfix: the SSL modules might not built on Solaris and Linux;
896 the bug had appeared in 0.7.56.
898 *) Bugfix: ngx_http_xslt_filter_module responses were not handled by
899 SSI, charset, and gzip filters.
901 *) Bugfix: a "charset" directive did not set a charset to
902 ngx_http_gzip_static_module responses.
905 Changes with nginx 0.7.58 18 May 2009
907 *) Feature: a "listen" directive of the mail proxy module supports IPv6.
909 *) Feature: the "image_filter_jpeg_quality" directive.
911 *) Feature: the "client_body_in_single_buffer" directive.
913 *) Feature: the $request_body variable.
915 *) Bugfix: in ngx_http_autoindex_module in file name links having a ":"
918 *) Bugfix: "make upgrade" procedure did not work; the bug had appeared
920 Thanks to Denis F. Latypoff.
923 Changes with nginx-catap 0.7.57.422.152eb14 13 May 2009
925 *) Feature: add $crc32_<name> and $md5_<name> variables.
927 *) Workaround: update to new API.
930 Changes with nginx 0.7.57 12 May 2009
932 *) Bugfix: a floating-point fault occurred in worker process, if the
933 ngx_http_image_filter_module errors were redirected to named
934 location; the bug had appeared in 0.7.56.
937 Changes with nginx-catap 0.7.56.416.23ae853 12 May 2009
939 *) Workaround: update to new API.
942 Changes with nginx 0.7.56 11 May 2009
944 *) Feature: nginx/Windows supports IPv6 in a "listen" directive of the
947 *) Bugfix: in ngx_http_image_filter_module.
950 Changes with nginx-catap 0.7.55.413.757b2b8 06 May 2009
952 *) Workaround: update to new API.
955 Changes with nginx 0.7.55 06 May 2009
957 *) Bugfix: the http_XXX parameters in "proxy_cache_use_stale" and
958 "fastcgi_cache_use_stale" directives did not work.
960 *) Bugfix: fastcgi cache did not cache header only responses.
962 *) Bugfix: of "select() failed (9: Bad file descriptor)" error in
963 nginx/Unix and "select() failed (10038: ...)" error in nginx/Windows.
965 *) Bugfix: a segmentation fault might occur in worker process, if an
966 "debug_connection" directive was used; the bug had appeared in
969 *) Bugfix: fix ngx_http_image_filter_module building errors.
971 *) Bugfix: the files bigger than 2G could not be transferred using
973 Thanks to Maxim Dounin.
976 Changes with nginx-catap 0.7.54.410.c1e4c27 02 May 2009
978 *) Workaround: update to new API.
981 Changes with nginx 0.7.54 01 May 2009
983 *) Feature: the ngx_http_image_filter_module.
985 *) Feature: the "proxy_ignore_headers" and "fastcgi_ignore_headers"
988 *) Bugfix: a segmentation fault might occur in worker process, if an
989 "open_file_cache_errors off" directive was used; the bug had
992 *) Bugfix: the "port_in_redirect off" directive did not work; the bug
993 had appeared in 0.7.39.
995 *) Bugfix: improve handling of "select" method errors.
997 *) Bugfix: of "select() failed (10022: ...)" error in nginx/Windows.
999 *) Bugfix: in error text descriptions in nginx/Windows; the bug had
1003 Changes with nginx-catap 0.7.53.405.2cacf5f 28 Apr 2009
1005 *) Feature: implement $uri_remainder.
1008 Changes with nginx 0.7.53 27 Apr 2009
1010 *) Change: now a log set by --error-log-path is created from the very
1013 *) Feature: now the start up errors and warnings are outputted to an
1014 error_log and stderr.
1016 *) Feature: the empty --prefix= configure parameter forces nginx to use
1017 a directory where it was run as prefix.
1019 *) Feature: the -p switch.
1021 *) Feature: the -s switch on Unix platforms.
1023 *) Feature: the -? and -h switches.
1024 Thanks to Jerome Loyet.
1026 *) Feature: now switches may be set in condensed form.
1028 *) Bugfix: nginx/Windows did not work if configuration file was given
1031 *) Bugfix: temporary files might be not removed if the "proxy_store",
1032 "fastcgi_store", "proxy_cache", or "fastcgi_cache" were used.
1033 Thanks to Maxim Dounin.
1035 *) Bugfix: an incorrect value was passed to mail proxy authentication
1036 server in "Auth-Method" header line; the bug had appeared
1038 Thanks to Simon Lecaille.
1040 *) Bugfix: system error text descriptions were not logged on Linux;
1041 the bug had appeared in 0.7.45.
1043 *) Bugfix: the "fastcgi_cache_min_uses" directive did not work.
1044 Thanks to Andrew Vorobyoff.
1047 Changes with nginx-catap 0.7.52.397.142c3b0 20 Apr 2009
1049 *) Feature: Stop write log for some period after have a problems
1053 Changes with nginx 0.7.52 20 Apr 2009
1055 *) Feature: the first native Windows binary release.
1057 *) Bugfix: in processing HEAD method while caching.
1059 *) Bugfix: in processing the "If-Modified-Since", "If-Range", etc.
1060 client request header lines while caching.
1062 *) Bugfix: now the "Set-Cookie" and "P3P" header lines are hidden in
1063 cacheable responses.
1065 *) Bugfix: if nginx was built with the ngx_http_perl_module and with a
1066 perl which supports threads, then during a master process exit the
1067 message "panic: MUTEX_LOCK" might be issued.
1069 *) Bugfix: nginx could not be built --without-http-cache; the bug had
1072 *) Bugfix: nginx could not be built on platforms different from i386,
1073 amd64, sparc, and ppc; the bug had appeared in 0.7.42.
1076 Changes with nginx-catap 0.7.51.389.54fa56f 13 Apr 2009
1078 *) Workaround: start without capabilities.
1080 *) Workaround: merge config of valid_user.
1083 Changes with nginx 0.7.51 12 Apr 2009
1085 *) Feature: the "try_files" directive supports a response code in the
1088 *) Feature: now any response code can be used in the "return" directive.
1090 *) Bugfix: the "error_page" directive made an external redirect without
1091 query string; the bug had appeared in 0.7.44.
1093 *) Bugfix: if servers listened on several defined explicitly addresses,
1094 then virtual servers might not work; the bug had appeared in 0.7.39.
1097 Changes with nginx-catap 0.7.50.383.5ebfee6 13 Apr 2009
1099 *) Workaround: Remove root if enables capabilities.
1102 Changes with nginx-catap 0.7.50.382.db7bb21 06 Apr 2009
1104 *) Workaround: change a logic of ngx_http_limit_var_module.
1107 Changes with nginx-catap 0.7.50.372.3e47e0a 06 Apr 2009
1109 *) Workaround: module ngx_http_limit_var_module don't build with
1113 Changes with nginx-catap 0.7.50.369.9031b49 06 Apr 2009
1115 *) Feature: add a module ngx_http_limit_var_module.
1117 *) Workaround: cleanup ngx_http_auth_basic_module.
1120 Changes with nginx 0.7.50 06 Apr 2009
1122 *) Bugfix: the $arg_... variables did not work; the bug had appeared in
1126 Changes with nginx 0.7.49 06 Apr 2009
1128 *) Bugfix: a segmentation fault might occur in worker process, if the
1129 $arg_... variables were used; the bug had appeared in 0.7.48.
1132 Changes with nginx 0.7.48 06 Apr 2009
1134 *) Feature: the "proxy_cache_key" directive.
1136 *) Bugfix: now nginx takes into account the "X-Accel-Expires",
1137 "Expires", and "Cache-Control" header lines in a backend response.
1139 *) Bugfix: now nginx caches responses for the GET requests only.
1141 *) Bugfix: the "fastcgi_cache_key" directive was not inherited.
1143 *) Bugfix: the $arg_... variables did not work with SSI subrequests.
1144 Thanks to Maxim Dounin.
1146 *) Bugfix: nginx could not be built with uclibc library.
1147 Thanks to Timothy Redaelli.
1149 *) Bugfix: nginx could not be built on OpenBSD; the bug had
1153 Changes with nginx 0.7.47 01 Apr 2009
1155 *) Bugfix: nginx could not be built on FreeBSD 6 and early versions;
1156 the bug had appeared in 0.7.46.
1158 *) Bugfix: nginx could not be built on MacOSX; the bug had
1161 *) Bugfix: if the "max_size" parameter was set, then the cache manager
1162 might purge a whole cache; the bug had appeared in 0.7.46.
1164 *) Change: a segmentation fault might occur in worker process, if the
1165 "proxy_cache"/"fastcgi_cache" and the "proxy_cache_valid"/
1166 "fastcgi_cache_valid" were set on different levels; the bug had
1169 *) Bugfix: a segmentation fault might occur in worker process, if a
1170 request was redirected to a proxied or FastCGI server via error_page
1171 or try_files; the bug had appeared in 0.7.44.
1174 Changes with nginx-catap 0.7.46.349.1a86951 30 Mar 2009
1176 *) Feature: add $urlencode_<name> and $urldecode_<name> variables.
1178 *) Feature: implement ngx_prealloc.
1180 *) Workaround: rewrite capabilities support on linux with Igor
1183 *) Workaround: enable MALLOC_PRODUCTION for jemalloc.
1186 Changes with nginx 0.7.46 30 Mar 2009
1188 *) Bugfix: the previous release tarball was incorrect.
1191 Changes with nginx 0.7.45 30 Mar 2009
1193 *) Change: now the "proxy_cache" and the "proxy_cache_valid" directives
1194 can be set on different levels.
1196 *) Change: the "clean_time" parameter of the "proxy_cache_path"
1197 directive is canceled.
1199 *) Feature: the "max_size" parameter of the "proxy_cache_path"
1202 *) Feature: the ngx_http_fastcgi_module preliminary cache support.
1204 *) Feature: now on shared memory allocation errors directive and zone
1207 *) Bugfix: the directive "add_header last-modified ''" did not delete a
1208 "Last-Modified" response header line; the bug had appeared in 0.7.44.
1210 *) Bugfix: a relative path in the "auth_basic_user_file" directive
1211 given without variables did not work; the bug had appeared in
1213 Thanks to Jerome Loyet.
1215 *) Bugfix: in an "alias" directive given using variables without
1216 references to captures of regular expressions; the bug had appeared
1220 Changes with nginx 0.7.44 23 Mar 2009
1222 *) Feature: the ngx_http_proxy_module preliminary cache support.
1224 *) Feature: the --with-pcre option in the configure.
1226 *) Feature: the "try_files" directive is now allowed on the server
1229 *) Bugfix: the "try_files" directive handled incorrectly a query string
1230 in a fallback parameter.
1232 *) Bugfix: the "try_files" directive might test incorrectly directories.
1234 *) Bugfix: if there is the single server for given address:port pair,
1235 then captures in regular expressions in a "server_name" directive
1239 Changes with nginx-catap 0.7.43.324.58ce66e 18 Mar 2009
1241 *) Feature: start use capabilities on linix for remove infinity
1242 root on master process.
1244 *) Workaround: add directives empty_gif_size to
1245 ngx_http_empty_gif_module for change size of gif for response.
1247 *) Workaround: add more CPU to --with-cpu-opt options.
1249 *) Bugfix: add --with-obsd_malloc and --with-jemalloc options to
1252 *) Bugfix: change type in ngx_sprintf from %P to %T for $pid.
1254 *) Bugfix: fix segmentation fault if do not inizialize values by
1258 Changes with nginx 0.7.43 18 Mar 2009
1260 *) Bugfix: a request was handled incorrectly, if a "root" directive
1261 used variables; the bug had appeared in 0.7.42.
1263 *) Bugfix: if a server listened on wildcard address, then the
1264 $server_addr variable value was "0.0.0.0"; the bug had appeared in
1268 Changes with nginx 0.7.42 16 Mar 2009
1270 *) Change: now the "Invalid argument" error returned by
1271 setsockopt(TCP_NODELAY) on Solaris, is ignored.
1273 *) Change: now if a file specified in a "auth_basic_user_file"
1274 directive is absent, then the 403 error is returned instead of the
1277 *) Feature: the "auth_basic_user_file" directive supports variables.
1278 Thanks to Kirill A. Korinskiy.
1280 *) Feature: the "listen" directive supports the "ipv6only" parameter.
1281 Thanks to Zhang Hua.
1283 *) Bugfix: in an "alias" directive with references to captures of
1284 regular expressions; the bug had appeared in 0.7.40.
1286 *) Bugfix: compatibility with Tru64 UNIX.
1287 Thanks to Dustin Marquess.
1289 *) Bugfix: nginx could not be built without PCRE library; the bug had
1293 Changes with nginx 0.7.41 11 Mar 2009
1295 *) Bugfix: a segmentation fault might occur in worker process, if a
1296 "server_name" or a "location" directives had captures in regular
1297 expressions; the issue had appeared in 0.7.40.
1298 Thanks to Vladimir Sopot.
1301 Changes with nginx-catap 0.7.40.299.6838363 10 Mar 2009
1303 *) Feature: partial support ETag (only if-modify).
1305 *) Feature: add $timestamp.
1307 *) Feature: valid_user directive for the module
1308 ngx_http_auth_basic_module points to a list of allowable users.
1310 *) Feature: upstream_count_limit directive for limiting number of
1311 moves in the case of an error backend in upstream.
1313 *) Feature: two new alloc. obsd-like switch on over
1314 --with-obsd_malloc, jemalloc over --with-jemalloc.
1316 *) Feature: module ngx_http_is_bot.
1318 *) Feature: opportunity to use gettimeofday created around
1319 clock_gettime(NGX_CLOCK_PROFILE). The system is to be support
1320 and turn over --with-clock_gettimeofday.
1322 *) Feature: module ngx_http_response.
1324 *) Feature: for loop in ssi.
1326 *) Workaround: auth_basic_user_file directive support variables.
1328 *) Workaround: for keepalive connections to the 204 No Content add
1331 *) Workaround: module ngx_http_stub_status_module show count of
1332 request per seconds.
1334 *) Workaround: add support to acces to varriabless setting in ssi
1338 Changes with nginx 0.7.40 09 Mar 2009
1340 *) Feature: the "location" directive supports captures in regular
1343 *) Feature: an "alias" directive with capture references may be used
1344 inside a location given by a regular expression with captures.
1346 *) Feature: the "server_name" directive supports captures in regular
1349 *) Workaround: the ngx_http_autoindex_module did not show the trailing
1350 slash in directories on XFS filesystem; the issue had appeared in
1352 Thanks to Dmitry Kuzmenko.
1355 Changes with nginx 0.7.39 02 Mar 2009
1357 *) Bugfix: large response with SSI might hang, if gzipping was enabled;
1358 the bug had appeared in 0.7.28.
1359 Thanks to Artem Bokhan.
1361 *) Bugfix: a segmentation fault might occur in worker process, if short
1362 static variants are used in a "try_files" directive.
1365 Changes with nginx 0.7.38 23 Feb 2009
1367 *) Feature: authentication failures logging.
1369 *) Bugfix: name/password in auth_basic_user_file were ignored after odd
1370 number of empty lines.
1371 Thanks to Alexander Zagrebin.
1373 *) Bugfix: a segmentation fault occurred in a master process, if long
1374 path was used in unix domain socket; the bug had appeared in 0.7.36.
1377 Changes with nginx 0.7.37 21 Feb 2009
1379 *) Bugfix: directives using upstreams did not work; the bug had
1383 Changes with nginx 0.7.36 21 Feb 2009
1385 *) Feature: a preliminary IPv6 support; the "listen" directive of the
1386 HTTP module supports IPv6.
1388 *) Bugfix: the $ancient_browser variable did not work for browsers
1389 preset by a "modern_browser" directives.
1392 Changes with nginx 0.7.35 16 Feb 2009
1394 *) Bugfix: a "ssl_engine" directive did not use a SSL-accelerator for
1396 Thanks to Marcin Gozdalik.
1398 *) Bugfix: a "try_files" directive set MIME type depending on an
1399 original request extension.
1401 *) Bugfix: "*domain.tld" names were handled incorrectly in
1402 "server_name", "valid_referers", and "map" directives, if
1403 ".domain.tld" and ".subdomain.domain.tld" wildcards were used;
1404 the bug had appeared in 0.7.9.
1407 Changes with nginx 0.7.34 10 Feb 2009
1409 *) Feature: the "off" parameter of the "if_modified_since" directive.
1411 *) Feature: now nginx sends an HELO/EHLO command after a XCLIENT
1413 Thanks to Maxim Dounin.
1415 *) Feature: Microsoft specific "AUTH LOGIN with User Name" mode support
1416 in mail proxy server.
1417 Thanks to Maxim Dounin.
1419 *) Bugfix: in a redirect rewrite directive original arguments were
1420 concatenated with new arguments by a "?" rather than an "&";
1421 the bug had appeared in 0.1.18.
1422 Thanks to Maxim Dounin.
1424 *) Bugfix: nginx could not be built on AIX.
1427 Changes with nginx 0.7.33 02 Feb 2009
1429 *) Bugfix: a double response might be returned if the epoll or rtsig
1430 methods are used and a redirect was returned to a request with
1434 *) Bugfix: the $sent_http_location variable was empty for some
1437 *) Bugfix: a segmentation fault might occur in worker process if
1438 "resolver" directive was used in SMTP proxy.
1441 Changes with nginx 0.7.32 26 Jan 2009
1443 *) Feature: now a directory existence testing can be set explicitly in
1444 the "try_files" directive.
1446 *) Bugfix: fastcgi_store stored files not always.
1448 *) Bugfix: in geo ranges.
1450 *) Bugfix: in shared memory allocations if nginx was built without
1452 Thanks to Andrey Kvasov.
1455 Changes with nginx 0.7.31 19 Jan 2009
1457 *) Change: now the "try_files" directive tests files only and ignores
1460 *) Feature: the "fastcgi_split_path_info" directive.
1462 *) Bugfixes in an "Expect" request header line support.
1464 *) Bugfixes in geo ranges.
1466 *) Bugfix: in a miss case ngx_http_memcached_module returned the "END"
1467 line as response body instead of default 404 page body; the bug had
1469 Thanks to Maxim Dounin.
1471 *) Bugfix: while SMTP proxying nginx issued message "250 2.0.0 OK"
1472 instead of "235 2.0.0 OK"; the bug had appeared in 0.7.22.
1473 Thanks to Maxim Dounin.
1476 Changes with nginx 0.7.30 24 Dec 2008
1478 *) Bugfix: a segmentation fault occurred in worker process, if
1479 variables were used in the "fastcgi_pass" or "proxy_pass" directives
1480 and host name must be resolved; the bug had appeared in 0.7.29.
1483 Changes with nginx 0.7.29 24 Dec 2008
1485 *) Bugfix: the "fastcgi_pass" and "proxy_pass" directives did not
1486 support variables if unix domain sockets were used.
1488 *) Bugfixes in subrequest processing; the bugs had appeared in 0.7.25.
1490 *) Bugfix: a "100 Continue" response was issued for HTTP/1.0
1492 Thanks to Maxim Dounin.
1494 *) Bugfix: in memory allocation in the ngx_http_gzip_filter_module on
1498 Changes with nginx 0.7.28 22 Dec 2008
1500 *) Change: in memory allocation in the ngx_http_gzip_filter_module.
1502 *) Change: the default "gzip_buffers" directive values have been
1503 changed to 32 4k or 16 8k from 4 4k/8k.
1506 Changes with nginx 0.7.27 15 Dec 2008
1508 *) Feature: the "try_files" directive.
1510 *) Feature: variables support in the "fastcgi_pass" directive.
1512 *) Feature: now the $geo variable may get an address from a
1514 Thanks to Andrei Nigmatulin.
1516 *) Feature: now a location's modifier may be used without space before
1519 *) Feature: the $upstream_response_length variable.
1521 *) Bugfix: now a "add_header" directive does not add an empty value.
1523 *) Bugfix: if zero length static file was requested, then nginx just
1524 closed connection; the bug had appeared in 0.7.25.
1526 *) Bugfix: a MOVE method could not move file in non-existent directory.
1528 *) Bugfix: a segmentation fault occurred in worker process, if no one
1529 named location was defined in server, but some one was used in an
1530 error_page directive.
1531 Thanks to Sergey Bochenkov.
1534 Changes with nginx 0.7.26 08 Dec 2008
1536 *) Bugfix: in subrequest processing; the bug had appeared in 0.7.25.
1539 Changes with nginx 0.7.25 08 Dec 2008
1541 *) Change: in subrequest processing.
1543 *) Change: now POSTs without "Content-Length" header line are allowed.
1545 *) Bugfix: now the "limit_req" and "limit_conn" directives log a
1548 *) Bugfix: in the "delete" parameter of the "geo" directive.
1551 Changes with nginx 0.7.24 01 Dec 2008
1553 *) Feature: the "if_modified_since" directive.
1555 *) Bugfix: nginx did not process a FastCGI server response, if the
1556 server send too many messages to stderr before response.
1558 *) Bugfix: the "$cookie_..." variables did not work in the SSI and the
1562 Changes with nginx 0.7.23 27 Nov 2008
1564 *) Feature: the "delete" and "ranges" parameters in the "geo" directive.
1566 *) Feature: speeding up loading of geo base with large number of values.
1568 *) Feature: decrease of memory required for geo base load.
1571 Changes with nginx 0.7.22 20 Nov 2008
1573 *) Feature: the "none" parameter in the "smtp_auth" directive.
1574 Thanks to Maxim Dounin.
1576 *) Feature: the "$cookie_..." variables.
1578 *) Bugfix: the "directio" directive did not work in XFS filesystem.
1580 *) Bugfix: the resolver did not understand big DNS responses.
1584 Changes with nginx 0.7.21 11 Nov 2008
1586 *) Changes in the ngx_http_limit_req_module.
1588 *) Feature: the EXSLT support in the ngx_http_xslt_module.
1589 Thanks to Denis F. Latypoff.
1591 *) Workaround: compatibility with glibc 2.3.
1592 Thanks to Eric Benson and Maxim Dounin.
1594 *) Bugfix: nginx could not run on MacOSX 10.4 and earlier; the bug had
1598 Changes with nginx 0.7.20 10 Nov 2008
1600 *) Changes in the ngx_http_gzip_filter_module.
1602 *) Feature: the ngx_http_limit_req_module.
1604 *) Bugfix: worker processes might exit on a SIGBUS signal on sparc and
1605 ppc platforms; the bug had appeared in 0.7.3.
1606 Thanks to Maxim Dounin.
1608 *) Bugfix: the "proxy_pass http://host/some:uri" directives did not
1609 work; the bug had appeared in 0.7.12.
1611 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
1614 *) Bugfix: the ngx_http_secure_link_module did not work inside
1615 locations, whose names are less than 3 characters.
1617 *) Bugfix: $server_addr variable might have no value.
1620 Changes with nginx 0.7.19 13 Oct 2008
1622 *) Bugfix: version number update.
1625 Changes with nginx 0.7.18 13 Oct 2008
1627 *) Change: the "underscores_in_headers" directive; now nginx does not
1628 allows underscores in a client request header line names.
1630 *) Feature: the ngx_http_secure_link_module.
1632 *) Feature: the "real_ip_header" directive supports any header.
1634 *) Feature: the "log_subrequest" directive.
1636 *) Feature: the $realpath_root variable.
1638 *) Feature: the "http_502" and "http_504" parameters of the
1639 "proxy_next_upstream" directive.
1641 *) Bugfix: the "http_503" parameter of the "proxy_next_upstream" or
1642 "fastcgi_next_upstream" directives did not work.
1644 *) Bugfix: nginx might send a "Transfer-Encoding: chunked" heaer line
1647 *) Bugfix: now accept threshold depends on worker_connections.
1650 Changes with nginx 0.7.17 15 Sep 2008
1652 *) Feature: now the "directio" directive works on Linux.
1654 *) Feature: the $pid variable.
1656 *) Bugfix: the "directio" optimization that had appeared in 0.7.15 did
1657 not work with open_file_cache.
1659 *) Bugfix: the "access_log" with variables did not work on Linux; the
1660 bug had appeared in 0.7.7.
1662 *) Bugfix: the ngx_http_charset_module did not understand quoted
1663 charset name received from backend.
1666 Changes with nginx 0.7.16 08 Sep 2008
1668 *) Bugfix: nginx could not be built on 64-bit platforms; the bug had
1672 Changes with nginx 0.7.15 08 Sep 2008
1674 *) Feature: the ngx_http_random_index_module.
1676 *) Feature: the "directio" directive has been optimized for file
1677 requests starting from arbitrary position.
1679 *) Feature: the "directio" directive turns off sendfile if it is
1682 *) Feature: now nginx allows underscores in a client request header
1686 Changes with nginx 0.7.14 01 Sep 2008
1688 *) Change: now the ssl_certificate and ssl_certificate_key directives
1689 have not default values.
1691 *) Feature: the "listen" directive supports the "ssl" parameter.
1693 *) Feature: now nginx takes into account a time zone change while
1694 reconfiguration on FreeBSD and Linux.
1696 *) Bugfix: the "listen" directive parameters such as "backlog",
1697 "rcvbuf", etc. were not set, if a default server was not the first
1700 *) Bugfix: if URI part captured by a "rewrite" directive was used as a
1701 query string, then the query string was not escaped.
1703 *) Bugfix: configuration file validity test improvements.
1706 Changes with nginx 0.7.13 26 Aug 2008
1708 *) Bugfix: nginx could not be built on Linux and Solaris; the bug had
1712 Changes with nginx 0.7.12 26 Aug 2008
1714 *) Feature: the "server_name" directive supports empty name "".
1716 *) Feature: the "gzip_disable" directive supports special "msie6" mask.
1718 *) Bugfix: if the "max_fails=0" parameter was used in upstream with
1719 several servers, then a worker process exited on a SIGFPE signal.
1720 Thanks to Maxim Dounin.
1722 *) Bugfix: a request body was dropped while redirection via an
1723 "error_page" directive.
1725 *) Bugfix: a full response was returned for request method HEAD while
1726 redirection via an "error_page" directive.
1728 *) Bugfix: the $r->header_in() method did not return value of the
1729 "Host", "User-Agent", and "Connection" request header lines; the bug
1730 had appeared in 0.7.0.
1733 Changes with nginx 0.7.11 18 Aug 2008
1735 *) Change: now ngx_http_charset_module does not work by default with
1738 *) Feature: now nginx returns the 405 status code for POST method
1739 requesting a static file only if the file exists.
1741 *) Feature: the "proxy_ssl_session_reuse" directive.
1743 *) Bugfix: a "proxy_pass" directive without URI part might use original
1744 request after the "X-Accel-Redirect" redirection was used;
1746 *) Bugfix: if a directory has search only rights and the first index
1747 file was absent, then nginx returned the 500 status code.
1749 *) Bugfix: in inclusive locations; the bugs had appeared in 0.7.1.
1752 Changes with nginx 0.7.10 13 Aug 2008
1754 *) Bugfix: in the "addition_types", "charset_types", "gzip_types",
1755 "ssi_types", "sub_filter_types", and "xslt_types" directives; the
1756 bugs had appeared in 0.7.9.
1758 *) Bugfix: of recursive error_page for 500 status code.
1760 *) Bugfix: now the ngx_http_realip_module sets address not for whole
1761 keepalive connection, but for each request passed via the connection.
1764 Changes with nginx 0.7.9 12 Aug 2008
1766 *) Change: now ngx_http_charset_module works by default with following
1767 MIME types: text/html, text/css, text/xml, text/plain,
1768 text/vnd.wap.wml, application/x-javascript, and application/rss+xml.
1770 *) Feature: the "charset_types" and "addition_types" directives.
1772 *) Feature: now the "gzip_types", "ssi_types", and "sub_filter_types"
1773 directives use hash.
1775 *) Feature: the ngx_cpp_test_module.
1777 *) Feature: the "expires" directive supports daily time.
1779 *) Feature: the ngx_http_xslt_module improvements and bug fixing.
1780 Thanks to Denis F. Latypoff and Maxim Dounin.
1782 *) Bugfix: the "log_not_found" directive did not work for index files
1785 *) Bugfix: HTTPS connections might hang, if kqueue, epoll, rtsig, or
1786 eventport methods were used; the bug had appeared in 0.7.7.
1788 *) Bugfix: if the "server_name", "valid_referers", and "map" directives
1789 used an "*.domain.tld" wildcard and exact name "domain.tld" was not
1790 set, then the exact name was matched by the wildcard; the bug had
1794 Changes with nginx 0.7.8 04 Aug 2008
1796 *) Feature: the ngx_http_xslt_module.
1798 *) Feature: the "$arg_..." variables.
1800 *) Feature: Solaris directio support.
1801 Thanks to Ivan Debnar.
1803 *) Bugfix: now if FastCGI server sends a "Location" header line without
1804 status line, then nginx uses 302 status code.
1805 Thanks to Maxim Dounin.
1808 Changes with nginx 0.7.7 30 Jul 2008
1810 *) Change: now the EAGAIN error returned by connect() is not considered
1813 *) Change: now the $ssl_client_cert variable value is a certificate
1814 with TAB character intended before each line except first one; an
1815 unchanged certificate is available in the $ssl_client_raw_cert
1818 *) Feature: the "ask" parameter in the "ssl_verify_client" directive.
1820 *) Feature: byte-range processing improvements.
1821 Thanks to Maxim Dounin.
1823 *) Feature: the "directio" directive.
1824 Thanks to Jiang Hong.
1826 *) Feature: MacOSX 10.5 sendfile() support.
1828 *) Bugfix: now in MacOSX and Cygwin locations are tested in case
1829 insensitive mode; however, the compare is provided by single-byte
1832 *) Bugfix: mail proxy SSL connections hanged, if select, poll, or
1833 /dev/poll methods were used.
1835 *) Bugfix: UTF-8 encoding usage in the ngx_http_autoindex_module.
1838 Changes with nginx 0.7.6 07 Jul 2008
1840 *) Bugfix: now if variables are used in the "access_log" directive a
1841 request root existence is always tested.
1843 *) Bugfix: the ngx_http_flv_module did not support several values in a
1847 Changes with nginx 0.7.5 01 Jul 2008
1849 *) Bugfixes in variables support in the "access_log" directive; the
1850 bugs had appeared in 0.7.4.
1852 *) Bugfix: nginx could not be built --without-http_gzip_module; the bug
1853 had appeared in 0.7.3.
1854 Thanks to Kirill A. Korinskiy.
1856 *) Bugfix: if sub_filter and SSI were used together, then responses
1857 might were transferred incorrectly.
1860 Changes with nginx 0.7.4 30 Jun 2008
1862 *) Feature: variables support in the "access_log" directive.
1864 *) Feature: the "open_log_file_cache" directive.
1866 *) Feature: the -g switch.
1868 *) Feature: the "Expect" request header line support.
1870 *) Bugfix: large SSI inclusions might be truncated.
1873 Changes with nginx 0.7.3 23 Jun 2008
1875 *) Change: the "rss" extension MIME type has been changed to
1876 "application/rss+xml".
1878 *) Change: now the "gzip_vary" directive turned on issues a
1879 "Vary: Accept-Encoding" header line for uncompressed responses too.
1881 *) Feature: now the "rewrite" directive does a redirect automatically
1882 if the "https://" protocol is used.
1884 *) Bugfix: the "proxy_pass" directive did not work with the HTTPS
1885 protocol; the bug had appeared in 0.6.9.
1888 Changes with nginx 0.7.2 16 Jun 2008
1890 *) Feature: now nginx supports EDH key exchange ciphers.
1892 *) Feature: the "ssl_dhparam" directive.
1894 *) Feature: the $ssl_client_cert variable.
1895 Thanks to Manlio Perillo.
1897 *) Bugfix: after changing URI via a "rewrite" directive nginx did not
1898 search a new location; the bug had appeared in 0.7.1.
1899 Thanks to Maxim Dounin.
1901 *) Bugfix: nginx could not be built without PCRE library; the bug had
1904 *) Bugfix: when a request to a directory was redirected with the slash
1905 added, nginx dropped a query string from the original request.
1908 Changes with nginx 0.7.1 26 May 2008
1910 *) Change: now locations are searched in a tree.
1912 *) Change: the "optimize_server_names" directive was canceled due to
1913 the "server_name_in_redirect" directive introduction.
1915 *) Change: some long deprecated directives are not supported anymore.
1917 *) Change: the "none" parameter in the "ssl_session_cache" directive;
1918 now this is default parameter.
1919 Thanks to Rob Mueller.
1921 *) Bugfix: worker processes might not catch reconfiguration and log
1924 *) Bugfix: nginx could not be built on latest Fedora 9 Linux.
1928 Changes with nginx 0.7.0 19 May 2008
1930 *) Change: now the 0x00-0x1F, '"' and '\' characters are escaped as
1931 \xXX in an access_log.
1932 Thanks to Maxim Dounin.
1934 *) Change: now nginx allows several "Host" request header line.
1936 *) Feature: the "modified" flag in the "expires" directive.
1938 *) Feature: the $uid_got and $uid_set variables may be used at any
1939 request processing stage.
1941 *) Feature: the $hostname variable.
1942 Thanks to Andrei Nigmatulin.
1944 *) Feature: DESTDIR support.
1945 Thanks to Todd A. Fisher and Andras Voroskoi.
1947 *) Bugfix: a segmentation fault might occur in worker process on Linux,
1948 if keepalive was enabled.
1951 Changes with nginx 0.6.31 12 May 2008
1953 *) Bugfix: nginx did not process FastCGI response if header was at the
1954 end of FastCGI record; the bug had appeared in 0.6.2.
1955 Thanks to Sergey Serov.
1957 *) Bugfix: a segmentation fault might occur in worker process if a file
1958 was deleted and the "open_file_cache_errors" directive was off.
1961 Changes with nginx 0.6.30 29 Apr 2008
1963 *) Change: now if an "include" directive pattern does not match any
1964 file, then nginx does not issue an error.
1966 *) Feature: now the time in directives may be specified without spaces,
1967 for example, "1h50m".
1969 *) Bugfix: memory leaks if the "ssl_verify_client" directive was on.
1970 Thanks to Chavelle Vincent.
1972 *) Bugfix: the "sub_filter" directive might set text to change into
1975 *) Bugfix: the "error_page" directive did not take into account
1976 arguments in redirected URI.
1978 *) Bugfix: now nginx always opens files in binary mode under Cygwin.
1980 *) Bugfix: nginx could not be built on OpenBSD; the bug had appeared in
1984 Changes with nginx 0.6.29 18 Mar 2008
1986 *) Feature: the ngx_google_perftools_module.
1988 *) Bugfix: the ngx_http_perl_module could not be built on 64-bit
1989 platforms; the bug had appeared in 0.6.27.
1992 Changes with nginx 0.6.28 13 Mar 2008
1994 *) Bugfix: the rtsig method could not be built; the bug had appeared in
1998 Changes with nginx 0.6.27 12 Mar 2008
2000 *) Change: now by default the rtsig method is not built on
2003 *) Change: now a request method is not changed while redirection to a
2004 named location via an "error_page" directive.
2006 *) Feature: the "resolver" and "resolver_timeout" directives in SMTP
2009 *) Feature: the "post_action" directive supports named locations.
2011 *) Bugfix: a segmentation fault occurred in worker process, if a
2012 request was redirected from proxy, FastCGI, or memcached location to
2013 static named locations.
2015 *) Bugfix: browsers did not repeat SSL handshake if there is no valid
2016 client certificate in first handshake.
2017 Thanks to Alexander V. Inyukhin.
2019 *) Bugfix: if response code 495-497 was redirected via an "error_page"
2020 directive without code change, then nginx tried to allocate too many
2023 *) Bugfix: memory leak in long-lived non buffered connections.
2025 *) Bugfix: memory leak in resolver.
2027 *) Bugfix: a segmentation fault occurred in worker process, if a
2028 request was redirected from proxy, FastCGI, or memcached location to
2029 static named locations.
2031 *) Bugfix: in the $proxy_host and $proxy_port variables caching.
2032 Thanks to Sergey Bochenkov.
2034 *) Bugfix: a "proxy_pass" directive with variables used incorrectly the
2035 same port as in another "proxy_pass" directive with the same host
2036 name and without variables.
2037 Thanks to Sergey Bochenkov.
2039 *) Bugfix: an alert "sendmsg() failed (9: Bad file descriptor)" on some
2040 64-bit platforms while reconfiguration.
2042 *) Bugfix: a segmentation fault occurred in worker process, if empty
2043 stub block was used second time in SSI.
2045 *) Bugfix: in copying URI part contained escaped symbols into arguments.
2048 Changes with nginx 0.6.26 11 Feb 2008
2050 *) Bugfix: the "proxy_store" and "fastcgi_store" directives did not
2051 check a response length.
2053 *) Bugfix: a segmentation fault occurred in worker process, if big
2054 value was used in a "expires" directive.
2055 Thanks to Joaquin Cuenca Abela.
2057 *) Bugfix: nginx incorrectly detected cache line size on Pentium 4.
2058 Thanks to Gena Makhomed.
2060 *) Bugfix: in proxied or FastCGI subrequests a client original method
2061 was used instead of the GET method.
2063 *) Bugfix: socket leak in HTTPS mode if deferred accept was used.
2064 Thanks to Ben Maurer.
2066 *) Bugfix: nginx issued the bogus error message "SSL_shutdown() failed
2067 (SSL: )"; the bug had appeared in 0.6.23.
2069 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
2070 error; the bug had appeared in 0.6.23.
2073 Changes with nginx 0.6.25 08 Jan 2008
2075 *) Change: now the "server_name_in_redirect" directive is used instead
2076 of the "server_name" directive's special "*" parameter.
2078 *) Change: now wildcard and regex names can be used as main name in a
2079 "server_name" directive.
2081 *) Change: the "satisfy_any" directive was replaced by the "satisfy"
2084 *) Workaround: old worker processes might hog CPU after reconfiguration
2085 if they was run under Linux OpenVZ.
2087 *) Feature: the "min_delete_depth" directive.
2089 *) Bugfix: the COPY and MOVE methods did not work with single files.
2091 *) Bugfix: the ngx_http_gzip_static_module did not allow the
2092 ngx_http_dav_module to work; the bug had appeared in 0.6.23.
2094 *) Bugfix: socket leak in HTTPS mode if deferred accept was used.
2095 Thanks to Ben Maurer.
2097 *) Bugfix: nginx could not be built without PCRE library; the bug had
2101 Changes with nginx 0.6.24 27 Dec 2007
2103 *) Bugfix: a segmentation fault might occur in worker process if HTTPS
2104 was used; the bug had appeared in 0.6.23.
2107 Changes with nginx 0.6.23 27 Dec 2007
2109 *) Change: the "off" parameter in the "ssl_session_cache" directive;
2110 now this is default parameter.
2112 *) Change: the "open_file_cache_retest" directive was renamed to the
2113 "open_file_cache_valid".
2115 *) Feature: the "open_file_cache_min_uses" directive.
2117 *) Feature: the ngx_http_gzip_static_module.
2119 *) Feature: the "gzip_disable" directive.
2121 *) Feature: the "memcached_pass" directive may be used inside the "if"
2124 *) Bugfix: a segmentation fault occurred in worker process, if the
2125 "memcached_pass" and "if" directives were used in the same location.
2127 *) Bugfix: if a "satisfy_any on" directive was used and not all access
2128 and auth modules directives were set, then other given access and
2129 auth directives were not tested;
2131 *) Bugfix: regex parameters in a "valid_referers" directive were not
2132 inherited from previous level.
2134 *) Bugfix: a "post_action" directive did run if a request was completed
2135 with 499 status code.
2137 *) Bugfix: optimization of 16K buffer usage in a SSL connection.
2138 Thanks to Ben Maurer.
2140 *) Bugfix: the STARTTLS in SMTP mode did not work.
2141 Thanks to Oleg Motienko.
2143 *) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
2144 error; the bug had appeared in 0.5.13.
2147 Changes with nginx 0.6.22 19 Dec 2007
2149 *) Change: now all ngx_http_perl_module methods return values copied to
2150 perl's allocated memory.
2152 *) Bugfix: if nginx was built with ngx_http_perl_module, the perl
2153 before 5.8.6 was used, and perl supported threads, then during
2154 reconfiguration the master process aborted; the bug had appeared in
2156 Thanks to Boris Zhmurov.
2158 *) Bugfix: the ngx_http_perl_module methods may get invalid values of
2161 *) Bugfix: a segmentation fault occurred in worker process, if the
2162 $r->has_request_body() method was called for a request whose small
2163 request body was already received.
2165 *) Bugfix: large_client_header_buffers did not freed before going to
2167 Thanks to Olexander Shtepa.
2169 *) Bugfix: the last address was missed in the $upstream_addr variable;
2170 the bug had appeared in 0.6.18.
2172 *) Bugfix: the "fastcgi_catch_stderr" directive did return error code;
2173 now it returns 502 code, that can be rerouted to a next server using
2174 the "fastcgi_next_upstream invalid_header" directive.
2176 *) Bugfix: a segmentation fault occurred in master process if the
2177 "fastcgi_catch_stderr" directive was used; the bug had appeared in
2179 Thanks to Manlio Perillo.
2182 Changes with nginx 0.6.21 03 Dec 2007
2184 *) Change: if variable values used in a "proxy_pass" directive contain
2185 IP-addresses only, then a "resolver" directive is not mandatory.
2187 *) Bugfix: a segmentation fault might occur in worker process if a
2188 "proxy_pass" directive with URI-part was used; the bug had appeared
2191 *) Bugfix: if resolver was used on platform that does not support
2192 kqueue, then nginx issued an alert "name is out of response".
2193 Thanks to Andrei Nigmatulin.
2195 *) Bugfix: if the $server_protocol was used in FastCGI parameters and a
2196 request line length was near to the "client_header_buffer_size"
2197 directive value, then nginx issued an alert "fastcgi: the request
2200 *) Bugfix: if a plain text HTTP/0.9 version request was made to HTTPS
2201 server, then nginx returned usual response.
2204 Changes with nginx 0.6.20 28 Nov 2007
2206 *) Bugfix: a segmentation fault might occur in worker process if a
2207 "proxy_pass" directive with URI-part was used; the bug had appeared
2211 Changes with nginx 0.6.19 27 Nov 2007
2213 *) Bugfix: the 0.6.18 version could not be built.
2216 Changes with nginx 0.6.18 27 Nov 2007
2218 *) Change: now the ngx_http_userid_module adds start time microseconds
2219 to the cookie field contains a pid value.
2221 *) Change: now the full request line instead of URI only is written to
2224 *) Feature: variables support in the "proxy_pass" directive.
2226 *) Feature: the "resolver" and "resolver_timeout" directives.
2228 *) Feature: now the directive "add_header last-modified ''" deletes a
2229 "Last-Modified" response header line.
2231 *) Bugfix: the "limit_rate" directive did not allow to use full
2232 throughput, even if limit value was very high.
2235 Changes with nginx 0.6.17 15 Nov 2007
2237 *) Feature: the "If-Range" request header line support.
2238 Thanks to Alexander V. Inyukhin.
2240 *) Bugfix: URL double escaping in a redirect of the "msie_refresh"
2241 directive; the bug had appeared in 0.6.4.
2243 *) Bugfix: the "autoindex" directive did not work with the "alias /"
2246 *) Bugfix: a segmentation fault might occur in worker process if
2247 subrequests were used.
2249 *) Bugfix: the big responses may be transferred truncated if SSL and
2252 *) Bugfix: the $status variable was equal to 0 if a proxied server
2253 returned response in HTTP/0.9 version.
2256 Changes with nginx 0.6.16 29 Oct 2007
2258 *) Change: now the uname(2) is used on Linux instead of procfs.
2259 Thanks to Ilya Novikov.
2261 *) Bugfix: if the "?" character was in a "error_page" directive, then
2262 it was escaped in a proxied request; the bug had appeared in 0.6.11.
2264 *) Bugfix: compatibility with mget.
2267 Changes with nginx 0.6.15 22 Oct 2007
2269 *) Feature: Cygwin compatibility.
2270 Thanks to Vladimir Kutakov.
2272 *) Feature: the "merge_slashes" directive.
2274 *) Feature: the "gzip_vary" directive.
2276 *) Feature: the "server_tokens" directive.
2278 *) Bugfix: nginx did not unescape URI in the "include" SSI command.
2280 *) Bugfix: the segmentation fault was occurred on start or while
2281 reconfiguration if variable was used in the "charset" or
2282 "source_charset" directives.
2284 *) Bugfix: nginx returned the 400 response on requests like
2285 "GET http://www.domain.com HTTP/1.0".
2286 Thanks to James Oakley.
2288 *) Bugfix: if request with request body was redirected using the
2289 "error_page" directive, then nginx tried to read the request body
2290 again; the bug had appeared in 0.6.7.
2292 *) Bugfix: a segmentation fault occurred in worker process if no
2293 server_name was explicitly defined for server processing request;
2294 the bug had appeared in 0.6.7.
2297 Changes with nginx 0.6.14 15 Oct 2007
2299 *) Change: now by default the "echo" SSI command uses entity encoding.
2301 *) Feature: the "encoding" parameter in the "echo" SSI command.
2303 *) Feature: the "access_log" directive may be used inside the
2304 "limit_except" block.
2306 *) Bugfix: if all upstream servers were failed, then all servers had
2307 got weight the was equal one until servers became alive; the bug had
2310 *) Bugfix: a segmentation fault occurred in worker process if
2311 $date_local and $date_gmt were used outside the
2312 ngx_http_ssi_filter_module.
2314 *) Bugfix: a segmentation fault might occur in worker process if debug
2316 Thanks to Andrei Nigmatulin.
2318 *) Bugfix: ngx_http_memcached_module did not set
2319 $upstream_response_time.
2320 Thanks to Maxim Dounin.
2322 *) Bugfix: a worker process may got caught in an endless loop, if the
2325 *) Bugfix: nginx supported low case only "close" and "keep-alive"
2326 values in the "Connection" request header line; the bug had appeared
2329 *) Bugfix: sub_filter did not work with empty substitution.
2331 *) Bugfix: in sub_filter parsing.
2334 Changes with nginx 0.6.13 24 Sep 2007
2336 *) Bugfix: nginx did not close directory file on HEAD request if
2338 Thanks to Arkadiusz Patyk.
2341 Changes with nginx 0.6.12 21 Sep 2007
2343 *) Change: mail proxy was split on three modules: pop3, imap and smtp.
2345 *) Feature: the --without-mail_pop3_module, --without-mail_imap_module,
2346 and --without-mail_smtp_module configuration parameters.
2348 *) Feature: the "smtp_greeting_delay" and "smtp_client_buffer"
2349 directives of the ngx_mail_smtp_module.
2351 *) Bugfix: the trailing wildcards did not work; the bug had appeared in
2354 *) Bugfix: nginx could not start on Solaris if the shared PCRE library
2355 located in non-standard place was used.
2357 *) Bugfix: the "proxy_hide_header" and "fastcgi_hide_header" directives
2358 did not hide response header lines whose name was longer than 32
2360 Thanks to Manlio Perillo.
2363 Changes with nginx 0.6.11 11 Sep 2007
2365 *) Bugfix: active connection counter always increased if mail proxy was
2368 *) Bugfix: if backend returned response header only using non-buffered
2369 proxy, then nginx closed backend connection on timeout.
2371 *) Bugfix: nginx did not support several "Connection" request header
2374 *) Bugfix: if the "max_fails" was set for upstream server, then after
2375 first failure server weight was always one; the bug had appeared in
2379 Changes with nginx 0.6.10 03 Sep 2007
2381 *) Feature: the "open_file_cache", "open_file_cache_retest", and
2382 "open_file_cache_errors" directives.
2384 *) Bugfix: socket leak; the bug had appeared in 0.6.7.
2386 *) Bugfix: a charset set by the "charset" directive was not appended to
2387 the "Content-Type" header set by $r->send_http_header().
2389 *) Bugfix: a segmentation fault might occur in worker process if
2390 /dev/poll method was used.
2393 Changes with nginx 0.6.9 28 Aug 2007
2395 *) Bugfix: a worker process may got caught in an endless loop, if the
2396 HTTPS protocol was used; the bug had appeared in 0.6.7.
2398 *) Bugfix: if server listened on two addresses or ports and trailing
2399 wildcard was used, then nginx did not run.
2401 *) Bugfix: the "ip_hash" directive might incorrectly mark servers as
2404 *) Bugfix: nginx could not be built on amd64; the bug had appeared in
2408 Changes with nginx 0.6.8 20 Aug 2007
2410 *) Change: now nginx tries to set the "worker_priority",
2411 "worker_rlimit_nofile", "worker_rlimit_core", and
2412 "worker_rlimit_sigpending" without super-user privileges.
2414 *) Change: now nginx escapes space and "%" in request to a mail proxy
2415 authentication server.
2417 *) Change: now nginx escapes "%" in $memcached_key variable.
2419 *) Bugfix: nginx used path relative to configuration prefix for
2420 non-absolute configuration file path specified in the "-c" key; the
2421 bug had appeared in 0.6.6.
2423 *) Bugfix: nginx did not work on FreeBSD/sparc64.
2426 Changes with nginx 0.6.7 15 Aug 2007
2428 *) Change: now the paths specified in the "include",
2429 "auth_basic_user_file", "perl_modules", "ssl_certificate",
2430 "ssl_certificate_key", and "ssl_client_certificate" directives are
2431 relative to directory of nginx configuration file nginx.conf, but
2432 not to nginx prefix directory.
2434 *) Change: the --sysconfdir=PATH option in configure was canceled.
2436 *) Change: the special make target "upgrade1" was defined for online
2437 upgrade of 0.1.x versions.
2439 *) Feature: the "server_name" and "valid_referers" directives support
2440 regular expressions.
2442 *) Feature: the "server" directive in the "upstream" context supports
2443 the "backup" parameter.
2445 *) Feature: the ngx_http_perl_module supports the
2446 $r->discard_request_body.
2448 *) Feature: the "add_header Last-Modified ..." directive changes the
2449 "Last-Modified" response header line.
2451 *) Bugfix: if a response different than 200 was returned to a request
2452 with body and connection went to the keep-alive state after the
2453 request, then nginx returned 400 for the next request.
2455 *) Bugfix: a segmentation fault occurred in worker process if invalid
2456 address was set in the "auth_http" directive.
2458 *) Bugfix: now nginx uses default listen backlog value 511 on all
2459 platforms except FreeBSD.
2460 Thanks to Jiang Hong.
2462 *) Bugfix: a worker process may got caught in an endless loop, if a
2463 "server" inside "upstream" block was marked as "down"; the bug had
2466 *) Bugfix: now Solaris sendfilev() is not used to transfer the client
2467 request body to FastCGI-server via the unix domain socket.
2470 Changes with nginx 0.6.6 30 Jul 2007
2472 *) Feature: the --sysconfdir=PATH option in configure.
2474 *) Feature: named locations.
2476 *) Feature: the $args variable can be set with the "set" directive.
2478 *) Feature: the $is_args variable.
2480 *) Bugfix: fair big weight upstream balancer.
2482 *) Bugfix: if a client has closed connection to mail proxy then nginx
2483 might not close connection to backend.
2485 *) Bugfix: if the same host without specified port was used as backend
2486 for HTTP and HTTPS, then nginx used only one port - 80 or 443.
2488 *) Bugfix: fix building on Solaris/amd64 by Sun Studio 11 and early
2489 versions; the bug had appeared in 0.6.4.
2492 Changes with nginx 0.6.5 23 Jul 2007
2494 *) Feature: $nginx_version variable.
2495 Thanks to Nick S. Grechukh.
2497 *) Feature: the mail proxy supports AUTHENTICATE in IMAP mode.
2498 Thanks to Maxim Dounin.
2500 *) Feature: the mail proxy supports STARTTLS in SMTP mode.
2501 Thanks to Maxim Dounin.
2503 *) Bugfix: now nginx escapes space in $memcached_key variable.
2505 *) Bugfix: nginx was incorrectly built by Sun Studio on
2507 Thanks to Jiang Hong.
2509 *) Bugfix: of minor potential bugs.
2510 Thanks to Coverity's Scan.
2513 Changes with nginx 0.6.4 17 Jul 2007
2515 *) Security: the "msie_refresh" directive allowed XSS.
2516 Thanks to Maxim Boguk.
2518 *) Change: the "proxy_store" and "fastcgi_store" directives were
2521 *) Feature: the "proxy_store_access" and "fastcgi_store_access"
2524 *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun
2526 Thanks to Andrei Nigmatulin.
2528 *) Workaround: for Sun Studio 12.
2529 Thanks to Jiang Hong.
2532 Changes with nginx 0.6.3 12 Jul 2007
2534 *) Feature: the "proxy_store" and "fastcgi_store" directives.
2536 *) Bugfix: a segmentation fault might occur in worker process if the
2537 "auth_http_header" directive was used.
2538 Thanks to Maxim Dounin.
2540 *) Bugfix: a segmentation fault occurred in worker process if the
2541 CRAM-MD5 authentication method was used, but it was not enabled.
2543 *) Bugfix: a segmentation fault might occur in worker process when the
2544 HTTPS protocol was used in the "proxy_pass" directive.
2546 *) Bugfix: a segmentation fault might occur in worker process if the
2547 eventport method was used.
2549 *) Bugfix: the "proxy_ignore_client_abort" and
2550 "fastcgi_ignore_client_abort" directives did not work; the bug had
2554 Changes with nginx 0.6.2 09 Jul 2007
2556 *) Bugfix: if the FastCGI header was split in records, then nginx
2557 passed garbage in the header to a client.
2560 Changes with nginx 0.6.1 17 Jun 2007
2562 *) Bugfix: in SSI parsing.
2564 *) Bugfix: if remote SSI subrequest was used, then posterior local file
2565 subrequest might transferred to client in wrong order.
2567 *) Bugfix: large SSI inclusions buffered in temporary files were
2570 *) Bugfix: the perl $$ variable value in ngx_http_perl_module was equal
2571 to the master process identification number.
2574 Changes with nginx 0.6.0 14 Jun 2007
2576 *) Feature: the "server_name", "map", and "valid_referers" directives
2577 support the "www.example.*" wildcards.
2580 Changes with nginx 0.5.25 11 Jun 2007
2582 *) Bugfix: nginx could not be built with the
2583 --without-http_rewrite_module parameter; the bug had appeared in
2587 Changes with nginx 0.5.24 06 Jun 2007
2589 *) Security: the "ssl_verify_client" directive did not work if request
2590 was made using HTTP/0.9.
2592 *) Bugfix: a part of response body might be passed uncompressed if gzip
2593 was used; the bug had appeared in 0.5.23.
2596 Changes with nginx 0.5.23 04 Jun 2007
2598 *) Feature: the ngx_http_ssl_module supports Server Name Indication TLS
2601 *) Feature: the "fastcgi_catch_stderr" directive.
2602 Thanks to Nick S. Grechukh, OWOX project.
2604 *) Bugfix: a segmentation fault occurred in master process if two
2605 virtual servers should bind() to the overlapping ports.
2607 *) Bugfix: if nginx was built with ngx_http_perl_module and perl
2608 supported threads, then during second reconfiguration the error
2609 messages "panic: MUTEX_LOCK" and "perl_parse() failed" were issued.
2611 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
2614 Changes with nginx 0.5.22 29 May 2007
2616 *) Bugfix: a big request body might not be passed to backend; the bug
2617 had appeared in 0.5.21.
2620 Changes with nginx 0.5.21 28 May 2007
2622 *) Bugfix: if server has more than about ten locations, then regex
2623 locations might be choosen not in that order as they were specified.
2625 *) Bugfix: a worker process may got caught in an endless loop on 64-bit
2626 platform, if the 33-rd or next in succession backend has failed.
2627 Thanks to Anton Povarov.
2629 *) Bugfix: a bus error might occur on Solaris/sparc64 if the PCRE
2631 Thanks to Andrei Nigmatulin.
2633 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
2636 Changes with nginx 0.5.20 07 May 2007
2638 *) Feature: the "sendfile_max_chunk" directive.
2640 *) Feature: the "$http_...", "$sent_http_...", and "$upstream_http_..."
2641 variables may be changed using the "set" directive.
2643 *) Bugfix: a segmentation fault might occur in worker process if the
2644 SSI command 'if expr="$var = /"' was used.
2646 *) Bugfix: trailing boundary of multipart range response was
2647 transferred incorrectly.
2648 Thanks to Evan Miller.
2650 *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun
2652 Thanks to Andrei Nigmatulin.
2654 *) Bugfix: the ngx_http_perl_module could not be built by Solaris
2656 Thanks to Andrei Nigmatulin.
2659 Changes with nginx 0.5.19 24 Apr 2007
2661 *) Change: now the $request_time variable has millisecond precision.
2663 *) Change: the method $r->rflush of ngx_http_perl_module was renamed to
2666 *) Feature: the $upstream_addr variable.
2668 *) Feature: the "proxy_headers_hash_max_size" and
2669 "proxy_headers_hash_bucket_size" directives.
2670 Thanks to Volodymyr Kostyrko.
2672 *) Bugfix: the files more than 2G could not be transferred using
2673 sendfile and limit_rate on 64-bit platforms.
2675 *) Bugfix: the files more than 2G could not be transferred using
2676 sendfile on 64-bit Linux.
2679 Changes with nginx 0.5.18 19 Apr 2007
2681 *) Feature: the ngx_http_sub_filter_module.
2683 *) Feature: the "$upstream_http_..." variables.
2685 *) Feature: now the $upstream_status and $upstream_response_time
2686 variables keep data about all upstreams before X-Accel-Redirect.
2688 *) Bugfix: a segmentation fault occurred in master process after first
2689 reconfiguration and receiving any signal if nginx was built with
2690 ngx_http_perl_module and perl did not support multiplicity; the bug
2691 had appeared in 0.5.9.
2693 *) Bugfix: if perl did not support multiplicity, then after
2694 reconfiguration perl code did not work; the bug had appeared in
2698 Changes with nginx 0.5.17 02 Apr 2007
2700 *) Change: now nginx always returns the 405 status for the TRACE method.
2702 *) Feature: now nginx supports the "include" directive inside the
2705 *) Bugfix: the $document_root variable usage in the "root" and "alias"
2706 directives is disabled: this caused recursive stack overflow.
2708 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
2710 *) Bugfix: in some cases non-cachable variables (such as $uri variable)
2711 returned old cached value.
2714 Changes with nginx 0.5.16 26 Mar 2007
2716 *) Bugfix: the C-class network was not used as hash key in the
2717 "ip_hash" directive.
2718 Thanks to Pavel Yarkovoy.
2720 *) Bugfix: a segmentation fault might occur in worker process if a
2721 charset was set in the "Content-Type" header line and the line has
2722 trailing ";"; the bug had appeared in 0.3.50.
2724 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was
2725 used and a request body written in a temporary file was multiple of
2728 *) Bugfix: nginx could not be built on Solaris without the --with-debug
2729 option; the bug had appeared in 0.5.15.
2732 Changes with nginx 0.5.15 19 Mar 2007
2734 *) Feature: the mail proxy supports authenticated SMTP proxying and the
2735 "smtp_auth", "smtp_capablities", and "xclient" directives.
2736 Thanks to Anton Yuzhaninov and Maxim Dounin.
2738 *) Feature: now the keep-alive connections are closed just after
2739 receiving the reconfiguration signal.
2741 *) Change: the "imap" and "auth" directives were renamed to the "mail"
2742 and "pop3_auth" directives.
2744 *) Bugfix: a segmentation fault occurred in worker process if the
2745 CRAM-MD5 authentication method was used and the APOP method was
2748 *) Bugfix: if the "starttls only" directive was used in POP3 protocol,
2749 then nginx allowed authentication without switching to the SSL mode.
2751 *) Bugfix: worker processes did not exit after reconfiguration and did
2752 not rotate logs if the eventport method was used.
2754 *) Bugfix: a worker process may got caught in an endless loop, if the
2755 "ip_hash" directive was used.
2757 *) Bugfix: now nginx does not log some alerts if eventport or /dev/poll
2761 Changes with nginx 0.5.14 23 Feb 2007
2763 *) Bugfix: nginx ignored superfluous closing "}" in the end of
2767 Changes with nginx 0.5.13 19 Feb 2007
2769 *) Feature: the COPY and MOVE methods.
2771 *) Bugfix: the ngx_http_realip_module set garbage for requests passed
2772 via keep-alive connection.
2774 *) Bugfix: nginx did not work on big-endian 64-bit Linux.
2775 Thanks to Andrei Nigmatulin.
2777 *) Bugfix: now when IMAP/POP3 proxy receives too long command it closes
2778 the connection right away, but not after timeout.
2780 *) Bugfix: if the "epoll" method was used and a client closed a
2781 connection prematurely, then nginx closed the connection after a
2784 *) Bugfix: nginx could not be built on platforms different from i386,
2785 amd64, sparc, and ppc; the bug had appeared in 0.5.8.
2788 Changes with nginx 0.5.12 12 Feb 2007
2790 *) Bugfix: nginx could not be built on platforms different from i386,
2791 amd64, sparc, and ppc; the bug had appeared in 0.5.8.
2793 *) Bugfix: a segmentation fault might occur in worker process if the
2794 temporary files were used while working with FastCGI server; the bug
2795 had appeared in 0.5.8.
2797 *) Bugfix: a segmentation fault might occur in worker process if the
2798 $fastcgi_script_name variable was logged.
2800 *) Bugfix: ngx_http_perl_module could not be built on Solaris.
2803 Changes with nginx 0.5.11 05 Feb 2007
2805 *) Feature: now configure detects system PCRE library in MacPorts.
2806 Thanks to Chris McGrath.
2808 *) Bugfix: the response was incorrect if several ranges were requested;
2809 the bug had appeared in 0.5.6.
2811 *) Bugfix: the "create_full_put_path" directive could not create the
2812 intermediate directories if no "dav_access" directive was set.
2813 Thanks to Evan Miller.
2815 *) Bugfix: the "0" response code might be logged in the access_log
2816 instead of the "400" and "408" error codes.
2818 *) Bugfix: a segmentation fault might occur in worker process if nginx
2819 was built with -O2 optimization.
2822 Changes with nginx 0.5.10 26 Jan 2007
2824 *) Bugfix: while online executable file upgrade the new master process
2825 did not inherit the listening sockets; the bug had appeared in 0.5.9.
2827 *) Bugfix: a segmentation fault might occur in worker process if nginx
2828 was built with -O2 optimization; the bug had appeared in 0.5.1.
2831 Changes with nginx 0.5.9 25 Jan 2007
2833 *) Change: now the ngx_http_memcached_module uses the $memcached_key
2834 variable value as a key.
2836 *) Feature: the $memcached_key variable.
2838 *) Feature: the "clean" parameter in the "client_body_in_file_only"
2841 *) Feature: the "env" directive.
2843 *) Feature: the "sendfile" directive is available inside the "if" block.
2845 *) Feature: now on failure of the writing to access nginx logs a
2846 message to error_log, but not more often than once a minute.
2848 *) Bugfix: the "access_log off" directive did not always turn off the
2852 Changes with nginx 0.5.8 19 Jan 2007
2854 *) Bugfix: a segmentation fault might occur if
2855 "client_body_in_file_only on" was used and a request body was small.
2857 *) Bugfix: a segmentation fault occurred if
2858 "client_body_in_file_only on" and "proxy_pass_request_body off" or
2859 "fastcgi_pass_request_body off" directives were used, and nginx
2860 switched to a next upstream.
2862 *) Bugfix: if the "proxy_buffering off" directive was used and a client
2863 connection was non-active, then the connection was closed after send
2864 timeout; the bug had appeared in 0.4.7.
2866 *) Bugfix: if the "epoll" method was used and a client closed a
2867 connection prematurely, then nginx closed the connection after a
2870 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was
2873 *) Bugfixes in the "limit_zone" directive.
2876 Changes with nginx 0.5.7 15 Jan 2007
2878 *) Feature: the ssl_session_cache storage optimization.
2880 *) Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
2882 *) Bugfix: the segmentation fault was occurred on start or while
2883 reconfiguration if the "ssl_session_cache" or "limit_zone"
2884 directives were used on 64-bit platforms.
2886 *) Bugfix: a segmentation fault occurred if the "add_before_body" or
2887 "add_after_body" directives were used and there was no
2888 "Content-Type" header line in response.
2890 *) Bugfix: the OpenSSL library was always built with the threads
2892 Thanks to Den Ivanov.
2894 *) Bugfix: the PCRE-6.5+ library and the icc compiler compatibility.
2897 Changes with nginx 0.5.6 09 Jan 2007
2899 *) Change: now the ngx_http_index_module ignores all methods except the
2900 GET, HEAD, and POST methods.
2902 *) Feature: the ngx_http_limit_zone_module.
2904 *) Feature: the $binary_remote_addr variable.
2906 *) Feature: the "ssl_session_cache" directives of the
2907 ngx_http_ssl_module and ngx_imap_ssl_module.
2909 *) Feature: the DELETE method supports recursive removal.
2911 *) Bugfix: the byte-ranges were transferred incorrectly if the
2912 $r->sendfile() was used.
2915 Changes with nginx 0.5.5 24 Dec 2006
2917 *) Change: the -v switch does not show compiler information any more.
2919 *) Feature: the -V switch.
2921 *) Feature: the "worker_rlimit_core" directive supports size in K, M,
2924 *) Bugfix: the nginx.pm module now could be installed by an
2927 *) Bugfix: a segmentation fault might occur if the $r->request_body or
2928 $r->request_body_file methods were used.
2930 *) Bugfix: the ppc platform specific bugs.
2933 Changes with nginx 0.5.4 15 Dec 2006
2935 *) Feature: the "perl" directive may be used inside the "limit_except"
2938 *) Bugfix: the ngx_http_dav_module required the "Date" request header
2939 line for the DELETE method.
2941 *) Bugfix: if one only parameter was used in the "dav_access"
2942 directive, then nginx might report about configuration error.
2944 *) Bugfix: a segmentation fault might occur if the $host variable was
2945 used; the bug had appeared in 0.4.14.
2948 Changes with nginx 0.5.3 13 Dec 2006
2950 *) Feature: the ngx_http_perl_module supports the $r->status,
2951 $r->log_error, and $r->sleep methods.
2953 *) Feature: the $r->variable method supports variables that do not
2954 exist in nginx configuration.
2956 *) Bugfix: the $r->has_request_body method did not work.
2959 Changes with nginx 0.5.2 11 Dec 2006
2961 *) Bugfix: if the "proxy_pass" directive used the name of the
2962 "upstream" block, then nginx tried to resolve the name; the bug had
2966 Changes with nginx 0.5.1 11 Dec 2006
2968 *) Bugfix: the "post_action" directive might not run after a
2969 unsuccessful completion of a request.
2971 *) Workaround: for Eudora for Mac; the bug had appeared in 0.4.11.
2972 Thanks to Bron Gondwana.
2974 *) Bugfix: if the "upstream" name was used in the "fastcgi_pass", then
2975 the message "no port in upstream" was issued; the bug had appeared
2978 *) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the
2979 same servers but different ports, then these directives uses the
2980 first described port; the bug had appeared in 0.5.0.
2982 *) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the
2983 unix domain sockets, then these directives used first described
2984 socket; the bug had appeared in 0.5.0.
2986 *) Bugfix: ngx_http_auth_basic_module ignored the user if it was in the
2987 last line in the password file and there was no the carriage return,
2988 the line feed, or the ":" symbol after the password.
2990 *) Bugfix: the $upstream_response_time variable might be equal to
2991 "0.000", although response time was more than 1 millisecond.
2994 Changes with nginx 0.5.0 04 Dec 2006
2996 *) Change: the parameters in the "%name" form in the "log_format"
2997 directive are not supported anymore.
2999 *) Change: the "proxy_upstream_max_fails",
3000 "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails",
3001 "fastcgi_upstream_fail_timeout", "memcached_upstream_max_fails", and
3002 "memcached_upstream_fail_timeout" directives are not supported
3005 *) Feature: the "server" directive in the "upstream" context supports
3006 the "max_fails", "fail_timeout", and "down" parameters.
3008 *) Feature: the "ip_hash" directive inside the "upstream" block.
3010 *) Feature: the WAIT status in the "Auth-Status" header line of the
3011 IMAP/POP3 proxy authentication server response.
3013 *) Bugfix: nginx could not be built on 64-bit platforms; the bug had
3017 Changes with nginx 0.4.14 27 Nov 2006
3019 *) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
3021 *) Feature: now configure detects system PCRE library on FreeBSD,
3024 *) Bugfix: ngx_http_perl_module did not work with perl built with the
3025 threads support; the bug had appeared in 0.3.38.
3027 *) Bugfix: ngx_http_perl_module did not work if perl was called
3030 *) Bugfix: nginx ignored a host name in a request line.
3032 *) Bugfix: a worker process may got caught in an endless loop, if a
3033 FastCGI server sent too many data to the stderr.
3035 *) Bugfix: the $upstream_response_time variable may be negative if the
3036 system time was changed backward.
3038 *) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3
3039 proxy authentication server when POP3 was used.
3041 *) Bugfix: a segmentation fault might occur if connect to IMAP/POP3
3042 proxy authentication server failed.
3045 Changes with nginx 0.4.13 15 Nov 2006
3047 *) Feature: the "proxy_pass" directive may be used inside the
3048 "limit_except" block.
3050 *) Feature: the "limit_except" directive supports all WebDAV methods.
3052 *) Bugfix: if the "add_before_body" directive was used without the
3053 "add_after_body" directive, then a response did not transferred
3056 *) Bugfix: a large request body did not receive if the epoll method and
3057 the deferred accept() were used.
3059 *) Bugfix: a charset could not be set for ngx_http_autoindex_module
3060 responses; the bug had appeared in 0.3.50.
3062 *) Bugfix: the "[alert] zero size buf" error when FastCGI server was
3065 *) Bugfix: the --group= configuration parameter was ignored.
3066 Thanks to Thomas Moschny.
3068 *) Bugfix: the 50th subrequest in SSI response did not work; the bug
3069 had appeared in 0.3.50.
3072 Changes with nginx 0.4.12 31 Oct 2006
3074 *) Feature: the ngx_http_perl_module supports the $r->variable method.
3076 *) Bugfix: if a big static file was included using SSI in a response,
3077 then the response may be transferred incomplete.
3079 *) Bugfix: nginx did not omit the "#fragment" part in URI.
3082 Changes with nginx 0.4.11 25 Oct 2006
3084 *) Feature: the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5.
3086 *) Feature: the ngx_http_perl_module supports the $r->allow_ranges
3089 *) Bugfix: if the APOP was enabled in the POP3 proxy, then the
3090 USER/PASS commands might not work; the bug had appeared in 0.4.10.
3093 Changes with nginx 0.4.10 23 Oct 2006
3095 *) Feature: the POP3 proxy supports the APOP command.
3097 *) Bugfix: if the select, poll or /dev/poll methods were used, then
3098 while waiting authentication server response the IMAP/POP3 proxy
3101 *) Bugfix: a segmentation fault might occur if the $server_addr
3102 variable was used in the "map" directive.
3104 *) Bugfix: the ngx_http_flv_module did not support the byte ranges for
3105 full responses; the bug had appeared in 0.4.7.
3107 *) Bugfix: nginx could not be built on Debian amd64; the bug had
3111 Changes with nginx 0.4.9 13 Oct 2006
3113 *) Feature: the "set" parameter in the "include" SSI command.
3115 *) Feature: the ngx_http_perl_module now tests the nginx.pm module
3119 Changes with nginx 0.4.8 11 Oct 2006
3121 *) Bugfix: if an "include" SSI command were before another "include"
3122 SSI command with a "wait" parameter, then the "wait" parameter might
3125 *) Bugfix: the ngx_http_flv_module added the FLV header to the full
3127 Thanks to Alexey Kovyrin.
3130 Changes with nginx 0.4.7 10 Oct 2006
3132 *) Feature: the ngx_http_flv_module.
3134 *) Feature: the $request_body_file variable.
3136 *) Feature: the "charset" and "source_charset" directives support the
3139 *) Bugfix: if an "include" SSI command were before another "include"
3140 SSI command with a "wait" parameter, then the "wait" parameter might
3143 *) Bugfix: if the "proxy_buffering off" directive was used or while
3144 working with memcached the connections might not be closed on
3147 *) Bugfix: nginx did not run on 64-bit platforms except amd64, sparc64,
3151 Changes with nginx 0.4.6 06 Oct 2006
3153 *) Bugfix: nginx did not run on 64-bit platforms except amd64, sparc64,
3156 *) Bugfix: nginx sent the chunked response for HTTP/1.1 request,
3157 if its length was set by text string in the
3158 $r->headers_out("Content-Length", ...) method.
3160 *) Bugfix: after redirecting error by an "error_page" directive any
3161 ngx_http_rewrite_module directive returned this error code; the bug
3162 had appeared in 0.4.4.
3165 Changes with nginx 0.4.5 02 Oct 2006
3167 *) Bugfix: nginx could not be built on Linux and Solaris; the bug had
3171 Changes with nginx 0.4.4 02 Oct 2006
3173 *) Feature: the $scheme variable.
3175 *) Feature: the "expires" directive supports the "max" parameter.
3177 *) Feature: the "include" directive supports the "*" mask.
3178 Thanks to Jonathan Dance.
3180 *) Bugfix: the "return" directive always overrode the "error_page"
3181 response code redirected by the "error_page" directive.
3183 *) Bugfix: a segmentation fault occurred if zero-length body was in PUT
3186 *) Bugfix: the redirect was changed incorrectly if the variables were
3187 used in the "proxy_redirect" directive.
3190 Changes with nginx 0.4.3 26 Sep 2006
3192 *) Change: now the 499 error could not be redirected using an
3193 "error_page" directive.
3195 *) Feature: the Solaris 10 event ports support.
3197 *) Feature: the ngx_http_browser_module.
3199 *) Bugfix: a segmentation fault may occur while redirecting the 400
3200 error to the proxied server using a "proxy_pass" directive.
3202 *) Bugfix: a segmentation fault occurred if an unix domain socket was
3203 used in a "proxy_pass" directive; the bug had appeared in 0.3.47.
3205 *) Bugfix: SSI did work with memcached and nonbuffered responses.
3207 *) Workaround: of the Sun Studio PAUSE hardware capability bug.
3210 Changes with nginx 0.4.2 14 Sep 2006
3212 *) Bugfix: the O_NOATIME flag support on Linux was canceled; the bug
3213 had appeared in 0.4.1.
3216 Changes with nginx 0.4.1 14 Sep 2006
3218 *) Bugfix: the DragonFlyBSD compatibility.
3219 Thanks to Pavel Nazarov.
3221 *) Workaround: of bug in 64-bit Linux sendfile(), when file is more
3224 *) Feature: now on Linux nginx uses O_NOATIME flag for static
3226 Thanks to Yusuf Goolamabbas.
3229 Changes with nginx 0.4.0 30 Aug 2006
3231 *) Change in internal API: the HTTP modules initialization was moved
3232 from the init module phase to the HTTP postconfiguration phase.
3234 *) Change: now the request body is not read beforehand for the
3235 ngx_http_perl_module: it's required to start the reading using the
3236 $r->has_request_body method.
3238 *) Feature: the ngx_http_perl_module supports the DECLINED return code.
3240 *) Feature: the ngx_http_dav_module supports the incoming "Date" header
3241 line for the PUT method.
3243 *) Feature: the "ssi" directive is available inside the "if" block.
3245 *) Bugfix: a segmentation fault occurred if there was an "index"
3246 directive with variables and the first index name was without
3247 variables; the bug had appeared in 0.1.29.
3250 Changes with nginx 0.3.61 28 Aug 2006
3252 *) Change: now the "tcp_nodelay" directive is turned on by default.
3254 *) Feature: the "msie_refresh" directive.
3256 *) Feature: the "recursive_error_pages" directive.
3258 *) Bugfix: the "rewrite" directive returned incorrect redirect, if the
3259 redirect had the captured escaped symbols from original URI.
3262 Changes with nginx 0.3.60 18 Aug 2006
3264 *) Bugfix: a worker process may got caught in an endless loop while an
3265 error redirection; the bug had appeared in 0.3.59.
3268 Changes with nginx 0.3.59 16 Aug 2006
3270 *) Feature: now is possible to do several redirection using the
3271 "error_page" directive.
3273 *) Bugfix: the "dav_access" directive did not support three parameters.
3275 *) Bugfix: the "error_page" directive did not changes the
3276 "Content-Type" header line after the "X-Accel-Redirect" was used;
3277 the bug had appeared in 0.3.58.
3280 Changes with nginx 0.3.58 14 Aug 2006
3282 *) Feature: the "error_page" directive supports the variables.
3284 *) Change: now the procfs interface instead of sysctl is used on Linux.
3286 *) Change: now the "Content-Type" header line is inherited from first
3287 response when the "X-Accel-Redirect" was used.
3289 *) Bugfix: the "error_page" directive did not redirect the 413 error.
3291 *) Bugfix: the trailing "?" did not remove old arguments if no new
3292 arguments were added to a rewritten URI.
3294 *) Bugfix: nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
3297 Changes with nginx 0.3.57 09 Aug 2006
3299 *) Feature: the $ssl_client_serial variable.
3301 *) Bugfix: in the "!-e" operator of the "if" directive.
3302 Thanks to Andrian Budanstov.
3304 *) Bugfix: while a client certificate verification nginx did not send
3305 to a client the required certificates information.
3307 *) Bugfix: the $document_root variable did not support the variables in
3308 the "root" directive.
3311 Changes with nginx 0.3.56 04 Aug 2006
3313 *) Feature: the "dav_access" directive.
3315 *) Feature: the "if" directive supports the "-d", "!-d", "-e", "!-e",
3316 "-x", and "!-x" operators.
3318 *) Bugfix: a segmentation fault occurred if a request returned a
3319 redirect and some sent to client header lines were logged in the
3323 Changes with nginx 0.3.55 28 Jul 2006
3325 *) Feature: the "stub" parameter in the "include" SSI command.
3327 *) Feature: the "block" SSI command.
3329 *) Feature: the unicode2nginx script was added to contrib.
3331 *) Bugfix: if a "root" was specified by variable only, then the root
3332 was relative to a server prefix.
3334 *) Bugfix: if the request contained "//" or "/./" and escaped symbols
3335 after them, then the proxied request was sent unescaped.
3337 *) Bugfix: the $r->header_in("Cookie") of the ngx_http_perl_module now
3338 returns all "Cookie" header lines.
3340 *) Bugfix: a segmentation fault occurred if
3341 "client_body_in_file_only on" was used and nginx switched to a next
3344 *) Bugfix: on some condition while reconfiguration character codes
3345 inside the "charset_map" may be treated invalid; the bug had
3349 Changes with nginx 0.3.54 11 Jul 2006
3351 *) Feature: nginx now logs the subrequest information to the error log.
3353 *) Feature: the "proxy_next_upstream", "fastcgi_next_upstream", and
3354 "memcached_next_upstream" directives support the "off" parameter.
3356 *) Feature: the "debug_connection" directive supports the CIDR address
3359 *) Bugfix: if a response of proxied server or FastCGI server was
3360 converted from UTF-8 or back, then it may be transferred incomplete.
3362 *) Bugfix: the $upstream_response_time variable had the time of the
3363 first request to a backend only.
3365 *) Bugfix: nginx could not be built on amd64 platform; the bug had
3369 Changes with nginx 0.3.53 07 Jul 2006
3371 *) Change: the "add_header" directive adds the string to 204, 301, and
3374 *) Feature: the "server" directive in the "upstream" context supports
3375 the "weight" parameter.
3377 *) Feature: the "server_name" directive supports the "*" wildcard.
3379 *) Feature: nginx supports the request body size more than 2G.
3381 *) Bugfix: if a client was successfully authorized using "satisfy_any
3382 on", then anyway the message "access forbidden by rule" was written
3385 *) Bugfix: the "PUT" method may erroneously not create a file and
3386 return the 409 code.
3388 *) Bugfix: if the IMAP/POP3 backend returned an error, then nginx
3389 continued proxying anyway.
3392 Changes with nginx 0.3.52 03 Jul 2006
3394 *) Change: the ngx_http_index_module behavior for the "POST /" requests
3395 is reverted to the 0.3.40 version state: the module now does not
3396 return the 405 error.
3398 *) Bugfix: the worker process may got caught in an endless loop if the
3399 limit rate was used; the bug had appeared in 0.3.37.
3401 *) Bugfix: ngx_http_charset_module logged "unknown charset" alert, even
3402 if the recoding was not needed; the bug had appeared in 0.3.50.
3404 *) Bugfix: if a code response of the PUT request was 409, then a
3405 temporary file was not removed.
3408 Changes with nginx 0.3.51 30 Jun 2006
3410 *) Bugfix: the "<" symbols might disappeared some conditions in the
3411 SSI; the bug had appeared in 0.3.50.
3414 Changes with nginx 0.3.50 28 Jun 2006
3416 *) Change: the "proxy_redirect_errors" and "fastcgi_redirect_errors"
3417 directives was renamed to the "proxy_intercept_errors" and
3418 "fastcgi_intercept_errors" directives.
3420 *) Feature: the ngx_http_charset_module supports the recoding from the
3421 single byte encodings to the UTF-8 encoding and back.
3423 *) Feature: the "X-Accel-Charset" response header line is supported in
3424 proxy and FastCGI mode.
3426 *) Bugfix: the "\" escape symbol in the "\"" and "\'" pairs in the SSI
3427 command was removed only if the command also has the "$" symbol.
3429 *) Bugfix: the "<!--" string might be added on some conditions in the
3430 SSI after inclusion.
3432 *) Bugfix: if the "Content-Length: 0" header line was in response, then
3433 in nonbuffered proxying mode the client connection was not closed.
3436 Changes with nginx 0.3.49 31 May 2006
3438 *) Bugfix: in the "set" directive.
3440 *) Bugfix: if two or more FastCGI subrequests was in SSI, then first
3441 subrequest output was included instead of second and following
3445 Changes with nginx 0.3.48 29 May 2006
3447 *) Change: now the ngx_http_charset_module works for subrequests, if
3448 the response has no "Content-Type" header line.
3450 *) Bugfix: if the "proxy_pass" directive has no URI part, then the
3451 "proxy_redirect default" directive add the unnecessary slash in
3452 start of the rewritten redirect.
3454 *) Bugfix: the internal redirect always transform client's HTTP method
3455 to GET, now the transformation is made for the "X-Accel-Redirect"
3456 redirects only and if the method is not HEAD; the bug had appeared
3459 *) Bugfix: the ngx_http_perl_module could not be built, if the perl was
3460 built with the threads support; the bug had appeared in 0.3.46.
3463 Changes with nginx 0.3.47 23 May 2006
3465 *) Feature: the "upstream" directive.
3467 *) Change: now the "\" escape symbol in the "\"" and "\'" pairs in the
3468 SSI command is always removed.
3471 Changes with nginx 0.3.46 11 May 2006
3473 *) Feature: the "proxy_hide_header", "proxy_pass_header",
3474 "fastcgi_hide_header", and "fastcgi_pass_header" directives.
3476 *) Change: the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and
3477 "proxy_pass_server" directives were canceled.
3479 *) Feature: the "X-Accel-Buffering" response header line is supported
3482 *) Bugfix: the reconfiguration bug and memory leaks in the
3483 ngx_http_perl_module.
3486 Changes with nginx 0.3.45 06 May 2006
3488 *) Feature: the "ssl_verify_client", "ssl_verify_depth", and
3489 "ssl_client_certificate" directives.
3491 *) Change: the $request_method variable now returns the main request
3494 *) Change: the ° symbol codes were changed in koi-win conversion
3497 *) Feature: the euro and N symbols were added to koi-win conversion
3500 *) Bugfix: if nginx distributed the requests among several backends and
3501 some backend failed, then requests intended for this backend was
3502 directed to one live backend only instead of being distributed among
3506 Changes with nginx 0.3.44 04 May 2006
3508 *) Feature: the "wait" parameter in the "include" SSI command.
3510 *) Feature: the Ukrainian and Byelorussian characters were added to
3511 koi-win conversion table.
3513 *) Bugfix: in the SSI.
3516 Changes with nginx 0.3.43 26 Apr 2006
3518 *) Bugfix: in the SSI.
3521 Changes with nginx 0.3.42 26 Apr 2006
3523 *) Feature: the "bind" option of the "listen" directive in IMAP/POP3
3526 *) Bugfix: if the same capture in the "rewrite" directive was used more
3529 *) Bugfix: the $sent_http_content_type, $sent_http_content_length,
3530 $sent_http_last_modified, $sent_http_connection,
3531 $sent_http_keep_alive, and $sent_http_transfer_encoding variables
3532 were not written to access log.
3534 *) Bugfix: the $sent_http_cache_control returned value of the single
3535 "Cache-Control" response header line.
3538 Changes with nginx 0.3.41 21 Apr 2006
3540 *) Feature: the -v switch.
3542 *) Bugfix: the segmentation fault may occurred if the SSI page has
3545 *) Bugfix: in FastCGI handling.
3547 *) Bugfix: if the perl modules path was not set using
3548 --with-perl_modules_path=PATH or the "perl_modules", then the
3549 segmentation fault was occurred.
3552 Changes with nginx 0.3.40 19 Apr 2006
3554 *) Feature: the ngx_http_dav_module supports the MKCOL method.
3556 *) Feature: the "create_full_put_path" directive.
3558 *) Feature: the "$limit_rate" variable.
3561 Changes with nginx 0.3.39 17 Apr 2006
3563 *) Feature: the "uninitialized_variable_warn" directive; the logging
3564 level of the "uninitialized variable" message was lowered from
3567 *) Feature: the "override_charset" directive.
3569 *) Change: now if the unknown variable is used in the "echo" and "if
3570 expr='$name'" SSI-commands, then the "unknown variable" message is
3573 *) Bugfix: the active connection counter increased on the exceeding of
3574 the connection limit specified by the "worker_connections"
3575 directive; the bug had appeared in 0.2.0.
3577 *) Bugfix: the limit rate might not work on some condition; the bug had
3581 Changes with nginx 0.3.38 14 Apr 2006
3583 *) Feature: the ngx_http_dav_module.
3585 *) Change: the ngx_http_perl_module optimizations.
3586 Thanks to Sergey Skvortsov.
3588 *) Feature: the ngx_http_perl_module supports the $r->request_body_file
3591 *) Feature: the "client_body_in_file_only" directive.
3593 *) Workaround: now on disk overflow nginx tries to write access logs
3595 Thanks to Anton Yuzhaninov and Maxim Dounin.
3597 *) Bugfix: now the "limit_rate" directive more precisely limits rate if
3598 rate is more than 100 Kbyte/s.
3601 *) Bugfix: now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in
3602 login and password to pass authorization server.
3603 Thanks to Maxim Dounin.
3606 Changes with nginx 0.3.37 07 Apr 2006
3608 *) Feature: the "limit_except" directive.
3610 *) Feature: the "if" directive supports the "!~", "!~*", "-f", and
3613 *) Feature: the ngx_http_perl_module supports the $r->request_body
3616 *) Bugfix: in the ngx_http_addition_filter_module.
3619 Changes with nginx 0.3.36 05 Apr 2006
3621 *) Feature: the ngx_http_addition_filter_module.
3623 *) Feature: the "proxy_pass" and "fastcgi_pass" directives may be used
3624 inside the "if" block.
3626 *) Feature: the "proxy_ignore_client_abort" and
3627 "fastcgi_ignore_client_abort" directives.
3629 *) Feature: the "$request_completion" variable.
3631 *) Feature: the ngx_http_perl_module supports the $r->request_method
3632 and $r->remote_addr.
3634 *) Feature: the ngx_http_ssi_module supports the "elif" command.
3636 *) Bugfix: the "\/" string in the expression of the "if" command of the
3637 ngx_http_ssi_module was treated incorrectly.
3639 *) Bugfix: in the regular expressions in the "if" command of the
3640 ngx_http_ssi_module.
3642 *) Bugfix: if the relative path was specified in the
3643 "client_body_temp_path", "proxy_temp_path", "fastcgi_temp_path", and
3644 "perl_modules" directives, then the directory was used relatively to
3645 a current path but not to a server prefix.
3648 Changes with nginx 0.3.35 22 Mar 2006
3650 *) Bugfix: the accept-filter and the TCP_DEFER_ACCEPT option were set
3651 for first "listen" directive only; the bug had appeared in 0.3.31.
3653 *) Bugfix: in the "proxy_pass" directive without the URI part in a
3657 Changes with nginx 0.3.34 21 Mar 2006
3659 *) Feature: the "add_header" directive supports the variables.
3662 Changes with nginx 0.3.33 15 Mar 2006
3664 *) Feature: the "http_503" parameter of the "proxy_next_upstream" or
3665 "fastcgi_next_upstream" directives.
3667 *) Bugfix: ngx_http_perl_module did not work with inlined in the
3668 configuration code, if it was not started with the "sub" word.
3670 *) Bugfix: in the "post_action" directive.
3673 Changes with nginx 0.3.32 11 Mar 2006
3675 *) Bugfix: the debug logging on startup and reconfiguration time was
3676 removed; the bug had appeared in 0.3.31.
3679 Changes with nginx 0.3.31 10 Mar 2006
3681 *) Change: now nginx passes the malformed proxied backend responses.
3683 *) Feature: the "listen" directives support the address in the "*:port"
3686 *) Feature: the EVFILER_TIMER support in MacOSX 10.4.
3688 *) Workaround: for MacOSX 64-bit kernel kqueue millisecond timeout
3690 Thanks to Andrei Nigmatulin.
3692 *) Bugfix: if there were several "listen" directives listening one
3693 various addresses inside one server, then server names like
3694 "*.domain.tld" worked for first address only; the bug had appeared
3697 *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive
3698 and the request body was in temporary file then the request was not
3701 *) Bugfix: perl 5.8.8 compatibility.
3704 Changes with nginx 0.3.30 22 Feb 2006
3706 *) Change: the ECONNABORTED error log level was changed to "error" from
3709 *) Bugfix: the ngx_http_perl_module could not be build without the
3710 ngx_http_ssi_filter_module.
3712 *) Bugfix: nginx could not be built on i386 platform, if the PIC was
3713 used; the bug had appeared in 0.3.27.
3716 Changes with nginx 0.3.29 20 Feb 2006
3718 *) Feature: now nginx uses less memory, if PHP in FastCGI mode sends
3719 many warnings before the response.
3721 *) Bugfix: the "Transfer-Encoding: chunked" header line was issued in
3722 the 204 responses for the HTTP/1.1 requests.
3724 *) Bugfix: nginx returned the 502 response, if the complete response
3725 header lines were transferred in a separate FastCGI records.
3727 *) Bugfix: if the proxied URI was specified in the "post_action"
3728 directive, then it ran only after a successful completion of a
3732 Changes with nginx 0.3.28 16 Feb 2006
3734 *) Feature: the "restrict_host_names" directive was canceled.
3736 *) Feature: the --with-cpu-opt=ppc64 configuration parameter.
3738 *) Bugfix: on some condition the proxied connection with a client was
3739 terminated prematurely.
3740 Thanks to Vladimir Shutoff.
3742 *) Bugfix: the "X-Accel-Limit-Rate" header line was not taken into
3743 account if the request was redirected using the "X-Accel-Redirect"
3746 *) Bugfix: the "post_action" directive ran only after a successful
3747 completion of a request.
3749 *) Bugfix: the proxied response body generated by the "post_action"
3750 directive was transferred to a client.
3753 Changes with nginx 0.3.27 08 Feb 2006
3755 *) Change: the "variables_hash_max_size" and
3756 "variables_hash_bucket_size" directives.
3758 *) Feature: the $body_bytes_sent variable can be used not only in the
3759 "log_format" directive.
3761 *) Feature: the $ssl_protocol and $ssl_cipher variables.
3763 *) Feature: the cache line size detection for widespread CPUs at start
3766 *) Feature: now the "accept_mutex" directive is supported using
3767 fcntl(2) on platforms different from i386, amd64, sparc64, and ppc.
3769 *) Feature: the "lock_file" directive and the --with-lock-path=PATH
3770 autoconfiguration directive.
3772 *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive
3773 then the requests with the body was not transferred.
3776 Changes with nginx 0.3.26 03 Feb 2006
3778 *) Change: the "optimize_host_names" directive was renamed to the
3779 "optimize_server_names".
3781 *) Bugfix: if in the "proxy_pass" directive was no the URI part, then
3782 the main request URI was transferred to a backend while proxying the
3786 Changes with nginx 0.3.25 01 Feb 2006
3788 *) Bugfix: the segmentation fault was occurred on start or while
3789 reconfiguration if there was invalid configuration; the bug had
3793 Changes with nginx 0.3.24 01 Feb 2006
3795 *) Workaround: for bug in FreeBSD kqueue.
3797 *) Bugfix: now a response generated by the "post_action" directive is
3798 not transferred to a client.
3800 *) Bugfix: the memory leaks were occurring if many log files were used.
3802 *) Bugfix: the first "proxy_redirect" directive was working inside one
3805 *) Bugfix: on 64-bit platforms segmentation fault may occurred on start
3806 if the many names were used in the "server_name" directives; the bug
3807 had appeared in 0.3.18.
3810 Changes with nginx 0.3.23 24 Jan 2006
3812 *) Feature: the "optimize_host_names" directive.
3814 *) Bugfix: in using of the variables in the "path" and "alias"
3817 *) Bugfix: the ngx_http_perl_module was incorrectly built on Linux and
3821 Changes with nginx 0.3.22 17 Jan 2006
3823 *) Feature: the ngx_http_perl_module supports the $r->args and
3824 $r->unescape methods.
3826 *) Feature: the method $r->query_string of ngx_http_perl_module was
3829 *) Bugfix: segmentation fault was occurred if the "none" or "blocked"
3830 values was specified in the "valid_referers" directive; the bug had
3834 Changes with nginx 0.3.21 16 Jan 2006
3836 *) Feature: the ngx_http_perl_module.
3838 *) Change: the "valid_referers" directive allows the referreres without
3842 Changes with nginx 0.3.20 11 Jan 2006
3844 *) Bugfix: in SSI handling.
3846 *) Bugfix: the ngx_http_memcached_module did not support the keys in
3847 the "/usr?args" form.
3850 Changes with nginx 0.3.19 28 Dec 2005
3852 *) Feature: the "path" and "alias" directives support the variables.
3854 *) Change: now the "valid_referers" directive again checks the URI part.
3856 *) Bugfix: in SSI handling.
3859 Changes with nginx 0.3.18 26 Dec 2005
3861 *) Feature: the "server_names" directive supports the ".domain.tld"
3864 *) Feature: the "server_names" directive uses the hash for the
3865 "*.domain.tld" names and more effective hash for usual names.
3867 *) Change: the "server_names_hash_max_size" and
3868 "server_names_hash_bucket_size" directives.
3870 *) Change: the "server_names_hash" and "server_names_hash_threshold"
3871 directives were canceled.
3873 *) Feature: the "valid_referers" directive uses the hash site names.
3875 *) Change: now the "valid_referers" directive checks the site names
3876 only without the URI part.
3878 *) Bugfix: some ".domain.tld" names incorrectly processed by the
3879 ngx_http_map_module.
3881 *) Bugfix: segmentation fault was occurred if configuration file did
3882 not exist; the bug had appeared in 0.3.12.
3884 *) Bugfix: on 64-bit platforms segmentation fault may occurred on
3885 start; the bug had appeared in 0.3.16.
3888 Changes with nginx 0.3.17 18 Dec 2005
3890 *) Change: now on Linux configure checks the presence of epoll and
3891 sendfile64() in kernel.
3893 *) Feature: the "map" directive supports domain names in the
3896 *) Bugfix: the timeouts were not used in SSL handshake; the bug had
3899 *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.
3901 *) Bugfix: when the HTTPS protocol was used in the "proxy_pass"
3902 directive the port 80 was used by default.
3905 Changes with nginx 0.3.16 16 Dec 2005
3907 *) Feature: the ngx_http_map_module.
3909 *) Feature: the "types_hash_max_size" and "types_hash_bucket_size"
3912 *) Feature: the "ssi_value_length" directive.
3914 *) Feature: the "worker_rlimit_core" directive.
3916 *) Workaround: the connection number in logs was always 1 if nginx was
3917 built by the icc 8.1 or 9.0 compilers with optimization for
3920 *) Bugfix: the "config timefmt" SSI command set incorrect time format.
3922 *) Bugfix: nginx did not close connection to IMAP/POP3 backend for the
3923 SSL connections; the bug had appeared in 0.3.13.
3924 Thanks to Rob Mueller.
3926 *) Bugfix: segmentation fault may occurred in at SSL shutdown; the bug
3927 had appeared in 0.3.13.
3930 Changes with nginx 0.3.15 07 Dec 2005
3932 *) Feature: the new 444 code of the "return" directive to close
3935 *) Feature: the "so_keepalive" directive in IMAP/POP3 proxy.
3937 *) Bugfix: if there are unclosed connection nginx now calls abort()
3938 only on gracefull quit and active "debug_points" directive.
3941 Changes with nginx 0.3.14 05 Dec 2005
3943 *) Bugfix: in the 304 response the body was transferred; the bug had
3947 Changes with nginx 0.3.13 05 Dec 2005
3949 *) Feature: the IMAP/POP3 proxy supports STARTTLS and STLS.
3951 *) Bugfix: the IMAP/POP3 proxy did not work with the select, poll, and
3954 *) Bugfix: in SSI handling.
3956 *) Bugfix: now Solaris sendfilev() is not used to transfer the client
3957 request body to FastCGI-server via the unix domain socket.
3959 *) Bugfix: the "auth_basic" directive did not disable the
3960 authorization; the bug had appeared in 0.3.11.
3963 Changes with nginx 0.3.12 26 Nov 2005
3965 *) Security: if nginx was built with the ngx_http_realip_module and the
3966 "satisfy_any on" directive was used, then access and authorization
3967 directives did not work. The ngx_http_realip_module was not built
3968 and is not built by default.
3970 *) Change: the "$time_gmt" variable name was changed to "$time_local".
3972 *) Change: the "proxy_header_buffer_size" and
3973 "fastcgi_header_buffer_size" directives was renamed to the
3974 "proxy_buffer_size" and "fastcgi_buffer_size" directives.
3976 *) Feature: the ngx_http_memcached_module.
3978 *) Feature: the "proxy_buffering" directive.
3980 *) Bugfix: the changes in accept mutex handling when the "rtsig" method
3981 was used; the bug had appeared in 0.3.0.
3983 *) Bugfix: if the client sent the "Transfer-Encoding: chunked" header
3984 line, then nginx returns the 411 error.
3986 *) Bugfix: if the "auth_basic" directive was inherited from the http
3987 level, then the realm in the "WWW-Authenticate" header line was
3988 without the "Basic realm" text.
3990 *) Bugfix: if the "combined" format was explicitly specified in the
3991 "access_log" directive, then the empty lines was written to the log;
3992 the bug had appeared in 0.3.8.
3994 *) Bugfix: nginx did not run on the sparc platform under any OS except
3997 *) Bugfix: now it is not necessary to place space between the quoted
3998 string and closing bracket in the "if" directive.
4001 Changes with nginx 0.3.11 15 Nov 2005
4003 *) Bugfix: nginx did not pass the client request headers and body while
4004 proxying; the bug had appeared in 0.3.10.
4007 Changes with nginx 0.3.10 15 Nov 2005
4009 *) Change: the "valid_referers" directive and the "$invalid_referer"
4010 variable were moved to the new ngx_http_referer_module from the
4011 ngx_http_rewrite_module.
4013 *) Change: the "$apache_bytes_sent" variable name was changed to
4016 *) Feature: the "$sent_http_..." variables.
4018 *) Feature: the "if" directive supports the "=" and "!=" operations.
4020 *) Feature: the "proxy_pass" directive supports the HTTPS protocol.
4022 *) Feature: the "proxy_set_body" directive.
4024 *) Feature: the "post_action" directive.
4026 *) Feature: the ngx_http_empty_gif_module.
4028 *) Feature: the "worker_cpu_affinity" directive for Linux.
4030 *) Bugfix: the "rewrite" directive did not unescape URI part in
4031 redirect, now it is unescaped except the %00-%25 and %7F-%FF
4034 *) Bugfix: nginx could not be built by the icc 9.0 compiler.
4036 *) Bugfix: if the SSI was enabled for zero size static file, then the
4037 chunked response was encoded incorrectly.
4040 Changes with nginx 0.3.9 10 Nov 2005
4042 *) Bugfix: nginx considered URI as unsafe if two any symbols was
4043 between two slashes; the bug had appeared in 0.3.8.
4046 Changes with nginx 0.3.8 09 Nov 2005
4048 *) Security: nginx now checks URI got from a backend in
4049 "X-Accel-Redirect" header line or in SSI file for the "/../" paths
4052 *) Change: nginx now does not treat the empty user name in the
4053 "Authorization" header line as valid one.
4055 *) Feature: the "ssl_session_timeout" directives of the
4056 ngx_http_ssl_module and ngx_imap_ssl_module.
4058 *) Feature: the "auth_http_header" directive of the
4059 ngx_imap_auth_http_module.
4061 *) Feature: the "add_header" directive.
4063 *) Feature: the ngx_http_realip_module.
4065 *) Feature: the new variables to use in the "log_format" directive:
4066 $bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri,
4067 $request_time, $request_length, $upstream_status,
4068 $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
4069 $connection, $pipe, and $msec. The parameters in the "%name" form
4070 will be canceled soon.
4072 *) Change: now the false variable values in the "if" directive are the
4073 empty string "" and string starting with "0".
4075 *) Bugfix: while using proxied or FastCGI-server nginx may leave
4076 connections and temporary files with client requests in open state.
4078 *) Bugfix: the worker processes did not flush the buffered logs on
4081 *) Bugfix: if the request URI was changes by the "rewrite" directive
4082 and the request was proxied in location given by regular expression,
4083 then the incorrect request was transferred to backend; the bug had
4086 *) Bugfix: the "expires" directive did not remove the previous
4089 *) Bugfix: nginx may stop to accept requests if the "rtsig" method and
4090 several worker processes were used.
4092 *) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in
4095 *) Bugfix: if the response was ended just after the SSI command and
4096 gzipping was used, then the response did not transferred complete or
4097 did not transferred at all.
4100 Changes with nginx 0.3.7 27 Oct 2005
4102 *) Feature: the "access_log" supports the "buffer=" parameter.
4104 *) Bugfix: nginx could not be built on platforms different from i386,
4105 amd64, sparc, and ppc; the bug had appeared in 0.3.2.
4108 Changes with nginx 0.3.6 24 Oct 2005
4110 *) Change: now the IMAP/POP3 proxy do not send the empty login to
4111 authorization server.
4113 *) Feature: the "log_format" supports the variables in the $name form.
4115 *) Bugfix: if at least in one server was no the "listen" directive,
4116 then nginx did not listen on the 80 port; the bug had appeared in
4119 *) Bugfix: if the URI part is omitted in "proxy_pass" directive, the
4120 the 80 port was always used.
4123 Changes with nginx 0.3.5 21 Oct 2005
4125 *) Bugfix: the segmentation fault may occurred if the IMAP/POP3 login
4126 was changed by authorization server; the bug had appeared in 0.2.2.
4128 *) Bugfix: the accept mutex did not work and all connections were
4129 handled by one process; the bug had appeared in 0.3.3.
4131 *) Bugfix: the timeout did not work if the "rtsig" method and the
4132 "timer_resolution" directive were used.
4135 Changes with nginx 0.3.4 19 Oct 2005
4137 *) Bugfix: nginx could not be built on Linux 2.4+ and MacOS X; the bug
4138 had appeared in 0.3.3.
4141 Changes with nginx 0.3.3 19 Oct 2005
4143 *) Change: the "bl" and "af" parameters of the "listen" directive was
4144 renamed to the "backlog" and "accept_filter".
4146 *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen"
4149 *) Change: the "$msec" log parameter does not require now the
4150 additional the gettimeofday() system call.
4152 *) Feature: the -t switch now tests the "listen" directives.
4154 *) Bugfix: if the invalid address was specified in the "listen"
4155 directive, then after the -HUP signal nginx left an open socket in
4158 *) Bugfix: the mime type may be incorrectly set to default value for
4159 index file with variable in the name; the bug had appeared in 0.3.0.
4161 *) Feature: the "timer_resolution" directive.
4163 *) Feature: the millisecond "$upstream_response_time" log parameter.
4165 *) Bugfix: a temporary file with client request body now is removed
4166 just after the response header was transferred to a client.
4168 *) Bugfix: OpenSSL 0.9.6 compatibility.
4170 *) Bugfix: the SSL certificate and key file paths could not be relative.
4172 *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in
4173 the ngx_imap_ssl_module.
4175 *) Bugfix: the "ssl_protocols" directive allowed to specify the single
4179 Changes with nginx 0.3.2 12 Oct 2005
4181 *) Feature: the Sun Studio 10 C compiler support.
4183 *) Feature: the "proxy_upstream_max_fails",
4184 "proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails", and
4185 "fastcgi_upstream_fail_timeout" directives.
4188 Changes with nginx 0.3.1 10 Oct 2005
4190 *) Bugfix: the segmentation fault occurred when the signal queue
4191 overflowed if the "rtsig" method was used; the bug had appeared in
4194 *) Change: correct handling of the "\\", "\"", "\'", and "\$" pairs in
4198 Changes with nginx 0.3.0 07 Oct 2005
4200 *) Change: the 10-days live time limit of worker process was
4201 eliminated. The limit was introduced because of millisecond timers
4205 Changes with nginx 0.2.6 05 Oct 2005
4207 *) Change: while using load-balancing the time before the failed
4208 backend retry was decreased from 60 to 10 seconds.
4210 *) Change: the "proxy_pass_unparsed_uri" was canceled, the original URI
4211 now passed, if the URI part is omitted in "proxy_pass" directive.
4213 *) Feature: the "error_page" directive supports redirects and allows
4214 more flexible to change an error code.
4216 *) Change: the charset in the "Content-Type" header line now is ignored
4217 in proxied subrequests.
4219 *) Bugfix: if the URI was changed in the "if" block and request did not
4220 found new configuration, then the ngx_http_rewrite_module rules ran
4223 *) Bugfix: if the "set" directive set the ngx_http_geo_module variable
4224 in some configuration part, the this variable was not available in
4225 other configuration parts and the "using uninitialized variable"
4226 error was occurred; the bug had appeared in 0.2.2.
4229 Changes with nginx 0.2.5 04 Oct 2005
4231 *) Change: the duplicate value of the ngx_http_geo_module variable now
4232 causes the warning and changes old value.
4234 *) Feature: the ngx_http_ssi_module supports the "set" command.
4236 *) Feature: the ngx_http_ssi_module supports the "file" parameter in
4237 the "include" command.
4239 *) Feature: the ngx_http_ssi_module supports the variable value
4240 substitutions in expressions of the "if" command.
4243 Changes with nginx 0.2.4 03 Oct 2005
4245 *) Feature: the ngx_http_ssi_module supports "$var=text", "$var!=text",
4246 "$var=/text/", and "$var!=/text/" expressions in the "if" command.
4248 *) Bugfix: in proxying location without trailing slash; the bug had
4251 *) Bugfix: the segmentation fault may occurred if the "rtsig" method
4252 was used; the bug had appeared in 0.2.0.
4255 Changes with nginx 0.2.3 30 Sep 2005
4257 *) Bugfix: nginx could not be built without the --with-debug option;
4258 the bug had appeared in 0.2.2.
4261 Changes with nginx 0.2.2 30 Sep 2005
4263 *) Feature: the "config errmsg" command of the ngx_http_ssi_module.
4265 *) Change: the ngx_http_geo_module variables can be overridden by the
4268 *) Feature: the "ssl_protocols" and "ssl_prefer_server_ciphers"
4269 directives of the ngx_http_ssl_module and ngx_imap_ssl_module.
4271 *) Bugfix: the ngx_http_autoindex_module did not show correctly the
4274 *) Bugfix: the ngx_http_autoindex_module now do not show the files
4277 *) Bugfix: if the SSL handshake failed then another connection may be
4279 Thanks to Rob Mueller.
4281 *) Bugfix: the export versions of MSIE 5.x could not connect via HTTPS.
4284 Changes with nginx 0.2.1 23 Sep 2005
4286 *) Bugfix: if all backend using in load-balancing failed after one
4287 error, then nginx may got caught in an endless loop; the bug had
4291 Changes with nginx 0.2.0 23 Sep 2005
4293 *) The pid-file names used during online upgrade was changed and now is
4294 not required a manual rename operation. The old master process adds
4295 the ".oldbin" suffix to its pid-file and executes a new binary file.
4296 The new master process creates usual pid-file without the ".newbin"
4297 suffix. If the master process exits, then old master process renames
4298 back its pid-file with the ".oldbin" suffix to the pid-file without
4301 *) Change: the "worker_connections" directive, new name of the
4302 "connections" directive; now the directive specifies maximum number
4303 of connections, but not maximum socket descriptor number.
4305 *) Feature: SSL supports the session cache inside one worker process.
4307 *) Feature: the "satisfy_any" directive.
4309 *) Change: the ngx_http_access_module and ngx_http_auth_basic_module do
4310 not run for subrequests.
4312 *) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending"
4315 *) Bugfix: if all backend using in load-balancing failed after one
4316 error, then nginx did not try do connect to them during 60 seconds.
4318 *) Bugfix: in IMAP/POP3 command argument parsing.
4319 Thanks to Rob Mueller.
4321 *) Bugfix: errors while using SSL in IMAP/POP3 proxy.
4323 *) Bugfix: errors while using SSI and gzipping.
4325 *) Bugfix: the "Expires" and "Cache-Control" header lines were omitted
4326 from the 304 responses.
4327 Thanks to Alexandr Kukushkin.
4330 Changes with nginx 0.1.45 08 Sep 2005
4332 *) Change: the "ssl_engine" directive was canceled in the
4333 ngx_http_ssl_module and now is introduced at global level.
4335 *) Bugfix: the responses with SSI subrequests did not transferred via
4338 *) Various bug fixes in the IMAP/POP3 proxy.
4341 Changes with nginx 0.1.44 06 Sep 2005
4343 *) Feature: the IMAP/POP3 proxy supports SSL.
4345 *) Feature: the "proxy_timeout" directive of the ngx_imap_proxy_module.
4347 *) Feature: the "userid_mark" directive.
4349 *) Feature: the $remote_user variable value is determined independently
4350 of authorization use.
4353 Changes with nginx 0.1.43 30 Aug 2005
4355 *) Feature: the listen(2) backlog in the "listen" directive can be
4356 changed using the -HUP signal.
4358 *) Feature: the geo2nginx.pl script was added to contrib.
4360 *) Change: the FastCGI parameters with the empty values now are passed
4363 *) Bugfix: the segmentation fault occurred or the worker process may
4364 got caught in an endless loop if the proxied or FastCGI server sent
4365 the "Cache-Control" header line and the "expires" directive was
4366 used; in the proxied mode the the bug had appeared in 0.1.29.
4369 Changes with nginx 0.1.42 23 Aug 2005
4371 *) Bugfix: if the request URI had a zero length after the processing in
4372 the ngx_http_proxy_module, then the segmentation fault or bus error
4373 occurred in the ngx_http_proxy_module.
4375 *) Bugfix: the "limit_rate" directive did not work inside the "if"
4376 block; the bug had appeared in 0.1.38.
4379 Changes with nginx 0.1.41 25 Jul 2005
4381 *) Bugfix: if the variable was used in the configuration file, then it
4382 can not be used in SSI.
4385 Changes with nginx 0.1.40 22 Jul 2005
4387 *) Bugfix: if a client sent too long header line, then the request
4388 information did not logged in the error log.
4390 *) Bugfix: the "Set-Cookie" header line was not transferred when the
4391 "X-Accel-Redirect" was used; the bug had appeared in 0.1.39.
4393 *) Bugfix: the "Content-Disposition" header line was not transferred
4394 when the "X-Accel-Redirect" was used.
4396 *) Bugfix: the master process did not close the listen socket on the
4399 *) Bugfix: after on-line upgrade on Linux and Solaris the process name
4400 became shorter in the "ps" command.
4403 Changes with nginx 0.1.39 14 Jul 2005
4405 *) The changes in the ngx_http_charset_module: the "default_charset"
4406 directive was canceled; the "charset" directive sets the response
4407 charset; the "source_charset" directive sets the source charset only.
4409 *) Bugfix: the backend "WWW-Authenticate" header line did not
4410 transferred while the 401 response code redirecting.
4412 *) Bugfix: the ngx_http_proxy_module and ngx_http_fastcgi_module may
4413 close a connection before anything was transferred to a client; the
4414 bug had appeared in 0.1.38.
4416 *) Workaround: the Linux glibc crypt_r() initialization bug.
4418 *) Bugfix: the ngx_http_ssi_module did not support the relative URI in
4419 the "include virtual" command.
4421 *) Bugfix: if the backend response had the "Location" header line and
4422 nginx should not rewrite this line, then the 500 code response body
4423 was transferred; the bug had appeared in 0.1.29.
4425 *) Bugfix: some directives of the ngx_http_proxy_module and
4426 ngx_http_fastcgi_module were not inherited from the server to the
4427 location level; the bug had appeared in 0.1.29.
4429 *) Bugfix: the ngx_http_ssl_module did not support the certificate
4432 *) Bugfix: the ngx_http_autoindex_module did not show correctly the
4433 long file names; the bug had appeared in 0.1.38.
4435 *) Bugfixes in IMAP/POP3 proxy in interaction with a backend at the
4439 Changes with nginx 0.1.38 08 Jul 2005
4441 *) Feature: the "limit_rate" directive is supported in in proxy and
4444 *) Feature: the "X-Accel-Limit-Rate" response header line is supported
4445 in proxy and FastCGI mode.
4447 *) Feature: the "break" directive.
4449 *) Feature: the "log_not_found" directive.
4451 *) Bugfix: the response status code was not changed when request was
4452 redirected by the ""X-Accel-Redirect" header line.
4454 *) Bugfix: the variables set by the "set" directive could not be used
4457 *) Bugfix: the segmentation fault may occurred if the SSI page has more
4458 than one remote subrequest.
4460 *) Bugfix: nginx treated the backend response as invalid if the status
4461 line in the header was transferred in two packets; the bug had
4464 *) Feature: the "ssi_types" directive.
4466 *) Feature: the "autoindex_exact_size" directive.
4468 *) Bugfix: the ngx_http_autoindex_module did not support the long file
4471 *) Feature: the IMAP/POP3 proxy.
4474 Changes with nginx 0.1.37 23 Jun 2005
4476 *) Change: now the "\n" is added to the end of the "nginx.pid" file.
4478 *) Bugfix: the responses may be transferred not completely, if many
4479 parts or the big parts were included by SSI.
4481 *) Bugfix: if all backends had returned the 404 reponse and the
4482 "http_404" parameter of the "proxy_next_upstream" or
4483 "fastcgi_next_upstream" directives was used, then nginx started to
4484 request all backends again.
4487 Changes with nginx 0.1.36 15 Jun 2005
4489 *) Change: if the request header has duplicate the "Host",
4490 "Connection", "Content-Length", or "Authorization" lines, then nginx
4491 now returns the 400 error.
4493 *) Change: the "post_accept_timeout" directive was canceled.
4495 *) Feature: the "default", "af=", "bl=", "deferred", and "bind"
4496 parameters of the "listen" directive.
4498 *) Feature: the FreeBSD accept filters support.
4500 *) Feature: the Linux TCP_DEFER_ACCEPT support.
4502 *) Bugfix: the ngx_http_autoindex_module did not support the file names
4505 *) Bugfix: the new log file can be rotated by the -USR1 signal only if
4506 the reconfiguration by the -HUP signal was made twice.
4509 Changes with nginx 0.1.35 07 Jun 2005
4511 *) Feature: the "working_directory" directive.
4513 *) Feature: the "port_in_redirect" directive.
4515 *) Bugfix: the segmentation fault was occurred if the backend response
4516 header was in several packets; the bug had appeared in 0.1.29.
4518 *) Bugfix: if more than 10 servers were configured or some server did
4519 not use the "listen" directive, then the segmentation fault was
4520 occurred on the start.
4522 *) Bugfix: the segmentation fault might occur if the response was
4523 bigger than the temporary file.
4525 *) Bugfix: nginx returned the 400 response on requests like
4526 "GET http://www.domain.com/uri HTTP/1.0"; the bug had appeared in
4530 Changes with nginx 0.1.34 26 May 2005
4532 *) Bugfix: the worker process may got caught in an endless loop if the
4533 big response part were include by SSI.
4535 *) Bugfix: the variables set by the "set" directive were not available
4538 *) Feature: the "autoindex_localtime" directive.
4540 *) Bugfix: the empty value of the "proxy_set_header" directive forbids
4541 the client request header line passing.
4544 Changes with nginx 0.1.33 23 May 2005
4546 *) Bugfix: nginx could not be built with the --without-pcre parameter;
4547 the bug had appeared in 0.1.29.
4549 *) Bugfix: 3, 4, 7, and 8 the "proxy_set_header" directives in one
4550 level cause the bus fault on start up.
4552 *) Bugfix: the HTTP protocol was specified in the HTTPS redirects.
4554 *) Bugfix: if the "rewrite" directive used the captures inside the "if"
4555 directive, then the 500 error code was returned.
4558 Changes with nginx 0.1.32 19 May 2005
4560 *) Bugfix: the arguments were omitted in the redirects, issued by the
4561 "rewrite" directive; the bug had appeared in 0.1.29.
4563 *) Feature: the "if" directive supports the captures in regular
4566 *) Feature: the "set" directive supports the variables and the captures
4567 of regular expressions.
4569 *) Feature: the "X-Accel-Redirect" response header line is supported in
4570 proxy and FastCGI mode.
4573 Changes with nginx 0.1.31 16 May 2005
4575 *) Bugfix: the response encrypted by SSL may not transferred complete.
4577 *) Bugfix: errors while processing FastCGI response by SSI.
4579 *) Bugfix: errors while using SSI and gzipping.
4581 *) Bugfix: the redirect with the 301 code was transferred without
4582 response body; the bug had appeared in 0.1.30.
4585 Changes with nginx 0.1.30 14 May 2005
4587 *) Bugfix: the worker process may got caught in an endless loop if the
4590 *) Bugfix: the response encrypted by SSL may not transferred complete.
4592 *) Bugfix: if the length of the response part received at once from
4593 proxied or FastCGI server was equal to 500, then nginx returns the
4594 500 response code; in proxy mode the the bug had appeared in 0.1.29
4597 *) Bugfix: nginx did not consider the directives with 8 or 9 parameters
4600 *) Feature: the "return" directive can return the 204 response code.
4602 *) Feature: the "ignore_invalid_headers" directive.
4605 Changes with nginx 0.1.29 12 May 2005
4607 *) Feature: the ngx_http_ssi_module supports "include virtual" command.
4609 *) Feature: the ngx_http_ssi_module supports the condition command like
4610 'if expr="$NAME"' and "else" and "endif" commands. Only one nested
4613 *) Feature: the ngx_http_ssi_module supports the DATE_LOCAL and
4614 DATE_GMT variables and "config timefmt" command.
4616 *) Feature: the "ssi_ignore_recycled_buffers" directive.
4618 *) Bugfix: the "echo" command did not show the default value for the
4619 empty QUERY_STRING variable.
4621 *) Change: the ngx_http_proxy_module was rewritten.
4623 *) Feature: the "proxy_redirect", "proxy_pass_request_headers",
4624 "proxy_pass_request_body", and "proxy_method" directives.
4626 *) Feature: the "proxy_set_header" directive. The "proxy_x_var" was
4627 canceled and must be replaced with the proxy_set_header directive.
4629 *) Change: the "proxy_preserve_host" is canceled and must be replaced
4630 with the "proxy_set_header Host $host" and the "proxy_redirect off"
4631 directives, the "proxy_set_header Host $host:$proxy_port" directive
4632 and the appropriate proxy_redirect directives.
4634 *) Change: the "proxy_set_x_real_ip" is canceled and must be replaced
4635 with the "proxy_set_header X-Real-IP $remote_addr" directive.
4637 *) Change: the "proxy_add_x_forwarded_for" is canceled and must be
4639 the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for"
4642 *) Change: the "proxy_set_x_url" is canceled and must be replaced with
4643 the "proxy_set_header X-URL http://$host:$server_port$request_uri"
4646 *) Feature: the "fastcgi_param" directive.
4648 *) Change: the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params"
4649 directive are canceled and must be replaced with the fastcgi_param
4652 *) Feature: the "index" directive can use the variables.
4654 *) Feature: the "index" directive can be used at http and server levels.
4656 *) Change: the last index only in the "index" directive can be absolute.
4658 *) Feature: the "rewrite" directive can use the variables.
4660 *) Feature: the "internal" directive.
4662 *) Feature: the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
4663 SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
4664 REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables.
4666 *) Change: nginx now passes the invalid lines in a client request
4667 headers or a backend response header.
4669 *) Bugfix: if the backend did not transfer response for a long time and
4670 the "send_timeout" was less than "proxy_read_timeout", then nginx
4671 returned the 408 response.
4673 *) Bugfix: the segmentation fault was occurred if the backend sent an
4674 invalid line in response header; the bug had appeared in 0.1.26.
4676 *) Bugfix: the segmentation fault may occurred in FastCGI fault
4677 tolerance configuration.
4679 *) Bugfix: the "expires" directive did not remove the previous
4680 "Expires" and "Cache-Control" headers.
4682 *) Bugfix: nginx did not take into account trailing dot in "Host"
4685 *) Bugfix: the ngx_http_auth_module did not work under Linux.
4687 *) Bugfix: the rewrite directive worked incorrectly, if the arguments
4690 *) Bugfix: nginx could not be built on MacOS X.
4693 Changes with nginx 0.1.28 08 Apr 2005
4695 *) Bugfix: nginx hogs CPU while proxying the huge files.
4697 *) Bugfix: nginx could not be built by gcc 4.0 on Linux.
4700 Changes with nginx 0.1.27 28 Mar 2005
4702 *) Feature: the "blocked" parameter of the "valid_referers" directive.
4704 *) Change: the errors while handling the request header now logged at
4705 "info" level. The server name and the "Host" and "Referer" header
4708 *) Change: the "Host" header line is also logged in error log.
4710 *) Feature: the proxy_pass_unparsed_uri directive. The special handling
4711 of the "://" symbols in URI, appeared in 0.1.11 version, now is
4714 *) Bugfix: nginx could not be built on FreeBSD and Linux, if the
4715 --without-ngx_http_auth_basic_module configuration parameter was
4719 Changes with nginx 0.1.26 22 Mar 2005
4721 *) Change: the invalid client header lines are now ignored and logged
4724 *) Change: the server name is also logged in error log.
4726 *) Feature: the ngx_http_auth_basic_module module and the auth_basic
4727 and auth_basic_user_file directives.
4730 Changes with nginx 0.1.25 19 Mar 2005
4732 *) Bugfix: nginx did run on Linux parisc.
4734 *) Feature: nginx now does not start under FreeBSD if the sysctl
4735 kern.ipc.somaxconn value is too big.
4737 *) Bugfix: if a request was internally redirected by the
4738 ngx_http_index_module module to the ngx_http_proxy_module or
4739 ngx_http_fastcgi_module modules, then the index file was not closed
4740 after request completion.
4742 *) Feature: the "proxy_pass" can be used in location with regular
4745 *) Feature: the ngx_http_rewrite_filter_module module supports the
4746 condition like "if ($HTTP_USER_AGENT ~ MSIE)".
4748 *) Bugfix: nginx started too slow if the large number of addresses and
4749 text values were used in the "geo" directive.
4751 *) Change: a variable name must be declared as "$name" in the "geo"
4752 directive. The previous variant without "$" is still supported, but
4753 will be removed soon.
4755 *) Feature: the "%{VARIABLE}v" logging parameter.
4757 *) Feature: the "set $name value" directive.
4759 *) Bugfix: gcc 4.0 compatibility.
4761 *) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
4764 Changes with nginx 0.1.24 04 Mar 2005
4766 *) Feature: the ngx_http_ssi_filter_module supports the QUERY_STRING
4767 and DOCUMENT_URI variables.
4769 *) Bugfix: the ngx_http_autoindex_module may some times return the 404
4770 response for existent directory, if this directory was used in
4773 *) Bugfix: the ngx_http_ssi_filter_module ran incorrectly for large
4776 *) Bugfix: the lack of the "Referer" header line was always accounted
4780 Changes with nginx 0.1.23 01 Mar 2005
4782 *) Feature: the ngx_http_ssi_filter_module and the ssi,
4783 ssi_silent_errors, and ssi_min_file_chunk directives. The 'echo
4784 var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands are
4787 *) Feature: the %request_time log parameter.
4789 *) Feature: if the request has no the "Host" header line, then the
4790 "proxy_preserve_host" directive set this header line to the first
4791 server name of the "server_name" directive.
4793 *) Bugfix: nginx could not be built on platforms different from i386,
4794 amd64, sparc, and ppc; the bug had appeared in 0.1.22.
4796 *) Bugfix: the ngx_http_autoindex_module now shows the information not
4797 about the symlink, but about file or directory it points to.
4799 *) Bugfix: the %apache_length parameter logged the negative length of
4800 the response header if the no response was transferred to a client.
4803 Changes with nginx 0.1.22 22 Feb 2005
4805 *) Bugfix: the ngx_http_stub_status_module showed incorrect handled
4806 connections statistics if the proxying or FastCGI server were used.
4808 *) Bugfix: the installation paths were incorrectly quoted on Linux and
4809 Solaris; the bug had appeared in 0.1.21.
4812 Changes with nginx 0.1.21 22 Feb 2005
4814 *) Bugfix: the ngx_http_stub_status_module showed incorrect statistics
4815 if "rtsig" method was used or if several worker process ran on SMP.
4817 *) Bugfix: nginx could not be built by the icc compiler on Linux or if
4818 the zlib-1.2.x library was building from sources.
4820 *) Bugfix: nginx could not be built on NetBSD 2.0.
4823 Changes with nginx 0.1.20 17 Feb 2005
4825 *) Feature: the new "script_filename" and "remote_port" parameters of
4826 the fastcgi_params directive.
4828 *) Bugfix: the FastCGI stderr stream was handled incorrectly.
4831 Changes with nginx 0.1.19 16 Feb 2005
4833 *) Bugfix: now, if request contains the zero, then the 404 error is
4834 returned for the local requests.
4836 *) Bugfix: nginx could not be built on NetBSD 2.0.
4838 *) Bugfix: the timeout may occur while reading of the the client
4839 request body via SSL connections.
4842 Changes with nginx 0.1.18 09 Feb 2005
4844 *) Workaround: the default values of the devpoll_events and the
4845 devpoll_changes directives changed from 512 to 32 to be compatible
4848 *) Bugfix: the proxy_set_x_var and fastcgi_set_var directives were not
4851 *) Bugfix: in a redirect rewrite directive arguments were concatenated
4852 with URI by an "&" rather than a "?".
4854 *) Bugfix: the lines without trailing ";" in the file being included by
4855 the ngx_http_geo_module were silently ignored.
4857 *) Feature: the ngx_http_stub_status_module.
4859 *) Bugfix: the unknown log format in the access_log directive caused
4860 the segmentation fault.
4862 *) Feature: the new "document_root" parameter of the fastcgi_params
4865 *) Feature: the fastcgi_redirect_errors directive.
4867 *) Feature: the new "break" modifier of the "rewrite" directive allows
4868 to stop the rewrite/location cycle and sets the current
4869 configuration to the request.
4872 Changes with nginx 0.1.17 03 Feb 2005
4874 *) Change: the ngx_http_rewrite_module was rewritten from the scratch.
4875 Now it is possible to redirect, to return the error codes, to check
4876 the variables and referrers. The directives can be used inside
4877 locations. The redirect directive was canceled.
4879 *) Feature: the ngx_http_geo_module.
4881 *) Feature: the proxy_set_x_var and fastcgi_set_var directives.
4883 *) Bugfix: the location configuration with "=" modifier may be used in
4886 *) Bugfix: the correct content type was set only for requests that use
4887 small caps letters in extension.
4889 *) Bugfix: if the proxy_pass or fastcgi_pass directives were set in the
4890 location, and access was denied, and the error was redirected to a
4891 static page, then the segmentation fault occurred.
4893 *) Bugfix: if in a proxied "Location" header was a relative URL, then a
4894 host name and a slash were added to them; the bug had appeared in
4897 *) Bugfix: the system error message was not logged on Linux.
4900 Changes with nginx 0.1.16 25 Jan 2005
4902 *) Bugfix: if the response were transferred by chunks, then on the HEAD
4903 request the final chunk was issued.
4905 *) Bugfix: the "Connection: keep-alive" header were issued, even if the
4906 keepalive_timeout directive forbade the keep-alive use.
4908 *) Bugfix: the errors in the ngx_http_fastcgi_module caused the
4909 segmentation faults.
4911 *) Bugfix: the compressed response encrypted by SSL may not transferred
4914 *) Bugfix: the TCP-specific TCP_NODELAY, TCP_NOPSUH, and TCP_CORK
4915 options, are not used for the unix domain sockets.
4917 *) Feature: the rewrite directive supports the arguments rewriting.
4919 *) Bugfix: the response code 400 was returned for the POST request with
4920 the "Content-Length: 0" header; the bug had appeared in 0.1.14.
4923 Changes with nginx 0.1.15 19 Jan 2005
4925 *) Bugfix: the error while the connecting to the FastCGI server caused
4928 *) Bugfix: the correct handling of the regular expression, that has
4929 different number of the captures and substitutions.
4931 *) Feature: the location, that is passed to the FastCGI server, can be
4934 *) Bugfix: the FastCGI's parameter REQUEST_URI is now passed with the
4935 arguments and in the original state.
4937 *) Bugfix: the ngx_http_rewrite_module module was required to be built
4938 to use the regular expressions in locations.
4940 *) Bugfix: the directive "proxy_preserve_host on" adds port 80 to the
4941 "Host" headers, if upstream listen on port 80; the bug had appeared
4944 *) Bugfix: the same paths in autoconfiguration parameters
4945 --http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH,
4946 or --http-client-body-temp-path=PATH and
4947 --http-fastcgi-temp-path=PATH caused segmentation fault.
4950 Changes with nginx 0.1.14 18 Jan 2005
4952 *) Feature: the autoconfiguration directives:
4953 --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and
4954 --http-fastcgi-temp-path=PATH
4956 *) Change: the directory name for the temporary files with the client
4957 request body is specified by directive client_body_temp_path, by
4958 default it is <prefix>/client_body_temp.
4960 *) Feature: the ngx_http_fastcgi_module and the directives:
4961 fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params,
4962 fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout,
4963 fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers,
4964 fastcgi_busy_buffers_size, fastcgi_temp_path,
4965 fastcgi_max_temp_file_size, fastcgi_temp_file_write_size,
4966 fastcgi_next_upstream, and fastcgi_x_powered_by.
4968 *) Bugfix: the "[alert] zero size buf" error; the bug had appeared in
4971 *) Change: the URI must be specified after the host name in the
4972 proxy_pass directive.
4974 *) Change: the %3F symbol in the URI was considered as the argument
4977 *) Feature: the unix domain sockets support in the
4978 ngx_http_proxy_module.
4980 *) Feature: the ssl_engine and ssl_ciphers directives.
4981 Thanks to Sergey Skvortsov for SSL-accelerator.
4984 Changes with nginx 0.1.13 21 Dec 2004
4986 *) Feature: the server_names_hash and server_names_hash_threshold
4989 *) Bugfix: the *.domain.tld names in the "server_name" directive did
4992 *) Bugfix: the %request_length log parameter logged the incorrect
4996 Changes with nginx 0.1.12 06 Dec 2004
4998 *) Feature: the %request_length log parameter.
5000 *) Bugfix: when using the /dev/poll, select and poll on the platforms,
5001 where these methods may do the false reports, there may be the long
5002 delay when the request was passed via the keep-alive connection. It
5003 may be at least on Solaris when using the /dev/poll.
5005 *) Bugfix: the send_lowat directive is ignored on Linux because Linux
5006 does not support the SO_SNDLOWAT option.
5009 Changes with nginx 0.1.11 02 Dec 2004
5011 *) Feature: the worker_priority directive.
5013 *) Change: both tcp_nopush and tcp_nodelay directives affect the
5014 transferred response.
5016 *) Bugfix: nginx did not call initgroups().
5017 Thanks to Andrew Sitnikov and Andrei Nigmatulin.
5019 *) Change: now the ngx_http_autoindex_module shows the file size in the
5022 *) Bugfix: the ngx_http_autoindex_module returned the 500 error if the
5023 broken symlink was in a directory.
5025 *) Bugfix: the files bigger than 4G could not be transferred using
5028 *) Bugfix: if the backend was resolved to several backends and there
5029 was an error while the response waiting then process may got caught
5032 *) Bugfix: the worker process may exit with the "unknown cycle" message
5033 when the /dev/poll method was used.
5035 *) Bugfix: "close() channel failed" errors.
5037 *) Bugfix: the autodetection of the "nobody" and "nogroup" groups.
5039 *) Bugfix: the send_lowat directive did not work on Linux.
5041 *) Bugfix: the segmentation fault occurred if there was no events
5042 section in configuration.
5044 *) Bugfix: nginx could not be built on OpenBSD.
5046 *) Bugfix: the double slashes in "://" in the URI were converted to
5050 Changes with nginx 0.1.10 26 Nov 2004
5052 *) Bugfix: if the request without arguments contains "//", "/./",
5053 "/../" or "%XX" then the lost character in the request line was
5054 lost; the bug had appeared in 0.1.9.
5056 *) Bugfix: the fix in 0.1.9 for the files bigger than 2G on Linux did
5060 Changes with nginx 0.1.9 25 Nov 2004
5062 *) Bugfix: the proxied request was sent without arguments if the
5063 request contains "//", "/./", "/../" or "%XX".
5065 *) Bugfix: the large compressed responses may be transferred not
5068 *) Bugfix: the files bigger than 2G was not transferred on Linux that
5069 does not support sendfile64().
5071 *) Bugfix: while the build configuration on Linux the
5072 --with-poll_module parameter was required; the bug had appeared in
5076 Changes with nginx 0.1.8 20 Nov 2004
5078 *) Bugfix: in the ngx_http_autoindex_module if the long file names were
5081 *) Feature: the "^~" modifier in the location directive.
5083 *) Feature: the proxy_max_temp_file_size directive.
5086 Changes with nginx 0.1.7 12 Nov 2004
5088 *) Bugfix: on FreeBSD the segmentation fault may occur if the size of
5089 the transferred file was changed; the bug had appeared in 0.1.5.
5092 Changes with nginx 0.1.6 11 Nov 2004
5094 *) Bugfix: some location directive combinations with the regular
5095 expressions caused the wrong configuration choose.
5098 Changes with nginx 0.1.5 11 Nov 2004
5100 *) Bugfix: on Solaris and Linux there may be too many "recvmsg()
5101 returned not enough data" alerts.
5103 *) Bugfix: there were the "writev() failed (22: Invalid argument)"
5104 errors on Solaris in proxy mode without sendfile. On other platforms
5105 that do not support sendfile at all the process got caught in an
5108 *) Bugfix: segmentation fault on Solaris in proxy mode and using
5111 *) Bugfix: segmentation fault on Solaris.
5113 *) Bugfix: on-line upgrade did not work on Linux.
5115 *) Bugfix: the ngx_http_autoindex_module module did not escape the
5116 spaces, the quotes, and the percent signs in the directory listing.
5118 *) Change: the decrease of the copy operations.
5120 *) Feature: the userid_p3p directive.
5123 Changes with nginx 0.1.4 26 Oct 2004
5125 *) Bugfix: in the ngx_http_autoindex_module.
5128 Changes with nginx 0.1.3 25 Oct 2004
5130 *) Feature: the ngx_http_autoindex_module and the autoindex directive.
5132 *) Feature: the proxy_set_x_url directive.
5134 *) Bugfix: proxy module may get caught in an endless loop when sendfile
5138 Changes with nginx 0.1.2 21 Oct 2004
5140 *) Feature: the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS
5141 options in configure.
5143 *) Feature: the server_name directive supports *.domain.tld.
5145 *) Bugfix: the portability improvements.
5147 *) Bugfix: if configuration file was set in command line, the
5148 reconfiguration was impossible; the bug had appeared in 0.1.1.
5150 *) Bugfix: proxy module may get caught in an endless loop when sendfile
5153 *) Bugfix: with sendfile the response was not recoded according to the
5154 charset module directives; the bug had appeared in 0.1.1.
5156 *) Bugfix: very seldom bug in the kqueue processing.
5158 *) Bugfix: the gzip module compressed the proxied responses that was
5162 Changes with nginx 0.1.1 11 Oct 2004
5164 *) Feature: the gzip_types directive.
5166 *) Feature: the tcp_nodelay directive.
5168 *) Feature: the send_lowat directive is working not only on OSes that
5169 support kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT.
5171 *) Feature: the setproctitle() emulation for Linux and Solaris.
5173 *) Bugfix: the "Location" header rewrite bug fixed while the proxying.
5175 *) Bugfix: the ngx_http_chunked_module module may get caught in an
5178 *) Bugfix: the /dev/poll module bugs fixed.
5180 *) Bugfix: the responses were corrupted when the temporary files were
5181 used while the proxying.
5183 *) Bugfix: the unescaped requests were passed to the backend.
5185 *) Bugfix: while the build configuration on Linux 2.4 the
5186 --with-poll_module parameter was required.
5189 Changes with nginx 0.1.0 04 Oct 2004
5191 *) The first public version.