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