美文网首页
Nginx系列-7 nginx 搭建高可用集群

Nginx系列-7 nginx 搭建高可用集群

作者: wfaceboss | 来源:发表于2021-06-19 15:40 被阅读0次

    Keepalived+Nginx 高可用集群(主从模式)

    上述采用nginx方式:

    image-20210305171529279

    会有问题:

    nginx宕机

    当nginx宕机后,所有请求均会失效。

    解决方法:nginx集群实现高可用

    1、什么是nginx高可用

    image-20210305171535146
    • 需要两台 nginx 服务器

    • 需要 keepalived软件

    • 需要虚拟 ip

    2、配置高可用准备工作

    • 需要两台服务器 192.168.17.129 和 192.168.17.131

    • 在两台服务器安装 nginx

    • 在两台服务器安装 keepalived

    3、在两台服务器安装 keepalived

    • 使用 yum 命令进行安装
    yum install keepalived --y
    
    • 安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf

    4、完成高可用配置(主从配置)

    • 修改/etc/keepalived/keepalivec.conf 配置文件
    global_defs {
    notification_email {#指定keepalived在发生切换时需要发送email到的对象,一行一个
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
    }
    
    notification_email_from Alexandre.Cassen@firewall.loc #指定发件人
    smtp_server 192.168.17.129 #指定smtp服务器地址
    smtp_connect_timeout 30#指定smtp连接超时时间
    router_id LVS_DEVEL #运行keepalived机器的一个标识 (ifconfig查看)
    }
    vrrp_script chk_http_port { #检测脚本
    script "/usr/local/src/nginx_check.sh"
    interval 2  #(检测脚本执行的间隔) 
    weight 2    #权重 
     } 
    vrrp_instance VI_1 { 
     state BACKUP   # 备份服务器上将 MASTER 改为 BACKUP 
     interface ens33    //服务器网卡 
     virtual_router_id 51   # 主、备机的 virtual_router_id 必须相同 
     priority 90    # 主、备机取不同的优先级,主机值较大,备份机值较小 
     advert_int 1 
    authentication {
     auth_type PASS
     auth_pass 1111
    }
    virtual_ipaddress {  # 虚拟ip
    192.168.17.50 // VRRP H 虚拟地址
     }
    }
    
    • 在/usr/local/src 添加检测脚本nginx_check.sh
    #!/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
    

    5、最终测试

    • 在浏览器地址栏输入虚拟 ip 地址 192.168.17.50
    image-20210305171555574
    • 把主服务器(192.168.17.129)nginx 和 keepalived 停止,再输入 192.168.17.50
    image-20210305171601837

    总结:通过 keepalived软件对外暴露虚拟ip,对内做代理绑定nginx服务器,nginx服务器做转发。

    下篇更新第8章 nginx 原理与优化参数配置

    感兴趣的话点点关注,我们一起成长进步。

    相关文章

      网友评论

          本文标题:Nginx系列-7 nginx 搭建高可用集群

          本文链接:https://www.haomeiwen.com/subject/spfhyltx.html