comparison text/en/CHANGES-1.2 @ 500:9b440a217907

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