参考nginx proxy_cache 缓存配置_dengjiexian123的专栏-CSDN博客_nginx proxy_cache
将一些服务端的一些静态资源缓存在nginx,客户端请求直接获取nginx中的静态资源,不用去服务端获取。
在http模块设置,path是缓存文件路径,keys_zone=tmp-test:10m ,tmo-test相当于缓存名字,在哪个路由规则中要使用缓存就配置上,10m应该是内存缓存大小,inactive对应有效期7天,max_size应该是缓存在磁盘上的最大占用空间。
http {
proxy_cache_path X:/Geek/nginx-1.18.0/tmp-test levels=1:2 keys_zone=tmp-test:100m inactive=7d max_size=5g;
}
具体参数解释官网都有解释,Module ngx_http_proxy_module
在location中使用缓存,proxy_cache对应上面缓存名字,valid是缓存有效期,也可以分开设置多个,对不同http响应状态码设置有效期。proxy_cache_key是缓存的key值根据什么生成,因为获取缓存时要根据key去获取。
location /root_old/ {
proxy_pass http://ip:port;
proxy_cache tmp-test;
proxy_cache_valid 200 206 304 301 302 10d;
proxy_cache_valid 404 1d;
proxy_cache_key $uri;
}
设置完后,重启nginx,会自动生成tmp-test文件,访问对应location,就会生成缓存文件
缓存文件中能看到缓存key,和文件信息,比如js文件,就能把js的全部内容缓存下来
要在nginx留一个删除缓存入口,需要安装purge模块。
location /tmp-test/ {
allow 127.0.0.1; //只允许本机访问
deny all; //禁止其他所有ip
proxy_cache_purge tmp-test $uri; //清理缓存
}
访问 /tmp-test/缓存key,key写在上面文件中,如果key有问题提示404,如果删除成功,浏览器页面会返回删除成功。