Exclude from cache by content-length

Maxim Dounin mdounin at mdounin.ru
Mon Apr 16 14:20:47 UTC 2018


Hello!

On Mon, Apr 16, 2018 at 03:16:13AM -0500, Andrei wrote:

> I have an odd upstream application (out of my control) which sometimes
> responds with incomplete pages, and a 200 error.. This causes blank pages
> to appear in cache. Is there a way to exclude from/bypass cache if the
> content-length header from the upstream is lower than 5kb for example?
> Thanks everyone!

Try proxy_no_cache combined with map on 
$upstream_http_content_length.  Something like this should work:

    map $upstream_http_content_length $nocache {
        "~^[0-5][0-9]{,3}" 1;
    }

    proxy_no_cache $nocache;

See here for details:

http://nginx.org/r/proxy_no_cache
http://nginx.org/r/map
http://nginx.org/r/$upstream_http_

-- 
Maxim Dounin
http://mdounin.ru/


More information about the nginx mailing list