admin 管理员组文章数量: 887021
2024年1月17日发(作者:bootstrap table保留两位小数)
运维
nginx ngx_cache_purge模块介绍
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_
2、解压包 tar zxf ngx_cache_ 得到目录
ngx_cache_purge-1.1
3、执行nginx编译,添加一条编译指令 –add-module=../ngx_cache_purge-1.1
即可将ngx_cache_purge模块编入nginx,完成的编译参数如:
./configure --user=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_server {
server 192.168.8.43:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.8.44:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.8.45:80 weight=1 max_fails=2 fail_timeout=30s;
}
server
{
listen 80;
server_name 192.168.8.42;
index ;
root /data0/htdocs/www;
location /
{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout
invalid_header;
proxy_cache cache_one;
#对不同的HTTP状态码设置不同的缓存时间
proxy_cache_valid 200 304 12h;
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass backend_server;
expires 1d;
}
#用于清除缓存,假设一个URL为192.168.8.42/,通过访问192.168.8.42/purge/就可以清除该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结尾的动态应用程序不缓存。
location ~ .*.(php|jsp|cgi)?$
{
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass backend_server;
}
access_log off;
}
}
ngx_cache_pure 的使用
按如上配置完成以后,要确认一个文件是否被cache或要清除一个指定URL的缓存,只需要访问:
192.168.8.42/purge/application/my/view/images/
purge 是要调用PURGE指令
/application/my/view/images/ 是你要确认或清除缓存的URL路径
版权声明:本文标题:nginx ngx_cache_purge模块介绍 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705459097h485600.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论