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