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

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

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

一、keepalive簡介

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

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

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

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

在這里插入圖片描述

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

架構(gòu)概述

  • 主備節(jié)點:有兩臺 Nginx 服務(wù)器,一臺作為主節(jié)點,另一臺作為備節(jié)點。當主節(jié)點出現(xiàn)故障時,流量會自動切換到備節(jié)點。

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

二、實現(xiàn)步驟

1. 環(huán)境準備

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

2. 安裝 Keepalived

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

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

在這里插入圖片描述

2、上傳后,進行解壓

tar -zxvf keepalived-2.0.20.tar.gz

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

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

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

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

在這里插入圖片描述

4、編譯和安裝

make && make install

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

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

1、建立check_nginx腳本(/etc/keepalived/check_nginx.sh)如上配置還需要建立check_nginx腳本,用于檢查本地Nginx是否存活,如果不存活,則kill keepalived實現(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é)點配置(/etc/keepalived/keepalived.conf):

global_defs {
   #路由id:當前安裝keepalived節(jié)點主機的標識符,全局唯一
   router_id keep_129
}

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

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

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

global_defs {
   #路由id:當前安裝keepalived節(jié)點主機的標識符,全局唯一
   router_id keep_128
}

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

4. 配置 Nginx

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

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

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

    server {
        listen 80;
        server_name example.com;

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

訪問原ip

在這里插入圖片描述

在這里插入圖片描述

5. 啟動Keepalived

cd /usr/local/keepalived/sbin/
# 啟動命令
./keepalived

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

6. 測試高可用性

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

訪問虛擬ip 192.168.121.120

在這里插入圖片描述

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

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

在這里插入圖片描述

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

global_defs {
   #路由id:當前安裝keepalived節(jié)點主機的標識符,全局唯一
   router_id keep_128
}

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

vrrp_instance VI_2 {
    # 表示的狀態(tài),當前的128服務(wù)器為nginx的主節(jié)點,MASTER/BACKUP
    state BACKUP
    # 當前實例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點一致
    virtual_router_id 52
    # 優(yōu)先級/權(quán)重,誰的優(yōu)先級高,在MASTER掛掉以后,就能成為MASTER
    priority 80
    # 主備之間同步檢查的時間間隔,默認1s
    advert_int 1
    # 認證授權(quán)的密碼,防止非法節(jié)點的進入
    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:當前安裝keepalived節(jié)點主機的標識符,全局唯一
   router_id keep_129
}

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

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

注意點:

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

三、虛擬ip

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

真實 IP

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

虛擬 IP

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

應(yīng)用場景

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

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

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

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

結(jié)論

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

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

相關(guān)文章

  • 教你如何使用 Nginx 進行負載均衡

    教你如何使用 Nginx 進行負載均衡

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

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

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

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

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

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

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

    Nginx進程管理和重載原理詳解

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

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

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

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

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

    Nginx 長連接keep_alive的具體使用

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

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

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

    Windows系統(tǒng)下安裝及部署Nginx詳細教程(含多個站點部署)

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

最新評論