comparison text/en/CHANGES-1.10 @ 1690:7d15391ce323

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