橫向擴(kuò)展Wordpress的最佳方式
大小:0.2 MB 人氣: 2017-10-11 需要積分:1
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
標(biāo)簽:wordpress(2763)
問(wèn)題:我在一家托管公司工作,我們總是為客戶推薦解決方案。最痛苦的事情就是內(nèi)容的上傳,這些內(nèi)容或者得放在集中的地方,或者需要一個(gè)管理節(jié)點(diǎn)將所有新文件推送到伺服器上。
我一般采用的解決方案就是下面這樣:
負(fù)載均衡器1x 裝有l(wèi)syncd,inotify和rsync的主服務(wù)器(Apache, mod_php),并通過(guò)這些應(yīng)用將增刪/修改的文件發(fā)送到從屬服務(wù)器上。1x 從屬服務(wù)器(Apache, mod_php),搭載有Apache proxypass,負(fù)責(zé)將POST請(qǐng)求發(fā)送給主服務(wù)器,以確保新上傳的文件是通過(guò)主服務(wù)器添加的,然后再分別同步到從屬服務(wù)器上。我們公司使用Percona和Redis服務(wù)器,分別負(fù)責(zé)提供數(shù)據(jù)庫(kù)與緩存服務(wù)。
我的問(wèn)題是:
Wordpress的最佳方案怎么設(shè)計(jì)?你們用什么工具進(jìn)行會(huì)話?Redis/Memcached怎樣在多臺(tái)服務(wù)器上執(zhí)行文件復(fù)制?性能方面有什么問(wèn)題嗎?你們用的哪種數(shù)據(jù)庫(kù),為什么?
回復(fù)1:Zm3tta:
我們托管了大約2000個(gè)WordPress實(shí)例,目前正在進(jìn)行架構(gòu)升級(jí),以獲得可擴(kuò)展性與安全性的提升。應(yīng)用服務(wù)器的CPU利用率是主要的瓶頸,我們希望能在需要時(shí),快速在資源池中部署新的應(yīng)用服務(wù)器。
我們使用Nginx Web服務(wù)器來(lái)處理靜態(tài)內(nèi)容請(qǐng)求、所有vhost路由、Redis緩存以及php請(qǐng)求的負(fù)載均衡。通過(guò)Nginx的iphash設(shè)置定向到多臺(tái)應(yīng)用服務(wù)器上,從而可以為Redis緩存設(shè)置最小規(guī)則,并以相對(duì)透明的方式來(lái)處理會(huì)話。
針對(duì)文件復(fù)制的問(wèn)題:利用NFS4將各網(wǎng)站的doc-root安裝到應(yīng)用服務(wù)器上,這樣無(wú)論哪個(gè)節(jié)點(diǎn)的內(nèi)容有修改,都能立即發(fā)現(xiàn)。我們使用PHP-FPM數(shù)據(jù)池監(jiān)聽(tīng)多臺(tái)應(yīng)用服務(wù)器,從而使得擴(kuò)展應(yīng)用服務(wù)器層非常簡(jiǎn)單與快速,可以按需求向多臺(tái)或幾臺(tái)服務(wù)器執(zhí)行資源請(qǐng)求的分發(fā)。并在最后設(shè)有獨(dú)立的數(shù)據(jù)庫(kù)服務(wù)器,針對(duì)未能緩存的內(nèi)容請(qǐng)求作出回應(yīng)。
雖然彼此的架構(gòu)差別很大,不過(guò)至少可以做些了解。
提問(wèn)者回復(fù):
問(wèn)題在于……NFS仍是一個(gè)單點(diǎn)故障,如果不用GlusterFS之類的東西,怎么解決這個(gè)問(wèn)題?
回復(fù)2:csmicfool
我們有個(gè)大型的WPMU網(wǎng)絡(luò)(3000多個(gè)網(wǎng)站),使用NFS掛載上傳目錄,無(wú)需擔(dān)心用rsync同步的問(wèn)題,也無(wú)需設(shè)定“管理”或主/從服務(wù)器,所有虛擬器地位相同,從而使得按需擴(kuò)展更合理。這種方式比我們?cè)镜念A(yù)期更為有效。
在NFS服務(wù)器上,我們使用rsync將上傳的內(nèi)容增量復(fù)制到另一個(gè)(用s3fs)裝有S3 bucket的文件夾中,因此存有離線留存和冗余副本。切記:不要在web服務(wù)器上使用s3fs來(lái)處理目錄。
想要節(jié)省開(kāi)支,可以在管理頁(yè)面強(qiáng)制使用SSL,并且只開(kāi)啟節(jié)點(diǎn)上的SSL,然后通過(guò)rsync或類似的方式來(lái)執(zhí)行從管理到其他網(wǎng)頁(yè)的分發(fā)。
提問(wèn)者回復(fù):
我們有很多客戶想要尋求更廉價(jià)的解決方案,因此我認(rèn)為強(qiáng)制使用SSL的方案非常棒!
回復(fù)3:springer70
這里分享一則Joomla網(wǎng)站托管實(shí)例,事實(shí)上在wordpress上,原理是相同的。
我們使用Elastic Beanstalk托管到亞馬遜上,根據(jù)需求和流量執(zhí)行向上/向下的擴(kuò)展都很簡(jiǎn)單。一開(kāi)始網(wǎng)站流量很低,公司進(jìn)行大規(guī)模宣傳之后,流量猛增。因此使用彈性架構(gòu)就非常有用。
我們有一個(gè)負(fù)載均衡器,將流量引導(dǎo)到可用的前端服務(wù)器池中。在這些服務(wù)器上設(shè)有應(yīng)用作為zip文件的容器,在需要新服務(wù)器時(shí),只要執(zhí)行部署,zip文件就會(huì)解壓并部署到新服務(wù)器上。這就代表著(你提到的)文件上傳很棘手。我們使用獨(dú)立的云存儲(chǔ)來(lái)管理媒體和上傳(亞馬遜s3),并使用插件將用戶的上傳內(nèi)容導(dǎo)入s3存儲(chǔ)中,而不是存在本地文件系統(tǒng)中。(有趣的是:媒體的這種通用存儲(chǔ)對(duì)于開(kāi)發(fā)/staging/qa/生產(chǎn)環(huán)境來(lái)說(shuō)尤其有用,因?yàn)樗鼈內(nèi)际褂猛粋€(gè)存儲(chǔ)文件系統(tǒng))。
我們還有個(gè)中央單一數(shù)據(jù)庫(kù),不保留實(shí)時(shí)冗余副本;一份故障轉(zhuǎn)移備份,最多5分鐘就能恢復(fù)生產(chǎn)環(huán)境。
這個(gè)解決方案不算便宜,我們有:
S3存儲(chǔ)的成本;EC2前端服務(wù)器(每次至少2臺(tái),保留冗余副本);2臺(tái)數(shù)據(jù)庫(kù)服務(wù)器;負(fù)載均衡器;開(kāi)發(fā)與staging服務(wù)器,staging復(fù)制了生產(chǎn)環(huán)境;
我們?cè)跀?shù)據(jù)庫(kù)中管理會(huì)話,因此如有用戶從一個(gè)前端服務(wù)器換到另一個(gè),會(huì)話就會(huì)被保留。還有備選方案,就是使用“粘滯會(huì)話(sticky sessions)”——強(qiáng)制用戶一直停留在同一臺(tái)前端服務(wù)器上。
我們的復(fù)制計(jì)劃非常簡(jiǎn)單,因?yàn)闆](méi)有真正復(fù)制任何東西。前端服務(wù)器將zip文件保存在應(yīng)用中,因此也不包含“真正的”數(shù)據(jù)。所有數(shù)據(jù)都在S3或數(shù)據(jù)庫(kù)中。
結(jié)果性能很不錯(cuò),我們的前端服務(wù)器速度很快,由于存在一些前端緩存,數(shù)據(jù)庫(kù)(mysql)很少使用(相對(duì)而言)。我們使用的所有服務(wù)器都“很小”或“超級(jí)小”,因此無(wú)需性能特別強(qiáng)大。抱歉寫(xiě)了一大堆東西。
回復(fù)4:applextrent
我們?cè)赪Pdocker.com是使用SaaS平臺(tái)和云服務(wù)器管理器作為通用的容器管理方案。使用補(bǔ)丁管理來(lái)解決更新的問(wèn)題。關(guān)于容器可以查看這里獲取更多詳情。
?
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
橫向擴(kuò)展Wordpress的最佳方式下載
相關(guān)電子資料下載
- 如何三步實(shí)現(xiàn)高性能 WordPress 網(wǎng)站的部署 219
- 使用Docker安裝WordPress教程 416
- 恒訊科技介紹:虛擬主機(jī)托管WordPress的常見(jiàn)問(wèn)答 155
- 如何破解wordpress 272
- Wasm container 如何運(yùn)行服務(wù)WordPress的php.wasm鏡像 385
- WordPress正在測(cè)試對(duì)SQLite的支持 196
- 使用podman-compose部署wordpress的示例 2000
- WordPress 一鍵式全站優(yōu)化插件:WPJAM-Basic 1291
- vps搭建wordpress網(wǎng)站的3個(gè)步驟介紹 2741
- 如何在樹(shù)莓派上托管WordPress網(wǎng)站 1598