LVS-DR原理
原理:
1. 當(dāng)用戶向負(fù)載均衡調(diào)度器(Director Server)發(fā)起請求,調(diào)度器將請求發(fā)往至內(nèi)核空間
2. PREROUTING鏈?zhǔn)紫葧邮盏接脩粽埱螅袛嗄繕?biāo)IP確定是本機IP,將數(shù)據(jù)包發(fā)往INPUT鏈
3. IPVS是工作在INPUT鏈上的,當(dāng)用戶請求到達(dá)INPUT時,IPVS會將用戶請求和自己已定義好的集群
服務(wù)進(jìn)行比對,如果用戶請求的就是定義的集群服務(wù),那么此時IPVS會強行修改數(shù)據(jù)包里的目標(biāo)IP
地址及端口,并將新的數(shù)據(jù)包發(fā)往POSTROUTING鏈
4. POSTROUTING鏈接收數(shù)據(jù)包后發(fā)現(xiàn)目標(biāo)IP地址剛好是自己的后端服務(wù)器,那么此時通過選路,將
數(shù)據(jù)包最終發(fā)送給后端的服務(wù)器
組成:
LVS架設(shè)的服務(wù)器集群系統(tǒng)有三個部分組成:最前端的負(fù)載均衡層,用Load Balancer表示,中間的服務(wù)器群組層,用Server Array表示,最底端的數(shù)據(jù)共享存儲層,用Shared Storage表示。
搭建過程
192.168.190.200 作為調(diào)度器director
192.168.190.201 為web服務(wù)器1
192.168.190.202 為web服務(wù)器2
192.168.190.128 為客戶端
1,安裝工具ipvsadm
yum install ipvsadm
2,配置LVS虛擬IP(VIP)
ifconfig ens33:200 192.168.190.200 netmask 255.255.255.0 up
3,手工執(zhí)行配置添加LVS服務(wù)并增加兩臺RS
ipvsadm -C
ipvsadm --set 30 5 60
ipvsadm -A -t 192.168.190.200:80 -s wrr -p 20
ipvsadm -a -t 192.168.190.200:80 -r 192.168.190.201:80 -g -w 1
ipvsadm -a -t 192.168.190.200:80 -r 192.168.190.202:80 -g -w 1
ipvsadm-save > /etc/sysconfig/ipvsadm
各個參數(shù)含義
-A 添加虛擬服務(wù)器
-t 設(shè)置群集地址(VIP,Virtual IP)
-s 指定負(fù)載調(diào)度算法
-a 添加真實服務(wù)器
-d 刪除真實服務(wù)器
-r 指定真實服務(wù)器(Real Server)的地址
-m 使用NAT模式;-g、-i分別對應(yīng)DR、TUN模式
-w 為節(jié)點服務(wù)器設(shè)置權(quán)重,默認(rèn)為1
4, 查看配置信息
[root@localhost ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost.localdomain:http wrr persistent 20
-> 192.168.190.201:http Route 1 0 0
-> 192.168.190.202:http Route 1 0 0
5,手工在RS端綁定VIP
每臺real server端執(zhí)行
201上的操作
ifconfig lo:200 192.168.190.200 netmask 255.255.255.255 up
route add -host 192.168.190.200 dev lo
202上的操作
ifconfig lo:200 192.168.190.200 netmask 255.255.255.255 up
route add -host 192.168.190.200 dev lo
6,手工在RS端抑制ARP響應(yīng)
每臺real server端執(zhí)行
調(diào)整內(nèi)核參數(shù),關(guān)閉arp響應(yīng)
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
測試結(jié)果:需要等待一段時間再刷新就會變成201
nginx 負(fù)載均衡
準(zhǔn)備機器:
負(fù)載均衡器:192.168.190.132
web1服務(wù)器: 192.168.190.128
web2服務(wù)器: 192.168.190.134
所有的機器需要安裝NGINX服務(wù)
步驟:
1,在負(fù)載均衡器上
打開配置文件寫入內(nèi)容
vim /etc/nginx/nginx.conf
在http 區(qū)塊里面新增以下內(nèi)容
upstream pool1 { # 負(fù)載均衡池,里面記錄的是要轉(zhuǎn)發(fā)到的服務(wù)器
server 192.168.190.128:80 weight=1; # 主機及權(quán)重值
server 192.168.190.134:80 weight=1;
}
server {
listen 80; # 監(jiān)聽端口
server_name www.fuzaijunheng.com;
location / {
proxy_pass http://pool1; # 當(dāng)訪問到www.fuzaijunheng.com 時將會轉(zhuǎn)發(fā)到 負(fù)載均衡池
}
}
2,在web1服務(wù)器上
打開配置文件寫入如下:
vim /etc/nginx/nginx.conf
在http 區(qū)塊里面新增以下內(nèi)容:
server {
listen 80;
server_name 192.168.190.128;
location / {
root /usr/share/nginx/html1; # 訪問的目錄
index index.html; # 需要尋找的類型
}
然后創(chuàng)建目錄寫入數(shù)據(jù)
mkdir /usr/share/nginx/html1
echo web1 > /usr/share/nginx/html1/index.html
3,在web2服務(wù)器上
打開配置文件寫入如下:
vim /etc/nginx/nginx.conf
在http 區(qū)塊里面新增以下內(nèi)容:
server {
listen 80;
server_name 192.168.190.134;
location / {
root /usr/share/nginx/html1; # 訪問的目錄
index index.html; # 需要尋找的類型
}
然后創(chuàng)建目錄寫入數(shù)據(jù)
mkdir /usr/share/nginx/html1
echo web2 > /usr/share/nginx/html1/index.html
最后,重啟3臺機器
4,域名寫入解析文件
echo 192.168.190.132 www.fuzaijunheng.com >> /etc/hosts
5,在負(fù)載均衡器上測試文章來源:http://www.zghlxwxcb.cn/news/detail-646207.html
[root@localhost ~]# for((i=0;i<6;i++)); do curl www.fuzaijunheng.com; done
web1
web2
web1
web2
web1
web2
以上就測試成功了文章來源地址http://www.zghlxwxcb.cn/news/detail-646207.html
到了這里,關(guān)于NGINX負(fù)載均衡及LVS-DR負(fù)載均衡集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!