要架網站就把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 IN A 192.168.1.12
在使用者上網,輸入網頁網域名www.example.org時,第一個人會得到第一組IP,第二個會會第到第二組IP,第三個人會拿到第一組IP,這個方法叫dns round-robin,非常的簡單,但是可能不是很多人用,在這個情景中,萬一其中一台掛點了,那連線來的人,就要分運氣好或不好,好的人會正常看到網頁,運氣不好的人則看到fail。dns round-robin還有一個問題是,我們可能會需要很多public ip供網頁伺服器使用,多IP就代表網路的費用會變高呀!
管理提供服務網頁的伺服器要變成多台,還要有能力看到下面的伺服器是不是還正常工作,讓使用者在連入時,可以連接到正常的伺服器中,這項工作可以透過haproxy來完成。
註:haproxy是幫忙選機器,可在各伺服器間的資料要自行維護(rsync也是一個解決方法),以免看到不同台伺服器,然後呈現出不同的網頁資訊。
註:haproxy是幫忙選機器,可在各伺服器間的資料要自行維護(rsync也是一個解決方法),以免看到不同台伺服器,然後呈現出不同的網頁資訊。
使用haproxy時,連到網頁的網路架構要修改一下,把直接對外的網頁伺服器放到haproxy的後面,一樣假設我們的網站叫www.example.org,這時它所要mapping的ip就不在是網頁伺服器的ip,而是haproxy的(在以下的範例中,將使用192.168.1.10做為haproxy的ip)。

▲ 圖一、使用haproxy的簡單架構
沒有留言:
張貼留言