varnish推送平台的搭建

varnish推送平台的搭建

Varnish在企业中就是做缓存和反向代理

清varnish缓存的两种方法

手动法清缓存

一条命令清缓存

[root@server1 ~]# varnishadm ban req.url  "~" /index.html
[root@server1 ~]# varnishadm ban req.url  "~" /

这里可参考我写的《Varnish的CDN加速功能实现》这篇文章

新版varnish自带界面输入命令清缓存(使用界面清缓存)

[root@server1 ~]# varnishadm
200        
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,3.10.0-514.el7.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
varnish-6.3.1 revision 6e96ff048692235e64565211a38c41432a26c055

Type 'help' for command list.
Type 'quit' to close CLI session.

ban req.url ~ "index.html"
200              #200表示清理成功

exit
101        
Unknown request.
Type 'help' for more info.

^D[root@server1 ~]#   

#按Ctrl + D退出
上面的非运维人员不好用

使用php前端页面推送平台清缓存

为了给非运维人员使用我们使用一个php写的平台
先获取php推送平台大压缩包

[root@server1 ~]# scp root@172.25.21.250:/home/kiosk/Desktop/varnish相关软件安装包/bansys.zip .
root@172.25.21.250's password: 
bansys.zip                                      100%  126KB 125.6KB/s   00:00    
[root@server1 ~]# ls
bansys.zip                       varnish-6.3.1-1.el7.x86_64.rpm
jemalloc-3.6.0-1.el7.x86_64.rpm

因为系统没有unzip的命令(我们需要unzip命令来解压bansys.zip)
所以我们得下载unzip,
第二由于推送平台是php写的所以我们要安装php来时使用它
我们要将CDN推送平台发布到apache默认目录下,在网页里操作需要安装httpd服务

[root@server1 ~]# cd /var/www/html/
[root@server1 html]# ls
bansys  class_socket.php  config.php  index.php  purge_action.php  static
更改config.php这个配置文件文件,配置php推送平台里的参数
改完如下:
[root@server1 html]# vim config.php
<?php
 //varnish主机列表
 //可定义多个主机列表
 $var_group1 = array(
                        'host' => array('172.25.21.1'),   
#这里定义的varnish的服务端
                                                'port' => '8080', 
#端口为改为8080               
                    );
#由于我们没有用到数据库,所以我们将mysql这个模块给删掉
 //varnish群组定义
 //对主机列表进行绑定
 $VAR_CLUSTER = array(
                         'www.westos.org' => $var_group1,  
#清理缓存是用域名清理的我们这里改为我们自己的www.westos.org,因为我们没有那么多组,就改为$var_group1
#因为我们只用一个域名来做实验,底下多出的域名样式删掉
                     );
 //varnish版本
 //2.x和3.x推送命令不一样
 $VAR_VERSION = "3";   #我们使用的varnish已经到6了,所以选新的版本3
?>

启动varnish服务器server1上的httpd服务

[root@server1 html]# systemctl start httpd

在浏览器中搜索172.25.21.1:8080
在这里插入图片描述我们这里使用的apache所以选择http

然后在改主配置文件:

[root@server1 html]# vim /etc/varnish/default.vcl
#在sub vcl_recv这个板块上面添加如下
acl westos {
"127.0.0.1";   #本地可以推送
"172.25.21.0"/24;  #写我们实验的网段
}

sub vcl_recv {      #将之前做的注释掉,防止影响实验结果
if (req.method == "BAN") {        
#如果请求方式为BAN(清理缓存中满足表达式的条件对象)等效我们用命令行手动清缓存
if (!client.ip ~ westos) {     
#如果IP不是我们前面acl westos中定义的IP,就不允许清除
        return(synth(405,"Not allowed"));
    }
ban("req.url ~ " + req.url);  #如果是的话就取出相应的缓存对象内容进行更新(清除)
     return(purge);
}
}
重启varnish服务
[root@server1 html]# systemctl restart varnish    
然后配置真机的解析:
[root@foundation21 kiosk]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1       localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.21.1 www.westos.org

#第一行第二行可以不删
在这里插入图片描述
.* 表示推送(清除)所有页面
在这里插入图片描述在这里插入图片描述
/index.html 表示清除单个页面缓存
在这里插入图片描述
推送就是清除单个页面的意思
把我们放在CDN里的东西更新,varnish,第一次请求它没有东西从服务器里取一个东西
放在里面(里面本身没有数据)

测试
[root@foundation21 kiosk]# curl -I www.westos.org
HTTP/1.1 200 OK
……
X-Cahce: HIT from westos-huige.cache
Accept-Ranges: bytes
Connection: keep-alive
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值