299

公司官網(wǎng)打開(kāi)慢,優(yōu)化服務(wù)器負(fù)載均衡解決方案

時(shí)間: 2015-10-09 11:52:22   點(diǎn)擊數(shù): 33038   來(lái)源: 耐思智慧

隨著公司產(chǎn)品業(yè)務(wù)的推廣發(fā)展壯大,對(duì)服務(wù)器的硬件性能、相應(yīng)速度、服務(wù)穩(wěn)定性、數(shù)據(jù)可靠性的要求越來(lái)越高。今后服務(wù)器的負(fù)載將難以承受所有的訪問(wèn)。從公司的實(shí)際情況,運(yùn)營(yíng)成本網(wǎng)絡(luò)安全性考慮,排除使用價(jià)格昂貴的大型服務(wù)器、以及部署價(jià)格高昂的專用負(fù)載均衡設(shè)備。

DNS輪詢負(fù)載均衡解決方案雖然成本低廉但是安全性能不是很好,加上公司產(chǎn)品的特殊性需要用戶驗(yàn)證的體系,在會(huì)話保持方面是一大缺陷,會(huì)話保持,如果是需要身份驗(yàn)證的網(wǎng)站,在不修改軟件構(gòu)架的情況下,這點(diǎn)是比較致命的,因?yàn)镈NS解析無(wú)法將驗(yàn)證用戶的訪問(wèn)持久分配到同 一服務(wù)器。雖然有一定的本地DNS緩存,但是很難保證在用戶訪問(wèn)期間,本地DNS不過(guò)期,而重新查詢服務(wù)器并指向新的服務(wù)器,那么原服務(wù)器保存的用戶信息 是無(wú)法被帶到新服務(wù)器的,而且可能要求被重新認(rèn)證身份,來(lái)回切換時(shí)間長(zhǎng)了各臺(tái)服務(wù)器都保存有用戶不同的信息,對(duì)服務(wù)器資源也是一種浪費(fèi)。

企業(yè)還有另一種選擇解決難題,構(gòu)建集群服務(wù)器----通過(guò)整合多臺(tái)相對(duì)低廉的普通服務(wù)器,以同一個(gè)地址對(duì)外提供相同的服務(wù)。LVS負(fù)載均衡集群解決方案是目前企業(yè)最常見(jiàn)運(yùn)用范圍最廣的一種集群技術(shù)。

一、Web服務(wù)集群負(fù)載均衡理論思路

負(fù)載均衡的思路下多臺(tái)服務(wù)器為對(duì)稱方式,每臺(tái)服務(wù)器都具備等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無(wú)須其它服務(wù)器的輔助。然后通過(guò)某種負(fù)載分擔(dān)技術(shù),將外部發(fā)送來(lái)的請(qǐng)求均勻分配到對(duì)稱結(jié)構(gòu)中的某一臺(tái)服務(wù)器上,而接收到請(qǐng)求的服務(wù)器都獨(dú)立響應(yīng)客戶機(jī)的請(qǐng)求。由于建立內(nèi)容完全一致的Web服務(wù)器并不復(fù)雜,可以使用服務(wù)器同步更新或者共享存儲(chǔ)空間等方法來(lái)完成,因此負(fù)載均衡技術(shù)就成為建立一個(gè)高負(fù)載Web站點(diǎn)的關(guān)鍵性技術(shù)。

web服務(wù)器集群負(fù)載圖

二、公司外網(wǎng)服務(wù)器的網(wǎng)絡(luò)環(huán)境及工作模式的選擇

Lvs負(fù)載均衡的工作模式一共有三種,分別是 

1、network address translation地址轉(zhuǎn)換模式 ; 

2、ip tunnel IP隧道模式 ;

3、direct routing直接路由模式。

這3種工作模式中,NAT模式只需要一個(gè)公網(wǎng)ip,成為最簡(jiǎn)易的負(fù)載均衡模式,安全性比較好,相對(duì)而言DR模式的負(fù)載能力更為強(qiáng)大、適用范圍更廣。下面我們對(duì)DR工作模式進(jìn)行具體的研究;

DR工作模式采用半開(kāi)放式的網(wǎng)絡(luò)結(jié)構(gòu),各節(jié)點(diǎn)服務(wù)器與調(diào)度器處在同一個(gè)物理網(wǎng)絡(luò),負(fù)載均衡調(diào)度器與各節(jié)點(diǎn)服務(wù)器使用本地網(wǎng)絡(luò)相連,客戶端請(qǐng)求訪問(wèn)會(huì)請(qǐng)求調(diào)度器的虛擬IP地址,服務(wù)器響應(yīng)不經(jīng)過(guò)調(diào)度器,直接響應(yīng)客戶端。

DR工作模式

DirectRouting 工作模式客戶端請(qǐng)求及服務(wù)器響應(yīng)流程

服務(wù)器響應(yīng)流程

基于DR模式的LVS負(fù)載均衡集群的網(wǎng)絡(luò)架構(gòu)

三、操作流程及實(shí)施步驟

