如今是網(wǎng)站和應用程序數(shù)量爆炸的時代。如果您是企業(yè),您需要一個相關的 Web 平臺。應用程序使您能夠輕松地向目標客戶營銷和交付您的服務。
無論創(chuàng)建Web 應用程序的原因如何,您都需要確定如何構建它。在部署服務器時,您有許多選項。您選擇的服務器部署方案將決定您如何運行和管理環(huán)境中的所有內容。
如何 為業(yè)務制定 服務器 部署方案 ?
首先,您需要考慮您的 Web 應用程序有哪些要求,必須包含哪些功能。例如,應用程序需要易于擴展,或者,需要您的應用程序在PC端和移動設備上都可以順利工作。同時,您的預算可能也是您最關心的問題。
無論您的要求是什么,您都應該知道,您可以為應用程序制定自定義的方案策略。在本文中,恒創(chuàng)科技將探索 Web 應用程序的各種類型的服務器。我們將討論各種使用案例,以及何時最好使用某種部署方案。為幫助您決定是否適合您,我們還將提供每種服務器部署方案的一些優(yōu)點和缺點。
一、將所有環(huán)境放在 一臺服務器 中
您將整個環(huán)境加載到一臺服務器中。該環(huán)境將包括您的 Web 服務器、應用服務器以及數(shù)據(jù)庫服務器。例如,LAMP(Linux、Apache、MySQL和PHP ) 堆棧配置。
● 適用場景:如果您時間不足,這種類型的安排效果最好。這是最簡單、最快速的部署方案,它適用于簡單化的 Web 應用程序。
● 優(yōu)點:簡單易懂,易于理解和實施;只需很少的時間即可部署全部內容。
● 缺點:不允許水平可擴展性;在組件隔離方面提供很少;由于處于同一臺服務器中,應用程序和數(shù)據(jù)庫本質上是在爭奪相同的資源;可能遇到不佳的應用程序運行表現(xiàn)。
二、獨立 數(shù)據(jù)庫服務器
使用單臺服務器的主要問題是對有限資源的競爭。這種部署方案旨在解決此問題。在這里,數(shù)據(jù)庫管理系統(tǒng)(DBMS)與應用程序服務器保持獨立。數(shù)據(jù)庫服務器位于內網(wǎng)中,并擁有自己的資源。這可以提高性能并提高安全性。
● 適用場景:如果您擔心數(shù)據(jù)庫和應用程序在相同的資源上競爭,這是理想的解決方案。同樣,配置也非常簡單。
● 好處:應用程序和數(shù)據(jù)庫相互獨立,使用單獨專用的系統(tǒng)資源,包括 CPU、內存、I/O 等;在任何一個應用程序和數(shù)據(jù)庫層中都具有更大的可擴展性潛力;您可以根據(jù)需要添加和刪除資源;即使您從公共互聯(lián)網(wǎng)上刪除數(shù)據(jù)庫,您也可以保持安全性。
● 缺點:比單臺服務器的部署稍微復雜一點;兩臺服務器之間的低帶寬或高延遲網(wǎng)絡連接可能會產生性能問題。
三、 反向代理或負載平衡
負載平衡器通常用于服務器環(huán)境,以提高性能和可靠性。他們通過"平衡負載"來做到這一點:即在多臺服務器之間分配工作負載。
● 適用場景:負載平衡器對于您需要執(zhí)行水平縮放非常有用。水平縮放基本上意味著向環(huán)境中添加更多的服務器。您還可以使用應用層反向代理同時使用一個域名和端口為多個應用程序提供服務。Nginx就是性能非常好的反向代理服務器,用來做負載均衡。
● 好處:如果線路中的一臺服務器出現(xiàn)故障,其他服務器會通過平衡工作負載來補償其功能;允許您執(zhí)行水平縮放以增加或減少環(huán)境容量;它還可以限制提供防止 DDOS 攻擊的客戶端連接。
● 缺點:如果系統(tǒng)資源不足,負載平衡器可能會限制應用的性能;需要適當?shù)呐渲脕泶_保適當?shù)男阅?比單臺服務器或單獨的服務器部署復雜得多;您需要考慮諸如 SSL 終止和需要粘性會話的應用程序等因素;使用負載平衡器的主要關注點是它是一個故障點。這意味著,如果負載平衡器無法工作,您的整個服務將下降。
四、 HTTP 加速器或緩存反向代理
您可以通過這種部署方案,來提高您為應用程序用戶提供內容的速度。當用戶第一次請求時,HTTP 加速器會保存其中的內容。此后,當任何類似的請求進來時,它會快速為內容提供服務,而無需與應用程序服務器交互。我們可以使用 Nginx 實現(xiàn) HTTP 緩存加速。
● 適用場景:這種部署方案最適合用戶非常頻繁地請求的文件和內容。它也非常適用于內容密集的動態(tài) Web 應用程序。
● 好處:緩存和壓縮可以顯著提高應用程序和請求處理的速度;減少 CPU 的負載,也會提高站點性能;您也可以將此用作反向代理負載平衡器。
● 缺點:你必須調整好它,以提取其最佳性能;如果緩存準確率較低,您可能會遇到不良性能。
五、 數(shù)據(jù)庫 主從 復制 架構
主從數(shù)據(jù)庫復制類型的服務器架構,對于執(zhí)行讀數(shù)大于寫入的系統(tǒng)通常非常有用。例如,內容管理系統(tǒng)可以真正利用這樣的架構。您需要一個主節(jié)點和一個或多個復制節(jié)點進行復制。它將讀數(shù)分布在所有節(jié)點上。更新僅轉到主節(jié)點。
● 適用場景:正如我們提到的,基于復制的數(shù)據(jù)庫部署方案有助于提高系統(tǒng)的讀取性能。您可以將其用于CMS等應用程序。
● 好處:它提高了數(shù)據(jù)庫的讀取性能,因為它將其傳播到副本中;如果您僅使用主節(jié)點進行更新,您還可以提高寫入性能。
● 缺點:任何嘗試訪問數(shù)據(jù)庫的應用程序必須能夠決定向哪個節(jié)點發(fā)送更新和閱讀請求;如果主副本發(fā)生故障,則更新將停止。您必須解決問題才能繼續(xù)更新;沒有故障轉移機制來適應潛在的主節(jié)點故障。
六、 使用 多種組合部署 服務器
你也可以結合各種技術和架構,以獲得預期的結果。這意味著您可以在單個環(huán)境中加載應用程序服務器負載均衡與緩存服務器,并復制數(shù)據(jù)庫。這樣做可以讓您利用兩臺服務器的功能。但是,它不會使部署更加復雜或麻煩。例如下圖所示環(huán)境:
在這樣的環(huán)境中,負載平衡器將向緩存服務器發(fā)送靜態(tài)請求。靜態(tài)內容包括CSS、圖像和Javascript等。它將將任何其他類型的內容請求直接發(fā)送到應用程序服務器。
假設用戶正在從環(huán)境中請求一些靜態(tài)內容,服務器的反應如下:
● 負載平衡器將首先確定內容是緩存命中還是緩存誤用。緩存命中的內容存在于緩存中,而緩存未命中的內容不存在。它通過檢查緩存后端來做到這一點。
● 如果緩存命中,負載平衡器會將內容發(fā)送給用戶;
● 如果緩存錯過,緩存服務器將請求轉發(fā)到應用程序的后端。
● 應用后端將從數(shù)據(jù)庫中查找和發(fā)送內容。
● 緩存后端接收負載平衡器中的內容。它還在將其返回到負載平衡器之前緩存此內容。
● 后者然后轉發(fā)給用戶的響應。
另一方面,如果用戶請求動態(tài)內容,將會發(fā)生如下情況:
● 請求將從用戶到負載平衡器。
● 此請求請訪問應用后端。
● 應用后端定位所請求的內容并將其返回到負載平衡器。
● 用戶接收內容。
這種綜合環(huán)境的主要好處之一是它更可靠。不僅如此,它還具有卓越的性能能力。但是,仍有兩個故障點:負載平衡器和主數(shù)據(jù)庫服務器。
結論
您可以在您的環(huán)境中自行使用相應的服務器部署方案。同時,您也可以將其中幾個組合在一起,創(chuàng)建個性化的解決方案。這完全取決于您希望從架構中獲得的功能。了解每種服務器部署方案的工作原理,將有助于您為自己的應用程序做出決策。最好的辦法就是從小型架構開始做起,在獲得經(jīng)驗時不斷增加設置的復雜性。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!