grelide
运维
nginx ngx_cache_purge模块介绍
scarf的意思Nginx从 0.7.48版本开始,支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意 URL链接,同时也支持404/301/302这样的非200状态码。虽然目前官方的Nginx Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面。
ngx_cache_purge 是由 开发的一个Nginx第三方模块。通过该模块使得Nginx可以像squid使用PURGE指令手动清除指定URL的缓存页面。
ngx_cache_pure 当前的版本为:ngx_cache_purge-1.1
ngx_cache_pure 的下载地址是:/nginx_ngx_cache_purge/歌舞青春片尾曲
ngx_cache_pure 的安装
1、下载ngx_cache_pure,我们将得到一个文件 ngx_cache_purge-1.
2、解压包 tar zxf ngx_cache_purge-1. 得到目录 ngx_cache_purge-1.1
3、执行nginx编译,添加一条编译指令 –add-module=../ngx_cache_purge-1.1 即可将ngx_cache_purge模块编入nginx,完成的编译参数如:
./configure --ur=www --group=www --prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --add-module=../ngx_cache_purge-1.1
4、执行编译安装 make && make install
如果没有意外错误,至此您已经完成了 ngx_cache_pure 模块的安装。
ngx_cache_pure 的配置举例
http {
#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path /data0/proxy_temp_dir;
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
upstream backend_rver {
rver 192.168.8.43:80 weight=1 max_fails=2 fail_timeout=30s;
rver 192.168.8.44:80 weight=1 max_fails=2 fail_timeout=30s;the cardigans
rver 192.168.8.45:80 weight=1 max_fails=2 fail_timeout=30s;
}
rver
{
listen 80;
rver_name 192.168.8.42;
永远不说再见英文 index index.html index.htm;
root /data0/htdocs/www;
location /
{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
#对不同的HTTP状态码设置不同的缓存时间
gmac是什么 proxy_cache_valid 200 304 12h;
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
proxy_cache_key $host$uri$is_args$args;
proxy_t_header Host $host;
proxy_t_header X-Forwarded-For $remote_addr;
proxy_pass backend_rver;
expires 1d;
}
#用于清除缓存,假设一个URL为192.168.8.,通过访问192.168.8.42/就可以清除该URL的缓存。
location ~ /purge(/.*)
{
#设置只允许指定的IP或IP段才可以清除URL缓存。
allow 127.0.0.1;
allow 192.168.0.0/16;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
#扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。
asmile location ~ .*\.(php|jsp|cgi)?$
feel的过去式 {
proxy_t_header Host $host;
proxy_t_header X-Forwarded-For $remote_addr;
proxy_pass backend_rver;
}
access_log off;
畸胎
}
}网考
ngx_cache_pure 的使用
按如上配置完成以后,要确认一个文件是否被cache或要清除一个指定URL的缓存,只需要访问:
192.168.8.42/purge/application/my/view/images/ur.png
purge 是要调用PURGE指令
/application/my/view/images/ur.png 是你要确认或清除缓存的URL路径