針對(duì)公司部署的實(shí)際情況我們可以DR直接路由的工作模式為實(shí)施方案,

具體操作步驟流程如下:

LVS現(xiàn)在已成為L(zhǎng)inux內(nèi)核的一部分,默認(rèn)編譯為ip_vs模塊,必要時(shí)能夠自動(dòng)調(diào)用。以下操作可以手動(dòng)加載ip_vs模塊,并查看當(dāng)前系統(tǒng)中ip_vs模塊的版本信息

modprobe ip_vs

//加載ip_vs模塊,

  1. cat /proc/net/ip_vs 

//查看ip_vs版本信息

---安裝管理軟件------

  1. rpm -ivh /mnt/Packages/ipvsadm-1.25-9.el6.i686.rpm   
  2. service ipvsadm start 

//啟動(dòng)服務(wù)

以上這些操作在調(diào)度服務(wù)器上做一下就好了,節(jié)點(diǎn)服務(wù)器不用安裝這些的

———————————————————————————————————

-----常用命令的解釋如下:------

LVS的負(fù)載調(diào)度算法有四種最常用的:輪詢算法(rr)、加權(quán)輪詢(wrr)、最少輪詢(lc)、加權(quán)最少輪詢(wlc)

1)創(chuàng)建虛擬服務(wù)器

群集的VIP地址為192.168.0.14,針對(duì)TCP 80端口提供負(fù)載分流服務(wù),使用的輪詢調(diào)度算法。對(duì)于負(fù)載均衡調(diào)度器來(lái)說(shuō),VIP必須是本機(jī)實(shí)際已啟用的IP地址

ipvsadm -A -t 192.168.0.14:80 -s rr

//選項(xiàng) "-A"表示添加虛擬服務(wù)器,"-t"用來(lái)指定VIP地址及TCP端口,"-s"用來(lái)指定負(fù)載調(diào)度算法——rr、wrr、lc、wlc

2)添加服務(wù)器節(jié)點(diǎn)

  1. ipvsadm -a -t 192.168.0.14:80 -r 192.168.0.12:80 -m   
  2. ipvsadm -a -t 192.168.0.14:80 -r 192.168.0.13:80 -m 

//選項(xiàng) "-a"表示添加真實(shí)服務(wù)器,"-t"用來(lái)指定VIP地址及TCP端口,"-r"用來(lái)指定RIP地址及TCP端口,"-m"表示使用NAT群集模式("-g"是DR模式,"-i"是TUN模式)

{ -m參數(shù)后面還可以跟下-w的參數(shù),這里沒(méi)有做的"-w"用來(lái)設(shè)置權(quán)重(權(quán)重為0時(shí)表示暫停節(jié)點(diǎn))}

4)刪除服務(wù)器節(jié)點(diǎn)

  1. ipvsadm -d -r 192.168.0.14:80 -t 192.168.0.12:80 

//需要從服務(wù)器池中刪除某一個(gè)節(jié)點(diǎn)時(shí),使用選項(xiàng)"-d"。執(zhí)行刪除操作必須指定目標(biāo)對(duì)象,包括節(jié)點(diǎn)地址、虛擬IP地址。如上所示的操作將會(huì)刪除LVS群集192.168.0.14中的節(jié)點(diǎn)192.168.0.12


若需要?jiǎng)h除整個(gè)虛擬服務(wù)器時(shí),使用選項(xiàng)-D并指定虛擬IP地址即可,無(wú)需要指定節(jié)點(diǎn)。例如:“ipvsadm -D -t 172.16.16.172.24:80",則刪除此虛擬服務(wù)器。

  1. ipvsadm -L   
  2. //  
  3. 查看節(jié)點(diǎn)狀態(tài),加個(gè)   
  4. "-n" 
  5. 將以數(shù)字形式顯示地址、端口信息   
  6. ipvsadm-save  > /etc/sysconfig/ipvsadm  
  7. //  
  8. 保存策略 

使用導(dǎo)出/導(dǎo)入工具ipvsadm-save/ipvsadm-restore可以保存、恢復(fù)LVS策略,方法類似于iptables的規(guī)則的導(dǎo)出、導(dǎo)入。


四、腳本化操作實(shí)施步驟

------DR模式調(diào)度器配置------(調(diào)度器與各服務(wù)器之間要用的都用腳本的形式)

  1. vi dr.sh   
  2. ifconfig eth0:0 192.168.0.14 broadcast 192.168.0.14 netmask 255.255.255.255 up   
  3. route add -host 192.168.0.14 dev eth0:0   
  4. ipvsadm -C   
  5. ipvsadm -A -t 192.168.0.14:80 -s rr   
  6. ipvsadm -a -t 192.168.0.14:80 -r 192.168.0.12:80 -g   
  7. ipvsadm -a -t 192.168.0.14:80 -r 192.168.0.13:80 -g   
  8. ipvsadm 

