Upstream: support named location for X-Accel-Redirect.

This commit is contained in:
Toshikuni Fukaya 2014-11-04 19:56:23 +09:00
parent a9d9b09103
commit d9f5baa0b8

View File

@ -2218,19 +2218,26 @@ ngx_http_upstream_process_headers(ngx_http_request_t *r, ngx_http_upstream_t *u)
}
uri = u->headers_in.x_accel_redirect->value;
ngx_str_null(&args);
flags = NGX_HTTP_LOG_UNSAFE;
if (ngx_http_parse_unsafe_uri(r, &uri, &args, &flags) != NGX_OK) {
ngx_http_finalize_request(r, NGX_HTTP_NOT_FOUND);
return NGX_DONE;
if (uri.data[0] == '@') {
ngx_http_named_location(r, &uri);
} else {
ngx_str_null(&args);
flags = NGX_HTTP_LOG_UNSAFE;
if (ngx_http_parse_unsafe_uri(r, &uri, &args, &flags) != NGX_OK) {
ngx_http_finalize_request(r, NGX_HTTP_NOT_FOUND);
return NGX_DONE;
}
if (r->method != NGX_HTTP_HEAD) {
r->method = NGX_HTTP_GET;
}
ngx_http_internal_redirect(r, &uri, &args);
}
if (r->method != NGX_HTTP_HEAD) {
r->method = NGX_HTTP_GET;
}
ngx_http_internal_redirect(r, &uri, &args);
ngx_http_finalize_request(r, NGX_DONE);
return NGX_DONE;
}