comparison text/en/CHANGES-1.4 @ 888:22f93c9f4b55

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