请选择 进入手机版 | 继续访问电脑版

双机主备Keepalived配置Nginx高可用,实现7x24不间断服务

[复制链接]
茂忠想你 发表于 2021-1-3 11:58:30 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Keepalived安装摆设

  • 下载所在:点击下载:https://www.keepalived.org/download.html
  • 把压缩包上传到服务器,再对keepalived举行解压 :tar -zxvf keepalived-2.0.18.tar.gz 得到源文件要解压编译和安装。
  • 解压后进入到解压出来的目次,看到会有 configure文件 ,那么就可以做设置了(设置安装和nginx一模一样)

  • 设置keepalived 的安装目次和焦点设置目次 ./configure --prefix=/var/temp/keepalived --sysconf=/etc prefix 为 安装目次所在 sysconf 为焦点设置目次,我们keepalived的设置就到etc下。注意一定要设置到etc下,否则后期设置时大概会出现设置文件找不到等情况。
  • 设置好后,使用make && make install 来编译和安装。
  • 看到/var/temp/keepalived/有bin、sbin、share 和/etc/keepalived下有 keepalived.conf、samples 表现安装乐成!

主从设置 Keepalived
设置主从时特别注意

  • vrrp_instance 下的state 只有一个主为MASTER ,其他都是 BACKUP
  • global_defs 下的 router_id 相当于这台呆板的唯一标志,不能重复
  • vrrp_instance 下的interface 网卡名称必须查抄是否和自己网卡一样(ip addr 查抄)

  • vrrp_instance 下的 priority 权重必须小于MASTER 的权重,选举谁高选谁
  • vrrp_instance 下的 authentication 和 virtual_router_id 所有节点都保持一致即可
  • vrrp_instance 下的 virtual_ipaddress 是虚拟ip所在,设置一个即可,它会出现在MASTER 上运行,当MASTER 宕机则会转移到权重高的BACKUP上,来维持高可用,当MASTER 规复,虚拟ip网关转移到MASTER节点上。
