『1』推送操作 --需要在网上提前找到bansys的安装包
在虚拟机1中:
1、yum install -y httpd php unzip
2、vim /etc/http/conf/httpd.confListen 8080 --因为与varinsh中的80端口发生冲突,所以改变apache的端口
3、/etc/init.d/httpd start
4、解压bansys并放到http发布目录
5、vim /var/www/html/config.php
<?php
//可定义多个主机列表
$var_group1 = array(
'host' => array('172.25.254.1'), #设定推送的主机信息
'port' => '80',
);
//varnish群组定义
//对主机列表进行绑定
$VAR_CLUSTER = array(
'www.iop.com' => $var_group1,
);
//varnish版本
//2.x和3.x推送命令不一样
$VAR_VERSION = "3";
?>
6、/etc/init.d/httpd restart
7、
vim /etc/varnish/default.vcl
acl iop{ #设置规则,设定可以推送的人和推送对象
"127.0.0.1";
"172.25.254.0"/24;
}
sub vcl_recv {
if (req.request == "BAN") { #判断访问对象
if (!client.ip ~ iop) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
if (req.http.host ~ "^(www.)?iop.com") {
set req.http.host = "www.iop.com";
set req.backend = lb;
#return (pass);
} elsif (req.http.host ~ "^bbs.iop.com") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
8、/etc/init.d/varnish reload
>client测试:
172.25.254.1:8080
进入推送页面 选http服务即可推送成功
/index.html
--此为推送成功
--推送成功后的不同结果
『2』负载均衡器
网络模型实质:
4层转发,7层代理
DR-lvs 基于4层模型: #适用于CDN节点
常用:lvs==linux virtual server
1.在server1中利用ipvsadm执行内核层面可执行的策略
策略内容为:rs不广播自己的vip地址,其他用户对他的vip地址直接访问时拒绝并不回应。
(1)添加yum仓库内容
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.34.250/rhel6.5/LoadBalancer
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.34.250/rhel6.5/HighAvailability
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.34.250/rhel6.5/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.34.250/rhel6.5/ScalableFileSystem
gpgcheck=0
(2)安装ipvsadm
yum install ipvsadm -y
(3)ipvsadm -A -t 172.25.254.100:80 -s rr #添加虚拟服务,并设置轮转调度算法
(4)ipvsadm -a -t 172.25.254.100:80 -r 172.25.34.2:80 -g
(5)ipvsadm -a -t 172.25.34.100:80 -r 172.25.34.3:80 -g
(6)/etc/init.d/ipvsadm save #保存策略
(7)ip addr add 172.25.254.100/24 dev eth0 #添加虚拟ip
2.在server2(rs1),server3(rs2)上添加相同的策略
(1)yum install arptables_jf -y #安装arp防火墙
(2)ip addr add 172.25.254.100/32 dev eth0 #添加虚拟ip
(3)arptables -A IN -d 172.25.254.100 -j DROP #拒绝访问虚拟ip的请求
(4)arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.2(server3换成3) #不广播本机的虚拟ip,只广播真实ip,因为vs的虚拟ip和server的虚拟ip是一样的,所以只能让vs响应arp应答
5、/etc/init.d/arptables_jf save
测试后访问结果:
--物理地址相同,可见是通过调度机(server1)访问的目的地址
『3』自动化DR:对后端健康检查
#server1---vs:
1、yum install perl ldirectord-3.9.5-3.1.x86_64.rpm -y
2、cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
3、vim /etc/ha.d/ldirectord.cf #自动创建Lvs策略
virtual=172.25.254.100:80
real=172.25.254.2:80 gate
real=172.25.254.3:80 gate
fallback=127.0.0.1:80 gate
service=http
scheduler=rr
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request="index.html"
#receive="Test Page"
#virtualhost=www.x.y.z
4、/etc/init.d/ipvsadm stop
5、/etc/init.d/ldirectord start
6、vim /etc/http/conf/httpd.conf
Listen 8080
7、rm -rf /var/www/html/*
8、创建新的html文件
9、/etc/init.d/httpd restart
#测试:关闭server2,server3 http 服务
#client测试:
curl 172.25.254.100 #或者添加解析后curl www.iop.com
----已进行轮循
----关闭server2httpd后(server3同理)