diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2014-12-09 18:22:31 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2014-12-09 18:22:31 +0300 |
commit | 8d7c6491fe3dc7cee758a1ec75daf120cd9d82fc (patch) | |
tree | 16779f1fba4fd25ec0e028630d09f1f107e75979 /src/core/ngx_string.h | |
parent | c863e1b3b56e647b9cc9c9aeed53a9ab309194ed (diff) | |
download | nginx-8d7c6491fe3dc7cee758a1ec75daf120cd9d82fc.tar.gz nginx-8d7c6491fe3dc7cee758a1ec75daf120cd9d82fc.zip |
Upstream: fixed unexpected inheritance into limit_except blocks.
The proxy_pass directive and other handlers are not expected to be inherited
into nested locations, but there is a special code to inherit upstream
handlers into limit_except blocks, as well as a configuration into if{}
blocks. This caused incorrect behaviour in configurations with nested
locations and limit_except blocks, like this:
location / {
proxy_pass http://u;
location /inner/ {
# no proxy_pass here
limit_except GET {
# nothing
}
}
}
In such a configuration the limit_except block inside "location /inner/"
unexpectedly used proxy_pass defined in "location /", while it shouldn't.
Fix is to avoid inheritance of conf->upstream.upstream (and
conf->proxy_lengths) into locations which don't have noname flag.
Diffstat (limited to 'src/core/ngx_string.h')
0 files changed, 0 insertions, 0 deletions