Keepalived+LVS+nginx高可用架構

注明:所有軟件已經下載好,防火墻和SELinux已經全部關閉

一.搭建NFS

1.服務端

1.創建文件

[root@nfs ~]# mkdir -p /nfs/data

2、修改權限

[root@nfs ~]# chmod o+rw /nfs/data

3、寫配置文件

[root@nfs ~]# cat /etc/exports
/nfs/data ?192.168.111.118(rw)
/nfs/data ?192.168.111.119(rw)

4、重啟服務

[root@nfs ~]# systemctl restart nfs-server

5、暴露文件

[root@nfs data]# showmount -e 192.168.111.120
Export list for 192.168.111.120:
/nfs/data (everyone)

2、客戶端

RS1

1.創建掛載目錄

[root@rs1 ~]# mkdivar/www/haha

2、將創建的目錄掛載到服務端的共享目錄

[root@rs1 ~]# mount -t nfs 192.168.111.120:/nfs/data ?/var/www

3、查看是否掛載成功

[root@rs1 ~]# df /var/www
Filesystem ? ? ? ? ? ? ? ?1K-blocks ? ?Used Available Use% Mounted on
192.168.111.120:/nfs/data ?47202304 2063616 ?45138688 ? 5% /varvar/www

RS2

1.創建掛載目錄

[root@rs2?~]# mkdir -p /var/www/xixi

2、將創建的目錄掛載到服務端的共享目錄

[root@rs2?~]# mount -t nfs 192.168.111.120:/nfs/data ?/var/www

3、查看是否掛載成功

[root@rs2 nfs]# df /var/www
Filesystem ? ? ? ? ? ? ? ?1K-blocks ? ?Used Available Use% Mounted on
192.168.111.120:/nfs/data ?47202304 2063616 ?45138688 ? 5% /var/www

?二、搭建nginx服務

RS1

1.寫nginx的配置文件

[root@rs1 ~]# cat /etc/nginx/conf.d/haha.conf?
server {
?? ?server_name ?192.168.111.118;
?? ?root /var/www/haha;
?? ?access_log /var/log/nginx/hehe_access.log;
?? ?error_log ?/var/log/nginx/hehe_error.log;
}

2.在NFS里面寫入nginx的頁面

[root@nfs ~]# echo "welcome rs1" > /nfs/data/haha/index.html

3.重啟服務

[root@rs1 ~]# systemctl restart nginx

4.測試服務
[root@rs1 ~]# curl 192.168.111.118
welcome rs1

RS2

1.寫nginx的配置文件

[root@rs2?~]# cat /etc/nginx/conf.d/xixi.conf?
server {
?? ?server_name ?192.168.111.119;
?? ?root /var/www/xixi;
?? ?access_log /var/log/nginx/xixi_access.log;
?? ?error_log ?/var/log/nginx/xixi_error.log;
}

2.在NFS里面寫入nginx的頁面

[root@nfs ~]# echo "welcome rs2" > /nfs/data/xixi/index.html

3.重啟服務

[root@rs2?~]# systemctl restart nginx

4.測試服務
[root@rs2?~]# curl 192.168.111.119
welcome rs2

?三、搭建keepalived+lvs服務

master

1.修改keepalived的配置文件

