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