☟為了讓這裡能夠永續經營,請容許一點點的廣告☟

以下內容更新於 — 2020-11-21 的 03:55

作為網頁伺服器,NGINX無疑是最輕巧、高效能的選擇,尤其是處理靜態的HTML內容;然而,若是要架設WordPress網站,老牌的Apache則是具有更多元、包容性更強的優勢。
Cloudways則是將二者的優點合併,再加上Varnish、redis以及Memcached的高速快取,建構出高性能的網站!而這些伺服器與快取的配置,不需要自己琢磨,Cloudways已經幫我們預先部署完成,我們只需要在Cloudways平台中一鍵啟用,再到WordPress後台安裝必要的外掛就可以了。

不同於共享託管主機,VPS與雲端主機擁有系統的最高管理員權限,也就是〔root〕,但是我們得自己在主機上配置架設網站所必須的網頁伺服器、資料庫…等等的軟體,像是Apache、NGINX、phpMariaDB,以及為了獲得更高效能所需要的伺服器端快取機制,像是VARNISH 、redis 、MEMCACHED。
安裝這些其實並不難,網路上有很多教學,難的是調校配置以及安全維護,這將會影響網站運作的效能與風險,還是交給專業處理,既省事又安全。


cloudways-post-2

雖然透過Cloudways的平台,一樣是將網站託管於VPS與雲端主機,但是我們沒有權限去變更這些軟體的配置,不過這樣也好,因為Cloudways已經幫我們配置成最佳狀態,該有的都有了,我們只需要放心享受高效能的VPS與雲端主機即可。

MANAGE SERVICES|管理伺服器

MANAGE-SERVICES-final.管理伺服器

這裡可以查看以及管理Cloudways部署的網頁伺服器以及軟體程式,包含Apache、NGINX、 MySQL、php-fpm、快取機制MEMCACHED以及具有反向代理的VARNISH。

操作時間 1 minute

STEP 1|進入伺服器管理頁面

MANAGE-SERVICES-step-1.前往Cloudways管理伺服器

點擊Cloudways首頁〔Login〕
輸入註冊Cloudways的Email、密碼,點擊綠色按鈕〔LOGIN NOW〕登入
在〔服務器列表〕中,點擊需要設定的服務器。
圖片中的主機列表顯示只有一台服務器。
在主機設定頁面中的左邊選單中,點擊〔MANAGE SERVICES〕,進入伺服器管理頁面。

☟為了讓這裡能夠永續經營,請容許一點點的廣告☟

STEP 2|重啟/停用/啟用/清除快取

❶【Servers】
這裡可以看到Cloudways幫我們配置的伺服器以及快取程式,依序為Apache、MEMCACHED、MySQL、New Relic、NGINX、PHP FPM、Redis以及Varnish,這些軟體的作用後面會詳細介紹。

❷【Status】是伺服器與程式的運作狀態
綠色running〕代表運作中,〔紅色stopped〕代表停用中。
其中,Apache、NGINX、MEMCACHED、MySQL、PHP FPM這5個是Cloudways已經幫我們配置完成的網頁伺服器與資料庫管理系統,正常情況下一定要顯示為【綠色running】,我們不能變更或停用。
而New Relic、Redis以及Varnish,則是可以依照自己的需求啟用或停用。
圖片中我沒有啟用New Relic,所以呈現〔紅色stopped〕;而Redis以及Varnish是我手動啟用的程式,狀態呈現為〔綠色running〕。

❸【Control】可以管理這些程式
Apache、NGINX、MEMCACHED、MySQL、PHP FPM這5個無法停用,只能重啟,如果需要重啟,可點擊〔紫色RESTART〕。
New Relic、Redis以及Varnish,這3個預設是停用,如果需要啟用,可點擊〔綠色ENABLE〕;如有需要,隨時都可以停用,如需停用,可點擊〔紅色DISABLE〕或〔紅色STOP〕。
Varnish還有一個獨有的功能☞〔橘色PURGE〕,這個是清除快取,平常應該要保留這些快取,反正時間到了它也會自動清除;通常會在網站有任何修改卻沒有在前台看到修改後的樣式,而且在BREEZE外掛中點擊〔PURGE All Cache〕也沒用的時候,才會需要到Cloudways平台中清除VARNISH快取。


