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配置项