------DR模式各服務(wù)器配置------

  1. vi web.sh   
  2. ifconfig lo:0 192.168.0.14 broadcast 192.168.0.14 netmask 255.255.255.255 up   
  3. route add -host 192.168.0.14 dev lo:0   
  4. echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
  5. echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce  
  6. echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore  
  7. echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce  
  8. sysctl -p &>/dev/null 
  9. sh dr.sh start   
  10. sh web.sh start   
  11. sh web.sh start 

五、Shared Storage(共享存儲(chǔ)):

Shared Storage為所有Real Server提供共享存儲(chǔ)空間和一致的數(shù)據(jù)內(nèi)容

-------NFS服務(wù)器安裝-----

yum install nfs-utils

//nfs在裝的時(shí)候會(huì)有“rpcbind”這個(gè)依賴包的

service rpcbind start

//在啟動(dòng)nfs服務(wù)之前先要啟動(dòng)這個(gè)"rpcbind"服務(wù)

service nfs restart

//nfs是"111"的端口

---編輯配置文件----

vi /etc/exports

//NFS的配置文件為/etc/exports,文件內(nèi)容默認(rèn)為空(無(wú)任何共享)。

/usr/share *(ro,sync)

/opt/test 192.168.80.22(rw,sync)

//將文件夾/opt/test共享給192.168.80.22網(wǎng)段使用,允許讀寫操作!皊ync”表示同步寫入。

注:rw表示允許讀寫(ro表示為只讀),sync表示同步寫入,no_root_squash表示當(dāng)客戶機(jī)以root身份訪問(wèn)時(shí)賦予本地root權(quán)限(默認(rèn)是root_squash,將作為nfsnobody用戶降權(quán)對(duì)待)

--發(fā)布共享---

exportfs -rv

---客戶端查看、掛載----

//掛載

NFS協(xié)議的目標(biāo)是提供一種網(wǎng)絡(luò)文件系統(tǒng),因此對(duì)NFS共享的訪問(wèn)也使用mount命令來(lái)進(jìn)行掛載,對(duì)應(yīng)的文件系統(tǒng)類型為nfs。

若要正常訪問(wèn)NFS共享資源,客戶機(jī)中也需要安裝rpcbind軟件包,并啟動(dòng)rpcbind系統(tǒng)服務(wù);另外,為了使用showmount查詢工具,建議將nfs-utils軟件包也一并裝上。

六、驗(yàn)證

1、負(fù)載均衡驗(yàn)證

192.168.0.12、192.168.0.13  為web服務(wù)器

192.168.0.11 為負(fù)載均衡調(diào)度器

192.168.0.14 為VIP 是負(fù)載均衡調(diào)度器虛擬出來(lái)的ip地址

客戶端用戶即是通過(guò)訪問(wèn)192.168.0.14VIP這個(gè)虛擬地址獲得整個(gè)由多個(gè)物理機(jī)服務(wù)器組成的服務(wù)器池提供的同一種web服務(wù)。

下面來(lái)模擬客戶端用戶訪問(wèn)web服務(wù)

第一次登陸192.168.0.14

模擬客戶端訪問(wèn)web服務(wù)

關(guān)掉頁(yè)面重新登陸192.168.0.14

由此發(fā)現(xiàn)lvs調(diào)度已經(jīng)開(kāi)始工作,把客戶端的請(qǐng)求均勻的分發(fā)到各個(gè)服務(wù)器上。

2、共享存儲(chǔ)數(shù)據(jù)同步一致性驗(yàn)證

各節(jié)點(diǎn)服務(wù)器掛載共享存儲(chǔ)的共享目錄,修改的內(nèi)容將在這個(gè)服務(wù)器集群中同步開(kāi)。

上一篇:圖文教程:3分鐘搞定基于CentOS+Nginx+PHP-FPM+MySQL的服務(wù)器環(huán)境 下一篇:跨站腳本攻擊XSS

旗下網(wǎng)站:耐思智慧 - 淘域網(wǎng) - 我的400電話 - 中文域名:耐思尼克.cn 耐思尼克.top

耐思智慧 © 版權(quán)所有 Copyright © 2000-2024 IISP.COM,Inc. All rights reserved

備案號(hào)碼: 粵ICP備09063828號(hào)  公安備案號(hào): 公安備案 粵公網(wǎng)安備 44049002000123號(hào)  域名注冊(cè)服務(wù)機(jī)構(gòu)許可:粵D3.1-20240003 CN域名代理自深圳萬(wàn)維網(wǎng)

聲明:本網(wǎng)站中所使用到的其他各種版權(quán)內(nèi)容,包括但不限于文章、圖片、視頻、音頻、字體等內(nèi)容版權(quán)歸原作者所有,如權(quán)利所有人發(fā)現(xiàn),請(qǐng)及時(shí)告知,以便我們刪除版權(quán)內(nèi)容

本站程序界面、源代碼受相關(guān)法律保護(hù), 未經(jīng)授權(quán), 嚴(yán)禁使用; 耐思智慧 © 為我公司注冊(cè)商標(biāo), 未經(jīng)授權(quán), 嚴(yán)禁使用

法律顧問(wèn):珠海知名律師 廣東篤行律師事務(wù)所 夏天風(fēng) 律師