Mercurial > hg > nginx
changeset 5937:5b9f711dc819
Upstream: inheritance of proxy_pass and friends (ticket #645).
Instead of independant inheritance of conf->upstream.upstream (proxy_pass
without variables) and conf->proxy_lengths (proxy_pass with variables)
we now test them both and inherit only if neither is set. Additionally,
SSL context is also inherited only in this case now.
Based on the patch by Alexey Radkov.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 09 Dec 2014 18:21:55 +0300 |
parents | 2d3908516101 |
children | cd2abf7e7740 |
files | src/http/modules/ngx_http_fastcgi_module.c src/http/modules/ngx_http_proxy_module.c src/http/modules/ngx_http_scgi_module.c src/http/modules/ngx_http_uwsgi_module.c |
diffstat | 4 files changed, 14 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_fastcgi_module.c Tue Dec 09 18:20:19 2014 +0300 +++ b/src/http/modules/ngx_http_fastcgi_module.c Tue Dec 09 18:21:55 2014 +0300 @@ -2697,11 +2697,8 @@ return NGX_CONF_ERROR; } - if (conf->upstream.upstream == NULL) { + if (conf->upstream.upstream == NULL && conf->fastcgi_lengths == NULL) { conf->upstream.upstream = prev->upstream.upstream; - } - - if (conf->fastcgi_lengths == NULL) { conf->fastcgi_lengths = prev->fastcgi_lengths; conf->fastcgi_values = prev->fastcgi_values; }
--- a/src/http/modules/ngx_http_proxy_module.c Tue Dec 09 18:20:19 2014 +0300 +++ b/src/http/modules/ngx_http_proxy_module.c Tue Dec 09 18:21:55 2014 +0300 @@ -2968,12 +2968,6 @@ ngx_conf_merge_ptr_value(conf->cookie_paths, prev->cookie_paths, NULL); -#if (NGX_HTTP_SSL) - if (conf->upstream.ssl == NULL) { - conf->upstream.ssl = prev->upstream.ssl; - } -#endif - ngx_conf_merge_uint_value(conf->http_version, prev->http_version, NGX_HTTP_VERSION_10); @@ -2997,14 +2991,16 @@ return NGX_CONF_ERROR; } - if (conf->upstream.upstream == NULL) { + if (conf->upstream.upstream == NULL && conf->proxy_lengths == NULL) { conf->upstream.upstream = prev->upstream.upstream; conf->vars = prev->vars; - } - - if (conf->proxy_lengths == NULL) { + conf->proxy_lengths = prev->proxy_lengths; conf->proxy_values = prev->proxy_values; + +#if (NGX_HTTP_SSL) + conf->upstream.ssl = prev->upstream.ssl; +#endif } if (conf->upstream.upstream || conf->proxy_lengths) {
--- a/src/http/modules/ngx_http_scgi_module.c Tue Dec 09 18:20:19 2014 +0300 +++ b/src/http/modules/ngx_http_scgi_module.c Tue Dec 09 18:21:55 2014 +0300 @@ -1443,11 +1443,8 @@ return NGX_CONF_ERROR; } - if (conf->upstream.upstream == NULL) { + if (conf->upstream.upstream == NULL && conf->scgi_lengths == NULL) { conf->upstream.upstream = prev->upstream.upstream; - } - - if (conf->scgi_lengths == NULL) { conf->scgi_lengths = prev->scgi_lengths; conf->scgi_values = prev->scgi_values; }
--- a/src/http/modules/ngx_http_uwsgi_module.c Tue Dec 09 18:20:19 2014 +0300 +++ b/src/http/modules/ngx_http_uwsgi_module.c Tue Dec 09 18:21:55 2014 +0300 @@ -1683,10 +1683,6 @@ return NGX_CONF_ERROR; } - if (conf->upstream.ssl == NULL) { - conf->upstream.ssl = prev->upstream.ssl; - } - #endif ngx_conf_merge_str_value(conf->uwsgi_string, prev->uwsgi_string, ""); @@ -1702,13 +1698,15 @@ return NGX_CONF_ERROR; } - if (conf->upstream.upstream == NULL) { + if (conf->upstream.upstream == NULL && conf->uwsgi_lengths == NULL) { conf->upstream.upstream = prev->upstream.upstream; - } - - if (conf->uwsgi_lengths == NULL) { + conf->uwsgi_lengths = prev->uwsgi_lengths; conf->uwsgi_values = prev->uwsgi_values; + +#if (NGX_HTTP_SSL) + conf->upstream.ssl = prev->upstream.ssl; +#endif } if (conf->upstream.upstream || conf->uwsgi_lengths) {