LVS的DR模式部署實(shí)例
一、部署前提
1.準(zhǔn)備至少 3 臺 Linux 服務(wù)器(1 臺 Director,2 臺及以上 Real Server),均為 CentOS/RHEL 或 Ubuntu 系統(tǒng)。
2.所有服務(wù)器處于同一局域網(wǎng),關(guān)閉防火墻和 SELinux(或配置對應(yīng)規(guī)則)。
3.規(guī)劃 IP 地址
- Director:公網(wǎng) / 內(nèi)網(wǎng) IP(如
192.168.1.100) + VIP(如192.168.1.200) - Real Server 1:內(nèi)網(wǎng) IP(如
192.168.1.101) + VIP(回環(huán)地址) - Real Server 2:內(nèi)網(wǎng) IP(如
192.168.1.102) + VIP(回環(huán)地址)
二、所有節(jié)點(diǎn)基礎(chǔ)配置
1.關(guān)閉防火墻和 SELinux
# CentOS/RHEL 7+ systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # Ubuntu ufw disable
2.安裝 ipvsadm 工具(LVS 管理工具)
# CentOS/RHEL yum install -y ipvsadm # Ubuntu apt update && apt install -y ipvsadm
三、 Director 節(jié)點(diǎn)配置
1.配置 VIP
給 Director 的網(wǎng)卡(如 eth0)綁定 VIP:
# 臨時配置(重啟失效) ip addr add 192.168.1.200/32 dev eth0 # 永久配置(CentOS/RHEL,寫入網(wǎng)卡配置文件) cat >> /etc/sysconfig/network-scripts/ifcfg-eth0:0 << EOF TYPE=Ethernet BOOTPROTO=static NAME=eth0:0 DEVICE=eth0:0 IPADDR=192.168.1.200 NETMASK=255.255.255.255 ONBOOT=yes EOF # 重啟網(wǎng)卡 ifup eth0:0
2.配置 LVS 規(guī)則
使用 ipvsadm 創(chuàng)建虛擬服務(wù),指定調(diào)度算法(如 rr 輪詢),并添加 Real Server:
# 清除原有規(guī)則 ipvsadm -C # 添加虛擬服務(wù)(VIP:80,TCP協(xié)議,rr調(diào)度算法) ipvsadm -A -t 192.168.1.200:80 -s wrr # 添加 Real Server,指定 DR 模式(-g) ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101 -g -w 1 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.102 -g -w 1 # 保存規(guī)則(重啟后生效) ipvsadm -S > /etc/sysconfig/ipvsadm systemctl enable --now ipvsadm
- 調(diào)度算法可選:
rr(輪詢)、wrr(加權(quán)輪詢)、lc(最小連接數(shù))等。 -g表示 DR 模式,這是 DR 部署的關(guān)鍵參數(shù)。
3.開啟 IP 轉(zhuǎn)發(fā)(可選)
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p
四、 Real Server 節(jié)點(diǎn)配置(所有 RS 執(zhí)行相同操作)
1.配置 VIP 回環(huán)地址
避免 VIP 沖突,需在回環(huán)網(wǎng)卡 lo 上綁定 VIP,并設(shè)置子網(wǎng)掩碼為 255.255.255.255:
# 臨時配置 ip addr add 192.168.1.200/32 dev lo ip link set lo up # 永久配置(CentOS/RHEL) cat >> /etc/sysconfig/network-scripts/ifcfg-lo:0 << EOF TYPE=Ethernet BOOTPROTO=static NAME=lo:0 DEVICE=lo:0 IPADDR=192.168.1.200 NETMASK=255.255.255.255 ONBOOT=yes EOF # 重啟網(wǎng)卡 ifup lo:0
2.禁止 ARP 廣播 VIP
這是 DR 模式的核心配置,目的是讓 Real Server 不對外響應(yīng) VIP 的 ARP 請求,僅 Director 響應(yīng) ARP:
# 臨時生效 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce # 永久生效(寫入 sysctl.conf) cat >> /etc/sysctl.conf << EOF net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 EOF sysctl -p
arp_ignore=1:只響應(yīng)目標(biāo) IP 是本地網(wǎng)卡 IP 的 ARP 請求。arp_announce=2:發(fā)送 ARP 時,使用網(wǎng)卡的真實(shí) IP 作為源 IP,而非 VIP。
3.部署后端服務(wù)
在 Real Server 上部署 Web 服務(wù)(如 Nginx、Apache),用于測試:
# 安裝 Nginx yum install -y nginx systemctl enable --now nginx # 編寫測試頁面(區(qū)分不同 RS) # RS1 echo "Real Server 1 - 192.168.1.101" > /usr/share/nginx/html/index.html # RS2 echo "Real Server 2 - 192.168.1.102" > /usr/share/nginx/html/index.html
五、測試驗(yàn)證
1.在客戶端(同一網(wǎng)段或能訪問 VIP 的機(jī)器)訪問 http://192.168.1.200。
2.多次刷新頁面,會交替顯示 Real Server 1 和 Real Server 2 的內(nèi)容,說明 LVS DR 模式生效。
3.在 Director 節(jié)點(diǎn)查看 LVS 狀態(tài):
ipvsadm -ln
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何在Apache和Nginx禁止上傳目錄里PHP的執(zhí)行權(quán)限
這篇文章主要介紹了如何在Apache和Nginx禁止上傳目錄里PHP的執(zhí)行權(quán)限的具體方法,非常簡單,有需要的小伙伴可以參考下2016-10-10
Linux文件系統(tǒng)基礎(chǔ)操作與路徑管理指南
本文將從目錄與文件的查看技巧出發(fā),深入解析文件創(chuàng)建、修改與刪除的操作規(guī)范,系統(tǒng)闡述絕對路徑與相對路徑的導(dǎo)航邏輯,并延伸至文件類型的本質(zhì)認(rèn)知與樹形結(jié)構(gòu)可視化工具的應(yīng)用,幫助讀者構(gòu)建從基礎(chǔ)操作到底層邏輯的完整知識體系,為高效管理Linux文件系統(tǒng)奠定堅(jiān)實(shí)基礎(chǔ)2025-06-06
Linux中執(zhí)行定時任務(wù)的方法小結(jié)
有時候要在Linux系統(tǒng)上定時執(zhí)行腳本,Linux提供定時任務(wù)命令可以執(zhí)行,這篇文章小編就來和大家聊聊都有哪些方法可以實(shí)現(xiàn)定時任務(wù)吧2024-12-12

