一.实验环境(rhel6.5版本)
主机环境:rhel6.5 selinux 和iptables 都必须是disabled状态
各主机信息
主机名 | IP | 服务 |
---|---|---|
server1 | 172.25.83.1 | varnish |
server2 | 172.25.83.2 | apache |
server3 | 172.25.83.3 | apache |
配置server1:
- 部署varnish服务,可查看我的上篇博文,网址为:https://mp.csdn.net/postedit/86633034
配置server2:
- 安装apache服务: yum install httpd -y
- 在http服务默认发布目录下编写文件
- 编写完后/etc/init.d/httpd start 开启服务即可
[root@server2~]# yum install httpd -y
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html
<h1>www.westos.org server2</h1>
[root@server2 ~]# /etc/init.d/httpd start
配置server3(同上):
- 安装apache服务: yum install httpd -y
- 在http服务默认发布目录下编写文件
- 编写完后/etc/init.d/httpd start 开启服务即可
[root@server3~]# yum install httpd -y
[root@server3 ~]# cd /var/www/html/
[root@server3 html]# vim index.html
[root@server3 html]# cat index.html
<h1>www.westos.org server2</h1>
[root@server3 ~]# /etc/init.d/httpd start
二.配置多个后端服务器
1.编辑varnish默认配置文件
vim /etc/varnish/default.vcl
backend web1 { #后端第一台服务器web1
.host = "172.25.83.2";
.port = "80";
}
backend web2 { #后端第二台服务器web2
.host = "172.25.83.3";
.port = "80";
##以下的意思是:当客户端访问www.xin.com域名时,到web1上获取数据
##当访问bbs.xin.com域名时,到web1上获取数据
##当访问其他时,会报错
sub vcl_recv {
if (req.http.host ~ "^(www.)?xin.com") {
set req.http.host = "www.xin.com";
set req.backend = lb;
#return (pass);
} elsif (req.http.host ~ "^bbs.xin.com") {
set req.backend = web2;
} else {
error 404 "xin cache";
}
}
2. 修改完后,/etc/init.d/varnish reload,重新加载varnish服务
测试端:物理机——IP为172.25.83.83
1.在真机上添加解析:vim /etc/hosts
2.测试
<1>可以在命令行测试
<2>也可以在浏览器查询;
三.实现负载均衡(在二基础上)
1.什么是负载均衡?
1)负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。
2)简单来说就是:其一是将大量的并发处理转发给后端多个节点处理,减少工作响应时间;其二是将单个繁重的工作转发给后端多个节点处理,处理完再返回给负载均衡中心,再返回给用户。目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的Internet服务器程序的可用性和可伸缩性。
2.负载均衡的配置
配置server1
1.编辑varnish默认配置文件
vim /etc/varnish/default.vcl
backend web1 {
.host = "172.25.83.2";
.port = "80";
}
backend web2 {
.host = "172.25.83.3";
.port = "80";
}
director lb round-robin { #轮循
{ .backend = web1; }
{ .backend = web2; }
}
sub vcl_recv {
if (req.http.host ~ "^(www.)?xin.com") {
set req.http.host = "www.xin.com";
set req.backend = lb; #启用轮循
#return (pass); #为了方便测试,此处不做缓存
} elsif (req.http.host ~ "^bbs.xin.com") {
set req.backend = web2;
} else {
error 404 "xin cache";
}
}
2.上述配置结束之后,/etc/init.d/varnish reload,重新加载varnish服务
测试端:物理机——IP为172.25.83.83
<1>可以在命令行测试:当访问www.xin. org时,web1与web2轮询
<2>也可以在浏览器查询;
访问域名——www.xin.com,第一次测试:
访问域名——www.xin.com,第二次测试:
访问域名——www.xin.com,第三次测试:
访问域名——www.xin.com,第四次测试:
访问域名——bbs.xin.com,测试:
四.apache虚拟主机(一台主机多个解析)
配置server3
1.编辑server3主机http服务主配置文件,在最后添加如如下内容
NameVirtualHost *:80 #将990行注释去掉
##在最后添加如下内容
<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.xin.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www
ServerName www.xin.com
</VirtualHost>
2.创建/www和/bbs两个目录,并在目录下编写发布文件index.html
[root@server3 html]# mkdir /www
[root@server3 html]# mkdir /bbs
[root@server3 html]# cd /www
[root@server3 www]# vim index.html
[root@server3 www]# cat index.html
<h1>www.xin.com server3</h1>
[root@server3 www]# cd /bbs
[root@server3 bbs]# vim index.html
[root@server3 bbs]# cat index.html <h1>
bbs.xin.com server3</h1>
3.重启httpd服务:/etc/init.d/httpd restart
测试端:物理机——IP为172.25.83.83
1.在物理机上添加解析:vim /etc/hosts
2.测试
<1>可以在命令行测试
<2>也可以在浏览器查询;
值的注意的是:此时访问IP为虚拟主机写的位置的第一个