comparison text/en/CHANGES-1.8 @ 1459:b5851f3b7347

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