欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

keepalived?+?nginx?實(shí)現(xiàn)高可用方案

 更新時間:2022年12月14日 09:46:46   作者:AskaJohnny  
這篇文章主要介紹了keepalived?+?nginx?實(shí)現(xiàn)高可用方案的相關(guān)資料,需要的朋友可以參考下

本篇主要介紹一下 keepalived + nginx 來實(shí)現(xiàn) 對于nginx的高可用, 還是簡單的主備模式

1.概述

前面有了解keepalived 的主備的基本使用, 但是那種是針對宕機(jī)等情況 停止了keepalived 的進(jìn)程實(shí)現(xiàn)的 vip的漂移,本篇把keepalived 添加校驗(yàn)nginx存活腳本 實(shí)現(xiàn)針對nginx的監(jiān)控, 實(shí)現(xiàn)nginx的高可用

2.準(zhǔn)備工作

準(zhǔn)備2臺機(jī)器 , 把111定義為 keepalived 的 MASTER 節(jié)點(diǎn)

ipkeepalived
172.16.225.111MASTER
172.16.225.110BACKUP

分別在2臺服務(wù)器上配置好nginx 并且修改默認(rèn)的 index.html 添加上 ip 標(biāo)識方便區(qū)分. 如下:

3.配置 keepalived

在keepalived 的配置文件中的 instance 里面配置 track_script 指定 檢查nginx是否存活的腳本

3.1 master (172.16.225.111)

! Configuration File for keepalived

global_defs {
   router_id LB111
}

vrrp_script chk_nginx {
   # 具體的腳本
   script "/etc/keepalived/nginx_check.sh"
   interval 2 # 2s執(zhí)行一次 
   weight -20 # 失敗一次 則優(yōu)先級 -20
}

vrrp_instance VI_1 {
    state MASTER
    interface ens160
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.225.200
    }
    # 指定腳本
    track_script {
      chk_nginx
    }
}

3.2 master (172.16.225.110)

! Configuration File for keepalived

global_defs {
   router_id LB111
}

vrrp_script chk_nginx {
   script "/etc/keepalived/nginx_check.sh"
   interval 2
   weight -20
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens160
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       172.16.225.200
    }

    track_scrip {
      chk_nginx
    }
}

4.配置 nginx_check.sh

主要是這個腳本 這個腳本的內(nèi)容就是 通過ps命令檢查 nginx進(jìn)程是否存活 ,如果不存活 則嘗試啟動一次 則檢查 ,如果還是啟動不起來 則 把keepalived 關(guān)閉, 從而讓 keepalived 能檢測到 并且 vip 能夠漂移到其他機(jī)器

#!/bin/bash
status=$(ps -C nginx --no-heading|wc -l)
if [ "${status}" = "0" ]; then
            # 嘗試啟動一次
            systemctl start nginx
        # 再次檢查ngixn 進(jìn)程
        status2=$(ps -C nginx --no-heading|wc -l)
        if [ "${status2}" = "0"  ]; then
                # 關(guān)閉 keepalived 
                systemctl stop keepalived
        fi
fi

需要在2臺機(jī)器上都配置上這個腳本

# 給腳本一個 可執(zhí)行的權(quán)限
chmode +x /etc/keepalived/nginx_check.sh 
# 重啟或者啟動 keepalived 
systemctl restart keepalived

5.關(guān)閉 selinux

如果重啟后或者啟動后 查看日志有如下拋錯 , 則是 selinux 沒有關(guān)閉

# 臨時關(guān)閉
setenforce 0

#永久關(guān)閉
sed -i 's/SELINUX=enforcing/\SELINUX=disabled/' /etc/selinux/config

6.模擬測試

2臺機(jī)器 分別啟動nginx 和 keepalived 后

訪問 vip 172.16.225.200 這個vip 目前在 111 master機(jī)器上

在master機(jī)器上 把ngixn關(guān)閉

# 關(guān)閉 nginx 
./nginx -s stop
# 此時查看 keepalived 的狀態(tài)就是 dead了
systemctl status keepalived

● keepalived.service - LVS and VRRP High Availability Monitor
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

再次訪問vip 172.16.225.200 , 可以看到 vip 已經(jīng)跑到了 backup機(jī)器110上了

總結(jié)

本篇主要介紹了 keepalived + nginx 的基本的主備配置 實(shí)現(xiàn)了 nginx 的高可用,核心點(diǎn)就是配置 nginx_check.sh腳本給keepalived 的執(zhí)行, 這個nginx_check.sh 腳本內(nèi)如果發(fā)現(xiàn)nginx 不存活 嘗試啟動 如果還是不存活 則直接關(guān)閉 keepalived 進(jìn)程

到此這篇關(guān)于keepalived + nginx 實(shí)現(xiàn)高可用方案的文章就介紹到這了,更多相關(guān)keepalived + nginx 實(shí)現(xiàn)高可用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論