comparison text/en/CHANGES-1.22 @ 2852:a9ebed59b64f

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