comparison text/en/CHANGES-1.18 @ 2529:8cc141e0460f

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