Linux服務(wù)器集群系統(tǒng)之可伸縮Web服務(wù)
Linux集群系統(tǒng)是當(dāng)代許多公司采用的解決方案,Linux集群通過多臺機(jī)器連接起來,處理復(fù)雜的問題??梢詫⑼瑯?gòu)或者異構(gòu)的計算機(jī)連接起來,協(xié)同完成特定的任務(wù)。這樣就構(gòu)成了集群。LVS是Linux virtual server的縮寫,他的意思是Linux虛擬機(jī)服務(wù)。本文主要介紹的是基于Linux下的集群系統(tǒng)。
基于LVS的Web集群的體系結(jié)構(gòu)如圖2所示:第一層是負(fù)載調(diào)度器,一般采用IP負(fù)載均衡技術(shù),可以使得整個系統(tǒng)有較高的吞吐率;第二層是Web服務(wù)器池,在每個結(jié)點上可以分別運(yùn)行HTTP服務(wù)或HTTPS服務(wù)、或者兩者都運(yùn)行;第三層是共享存儲,它可以是數(shù)據(jù)庫,可以是網(wǎng)絡(luò)文件系統(tǒng)或分布式文件系統(tǒng),或者是三者的混合。集群中各結(jié)點是通過高速網(wǎng)絡(luò)相連接的。
圖2:基于LVS的Web集群
對于動態(tài)頁面(如PHP、JSP和ASP等),需要訪問的動態(tài)數(shù)據(jù)一般存儲在數(shù)據(jù)庫服務(wù)器中。數(shù)據(jù)庫服務(wù)運(yùn)行在獨立的服務(wù)器上,為所有Web服務(wù)器共享。無論同一Web服務(wù)器上多個動態(tài)頁面訪問同一數(shù)據(jù),還是不同Web服務(wù)器上多個動態(tài)頁面訪問同一數(shù)據(jù),數(shù)據(jù)庫服務(wù)器有鎖機(jī)制使得這些訪問有序地進(jìn)行,從而保證數(shù)據(jù)的一致性。
對于靜態(tài)的頁面和文件(如HTML文檔和圖片等),可以存儲在網(wǎng)絡(luò)文件系統(tǒng)或者分布式文件系統(tǒng)中。至于選擇哪一種,看系統(tǒng)的規(guī)模和需求而定。通過共享的網(wǎng)絡(luò)文件系統(tǒng)或者分布式文件系統(tǒng),Webmaster可以看到統(tǒng)一的文檔存儲空間,維護(hù)和更新頁面比較方便,對共享存儲中頁面的修改對所有的服務(wù)器都有效。
在這種結(jié)構(gòu)下,當(dāng)所有服務(wù)器結(jié)點超載時,管理員可以很快地加入新的服務(wù)器結(jié)點來處理請求,而無需將Web文檔等復(fù)制到結(jié)點的本地硬盤上。
有些Web服務(wù)可能用到HTTP Cookie,它是將數(shù)據(jù)存儲在客戶的瀏覽器來追蹤和標(biāo)識客戶的機(jī)制。使用HTTP Cookie后,來同一客戶的不同連接存在相關(guān)性,這些連接必須被發(fā)送到同一Web服務(wù)器。一些Web服務(wù)使用安全的HTTPS協(xié)議,它是HTTP協(xié)議加SSL(Secure Socket Layer)協(xié)議。另有些Web服務(wù)可能使用安全的HTTPS協(xié)議,它是HTTP協(xié)議加SSL協(xié)議。當(dāng)客戶訪問HTTPS服務(wù)(HTTPS的缺省端口為443)時,會先建立一個SSL連接,來交換對稱公鑰加密的證書并協(xié)商一個SSL Key,來加密以后的會話。在SSL Key的生命周期內(nèi),后續(xù)的所有HTTPS連接都使用這個SSL Key,所以同一客戶的不同HTTPS連接也存在相關(guān)性。針對這些需要,IPVS調(diào)度器提供了持久服務(wù)的功能,它可以使得在設(shè)定的時間內(nèi),來自同一IP地址的不同連接會被發(fā)送到集群中同一個服務(wù)器結(jié)點,可以很好地解決客戶連接的相關(guān)性問題。
【編輯推薦】
- Linux集群原理與安裝配置匯總
- “懶惰”Linux集群管理員的11個秘訣
- 圖文詳解 文件柜內(nèi)DIY自己的Linux集群機(jī)
- 大型Linux集群的安裝節(jié)點和管理
- 大型Linux集群簡介和硬件配置
- 高性能Linux集群基礎(chǔ)知識