1. nginx配置
http {
proxy_cache_path /data/nginx_cache/ levels=1:2 keys_zone=my_zone:10m inactive=60s max_size=5g;
}
location ~ /es/precedents {
proxy_cache my_zone;
proxy_cache_valid 200 304 10m;
proxy_ignore_headers Set-Cookie Cache-Control;
proxy_hide_header Cache-Control;
proxy_hide_header Set-Cookie;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 5000;
proxy_read_timeout 5000;
proxy_send_timeout 5000;
proxy_pass http://esModify;
}
2.緩存過期控制
緩存過期的因素:
(1)inactive:在proxy_cache_path配置項中進行配置,說明某個緩存在inactive指定的時間內如果不訪問,將會主動從緩存中刪除。再次訪問時,就會去拉取
(2)nginx的配置項 proxy_cache_valid:配置nginx cache中的緩存文件的緩存時間,如果配置項爲:proxy_cache_valid 200 304 2m;說明對於狀態爲200和304的緩存文件的緩存時間是2分鐘,兩分鐘之後再訪問該緩存文件時,文件會過期,從而去源服務器重新取數據。
緩存過期的清理順序,由高到低爲:
inactive配置項 > 源服務器設置的Expires、源服務器設置的Max-Age > proxy_cache_valid配置項