1傻工、?單機(jī)部署
這種部署方式應(yīng)該是絕大部分草根時(shí)期,快速開發(fā)網(wǎng)站并上線首選。應(yīng)用程序中捆、數(shù)據(jù)庫鸯匹、文件等所有資源都集中在一臺(tái) Server上,投入少經(jīng)濟(jì)實(shí)惠泄伪,部署簡單殴蓬。
2、數(shù)據(jù)庫獨(dú)立部署
此時(shí)有兩臺(tái)服務(wù)器:Web Server 和 DB Server蟋滴,后者是專門用于運(yùn)行數(shù)據(jù)庫程序的染厅。Web Server 包括了SiteServer CMS系統(tǒng),以及由CMS系統(tǒng)發(fā)布生成的所有站點(diǎn)(包括Html津函、Images肖粮、Files等資源文件)。
此時(shí) DB Server 可以放在內(nèi)網(wǎng)不對(duì)外網(wǎng)所見尔苦,不能被外網(wǎng)訪問涩馆,從而使得DB Server更加安全。
3允坚、CMS獨(dú)立部署
隨著網(wǎng)站業(yè)務(wù)的發(fā)展魂那,一臺(tái)Web服務(wù)器逐漸不能滿足需求,越來越多的用戶訪問導(dǎo)致性能越來越差稠项,這時(shí)候涯雅,就需要將CMS系統(tǒng)和Web站點(diǎn)分離,此時(shí)整個(gè)網(wǎng)站使用三臺(tái)服務(wù)器:CMS Server 皿渗、Web Server 和 DB Server 斩芭。
此時(shí) CMS Server 和 DB Server 可以放在內(nèi)網(wǎng)不對(duì)外網(wǎng)所見轻腺,不能被外網(wǎng)訪問乐疆,從而使得整個(gè)系統(tǒng)的安全性得到大幅提高,尤其是CMS Server不能被外網(wǎng)訪問到贬养。
具體實(shí)現(xiàn)就是CMS管理員(比如編輯人員)通過內(nèi)網(wǎng)訪問SiteSever CMS后臺(tái)挤土,然后把CMS生成的靜態(tài)頁面以及上傳上來的Images和Files等資源文件一起同步到外網(wǎng)的Web服務(wù)器,網(wǎng)站如果需要實(shí)現(xiàn)交互(表單提交误算、文章點(diǎn)擊量等)功能的話仰美,需要把Bin文件夾部署到Web服務(wù)器上,然后直接連接DB服務(wù)器儿礼。
4咖杂、文件獨(dú)立部署
隨著網(wǎng)站業(yè)務(wù)進(jìn)一步發(fā)展,越來越多的文件蚊夫、圖片诉字、視頻等資源文檔存儲(chǔ)在Web服務(wù)器上導(dǎo)致Web服務(wù)器存儲(chǔ)空間嚴(yán)重不足,這時(shí)候,就需要將網(wǎng)站頁面和網(wǎng)站?文件分離壤圃,此時(shí)整個(gè)網(wǎng)站使用四臺(tái)服務(wù)器:?CMS服務(wù)器陵霉,Web服務(wù)器、File服務(wù)器和DB服務(wù)器伍绳。其中File服務(wù)器專門用于存儲(chǔ)網(wǎng)站的圖片踊挠、附件等資源文檔。
具體實(shí)現(xiàn)就是CMS管理員(比如編輯人員)通過內(nèi)網(wǎng)訪問SiteSever CMS后臺(tái)冲杀,然后把CMS生成的靜態(tài)頁面同步到外網(wǎng)的Web服務(wù)器效床,同時(shí)把CMS后臺(tái)上傳上來的Images和Files等資源文件同步到外網(wǎng)File服務(wù)器。網(wǎng)站如果需要實(shí)現(xiàn)交互(表單提交权谁、文章點(diǎn)擊量等)功能的話扁凛,需要把Bin文件夾部署到Web服務(wù)器上,然后直接連接DB服務(wù)器闯传。
5谨朝、API獨(dú)立部署
為了進(jìn)一步提高前臺(tái)用戶訪問網(wǎng)站的速度,Web服務(wù)器的性能有必須進(jìn)一步優(yōu)化甥绿,那就需要進(jìn)行動(dòng)態(tài)程序和靜態(tài)頁面分離字币。即把網(wǎng)站前臺(tái)實(shí)現(xiàn)交互的一些功能程序和接口單獨(dú)部署到獨(dú)立的API服務(wù)器上。
動(dòng)靜分離是提高網(wǎng)站響應(yīng)速度的一種常用方式共缕。將動(dòng)態(tài)請(qǐng)求與靜態(tài)請(qǐng)求分離開洗出,盡量減少對(duì)應(yīng)用服務(wù)器的壓力。同時(shí)图谷,可以再進(jìn)一步對(duì)靜態(tài)請(qǐng)求翩活,進(jìn)行緩存和CDN加速,以加快響應(yīng)速度便贵。需要開發(fā)人員配合(把靜態(tài)資源放獨(dú)立站點(diǎn)下)菠镇。
6、應(yīng)用服務(wù)器集群
當(dāng)有一臺(tái)服務(wù)器的處理能力承璃、存儲(chǔ)空間不足時(shí)利耍,不要企圖去更換更強(qiáng)大的服務(wù)器,對(duì)于大型網(wǎng)站而言盔粹,不管多么強(qiáng)大的服務(wù)器隘梨,都滿足不了網(wǎng)站持續(xù)增長的業(yè)務(wù)需求。此時(shí)舷嗡,應(yīng)該考慮增加一臺(tái)服務(wù)器分擔(dān)原有服務(wù)器的訪問以及存儲(chǔ)壓力轴猎。
其中第五步圖中的Web服務(wù)器、File服務(wù)器以及API服務(wù)器都可以使用服務(wù)器集群的方式部署进萄,以便分擔(dān)原有服務(wù)器的訪問以及存儲(chǔ)壓力捻脖。
7烦秩、數(shù)據(jù)庫讀寫分離或數(shù)據(jù)庫分庫
單臺(tái)數(shù)據(jù)庫也感覺快撐不住了,一般都會(huì)嘗試做“讀寫分離”郎仆,因?yàn)榇蟛糠只ヂ?lián)網(wǎng)“讀多寫少”只祠。目前大部分的主流數(shù)據(jù)庫都提供主從熱備功能,通過配置兩臺(tái)數(shù)據(jù)庫主從關(guān)系扰肌,可以將一臺(tái)數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)更新同步到另外一臺(tái)服務(wù)器上抛寝,網(wǎng)站利用這一功能,實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離曙旭,從而改善數(shù)據(jù)庫負(fù)載壓力盗舰。
除了讀寫分離之外,還可以通過分而治之的手段將整個(gè)網(wǎng)站業(yè)務(wù)分成不同的產(chǎn)品線桂躏,如內(nèi)容钻趋、操作日志、管理員剂习、用戶等拆分成不同的庫蛮位,目前一個(gè)大型互聯(lián)網(wǎng)公司都用分庫甚至分表方案。