三主熱備架構

1.要求

在這里插入圖片描述

角色主機名軟件IP地址
用戶client192.168.72.90
keepalivedvip192.168.72.100
masterserverAkeepalived, nginx192.168.72.30
backupserverBkeepalived, nginx192.168.72.31
backupserverCkeepalived, nginx192.168.72.32
webtomcat1tomcat192.168.72.41
webtomcat2tomcat192.168.72.42
webtomcat3tomcat192.168.72.43
DNS輪詢dnsnginx192.168.72.11

2.環境準備

2.1修改主機名和ip地址
web:

hostnamectl hostname tomact1
nmcli c modify ens160 ipv4.method manual ipv4.address 192.168.72.41 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
hostnamectl hostname tomact2
nmcli c modify ens160 ipv4.method manual ipv4.address 192.168.72.42 ipv4.gateway 192.168.72.2 ipv4.dns 
223.5.5.5 connection.autoconnect yes
hostnamectl hostname tomact3
nmcli c modify ens160 ipv4.method manual ipv4.address 192.168.72.42 ipv4.gateway 192.168.72.2 ipv4.dns 
223.5.5.5 connection.autoconnect yes

master:

hostnamectl hostname master
nmcli c modify ens160 ipv4.method manual ipv4.address 192.168.72.30 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes

bacup1:

hostnamectl hostname backup1
nmcli c modify ens160 ipv4.method manual ipv4.address 192.168.72.31 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes

backup2:

hostnamectl hostname tomact1
nmcli c modify ens160 ipv4.method manual ipv4.address 192.168.72.32 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes

dns:

hostnamectl hostname dns
nmcli c modify ens160 ipv4.method manual ipv4.address 192.168.72.11 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes

2.2配置倉庫(所有虛擬機)

[BaseOS]
name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=/mnt/AppStream
gpgcheck=0

2.3掛載倉庫(所有虛擬機)

mount /dev/sr0 /mnt

2.4關閉防火墻和selinux(所有虛擬機)

systemctl stop firewalld
setenforce 0

3.配置tomact服務

3.1下載tomact
官網:https://tomcat.apache.org/
tomact1:

wgt  https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.5/bin/apache-tomcat-11.0.5.tar.gz
ls

apache-tomcat-11.0.5.tar.gz

3.2解壓并配置環境

tar -xzf apache-tomcat-11.0.5.tar.gz -C /usr/local
vim /etc/profile
export TOMACT_HOME=/usr/local/apache-tomcat-11.0.5
export PAHT=$PATH:$TOMACT_HOME/bin

3.3下載jdk
官網:https://www.oracle.com

wget  https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
ls jdk-21_linux-x64_bin.tar.gz

3.4 解壓并配置環境

tar- xzf jdk-21_linux-x64_bin.tar.gz -C /usr/local
vim /usr/local
export JAVA_HOME=/usr/local/jdk-21.0.6
export PATH=$PATH:$JAVA_HOME/bin
vim /usr/local/apache-tomcat-11.0.5/webapps/
ls

docs examples host-manager manager ROOT

rm -rf docs  examples  host-manager  manager  
cd ROOT
rm -rf *
vim index.jsp
tomact1 192.168.72.41

3.5啟動文件

source /ect/profile
startup.sh
curl 192.168.72.41:8080

tomact 192.168.72.41

tomact2
復制相關配置文件(tomact1上進行)

scp -r /usr/local/jdk-21.0.6/ root@192.168.72.42:/usr/local
scp -r /usr/local/apache-tomcat-11.0.5/ root@192.168.72.42:/usr/local
scp -r /etc/profile root@192.168.72.42:/etx/profile

驗證復制的目錄

source /etc/profile
startup.sh

修改tomact主頁

cd /usr/local/apache-tomcat-11.0.5/webapps/
ls

docs examples host-manager manager ROOT

rm -rf docs examples host-manager manager 
cd ROOT
rm -rf *
vim index.jsp
tomact2 192.168.72.42

啟動tomact

startup.sh
curl 192.168.72.42> tomact2 3192.168.72.42

tomact3:
復制相關配置文件(tomact1上進行)

scp -r /usr/local/jdk-21.0.6/ root@192.168.72.43:/usr/local
scp -r /usr/local/apache-tomcat-11.0.5/ root@192.168.72.43:/usr/local
scp -r /etc/profile root@192.168.72.43:/etx/profile

驗證復制的目錄

source /etc/profile
startup.sh

