Nginx緩存狀態設置問題
測試使用Nginx的proxy_cache,看到網上有不少文章介紹Nginx可以對HTTP STATUS 進行緩存時間設置。
因為業務需求,對這個做了些測試。結果發現設置的沒有達到預期效果。不知道是我的設置問題還是測試步驟有誤。
請各位大俠幫忙分析一下。
Nginx配置:
proxy_temp_path /data/nginx_store/temp_dir 1 2;
proxy_cache_path /data/nginx_store/cache_dir levels=1:2 keys_zone=cache_one:2048m inactive=360d max_size=10g;
upstream img_source
{
server 192.168.1.122;
}
server
{
listen 80;
server_name *.test.com;
location ~ \.(jpg|jpeg|gif|bmp|png|css|js|flv|xml)$
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
proxy_cache_valid 200 304 12h;
proxy_cache_valid 302 1m;
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://img_source;
}
}
測試步驟:
1. 請求一張存在的圖片,過期值12分鐘。請求狀態200,Nginx設置了200緩存2分鐘。緩存成功。
2. 將圖片從源站刪除,瀏覽器清除cache。
3. 過2分鐘后再次請求該圖片,還是看到200狀態。狀態緩存2m無效。
同樣的方法測試302的效果也是這樣的。
《解決方案》
:em27: 頂起來
《解決方案》
你的描述不太清楚 你的源站伺服器是不是配置了cache-control或expires。如果是的話,你的測試結果是正確的。