如果真有需要,可以對MEMCACHED與Redis按下〔紫色RESTART〕,也可以對Varnish按下〔橘色PURGE〕。
MEMCACHED、Redis以及Varnish這三個都是伺服器端的快取程式,其實都已經配置了快取內容到期的時效,它們會自己定時清除快取;如果網站有修改內容,它們也會自己更新或抓取新內容,所以,除非一直無法在前台看到變更後的新內容,或者是網站正在進行測試,否則,每清除一次快取或者是重啟,它們又得重新抓捕內容,反而浪費CPU和RAM。

Apache、NGINX、MySQL、PHP FPM,這四個是伺服器的必備程式,通常是變更伺服器的設定才會需要重啟它們。
除非很清楚自己在做什麼,否則,別輕易對Apache、NGINX、MySQL、PHP FPM按下〔紫色RESTART〕。
因為一旦按下了重啟服務,可能會導致前台的網站連線中斷,等待數分鐘的重啟時間還是小事,所有的資料要重新抓取還會消耗更多的CPU與RAM!


Cloudways配置的程式

  • 網頁伺服器|Apache、NGINX

網頁伺服器的工作就是透過HTTP協定,接收與傳送HTML檔案。流程是接收前端網站的請求,傳送給主機資料庫叫出檔案,再將這些檔案傳輸給網站前端的訪客瀏覽,如此一來一往的循環工作。
目前比較比較常見的網頁伺服器是Apache、NGINX、Internet Information Server(IIS)、以及LITESPEED

  • 快取加速器|MEMCACHED、Redis、Varnish

與WordPress的快取外掛不同,MEMCACHED、redis以及VARNISH是伺服器端的快取程式,目的都是為了減輕CPU與RAM的工作量,以及讓網站加載更快速。但是它們三個的工作內容與流程不太一樣,後面會逐一介紹。

  • 流程管理系統|PHP FPM

負責管理與傳遞網頁伺服器與資料庫之間檔案。

  • 資料庫系統|MySQL

Cloudways從2019/9/12以後所部署的伺服器都是使用MariaDB作為資料庫管理系統。

Apache是什麼?

MANAGE SERVICES-apache

Apache是最老牌、也是目前市佔率最高的網頁伺服器。
它允許修改.htaccess文件,是共享主機用戶的救贖。
一樣是開源的的網頁伺服器,Apache提供比Nginx更多的外加模組 (module),這些模組的架構允許被重新撰寫,可以擴充更多動態網頁技術需要的功能。
但是Apache最經常被詬病的缺點則是體積大、佔空間,讀取與查找的過程繁瑣,相當耗費CPU與記憶體,一旦架設的網站越多、或者是同時間的訪問量越大,網站比較容易崩潰,不太適合高流量的大型網站運作!

☟為了讓這裡能夠永續經營,請容許一點點的廣告☟

NGINX是什麼?

MANAGE SERVICES-nginx

NGINX是為了更輕量、更高效率而生的網頁伺服器,能夠同時處理10,000個以上的連接,速度是Apache的2.5倍,非常適合搭配VPS主機以及高流量的大型網站。
除此之外,它還可以作為反向代理、伺服器附載平衡以及HTTP快取,能夠更快速地將內容交付給網站前端瀏覽。
但是NGINX缺乏一些動態資源需要的模組,處理動態內容的效能不如Apache。

Apache與NGINX各有其優劣,當然,整體來說,NGINX會是高流量網站的優選;但是,為了滿足更豐富的動態資源,將二者合併使用,會是另一個理想的選擇。

PHP FPM是什麼?

MANAGE SERVICES-php fpm

因為這些程式語言的官方介紹太抽象,所以我就用我所能理解的程度,翻譯成我們大家都能看明白的語言吧!
phpfpm就是FastCGI Process Manager,它的工作就是翻譯+傳遞,把NGINX與Apache從網站前端所接收的請求翻譯給php,再把php所編譯的指令翻譯給NGINX與Apache,這樣NGINX與Apache就能把資料傳遞到網站前端供訪客瀏覽,大概就是這樣子吧(笑)。
身為一個翻譯官兼傳令兵,php-fpm比以往的mod_php與php-cgi(FastCGI)還要更有效率,省時又省事的那種高效率!
因為php fpm的工作方式就像是Macbook的休眠模式,不用每次都要重新開機,也不用總是開機浪費電;每當有工作來的時候,解鎖螢幕就能立即上工,沒事的時候鎖定螢幕就能省電,同時解決了mod_php與php-cgi(FastCGI)的缺點。

