Asper 文字藝術師

Azure Linux VM 建置 WordPress 完全攻略

Published (updated: ) in 架站教學. 標籤: , , , , , .

Azure Linux VM 建置 WordPress 完全攻略

為什麼要用 Azure Linux VM 建置 WordPress

Azure Linux VM 為 Azure 中的 IaaS 服務,而會使用 Azure Linux VM 建置 WordPress 主要原因如下:

  • 省錢,當然也有其他更省錢的非雲端方案選擇
  • 有高度使用彈性與客製化的空間(充份享受 DIY 的樂趣)
  • 與自家公司雲端整合成單一平台管理

想像一下如果今天要開餐廳,使用 Azure App Service 的服務,會提供店面、廚房、基本裝潢、結帳系統,店主只要專心做菜跟出餐就好,而 Azure Linux VM 則是只有給一間店面,剩下的裝潢擺設、廚房規劃、結帳系統…等,都要自己搞定,才能開張營業,但相對也比較能依照需求,客製化做出自己風格的餐廳。

下圖為使用 Azure App Service 與 Azure Linux VM 的比較圖,黃框為 Azure 所提供的服務,使用 Azure Linux VM 架 WrodPress 的話,系統管理、服務管理都要自己來,而 Azure App Service 則是只要專心使用 WordPress 的服務即可。用術語來說,Azure App Service 為 PaaS 服務,而 Azure Linux VM 為 IaaS 服務。

Azure App Service 與 Azure Linux VM 比較圖
Azure App Service 與 Azure Linux VM 比較

與 Azure App Service 相比,使用 Azure Linux VM 的優點有二,一為節省成本,二為可擁有自行客製調整空間,相對應外面的服務則是 VPS ,同樣都是透過虛擬化達到資源隔離的效果。但 VPS 少了許多雲端服務可供利用。

如果用積木來做比喻,使用 Azure 的服務,他有100個零件做排列組合,Azure 這類的雲端服務,可以搭配的工具會很多,做出來成品會比較細緻,而一般 VPS 服務,大概只有10個零件作排列組合,成品相對會粗糙一點,使用情境整體來說無絕對好壞,畢竟兩個使用情境不太相同。

言歸正傳,Azure Linux VM 安裝 WordPress 需要做好以下六大事項:

  1. 選擇合適的系統映像(VM image),這邊用 CentOS 8 作為範例,原因後面提
  2. 設定並建立 Azure VM 環境,這邊只做基本設定、網路設定即可
  3. 開好 Azure Linux VM 後,先更新、設定一下系統環境
  4. 安裝資料庫軟體(MariaDB)、PHP、網頁伺服器軟體(Nginx)這三大主要服務
  5. 安裝並設定 WordPress
  6. 開始使用 WordPress 寫文章

看起來好像很複雜,不過魔鬼都在這細節裡面,要用最低成本,榨出最高效能,關鍵在第4.步驟中的調校,如 Cloudway 表示有針對 各CMS 平台調教相關參數,只要使用他們的服務,就能輕鬆擁有這些功能。
另外,本篇教學暫時不會教到效能調教與 https 憑證安裝,雖然他們很重要,讓大家先體會一下怎麼把一個 WordPress 從無到有,徒手架好的感覺抓到再說。

本次 WordPress on Azure Linux 使用的架構

如前所述,使用 Azure 這類雲端服務,可規劃出的架構有許多種類,這邊舉三個常見的例子,本次使用的架構為 A 架構,也是一般在外常見 VPS 使用的做法,下面將針對各類架構進行說明:

A: All-in-one 的做法,將所有服務集中於單一 VM 上
B:將資料庫獨立出來,降低單一主機負擔,使用 Azure 原生的資料庫服務(Azure Database for MariaDB),或自己開一台 Azure Linux VM 安裝 MariaDB 服務也是一種做法
C:使用 B 的做法外,另外加上一台 WordPress 的服務主機,總共三台 VM,不過要處理兩台 WordPress 間資料同步問題,此種架構較能平均分散掉主機負擔

看起來好像很難理解,還是用開店比喻,A 方案是在開餐廳的初期,餐廳不大,但麻雀雖小,五臟俱全,要出餐、要接待送餐等工作,一個人要扛所有客人,會很辛苦。而 B 方案則是把工作分成內場跟外場,內場專心出餐,外場專心點餐與結帳,而 C 方案則是再多找一個外場員工來幫忙接待客人與結帳,萬一有一個人生病感冒,還可以繼續營業

這三種方案,相對而言,預期流量不會太高情況下,A 方案適合用於架站初期,而 B 則為流量變有點大了,且資料庫出現效能瓶頸,因此將資料庫服務,與 WordPress 網站服務分離,C 則為有一定數量的使用者,需要多開一台網站服務 VM 來分攤流量,並可降低單一 VM 在維護期間、意外無法正常使用其況下,造成服務中斷的成本。

當然還有一些進階的作法,如將上傳的圖片,統一放到 Azure Blob Storage 服務中,藉此降低主機的負擔,且又能節省硬碟使用空間…等許多玩法。

頁次: 1 2