Mercurial > hg > nginx
comparison src/http/modules/ngx_http_uwsgi_module.c @ 5832:d09b689911ac
Upstream: limited next_upstream time and tries (ticket #544).
The new directives {proxy,fastcgi,scgi,uwsgi,memcached}_next_upstream_tries
and {proxy,fastcgi,scgi,uwsgi,memcached}_next_upstream_timeout limit
the number of upstreams tried and the maximum time spent for these tries
when searching for a valid upstream.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Fri, 12 Sep 2014 18:50:47 +0400 |
parents | 906530c9ffd2 |
children | 2aff40b3dea2 |
comparison
equal
deleted
inserted
replaced
5831:575175ebf4b4 | 5832:d09b689911ac |
---|---|
351 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, | 351 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, |
352 ngx_conf_set_bitmask_slot, | 352 ngx_conf_set_bitmask_slot, |
353 NGX_HTTP_LOC_CONF_OFFSET, | 353 NGX_HTTP_LOC_CONF_OFFSET, |
354 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.next_upstream), | 354 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.next_upstream), |
355 &ngx_http_uwsgi_next_upstream_masks }, | 355 &ngx_http_uwsgi_next_upstream_masks }, |
356 | |
357 { ngx_string("uwsgi_next_upstream_tries"), | |
358 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | |
359 ngx_conf_set_num_slot, | |
360 NGX_HTTP_LOC_CONF_OFFSET, | |
361 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.next_upstream_tries), | |
362 NULL }, | |
363 | |
364 { ngx_string("uwsgi_next_upstream_timeout"), | |
365 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | |
366 ngx_conf_set_msec_slot, | |
367 NGX_HTTP_LOC_CONF_OFFSET, | |
368 offsetof(ngx_http_uwsgi_loc_conf_t, upstream.next_upstream_timeout), | |
369 NULL }, | |
356 | 370 |
357 { ngx_string("uwsgi_param"), | 371 { ngx_string("uwsgi_param"), |
358 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE23, | 372 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE23, |
359 ngx_http_upstream_param_set_slot, | 373 ngx_http_upstream_param_set_slot, |
360 NGX_HTTP_LOC_CONF_OFFSET, | 374 NGX_HTTP_LOC_CONF_OFFSET, |
1252 conf->modifier1 = NGX_CONF_UNSET_UINT; | 1266 conf->modifier1 = NGX_CONF_UNSET_UINT; |
1253 conf->modifier2 = NGX_CONF_UNSET_UINT; | 1267 conf->modifier2 = NGX_CONF_UNSET_UINT; |
1254 | 1268 |
1255 conf->upstream.store = NGX_CONF_UNSET; | 1269 conf->upstream.store = NGX_CONF_UNSET; |
1256 conf->upstream.store_access = NGX_CONF_UNSET_UINT; | 1270 conf->upstream.store_access = NGX_CONF_UNSET_UINT; |
1271 conf->upstream.next_upstream_tries = NGX_CONF_UNSET_UINT; | |
1257 conf->upstream.buffering = NGX_CONF_UNSET; | 1272 conf->upstream.buffering = NGX_CONF_UNSET; |
1258 conf->upstream.ignore_client_abort = NGX_CONF_UNSET; | 1273 conf->upstream.ignore_client_abort = NGX_CONF_UNSET; |
1259 | 1274 |
1260 conf->upstream.local = NGX_CONF_UNSET_PTR; | 1275 conf->upstream.local = NGX_CONF_UNSET_PTR; |
1261 | 1276 |
1262 conf->upstream.connect_timeout = NGX_CONF_UNSET_MSEC; | 1277 conf->upstream.connect_timeout = NGX_CONF_UNSET_MSEC; |
1263 conf->upstream.send_timeout = NGX_CONF_UNSET_MSEC; | 1278 conf->upstream.send_timeout = NGX_CONF_UNSET_MSEC; |
1264 conf->upstream.read_timeout = NGX_CONF_UNSET_MSEC; | 1279 conf->upstream.read_timeout = NGX_CONF_UNSET_MSEC; |
1280 conf->upstream.next_upstream_timeout = NGX_CONF_UNSET_MSEC; | |
1265 | 1281 |
1266 conf->upstream.send_lowat = NGX_CONF_UNSET_SIZE; | 1282 conf->upstream.send_lowat = NGX_CONF_UNSET_SIZE; |
1267 conf->upstream.buffer_size = NGX_CONF_UNSET_SIZE; | 1283 conf->upstream.buffer_size = NGX_CONF_UNSET_SIZE; |
1268 | 1284 |
1269 conf->upstream.busy_buffers_size_conf = NGX_CONF_UNSET_SIZE; | 1285 conf->upstream.busy_buffers_size_conf = NGX_CONF_UNSET_SIZE; |
1327 } | 1343 } |
1328 | 1344 |
1329 ngx_conf_merge_uint_value(conf->upstream.store_access, | 1345 ngx_conf_merge_uint_value(conf->upstream.store_access, |
1330 prev->upstream.store_access, 0600); | 1346 prev->upstream.store_access, 0600); |
1331 | 1347 |
1348 ngx_conf_merge_uint_value(conf->upstream.next_upstream_tries, | |
1349 prev->upstream.next_upstream_tries, 0); | |
1350 | |
1332 ngx_conf_merge_value(conf->upstream.buffering, | 1351 ngx_conf_merge_value(conf->upstream.buffering, |
1333 prev->upstream.buffering, 1); | 1352 prev->upstream.buffering, 1); |
1334 | 1353 |
1335 ngx_conf_merge_value(conf->upstream.ignore_client_abort, | 1354 ngx_conf_merge_value(conf->upstream.ignore_client_abort, |
1336 prev->upstream.ignore_client_abort, 0); | 1355 prev->upstream.ignore_client_abort, 0); |
1344 ngx_conf_merge_msec_value(conf->upstream.send_timeout, | 1363 ngx_conf_merge_msec_value(conf->upstream.send_timeout, |
1345 prev->upstream.send_timeout, 60000); | 1364 prev->upstream.send_timeout, 60000); |
1346 | 1365 |
1347 ngx_conf_merge_msec_value(conf->upstream.read_timeout, | 1366 ngx_conf_merge_msec_value(conf->upstream.read_timeout, |
1348 prev->upstream.read_timeout, 60000); | 1367 prev->upstream.read_timeout, 60000); |
1368 | |
1369 ngx_conf_merge_msec_value(conf->upstream.next_upstream_timeout, | |
1370 prev->upstream.next_upstream_timeout, 0); | |
1349 | 1371 |
1350 ngx_conf_merge_size_value(conf->upstream.send_lowat, | 1372 ngx_conf_merge_size_value(conf->upstream.send_lowat, |
1351 prev->upstream.send_lowat, 0); | 1373 prev->upstream.send_lowat, 0); |
1352 | 1374 |
1353 ngx_conf_merge_size_value(conf->upstream.buffer_size, | 1375 ngx_conf_merge_size_value(conf->upstream.buffer_size, |