Nginx(8):nginx構成インスタンスの高可用性(マスタースレーブ)

1.高可用性とは何ですか

ここに画像の説明を挿入します
(1)2つのnginxサーバーが必要です
(2)キープアライブが必要です
(3)仮想IPが必要です

2.高可用性を構成するための準備

(1)2台のサーバーが必要です
(2)nginxが2台のサーバーにインストールされています
(3)keepalivedが2台のサーバーにインストールされています

3.両方のサーバーにkeepalivedをインストールします

(1)yumコマンドを使用してインストールします

yum install keepalived -y

#查看是否安装成功
rpm -q -a keepalived

(2)インストールが完了すると、/ etc / keepalivedディレクトリにファイルkeepalived.confがあります。

4.高可用性を構成します(マスタースレーブ)

4.1メインサーバーの構成

keepalived.conf構成ファイルは次のように変更されます。

! Configuration File for keepalived

global_defs {
    
    
   notification_email {
    
    
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.16.130
   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    #每1秒发送一次心跳
    authentication {
    
    
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    
    
        192.168.16.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/nginx/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

4.2スレーブサーバーの構成

keepalived.conf構成ファイルは次のように変更されます。

! Configuration File for keepalived

global_defs {
    
    
   notification_email {
    
    
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.16.130
   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 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 {
    
    
        192.168.16.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/nginx/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

4.3 2つのサーバーでnginxとkeepalivedを起動します

#启动nginx
cd /usr/local/nginx/sbin
./nginx

#启动keepalived
systemctl start keepalived.service

#查看进程
ps -ef | grep keepalived

5.最終テスト

(1)ブラウザのアドレスバーに仮想IPアドレスを入力します。192.168.16.50
ここに画像の説明を挿入します
ここに画像の説明を挿入します
(2)メインサーバー(192.168.16.130)のnginxとkeepalivedを停止し、192.168.16.50と入力します。

#停止keepalived
systemctl stop keepalived.service

#停止nginx
cd /usr/local/nginx/sbin
./nginx -s stop

ここに画像の説明を挿入します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/houwanle/article/details/112117219