comparison CHANGES @ 636:943566b4d82e NGINX_1_1_2

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