修改tomact主頁

cd /usr/local/apache-tomcat-11.0.5/webapps/
ls

docs examples host-manager manager ROOT

rm -rf docs examples host-manager manager 
cd ROOT
rm -rf *
vim index.jsp
tomact3 192.168.72.43

啟動tomact

startup.sh
curl 192.168.72.43> tomact 3192.168.72.43

4.keepalived和nginx相關服務

4.1下載nginx和keepalived
mastr:

dnf install nginx -y
dnf install keepalived

4.2配置nginx

vim /etc/nginx/conf.d/master.conf
upstream tpmact1 {server 192.168.72.41:8080;server 192.168.72.42:8080;server 192.168.72.43:8080;
}
server{server_name 192.168.72.30;listen 80;access_log /var/log/nginx/master_access.log;error_log /var/log/nginx/master_error.log;location / {proxy_pass http://tomact1}
}

4.3配置keepalived

vim /etc/keepalived/keepalived.conf
global_defs {router_id master
}vrrp_instance VI_1 {state MASTERinterface ens160virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.100}
}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.101}
}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 60advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.102}
}

4.4配置nginx高可用

vim /etc/keepalived/check_nginx.sh
#!/bin/bash
counter=$(ps -C nginx --no-header | wc -l)
if [$counter -eq 0]; thensystemctl start nginxif [`ps  -C --no-header | wc -l` -eq 0]; thensystemctl stop keepalivedfi
fi

4.5給腳本賦予執行權限

chmod +x /etc/keepalived/check_nginx.sh

4.6修改keepalived.conf文件

vim /etc/keepalived/keepalived.conf
global_defs {router_id master
}
vrrp_script check_nginx{script  "/etc/keepalived/check_nginx.sh"interval 2}
vrrp_instance VI_1 {state MASTERinterface ens160virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.100}track check_nginx{check_nginx}
}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.101}track check_nginx{check_nginx}
}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 60advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.102}track check_nginx{check_nginx}
}

4.7啟動keepalived和nginx

systemctl start keepalived
systemctl start nginx

4.8 測試

curl192.168.72.30> tomact1 192.168.72.41 tomact1 192.168.72.42 tomact1 192.168.72.43

backup1:
下載nginx和keepalived

dnf install nginx -y
dnf install keepalived -y

復制相關配置文件(master上進行)

scp /etc/keepalived/keepalived.conf root@192.168.72.31:/etc/keepalived/keepalived.conf/
scp /etc/keepalived/check_nginx.sh root@192.168.72.31:/etc/keepalived/

查看腳本文件

ls /etc/keepalived/check_nginx.sh

修改keepalived.conf文件

vim /etc/keepalived/keepalived.conf
global_defs {router_id backup
}
vrrp_script check_nginx{script  "/etc/keepalived/check_nginx.sh"interval 2}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 60advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.100}track check_nginx{check_nginx}
}
vrrp_instance VI_1 {state MASTERinterface ens160virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.101}track check_nginx{check_nginx}
}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.102}track check_nginx{check_nginx}
}

啟動nginx和keepalived


```bash
systemctl start nginx
systemctl start keepalived
測試:```bash
curl 192.168.72.31> tomact1 192.168.72.41 tomact1 192.168.72.42 tomact1 192.168.72.43

backup2:
下載nginx和keepalived

dnf install nginx -y
dnf install keepalived -y

復制相關配置文件(master上進行)

scp /etc/keepalived/keepalived.conf root@192.168.72.32:/etc/keepalived/keepalived.conf/
scp /etc/keepalived/check_nginx.sh root@192.168.72.32:/etc/keepalived/

查看腳本文件

ls /etc/keepalived/check_nginx.sh

修改keepalived.conf文件

vim /etc/keepalived/keepalived.conf
global_defs {router_id backup
}
vrrp_script check_nginx{script  "/etc/keepalived/check_nginx.sh"interval 2}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.100}track check_nginx{check_nginx}
}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 60advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.101}track check_nginx{check_nginx}
}
vrrp_instance VI_1 {state MASTERinterface ens160virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.72.102}track check_nginx{check_nginx}
}

啟動nginx和keepalived


```bash
systemctl start nginx
systemctl start keepalived

測試:```bash
curl 192.168.72.32> tomact1 192.168.72.41 tomact1 192.168.72.42 tomact1 192.168.72.43

5.dns相關配置:

5.1下載nginx

dnf install nginx -y

