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

keepalived+nginx實(shí)現(xiàn)網(wǎng)站高可用性

 更新時(shí)間:2025年02月19日 11:02:35   作者:hmb↑  
本文主要介紹了keepalived+nginx實(shí)現(xiàn)網(wǎng)站高可用性,包含配置Keepalived實(shí)現(xiàn)雙主熱備集群架構(gòu),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、keepalive簡(jiǎn)介

  • 目前互聯(lián)網(wǎng)主流的實(shí)現(xiàn)WEB網(wǎng)站及數(shù)據(jù)庫服務(wù)高可用軟件包括:keepalived、heartbeat等。
    Heartbeat是比較早期的實(shí)現(xiàn)高可用軟件,而keepalived是目前輕量級(jí)的管理方便、易用的高可用軟件解決方案,得到互聯(lián)網(wǎng)公司IT人的青睞。

  • Keepalived是一個(gè)類似于工作在layer 3, 4 & 7交換機(jī)制的軟件,Keepalived軟件有兩種功能,分別是健康檢查、VRRP冗余協(xié)議,keepalived是模塊化設(shè)計(jì),不同模塊負(fù)責(zé)不同的功能。

  • Keepalived的作用是檢測(cè)服務(wù)器的狀態(tài),如果有一臺(tái)web服務(wù)器、Mysql服務(wù)器宕機(jī),或工作出現(xiàn)故障,Keepalived將檢測(cè)到后,會(huì)將有故障的web服務(wù)器或者M(jìn)ysql服務(wù)器從系統(tǒng)中剔除,當(dāng)服務(wù)器工作正常后Keepalived自動(dòng)將web、Mysql服務(wù)器加入到服務(wù)器群中。

keepalived + nginx 實(shí)現(xiàn)雙機(jī)主備高可用:

在這里插入圖片描述

在使用 Nginx 實(shí)現(xiàn)雙機(jī)主備高可用(HA)架構(gòu)時(shí),結(jié)合 Keepalive,可以有效地提高系統(tǒng)的可靠性和可用性。以下是實(shí)現(xiàn)這一架構(gòu)的基本步驟和要點(diǎn):

架構(gòu)概述

  • 主備節(jié)點(diǎn):有兩臺(tái) Nginx 服務(wù)器,一臺(tái)作為主節(jié)點(diǎn),另一臺(tái)作為備節(jié)點(diǎn)。當(dāng)主節(jié)點(diǎn)出現(xiàn)故障時(shí),流量會(huì)自動(dòng)切換到備節(jié)點(diǎn)。

  • Keepalived:通過 Keepalived 機(jī)制維持主備節(jié)點(diǎn)之間的心跳檢測(cè),確保在主節(jié)點(diǎn)故障時(shí)能夠及時(shí)切換。

二、實(shí)現(xiàn)步驟

1. 環(huán)境準(zhǔn)備

確保兩臺(tái) Nginx 服務(wù)器已經(jīng)安裝并配置好,并且網(wǎng)絡(luò)可以互通。

2. 安裝 Keepalived

在兩臺(tái)服務(wù)器上安裝 Keepalived,Keepalived 是一種用于實(shí)現(xiàn)高可用性的工具,能夠通過 VRRP 協(xié)議管理主備節(jié)點(diǎn)的 IP 地址。

1、下載鏈接: https://www.keepalived.org/download.html

在這里插入圖片描述

2、上傳后,進(jìn)行解壓

tar -zxvf keepalived-2.0.20.tar.gz

3、先進(jìn)入Keepalived目錄,然后輸入配置命令進(jìn)行配置(--prefix:指明Keepalived的安裝位置,--sysconf:指明Keepalived配置文件存放位置,必須放在/etc下面,為了后續(xù)Keepalived啟動(dòng)關(guān)閉不報(bào)錯(cuò))

cd keepalived-2.0.20
./configure --prefix=/usr/local/keepalived --sysconf=/etc

如果出現(xiàn)了下面的錯(cuò)誤,運(yùn)行

yum -y install libnl libnl-devel
yum -y install openssl-devel

