像我一樣,肯定很多人對一些行爲不端的應用發送的空的輸出感到不爽,更不爽的是如果前端啓用了緩存,那麼空的輸出也會被緩存起來,直到緩存實現或者被清除。
爲了避免上述情形,我們可以通過一些簡單的配置來避免。通過使用 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