Mercurial > hg > nginx
comparison src/http/modules/ngx_http_memcached_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 | ab48149b77a6 |
children | 85f00678e54a |
comparison
equal
deleted
inserted
replaced
5831:575175ebf4b4 | 5832:d09b689911ac |
---|---|
99 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, | 99 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, |
100 ngx_conf_set_bitmask_slot, | 100 ngx_conf_set_bitmask_slot, |
101 NGX_HTTP_LOC_CONF_OFFSET, | 101 NGX_HTTP_LOC_CONF_OFFSET, |
102 offsetof(ngx_http_memcached_loc_conf_t, upstream.next_upstream), | 102 offsetof(ngx_http_memcached_loc_conf_t, upstream.next_upstream), |
103 &ngx_http_memcached_next_upstream_masks }, | 103 &ngx_http_memcached_next_upstream_masks }, |
104 | |
105 { ngx_string("memcached_next_upstream_tries"), | |
106 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | |
107 ngx_conf_set_num_slot, | |
108 NGX_HTTP_LOC_CONF_OFFSET, | |
109 offsetof(ngx_http_memcached_loc_conf_t, upstream.next_upstream_tries), | |
110 NULL }, | |
111 | |
112 { ngx_string("memcached_next_upstream_timeout"), | |
113 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | |
114 ngx_conf_set_msec_slot, | |
115 NGX_HTTP_LOC_CONF_OFFSET, | |
116 offsetof(ngx_http_memcached_loc_conf_t, upstream.next_upstream_timeout), | |
117 NULL }, | |
104 | 118 |
105 { ngx_string("memcached_gzip_flag"), | 119 { ngx_string("memcached_gzip_flag"), |
106 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | 120 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
107 ngx_conf_set_num_slot, | 121 ngx_conf_set_num_slot, |
108 NGX_HTTP_LOC_CONF_OFFSET, | 122 NGX_HTTP_LOC_CONF_OFFSET, |
581 * conf->upstream.uri = { 0, NULL }; | 595 * conf->upstream.uri = { 0, NULL }; |
582 * conf->upstream.location = NULL; | 596 * conf->upstream.location = NULL; |
583 */ | 597 */ |
584 | 598 |
585 conf->upstream.local = NGX_CONF_UNSET_PTR; | 599 conf->upstream.local = NGX_CONF_UNSET_PTR; |
600 conf->upstream.next_upstream_tries = NGX_CONF_UNSET_UINT; | |
586 conf->upstream.connect_timeout = NGX_CONF_UNSET_MSEC; | 601 conf->upstream.connect_timeout = NGX_CONF_UNSET_MSEC; |
587 conf->upstream.send_timeout = NGX_CONF_UNSET_MSEC; | 602 conf->upstream.send_timeout = NGX_CONF_UNSET_MSEC; |
588 conf->upstream.read_timeout = NGX_CONF_UNSET_MSEC; | 603 conf->upstream.read_timeout = NGX_CONF_UNSET_MSEC; |
604 conf->upstream.next_upstream_timeout = NGX_CONF_UNSET_MSEC; | |
589 | 605 |
590 conf->upstream.buffer_size = NGX_CONF_UNSET_SIZE; | 606 conf->upstream.buffer_size = NGX_CONF_UNSET_SIZE; |
591 | 607 |
592 /* the hardcoded values */ | 608 /* the hardcoded values */ |
593 conf->upstream.cyclic_temp_file = 0; | 609 conf->upstream.cyclic_temp_file = 0; |
617 ngx_http_memcached_loc_conf_t *conf = child; | 633 ngx_http_memcached_loc_conf_t *conf = child; |
618 | 634 |
619 ngx_conf_merge_ptr_value(conf->upstream.local, | 635 ngx_conf_merge_ptr_value(conf->upstream.local, |
620 prev->upstream.local, NULL); | 636 prev->upstream.local, NULL); |
621 | 637 |
638 ngx_conf_merge_uint_value(conf->upstream.next_upstream_tries, | |
639 prev->upstream.next_upstream_tries, 0); | |
640 | |
622 ngx_conf_merge_msec_value(conf->upstream.connect_timeout, | 641 ngx_conf_merge_msec_value(conf->upstream.connect_timeout, |
623 prev->upstream.connect_timeout, 60000); | 642 prev->upstream.connect_timeout, 60000); |
624 | 643 |
625 ngx_conf_merge_msec_value(conf->upstream.send_timeout, | 644 ngx_conf_merge_msec_value(conf->upstream.send_timeout, |
626 prev->upstream.send_timeout, 60000); | 645 prev->upstream.send_timeout, 60000); |
627 | 646 |
628 ngx_conf_merge_msec_value(conf->upstream.read_timeout, | 647 ngx_conf_merge_msec_value(conf->upstream.read_timeout, |
629 prev->upstream.read_timeout, 60000); | 648 prev->upstream.read_timeout, 60000); |
649 | |
650 ngx_conf_merge_msec_value(conf->upstream.next_upstream_timeout, | |
651 prev->upstream.next_upstream_timeout, 0); | |
630 | 652 |
631 ngx_conf_merge_size_value(conf->upstream.buffer_size, | 653 ngx_conf_merge_size_value(conf->upstream.buffer_size, |
632 prev->upstream.buffer_size, | 654 prev->upstream.buffer_size, |
633 (size_t) ngx_pagesize); | 655 (size_t) ngx_pagesize); |
634 | 656 |