2013年7月2日 星期二

使用Stingray進行Domain Name分流

Scenario

許多人會遇到在一台Stingray底下,需要使用到相同Port建立不同的服務的情況,當Stingray綁訂多組IP時候,當然可以把來自不同ip的部分分別設定Virtural Server,但是若只有綁訂一組IP,Port重複使用的部份就是個頭痛的問題,這邊虛擬一個簡單的範例,如下圖所示:



如上圖,當Stingray只有Binding一組IP時候,三組DNS共用一組Domain Name,則需要透過Traffic Rule來進行流量的控制,Traffic Rule的內容大致上就是取出連線的Target端Domain Name,並且將該Traffic重導到適當的Pool...
在這個設定中,需要事先準備下面設定:
  1. 三組Pool,分別對應到要Group的Server
  2. 一組Virtual Server,對應到port 80,預設Pool可以設定為discard
  3. 設定Virtual Server上的Traffic Rule


Traffic Rule

進入Traffic Rule的編輯部分,在Input Traffic部分建立下面的規則:

#使用getHostHeader取出連線進入的domain name
$hostheader = http.getHostHeader();

#透過log確認是否是正確的規則
log.info("$hostheader:". $hostheader);

#撰寫連線規則
if($hostheader == ‘www1.abc.com’)
 pool.use( "www1_pool");
else if($hostheader == ‘www2.abc.com’)
 pool.use( "www2_pool");
else if($hostheader == ‘www3.abc.com’)
 pool.use( "www3_pool");

測試


當Virtual Server enable之後,則可以透過在你的連線主機上hard code hosts設定來達到可以連線www1.abc.com, www2.abc.com, www3.abc.com的效果,此時如果設定無誤,則可以正確的連線到您所指定的Pool中的主機。

2013年5月15日 星期三

Stingray Clustering

如果您有一台以上的Stingray,一定會希望透過Cluster的方式來把它串起來!
而Cluster的設定其實是有License的限制的,需要到System > License > Installed License Key裡面檢視您目前的License支援的程度



另外,在建立Cluster的同時,您需要確認在設定上hostname的設定上,cluster member必須能夠找到對方,因此比較快的方式是去設定/etc/hosts...

開始設定Cluster,只要把Wizards下拉後,選擇Join a Cluster,後面的精靈會帶您填入cluster member的位置,然後再輸入該Stingray(要加入的那台)的admin帳號密碼,就可以完成加入的動作∼(這邊不贅述Winzards的設定)



加入後就可以在Web Console上的右上角看到Cluster: OK字樣,且Traffic Managers可以看到已經加入的Cluster Member... 且使用另一台Stingray登入時也可以看到一樣的設定喔∼