歡迎您光臨本站 註冊首頁

Nginx緩存狀態設置問題

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

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。如果是的話,你的測試結果是正確的。

[火星人 ] Nginx緩存狀態設置問題已經有483次圍觀

http://coctec.com/docs/service/show-post-17030.html