nginx.conf 部分內容:
proxy_temp_path /nginx/cache/temp; proxy_cache_path /nginx/cache/path levels=1:2 keys_zone=cache_test:2048m inactive=7d max_size=10g;...... location ~ .(gif|jpg|jgep|png)$ { proxy_pass http://upstreams; proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie; proxy_cache cache_test; #設置緩存的key proxy_cache_key $host$uri$is_args$args; #設置狀態碼為200和304的響應可以進行緩存,并且緩存時間為1天 proxy_cache_valid 200 304 1d; expires 30d; }
nginx不緩存原因
默認情況下,nginx是否緩存是由nginx緩存服務器與源服務器共同決定的, 緩存服務器需要嚴格遵守源服務器響應的header來決定是否緩存以及緩存的時常。
header主要有如下:
Cache-control:no-cache、no-store
如果出現這兩值,nginx緩存服務器是絕對不會緩存的
Expires:1980-01-01
如果出現日期比當前時間早,也不會緩存。
解決不緩存方案
2.1 方法一:
修改程序或者源服務器web程序響應的header
2.2 方法二:
nginx代理直接加上如下一句:
proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答