最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、keepalive簡介

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

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

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

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

在這里插入圖片描述

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

架構概述

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

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

二、實現(xiàn)步驟

1. 環(huán)境準備

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

2. 安裝 Keepalived

在兩臺服務器上安裝 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啟動關閉不報錯)

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 雙機主備集群架構

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

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

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

添加可操作權限

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
   #權重
   weight 2
}

vrrp_instance VI_1 {
    # 表示的狀態(tài),當前的129服務器為nginx的主節(jié)點,MASTER/BACKUP
    state MASTER
    # 當前實例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點一致
    virtual_router_id 51
    # 優(yōu)先級/權重,誰的優(yōu)先級高,在MASTER掛掉以后,就能成為MASTER
    priority 100
    # 主備之間同步檢查的時間間隔,默認1s
    advert_int 1
    # 認證授權的密碼,防止非法節(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服務器為nginx的主節(jié)點,MASTER/BACKUP
    state BACKUP
    # 當前實例綁定的網(wǎng)卡
    interface ens33
    # 保證主備節(jié)點一致
    virtual_router_id 51
    # 優(yōu)先級/權重,誰的優(yōu)先級高,在MASTER掛掉以后,就能成為MASTER
    priority 80
    # 主備之間同步檢查的時間間隔,默認1s
    advert_int 1
    # 認證授權的密碼,防止非法節(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;  # 假設應用運行在本地的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,只是沒有設備

訪問虛擬ip 192.168.121.120

在這里插入圖片描述

7. 配置keepalived 雙主熱備集群架構

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

在這里插入圖片描述

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

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

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

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

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

注意點:

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

三、虛擬ip

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

真實 IP

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

虛擬 IP

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

應用場景

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

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

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

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

結論

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

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

相關文章

  • 使用Nginx實現(xiàn)301跳轉至https的根域名示例代碼

    使用Nginx實現(xiàn)301跳轉至https的根域名示例代碼

    這篇文章主要介紹了使用Nginx實現(xiàn)301跳轉至https的根域名,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • nginx 部署 vue 項目找不到js css文件的解決方法

    nginx 部署 vue 項目找不到js css文件的解決方法

    這篇文章主要介紹了nginx 部署 vue 項目找不到js css文件的解決方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • Nginx http升級到https的完整步驟

    Nginx http升級到https的完整步驟

    這篇文章主要給大家介紹了關于Nginx http升級到https的完整步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Nginx具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • 在nginx中設置三級域名的方法示例

    在nginx中設置三級域名的方法示例

    這篇文章主要介紹了在nginx中設置三級域名的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Nginx報錯"Too many open files"問題的深度解析與解決方案

    Nginx報錯"Too many open files"問題的深度解析

    在高并發(fā)場景下,Nginx作為Web服務器或反向代理時,常常會遇到“Too many open files”錯誤,本文將從問題原理,解決方案,配置優(yōu)化及驗證方法等方面,詳細解析如何解決這一問題,希望對大家有所幫助
    2025-06-06
  • nginx配置同一域名同一端口下部署多個vue項目的實現(xiàn)

    nginx配置同一域名同一端口下部署多個vue項目的實現(xiàn)

    本地開發(fā)好了多個前端微信網(wǎng)頁項目,想部署上線,本文就來介紹一下nginx配置同一域名同一端口下部署多個vue項目的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 在Ubuntu系統(tǒng)上安裝Nginx服務器的簡單方法

    在Ubuntu系統(tǒng)上安裝Nginx服務器的簡單方法

    這篇文章主要介紹了在Ubuntu系統(tǒng)上安裝Nginx服務器的簡單方法,包括打開和關閉Nginx的指令,需要的朋友可以參考下
    2015-08-08
  • 分享一份nginx重啟腳本

    分享一份nginx重啟腳本

    nginx是超級穩(wěn)定的服務器,一般不會因為超載問題而需要重啟,重啟的目的一般都是修改配置文件后需要加載一下
    2012-09-09
  • Nginx啟動不了原因解決(端口占用)

    Nginx啟動不了原因解決(端口占用)

    本文主要介紹了Nginx啟動不了原因解決(端口占用),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Nginx 代理頭部傳遞的實現(xiàn)

    Nginx 代理頭部傳遞的實現(xiàn)

    Nginx默認會傳遞一些頭部信息,本文就來介紹一下Nginx 代理頭部傳遞的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-02-02

最新評論

聂荣县| 扶沟县| 东乌珠穆沁旗| 嘉鱼县| 甘洛县| 岱山县| 遂宁市| 四子王旗| 阳春市| 洛浦县| 湘潭市| 白玉县| 广西| 苏州市| 齐河县| 墨脱县| 稷山县| 大同市| 翼城县| 石城县| 丰城市| 徐州市| 永济市| 文水县| 长治市| 和田市| 泸州市| 鹤山市| 长汀县| 滁州市| 芜湖县| 广平县| 丹东市| 石屏县| 大余县| 津南区| 金塔县| 东莞市| 娱乐| 玉田县| 陆河县|