在這里插入圖片描述

4、編譯和安裝

make && make install

3. 配置 Keepalived 雙機(jī)主備集群架構(gòu)

在主節(jié)點(diǎn)和備節(jié)點(diǎn)上配置 Keepalived。

1、建立check_nginx腳本(/etc/keepalived/check_nginx.sh)如上配置還需要建立check_nginx腳本,用于檢查本地Nginx是否存活,如果不存活,則kill keepalived實(shí)現(xiàn)切換。其中check_nginx.sh腳本內(nèi)容如下

#!/bin/bash
killall -0 /usr/local/nginx/sbin/nginx
if [[ $? -ne 0 ]]; then
    service keepalived stop
    exit 1
else
    exit 0
fi

添加可操作權(quán)限

chmod +x check_nginx.sh

2、主節(jié)點(diǎn)配置(/etc/keepalived/keepalived.conf):

global_defs {
   #路由id:當(dāng)前安裝keepalived節(jié)點(diǎn)主機(jī)的標(biāo)識(shí)符,全局唯一
   router_id keep_129
}

vrrp_script check_nginx_alive {
   script "/etc/keepalived/check_nginx.sh"
   #每隔2秒運(yùn)行上一行的腳本
   interval 2
   #權(quán)重
   weight 2
}

vrrp_instance VI_1 {
    # 表示的狀態(tài),當(dāng)前的129服務(wù)器為nginx的主節(jié)點(diǎn),MASTER/BACKUP
    state MASTER
    # 當(dāng)前實(shí)例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點(diǎn)一致
    virtual_router_id 51
    # 優(yōu)先級(jí)/權(quán)重,誰的優(yōu)先級(jí)高,在MASTER掛掉以后,就能成為MASTER
    priority 100
    # 主備之間同步檢查的時(shí)間間隔,默認(rèn)1s
    advert_int 1
    # 認(rèn)證授權(quán)的密碼,防止非法節(jié)點(diǎn)的進(jìn)入
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    track_script {
      # 追蹤 nginx腳本
      check_nginx_alive
    }
    virtual_ipaddress {
        192.168.121.120
    }
}

3、備節(jié)點(diǎn)配置(/etc/keepalived/keepalived.conf):

global_defs {
   #路由id:當(dāng)前安裝keepalived節(jié)點(diǎn)主機(jī)的標(biāo)識(shí)符,全局唯一
   router_id keep_128
}

vrrp_instance VI_1 {
    # 表示的狀態(tài),當(dāng)前的128服務(wù)器為nginx的主節(jié)點(diǎn),MASTER/BACKUP
    state BACKUP
    # 當(dāng)前實(shí)例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點(diǎn)一致
    virtual_router_id 51
    # 優(yōu)先級(jí)/權(quán)重,誰的優(yōu)先級(jí)高,在MASTER掛掉以后,就能成為MASTER
    priority 80
    # 主備之間同步檢查的時(shí)間間隔,默認(rèn)1s
    advert_int 1
    # 認(rèn)證授權(quán)的密碼,防止非法節(jié)點(diǎn)的進(jìn)入
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.121.120
    }
}

4. 配置 Nginx

在兩臺(tái) Nginx 上配置相同的站點(diǎn),以確保在主節(jié)點(diǎn)故障時(shí)備節(jié)點(diǎn)可以無縫接管。

示例 Nginx 配置(/etc/nginx/nginx.conf):

http {
    upstream backend {
        server 127.0.0.1:8080;  # 假設(shè)應(yīng)用運(yùn)行在本地的8080端口
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
        }
    }
}

訪問原ip

在這里插入圖片描述

在這里插入圖片描述

5. 啟動(dòng)Keepalived

cd /usr/local/keepalived/sbin/
# 啟動(dòng)命令
./keepalived

systemctl start keepalived.service
systemctl status keepalived.service   # 查看狀態(tài),可查看是否有問題

