diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2011-11-14 13:18:15 +0000 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2011-11-14 13:18:15 +0000 |
commit | b5984de06b0ff350b06c270a784aa2fe107e72a4 (patch) | |
tree | b2980267a3f25c623a77211945b027b98969f4f9 /src/http/ngx_http_request.h | |
parent | 66a60a62cc002db31f8dd9c5112a92d55bf13fbd (diff) | |
download | nginx-b5984de06b0ff350b06c270a784aa2fe107e72a4.tar.gz nginx-b5984de06b0ff350b06c270a784aa2fe107e72a4.zip |
Fixed proxy_set_header inheritance with proxy_cache (ticket #45).
Headers cleared with cache enabled (If-Modified-Since etc.) might be cleared
in unrelated servers/locations without proxy_cache enabled if proxy_cache was
used in some server/location.
Example config which triggered the problem:
proxy_set_header X-Test "test";
server { location /1 { proxy_cache name; proxy_pass ... } }
server { location /2 { proxy_pass ... } }
Another one:
server {
proxy_cache name;
location /1 { proxy_pass ... }
location /2 { proxy_cache off; proxy_pass ... }
}
In both cases If-Modified-Since header wasn't sent to backend in location /2.
Fix is to not modify conf->headers_source, but instead merge user-supplied
headers from conf->headers_source and default headers (either cache or not)
into separate headers_merged array.
Diffstat (limited to 'src/http/ngx_http_request.h')
0 files changed, 0 insertions, 0 deletions