Cloudways就是結合NGINX、Apache與php fpm的強大組合。
Nginx則是負責前端的反向代理,處理高流量請求、靜態資源、負載均衡…等的高效率工作;Apache負責與php溝通+處理動態請求;而PHP-FPM就是在它們之間,用最迅速且輕巧的姿態完成翻譯+傳遞的工作,如此便能同時滿足完整的功能配置以及高效率傳輸的三贏效能!

Varnish是什麼?

MANAGE SERVICES-varnish

VARNISH是一種HTTP快取,也是網頁加速器,它在伺服器與網站的中間,攔截並儲存網站前端的請求,如此便能減少後端資料庫反覆查找相同內容的頻率,同時也加快了網站瀏覽以及API的響應速度;除此之外,它還可以作為反向代理,保護後端伺服器的安全,和NGINX一起搭配完成達到高效率+高流量的工作。
.
VARNISH的工作方式是這樣的,每當網站前端發出請求,資料庫便會提供數據與資料,然後VARNISH會把這些數據保存起來,這樣下次網站前端發出相同的請求時,就不用再麻煩資料庫了,VARNISH會把儲存的數據交付給網站使用。所以,如果將快取保存時間設定為〔4 hours〕,無論這4小時內有沒有其他人也來瀏覽,反正時間到了,它就會自動清除快取,這樣其實頗浪費這些被保存的數據;除此之外,新的快取會在在下一個請求資料出現之後,才能保存下一份新的快取。
.
在Cloudways的平台中,啟用VARNISH是最快速的方案,只要在【MANAGE SERVICES】點擊【ENABLE】,並且在WordPress安裝並啟用【BREEZE】外掛,什麼都不用設定,就可以享受Varnish的快取服務了。
唯一要注意的就是WooCommerce,因為購物車不需要被快取;但是在Cloudways平台中,這些都不是困擾,只需要在Application/Application Settings/VARNISH SETTINGS中,將不需要被快取的檔案排除就可以了。

我認為VARNISH是一個非常棒的伺服器端快取服務,在我的使用經驗中,啟用VARNISH之後,網站的前台與後台的速度可以加快1~3秒。

Memcached是什麼?

MANAGE SERVICES-memcached

MEMCACHED是一種高效能記憶體資料存放區。
通常會用來做為快取或工作階段暫存,通過快取將查詢結果保留在數據庫中,也能快取動態頁面,如此便能減輕資料庫負擔,提高網頁伺服器的效能。
MEMCACHED在Cloudways平台中已經預先配置完成,這點真的很方便,但是我們還是得自己在WordPress後台安裝一個可配置MEMCACHED的外掛,才能夠讓WordPress網站連結到伺服器的Memcached。
如果你本來就有使用W3TC,就可以將快取模式指定給MEMCACHED;反之,如果沒有使用W3TC,而是使用Cloudways自家的BREEZE作為頁面快取外掛,也可以考慮使用下一個會介紹的☞redis,作為伺服器端的快取,因為它和BREEZE更好搭配,如此便不需要再安裝W3TC了。

redis是什麼?

MANAGE SERVICES-redis

redis和MEMCACHED一樣,都是將快取資料儲存在記憶體,當前端網站發出請求時,就能快速交付內容,減輕CPU負荷,同時也減少RAM的消耗。
但是,redis做得比MEMCACHED還要更多更多,它能處理大量的動態讀寫,還可以將記憶體中的資料保持在磁碟中,重啟的時候可以再次載入進行使用,減少更多的工作量。
如果要啟用redis,可以在Cloudways平台上一鍵安裝,接著在網站根目錄〔public_html〕中的wp-config.php加入二行代碼,再到WordPress後台安裝Redis Object Cache外掛就可以了。


很多人都說,啟用MEMCACHED或redis之後,無論是前台或後台的速度都有明顯改善;但是在我的使用經驗中,前台的瀏覽速度的確有機會加速1~2秒,但是在WordPress後台〔WP-Admin〕就不一定了,要看哪一種操作,因為大多時候反而需要更久的時間!
比如說,變更設定、發布文章、更新頁面…等等這類型的操作,原本只需要1~3秒,但是啟用了MEMCACHED或redis之後,反而需要大約10秒以上!
因為每個網站結構、主題、檔案尺寸、頁面、外掛數量都不同,建議可以自己親身感受速度的差異,以及CPU與RAM的負載是否有改善,再決定是否要繼續使用MEMCACHED或redis。

