高可用主备模式
准备工作
准备两台centos7,这里是我的虚拟机192.168.1.25 和192.168.1.117。
分别在两台虚拟机中安装nginx和keepalived,nginx的安装,两台机器分别安装keepalived
#这里使用yum安装
yum install keepalived -y
...
#安装完后查看是否安装完成
rpm -q -a keepalived
#表明安装成功
keepalived-1.3.5-16.el7.x86_64
keepalived的配置文件位置: /etc/keepalived/keepalived.conf
高可用配置
192.168.1.117作为主节点
keepalived.conf如下,备用节点按注释修改对应的值就可以。
# 全局配置
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.1.117 #机器ip
smtp_connect_timeout 30
router_id LVS_DEVEL # /etc/hosts 中配置的主机名 例如:127.0.0.1 LVS_DEVEL
}
# 脚本配置
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh" # 检测nginx的脚本文件
interval 2 #(检测脚本执行的间隔)
weight 2 # 权重
}
# 虚拟ip配置
vrrp_instance VI_1 {
state MASTER # 备份服务器上将 MASTER 改为 BACKUP
interface enp0s3 # 网卡
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 # 心跳时间间隔
authentication { # 权限校验方式
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.50 # VRRP H 虚拟地址 最后通过虚拟地址来访问,主备要一致
}
}
nginx_check.sh的内容,放在keepalived.conf中配置的位置
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
完成上述步骤,依次启动nginx和keepalived
启动 nginx:./nginx
启动 keepalived:systemctl start keepalived.service
测试
访问配置文件中的虚拟地址:192.168.1.50
现在停掉192.168.1.117节点
继续访问:192.168.1.50
依旧可用。