Nginx-keepalived-高可用

Nginx 高可用 通常 借助 Keepalived 實現, Keepalived 能通過 VRRP (虛擬路由冗余協議)讓多個 Nginx 服務器 組成一個 熱備集群,當主服務器故障時自動切換到備用服務器,保障服務不間斷。

一、環境準備

角色IP 地址
主服務器(Master)192.168.159.129
備用服務器(Backup)192.168.159.130
虛擬IP(VIP)192.168.159.120
Keepalived版本1.4.5

二、源碼安裝 Keepalived 服務

2.1 在節點 Mater 上安裝 keepalived

# 安裝依賴
yum install openssl-devel libnl3-devel ipset-devel -y
yum install libnfnetlink-devel -y# 下載源碼
wget https://www.keepalived.org/software/keepalived-1.4.5.tar.gz# 解壓
tar -zxvf  keepalived-1.4.5.tar.gzcd keepalived-1.4.5./configure --prefix=/usr/local/keepalivedmake && make install

2.1.1 配置文件配置

# 配置文件 keepalived.conf 配置
mkdir -p /etc/keepalivedvim keepalived.conf# 配置文件內容
! Configuration File for keepalivedglobal_defs {router_id NGINX_MASTERscript_user rootenable_script_security
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1mcast_src_ip 192.168.159.129authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.159.200}
}

2.1.2 把keepalived 配置成系統命令

  • 創建 服務文件

    vim /etc/systemd/system/keepalived.service[Unit]
    Description=Keepalived High Availability Service
    After=network.target[Service]
    Type=forking
    PIDFile=/var/run/keepalived.pid
    ExecStart=/usr/local/keepalived/sbin/keepalived --pid=/var/run/keepalived.pid --config=/etc/keepalived/keepalived.conf
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure[Install]
    WantedBy=multi-user.target
    
  • 重新加載 Systemd 配置并啟動服務

    sudo systemctl daemon-reload
    sudo systemctl start keepalived
    sudo systemctl enable keepalived
    
  • 檢查服務狀態

    sudo systemctl status keepalived
    

2.2 在節點 Backup 上安裝 Keepalived

安裝方法與 Master 一致, 配置文件 keepalived.conf 需要修給為以下

! Configuration File for keepalivedglobal_defs {router_id NGINX_BACKUPscript_user rootenable_script_security
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 90advert_int 1mcast_src_ip 192.168.159.130authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.159.200}
}

三、啟動 keepalived 服務驗證 VIP 是否掛起

在這里插入圖片描述

四、安裝 Nginx 服務器

pass

五、測試 Nginx

在 Master 上的 Nginx 的 HTML配置 MASTER

在 Backup 上的 Nginx 的 HTML 配置 Buckup

5.1 訪問虛擬 IP 192.168.159.200

在這里插入圖片描述

5.2 把 Master 的 keepalived 關閉,模擬服務故障

在這里插入圖片描述
發現 VIP 192.168.159.200 切換到 備用服務器,訪問 192.168.159.120
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74792.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74792.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74792.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用python完成手寫數字識別

入門圖像識別的第一個案例,看到好多小伙伴分享,也把自己當初的思路捋捋,寫成一篇博客,作為記錄和分享,也歡迎各位交流討論。 實現思路 數據集:MNIST(包含60,000個訓練樣本和10,000個測試樣本) 深度學習框架:Keras(基于TensorFlow) 模型架構:卷積神經網絡(CNN) 實…

Java學習總結-多線程-三種創建方法

