從零開始的云計算生活——番外3,LVS+KeepAlived+Nginx高可用實現方案

目錄

前言

一、環境搭建

1.環境準備

2.安裝ipvsadm和keepalived(Lvs服務器),nginx服務器安裝nginx

3.為兩臺RS配置虛擬ip(nginx服務器)

1.配置虛擬網絡子接口

2.ARP響應級別與通告行為的概念

3.配置ARP

二、Keepalived+Lvs+Nginx高可用集群負載均衡的搭建

1. 配置 Master

2. 配置Lvs Backup

3. 測試

1.測試Lvs

2.測試nginx


前言

在大型網站中一般服務端會做集群,同時利用負載均衡器做負載均衡。這樣有利于將大量的請求分散到各個服務器上,提升網站的響應速度。當然為了解決單點故障的問題,還會做熱備份方案。這里演示利用LVS做負載均衡器,同時利用Keepalived保證其高可用,基于LVS的DR模式構建Nginx集群。

一、環境搭建

1.環境準備

HOSTNAMEIP說明
nginx192.168.71.170nginx服務器
nginx192.168.71.174nginx服務器
Lvs+keepalived(主)192.168.71.166Lvs+keepalived(VIP:192.168.71.150)
Lvs+keepalived(備)192.168.71.169Lvs+keepalived(VIP:192.168.71.150)

2.安裝ipvsadm和keepalived(Lvs服務器),nginx服務器安裝nginx

?

圖中顯示目前版本為1.2.1,此外是一個空列表,啥都沒。

  • 注:關于虛擬ip在云上的事兒

    • 1.阿里云不支持虛擬IP,需要購買他的負載均衡服務

    • 2.騰訊云支持虛擬IP,但是需要額外購買,一臺節點最大支持10個虛擬ip

3.為兩臺RS配置虛擬ip(nginx服務器)

兩臺服務器配置一樣,以下已一臺服務器配置作為演示

1.配置虛擬網絡子接口

1.進入到網卡配置目錄,找到 lo(本地環回接口,用戶構建虛擬網絡子接口),創建一個新的文件ifcfg-lo:0 :

2.修改內容如下:

DEVICE=lo:0
IPADDR=192.168.71.150
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0

nginx1配置

nginx2配置

2.ARP響應級別與通告行為的概念

1.arp-ignore:ARP響應級別(處理請求)

  • 0:只要本機配置了ip,就能響應請求

  • 1:請求的目標地址到達對應的網絡接口,才會響應請求

2.arp-announce:ARP通告行為(返回響應)

  • 0:本機上任何網絡接口都向外通告,所有的網卡都能接受到通告

  • 1:盡可能避免本網卡與不匹配的目標進行通告

  • 2:只在本網卡通告

3.配置ARP

1.打開sysctl.conf

2.配置所有網卡、默認網卡以及虛擬網卡的arp響應級別和通告行為,分別對應:all,default,1o:

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.arp_announce=2
net.ipv4.conf.lo.arp_announce=2

3.刷新配置 ?

4.增加一個網關,用于接收數據報文,當有請求到本機后,會交給lo去處理

5.防止重啟失效,做如下處理,用于開機自啟動 ?

vim /etc/profile
route add -host 192.168.71.150 dev lo

二、Keepalived+Lvs+Nginx高可用集群負載均衡的搭建

這種架構目前在很多公司都在采用的高可用高性能架構, 優點如下:

  1. 使用Keepalived + Lvs 后可以實現主備切換高可用

  2. 結合了Lvs 后, 針對于后臺的Real Server 這些真實的服務器做健康檢查, 如果某臺真實的服務器宕機后, Lvs就會自動剔除, 如果恢復后也可以自動加入.

  3. 其實 Keepalived 本身就是為 Lvs 定做了, 他們的匹配度, 結合度非常高, 通過 keepalivd 就可以配置 Lvs與 RS 的關系, 如負載均衡算法, 健康檢查配置等.

1. 配置 Master

1.進入keepalived配置文件, 修改配置信息, 修改如下即可(注意觀察注釋匹配自己的信息節點)

配置文件如下:

! Configuration File for keepalivedglobal_defs {router_id LVS_102
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.115.150}
}
# LVS 配置: 配置集群訪問的 IP+端口, 端口和nginx保持一致, 都是80, IP與端口是空格而不是冒號
virtual_server 192.168.115.150 80 {# 健康檢查的時間, 單位是秒delay_loop 6# 配置負載均衡的算法, 默認是 輪詢lb_algo rr# 設置LVS的工作模式 NAT|TUN|DR  lb是load_balance 負載均衡的縮寫lb_kind DR# 會話持久化的時間, 默認是 50 秒persistence_timeout 5# 協議 -tprotocol TCP# Real Server 配置  nginx服務ip+端口real_server 192.168.115.113 80 {# 輪詢的權重, 默認有多少臺, 就設置為多少個 1weight 1# 設置健康檢查, 基于 tcpTCP_CHECK {# 檢查的80端口connect_port 80# 檢查的超時時間 2秒connect_timeout 2# 重試的次數 我們設置為2, 一般是5-7nb_get_retry 2# 設置間隔時間 3sdelay_before_retry 3}}real_server 192.168.115.114 80 {weight 1# 設置健康檢查, 基于 tcpTCP_CHECK {# 檢查的80端口connect_port 80# 檢查的超時時間 2秒connect_timeout 2# 重試的次數 我們設置為2, 一般是5-7nb_get_retry 2# 設置間隔時間 3sdelay_before_retry 3}}
}