[root@lvs-master ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm

[root@lvs-master ~]# cat /etc/keepalived/keepalived.conf?
global_defs {
? ?router_id lvs_master
}

vrrp_instance VI_1 {
? ? state MASTER
? ? interface ens160
? ? virtual_router_id 51
? ? priority 100
? ? advert_int 1
? ? authentication {
? ? ? ? auth_type PASS
? ? ? ? auth_pass 1111
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.111.100
? ? }
}

#配置lvs,需要指定VIP地址

virtual_server 192.168.111.100 80 {
? ? delay_loop 6? #健康檢查時間間隔,時間為秒
? ? lb_algo wrr? ?#負載均衡的算法,rr表示輪詢,wrr表示帶權輪詢
? ? lb_kind DR? #負載均衡的模式,此處為DR 支持的模式有DR|NAT|TUN
? ? persistence_timeout 50 #持久化時間,默認為秒。
? ? protocol TCP? #負載均衡協議

? ? real_server 192.168.111.118 80 {
? ? ? ? weight 3? #權重
? ? ? ? TCP_CHECK {? #檢查
? ? ? ? ? ? connect_timeout 3? ?#連接時間,單位為秒
? ? ? ? ? ? retry 3? #重試次數
? ? ? ? ? ? delay_before_retry 3? #重試間隔時間
? ? ? ? }
? ? }
? ? real_server 192.168.111.119 80 {
? ? ? ? weight 1
? ? ? ? TCP_CHECK {
? ? ? ? ? ? url {
? ? ? ? ? ? connect_timeout 3
? ? ? ? ? ? retry 3
? ? ? ? ? ? delay_before_retry 3
? ? ? ? }
? ? }
}

backup

1.修改配置文件

[root@lvs-backup ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm

[root@lvs-backup ~]# cat /etc/keepalived/keepalived.conf?
global_defs {
? ?router_id lvs_backup
}

vrrp_instance VI_1 {
? ? state BACKUP
? ? interface ens160
? ? virtual_router_id 51
? ? priority 90
? ? advert_int 1
? ? authentication {
? ? ? ? auth_type PASS
? ? ? ? auth_pass 1111
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.111.100
? ? }
}

virtual_server 192.168.111.100 80 {
? ? delay_loop 6
? ? lb_algo wrr
? ? lb_kind DR
? ? persistence_timeout 50
? ? protocol TCP

? ? real_server 192.168.111.118 80 {
? ? ? ? weight 3
? ? ? ? TCP_CHECK {
? ? ? ? ? ? url {
? ? ? ? ? ? connect_timeout 3
? ? ? ? ? ? retry 3
? ? ? ? ? ? delay_before_retry 3
? ? ? ? }
? ? }
? ? real_server 192.168.111.119 80 {
? ? ? ? weight 1
? ? ? ? TCP_CHECK {
? ? ? ? ? ? url {
? ? ? ? ? ? connect_timeout 3
? ? ? ? ? ? retry 3
? ? ? ? ? ? delay_before_retry 3
? ? ? ? }
? ? }
}

2.啟動兩臺服務器

[root@lvs-master ~]# systemctl restart keepalived.service ?ipvsadm.service

[root@lvs-backup ~]# systemctl restart keepalived.service ?ipvsadm.service

3.查看配置規則

[root@lvs-master ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port ? ? ? ? ? Forward Weight ActiveConn InActConn
TCP ?lvs-master:http wrr persistent 50
? -> 192.168.111.118:http ? ? ? ? Route ? 3 ? ? ?0 ? ? ? ? ?0 ? ? ? ??
? -> 192.168.111.119:http ? ? ? ? Route ? 1 ? ? ?0 ? ? ? ? ?1 ? ?

[root@lvs-backup ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port ? ? ? ? ? Forward Weight ActiveConn InActConn
TCP ?192.168.111.100:80 wrr persistent 50
? -> 192.168.111.118:80 ? ? ? ? ? Route ? 3 ? ? ?0 ? ? ? ? ?0 ? ? ? ??
? -> 192.168.111.119:80 ? ? ? ? ? Route ? 1 ? ? ?0 ? ? ? ? ?0 ? ? ?

四、修改RS服務

1、為兩臺 RS 服務器配置 VIP

[root@rs1 ~]# ifconfig lo:1 192.168.111.100 netmask 255.255.255.255 broadcast 192.168.111.100 up
[root@rs2 ~]# ifconfig lo:1 192.168.111.100 netmask 255.255.255.255 broadcast 192.168.111.100 up
?

2、配置核心參數。
[root@rs1 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.ip_forward = 0

[root@rs2 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.ip_forward = 0

3、配置路由

[root@rs1 ~]# route -n
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
0.0.0.0 ? ? ? ? 192.168.111.2 ? 0.0.0.0 ? ? ? ? UG ? ?100 ? ?0 ? ? ? ?0 ens160
192.168.111.0 ? 0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 100 ? ?0 ? ? ? ?0 ens160
192.168.111.100 0.0.0.0 ? ? ? ? 255.255.255.255 UH ? ?0 ? ? ?0 ? ? ? ?0 lo
?

[root@rs2 ~]# route add -host 192.168.111.100 dev lo:1
[root@rs2 ~]#?
[root@rs2 ~]#?
[root@rs2 ~]# route -n
Kernel IP routing table
Destination ? ? Gateway ? ? ? ? Genmask ? ? ? ? Flags Metric Ref ? ?Use Iface
0.0.0.0 ? ? ? ? 192.168.111.2 ? 0.0.0.0 ? ? ? ? UG ? ?100 ? ?0 ? ? ? ?0 ens160
192.168.111.0 ? 0.0.0.0 ? ? ? ? 255.255.255.0 ? U ? ? 100 ? ?0 ? ? ? ?0 ens160
192.168.111.100 0.0.0.0 ? ? ? ? 255.255.255.255 UH ? ?0 ? ? ?0 ? ? ? ?0 lo

五、測試

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

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

相關文章

深度學習處理文本(13)

我們使用基于GRU的編碼器和解碼器來在Keras中實現這一方法。選擇GRU而不是LSTM,會讓事情變得簡單一些,因為GRU只有一個狀態向量,而LSTM有多個狀態向量。首先是編碼器,如代碼清單11-28所示。 代碼清單11-28 基于GRU的編碼器 fro…

HashMap 底層原理詳解

1. 核心數據結構 JDK 1.7 及之前&#xff1a;數組 鏈表 JDK 1.8 及之后&#xff1a;數組 鏈表/紅黑樹&#xff08;鏈表長度 ≥8 時轉紅黑樹&#xff0c;≤6 時退化為鏈表&#xff09; // JDK 1.8 的 Node 定義&#xff08;鏈表節點&#xff09; static class Node<K,V&g…

使用MySQL時出現 Ignoring query to other database 錯誤

Ignoring query to other database 錯誤 當在遠程連接軟件中輸入MySQL命令出現該錯誤 導致錯誤原因是&#xff1a;登錄mysql時賬戶名沒有加上u 如果出現該錯誤&#xff0c;退出mysql&#xff0c;重新輸入正確格式進入即可&#xff01;

哈爾濱工業大學:大模型時代的具身智能

大家好&#xff0c;我是櫻木。 機器人在工業領域&#xff0c;已經逐漸成熟。具身容易&#xff0c;智能難。 機器人-》智能機器人&#xff0c;需要自主能力&#xff0c;加上通用能力。 智能機器人-》人類&#xff0c;這個階段就太有想象空間了。而最受關注的-類人機器人。 如何…

Javascript代碼壓縮混淆工具terser詳解

原始的JavaScript代碼在正式的服務器上,如果沒有進行壓縮,混淆,不僅加載速度比較慢,而且還存在安全和性能問題. 因此現在需要進行壓縮,混淆處理. 處理方案簡單描述一下: 1. 使用 terser 工具進行 安裝 terser工具: # npm 安裝 npm install terser --save-dev# 或使用 yarn 安…

Java String 常用方法詳解

目錄 一、獲取字符串信息(一)獲取字符串長度(二)獲取指定索引處的字符(三)獲取子字符串二、字符串比較(一)比較字符串內容(二)忽略大小寫比較三、字符串轉換(一)轉換為大寫(二)轉換為小寫四、字符串查找(一)查找子字符串的位置(二)從指定位置開始查找五、字符…

Linux驅動開發練習案例

1 開發目標 1.1 架構圖 操作系統&#xff1a;基于Linux5.10.10源碼和STM32MP157開發板&#xff0c;完成tf-a(FSBL)、u-boot(SSBL)、uImage、dtbs的裁剪&#xff1b; 驅動層&#xff1a;為每個外設配置DTS并且單獨封裝外設驅動模塊。其中電壓ADC測試&#xff0c;采用linux內核…

leetcode-代碼隨想錄-哈希表-贖金信

題目 題目鏈接&#xff1a;383. 贖金信 - 力扣&#xff08;LeetCode&#xff09; 給你兩個字符串&#xff1a;ransomNote 和 magazine &#xff0c;判斷 ransomNote 能不能由 magazine 里面的字符構成。 如果可以&#xff0c;返回 true &#xff1b;否則返回 false 。 maga…

精品可編輯PPT | “新基建”在數字化智慧高速公路中的支撐應用方案智慧建筑智慧交通解決方案施工行業解決方案

本文詳細闡述了“新基建”在數字化智慧高速公路中的支撐應用方案&#xff0c;從政策背景出發&#xff0c;指出國家在交通領域的一系列發展規劃和指導意見&#xff0c;強調了智慧交通建設的重要性。分析了當前高速公路存在的問題&#xff0c;如基礎感知設施不足、協同水平低、服…

C語言求3到100之間的素數

一、代碼展示 二、運行結果 三、感悟思考 注意: 這個題思路他是一個試除法的一個思路 先進入一個for循環 遍歷3到100之間的數字 第二個for循環則是 判斷他不是素數 那么就直接退出 這里用break 是素數就打印出來 在第一個for循環內 第二個for循環外

英語—四級CET4考試—蒙猜篇—匹配題

蒙猜方法一 匹配題的做題&#xff1a; 方法一&#xff1a; 首先&#xff0c;什么都不想&#xff0c;把問題中ing形式的&#xff0c;大寫字母的&#xff0c;人名&#xff0c;地名&#xff0c;最后幾個依次框起來。 然后&#xff0c;比如46題&#xff0c;口里默念meaningful lif…

股票日數據使用_未復權日數據生成前復權日周月季年數據

目錄 前置&#xff1a; 準備 代碼&#xff1a;數據庫交互部分 代碼&#xff1a;生成前復權 日、周、月、季、年數據 前置&#xff1a; 1 未復權日數據獲取&#xff0c;請查看 https://blog.csdn.net/m0_37967652/article/details/146435589 數據庫使用PostgreSQL。更新日…

系統與網絡安全------Windows系統安全(6)

資料整理于網絡資料、書本資料、AI&#xff0c;僅供個人學習參考。 共享文件夾 發布共享文件夾 Windows共享概述 微軟公司推出的網絡文件/打印機服務系統 可以將一臺主機的資源發布給其他主機共有 共享訪問的優點 方便、快捷相比光盤 U盤不易受文件大小限制 可以實現訪問…

BN 層的作用, 為什么有這個作用?

BN 層&#xff08;Batch Normalization&#xff09;——這是深度神經網絡中非常重要的一環&#xff0c;它大大改善了網絡的訓練速度、穩定性和收斂效果。 &#x1f9e0; 一句話理解 BN 層的作用&#xff1a; Batch Normalization&#xff08;批歸一化&#xff09;通過標準化每一…

判斷HiveQL語句為ALTER TABLE語句的識別函數

寫一個C#字符串解析程序代碼&#xff0c;邏輯是從前到后一個一個讀取字符&#xff0c;遇到匹配空格、Tab和換行符就繼續讀取下一個字符&#xff0c;遇到大寫或小寫的字符a&#xff0c;就讀取后一個字符并匹配是否為大寫或小寫的字符l&#xff0c;以此類推&#xff0c;匹配任意字…

基于編程的運輸設備管理系統設計(vue+springboot+ssm+mysql8.x)

基于編程的運輸設備管理系統設計&#xff08;vuespringbootssmmysql8.x&#xff09; 運輸設備信息管理系統是一個全面的設備管理平臺&#xff0c;旨在優化設備管理流程&#xff0c;提高運輸效率。系統提供登錄入口&#xff0c;確保只有授權用戶可以訪問。個人中心讓用戶可以查…

6.1 python加載win32或者C#的dll的方法

python很方便的可以加載win32的方法以及C#編寫的dll中的方法或者變量&#xff0c;大致過程如下。 一.python加載win32的方法&#xff0c;使用win32api 1.安裝庫win32api pip install win32api 2.加載所需的win32函數并且調用 import win32api win32api.MessageBox(0,"…

前端精度計算:Decimal.js 基本用法與詳解

一、Decimal.js 簡介 decimal.js 是一個用于任意精度算術運算的 JavaScript 庫&#xff0c;它可以完美解決浮點數計算中的精度丟失問題。 官方API文檔&#xff1a;Decimal.js 特性&#xff1a; 任意精度計算&#xff1a;支持大數、小數的高精度運算。 鏈式調用&#xff1a;…

SQL Server 數據庫實驗報告

??????? 1.1 實驗題目&#xff1a;索引和數據完整性的使用 1.2 實驗目的&#xff1a; &#xff08;1&#xff09;掌握SQL Server的資源管理器界面應用&#xff1b; &#xff08;2&#xff09;掌握索引的使用&#xff1b; &#xff08;3&#xff09;掌握數據完整性的…

AI繪畫中的LoRa是什么?

Lora是一個多義詞&#xff0c;根據不同的上下文可以指代多種事物。以下將詳細介紹幾種主要的含義&#xff1a; LoRa技術 LoRa&#xff08;Long Range Radio&#xff09;是一種低功耗廣域網&#xff08;LPWAN&#xff09;無線通信技術&#xff0c;以其遠距離、低功耗和低成本的特…