企业CDN缓存系统varnish 清理缓存

CDN推送平台的搭建(图形化清理varnish代理服务器的缓存)

CDN推送: 当后端服务器中的内容有更新的时候,在varnish的缓存中应该及时的同步后端服务器中的内容。相当于清空varnish中的缓存,当下一次进行访问时,直接从服务器中获取新的内容。

server1(varnish服务器上)
1、安装服务:yum install -y unzip php httpd
在这里插入图片描述
2、unzip bansys.zip -d /var/www/html 下载banzip,然后解压,并安装到/var/www/html目录下,文件要直接暴露在/var/www/html目录中 == mv /var/www/html/bansys/ /var/www/html==*
在这里插入图片描述

在这里插入图片描述

3、编辑config.php写入被清理缓存的服务器信息

在这里插入图片描述

4、vim /etc/httpd/conf/httpd.conf
修改默认端口为8080并重启httpd systemctl start httpd,因为varnish已经占用了80端口。一个端口只能绑定一个服务或者说一个IP,否则端口被占用,会报错(服务无法启动)!

在这里插入图片描述在这里插入图片描述

5、 在浏览器里面搜索:172.25.70.1:8080 ,选择HTTP

  • bansys 有两种工作模式分别是:telnet 和 http 。

telnet模式需要关闭varnish服务管理端口的验证,注释掉/etc/sysconfig/varnish文件中的“-S ${VARNISH_SECRET_FILE}”这行,重启 varnish 服务即可。

在这里插入图片描述

http模式需要对 varnish 做以下设置:vim /etc/varnish/default.vcl

acl ranran {
"127.0.0.1";       #本机
"172.25.70.0"/24;  #指定70网段的可以推送(有权限清理代理服务器上面的缓存)
}
sub vcl_recv {
if (req.method == "BAN") {             # 如果采用推送方式是BAN
        if (!client.ip ~ ranran) {         # 如果客户端的IP不在ranran控制模块中,则不允许推送,并告知原因!
           return(synth(405,"Purging not allowed for " + client.ip));
        }
    ban("req.url ~ " + req.url);         # 匹配的话,就像命令行清除缓存一样来执行!
	return(purge);
    }
}

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
在这里插入图片描述

6、在真机进行测试:

  • 注释:return(pass),这个会一直清除缓存
    (1)curl -I www.ranran.org
    在这里插入图片描述然后图形化清除缓存,输入.*,发送(清除所有缓存)
    在这里插入图片描述

在这里插入图片描述
再次 curl -I www.ranran.org 又是miss
在这里插入图片描述

(2)curl -I www.ranran.org/index.html

在这里插入图片描述
然后图形化清除缓存,输入/index ,发送(清除/index缓存)

在这里插入图片描述
在这里插入图片描述

再次 curl -I www.ranran.org/index.html ,又是miss

在这里插入图片描述

发布了107 篇原创文章 · 获赞 0 · 访问量 1444

猜你喜欢

转载自blog.csdn.net/weixin_45029822/article/details/104431057