nginx負載均衡

nat模式

Director分發(fā)器配置

配置VIP

[root@tianyun ~]# ip addr add dev eth0 192.168.122.100/24
[root@tianyun ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@tianyun ~]# sysctl -p //確保打開路由轉(zhuǎn)發(fā)
[root@tianyun ~]#ln -sv /usr/src/kernels/3.10..... /usr/src/linux

定義LVS分發(fā)策略

[root@tianyun ~]# yum -y install ipvsadm //RHEL確保LoadBalancer倉庫可用
[root@tianyun ~]# ipvsadm -A -t 192.168.122.100:80 -s rr
[root@tianyun ~]# ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.10 -m //-m masquerading (NAT)
[root@tianyun ~]# ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.20 -m
[root@tianyun ~]# ipvsadm -a -t 192.168.122.100:80 -r 10.10.10.30 -m
[root@tianyun ~]# service ipvsadm save
[root@tianyun ~]# ipvsadm -L
[root@tianyun ~]# 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.122.100:80 rr
-> 10.10.10.10:80 Masq 1 0 1
-> 10.10.10.20:80 Masq 1 0 1
-> 10.10.10.30:80 Masq 1 0 1

[root@tianyun ~]# ipvsadm -L -n --stats // 顯示統(tǒng)計信息
[root@tianyun ~]# ipvsadm -L -n --rate //看速率
[root@tianyun ~]# ipvsadm -Ln -c //查看LVS的連接條目
[root@tianyun ~]# watch -n.5 'ipvsadm -Ln -c'

測試
[root@client ~]# elinks -dump http://192.168.122.100/
[root@client ~]# ab -c 1000 -n 1000 http://192.168.122.100/

總結(jié)

VS/NAT模式的原理是:當Director收到Client請求時减牺,Director將數(shù)據(jù)包的目標IP由VIP轉(zhuǎn)換為選中的Real Server的RIP來實現(xiàn)分發(fā)肖揣,
要求RS將網(wǎng)關(guān)指向Director的DIP氨肌。
特點是:配置簡單,所有的入站牡拇、出站數(shù)據(jù)包都經(jīng)過分發(fā)器。當數(shù)據(jù)量比較大時,分發(fā)器可能會出現(xiàn)網(wǎng)絡(luò)瓶頸惠呼!因而支持的RS數(shù)量少导俘。

Director必須開啟kernel ip_forward
所有RealServer默認網(wǎng)關(guān)指向DIP
Director使用DIP和RealServer RIP通信
[root@director1 ~]# watch -n.5 'ipvsadm -Ln -c'
Every 0.5s: ipvsadm -Ln -c Tue Dec 29 06:41:15 2015

IPVS connection entries
pro expire state source virtual destination
TCP 00:32 SYN_RECV 192.168.122.1:55989 192.168.122.100:80 10.10.10.10:80
TCP 00:42 SYN_RECV 192.168.122.1:55991 192.168.122.100:80 10.10.10.20:80
TCP 00:41 SYN_RECV 192.168.122.1:55990 192.168.122.100:80 10.10.10.30:80
TCP 00:29 SYN_RECV 192.168.122.1:55988 192.168.122.100:80 10.10.10.20:80
TCP 00:59 SYN_RECV 192.168.122.1:55993 192.168.122.100:80 10.10.10.30:80
TCP 00:42 SYN_RECV 192.168.122.1:55992 192.168.122.100:80 10.10.10.10:80

LVS/DR

RS
[root@tianyun ~]# yum -y install httpd
[root@tianyun ~]# ip addr add dev lo 192.168.122.100/32 //在lo接口上綁定VIP
[root@tianyun ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore //non-arp
[root@tianyun ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

Director

配置VIP

[root@tianyun ~]# ip addr add dev eth0 192.168.122.100/32 //配置VIP
[root@tianyun ~]# yum -y install ipvsadm //RHEL確保LoadBalancer倉庫可用

LVS分發(fā)策略
[root@tianyun ~]# ipvsadm -C // 清除內(nèi)核虛擬服務(wù)器表中的所有記錄
[root@tianyun ~]# ipvsadm -A -t 192.168.122.100:80 -s rr
[root@tianyun ~]# ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.10 -g
[root@tianyun ~]# ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.20 -g
[root@tianyun ~]# ipvsadm -a -t 192.168.122.100:80 -r 192.168.122.30 -g
[root@tianyun ~]# service ipvsadm save
Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]

[root@tianyun ~]# 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.122.100:80 rr
-> 192.168.122.10:80 Route 1 0 0
-> 192.168.122.20:80 Route 1 0 0
-> 192.168.122.30:80 Route 1 0 0

[root@tianyun ~]# ipvsadm -L -n
[root@tianyun ~]# ipvsadm -L -n --stats // 顯示統(tǒng)計信息
[root@tianyun ~]# ipvsadm -L -n --rate //看速率
[root@tianyun ~]# ipvsadm -Ln -c //查看LVS的連接條目
[root@tianyun ~]# watch -n.5 'ipvsadm -Ln -c'

測試
[root@client ~]# elinks -dump http://192.168.122.100
[root@client ~]# ab -c 1000 -n 1000 http://192.168.122.100/
[root@client ~]# tcpdump -nni eth0 -e host 192.168.122.100

總結(jié)
VS/DR模式的原理是: 當一個client發(fā)送一個請求到VIP,Di據(jù)VIP選rector根擇對應(yīng)的real-server的Pool剔蹋,根據(jù)算法旅薄,在Pool中選擇一臺Real-server,然后將client的求包請發(fā)給選擇的Real-server泣崩,最后選擇的Real-server把應(yīng)答包直接傳給client少梁,client接收到應(yīng)答包之后建立連接形成一個請求應(yīng)答過程。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矫付,一起剝皮案震驚了整個濱河市凯沪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌买优,老刑警劉巖妨马,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異而叼,居然都是意外死亡身笤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門葵陵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來液荸,“玉大人,你說我怎么就攤上這事脱篙〗壳” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵绊困,是天一觀的道長文搂。 經(jīng)常有香客問我,道長秤朗,這世上最難降的妖魔是什么煤蹭? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮取视,結(jié)果婚禮上硝皂,老公的妹妹穿的比我還像新娘。我一直安慰自己作谭,他們只是感情好稽物,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著折欠,像睡著了一般贝或。 火紅的嫁衣襯著肌膚如雪吼过。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天咪奖,我揣著相機與錄音盗忱,去河邊找鬼。 笑死羊赵,一個胖子當著我的面吹牛售淡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播慷垮,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼揖闸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了料身?” 一聲冷哼從身側(cè)響起汤纸,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芹血,沒想到半個月后贮泞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡幔烛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年啃擦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饿悬。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡令蛉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狡恬,到底是詐尸還是另有隱情珠叔,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布弟劲,位于F島的核電站祷安,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏兔乞。R本人自食惡果不足惜汇鞭,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庸追。 院中可真熱鬧霍骄,春花似錦、人聲如沸锚国。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽血筑。三九已至绘沉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豺总,已是汗流浹背车伞。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喻喳,地道東北人另玖。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像表伦,于是被迫代替她去往敵國和親谦去。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345