centos7_nignx + keepalived高可用安装部署配置

 主备服务器配置(主):

第一步:安装keepalived

[root@lb01 ~]# yum install -y keepalived

第二步:修改配置文件

[root@lb01 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@lb01 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
   # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
   router_id keep_101
}

vrrp_script check_web {
    script "/etc/keepalived/check_web.sh"    # 脚本存放的位置
    interval 2     # 每隔两秒运行上一行脚本
    weight -20     # 如果脚本运行成功,则升级权重-20,自动切换到备
}

vrrp_instance VI_1 {
    # 主机=MASTER;备用机=BACKUP
    state MASTER
    # 该实例绑定的网卡名称
    interface ens33
    # 保证主备节点一致
    virtual_router_id 51
    # 权重,master值 > backup值
    priority 100
    # 主备组播报发送间隔时间2秒
    advert_int 2
    # 认证权限密码,防止非法节点进入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟出来的ip,可以有多个(vip)
    virtual_ipaddress {
       10.0.0.3
    }
    # 调用监控脚本
    track_script {
        check_web
    }
}

第三步:编写nginx监控脚本,如果nginx服务停止,keepalived服务也停止,并切换到备主机

[root@lb01 ~]# vim /etc/keepalived/check_web.sh
#!/bin/bash
num=`ps -C nginx --no-header |wc -l`
if [ $num -eq 0 ]
then
    systemctl stop keepalived
fi
[root@lb01 ~]# chmod +x /etc/keepalived/check_web.sh

ps:第二种方式,如果nginx服务停止,则只切换到备主机,keepalived服务并不停止

[root@lb01 ~]# vim /etc/keepalived/check_web.sh
#!/bin/bash
num=`ps -ef|grep -c [n]ginx`
if [ $num -eq 0 ]
then
  exit 1
else
  exit 0
fi
[root@lb01 ~]# chmod +x /etc/keepalived/check_web.sh

第四步:启动、开机自启keepalived服务

[root@lb01 ~]# systemctl start keepalived
[root@lb01 ~]# systemctl enable keepalived

第五步:查看keepalived服务状态;查看虚拟IP生效情况;

[root@lb01 ~]# ps -ef|grep "keepalived"
root       1647      1  0 09:35 ?        00:00:00 /usr/sbin/keepalived -D
root       1648   1647  0 09:35 ?        00:00:00 /usr/sbin/keepalived -D
root       1649   1647  0 09:35 ?        00:00:00 /usr/sbin/keepalived -D
root       1706   1191  0 10:11 pts/0    00:00:00 grep --color=auto keepalived
[root@lb01 ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:fb:05:d3 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global noprefixroute ens33
    valid_lft forever preferred_lft forever
inet 10.0.0.3/32 scope global ens33     ------------ 此处为创建出的虚拟IP
    valid_lft forever preferred_lft forever
inet6 fe80::be70:f662:30f9:ed7b/64 scope link tentative noprefixroute dadfailed 
    valid_lft forever preferred_lft forever
inet6 fe80::b2c2:a66b:86bf:3a1/64 scope link tentative noprefixroute dadfailed 
    valid_lft forever preferred_lft forever
inet6 fe80::3b1b:133e:a53:1683/64 scope link tentative noprefixroute dadfailed 
    valid_lft forever preferred_lft forever

主备服务器配置(备):

第一步:安装keepalived         ----略

第二步:修改配置文件

[root@lb02 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@lb02 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
   router_id keep_102  #此处id修改为唯一标识
}

vrrp_script check_web {
    script "/etc/keepalived/check_web.sh"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state BACKUP       #此处名称修改为备
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       10.0.0.3
    }
    track_script {
        check_web
    }
}

第三步:编写nginx监控脚本        ----略

第四步:启动、开机自启keepalived服务        ----略

第五步:查看keepalived服务状态;        ----略

开始测试:如果主服务器nginx服务停止,则自动切换到备主机

第零步:主备服务器 keepalived + nginx 服务都处于开启的状态

[root@lb01 keepalived]# ps -ef|grep "nginx\|keepalived"
root      30384      1  0 14:40 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     30385  30384  0 14:40 ?        00:00:00 nginx: worker process
nginx     30386  30384  0 14:40 ?        00:00:00 nginx: worker process
root      32449      1  0 15:05 ?        00:00:00 /usr/sbin/keepalived -D
root      32450  32449  0 15:05 ?        00:00:00 /usr/sbin/keepalived -D
root      32451  32449  0 15:05 ?        00:00:00 /usr/sbin/keepalived -D
root      32458   1191  0 15:06 pts/0    00:00:00 grep --color=auto nginx\|keepalived

第一步:查看虚拟IP在哪台主机,结果为主服务器。

[root@lb01 ~]# ip a|grep "10.0.0.3"
    inet 10.0.0.3/32 scope global ens33
[root@lb02 ~]# ip a|grep "10.0.0.3"

第二步:浏览器访问虚拟IP

第三步:停止主服务器 nginx 服务,并查看nginx + keepalived服务状态

[root@lb01 ~]# systemctl stop nginx
[root@lb01 ~]# ps -ef|grep "nginx\|keepalived"
root      34807   1191  0 15:42 pts/0    00:00:00 grep --color=auto nginx\|keepalived

# ps:停止主服务器nginx服务,keepalived服务监控的脚本自动生效,会执行以下结果
# 1.停止keepalived服务
# 2.降级权重为80
# 3.自动切换到备服务器

第四步:查看是否已经自动切换到备服务器

[root@lb02 ~]# ip a|grep "10.0.0.3"
    inet 10.0.0.3/32 scope global ens33

第五步:浏览器访问虚拟IP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值