清除負載均衡的規則

重啟keepalived, 使得配置生效

2. 配置Lvs Backup

步驟同 Master ,只有配置文件不一樣

! Configuration File for keepalived
global_defs {#主服務器配置不同,名稱隨便起router_id LVS_103
}vrrp_instance VI_1 {#主服務器配置不同state BACKUPinterface ens33virtual_router_id 51#主服務器配置不同,權重需要比主服務器低priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.115.150}
}
# LVS 配置: 配置集群訪問的 IP+端口, 端口和nginx保持一致, 都是80, IP與端口是空格而不是冒號
virtual_server 192.168.115.150 80 {# 健康檢查的時間, 單位是秒delay_loop 6# 配置負載均衡的算法, 默認是 輪詢lb_algo rr# 設置LVS的工作模式 NAT|TUN|DR  lb是load_balance 負載均衡的縮寫lb_kind DR# 會話持久化的時間, 默認是 50 秒persistence_timeout 5# 協議 -tprotocol TCP# Real Server 配置  nginx服務ip+端口real_server 192.168.115.100 80 {# 輪詢的權重, 默認有多少臺, 就設置為多少個 1weight 1# 設置健康檢查, 基于 tcpTCP_CHECK {# 檢查的80端口connect_port 80# 檢查的超時時間 2秒connect_timeout 2# 重試的次數 我們設置為2, 一般是5-7nb_get_retry 2# 設置間隔時間 3sdelay_before_retry 3}}real_server 192.168.115.101 80 {weight 1# 設置健康檢查, 基于 tcpTCP_CHECK {# 檢查的80端口connect_port 80# 檢查的超時時間 2秒connect_timeout 2# 重試的次數 我們設置為2, 一般是5-7nb_get_retry 2# 設置間隔時間 3sdelay_before_retry 3}}
}

重啟完出現相同路由規則標識已配置成功

3. 測試

1.測試Lvs

停掉 LVS 的 Master 節點

網站還可以正常訪問

重啟Master 節點,我們發現ip有漂移回來了

2.測試nginx

我們關閉170節點的Nginx服務器(假如宕機狀態)

進入master節點進行查看集群信息

完成

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

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

相關文章

100201組件拆分_編輯器-react-仿低代碼平臺項目

