避免 Nginx 緩存 0 字節文件的方法

像我一樣,肯定很多人對一些行爲不端的應用發送的空的輸出感到不爽,更不爽的是如果前端啓用了緩存,那麼空的輸出也會被緩存起來,直到緩存實現或者被清除。

爲了避免上述情形,我們可以通過一些簡單的配置來避免。通過使用 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章