Posts Tagged ‘Nginx’

李一諤高可用性網站(一):本校的舊網頁

早前說了一連串HA系統的組件及配置,現在可以講講它的實際應用。我們向來都是以網頁為主,於是在HA之上都希望放置幾十個主要旳網站,期望能減省日常的管理工作。

儲存如早前所說,是放置在MFS或ZFS內,只需存放一份資料在它們上面,就可以不需做備份,讓系統自動運行。其中一台網頁伺服器掛掉了,由它吧!管理員有空才看看它有甚麼問題。這在從前是很難想像的事。

這個網頁是在我到校前已存在,之後就由我來更新。它是用Dreamweaver寫成的HTML版本,內裡加入了一些互動的元素。作為本校主要資料的交匯點,它曾是我們每天必到的網站,亦是所有校內瀏覽器設定的首頁。

這可算本校資訊科技的集體回憶,所以縱然它已退役,亦不會再更新了,我們當然亦會保留它。不過www就不能給它繼續用,只好叫它old。但我們亦給它放了在HA,網頁檔案就放在MFS,好讓它不會掛掉。同時它已亦改在Nginx下運行,開啟速度亦很快啊!自從改放在HA內,我們沒有理會過它,它又乖乖的工作。

李一諤高可用性系統(十三):Raspberry Pi(FreeBSD/arm)伺服器

這HA主題已寫了多篇,應該都要完結了。但早前還有一些新元素加至它當中,所以要插入一份新文章。幸好WordPress會跟發佈日期排序,所以都沒有搞亂次序。

還有甚麼可以加入?就是這個叫Raspberry Pi的「玩具」。為甚麼叫它「玩具」?除了所有伺服器在我眼中都是玩具外,它的價錢及本質都是一個「玩具」。因為它的設計者是希望由兒童入手,讓他們玩熟這東西,再學其他編程的技巧。所以它的原生操作平台上已有很多編程的工具,當然行的就是Linux了,該Linux是由Debian改過來的。說回它的價錢,更能反應它的玩具本質,它只值港幣二百七十多元。買回來後,只需插上電源(不包micro USB),加一張記憶卡及其他周邊就可以操作,總計約三百元就有得玩了。

不過,我們不是這樣看待它。因為我們從前亦有教學生及家長應用USB手指,而手指上安裝Ubuntu Linux。效果亦算不錯,亦有部份家長從此變成發燒友,不斷去試驗Linux。所以,有此前ubuntu手指的經驗,我們覺得工作站未必是我們的方向,所以就走回自己的老路--伺服器。

作為伺服器又如何呢?它的硬件是便宜的,不過規格就差了些。但它有一個很好的優點,就是無風扇的設計,這樣對於伺服器而言,起碼有省電的好處,很綠色啊。同時,要長時間開啟,亦可以減少過熱當機的情況。但它的硬件畢竟較弱,單獨用就未必合適,所以在HA內就好像有空間給它發揮了。我們就是給它裝個FreeBSD 10(arm)版本,跟著它就可以取用ZFS內的檔案,再行Nginx。現在它已運行了十多天,亦已為一些網站(ptmesvgeditor)提供服務。

下一步我們希望它在將來會提升規格及記憶體等,可讓我們快些存取儲存池內的檔案,更可運行PHP的程式。始終100M的網卡及512M的記憶體未免也太「入門級」了。當規格變好了,就可引入多些這樣的卡片來建構我們的超級電腦,相信一個普通電腦機箱的空間可以放下很多塊吧。外國有大學就用了六十四塊卡片來建立了一台玩具一樣的堡壘,周圍還用樂高積木來分隔的。

最後,這篇文是一定要寫旳。因為這塊玩具是陳博士及鍾博士兩位借給我們試玩的,當然要寫份「報告」來交代交代呀!

李一諤高可用性系統(八):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設定部份再加入即可,當然為了易於管理,後端伺服器最好是用相同的軟件運行,否則除錯時就會引致問題或不能找出原因去對症下藥。

李一諤高可用性系統(五):小巧又強悍的Nginx(網頁伺服器)

今日要介紹一個小又美的網頁伺服器。作為本校HA一個重要部份,它的表現也頗令人滿意。雖然不能說十全十美,但確實又功能強大,效能亦很好。

它問世只有幾年,但巿佔率正節節上升。雖然我們一貫用開Apache,但本著精益求精的精神,亦想試一試它。

安裝它很容易,只需在ports中找到它,很快就可以安裝好了:

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

之後就要先設定,才可使用。設定也不太難,功能亦頗強勁,大抵上Apache有的功能它亦有,不過就會用少些系統功能。我們在一些PIII機來運行亦沒有大問題。當然運行的網站只會是一些簡單的網頁吧!

 

 

其實它是十分穏定的,更新次數亦頻䌓。但是要找它的缺點,可能就是一些系統的支援不太完善。有些系統會很容易找到Apache設定的參考,但用在Nginx上的就會欠奉,例如Elgg的設定就很難找到。另外,它的Rewrite Rules的寫法亦與Apache不同,我們因此遲遲未能將全部系統移至它上面去跑。

不過情況是正好轉中,因為系統開發者都不能無視它的存在,畢竟有越來越多的網站正轉用它。