劉振宇
[摘要] 目前高校各類網(wǎng)站的訪問量越來越高,單臺(tái)服務(wù)器已經(jīng)沒有辦法承受流量壓力,這就需要增加服務(wù)器的數(shù)量,并采用負(fù)載均衡技術(shù)。本文了解了目前各類網(wǎng)站負(fù)載均衡的實(shí)現(xiàn)辦法,詳細(xì)介紹并采用了Nginx的負(fù)載均衡功能,對涉及此方面問題的高校起到了啟示作用。
[關(guān)鍵詞] 網(wǎng)站; 負(fù)載均衡; Nginx
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 16. 059
[中圖分類號(hào)]TP393[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673 - 0194(2012)16- 0096- 01
1引言
隨著Internet規(guī)模的不斷擴(kuò)大,各類網(wǎng)站服務(wù)器數(shù)量不斷增加, 訪問者希望獲得不間斷可用性及較快的系統(tǒng)反應(yīng)時(shí)間,而不愿屢次看到某個(gè)站點(diǎn)"Server Too Busy"及頻繁的系統(tǒng)故障。
網(wǎng)絡(luò)的各個(gè)核心部分隨著業(yè)務(wù)量的提高、訪問量和數(shù)據(jù)流量的快速增長,其處理能力和計(jì)算強(qiáng)度也相應(yīng)增大,使得單一設(shè)備根本無法承擔(dān)。在此情況下,如果扔掉現(xiàn)有設(shè)備去做大量的硬件升級(jí),將造成現(xiàn)有資源的浪費(fèi),而且如果再面臨下一次業(yè)務(wù)量的提升,又將導(dǎo)致再一次硬件升級(jí)的高額成本投入,即使性能再卓越的設(shè)備也不能滿足當(dāng)前業(yè)務(wù)量的需求。于是,負(fù)載均衡機(jī)制應(yīng)運(yùn)而生。
負(fù)載均衡有兩方面的含義:①大量的并發(fā)訪問或數(shù)據(jù)流量分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備上分別處理,減少用戶等待響應(yīng)的時(shí)間;②單個(gè)重負(fù)載的運(yùn)算分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備上做并行處理,每個(gè)節(jié)點(diǎn)設(shè)備處理結(jié)束后,將結(jié)果匯總,返回給用戶,系統(tǒng)處理能力得到大幅度提高。
許多高校的各類網(wǎng)站服務(wù)器目前也正面臨著同樣的問題,急需采用負(fù)載均衡技術(shù),滿足不斷增長的訪問需求。
目前,負(fù)載均衡的實(shí)現(xiàn)分為硬件和軟件兩大類。主要硬件品牌有F5、Radware、Array、A10、深信服等;軟件主要有Weblogic、Websphere等。其中硬件運(yùn)行比較穩(wěn)定,但無論是硬件還是軟件,其價(jià)格從十幾萬到幾十萬元不等,這對于高校網(wǎng)站的負(fù)載均衡功能要求來說,產(chǎn)品價(jià)格過于昂貴。
這時(shí)一款高性能、免費(fèi)的Web和反向代理服務(wù)器軟件Nginx出現(xiàn)在我們面前,它的負(fù)載均衡功能完全能夠滿足我們的要求。
2Nginx介紹
Nginx是俄羅斯人編寫的十分輕量級(jí)的HTTP服務(wù)器,是一個(gè)高性能的HTTP和反向代理服務(wù)器,自Nginx發(fā)布以來,已經(jīng)因?yàn)樗姆€(wěn)定性、豐富的功能集、示例配置文件和較低的系統(tǒng)資源消耗而聞名。
截至到2011年底,全球約有10%的網(wǎng)站在使用Nginx(在前1 000個(gè)流行的網(wǎng)站中則達(dá)到了25%),而且它的使用率還在不斷增加中。
Nginx proxy是Nginx的王牌功能,利用Proxy基本可以實(shí)現(xiàn)一個(gè)完整的7層負(fù)載均衡,它具有以下特色:①功能強(qiáng)大,性能卓越,運(yùn)行穩(wěn)定;②配置簡單靈活;③能夠自動(dòng)剔除工作不正常的后端服務(wù)器;④上傳文件使用異步模式;⑤支持多種分配策略,可以分配權(quán)重,分配方式靈活。
3Nginx實(shí)現(xiàn)負(fù)載均衡的實(shí)例
假設(shè)有2臺(tái)Windows Server 2003的服務(wù)器,一臺(tái)IP地址為192.168.2.10,另一臺(tái)IP地址為192.168.2.11。其中192.168.2.10對外提供網(wǎng)站訪問。
(1) 下載Nginx的Windows版本,在192.168.2.10上解壓縮到C盤,并把目錄名改為ginx。
(2) 在192.168.2.10的服務(wù)器上,修改IIS的使用端口為8080,因?yàn)椋危纾椋睿褂茫福岸丝凇?/p>
(3) 在192.168.2.11的服務(wù)器上,在IIS上新建一個(gè)站點(diǎn),使用端口為80。
(4) 設(shè)置好兩臺(tái)服務(wù)器的IIS后,在192.168.2.10的服務(wù)器上,配置Nginx軟件來實(shí)現(xiàn)網(wǎng)站負(fù)載均衡。打開文件“C:\nginx\conf\nginx.conf”,進(jìn)行如下操作:
① 在里面加入如下內(nèi)容:
upstreamtest.com {
server 192.168.2.10:8080;
server 192.168.2.11:80;
}
②找到“server{}”項(xiàng),把內(nèi)容更改如下:
server {
listen 80;
server_name192.168.2.10;(監(jiān)聽訪服務(wù)器80端口的請求)
location / {
proxy_pass http://test.com;
proxy_redirect default;
(5) 配置完成,進(jìn)入命令提示符窗口,輸入C:\nginx\nginx命令,啟動(dòng)Nginx。如果要停止Nginx,進(jìn)入運(yùn)行窗口,輸入nginx -s stop命令即可。
(6) 效果測試。可以在192.168.2.10和192.168.2.11的IIS站點(diǎn)主目錄下,放置兩個(gè)不同內(nèi)容的主頁,然后用瀏覽器訪問http://192.168.2.10,然后再刷新頁面,兩次打開的頁面不同,說明網(wǎng)站負(fù)載均衡配置成功。
如果網(wǎng)站訪問量非常大,可以專門用一臺(tái)服務(wù)器運(yùn)行Nginx,其他服務(wù)器運(yùn)行網(wǎng)站程序即可。
4結(jié)束語
我校在部署了Nginx,提供了網(wǎng)站的負(fù)載均衡功能后,極大地緩解了訪問數(shù)據(jù)量過大對服務(wù)器的造成的影響,提高了服務(wù)器的可訪問性,保障了日常的教學(xué)工作。
Nginx是一款具有高并發(fā)連接數(shù)、內(nèi)存消耗少、穩(wěn)定性高的開源軟件,可以免費(fèi)使用。節(jié)省了購買硬件負(fù)載均衡交換機(jī)所需要的昂貴費(fèi)用。由于Nginx的這些優(yōu)點(diǎn),并隨著它的不斷完善,我們有理由相信Nginx將繼續(xù)以高速的增長率來分享HTTP服務(wù)器市場,會(huì)有一個(gè)更美好的未來。
主要參考文獻(xiàn)
[1]張宴. 實(shí)戰(zhàn)Nginx:取代Apache的高性能Web服務(wù)器[M]. 北京:電子工業(yè)出版社,2010.