安装环境
Nginx:
10.142.232.113:8383
10.142.232.114:8383
10.142.232.115:8383 将 114和 115配上高可用组建keepalived
Keepalived配置说明
114上配置keepalived的Master,115上配置keepalived的Backup。
vrrp_script chk_http_port {
script "/usr/local/src/check_nginx_pid.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state MASTER #指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器
interface eth0 #指定HA监测网络的接口
virtual_router_id 51 #虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须是一致的
priority 100 #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
advert_int 1 #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { #设置验证类型和密码
auth_type PASS #设置验证类型,主要有PASS和AH两种
auth_pass 1234 #设置验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
virtual_ipaddress { #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
10.142.232.222/24
}
}
检测脚本
vim check_nginx_pid.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx #重启nginx
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移
killall keepalived
fi
fi
以上配置注意:
网卡信息: interface eth0 (这里换成自己地网卡名称) VIP:这里选取的虚拟IP是10.142.232.222/24,24位网络号。这个ip的选取要再,要确保内网环境中没有机器使用这个ip。
115上配置就是将 state 改成 BACKUP,priority修改为比100低即可。
启动验证
启动keepalived组件
service keepalived start
查看网卡绑定的ip
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 28:6e:d4:88:cb:ae brd ff:ff:ff:ff:ff:ff
inet 10.142.232.114/24 brd 10.142.232.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.142.232.222/24 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::2a6e:d4ff:fe88:cbae/64 scope link
valid_lft forever preferred_lft forever
可以看到这里的网卡eth0已经绑定了2个ip。
可以关掉keepalived的master,观察另外一台机器是否变成了Master。
VIP总会在keepalived服务器中的某一台上,也只会在其中的某一台上;VIP绑定的服务器上的nginx就是master,当VIP所在的服务器宕机了,keepalived会将VIP转移到backup上,并将backup提升为master。