文章目錄1 設計UI,組件拆分2 實現關于1 設計UI,組件拆分 編輯器整體如上圖所示,重點關注: flex彈性布局 上 左中右 下 左中右 畫布居中畫布Y軸滾動 2 實現 src/pages/question/Edit/index.tsx代碼如下: import { …

CS課程項目設計2:交互友好的五子棋游戲

上次給大家分享了井字棋游戲的設計流程 CS課程項目設計1:交互友好的井字棋游戲-CSDN博客https://blog.csdn.net/weixin_36431280/article/details/149309500?spm1001.2014.3001.5501今天打算再分享進階版井字棋游戲的版本設計——五子棋游戲。五子棋游戲操作方式與…

如何用山海鯨輕松構建3D智慧大屏?

一、什么是3D可視化大屏? 3D可視化大屏是一種結合了三維(3D)圖形技術與數據可視化技術的信息展示平臺,它通過在大型屏幕上以三維立體的形式呈現復雜的數據和信息,為用戶提供直觀、生動的視覺體驗。這種技術將抽象的數…

牛客網 SQL 刷題(全部題目,最優解,復雜題有講解)

刷題網址:https://www.nowcoder.com/exam/oj?questionJobId10&subTabNameonline_coding_page有時主頁顯示的題目序號與點進去之后的題目序號有所不同,這里以點進去之后的題目序號為主,如果日后還是有所出入,可以憑題目名稱找…

Linux 系統管理基礎教程

一、引言在 Linux 系統中,系統管理是一項至關重要的任務,它涉及到進程和服務的管理、系統運行級別的控制以及關機重啟等操作。本文將詳細介紹 Linux 系統管理的基礎知識,幫助讀者更好地理解和掌握 Linux 系統的管理技巧。二、Linux 中的進程和…

如何實戰應用快鯨aiseo提升百度搜索排名?

百度搜索排名優化策略 百度搜索排名的提升,是企業獲取在線可見性與自然流量的核心目標。有效的優化策略需基于對百度搜索算法原理的深入理解,遵循其重視內容質量與用戶體驗的核心準則。具體而言,這涉及構建完善的網站技術架構以確保高效爬取與…

element-plus——圖標推薦

以下是 Element Plus 中適合編輯頁面使用的圖標組件示例:<!-- 編輯相關 --> <el-icon><Edit /></el-icon> <!-- 基礎編輯圖標 --> <el-icon><EditPen /></el-icon> <!-- 鋼筆樣式編輯圖標 --&g…

黃仁勛鏈博會首秀:中國開源AI催化全球革命,機器人浪潮重塑未來工廠

7月16日&#xff0c;北京鏈博會開幕式迎來一位特殊演講者——英偉達創始人黃仁勛身著唐裝&#xff0c;首次以中文登臺演講。這位AI芯片巨頭的掌舵人坦言“很緊張”&#xff0c;卻清晰傳遞出一個重要觀點&#xff1a;中國的開源AI已成為世界進步的催化劑&#xff0c;讓每個國家、…

uniapp云托管前端網頁

uniCloud控制臺 實名認證

27、鴻蒙Harmony Next開發:ArkTS并發(Promise和async/await和多線程并發TaskPool和Worker的使用)

目錄 異步并發 (Promise和async/await) Promise async/await 多線程并發 多線程并發模型 內存共享模型 Actor模型 TaskPool TaskPool運作機制 TaskPool注意事項 Concurrent裝飾器 裝飾器說明 裝飾器使用示例 TaskPool擴縮容機制 擴容機制 縮容機制 Worker Wo…

Web前端:JavaScript鼠標事件

1. onclick&#xff08;鼠標單擊事件&#xff09;觸發條件&#xff1a;用戶用鼠標左鍵單擊元素時觸發使用場景&#xff1a;按鈕操作、菜單展開/關閉、提交表單等示例代碼&#xff1a;<button id"myButton">點擊我</button> <script>document.getEl…

控制臺輸出的JAVA格斗小游戲-面向對象

重溫了黑馬的這個小程序首先介紹一下&#xff1a;相當于一個小游戲&#xff0c;你打我一下&#xff0c;我打你一下&#xff1b;中間經歷一些來回&#xff0c;最終根據血量的大小來判斷誰輸誰贏&#xff0c;實話講黑馬整個課在這個之前的題目沒有什么難度&#xff0c;這個不難&a…

GitHub 趨勢日報 (2025年07月15日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖1641claude-code1054markitdown545system-prompts-and-models-of-ai-tools538claud…

(5)LangGraph4j框架ReActAgent實現

LangGraph4j框架ReActAgent實現 ReAct-Agent概念 ReAct-Agent 是一種大模型應用中的智能體架構。ReAct 是 Re (Reasoning&#xff0c;推理)和 Act&#xff08;Action&#xff0c;行動&#xff09;兩個單詞的簡寫&#xff0c;用通俗的話來說&#xff0c;它可以讓大模型像人一樣“…

近期學習小結

一、TLS&#xff08;Transport Layer Security&#xff09;握手是建立安全通信通道的關鍵過程&#xff0c;確保客戶端與服務器之間的通信加密和身份驗證。以下是TLS 1.2和TLS 1.3的握手流程詳解及對比&#xff1a;TLS 1.2 握手流程目標&#xff1a;協商加密套件、交換密鑰、驗證…

maven本地倉庫清緩存py腳本

清_remote.repositories、以及 .lastUpdated 緩存文件&#xff0c;避免換倉庫or私服的時候一直往舊地方去download從而引起的failtodownlown問題 import os import sysdef delete_maven_metadata_files(directory):"""遞歸刪除指定目錄下的 _remote.repositorie…

職坐標:物聯網解決方案實戰指南

隨著物聯網技術的快速發展&#xff0c;其在智能家居、工業制造和農業領域的應用日益廣泛&#xff0c;為解決實際挑戰提供了高效方案。本文將圍繞職坐標一站式IT培訓就業服務平臺推出的實戰指南&#xff0c;系統解析物聯網解決方案的核心內容。指南首先概述物聯網解決方案的基本…

多云環境下的統一安全架構設計

關鍵詞&#xff1a;多云安全、統一架構、零信任、深度防御、身份管理、威脅檢測、SIEM、合規性 &#x1f4da; 文章目錄 引言&#xff1a;多云時代的安全挑戰多云環境面臨的安全挑戰統一安全架構設計原則核心安全組件架構多層防護體系設計統一身份管理與訪問控制安全監控與威…

批量制作Word:如何根據表格數據的內容批量制作word,根據Excel的數據批量制作word文檔的步驟和注意事項

企業批量制作員工勞動合同時&#xff0c;用 Excel 整理員工姓名、職位等信息&#xff0c;模板設對應占位符&#xff0c;系統快速填充生成合同&#xff1b;高校生成成績單&#xff0c;Excel 存學生成績數據&#xff0c;模板嵌入科目占位符&#xff0c;批量生成準確成績單&#x…

STM32f103ZET6之ESP8266模塊

一、ESP8265概述 官方網址&#xff1a;ESP8266 Wi-Fi MCU I 樂鑫科技 (espressif.com.cn) ESP8266模塊---wifi模塊 產品特點&#xff1a;ESP8266 是什么&#xff1f; ESP8266 是由樂鑫科技&#xff08;Espressif Systems&#xff09;開發的一款低成本、高性能的 Wi-Fi 微控制器…