comparison text/en/CHANGES-1.14 @ 2152:a226918def86

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