运维企业专题(2)HTTP加速器——Varnish缓存机制后篇(后端服务器集群、负载均衡与CDN推送平台搭建)

1.实验一:配置后端服务器集群

1)实验目的:定义不同域名站点的后端服务器,通过域名会访问不同的后端主机

2)实验过程:

<1>在调度器server1上编写Varnish的配置文件

vim /etc/varnish/default.vcl
backend web1 {            ##后端第一个服务器的名字web1
  .host = "172.25.6.2";   ##后端第一个服务器的ip
  .port = "80";
}

backend web2 {             ##后端第一个服务器的名字web2
  .host = "172.25.6.3";  ##后端第二个服务器的ip
  .port = "80";
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = web1;           ##当访问www.westos.org的时候从web1上获取数据
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;           ##当访问bbs.westos.org域名时从web2上获取数据
} else {error 404 "westos cache";
}
}

在这里插入图片描述

/etc/init.d/varnish reload		##重启服务

<2>修改server2和server3的默认发布页面

yum install -y httpd
vim /var/www/html/index.html

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

<3>在客户端(这里的客户端指物理机)进行地址解析

vim /etc/hosts

在这里插入图片描述
<4>测试
在这里插入图片描述

2.实验二:使用Varnish实现负载均衡

1)实验目的:让客户端访问www.westos.org的时候,server2和server3轮循响应客户端的请求;访问bbs.westos.org时,只在server3

2)实验过程:

<1>调度器server1上编写/varnish配置文件

vim /etc/varnish/default.vcl
  7 backend web1 {
  8   .host = "172.25.8.2";
  9   .port = "80";
 10 }
 11 
 12 backend web2 {
 13   .host = "172.25.8.3";
 14   .port = "80";
 15 }
 16 
 17 director lb round-robin{		#设定负载均衡(指定算法:轮循)
 18         { .backend = web1;}
 19         { .backend = web2;}
 20 }
 21 sub vcl_recv {
 22         if(req.http.host ~"^(www.)?westos.org") {
 23                 set req.http.host = "www.westos.org";
 24                 set req.backend = lb;	#指定轮循算法的定义名
 25                 return (pass);		#关闭varnish缓存功能
 26 }elsif (req.http.host ~"^bbs.westos.org"){
 27         set req.backend = web2;
 28 }else {
 29         error 404 "error";
 30 }
 31 }

在这里插入图片描述

/etc/init.d/varnish reload		##重新加载服务

<2>清理缓存,再次进行测试

varnishadm ban.url .*$

<3>测试

curl www.westos.org			##由server2、server3轮循响应客户端请求

在这里插入图片描述

curl bbs.westos.org		##只有server3响应

在这里插入图片描述

连续两次访问www.westos.org,均是直接由后端服务器提供的数据,

在这里插入图片描述

3.实验三:后端服务器server3的虚拟主机配置(在实验二的基础上进行)

1)在server3上进行配置

vim /etc/httpd/conf/httpd.conf			##再文件末尾补充
NameVirtualHost *:80				##990行取消注释,开启虚拟主机功能

在这里插入图片描述

建立虚拟主机的发布目录

在这里插入图片描述

/etc/init.d/httpd restart				##重启服务

2)测试:

访问 www.westos.org,虚拟主机1与server2轮循响应请求,因为虚拟主机1的ServerName为 www.westos.org

在这里插入图片描述
访问 bbs.westos.org
在这里插入图片描述

4.CDN推送平台搭建——web界面批量清除缓存

1)在调度器server1上安装相关服务

yum install php unzip -y

2)官网下载安装包bansys.zip,解压到指定目录下

unzip bansys.zip -d /var/www/html/
cd /var/www/html/
mv * ../
rm -rf bansys/

在这里插入图片描述

3)

vim config.php
<?php
 //varnish主机列表
 //可定义多个主机列表
 $var_group1 = array(
                        'host' => array('172.25.6.1'),
                                                'port' => '8080',
                    );
 //varnish群组定义
 //对主机列表进行绑定
 $VAR_CLUSTER = array(
                         'www.westos.org' => $var_group1,
                     );  
 //varnish版本
 //2.x和3.x推送命令不一样
 $VAR_VERSION = "3";
?>

在这里插入图片描述

注意:这里定义的主机列表中有端口的设置,这个端口时httpd的端口,默认是80,但是我们的80端口已经被varnish占用,所以现在让httpd使用8080端口

4)修改httpd的默认端口,开启服务,查看端口是否开启

vim /etc/httpd/conf/httpd.conf 

在这里插入图片描述

	/etc/init.d/httpd restart			##重启服务
	netstat -tnlp		##查看httpd的端口,是否更改生效

在这里插入图片描述

5)打开浏览器测试平台是否搭建完成

在这里插入图片描述

6)编辑varnish的默认配置文件,添加访问控制(那个网段的ip可以访问),编辑完后reload服务

vim /etc/varnish/default.vcl 
acl westos {
        #设置访问控制
        "127.0.0.1";
        "172.25.6.0"/24;
}

sub vcl_recv {
if (req.request == "BAN") {
if (!client.ip ~ westos) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
}

在这里插入图片描述
注意: 前面的实验中为了测试效果没有保留缓存,在这一实验中将return(pass);注释掉,让调度器上的缓存保留下来

/etc/init.d/varnish reload

7)利用推送平台管理之前可以看到访问到的资源是从调度器中的缓存得到的
在这里插入图片描述

8)利用推送平台中清除后端服务器的所有缓存

在这里插入图片描述
在这里插入图片描述
9)在客户端再次访问网页,查看调度器上的缓存有没有被清除掉

在这里插入图片描述
实验成功!??

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值