下面为 Keepalived设置
通过下令 vim keepalived.conf 打开设置文件
  1. ! Configuration File for keepalivedglobal_defs {    #其他都是邮件告诫发邮件的    #notification_email {        #  acassen@firewall.loc        #  failover@firewall.loc        #  sysadmin@firewall.loc        #}        #notification_email_from Alexandre.Cassen@firewall.loc        #smtp_server 192.168.200.1        #smtp_connect_timeout 30                # 路由id:当前安装keepalived的节点主机标识符,包管全局唯一 246可以为你的公网ip末了来区分        router_id keepa_master_246                 # vrrp_skip_check_adv_addr        # vrrp_strict        # vrrp_garp_interval 0        # vrrp_gna_interval 0}#实例组vrrp_instance VI_1 {    ## 表现状态是MASTER主机照旧备用机BACKUP    state MASTER    # 该实例绑定的网卡 (查询你的网卡信息 ip addr)    interface eth0    # 包管主备节点一致即可     virtual_router_id 51   # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选    priority 100   # 主备之间同步查抄时间隔断,单位秒 心跳    advert_int 1   # 认证权限暗码,防止非法节点进入    authentication {        auth_type PASS        auth_pass 1111    }   # 虚拟出来的ip,可以有多个(vip)    virtual_ipaddress {            # 注意:主备两台的vip都是一样的,绑定到同一个vip        192.168.1.180    }}#默认设置中下面另有设置删除即可# .....
复制代码
下面为 Keepalived设置 (一般为另一台服务器中重新上面的使用)
通过下令 vim keepalived.conf 打开设置文件
  1. ! Configuration File for keepalivedglobal_defs {    #其他都是邮件告诫发邮件的    #notification_email {        #  acassen@firewall.loc        #  failover@firewall.loc        #  sysadmin@firewall.loc        #}        #notification_email_from Alexandre.Cassen@firewall.loc        #smtp_server 192.168.200.1        #smtp_connect_timeout 30                # 路由id:当前安装keepalived的节点主机标识符,包管全局唯一 246可以为你的公网ip末了来区分        router_id keepa_backup_293                 # vrrp_skip_check_adv_addr        # vrrp_strict        # vrrp_garp_interval 0        # vrrp_gna_interval 0}vrrp_instance VI_1 {    ## 表现状态是MASTER主机照旧备用机BACKUP    state BACKUP    # 该实例绑定的网卡 (查询你的网卡信息 ip addr)    interface ens33    # 包管主备节点一致即可     virtual_router_id 51   # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选    priority 80   # 主备之间同步查抄时间隔断,单位秒 心跳    advert_int 1   # 认证权限暗码,防止非法节点进入    authentication {        auth_type PASS        auth_pass 1111    }   # 虚拟出来的ip,可以有多个(vip)    virtual_ipaddress {            # 注意:主备两台的vip都是一样的,绑定到同一个vip        192.168.1.180    }}#默认设置中下面另有设置删除即可# .....
复制代码
双机主备Keepalived设置文件完成后实现高可用
1.分别启动Keepalived
进入你的安装目次 /var/temp/keepalived/sbin 下 ./keepalived 来启动
2.查抄启动乐成没有
到你的MASTER服务器上输入ip addr 你会发现多了你的虚拟ip的网关,网卡也是你设置的,这说明已经乐成了!,到这里已经可以完成Keepalived高可用包管。

开始使用Keepalived追踪nginx实现高可用
我们先要写一个shell脚本重启nginx 先创建vim restart_nginx.sh文件
  1. #/var/temp/nginx/sbin/nginx 为nginx启动所在A=`ps -C nginx --no-header |wc -l`#判定nginx是的宕机,如果宕机了,重试重启if [ $A -eq 0 ];then        /var/temp/nginx/sbin/nginx        #等候一会时间再查抄是否重启了,nginx如果还没另有重启这停止keepalived,开启备用机        sleep 3        if [ $A -eq 0 ];then                killall keepalived        fifi
复制代码
生存之后大概会出现权限不敷 -bash: ./restart_nginx.sh: Permission denied
我们通过chmod +x restart_nginx.sh 赋予权限后运行试试,可以先把nginx关闭再使用脚本运行。前后测试一下是否可以启动nginx。
设置重启脚本到keepalived.conf
到keepalived添加vrrp_script 设置脚本
  1. #vrrp_script 设置脚本vrrp_script restart_nginx_alive{        #要运行脚当所在        script "/etc/keepalived/restart_nginx.sh"        interval 2 #每隔两秒运行上一行脚本        weight 10 #如果脚本运行乐成,则升权 +10        #weight -10 #如果脚本运行失败,则升权 -10}#vrrp_instance 中添加调用 track_scriptvrrp_instance VI_1 {#追踪script中脚本        track_script{                restart_nginx_alive         }}
复制代码
添加到设置

重启Keepalived使得设置文件生效
  1. systemctl restart keepalived
复制代码
你可以去主动实验关闭nginx, keepalived它会自动帮你重新启动nginx.
双主热备方案更加节流资源
结构图:

通过云分析dns 把虚拟ip 设置到dns上,设置二个一样的分析规则,来搭建dns轮训。
第一台服务器
  1. ! Configuration File for keepalivedglobal_defs {        # 路由id:当前安装keepalived的节点主机标识符,包管全局唯一 246可以为你的公网ip末了来区分        router_id keepa_293 }#一组实例vrrp_instance VI_1 {    ## 表现状态是MASTER主机照旧备用机BACKUP    state BACKUP    # 该实例绑定的网卡 (查询你的网卡信息 ip addr)    interface ens33    # 包管主备节点一致即可     virtual_router_id 51   # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选    priority 80   # 主备之间同步查抄时间隔断,单位秒 心跳    advert_int 1   # 认证权限暗码,防止非法节点进入    authentication {        auth_type PASS        auth_pass 1111    }   # 虚拟出来的ip,可以有多个(vip)    virtual_ipaddress {            # 注意:主备两台的vip都是一样的,绑定到同一个vip        192.168.1.180    }}#二组实例vrrp_instance VI_2 {    ## 表现状态是MASTER主机照旧备用机BACKUP    state MASTER #改变    # 该实例绑定的网卡 (查询你的网卡信息 ip addr)    interface ens33     # 包管主备节点一致即可     virtual_router_id 52  #改变   # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选    priority 100 #改变   # 主备之间同步查抄时间隔断,单位秒 心跳    advert_int 1   # 认证权限暗码,防止非法节点进入    authentication {        auth_type PASS        auth_pass 1111    }   # 虚拟出来的ip,可以有多个(vip)    virtual_ipaddress {            # 注意:主备两台的vip都是一样的,绑定到同一个vip        192.168.1.181 #改变    }}
复制代码
第二台服务器
  1. ! Configuration File for keepalivedglobal_defs {        # 路由id:当前安装keepalived的节点主机标识符,包管全局唯一 246可以为你的公网ip末了来区分        router_id keepa_252}#一组实例vrrp_instance VI_1 {    ## 表现状态是MASTER主机照旧备用机BACKUP    state MASTER    # 该实例绑定的网卡 (查询你的网卡信息 ip addr)    interface ens33    # 包管主备节点一致即可     virtual_router_id 51   # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选    priority 100   # 主备之间同步查抄时间隔断,单位秒 心跳    advert_int 1   # 认证权限暗码,防止非法节点进入    authentication {        auth_type PASS        auth_pass 1111    }   # 虚拟出来的ip,可以有多个(vip)    virtual_ipaddress {            # 注意:主备两台的vip都是一样的,绑定到同一个vip        192.168.1.180    }}#二组实例vrrp_instance VI_2 {    ## 表现状态是MASTER主机照旧备用机BACKUP    state BACKUP #改变    # 该实例绑定的网卡 (查询你的网卡信息 ip addr)    interface ens33     # 包管主备节点一致即可     virtual_router_id 52  #改变   # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选    priority 80 #改变   # 主备之间同步查抄时间隔断,单位秒 心跳    advert_int 1   # 认证权限暗码,防止非法节点进入    authentication {        auth_type PASS        auth_pass 1111    }   # 虚拟出来的ip,可以有多个(vip)    virtual_ipaddress {            # 注意:主备两台的vip都是一样的,绑定到同一个vip        192.168.1.181 #改变    }}
复制代码
实在就是多出来一个vrrp_instance 实例设置 二个呆板实例相互互为主备关系,
如 171呆板VI_1为主 ,VI_2 为备,195呆板VI_1为备,VI_2 为主,dns分析设置的是这二台呆板的虚拟vip举行轮训淘汰资源的浪费

来源:https://blog.csdn.net/weixin_44519874/article/details/112059555
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )