像我一样,肯定很多人对一些行为不端的应用发送的空的输出感到不爽,更不爽的是如果前端启用了缓存,那么空的输出也会被缓存起来,直到缓存实现或者被清除。
为了避免上述情形,我们可以通过一些简单的配置来避免。通过使用 Content-Length 响应头信息来判断并禁止缓存。
最基本的概念便是:只缓存大小大于0的内容,配置如下:
map $upstream_http_content_length $flag_cache_empty { default 0; 0 1; } server { .... location / { ... proxy_no_cache $flag_cache_empty; proxy_cache_bypass $flag_cache_empty; ... } }如果 Content-Length 值为 0 时 map 将设置 flag_cache_empty 变量值为 1,当这个值为 1 时不启用缓存。
原文地址 http://www.oschina.net/question/12_109409
转载于:https://blog.51cto.com/linuxgp/1193284