over 5 years ago

前言

最近系計中買了VMware vSphere平台的授權,當然要好好的用一下。
灌完FreeBSD9之後發現效能居然還比Ensky.tw這台實體機來的快!
因此決定把vSphere的VM偷兩部過來當做Load balance的Web server。

設定

原本那兩台採用DHCP + DDNS綁在某個hostname上面,因此打算使用CNAME做loadbalance的record,
google之後才發現CNAME沒辦法設多筆!因此我把host用A record綁在cdn.ensky.tw上面,
想要load balance的server再用CNAME指到cdn.ensky.tw上

設定其實非常簡單,就只是一筆DNS record上綁很多個A

cdn             A       10.0.0.1
                A       10.0.0.2
                A       10.0.0.3

然後再把你要load balance的hostname導到cdn上面去

www                CNAME   cdn

好了!從此之後你的www就可以自動分散流量到10.0.0.1~3上面囉!

後話

其實這個作法並非非常理想,為何?
因為假設某台Server突然死掉了,本架構並不能做到fail-over,
也就是如果client很不幸的連到死掉的那台server,一樣會噴404 not found,
你會說,那我就寫隻script檢查有沒有死掉,死掉的話就nsupdate拿掉他就好啦?
但是dns更新需要時間,你就算拿掉該host,client端還是會404一陣子,直到dns快取expire...

這裡比較好的作法可能是用一台server做reverse proxy的工作,
當流量過來的時候自動round-robin導到內部的server pool上面,
而當有server掛掉的時候可以自動導到別台這樣。

改天來研究這個方法:p

 
comments powered by Disqus