实验环境
主机名(IP) 服务
server1(172.25.254.1) varnish
server2(172.25.254.2) apache
server3(172.25.254.3) apache
server1:
部署varnish服务,可查看上一篇博文
server2
安装httpd开启服务
在默认发布目录下编写后端分享服务
server3:
同server2配置相同
一.配置多个后端服务器
1.varnish的配置文件中添加解析
server1
[root@server1 ~]# vim /etc/varnish/default.vcl
文件编辑内容如下:
backend web1 { ##后端的第一个服务器web1
.host = "172.25.254.2"; #将server2
www.westos.org作为第一个服务器的主机名
.port = "80";
}
backend web2 { #后端的第二个服务器web2
.host = "172.25.254.3"; #将server3 bbs.westos.org作为第二个服务器的主机名
.port = "80";
}
当访问www.westos.org时从web1也就是server2上取数据
当访问bbs.westos.org时从web2也就是server3上取数据
访问其它页面会报错
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.测试
在物理机添加解析
在物理机中测试如下:
二.负载均衡
1.负载均衡的基本概念
负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务分担给多个服务器或网络设备,从而提高业务处理能力。
负载均衡的算法有很多种,在varnish中常采用的算法是轮询法
2.负载均衡的实现
在server1(varnish端)
[root@server1 ~]# vim /etc/varnish/default.vcl
文件编辑内容如下:
在物理机上测试如下:
可以发现当访问www.westos.org时,因为有lb函数所以在后端服务器server2和server3之间进行轮询调度,而bbs.westos.org没有lb函数,所以只是显示server3后端realserver的内容。
三.一台主机有多个虚拟解析
1.在server3的httpd服务器上建立多个虚拟主机
在httpd配置文件中添虚拟主机
[root@server3 html]# cd /etc/httpd/conf
[root@server3 conf]# ls
httpd.conf magic
[root@server3 conf]# vim httpd.conf
编辑内容如下:
打开虚拟主机的80端口
添加虚拟主机所要发布的内容
2.验证如下:
在物理机上添加解析
vim /etc/hosts
在物理机中访问测试