comparison text/en/CHANGES-1.12 @ 1961:dd4b6c564e10

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