各位前輩們好,小弟有一個問題
我們公司的網站在台灣與美國各有一台WebServer
外部的客戶都是連到台灣這一台
美國的WebServer只是當成DR使用,我們IT會定期抄資料過去,
平常沒有使用者access
但我們最近發現台灣的Webserver速度越來越慢,CPU & RAM飆很高,
因此我們把腦筋動到了美國那台WebServer,想做兩台WebSever的Load-Balance,
也就是把使用者分流,
台灣的客戶固定連到台北這台
美國的客戶固定連到美國那台
讓台北的Webserver負擔降低,
順便也可以讓平常閒置的美國Webserver發揮更大的效用
請問各位前輩,技術上有辦法做到嗎?? 我應該去請ISP協助我嗎?? 感謝
hi, 您好
小弟正有相關的經驗,我們是找 third party 的服務,類似DNS代管的功能。當然除了一般的DNS record之外,
他們還有提供所謂的 "" Geographical DNS ""
也就是說某一個 A Record,您可以設定很多IP指到您在全球各地的webserver,而這個網站就會依照End-User的來源IP,來回覆最近的webserver位址,您的DNS已經交由他代管了,因此只要他們有全球IP的分配表,這不難做到,但核心技術是否是上面有前輩提的BIND9,就不得而知了。
我們公司目前就是採用類似的服務,我覺得用這類服務的好處有以下
設定簡單 --> 通常Third party 廠商都會提供網頁讓您設定,只要在A Record前把Geographical的選項打勾就可以了
價錢不貴 --> 比起某國內ISP業者所提供的F5租賃服務,價格便宜了70%!!,因此我們自從採用了Geographical DNS後,馬上把某國內ISP業者的服務退租了
以上為自己的經驗,提供您參考
hona提到:
台灣的客戶固定連到台北這台
美國的客戶固定連到美國那台
如果你很執著一定要這樣做,那只有F5 BIG-IP Global Traffic Manager 這類的設備可以做到,有沒有其他open source 軟體可以做,請其他知道的人接棒。
以前有ISP是有出租F5的服務的,不過報價也不低就是了,現在我比較沒有接觸了,有沒有就不知道了。
要不然建議用DNS round robin 的方式做就好。雖然有其缺點,但也是解決問題的方式。
另外的方法也可以增加台灣server 的數量,不管是微軟的server或是linux主機都有 server 端的 load balance的機制可供使用。這個方案的花費是遠低於用F5的設備的。我是建議用M家的server load balance設定簡單,穩定度OK。
總之除非你的web site上有金流交易服務,要不然我建議增加server數量即可。
Vincent您好:
Round-Robin在我們的環境可能沒辦法。就如您所猜想,我們的網站有類似"購物車"的功能,因此當round-robin把session導到另一台時,購物車會有問題
如果要增加Server數量,然後用M牌的NLB我們也是有想過,但就卡在老闆們想先讓美國的Server負擔一些loading,而不想直接花錢在台灣添購硬體...Orz
也許可以嘗試這樣的方案:
http://code.google.com/p/bind-geoip/wiki/UsageGuide
to fillano:
我在說明中看到一行字如下,不知是否只支援IPv6.
GeoIP support was able to find the Country, City Rev1, Organization, AS, and Country IPv6 databases, but not the others.
你可以建置一個依ip address而轉向的網站
當使用者連上時先檢查其ip address
再依設定的區域來分配到台灣或美國
IPv4全球核發(Allocated)統計
或是利用檢查 ie 的語系,來當轉向的依據
要自建GSLB的話在兩地都要投資設備.台灣市場上比較常見的設備廠商有 F5
Brocade(Foundry)/ Radware(Alteon) 都可以考慮.
不知道貴公司的 DNS 是使用那一種架設的?
如果是BIND9 可以利用 BIND9 的 view, 可以依不同的 client 回應相同 domain 不同 IP.
有shopping cart的網站內容你會需要client sticky的技術, 又要有
global server load balance, 可以找家F5 or Radware代理商或加值經銷商
去你們家做做簡報說明一下吧~ 如果可以拿整體解決方案打動老闆, 自己會
省很多事, 其他不太需要花錢的做法或許可以 舒緩 你的伺服器負載問題,
不過我認為都比專用SLB設備的方案要遜色, 就看有沒有預算去做嘍~