高可用集群

1、什么是nginx高可用

高可用集群原理.png
(1) 需要两台nginx服务器。
(2) 需要keepalived
(3) 需要虚拟ip

2、配置高可用的准备工作

(1) 需要两台服务器192.168.17.129 和192.168.17.131
(2) 在两台服务器安装nginx.
(3) 在两台服务器安装keepalived.

3、在两台服务器安装keepalived

使用yum命令进行安装

$ yum install keepalived
$ rpm -q -a keepalived    #查看是否已经安装上

默认安装路径: /etc/keepalived
安装完成后自动在etc里面生成目录keepalived, 有配置文件keepalived.conf

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

(1)修改keepalived的配置文件keepalived.conf为:


global_defs {
    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_timeout 30
    router_id LVS_DEVEL # LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机
}

vrrp_script chk_http_ port {
    script "/usr/local/src/nginx_check.sh"
    interval 2   # (检测脚本执行的间隔)2s
    weight 2  #权重,如果这个脚本检测为真,服务器权重+2
}

vrrp_instance VI_1 {
    state BACKUP   # 备份服务器上将MASTER 改为BACKUP
    interface ens33 //网卡名称
    virtual_router_id 51 # 主、备机的virtual_router_id必须相同
    priority 100   #主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1    #每隔1s发送一次心跳
    authentication {    # 校验方式, 类型是密码,密码1111
        auth type PASS
        auth pass 1111
    }
    virtual_ipaddress { # 虛拟ip
        192.168.17.50 // VRRP H虛拟ip地址
    }
}

(2)在路径/usr/local/src/ 下新建检测脚本 nginx_check.sh

nginx_check.sh

#! /bin/bash
A=`ps -C nginx -no-header | wc - 1`
if [ $A -eq 0];then
    /usr/local/nginx/sbin/nginx
    sleep 2
    if [`ps -C nginx --no-header| wc -1` -eq 0 ];then
        killall keepalived
    fi
fi

(3) 把两台服务器上nginx和keepalived启动

$ systemctl start keepalived.service        #keepalived启动
$ ps -ef I grep keepalived      #查看keepalived是否启动

5、最终测试

(1) 在浏览器地址栏输入虚拟ip地址192.168.17.50

(2) 把主服务器(192.168.17.129) nginx和keealived停止,再输入192.168.17.50.

$ systemctl stop keepalived.service  #keepalived停止
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容