Nginx高速缓存

增加缓存配置

#proxy_cache_path 缓存路径
#levels 缓存层级及目录位数
#levels=1:2 表示去缓存文件倒数第一位做一级目录,取倒数第二位做二级目录
#如缓存文件为:a6d89caee4085dc4da7ba922d59600e6 则生成缓存文件路径为:6/0e/a6d89caee4085dc4da7ba922d59600e6 
#keys_zone 缓存区内存大小
#inactive 有效期 inactive=20d 若20天之内都没有使用过缓存,则移除磁盘中的缓存文件
#max_size 硬盘大小
http {
	proxy_cache_path /usr/local/nginx/cache/cache_lzj levels=1:2 keys_zone=cache_lzj:500m inactive=20d max_size=1g;
	
	upstream backend {
		server 127.0.0.1:8081 weight=1;
		server 127.0.0.1:8082 weight=2;
    	}
	server {
		listen 80;
        	server_name  localhost;
        	location / {
			proxy_cache cache_lzj; #指定缓存区
			proxy_cache_key $host$uri$is_args$args; #以全路径md5值做做为Key 
			proxy_cache_valid 200 304 12h; #返回状态码为200 304则存入缓存,每过12个小时刷新一次缓存。
			proxy_pass http://backend;
		}
   	}
}
### 使用
1. 重启nginx
2. 访问
```shell
root@ubuntu:/usr/local/nginx/cache/cache_lzj# ls
root@ubuntu:/usr/local/nginx/cache/cache_lzj# curl 127.0.0.1
this is 8082 tomcat
root@ubuntu:/usr/local/nginx/cache/cache_lzj# curl 127.0.0.1
this is 8082 tomcat
root@ubuntu:/usr/local/nginx/cache/cache_lzj# curl 127.0.0.1
this is 8082 tomcat
root@ubuntu:/usr/local/nginx/cache/cache_lzj# ls
2
root@ubuntu:/usr/local/nginx/cache/cache_lzj# cd 2/f3/
root@ubuntu:/usr/local/nginx/cache/cache_lzj/2/f3# ls
8ebe47d5471c819bffa044224fa21f32

清除缓存

这里需要使用第三方模块ngx_cache_purge

  1. 安装第三方模块
#下载ngx_cache_purge 模块包 ,这里nginx 版本为1.6.2 purge 对应2.0版
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
#解压
#进入nginx安装包目录 重新安装 --add-module为模块解压的全路径
./configure --add-module=/usr/local/soft/ngx_cache_purge-2.3 & make & make install
  1. 增加清除缓存配置
location ~ /clear(/.*) {
   #配置清除指定缓存区和路径(与proxy_cache_key一至)
   proxy_cache_purge    cache_lzj $host$1$is_args$args;
}  

3.直接访问

#增加缓存
curl 127.0.0.1/user/1
#清除缓存
curl 127.0.0.1/clear/user/1
# nginx 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×