李義勇徐 南車 路
1.山東農業大學網絡信息技術中心 山東泰安 271000 2.泰山醫學院附屬醫院 山東泰安 271000
校園門戶網站是學校直接對外交流和宣傳的信息媒體,是學校綜合形象和精神面貌的窗口,主要采取三級結構,即學校門戶網站、學院與部門網站以及專題網站。主要內容包括學校概況、學校新聞、公告、學術等欄目,體現學校的發展成就與變化。核心內容是招生信息、就業指導、科研、人才培育等內容,為考生及考生家長、在校大學生、教職工、校友以及訪客提供信息資源服務。校園門戶網站一般情況下運行正常,性能良好,但是在一些特殊情況下,比如選課、招生咨詢期間,隨著訪問量的大量增加,網站性能問題就開始暴露出來。特別是對大數據量表的訪問,導致在運行時對服務器端資源的要求較大。
校園門戶網站的性能受服務器硬件、預裝操作系統、Web服務器軟件的配置及數據中心網絡拓撲結構的影響。學校門戶網站的部署經歷了從單機部署到雙機部署,通過簡單DNS輪詢技術實現網站的穩定性和數據安全性。在沒有大資金投入的情況下,利用現有硬件設備,結合學校門戶網站部署的實際,我們將主要考慮Web服務器軟件選擇和多鏈路訪問優化問題。
通常我們使用最多的Web服務器軟件是Apache和Microsoft的IIS。目前Nginx是一款比較流行的Web服務器軟件,它在處理靜態圖片及反向代理方面具有很高的性能,同時具有處理海量連接的高性能性[1]。
下面通過測試查看Apache和Nginx Web服務器的功能和性能是否滿足門戶網站系統的需求。測試的方法是通過模擬生產環境對門戶網站進行負載測試,通過高并發訪問達到測試目的。
測試環境依托數據中心虛擬出3臺服務器,3臺服務器的硬件、軟件配置、環境設置完全相同。測試工具采用Webbench,下文為測試方法及結果。
Webbench部署在服務器rhel3上,然后對服務器rhel1,rhel2進行壓力測試,設置不同的并發數。測試的靜態網頁內容相同,而且均放在根目錄下。圖1是兩種測試的環境測試對比。

圖1 兩種平臺壓力測試結果對比
通過上圖看出,在響應高并發訪問方面Nginx比Apache優秀得多。基于以上測試結果及Apache和Nginx的實現特點,選擇使用Nginx作為Web服務器。如果對性能要求更高,可以采取靜態網頁與動態網頁分離部署,使用Nginx作為靜態網頁的服務器,雖然Nginx目前支持使用FastCGI方式來解析PHP文件,但會出現502的錯誤,且PHP可以作為一個Apache的模塊使用,所以使用Apache作為動態內容的Web服務器[2]。
Web服務器集群技術為Web服務器系統容量的不斷擴展提供了良好的途徑,它將一組Web服務器通過一定的形式組織在一起,構成單一的服務器映像[3]。具體到校園門戶網站的部署中,早期部署了3臺服務器,其中一臺高端的服務器作為集群服務器,另兩臺低端服務器作為校園門戶網站Web服務器,服務器Web1和Web2的Web應用軟件配置除IP地址外基本相同,可以快速實現復制;而且每臺服務器可獨立提供Web服務,通過前端的負載均衡設備對客戶端的請求進行應答,以達到Web服務高可靠性和高并發性。后期學校構建了云計算平臺,將3臺服務器相關應用部署到對應的虛擬機上。Nginx可以支持一個服務器陣列,結合虛擬機技術,可以很方便地實現多臺服務器的增加與減少,大大增強了整個系統的穩定性與擴展性。服務器集群方案結構如圖 2所示。

圖2 服務器集群方案結構圖
學校的域名服務器采用的是Bind軟件構建的,配置文件中將主機的名字與主機的IP地址進行映射。根域名是在CERNET申請的.edu.cn域名。在前文所述的例子中,www.sdau.edu.cn這個站點的映射IP地址為202.194.133.5,同時增加一條A記錄,將域名映射為另一個IP地址:202.194.131.20。這樣就把這個站點解析到不同的IP上,見表1。

表1 DNS服務器解析設置
www.sdau.edu.cn將通過下面兩個IP地址發布到一個集群中的兩臺服務器上。
Server1:202.194.133.5
Server2:202.194.131.20
那么我們的DNS服務器中包含下面的映射表。
www.sdau.edu.cn ---- 202.194.133.5
www.sdau.edu.cn ---- 202.194.131.20
這樣就可以利用DNS輪詢技術簡單實現不同地址Web服務器輪流響應訪問請求。若有更高應用需求,可以借助LVS集群技術基于IP的負載均衡和基于內容的負載均衡[4]。
運營商用戶反映訪問學校官方網站等站點經常出現卡頓、訪問頁面慢、訪問不暢等問題,經分析發現有些高投訴網站為其他運營商或教育網地址。加上以前中國教育與科研計算機網(CERNET)是按照流量收費的,如果校園網用戶全部通過教育科研網(CERNET)對外訪問,則會因為流量巨大造成網絡費用過高,目前是采用包月制方式,但價格仍然不菲,而且教育科研網與聯通、移動等運營商網絡互聯的帶寬限制及網絡資源的分布不均,特別是處于二三線城市的校園網用戶與其他運營商互相訪問的速度比較慢。雖然現在多數學校教育網出口費均使用包月制,但包月的帶寬無法滿足正常的教學科研需要。綜合考慮寬帶租金、訪問速度和信息資源使用情況,學校在保留CERNET出口線路的基礎上,通過泰安聯通開通了第二條出口線路。該方法解決了校園網用戶訪問外網速度慢的問題。但由于運營商之間無法直接互聯互通,所有教育科研網外的用戶都只能通過CERNET線路訪問校園門戶網站,造成互聯鏈路擁擠,其他運營商訪問門戶網站速度依然沒有提升的現象。
為了解決上述問題,在DNS輪詢技術基礎上,將其中一臺服務器安裝雙網卡,一塊網卡配置CERNET IP地址;另一塊網卡配置聯通IP地址,需確保聯通IP地址開放80端口,并完成相關備案,否則將無法正常提供服務。借助Bind DNS View功能完成不同運營商用戶正確域名解析,CERNET用戶解析到配置教育網地址的Web服務器,其他用戶解析到配置聯通IP地址的Web服務器。兩臺服務器之間通過校內地址實現互通,Web內容采用Rsync和Inotify技術實現實時同步。最終實現CERNET的用戶通過CERNET線路訪問我校對外提供服務的Web服務器,其他用戶通過聯通線路訪問我校對外提供服務的Web服務器,從而提高網絡訪問速度,充分利用雙帶寬資源[5]。需要注意的問題是校園網用戶客戶端網絡配置要設置正確的DNS,否則適得其反。
通過使用以上技術的優化,在低投入的情況下,校園門戶網站的穩定性和擴展性有了大幅的提升,同時利用Rsync技術實現了Web文件的備份,提升了數據的安全性。若有資金投入,采購應用交付設備可以很好地解決上述問題。如何構建校園門戶網站的性能評價方案,使網站的性能更優是下一步的研究重點。