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