comparison CHANGES @ 632:65fd8be45530 NGINX_1_0_6

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