Shunze 學園 >資訊設備專區 >Array > 《分享》Server Load Balance 哈囉,還沒有註冊或者登入。請你[註冊|登入]
« 上一篇主題 下一篇主題 » 顯示成列印模式 | 增加到我的最愛
發表新主題 發表回覆
作者
主題
shunze
工友伯伯


註冊日期: 2002 04
來自: 潮汐終止之地
文章: 2371

shunze 離線
《分享》Server Load Balance引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

Aarry的Server Load Balance(SLB)架構是將APV做為對外的虛擬伺服器,
當外部產生需求連向APV時,再由APV依照policy的需求,分派給內部真實伺服器。

就拓樸架構來說,APV應該佈署在防火牆內,與真實伺服器平行連接,
不需擺在防火牆外,直接面對外界各種攻擊。



當有流量產生時,均由APV來承接,再policy之不同,將連線導向真實伺服器。
因此AVP的實際流量會是後面真實伺服器的總合。
所以就AVP的硬體效能需求來說,其承載的連線session數與throughput,一定要遠大於後端的真實伺服器!


依架構來看,其SLB共分為4層關係,分別是Real,Group,Virtual與Policy。



Real 就是後端的真實伺服器,共有數台來提供對外服務。
Group 把後端真實伺服器組成一個群組,只有相同服務類的Real才能放在一組。
Virtual 虛擬伺服器,也就是AVP。
Policy 則決定了要以何種邏輯方式來分配流量。

實際建置時,也會依照這4層關係之先後順序來設定。


以下為WebUI的示範環境,我們透過WebUI來設定一組SLB對應關係

Real 共有r_web01~04等4台,IP分別為10.10.1.105~108
Group 為g_web
Virtual 為V_web,IP為10.10.1.200
Policy 為default

設定Real Server

在SERVER LOAD BALANCE / Real Services / Real Services 中透過 ADD 來新增Real Service。


新增Real services時要注意Service Type與Port的設定。
同一群組的Real Services設定要相同,且Virtual Service的Service Type與Port也要和Real Serveice一致,
這樣內外才會對的起來。

且HTTP 80 port與TCP 80 port意義不同,設定時請務必確認用途。

在Health Check Type的部分,則是設定用何種方式來確認該Real Service的服務狀態。

若經check為down的狀態,則Virtual Service在分派時,就會捨棄這個Real Service,以維持服務之持續性。

而在SERVER LOAD BALANCE / Health Check Setting頁籤,則是用來設定Global的health check參數。
我們可以在這調整偵測的時間及頻次...等細項設定。



設定Group與Method

在SERVER LOAD BALANCE / Groups / Groups中,透過 ADD 來新增一個Group。
新增Group時,除了群組名稱,也要決定好群組成員間的分派方式。

新增好Group後,連點滑鼠兩下該Group,來檢視群組成員。

在檢視群組成員中,可按下 ADD 來新增群組成員。


選擇可用的群組成員及比重後,按下 SAVE 即可把該Real Service加入群組之中。


而Group的method主要分為 PersistentNon-Persistent 兩大類別。

若用戶端有持續連向同一台real service的需求時,例如購物車、會員系統,請選用適合的 Persistent 方法;
若無持續性之需求,可選用 Non-Persistent 方法,更有效率的分散流量。


設定Virtual與Policy

在Virtual部分,可透過SERVER LOAD BALANCE / Virtual Services / Virtual Services來新增一個Virtual。

新增完,連點滑鼠兩下該Virtual來設定對應之Group與Policy。

選好Group及Policy後,按下 ADD 即建立好SLB了∼


SLB的Policy主要分為四類,BasicRedirectQoS Policy TypePersistent Policy Type

Basic 埵酗T種常用的Policy,Static、Default與Backup。
Default是最基本的Policy,可用於多數的Group Method。
而Backup則需依附在Default之下,不能單獨存在;在Default Policy failed之後,Backup Policy就會接手運作。
Static則是靜態Policy,以預設之優先權來說,只低於Redirect Policy;
當設定了Static Policy後,除非有Redirect Policy,否則會直接以Static Policy來進行。

各種Policy的優先順序如下圖

當然Policy的priority也可依實際需求來進行修改。


Monitoring

我們可以在SERVER LOAD BALANCE / Monioring / Status中檢視Virtual、Group與Real的對應關係,與健康狀態。


當4台Real都是正常服務時,我們透過網頁輸入Virtual的IP 10.10.1.200,
它就依Group中的Method,將流量分配到實際的後端主機,例如10.10.1.105。


當r_web01 10.10.1.105死掉時,它就會略過它,而將流量導到下一個Group Method所分配的主機。




X-Forwarded-For

由於流量是先到Virtual,然後再由Virtual導向Real,
所以在Real上,看到的連入IP會是Virtual的IP 10.10.1.104,而不是實際訪客的真實IP 192.168.1.2。

有沒有什麼方式可以看到訪客的真正IP呢?
有的,打開X-Forwarded-For就可以由Virtual把訪客的真實IP傳給Real了∼




♥順子老婆的網拍,請多關照∼

If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!




2014-06-26, 22:31 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
shunze
工友伯伯


註冊日期: 2002 04
來自: 潮汐終止之地
文章: 2371

shunze 離線
《分享》X-FORWARDED-FOR的抓取方式引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

Apache平台

$_SERVER['HTTP_X_FORWARDED_FOR']


IIS平台
Request.ServerVariables("HTTP_X_FORWARDED_FOR")


很抱歉,用 X-FORWARDED-FOR 是抓不到的...



♥順子老婆的網拍,請多關照∼

If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!




2014-08-26, 11:37 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
  « 上一篇主題 下一篇主題 »
發表新主題 發表回覆
跳到:

Powered by: Burning Board 1.1.1 2001 WoltLab GbR