mirror of
https://github.com/nginx/nginx.git
synced 2026-10-25 05:23:31 +00:00
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.
This commit is contained in:
parent
88ed2d39af
commit
c863e1b3b5
4 changed files with 12 additions and 24 deletions
|
|
@ -2697,11 +2697,8 @@ ngx_http_fastcgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2968,12 +2968,6 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
|
||||
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 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
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) {
|
||||
|
|
|
|||
|
|
@ -1443,11 +1443,8 @@ ngx_http_scgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1683,10 +1683,6 @@ ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
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 @@ ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue