comparison text/en/CHANGES-0.7 @ 0:61e04fc01027

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