5.2配置文件

vim /etc/nginx/conf.d/dns.conf
upstream web {server 192.168.72.100;server 192.168.72.101;server 192.168.72.102;}
server {server_name 192.168.72.11;listen 80;access_log /var/log/ngonx/dns_access.log;error_log /var/log/nginx/dns_error.log;location / {proxy_pass http://web;}}

5.3 啟動nginx

systemctl start nginx

5.4 測試

curl 1912.168.72.100> tomact1 192.168.72.41 tomact1 192.168.72.42 tomact1 192.168.72.43

至此,keepalived+nginx+tomact的高可用輪詢搭建完成

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

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

相關文章

windows 10 系統配置Node

目錄 什么是Node.js 什么是Npm Node.js環境搭建 下載 解壓 配置環境變量 npm配置 如何運行下載的Node.js項目 什么是Node.js 在 Node.js 之前,JavaScript 只能運行在瀏覽器中,作為網頁腳本使用,為網頁添加一些特效,或者和…

Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 網站

開啟遠程桌面 參考文章Windows server開啟遠程桌面教程打開服務管理器。ECS 配置安全組,開啟 3389Telnet 驗證網絡聯通性 telnet x.x.x.x 338安裝 Windows App,登錄驗證 安裝 ASP.NET 3.5 1.參考文章Windows Server 2012安裝 .NET Framework 3.5和 Wi…

開源模型應用落地-shieldgemma-2-4b-it模型小試-多模態內容安全檢測(一)

一、前言 在人工智能迅速發展的過程中,內容安全成為AI應用中的一個重要挑戰。谷歌團隊于2025年3月推出了一款名為ShieldGemma-2-4B-IT的模型,它以創新的多模態安全檢測能力,為行業樹立了新的開源責任AI標準。 與早期的僅支持文本審核的版本相比,ShieldGemma-2-4B-IT在谷歌的…

【數據預測】基于遺傳算法GA的LSTM光伏功率預測 GA-LSTM光伏功率預測【Matlab代碼#91】

文章目錄 【可更換其他算法,獲取資源請見文章第6節:資源獲取】1. 遺傳算法GA2. 長短期記憶網絡LSTM3. 基于GA-LSTM的光伏功率預測4. 部分代碼展示5. 運行結果展示6. 資源獲取 【可更換其他算法,獲取資源請見文章第6節:資源獲取】 …

openEuler24.03 LTS下安裝Hadoop3完全分布式

目錄 Linux準備 openEuler24.03 LTS簡介 下載openEuler24.03 LTS 安裝openEuler24.03 LTS Linux基本設置 關閉及禁用防火墻 修改主機名 靜態ip 映射主機名 創建普通用戶 目錄準備 克隆主機 配置機器之間免密登錄 編寫分發腳本 安裝Java 下載Java 解壓 設置環…

【Linux之Shell腳本實戰】Linux服務器輸出美觀漂亮的html巡檢報告

【Linux之Shell腳本實戰】Linux服務器輸出美觀漂亮的html巡檢報告 一、Shell腳本介紹1.1 Shell腳本簡介1.2 Shell腳本特點二、腳本要求三、檢查本地環境3.1 本地環境規劃3.2 檢查本地系統3.3 檢查系統內核版本四、編輯腳本五、執行及測試腳本5.1設置定時任務5.2 執行效果六、總…

坦克大戰(c++)

今天我給大家分享一個c游戲。 廢話不多說&#xff0c;作品展示&#xff1a; #include <stdio.h> #include <windows.h> #include <time.h> //里規格&#xff1a;長39*278 &#xff08;真坐標&#xff09;(假坐標寬為39) 高39 //外規格&#xff1a;長…

node-ddk, electron組件, 自定義本地文件協議,打開本地文件

node-ddk 文件協議 https://blog.csdn.net/eli960/article/details/146207062 也可以下載demo直接演示 http://linuxmail.cn/go#node-ddk 安全 考慮到安全, 本系統禁止使用 file:/// 在主窗口, 自定義文件協議,可以多個 import main, { NODEDDK } from "node-ddk/m…

論文閱讀:2023 arxiv Provable Robust Watermarking for AI-Generated Text

總目錄 大模型安全相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Provable Robust Watermarking for AI-Generated Text https://arxiv.org/pdf/2306.17439 https://github.com/XuandongZhao/Unigram-Watermark https://www.doubao.com/chat/211092…

一條sql語句在mysql中的執行流程(Mysql基礎架構)

mysql基礎架構 MySQL 主要分為 Server 層和 存儲引擎層&#xff1a; Server 層&#xff1a;主要包括 連接器、查詢緩存、分析器、優化器、執行器等&#xff0c;所有跨存儲引擎的功能都在這一層實現&#xff0c;比如存儲過程、觸發器、視圖&#xff0c;函數等&#xff0c;還有一…

GitLens with `Commit Graph`

文章目錄 GitLens with Commit Graph GitLens with Commit Graph 想要更直觀地查看 Git 提交歷史&#xff1f;我打包了一個支持 Commit Graph 的 GitLens 版本&#xff0c;讓你輕松在 VSCode 中查看分支、合并、變更記錄等內容&#xff0c;一目了然&#xff01; &#x1f4cc…

C#里使用libxl的數字格式

由于EXCEL里可以表示不同的數字格式, 比如表示貨幣數字時,與表示普通序號的數字就不一樣。 還有科學計算表示的數字使用小數點位數與普通貨幣也不一樣。 如下所示: 要使用這些格式, 下面創建一個例子來演示保存這些數字格式: private void button11_Click(object send…

CentOS 7擴容 /dev/shm

在 CentOS 7 中&#xff0c;/dev/shm 是基于內存的臨時文件系統&#xff08;tmpfs&#xff09;&#xff0c;其大小通常為系統內存的一半。要擴容 /dev/shm&#xff0c;可以通過重新掛載 tmpfs 并指定新的大小來實現。 擴容步驟 查看當前 /dev/shm 的大小&#xff1a; df -h /d…

【一起學Rust | Tauri2.0框架】基于 Rust 與 Tauri 2.0 框架實現全局狀態管理

前言 在現代應用程序開發中&#xff0c;狀態管理是構建復雜且可維護應用的關鍵。隨著應用程序規模的增長&#xff0c;組件之間共享和同步狀態變得越來越具有挑戰性。如果處理不當&#xff0c;狀態管理可能會導致代碼混亂、難以調試&#xff0c;并最終影響應用程序的性能和可擴…

百度SEO和必應SEO優化方法

如需SEO服務&#xff0c;可以搜索&#xff1a;深圳市信科網絡科技有限公司。 一、搜索引擎生態格局&#xff1a;流量入口的重新洗牌 2025 年&#xff0c;中國 PC 端搜索引擎市場正經歷戲劇性變革。StatCounter 數據顯示&#xff0c;必應憑借 Edge 瀏覽器的預裝優勢與 ChatGPT …

Redis 事件機制詳解

Redis 事件機制詳解 Redis 的事件機制是其高性能和高并發能力的關鍵之一&#xff0c;它采用Reactor 模型&#xff0c;基于文件事件驅動機制實現高效的 I/O 處理。Redis 的事件機制主要分為以下幾類&#xff1a; 文件事件&#xff08;File Event&#xff09; —— 處理網絡 I/…

【LangChain入門 3 Prompts組件】聊天提示詞模板 ChatPromptTemplate

文章目錄 一、 聊天信息提示詞模板1.1 使用關鍵字1.2 使用SystemMessage, HumanMessage, AIMessage來定義消息1.3 使用MessagesPlaceholder 在特定未知添加消息列表 二、關鍵類介紹2.1 ChatPromptTemplate 類2.1.1 from_messages()2.1.2 format_messages()2.1.3 format_prompt(…

Flutter TextFormField 完全手冊與設計最佳實踐

目錄 1. 引言 2. TextFormField 的基本用法 3. 主要屬性 4. 自定義 TextFormField 樣式 4.1 設置邊框樣式 4.2 設置輸入格式限制 4.3 多行輸入 5. 結論 相關推薦 1. 引言 在 Flutter 中&#xff0c;TextFormField 是 TextField 的擴展版本&#xff0c;專為表單輸入設計…

HC-05與HC-06藍牙配對零基礎教程 以及openmv識別及遠程傳輸項目的概述

這個是上一年的項目&#xff0c;之前弄得不怎么完整&#xff0c;只有一個openmv的&#xff0c;所以openmv自己去我主頁找&#xff0c;這篇主要講藍牙 這個是我在使用openmv連接單片機1然后單片機1與單片機2通過藍牙進行通信 最終實現的效果是&#xff1a;openmv識別到圖形和數…

【Docker系列一】Docker 簡介

&#x1f49d;&#x1f49d;&#x1f49d;歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…