comparison text/en/CHANGES-1.16 @ 2376:16a066373701

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