[nginx] Fixed background update with "if".
Maxim Dounin
mdounin at mdounin.ru
Mon Feb 27 22:50:51 UTC 2017
details: http://hg.nginx.org/nginx/rev/8b7fd958c59f
branches:
changeset: 6920:8b7fd958c59f
user: Maxim Dounin <mdounin at mdounin.ru>
date: Mon Feb 27 22:36:15 2017 +0300
description:
Fixed background update with "if".
Cloned subrequests should inherit r->content_handler. This way they will
be able to use the same location configuration as the original request
if there are "if" directives in the configuration.
Without r->content_handler inherited, the following configuration tries
to access a static file in the update request:
location / {
set $true 1;
if ($true) {
# nothing
}
proxy_pass http://backend;
proxy_cache one;
proxy_cache_use_stale updating;
proxy_cache_background_update on;
}
See http://mailman.nginx.org/pipermail/nginx/2017-February/053019.html for
initial report.
diffstat:
src/http/ngx_http_core_module.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (11 lines):
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2571,6 +2571,7 @@ ngx_http_subrequest(ngx_http_request_t *
sr->method_name = r->method_name;
sr->loc_conf = r->loc_conf;
sr->valid_location = r->valid_location;
+ sr->content_handler = r->content_handler;
sr->phase_handler = r->phase_handler;
sr->write_event_handler = ngx_http_core_run_phases;
More information about the nginx-devel
mailing list