comparison text/en/CHANGES-1.24 @ 2954:4cfe7dc4a871

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