MySQL是什麼?

MANAGE SERVICES-mysql

MySQL就是資料管理系統,這個系統負責管理網站的內容,可以透過phpMyAdmin的MySQL資料庫系統管理程式,就能使用Web介面管理MySQL資料庫。
Cloudways從2019/9/12以後所部署的伺服器都是使用MariaDB作為資料庫管理系統;MariaDB是以往MySQL的直接替代品,可完全兼容,如果擔心MySQL不再維護或更新,在Cloudways可以直接升級為MariaDB。

通常VPS與雲端主機需要自己配置MySQL,但是在Cloudways的平台中,購買主機之後,就會一併安裝了。
而且還可以在Cloudways的帳戶中輕鬆透過Web介面訪問phpMyAdmin的MySQL資料庫系統管理程式,不需要登入或另外再下載phpMyAdmin程式,對於不懂程式語言的人來說非常方便。

New Relic是什麼?

MANAGE SERVICES-new relic

New Relic是監控網站使用情況的服務,最重要的功能是〔APM/Application Performance Management〕,也就是應用程序性能管理。
可以追蹤30分鐘內的網站性能,包含伺服器處理網站的數據查詢量,如果有發生高流量的查詢與請求,甚至是停機、網站的錯誤報告,讓網站的開發人員可以調整或偵錯;它也會提供網站流量以及用戶使用的指標,像是用戶註冊、登入、下訂單的數量;它還可以偵測WordPress網站中,主題、外掛以及外部服務的性能與工作量,監控哪一個外掛造成網站緩慢,如此我們便能了解如何去調整使用,以獲得更好的網站效能;除此之外,網站的錯誤報告分析,也是開發人員需要監控的資料…等等。
【NEW RELIC】的監控服務真的很齊全,雖然說透過Cloudways的後台可直接將網站設定給進行監控,但是Cloudways帳戶只能使用〔Lite〕免費版,只能使用基本的功能,像是概覽網站的流量監控,已經無法使用WordPress主題、外掛的掛鉤與性能的功能,除非要付費升級為〔Essentials〕才能使用。

總結來說

其實我覺得Cloudways部署的伺服器架構也真的還不錯,雖然說現在似乎開始流行起LITESPEED這個高性能的伺服器,據說是同時擁有Apache與NGINX的優點,但我還沒機會嘗試,有興趣的人也可以往這個方向試試。
除此之外,在Cloudways中可自由使用的快取程式VARNISH、MEMCACHED以及redis,VARNISH是一個很值得啟用的快取,有開沒開真的能感受到速度的差異,至於MEMCACHED以及redis,大家也可以試用看看,感受速度與效能是否有差。
Cloudways的MANAGE SERVICES就介紹到這裡了!如果有任何問題,歡迎在下方的留言板討論指教囉~


參考資料|Reference

  1. Web server-WIKIPEDIA
  2. Host WordPress on NGINX with Apache Web Server-CLOUDWAYS|Blog

或許你需要繼續閱讀其他Cloudways相關文章


好嘛好嘛…臨走前幫我拍拍手嘛
如果你願意免費幫助我,請在下方圓形按鈕幫我拍拍手,最多可以按5下,那就幫我按5下吧!算我求你啦啦啦~~~謝謝你、我愛你❤
臉書或Google帳號都可以快速登入喲…

IMG_2349-miriammibao-100px

▍關於作者|MiriamMibao温唯

2019.02.11,我開始了這裡…
不懂css、不懂php,當然-也不知道誰是Nginx、誰又是Apache…
硬要WordPress架站,一切自己來,所有的細節,從0開始,自己架站會遇到的問題,遇到了才知道!這一路走來,跌跌撞撞,摸索過國內外能夠解決問題的資料…
是不是該好好紀錄這一段跌跌撞撞的探索日記?或許,也能帶給你們一些幫助...

咖啡贊助計畫

buy me a coffee-icon

我願意《將我所知道的一切,仔細地、真實地分享給你》
你願意《請我喝咖啡》嗎?
你的一杯咖啡,是我最溫暖的支持❤
用實際行動支持我創作更多好作品吧