Mercurial > hg > nginx-ranges
annotate auto/modules @ 391:1d9bef53cd8e
Range filter: late_ranges functionality.
Add one more filtering point after postpone filter. This allows to serve
range capable replies with subrequests. It's not as efficient as range
filtering for static data (i.e. doesn't save us from reading data from
disk if some filter needs them in memory), but it may save some network
bandwidth for us and for our users.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 21 Jul 2008 05:33:01 +0400 |
parents | 9a242235a80a |
children | 77df96611112 |
rev | line source |
---|---|
0 | 1 |
2 # Copyright (C) Igor Sysoev | |
3 | |
4 | |
5 if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then | |
6 EVENT_SELECT=YES | |
7 fi | |
8 | |
9 if [ $EVENT_SELECT = YES ]; then | |
18 | 10 have=NGX_HAVE_SELECT . auto/have |
0 | 11 CORE_SRCS="$CORE_SRCS $SELECT_SRCS" |
12 EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE" | |
13 fi | |
14 | |
15 | |
16 if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then | |
17 EVENT_POLL=YES | |
18 fi | |
19 | |
20 if [ $EVENT_POLL = YES ]; then | |
18 | 21 have=NGX_HAVE_POLL . auto/have |
0 | 22 CORE_SRCS="$CORE_SRCS $POLL_SRCS" |
23 EVENT_MODULES="$EVENT_MODULES $POLL_MODULE" | |
24 fi | |
25 | |
26 | |
18 | 27 if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then |
28 have=NGX_HAVE_DEVPOLL . auto/have | |
29 have=NGX_TEST_BUILD_DEVPOLL . auto/have | |
0 | 30 EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE" |
31 CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS" | |
32 fi | |
33 | |
236 | 34 |
35 if [ $NGX_TEST_BUILD_EVENTPORT = YES ]; then | |
36 have=NGX_HAVE_EVENTPORT . auto/have | |
37 have=NGX_TEST_BUILD_EVENTPORT . auto/have | |
38 EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE" | |
39 CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS" | |
40 fi | |
41 | |
18 | 42 if [ $NGX_TEST_BUILD_EPOLL = YES ]; then |
43 have=NGX_HAVE_EPOLL . auto/have | |
44 have=NGX_TEST_BUILD_EPOLL . auto/have | |
0 | 45 EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE" |
46 CORE_SRCS="$CORE_SRCS $EPOLL_SRCS" | |
47 fi | |
48 | |
18 | 49 if [ $NGX_TEST_BUILD_RTSIG = YES ]; then |
50 have=NGX_HAVE_RTSIG . auto/have | |
51 have=NGX_TEST_BUILD_RTSIG . auto/have | |
0 | 52 EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE" |
53 CORE_SRCS="$CORE_SRCS $RTSIG_SRCS" | |
54 fi | |
55 | |
22 | 56 if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then |
57 have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have | |
58 CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS" | |
59 fi | |
60 | |
0 | 61 |
70 | 62 if [ $HTTP != YES ]; then |
63 have=NGX_CRYPT . auto/nohave | |
64 CRYPT_LIB= | |
65 fi | |
66 | |
67 | |
58 | 68 if [ $HTTP_SSI = YES ]; then |
69 HTTP_POSTPONE=YES | |
70 fi | |
71 | |
190 | 72 |
73 if [ $HTTP_ADDITION = YES ]; then | |
74 HTTP_POSTPONE=YES | |
75 fi | |
76 | |
77 | |
90 | 78 # the module order is important |
79 # ngx_http_autoindex_module | |
80 # ngx_http_index_module | |
81 # | |
126 | 82 # ngx_http_access_module |
83 # ngx_http_realip_module | |
84 # | |
90 | 85 # |
0 | 86 # the filter order is important |
87 # ngx_http_write_filter | |
88 # ngx_http_header_filter | |
89 # ngx_http_chunked_filter | |
90 # ngx_http_range_header_filter | |
91 # ngx_http_gzip_filter | |
58 | 92 # ngx_http_postpone_filter |
0 | 93 # ngx_http_charset_filter |
94 # ngx_http_ssi_filter | |
178 | 95 # ngx_http_addition_filter |
90 | 96 # ngx_http_userid_filter |
97 # ngx_http_headers_filter | |
0 | 98 # ngx_http_copy_filter |
99 # ngx_http_range_body_filter | |
100 # ngx_http_not_modified_filter | |
101 | |
102 HTTP_FILTER_MODULES="$HTTP_WRITE_FILTER_MODULE \ | |
103 $HTTP_HEADER_FILTER_MODULE \ | |
104 $HTTP_CHUNKED_FILTER_MODULE \ | |
105 $HTTP_RANGE_HEADER_FILTER_MODULE" | |
106 | |
107 if [ $HTTP_GZIP = YES ]; then | |
108 have=NGX_HTTP_GZIP . auto/have | |
109 USE_ZLIB=YES | |
110 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE" | |
111 HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS" | |
112 fi | |
113 | |
391
1d9bef53cd8e
Range filter: late_ranges functionality.
Maxim Dounin <mdounin@mdounin.ru>
parents:
370
diff
changeset
|
114 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_RANGE_LATE_FILTER_MODULE" |
1d9bef53cd8e
Range filter: late_ranges functionality.
Maxim Dounin <mdounin@mdounin.ru>
parents:
370
diff
changeset
|
115 |
58 | 116 if [ $HTTP_POSTPONE = YES ]; then |
117 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_POSTPONE_FILTER_MODULE" | |
368 | 118 HTTP_SRCS="$HTTP_SRCS $HTTP_POSTPONE_FILTER_SRCS" |
58 | 119 fi |
120 | |
0 | 121 if [ $HTTP_CHARSET = YES ]; then |
122 have=NGX_HTTP_CHARSET . auto/have | |
123 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_CHARSET_FILTER_MODULE" | |
124 HTTP_SRCS="$HTTP_SRCS $HTTP_CHARSET_SRCS" | |
125 fi | |
126 | |
127 if [ $HTTP_SSI = YES ]; then | |
128 have=NGX_HTTP_SSI . auto/have | |
129 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE" | |
146 | 130 HTTP_DEPS="$HTTP_DEPS $HTTP_SSI_DEPS" |
0 | 131 HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS" |
132 fi | |
133 | |
296 | 134 if [ $HTTP_SUB = YES ]; then |
135 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SUB_FILTER_MODULE" | |
136 HTTP_SRCS="$HTTP_SRCS $HTTP_SUB_SRCS" | |
137 fi | |
138 | |
178 | 139 if [ $HTTP_ADDITION = YES ]; then |
140 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_ADDITION_FILTER_MODULE" | |
141 HTTP_SRCS="$HTTP_SRCS $HTTP_ADDITION_SRCS" | |
142 fi | |
143 | |
0 | 144 if [ $HTTP_USERID = YES ]; then |
145 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_USERID_FILTER_MODULE" | |
146 HTTP_SRCS="$HTTP_SRCS $HTTP_USERID_SRCS" | |
147 fi | |
148 | |
6 | 149 HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE" |
150 | |
362 | 151 if [ $HTTP_GZIP_STATIC = YES ]; then |
152 have=NGX_HTTP_GZIP . auto/have | |
153 HTTP_MODULES="$HTTP_MODULES $HTTP_GZIP_STATIC_MODULE" | |
154 HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_STATIC_SRCS" | |
155 fi | |
156 | |
182 | 157 if [ $HTTP_DAV = YES ]; then |
186 | 158 have=NGX_HTTP_DAV . auto/have |
182 | 159 HTTP_MODULES="$HTTP_MODULES $HTTP_DAV_MODULE" |
160 HTTP_SRCS="$HTTP_SRCS $HTTP_DAV_SRCS" | |
161 fi | |
162 | |
6 | 163 if [ $HTTP_AUTOINDEX = YES ]; then |
164 have=NGX_HTTP_AUTOINDEX . auto/have | |
165 HTTP_MODULES="$HTTP_MODULES $HTTP_AUTOINDEX_MODULE" | |
166 HTTP_SRCS="$HTTP_SRCS $HTTP_AUTOINDEX_SRCS" | |
167 fi | |
168 | |
169 HTTP_MODULES="$HTTP_MODULES $HTTP_INDEX_MODULE" | |
0 | 170 |
52 | 171 if [ $HTTP_AUTH_BASIC = YES ]; then |
172 have=NGX_HTTP_AUTH_BASIC . auto/have | |
54 | 173 have=NGX_CRYPT . auto/have |
52 | 174 HTTP_MODULES="$HTTP_MODULES $HTTP_AUTH_BASIC_MODULE" |
175 HTTP_SRCS="$HTTP_SRCS $HTTP_AUTH_BASIC_SRCS" | |
176 CORE_LIBS="$CORE_LIBS $CRYPT_LIB" | |
177 fi | |
178 | |
0 | 179 if [ $HTTP_ACCESS = YES ]; then |
180 have=NGX_HTTP_ACCESS . auto/have | |
181 HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESS_MODULE" | |
182 HTTP_SRCS="$HTTP_SRCS $HTTP_ACCESS_SRCS" | |
183 fi | |
184 | |
272 | 185 if [ $HTTP_LIMIT_ZONE = YES ]; then |
186 HTTP_MODULES="$HTTP_MODULES $HTTP_LIMIT_ZONE_MODULE" | |
187 HTTP_SRCS="$HTTP_SRCS $HTTP_LIMIT_ZONE_SRCS" | |
188 fi | |
189 | |
122 | 190 if [ $HTTP_REALIP = YES ]; then |
191 have=NGX_HTTP_REALIP . auto/have | |
192 HTTP_MODULES="$HTTP_MODULES $HTTP_REALIP_MODULE" | |
193 HTTP_SRCS="$HTTP_SRCS $HTTP_REALIP_SRCS" | |
194 fi | |
195 | |
0 | 196 if [ $HTTP_STATUS = YES ]; then |
197 have=NGX_HTTP_STATUS . auto/have | |
198 HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_MODULE" | |
199 HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_SRCS" | |
200 fi | |
201 | |
34 | 202 if [ $HTTP_GEO = YES ]; then |
203 have=NGX_HTTP_GEO . auto/have | |
204 HTTP_MODULES="$HTTP_MODULES $HTTP_GEO_MODULE" | |
205 HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS" | |
206 fi | |
207 | |
138 | 208 if [ $HTTP_MAP = YES ]; then |
209 have=NGX_HTTP_MAP . auto/have | |
210 HTTP_MODULES="$HTTP_MODULES $HTTP_MAP_MODULE" | |
211 HTTP_SRCS="$HTTP_SRCS $HTTP_MAP_SRCS" | |
212 fi | |
213 | |
126 | 214 if [ $HTTP_REFERER = YES ]; then |
215 HTTP_MODULES="$HTTP_MODULES $HTTP_REFERER_MODULE" | |
216 HTTP_SRCS="$HTTP_SRCS $HTTP_REFERER_SRCS" | |
217 fi | |
218 | |
0 | 219 if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then |
220 have=NGX_HTTP_REWRITE . auto/have | |
221 USE_PCRE=YES | |
222 HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE" | |
223 HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS" | |
224 fi | |
225 | |
226 if [ $HTTP_SSL = YES ]; then | |
227 USE_OPENSSL=YES | |
228 have=NGX_HTTP_SSL . auto/have | |
229 HTTP_MODULES="$HTTP_MODULES $HTTP_SSL_MODULE" | |
230 HTTP_DEPS="$HTTP_DEPS $HTTP_SSL_DEPS" | |
231 HTTP_SRCS="$HTTP_SRCS $HTTP_SSL_SRCS" | |
232 fi | |
233 | |
234 if [ $HTTP_PROXY = YES ]; then | |
235 have=NGX_HTTP_PROXY . auto/have | |
236 #USE_MD5=YES | |
237 HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE" | |
238 HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS" | |
239 HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS" | |
240 fi | |
241 | |
28 | 242 if [ $HTTP_FASTCGI = YES ]; then |
243 HTTP_MODULES="$HTTP_MODULES $HTTP_FASTCGI_MODULE" | |
244 HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS" | |
245 fi | |
246 | |
148 | 247 if [ $HTTP_PERL = YES ]; then |
248 USE_PERL=YES | |
249 have=NGX_HTTP_PERL . auto/have | |
250 HTTP_MODULES="$HTTP_MODULES $HTTP_PERL_MODULE" | |
251 HTTP_INCS="$HTTP_INCS $HTTP_PERL_INCS" | |
252 HTTP_DEPS="$HTTP_DEPS $HTTP_PERL_DEPS" | |
253 HTTP_SRCS="$HTTP_SRCS $HTTP_PERL_SRCS" | |
254 fi | |
255 | |
130 | 256 if [ $HTTP_MEMCACHED = YES ]; then |
257 HTTP_MODULES="$HTTP_MODULES $HTTP_MEMCACHED_MODULE" | |
258 HTTP_SRCS="$HTTP_SRCS $HTTP_MEMCACHED_SRCS" | |
259 fi | |
260 | |
126 | 261 if [ $HTTP_EMPTY_GIF = YES ]; then |
262 HTTP_MODULES="$HTTP_MODULES $HTTP_EMPTY_GIF_MODULE" | |
263 HTTP_SRCS="$HTTP_SRCS $HTTP_EMPTY_GIF_SRCS" | |
264 fi | |
265 | |
236 | 266 if [ $HTTP_BROWSER = YES ]; then |
267 HTTP_MODULES="$HTTP_MODULES $HTTP_BROWSER_MODULE" | |
268 HTTP_SRCS="$HTTP_SRCS $HTTP_BROWSER_SRCS" | |
269 fi | |
270 | |
244 | 271 if [ $HTTP_FLV = YES ]; then |
272 HTTP_MODULES="$HTTP_MODULES $HTTP_FLV_MODULE" | |
273 HTTP_SRCS="$HTTP_SRCS $HTTP_FLV_SRCS" | |
274 fi | |
275 | |
260 | 276 if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then |
277 HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_IP_HASH_MODULE" | |
278 HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_IP_HASH_SRCS" | |
279 fi | |
280 | |
18 | 281 # STUB |
26 | 282 #USE_MD5=YES |
368 | 283 #HTTP_SRCS="$HTTP_SRCS $HTTP_CACHE_SRCS" |
284 #HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS" | |
18 | 285 |
36 | 286 if [ $HTTP_STUB_STATUS = YES ]; then |
287 have=NGX_STAT_STUB . auto/have | |
288 HTTP_MODULES="$HTTP_MODULES ngx_http_stub_status_module" | |
289 HTTP_SRCS="$HTTP_SRCS src/http/modules/ngx_http_stub_status_module.c" | |
290 fi | |
291 | |
38 | 292 #if [ -r $NGX_OBJS/auto ]; then |
293 # . $NGX_OBJS/auto | |
294 #fi | |
295 | |
296 | |
297 if test -n "$NGX_ADDONS"; then | |
298 | |
299 echo configuring additional modules | |
300 | |
301 for ngx_addon_dir in $NGX_ADDONS | |
302 do | |
303 echo "adding module in $ngx_addon_dir" | |
304 | |
305 if test -f $ngx_addon_dir/config; then | |
306 . $ngx_addon_dir/config | |
307 | |
308 echo " + $ngx_addon_name was configured" | |
309 | |
310 else | |
311 echo "$0: error: no $ngx_addon_dir/config was found" | |
312 exit 1 | |
313 fi | |
314 done | |
0 | 315 fi |
316 | |
38 | 317 |
290 | 318 if [ $MAIL_SSL = YES ]; then |
319 have=NGX_MAIL_SSL . auto/have | |
90 | 320 USE_OPENSSL=YES |
321 fi | |
322 | |
323 | |
0 | 324 modules="$CORE_MODULES $EVENT_MODULES" |
325 | |
90 | 326 |
327 if [ $USE_OPENSSL = YES ]; then | |
328 modules="$modules $OPENSSL_MODULE" | |
329 CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS" | |
330 CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS" | |
331 fi | |
332 | |
0 | 333 if [ $HTTP = YES ]; then |
334 modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \ | |
335 $HTTP_HEADERS_FILTER_MODULE \ | |
126 | 336 $HTTP_AUX_FILTER_MODULES \ |
0 | 337 $HTTP_COPY_FILTER_MODULE \ |
338 $HTTP_RANGE_BODY_FILTER_MODULE \ | |
339 $HTTP_NOT_MODIFIED_FILTER_MODULE" | |
38 | 340 |
341 NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)" | |
0 | 342 fi |
343 | |
38 | 344 |
290 | 345 if [ $MAIL = YES ]; then |
346 modules="$modules $MAIL_MODULES" | |
70 | 347 |
290 | 348 if [ $MAIL_SSL = YES ]; then |
349 modules="$modules $MAIL_SSL_MODULE" | |
336 | 350 MAIL_DEPS="$MAIL_DEPS $MAIL_SSL_DEPS" |
351 MAIL_SRCS="$MAIL_SRCS $MAIL_SSL_SRCS" | |
352 fi | |
353 | |
354 if [ $MAIL_POP3 = YES ]; then | |
355 modules="$modules $MAIL_POP3_MODULE" | |
356 MAIL_DEPS="$MAIL_DEPS $MAIL_POP3_DEPS" | |
357 MAIL_SRCS="$MAIL_SRCS $MAIL_POP3_SRCS" | |
358 fi | |
359 | |
360 if [ $MAIL_IMAP = YES ]; then | |
361 modules="$modules $MAIL_IMAP_MODULE" | |
362 MAIL_DEPS="$MAIL_DEPS $MAIL_IMAP_DEPS" | |
363 MAIL_SRCS="$MAIL_SRCS $MAIL_IMAP_SRCS" | |
364 fi | |
365 | |
366 if [ $MAIL_SMTP = YES ]; then | |
367 modules="$modules $MAIL_SMTP_MODULE" | |
368 MAIL_DEPS="$MAIL_DEPS $MAIL_SMTP_DEPS" | |
369 MAIL_SRCS="$MAIL_SRCS $MAIL_SMTP_SRCS" | |
88 | 370 fi |
371 | |
290 | 372 modules="$modules $MAIL_AUTH_HTTP_MODULE" |
373 MAIL_SRCS="$MAIL_SRCS $MAIL_AUTH_HTTP_SRCS" | |
70 | 374 |
290 | 375 modules="$modules $MAIL_PROXY_MODULE" |
376 MAIL_SRCS="$MAIL_SRCS $MAIL_PROXY_SRCS" | |
0 | 377 fi |
378 | |
379 | |
370 | 380 if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then |
381 modules="$modules $NGX_GOOGLE_PERFTOOLS_MODULE" | |
382 NGX_MISC_SRCS="$NGX_MISC_SRCS $NGX_GOOGLE_PERFTOOLS_SRCS" | |
383 fi | |
384 | |
385 | |
10 | 386 cat << END > $NGX_MODULES_C |
387 | |
388 #include <ngx_config.h> | |
389 #include <ngx_core.h> | |
390 | |
391 $NGX_PRAGMA | |
392 | |
393 END | |
0 | 394 |
395 for mod in $modules | |
396 do | |
397 echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C | |
398 done | |
399 | |
400 echo >> $NGX_MODULES_C | |
401 echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C | |
402 | |
403 for mod in $modules | |
404 do | |
405 echo " &$mod," >> $NGX_MODULES_C | |
406 done | |
407 | |
10 | 408 cat << END >> $NGX_MODULES_C |
409 NULL | |
410 }; | |
411 | |
412 END |