6. 測(cè)試高可用性

  • 確保主節(jié)點(diǎn)正常工作,訪問虛擬 IP 地址(192.168.121.120)。
  • 停止主節(jié)點(diǎn)上的 Nginx, Keepalived會(huì)自動(dòng)停止,檢查流量是否自動(dòng)切換到備節(jié)點(diǎn)。
  • 重新啟動(dòng)主節(jié)點(diǎn),確認(rèn)其恢復(fù)后是否接管虛擬 IP 地址。
  • 虛擬ip要跟你是同一個(gè)網(wǎng)段的,可以訪問的,虛擬ip其實(shí)也是ip,只是沒有設(shè)備

訪問虛擬ip 192.168.121.120

在這里插入圖片描述

7. 配置keepalived 雙主熱備集群架構(gòu)

Nginx+keepalived主備模式,始終存在一臺(tái)服務(wù)器處于空閑狀態(tài),如何更好的把兩臺(tái)服務(wù)器利用起來呢,可以借助Nginx+keepalived雙主架構(gòu)來實(shí)現(xiàn),如圖23-2所示,將架構(gòu)改成雙主架構(gòu),也即同時(shí)兩臺(tái)對(duì)外兩個(gè)VIP地址,同時(shí)接收用戶的請(qǐng)求。

在這里插入圖片描述

1、192.168.2.128的keepalived.conf配置文件代碼:

global_defs {
   #路由id:當(dāng)前安裝keepalived節(jié)點(diǎn)主機(jī)的標(biāo)識(shí)符,全局唯一
   router_id keep_128
}

vrrp_instance VI_1 {
    # 表示的狀態(tài),當(dāng)前的128服務(wù)器為nginx的主節(jié)點(diǎn),MASTER/BACKUP
    state MASTER
    # 當(dāng)前實(shí)例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點(diǎn)一致
    virtual_router_id 51
    # 優(yōu)先級(jí)/權(quán)重,誰的優(yōu)先級(jí)高,在MASTER掛掉以后,就能成為MASTER
    priority 100
    # 主備之間同步檢查的時(shí)間間隔,默認(rèn)1s
    advert_int 1
    # 認(rèn)證授權(quán)的密碼,防止非法節(jié)點(diǎn)的進(jìn)入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.120
    }
}

vrrp_instance VI_2 {
    # 表示的狀態(tài),當(dāng)前的128服務(wù)器為nginx的主節(jié)點(diǎn),MASTER/BACKUP
    state BACKUP
    # 當(dāng)前實(shí)例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點(diǎn)一致
    virtual_router_id 52
    # 優(yōu)先級(jí)/權(quán)重,誰的優(yōu)先級(jí)高,在MASTER掛掉以后,就能成為MASTER
    priority 80
    # 主備之間同步檢查的時(shí)間間隔,默認(rèn)1s
    advert_int 1
    # 認(rèn)證授權(quán)的密碼,防止非法節(jié)點(diǎn)的進(jìn)入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.121
    }
}

2、192.168.2.129的keepalived.conf配置文件代碼:

! Configuration File for keepalived

global_defs {
   #路由id:當(dāng)前安裝keepalived節(jié)點(diǎn)主機(jī)的標(biāo)識(shí)符,全局唯一
   router_id keep_129
}

vrrp_instance VI_1 {
    # 表示的狀態(tài),當(dāng)前的129服務(wù)器為nginx的主節(jié)點(diǎn),MASTER/BACKUP
    state BACKUP
    # 當(dāng)前實(shí)例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點(diǎn)一致
    virtual_router_id 51
    # 優(yōu)先級(jí)/權(quán)重,誰的優(yōu)先級(jí)高,在MASTER掛掉以后,就能成為MASTER
    priority 80
    # 主備之間同步檢查的時(shí)間間隔,默認(rèn)1s
    advert_int 1
    # 認(rèn)證授權(quán)的密碼,防止非法節(jié)點(diǎn)的進(jìn)入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.120
    }
}

