一、在LVS服务器上操作
net.ipv4.ip_forward = 1 #开启路由转发
yum -y install ipvsadm keepalived
keepalived配置文件如下:
global_defs {
notification_email {
cuibobo@mansoncui.com
}
notification_email_from root@lvs-master.localdomain
smtp_server 127.0.0.1
smtp_connection_timeout 30
router_id LVS_DEVEL # 设置lvs的id,在一个网络内应该是唯一的
}
vrrp_instance VI_1 {
state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备
interface eth0 #指定Keepalived的角色,MASTER为主,BACKUP为备
virtual_router_id 51 #虚拟路由编号,主备要一致
priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR
advert_int 1 #VRRP报文发送间隔,默认为1s
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.199 #定义虚拟IP(VIP)192.168.10.199,可多设,每行一个
}
}
# 定义对外提供服务的LVS的VIP以及port
virtual_server 192.168.10.199 80 {
delay_loop 5 # 设置健康检查时间,单位是秒
lb_algo wrr # 设置负载调度的算法为wlc
lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式
nat_mask 255.255.255.0
persistence_timeout 300
protocol TCP
real_server 192.168.10.146 80 { # 指定real server1的IP地址
weight 5 # 配置节点权值,数字越大权重越高
#根据检测80是否可用
# TCP_CHECK {
# connect_timeout 10
# nb_get_retry 3
# delay_before_retry 3
# connect_port 80
# }
#根据web服务访问文件
HTTP_GET {
url {
path /monitor/cs.html
nb_get_retry 3
delay_before_retry 3
}
}
}
real_server 192.168.10.147 80 { # 指定real server2的IP地址
weight 1 # 配置节点权值,数字越大权重越高
HTTP_GET {
url {
path /monitor/cs.html
nb_get_retry 3
delay_before_retry 3
}
}
# TCP_CHECK {
# connect_timeout 10
# nb_get_retry 3
# delay_before_retry 3
# connect_port 80
# }
}
}
3、ipvsadm --save > /etc/sysconfig/ipvsadm #创建文件,不然不能启动
4、启动keepalived 和ipvsadm
systemctl start keepalived && systemctl enable keepalived
systemctl start ipvsadm && systemctl enable keepalived
5、添加VIP和应用服务器
用的模式是dr,后台的web server用的nginx.这时候一条请求过来,在程序没有问题的情况下,一条连接最多也就五秒就断开了.这时候你可以这样设置:ipvsadm --set 5 10 300.设置tcp连接只保持5秒中
ipvsadm -A -t 192.168.10.199:80 -s wrr
ipvsadm -a -t 192.168.10.199:80 -r 192.168.10.147:80 -w 1
ipvsadm -a -t 192.168.10.199:80 -r 192.168.10.146:80 -w 1
二、应用服务器部署web服务和绑定VIP
1、绑定虚拟VIP脚本:
#!/bin/bash
#description: Config realserver
VIP=192.168.10.199
rpm -q net-tools
if [ $? -eq 1 ];then
yum -y install net-tools
fi
chmod +x /etc/rc.d/init.d/functions
/etc/rc.d/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
2、安装nginx,yum -y install nginx
三、在浏览器访问
http://$VIP/test.html