comparison text/en/CHANGES-1.20 @ 2712:caa04d53b7af

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