什么是線程? 線程(Thread)是程序內部的一條執行流程。 程序如果只有一條執行流程,那這個程序就是單線程程序。 什么是多線程? 多線程是指從軟硬件上實現的多條執行流程的技術(多條線程由CPU負責調度執行…

電動垂直起降飛行器(eVTOL)

電動垂直起降飛行器(eVTOL)的詳細介紹,涵蓋定義、技術路徑、應用場景、市場前景及政策支持等核心內容: 一、定義與核心特性 eVTOL(Electric Vertical Take-off and Landing)即電動垂直起降飛行器&#xf…

ensp 網絡模擬器 思科華為基于VLANIF的公司網絡搭建

該文章僅記錄作業配置過程 如有雷同純屬巧合 一. 其它(共1題,100分) 1. (其它) 為大學生公司創建部門VLAN 1.項目 背景 為大學生公司現有財務部、技術部和業務部,出于數據安全的考慮,各部門的計算機需進行隔離。公…

使用`sklearn`中的邏輯回歸模型進行股票的情感分析,以及按日期統計積極和消極評論數量的功能

以下是完成上述任務的Python代碼,可在Jupyter Notebook中運行。此代碼包含了使用sklearn中的邏輯回歸模型進行情感分析,以及按日期統計積極和消極評論數量的功能。 import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer f…

oracle批量刪除分區

為了清理數據,往往需要刪除一些分區 簡單查看當前分區 附件 --創建測試表 -- drop table test_part purge;CREATE TABLE test_part (sales_id NUMBER,sale_date DATE,amount NUMBER ) PARTITION BY RANGE (sale_date) INTERVAL (INTERVAL 1 MONTH) -- 每個月創建…

java流程控制08:For循環

For循環 雖然所有循環結構都可以用while或者do…while表示,但Java提供了另一種語句-----for循環,使一些循環結構變得更加簡單。 for循環語句是支持迭代的一種通用結構,是最有效、最靈活的循環結構。 for循環執行的次數是在執行前就確定的。…

嵌入式軟件開發調試方法

文章目錄 1. 利于函數返回值,retrurn 定位錯誤位置2. 合理使用邏輯分析儀(正點原子 厲害!!) 1. 利于函數返回值,retrurn 定位錯誤位置 如下圖所示,設置不同的返回值,0是ok的,其他值均為失敗&…

P1025 [NOIP 2001 提高組] 數的劃分(DFS)

題目描述 將整數 n 分成 k 份,且每份不能為空,任意兩個方案不相同(不考慮順序)。 例如:n7,k3,下面三種分法被認為是相同的。 1,1,5; 1,5,1; 5,1,1. 問有多少種不同的分法。 輸入格式 n,k …

設計模式簡述(三)工廠模式

工廠模式 描述簡單工廠(靜態工廠)工廠方法模式 抽象工廠增加工廠管理類使用 描述 工廠模式用以封裝復雜的實例初始化過程,供外部統一調用 簡單工廠(靜態工廠) 如果對象創建邏輯簡單且一致,可以使用簡單工…

批量將 JSON 轉換為 Excel/思維導入等其它格式

json 格式相信對大家來說都不陌生,這是一種輕量級的結構化數據,可以對對象進行描述。json 格式也是一種普通的文本文件格式,用記事本就能夠打開編輯 json 格式的文件,可以很方便的轉換為其他格式。今天要給大家介紹的就是如何將 j…

電腦有時出現檢測不到音箱設備怎么辦?

問題 有時候電腦開機之后就檢測不到音箱,經過我一頓檢查發現是檢測不到聲卡,即使拔插了音箱也沒用,但是當我重啟或者休眠之后再重啟發現就檢測到了 解決方案 方案一 重啟或者休眠之后再開啟 方案二 使用powershell指令將聲卡彈出和載入…

Qwen-Agent框架的文件相關操作:從Assistant到BasicDocQA

在前面的幾篇文章如《針對Qwen-Agent框架的Function Call及ReAct的源碼閱讀與解析:Agent基類篇》 、《基于Qwen-Agent框架的Function Call及ReAct方式調用自定義工具》、 《針對Qwen-Agent框架的源碼閱讀與解析:FnCallAgent與ReActChat篇》中&#xff0c…

RSSI定位程序,N個錨點、三維空間,使用CKF對軌跡進行濾波,附MATLAB代碼的下載鏈接

本文所述的程序實現三維空間中基于RSSI信號的多錨點定位,并采用容積卡爾曼濾波(CKF)對動態軌跡進行降噪優化。代碼包含完整的定位仿真流程,涵蓋環境建模、信號強度模擬、定位解算、軌跡濾波及可視化分析模塊 文章目錄 程序介紹概述…

開源軟件與自由軟件:一場理念與實踐的交鋒

在科技的世界里,“開源軟件”和“自由軟件”這兩個詞幾乎無人不知。很多人或許都聽說過,它們的代碼是公開的,可以供所有人查看、修改和使用。然而,若要細究它們之間的區別,恐怕不少朋友會覺得云里霧里。今天&#xff0…

C++ - 頭文件基礎(常用標準庫頭文件、自定義頭文件、頭文件引入方式、防止頭文件重復包含機制)

一、頭文件 在 C 中&#xff0c;頭文件&#xff08;.h&#xff09;用于函數聲明、類定義、宏定義等等 在 Visual Studio 中&#xff0c;頭文件通常放在頭文件目錄中&#xff0c;頭文件實現通常放在源文件目錄中 二、常用標準庫頭文件 1、輸入輸出 <iostream> 標準輸入…

CSS 背景屬性學習筆記

一、CSS 背景屬性概述 CSS 背景屬性用于定義 HTML 元素的背景效果&#xff0c;主要包括以下幾種屬性&#xff1a; background-color&#xff1a;定義元素的背景顏色。 background-image&#xff1a;定義元素的背景圖像。 background-repeat&#xff1a;定義背景圖像如何重復…

Qt實現鼠標拖動窗口

Qt實現鼠標拖動窗口 1、設置窗口無邊框2、重寫鼠標點擊&#xff0c;移動函數2.1添加頭文件2.2 重寫函數2.3 添加定義 3、定義一個偏移值4、判斷鼠標左鍵是否按下并計算偏移值5、移動窗口6、.h文件和.cpp文件6.1 .h文件6.2 .cpp文件 7、總結 1、設置窗口無邊框 this->setWin…

MDX語言的數論算法

MDX語言的數論算法探討 引言 數論作為數學的一個重要分支&#xff0c;主要研究整數及其性質。在計算機科學和信息技術領域&#xff0c;數論算法被廣泛應用于密碼學、算法設計、數據加密等領域。MDX&#xff08;Multi-Dimensional Expressions&#xff09;語言&#xff0c;雖然…

【學Rust寫CAD】34 精確 Alpha 混合函數(argb.rs補充方法)

源碼 #[inline]pub fn over_exact(self, dst: Argb) -> Argb {let a 255 - self.alpha32();let t dst.rb() * a 0x80_00_80;let mut rb (t ((t >> 8) & Argb::MASK)) >> 8;rb & Argb::MASK;rb self.rb();// saturaterb | 0x1000100 - ((rb >&…