vrrp_instance VI_2 {
    # 表示的狀態(tài),當(dāng)前的129服務(wù)器為nginx的主節(jié)點(diǎn),MASTER/BACKUP
    state MASTER
    # 當(dāng)前實(shí)例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點(diǎn)一致
    virtual_router_id 52
    # 優(yōu)先級(jí)/權(quán)重,誰的優(yōu)先級(jí)高,在MASTER掛掉以后,就能成為MASTER
    priority 100
    # 主備之間同步檢查的時(shí)間間隔,默認(rèn)1s
    advert_int 1
    # 認(rèn)證授權(quán)的密碼,防止非法節(jié)點(diǎn)的進(jìn)入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.121
    }
}

注意點(diǎn):

  • Keepalived主配置文件必須設(shè)置不同的VRRP名稱,同時(shí)優(yōu)先級(jí)和VIP設(shè)置也各不相同;
  • Nginx網(wǎng)站總訪問量為兩臺(tái)Nginx服務(wù)器之和,可以寫腳本自動(dòng)統(tǒng)計(jì)訪問量;
  • 兩臺(tái)Nginx為Master,存在兩個(gè)VIP地址,用戶從外網(wǎng)訪問VIP,需配置域名映射到兩個(gè)VIP上方。
  • 通過外網(wǎng)DNS映射不同VIP的方法也稱為DNS負(fù)載均衡模式;

三、虛擬ip

虛擬 IP 和真實(shí) IP 之間的區(qū)別主要在于它們的用途和管理方式:

真實(shí) IP

  • 定義:真實(shí) IP 是指分配給設(shè)備的唯一的、可在互聯(lián)網(wǎng)或局域網(wǎng)中直接訪問的 IP 地址。
  • 特性
    • 每個(gè)真實(shí) IP 地址在網(wǎng)絡(luò)中都是唯一的。
    • 真實(shí) IP 可以直接與設(shè)備通信,比如訪問某臺(tái)服務(wù)器。
    • 真實(shí) IP 地址通常由互聯(lián)網(wǎng)服務(wù)提供商(ISP)分配。

虛擬 IP

  • 定義:虛擬 IP 是一個(gè)邏輯 IP 地址,它并不直接分配給某個(gè)特定的設(shè)備,而是可以在多個(gè)設(shè)備之間共享。
  • 特性
    • 虛擬 IP 常用于高可用性和負(fù)載均衡,允許多個(gè)服務(wù)器通過一個(gè)共同的 IP 地址對(duì)外提供服務(wù)。
    • 虛擬 IP 可以在不同的物理服務(wù)器之間動(dòng)態(tài)切換,以實(shí)現(xiàn)故障轉(zhuǎn)移。
    • 虛擬 IP 通常與網(wǎng)絡(luò)協(xié)議(如 VRRP、CARP)結(jié)合使用,管理虛擬 IP 的分配和切換。

應(yīng)用場(chǎng)景

  • 真實(shí) IP:適用于需要被直接訪問的服務(wù)器或設(shè)備,如網(wǎng)頁服務(wù)器、數(shù)據(jù)庫服務(wù)器等。
  • 虛擬 IP:常用于負(fù)載均衡器、集群環(huán)境和高可用性設(shè)置,確保即使某臺(tái)服務(wù)器故障,服務(wù)仍然可用。

總結(jié)真實(shí) IP 是指設(shè)備的實(shí)際地址,而虛擬 IP 是用于在多個(gè)設(shè)備之間實(shí)現(xiàn)共享和故障轉(zhuǎn)移的邏輯地址。

虛擬 IP 地址并不是可以隨便設(shè)定的,設(shè)定虛擬 IP 時(shí)需要遵循一些原則和規(guī)定:

  • IP 地址范圍
  • 虛擬 IP 應(yīng)該在你的網(wǎng)絡(luò)地址范圍內(nèi),避免與已有的真實(shí) IP 地址沖突。
  • 網(wǎng)絡(luò)配置
  • 在設(shè)置虛擬 IP 時(shí),需要確保網(wǎng)絡(luò)設(shè)備(如路由器、交換機(jī)、負(fù)載均衡器)支持虛擬 IP 的配置。
  • 使用協(xié)議
  • 配置虛擬 IP 通常需要使用特定的網(wǎng)絡(luò)協(xié)議(如 VRRP、CARP 等)來管理和切換虛擬 IP 的所有權(quán)。
  • 環(huán)境一致性
  • 在多臺(tái)服務(wù)器上使用虛擬 IP 時(shí),確保它們?cè)谕粋€(gè)子網(wǎng)內(nèi),并且配置相同的網(wǎng)絡(luò)參數(shù),以確保正常通信。
  • 避免沖突
  • 虛擬 IP 必須確保在整個(gè)網(wǎng)絡(luò)中唯一,避免與其他設(shè)備或服務(wù)的 IP 地址發(fā)生沖突。

