Posts Tagged ‘Apache’

李一諤高可用性網站(三):本校的益智遊戲網

益智遊戲網是一個本校十分受歡迎的網站,歷史亦很悠久了。內裡收藏了千多個運行Flash的遊戲,全部已被玩了接近二千多萬次了。建立這網站是希望同學可以在它裡面找一些有益的遊戲,避免接觸那些不良的遊戲。

和其他網站一樣,它原本也是放在一部伺服器,亦用上了Apache + PHP + MySQL的架構。從前,亦曾發生被過度使用而有不能進入的情況。

由於它用了一個南韓出品的開源系統,此產品亦沒有再更新了。我們只好放它在一些較舊的機中,內裡亦只好運行舊的PHP版本,以免用了新版本會引起不兼容的問題。例如PHP5.4已有部份的function已不支援或更改了名稱,要將那些用這function的程式改為新的function,這是其中一個升級的風險。

希望用這方式可以讓它繼續運行,不會浪費我們的心機。

李一諤高可用性系統(八):HA內的Apache與Nginx的安排

作為本校HA的底層及基本的應用,apache及Nginx負責將不同的網站呈現在使用者面前,而資料是儲存在一個共用的空間,它可以是ZFS或是MFS。

但apache或Nginx網站是怎樣設定的呢?就是用virtual host及以ports的型式來架設。以owncloud為例,我們在HaProxy設定了一個以網址名稱來辨識的段落,並在裡面定義了幾部伺服器:
———————————————————
backend owncloud_back
balance roundrobin
cookie SERVERID insert indirect nocache
option forwardfor
option httpclose
option httpchk GET /check HTTP/1.0
server pc111 10.79.118.111:8002 cookie pc111 check inter 50000 maxconn 5000
server pc112 10.79.118.112:8002 cookie pc112 check inter 50000 maxconn 5000
server pc113 10.79.118.113:8002 cookie pc113 check inter 50000 maxconn 5000
……
———————————————————

之後便在每部伺服器中設定virtual host的部份:
———————————————————
server {
listen 10.79.118.111:8002;
server_name owncloud.lynms.edu.hk;
root /home/lynms.edu.hk/owncloud;
index index.html index.php index.htm;
……
———————————————————

這樣伺服器就會懂得回應相關的要求。如果要再加入伺服器只需在上面HaProxy設定部份再加入即可,當然為了易於管理,後端伺服器最好是用相同的軟件運行,否則除錯時就會引致問題或不能找出原因去對症下藥。

李一諤高可用性系統(七):歷久長青的Apache

Apache作為最受歡迎的網頁伺服器,本校當然亦是其中一位用家,而且是全面使用。有一段長時間,它是我們唯一使用的網頁服務器。嚴格來說,我們對它的表現也算滿意。只是本著精益求精的態度,在發覺Nginx的特性與好處時,便想去試試。

但綜觀使用它的經驗,其實沒有發生過甚麼旳大問題。只是在早期版本會偶然發生吃掉資源,令到要在swap裡讀寫的情況。那時用的是Linux系統,一出現這情況,便只能重啟它,因為系統並不能重回正常的狀態。相信這是由於當時的低硬件配置及Linux版本的問題而產生的,及後在換至FreeBSD平台及升級至Apache2.2後,問題已很少出現了。不過有時仍會出現loading太大的情況,但瞬間就會回復正常。

但它有甚麼好處讓我們繼續使用?答案就是它和PHP的結合了。在FreeBSD安裝這個組合是很容易的:

cd /usr/ports/www/apache22
make install clean;

cd /usr/ports/lang/php53
make install clean;

cd /usr/ports/lang/php53-extensions
make install clean;

當然要等待一段時間才可安裝好。之後便可以使用PHP及Apache了,這比Nginx夾PHP的難度少得多。同時,便可進入一個互動網頁的世界。

另外,說它歷久長青是因為它不斷在更新,現在已進入到Apache 2.4版本,一般使用並不會有大問題的。