企业CDN缓存系统varnish——搭建一个多台后端服务器的varnish系统(内含负载均衡)

注意:上一个实验的varnish系统为:一个客户端,一个反向代理器(搭建varnish系统),一个后端服务器

接下来的实验为node1将为多台服务器作为缓存,也是反向代理器为多个web服务器做代理

1.varnish的作用:

varnish加速器有两个作用分别是:反向代理器和缓存数据
(1)当是用户的私人数据和动态数据的时候:
varnish只是作为代理服务器去问后端服务器要东西然后给客户端,自己不会缓存(负载均衡、调度)更新快的数据一般没有缓存
(2)一般的数据varnish代理服务器不但要东西还要给自己缓存一份

2.在上一篇的基础上搭建多个web后端

步骤一:开启node3快照,设置ip,主机名,yum源(准备将node3作为第二个web服务器)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里快照node3已经导入镜像并且开启,因此接下来配置网络、修改主机名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤二:将node3也作为一个后端web服务器(也就是在node3上面搭建一个web服务器)

yum install httpd -y
systemctl start httpd
vim /var/www/html/index.html
bbs.westos.org
systemctl restart httpd
检测一下:curl localhost

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤三:在node1代理服务器上面进行配置(先设置两个最基本的后端)这个参考官方文档的说明

写入两个后端的信息
backend web1{
	.host = '172.25.12.2'
	.port = '80';
}
backend web2{
	.host = '172.25.12.3'
	.port = '80';
}

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

在这里要注意括号,分号问题,不要因为这个没有设置好导致服务起不来
此时curl www.westos.org拿到的是web1的资源、
curl bbs.westos.org拿到的是web2的资源实现了最基本的具有两台后端,
但是两台后端之间没有任何关系

3.使用vainish加速器实现两个web后端服务器之间的负载均衡

实际上企业当中的web后端服务器(为客户端提供资源的服务器)的性能有好有坏性能差一点的就让它少干一点活,性能好的就多分担一点

现在就是node2这个web服务器性能比较差,node3这个服务器性能比较好客户端通过varnish加速器访问node2的时候去轮询node3

实际上node2和node3上面存放的资源一模一样,只是为了实验效果明显起见,写为www.westos.org和bbs.westos.org
当客户端第一次访问node2的时候varnish去问node2要资源
当客户端第二次访问node2的时候varnish去问node3要资源
这个时候node2和node3上面的资源一模一样,客户端根本察觉不到,
也缓解了node2(性能差)的访问压力
客户端通过varnish加速器访问node3的时候只去找node3(性能好)
以上这个思想就是在node2和node3之间实现调度(负载均衡),这个调度就是在varnish这个加速器上面实现的
实现负载均衡的调度算法很多,为了实验效果明显起见,
我们使用轮询方式的均衡(就是轮着干)

步骤一:在node1(varnish加速器)上面进行配置

vim /etc/varnish/default.cvl
在上面写入:
import directors from "/usr/lib64/varnish/vmods/libvmod_directors.so";(调度模块)
在下面写入:
sub vcl_init {
	new lb = directors.round_robin();
	lb.add_backend(web1);
	lb.add_backend(web2);
}
表示在web1(node2)和web2(node3)之间实现负载均衡
在下面修改:
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend_hint = lb.backend();访问web1的时候去轮询web2
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend_hint = web2;
} else { return (synth(405));
}
systemctl restart varnish修改完之后重启服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤二:在真机上面做本地解析,进行测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

curl www.westos.org发现node2和node3负载均衡
curl bbs.westos.org没有负载均衡,只有node3提供资源
现在其实web1上面的资源和web2上面的资源一样
当客户通过node1代理去找node2和node3的时候
应该实现调度,负载均衡,在node1上面实现负载均衡
使找node2的资源的时候负载均衡(这里使用轮询方式),性能不好的服务器
使找node3的资源的时候不负载均衡,因为他的性能比较好
发布了111 篇原创文章 · 获赞 0 · 访问量 2535

猜你喜欢

转载自blog.csdn.net/qq_42024433/article/details/104694690
今日推荐