1-(5)nginx高可用

2019-10-08  本文已影响0人  神奇作手

1、概述

1.1、存在的问题

  如果 nginx 宕机了,则请求将实现不了效果

1.2、解决方案:高可用

通过使用 主-从(备) nginx,当主nginx 出现宕机,自动切换到从(备) nginx 可用使用,保证请求可以成功。

条件:
(1)需要至少两台 nginx 服务器
(2)需要 keepalive
(3)需要虚拟 ip

2、高可用使用

2.1、准备工作

(1)准备两台服务器 192.169.92.128 和 192.168.92.129;
(2)两台服务器中都安装 nginx
(3)两台服务器中都安装 keepalive

安装:keepalive

yum install keepalived -y

安装完毕后,查看是否安装成功:

rpm -q -a keepalived

安装完毕后再 /etc/ 文件下会生成个 keepalived 文件夹 里面会有一个 keepalived.conf 配置文件;

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

(1)修改 /etc/keepalived/keepalived.cong 配置文件

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.92.128
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {

    script "/usr/local/src/nginx_check.sh"
    
    interval 2  #(检测脚本执行的间隔)
    
    weight 2
}

vrrp_instance VI_1 {
    state MASTER    #备份服务器上将 MASTER 改为 BACKUP
    interface ens33 #网卡
    virtual_router_id 51 #主、备机的virtual_router_id必须相同
    priority 100  #主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.92.150  //VRRP H虚拟机地址
    }
}

(2)在 /usr/local/src/ 下添加检测脚本

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

2.3、启动两台服务器的 nginx 和 keepalived 测试

其中启动 keepalived 命令如下:

systemctl start keepalived.service 
(1)在地址栏输入虚拟IP:192.168.92.150

其中在主服务器中输入 ip address 可查看如下:

其中在从(副)服务器中输入 ip address 可查看如下:

(2)关闭主服务器的 nginx 和 keepalived 后再此刷新访问页面

此时访问的是从(副)服务器


上一篇 下一篇

猜你喜欢

热点阅读