基础环境
vip:10.0.1.15
Director节点 lvs-1:10.0.1.8 (master) Director节点 lvs-2:10.0.1.9 (backup)
Real server1 web1:10.0.1.4 Real server1 web2:10.0.1.5
服务部署
yum在线装
yum -y install keepalived
master主机keepalive 配置
/etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_instance VI_1 {
#备用服务器上为 BACKUP
state MASTER
#绑定vip的网卡为eth0,根据实际主机情况
interface eth0
virtual_router_id 50
#备用服务器priority为90
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass LVSPass
}
virtual_ipaddress {
10.0.1.15
}
}
virtual_server 10.0.1.15 80 {
#(每隔10秒查询realserver状态)
delay_loop 10
#(lvs 算法)
lb_algo wlc
#(DR模式)
lb_kind DR
#(同一IP的连接60秒内被分配到同一台realserver)
persistence_timeout 0
#(用TCP协议检查realserver状态)
protocol TCP
######### 后端web ###########
real_server 10.0.1.4 80 {
#(权重)
weight 100
TCP_CHECK {
#(10秒无响应超时)
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.0.1.5 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
启动服务
systemctl start keepalived
systemctl enable keepalived
keepalived查看
ps aux |grep keepalived
ip add
backup主机keepalive 配置
三个区别参数 /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
#备用服务器上为 BACKUP
state BACKUP
#绑定vip的网卡为eth0,根据实际主机情况
interface eth0
#备用服务器上为90
priority 90
......
开启转发
echo 1 > /proc/sys/net/ipv4/ip_forward
grep ip_forward /etc/sysctl.conf &>/dev/null || echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
lvs_rs.sh
/opt/lvs_rs.sh
yum -y install ipvsadm
#read -p "请输入vip地址:" vip
vip=10.0.1.15
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
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
nginx两台配置
server {
listen 80 default_server;
default_type application/json;
server_name _;
return 200 '{"date":"$time_local","host":"web-2","result":"nginx json"}';
access_log /usr/local/nginx/logs/default.log;
}
#禁止ip直接访问
查看状态
ipvsadm -ln
ipvsadm -ln --stats
ipvsadm -ln --rate