結(jié)論

雖然技術(shù)上可以在網(wǎng)絡(luò)中設(shè)置虛擬 IP,但實(shí)際操作時(shí)需要遵循上述原則,以確保網(wǎng)絡(luò)的正常運(yùn)行和穩(wěn)定性。如果不小心設(shè)置了不合適的虛擬 IP,可能會(huì)導(dǎo)致網(wǎng)絡(luò)問題。

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

相關(guān)文章

  • 教你如何使用 Nginx 進(jìn)行負(fù)載均衡

    教你如何使用 Nginx 進(jìn)行負(fù)載均衡

    Nginx 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,它也經(jīng)常被用作郵件代理服務(wù)器和通用 TCP/UDP 代理服務(wù)器,本文我們將詳細(xì)介紹如何使用 Nginx 進(jìn)行負(fù)載均衡,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過程

    Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過程

    今天通過本文給大家分享Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過程,在這小編提示大家在安裝nginx時(shí)需要先安裝nginx-full,具體安裝方法跟隨小編一起通過本文學(xué)習(xí)下吧
    2021-05-05
  • Nginx結(jié)合keepalived實(shí)現(xiàn)集群

    Nginx結(jié)合keepalived實(shí)現(xiàn)集群

    本文主要介紹了Nginx結(jié)合keepalived實(shí)現(xiàn)集群,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Nginx配置SSL自簽名證書的方法

    Nginx配置SSL自簽名證書的方法

    這篇文章主要介紹了Nginx配置SSL自簽名證書的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Nginx進(jìn)程管理和重載原理詳解

    Nginx進(jìn)程管理和重載原理詳解

    這篇文章主要給大家介紹了關(guān)于Nginx進(jìn)程管理和重載原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Nginx之QPS限制模塊的具體使用

    Nginx之QPS限制模塊的具體使用

    本文主要介紹了Nginx之QPS限制模塊的具體使用,主要介紹Nginx QPS限制模塊的原理、安裝和使用方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 詳解php+nginx 服務(wù)發(fā)生500 502錯(cuò)誤排查思路

    詳解php+nginx 服務(wù)發(fā)生500 502錯(cuò)誤排查思路

    這篇文章主要介紹了詳解php+nginx 服務(wù)發(fā)生500 502錯(cuò)誤排查思路,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Nginx 長(zhǎng)連接keep_alive的具體使用

    Nginx 長(zhǎng)連接keep_alive的具體使用

    本文主要介紹了Nginx 長(zhǎng)連接keep_alive的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • nginx內(nèi)部訪問特性如何實(shí)現(xiàn)靜態(tài)資源授權(quán)訪問

    nginx內(nèi)部訪問特性如何實(shí)現(xiàn)靜態(tài)資源授權(quán)訪問

    這篇文章主要介紹了nginx內(nèi)部訪問特性如何實(shí)現(xiàn)靜態(tài)資源授權(quán)訪問方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Windows系統(tǒng)下安裝及部署Nginx詳細(xì)教程(含多個(gè)站點(diǎn)部署)

    Windows系統(tǒng)下安裝及部署Nginx詳細(xì)教程(含多個(gè)站點(diǎn)部署)

    Nginx是一個(gè)很強(qiáng)大的高性能Web和反向代理服務(wù),也是一種輕量級(jí)的Web服務(wù)器,可以作為獨(dú)立的服務(wù)器部署網(wǎng)站,應(yīng)用非常廣泛,這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下安裝及部署Nginx(含多個(gè)站點(diǎn)部署)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評(píng)論