comparison text/en/CHANGES-1.6 @ 1169:525190b17193

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