【Nginx笔记(三)】高可用

一、 准备工作

需要在多台服务器上安装nginx和keepalived

#安装keepalived
yum -y install keepalived
#查看是否已安装
rpm -q -a keepalived
#查看配置文件,keepalived安装目录/etc/keepalived
#启动:systemctl start keepalived.service

二、主从配置

cd /etc/keepalived

vim keepalived.conf

#全局定义
global_dfs {
    notification_email {
        acassen@firewall.loc
        failover@firewall.loc
        sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc
    smtp_server 192.168.17.129
    smtp_connect_timeot 30
    #router_id唯一值,可以取ip,此处为服务器名称,在/etc/hosts配置
    router_id LVS_DEVEL
}

#检测脚本
vrrp_script chk_http_port {
    script "/etc/keepalived/nginx_check.sh"
    interval 2    #检测脚本执行的间隔(2秒)
    weight 2    #权重
}

#虚拟ip配置
vrrp_instance VI_1 {
    state MASTER    #备份服务器上将MASTER改为BACKUP
    interface ens33    #网卡 ifconfig 查看
    virtual_router_id 51    #主、备机的virtual_router_id必须相同
    priority 100    #主、备机各取不同的优先级,主机值较大,备份机值较小
    advert_int 1    #每隔1秒发送心跳,检测服务器状态
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_http_port    #调用检测脚本
    }
    virtual_ipadress {
        192.168.17.50    #VRRP虚拟ip地址
    }
}


虚拟IP地址:可以配置多个IP,每个IP占一行。注意,这里的IP就是在工作中需要和域名绑定的ip,即可配置的高可用服务监听的ip保持一致。

三、检查脚本

keepalived实现的是服务器级别的接管,nginx宕机不会接管,因此创建如下脚本:如果nginx宕机且无法再启动则关闭keepalived。

#!/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

脚本授权:chmod 775 nginx_check.sh

启动各服务器上的nginx和keepalived进行测试:

①使用虚拟ip地址访问

②把主服务器nginx和keepalived停止,再输入虚拟ip地址访问

注意:

阿里云服务器是不支持自填VIP的,需要用户登录阿里云VPC网络板块下去申请

创建和管理高可用虚拟IP - 专有网络 VPC - 阿里云

申请通过后可以在VPC网络板块下看到,并且阿里云的VIP不支持keepalived广播,只能设置为单播,并且,设置单播的两台服务器要在同一个账号的同一个片区。在网卡配置后面需要加上以下配置:

priority 100  ##主服务100 备服务90只要小于100就可以
unicast_src_ip  192.168.1.21##(本地IP地址)
unicast_peer {
    192.168.1.22##(对端IP地址)此地址一定不能忘记
}

删除global_defs下的vrrp_strict,即为单播。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值