为了账号安全,请及时绑定邮箱和手机立即绑定

Keepalived+Nginx双主热备实现Nginx高可用

标签:
Nginx

之前我们介绍了Keepalived+Nginx双机主备实现Nginx高可用,这种架构有个很大的缺陷,就是只有一台Nginx服务器提供服务,另外一台会一直被闲置,造成资源浪费。

通过对Keepalived+Nginx双机主备进行优化,使用两个虚拟IP,两台Nginx服务器互为主备


Keepalived+Nginx双机主备的架构图:

5fbb2ba80001996c19201080.jpg

Keepalived+Nginx双主热备的架构图:

其中,虚拟IP 192.168.1.161的Master节点为服务器192.168.1.171,Backup节点为服务器192.168.1.172;虚拟IP 192.168.1.162的Master节点为服务器192.168.1.172,Backup节点为服务器192.168.1.171

DNS可以实现一个域名对应多个IP

Keepalived+Nginx双主热备配置

第一台服务器配置:

global_defs {
   router_id KEEPALIVED_NODE_2
}

vrrp_script check_nginx_alive {
    script "/etc/keepalived/check_nginx_alive.sh"
    interval 2 # 每隔两秒运行上一行脚本
    weight 10 # 如果脚本运行成功,则升级权重+10
    # weight -10 # 如果脚本运行失败,则升级权重-10
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 50
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_nginx_alive   # 追踪 nginx 脚本
    }
    virtual_ipaddress {
        192.168.1.171
    }
}

vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_nginx_alive   # 追踪 nginx 脚本
    }
    virtual_ipaddress {
        192.168.1.172
    }
}

第二台服务器配置:

global_defs {
   router_id KEEPALIVED_NODE_1
}

vrrp_script check_nginx_alive {
    script "/etc/keepalived/check_nginx_alive.sh"
    interval 2 # 每隔两秒运行上一行脚本
    weight 10 # 如果脚本运行成功,则升级权重+10
    # weight -10 # 如果脚本运行失败,则升级权重-10
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 50
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_nginx_alive   # 追踪 nginx 脚本
    }
    virtual_ipaddress {
        192.168.1.171
    }
}

vrrp_instance VI_2 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_nginx_alive   # 追踪 nginx 脚本
    }
    virtual_ipaddress {
        192.168.1.172
    }
}






点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消