Varnish—CDN加速的实现(多个后端服务器以及实现负载均衡以及虚拟主机)

本文详细介绍了如何使用Varnish实现负载均衡和缓存功能,包括配置多后端服务器、设置虚拟主机、实施轮询负载均衡策略及验证缓存效果。通过实际操作步骤,展示了Varnish在提高网站响应速度和承载能力方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验环境

主机ip
server1(varnish服务器)172.25.5.1
server2(后端web服务器)172.25.5.2
server3(后端web服务器)172.25.5.3
foundation4(客户端)172.25.5.250

续上一篇文章

1.多个后端服务器的配置

1.编辑varnish的配置文件(配置后端两台服务器)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@server1 ~]# vim /etc/varnish/default.vcl
backend web1 {         # 后端第一个服务器名web1
  .host = "172.25.5.2";     #将server2 www.westos.org作为第一个服务器主机
  .port = "80";
}

backend web2 {        # 后端第二个服务器名web2
  .host = "172.25.5.3";    #将server3 bbs.westos.org作为第二个服务器主机
  .port = "80";
}

#当访问 www.westos.org 或 westos.org 域名时从 web1 上取数据;
#访问 bbs.westos.org 域名时到 web2 取数据;
#访问其他,页面报错。
sub vcl_recv {     
   if (req.http.host ~ "^(www.)?westos.org") {
       set req.http.host = "www.westos.org";
       set req.backend = web1;
}elsif (req.http.host ~ "^bbs.westos.org") {
     set req.backend = web2;     
     } else {
         error 404 "westos  cache";
     }
}

2.重新启动服务,或者重新加载
在这里插入图片描述

[root@server1 ~]# /etc/init.d/varnish reload

3.在server2和server3配置http服务,并且写入内容
在这里插入图片描述
在这里插入图片描述

3.在客户端进行测试
修改本地解析
在这里插入图片描述
测试
在这里插入图片描述

2.负载均衡的配置

1.编辑varnish的配置文件
在这里插入图片描述
在这里插入图片描述

backend web1 {
  .host = "172.25.5.2";
  .port = "80";
}

backend web2 {
  .host = "172.25.5.3";
  .port = "80";
}

director lb round-robin {
        { .backend = web1;}
        { .backend = web2;}

}

sub vcl_recv {
   if (req.http.host ~ "^(www.)?westos.org") {
       set req.http.host = "www.westos.org";
       set req.backend = lb;   # 调用平衡轮叫函数
       return (pass);     ##为了测试方便,不进行缓存
}elsif (req.http.host ~ "^bbs.westos.org") {
     set req.backend = web2;
     } else {
         error 404 "westos  cache";
     }
}

2.重新启动服务
在这里插入图片描述
3.清楚缓存
在这里插入图片描述
4.在客户端进行测试,访问www.westos.org时,会出现每访问一次,会变跳
在这里插入图片描述

3.验证varnish的缓存作用

1.编辑配置文件
在这里插入图片描述
注释调上面实验的不缓存
return (pass);
在这里插入图片描述

在这里插入图片描述

sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos.cache";
}                        # 在varnish中命中HIT访问的域名
else {
set resp.http.X-Cache = "MISS from westos cache";
}                        # 后端服务器中得到MISS访问的域名
return (deliver);
}

2.重新启动服务
在这里插入图片描述
3.清除缓存
在这里插入图片描述

[root@server1 ~]# varnishadm ban.url .*$           ##清除所有缓存
[root@server1 ~]# varnishadm ban.url /index.html   ##清除网页的缓存
[root@server1 ~]# varnishadm ban.url /admin/$      ##清除admin 目录缓存

3.客户端测试
第一次显示没用缓存到
在这里插入图片描述
以后都会显示缓存到了
在这里插入图片描述

4.一台主机多个解析(虚拟主机):

  1. 在server3的httpd的默认发布目录中建立两个虚拟主机
[root@server3 ~]# vim /etc/httpd/conf/httpd.conf
 990 NameVirtualHost *:80   ##注释打开

##在最后编辑:
<VirtualHost *:80>
DocumentRoot /www
ServerName www.westos.org
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.westos.org
</VirtualHost>

2.创建目录/www 和/bbs,并编辑相应的前端文件

[root@server3 ~]# mkdir /www
[root@server3 ~]# mkdir /bbs
[root@server3 ~]# cd /www
[root@server3 www]# vim index.html
<h1>www.westos.org - server3</h1>
[root@server3 www]# cd /bbs
[root@server3 bbs]# vim index.html
<h1>bbs.westos.org - server3</h1>

3.重启httpd服务

[root@server3 bbs]# /etc/init.d/httpd restart

4.测试:

  • 在客户端添加解析
[root@foundation64 ~]# vim /etc/hosts
172.25.5.1 server1
172.25.5.3 www.westos.org bbs.westos.org

  • 访问测试
[root@foundation5 ~]# curl www.westos.org
<h1>www.westos.org - server3</h1>
[root@foundation5 ~]# curl bbs.westos.org
<h1>bbs.westos.org - server3</h1>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值