△注意:本文是配合 Ubuntu Server 14.04 LTS 安裝

要架網站就把linux中apache(or lighttpd or …)與其它需要的功能開起來,再把網頁資料放進去,dns設定好,讓使用者找的到,非常簡單的網站就可以開張了。如果網頁比較吃資源,或是來訪的人比較多,一台伺服器會不夠力,這也簡單,一台不夠,咱們就變兩台伺服器,再不夠就變三台,只要有錢買設備,伺服器當然可以變多,難的是怎叫使用者會怎麼連到不同台的伺服器呢?我認為比較簡單的方法使用dns(可參考網域名稱解析伺服器服務- bind9),以兩個伺服器為例,兩台伺服器會佔用不同的IP,把資料設到dns中,被查詢時dns會依順序給出IP結果,假設我們的網頁叫www.example.org,在dns中設定是:

www   IN      A       192.168.1.11
www   IN      A       192.168.1.12

在使用者上網,輸入網頁網域名www.example.org時,第一個人會得到第一組IP,第二個會會第到第二組IP,第三個人會拿到第一組IP,這個方法叫dns round-robin,非常的簡單,但是可能不是很多人用,在這個情景中,萬一其中一台掛點了,那連線來的人,就要分運氣好或不好,好的人會正常看到網頁,運氣不好的人則看到fail。dns round-robin還有一個問題是,我們可能會需要很多public ip供網頁伺服器使用,多IP就代表網路的費用會變高呀!

管理提供服務網頁的伺服器要變成多台,還要有能力看到下面的伺服器是不是還正常工作,讓使用者在連入時,可以連接到正常的伺服器中,這項工作可以透過haproxy來完成。
註:haproxy是幫忙選機器,可在各伺服器間的資料要自行維護,以免看到不同台伺服器,然後呈現出不同的網頁資訊。

使用haproxy時,連到網頁的網路架構要修改一下,把直接對外的網頁伺服器放到haproxy的後面,一樣假設我們的網站叫www.example.org,這時它所要mapping的ip就不在是網頁伺服器的ip,而是haproxy的(在以下的範例中,將使用192.168.1.10做為haproxy的ip)。


▲ 圖一、使用haproxy的簡單架構

架網站的部份可以參考動態網頁伺服器 — apache + mysq l+ php,下面我們來安裝與設定haproxy。

● sudo apt-get install haproxy  #安裝haproxy
● sudo vi /etc/default/haproxy  #安裝好後,預設haproxy功能是沒有啟用的,編輯haproxy將ENABLED=0 改為 1


▲ 圖二、安裝haproxy


▲ 圖三、啟用haproxy

到此haproxy的使用都非常簡單,但其實haproxy是個功能很強大的服務,他詳實的設定與功能可以參考官網手冊,我們只要做簡單的網頁負載平衡的話,那設定可以參考如下:

● sudo vi /etc/haproxy/haproxy.cfg  #編輯haproxy服務的設定

listen www- balance:80

#要求haproxy為80埠提供服務(listen 80),我取名此動作為www-balance(網頁負載平衡),名字可以自己依需求修改

balance roundrobin

#負載平衡的方法使用roundrobin

server web1 192.168.1.11:80 check

#加入要提供網頁服務的伺服器,並做服務是否中斷的檢查

server web2 192.168.1.12:80 check

haproxy也提供管理功能,讓管理者可以透過網頁了解現在負載的情形,為此我們需要在haproxy.cfg中加入以下的設定

listen status_auth 192.168.1.10:81

#要求haproxy為81埠提供服務(listen 81),我要看haproxy的狀況,故使用haproxy的ip(192.168.1.10),取名叫status_auth,代表要看haproxy的status,且要看之前要做認證

stats enable

#啟用stats,haproxy要看狀態時相關的字詞用的是stats

stats uri /status

#連線時使用的uri在/status下,所以看haproxy狀態,要在瀏覽器中輸入http://192.168.1.10:81/status

stats auth admin:1234

#連線時使用的帳密(這組不是好密碼,不要學哦)

設好之後,重啟服務

● sudo service haproxy restart

一般時,看到有兩台網頁伺服器在提供服務。


▲ 圖四、haproxy的監控畫面

把web1下線後,看到haproxy會發現web1變成down。


▲ 圖五、成員的網頁伺服器停止服務。

來源:http://download.ithome.com.tw/article/index/id/2339

最後修改日期: 2014-08-01

作者

留言

撰寫回覆或留言