Mercurial > hg > nginx
view docs/xml/change_log_conf.xml @ 6428:545b5e4d83b2
Upstream: avoid closing client connection in edge case.
If proxy_cache is enabled, and proxy_no_cache tests true, it was previously
possible for the client connection to be closed after a 304. The fix is to
recheck r->header_only after the final cacheability is determined, and end the
request if no longer cacheable.
Example configuration:
proxy_cache foo;
proxy_cache_bypass 1;
proxy_no_cache 1;
If a client sends If-None-Match, and the upstream server returns 200 with a
matching ETag, no body should be returned to the client. At the start of
ngx_http_upstream_send_response proxy_no_cache is not yet tested, thus cacheable
is still 1 and downstream_error is set.
However, by the time the downstream_error check is done in process_request,
proxy_no_cache has been tested and cacheable is set to 0. The client connection
is then closed, regardless of keepalive.
author | Justin Li <jli.justinli@gmail.com> |
---|---|
date | Tue, 08 Mar 2016 22:31:55 -0500 |
parents | 76bc29f06168 |
children |
line wrap: on
line source
<?xml version="1.0" ?> <!DOCTYPE configuration SYSTEM "../dtd/change_log_conf.dtd" > <configuration> <length>76</length> <start> *) </start> <indent> </indent> <changes lang="ru"> <title>Изменения в </title> <length>66</length> <bugfix>Исправление</bugfix> <feature>Добавление</feature> <change>Изменение</change> <security>Безопасность</security> <workaround>Изменение</workaround> </changes> <changes lang="en"> <title>Changes with </title> <length>65</length> <bugfix>Bugfix</bugfix> <feature>Feature</feature> <change>Change</change> <security>Security</security> <workaround>Workaround</workaround> <month> Jan </month> <month> Feb </month> <month> Mar </month> <month> Apr </month> <month> May </month> <month> Jun </month> <month> Jul </month> <month> Aug </month> <month> Sep </month> <month> Oct </month> <month> Nov </month> <month> Dec </month> </changes> </configuration>