自己做的網(wǎng)站怎么掛廣告上海百度推廣開戶
WordPress 是專為每個(gè)人設(shè)計(jì)的開源軟件,強(qiáng)調(diào)創(chuàng)建網(wǎng)站、博客或應(yīng)用程序的可訪問性、性能、安全性和易用性。WordPress 是一個(gè)基于 PHP 的內(nèi)容管理系統(tǒng)(CMS),使用 MySQL 作為數(shù)據(jù)存儲(chǔ),目前很多網(wǎng)站、電商獨(dú)立站、個(gè)人博客都采用了WordPress。不過,當(dāng)用戶訪問量變多的時(shí)候,單一服務(wù)器很容易出現(xiàn)可用性問題。所以為了補(bǔ)足這一點(diǎn),就需要建立集群。
本教程面向不熟悉 Kubernetes 的入門級(jí)用戶。在本教程中,你將使用 Helm 在 Kubernetes 集群上安裝 WordPress,創(chuàng)建高可用性網(wǎng)站。除了利用 Kubernetes 固有的可擴(kuò)展性和高可用性之外,這種設(shè)置還能通過 Helm 提供簡(jiǎn)化的升級(jí)和回滾工作流,從而確保 WordPress 的安全。
我們還將配置 NitroPack,這是一個(gè)用于代碼精簡(jiǎn)、緩存、CDN 和懶加載的插件。
我們將使用外部 MySQL 服務(wù)器來抽象數(shù)據(jù)庫組件,因?yàn)樗梢允菃为?dú)集群或托管服務(wù)的一部分,可以提高可用性。
完成本教程所述步驟后,你就可以在 Kubernetes 管理的容器化集群環(huán)境中安裝功能齊全的 WordPress,并建立一個(gè)更加高可用且安全的網(wǎng)站了。
WordPress 設(shè)置圖
目錄
- 概述
- WordPress 設(shè)置圖
- 先決條件
- 建立受 DigitalOcean 管理的 Kubernetes 集群(DOKS)
- 安裝和配置 OpenEBS 動(dòng)態(tài) NFS Provisioner
- 配置 WordPress MySQL 托管數(shù)據(jù)庫
- 配置 Redis 數(shù)據(jù)庫
- 配置 Redis 托管數(shù)據(jù)庫
- 配置 Redis Helm 圖
- 安裝 WordPress
- 部署 Helm 圖
- 確保流量的安全使用 Let's Encrypt 證書
- 安裝 Nginx 入口控制器
- 為 Nginx 配置 DNS 入口控制器
- 安裝證書管理器
- 為 WordPress 配置生產(chǎn)就緒的 TLS 證書
- 啟用 WordPress 監(jiān)控指標(biāo)
- 配置 WordPress 插件
- 提高 WordPress 性能
- 配置 NitroPack 插件
- 升級(jí) WordPress
- 結(jié)論
前提條件
要完成本教程,你需要:
- Helm,用于管理 WordPress、Nginx Ingress Controller 和 Cert-Manager 的發(fā)布和升級(jí)。
- Doctl CLI,用于管理 DigitalOcean 資源。
- Kubectl CLI,用于與 Kubernetes API 交互。
- 基本的 Kubernetes 知識(shí)。
- 配置一個(gè)域名(如 GoDaddy、Cloudflare 等)在你的賬戶中。
在此之前,你也可以閱讀往期文章了解如何在 DigitalOcean 的 Droplet 云主機(jī)上一鍵安裝 WordPress。
建立 DigitalOcean Kubernetes 托管集群(DOKS)
在開始教程步驟之前,你需要有一個(gè) DigitalOcean 托管的 Kubernetes 集群(DOKS)。如果你已經(jīng)配置了一個(gè),可以跳到下一節(jié) - 配置 WordPress MySQL 托管數(shù)據(jù)庫。
你可以使用以下命令創(chuàng)建新的 DOKS 集群:
doctl k8s cluster create <YOUR_CLUSTER_NAME> \--auto-upgrade=false \--maintenance-window "saturday=21:00" \--node-pool "name=basicnp;size=s-4vcpu-8gb-amd;count=3;tag=cluster2;label=type=basic;auto-scale=true;min-nodes=2;max-nodes=4" \--region nyc1
注意:我們建議使用至少有 2 個(gè)工作節(jié)點(diǎn)的 DOKS 集群,以減少節(jié)點(diǎn)故障時(shí)對(duì)應(yīng)用程序的影響。本教程中的示例使用了 3 個(gè)工作節(jié)點(diǎn),每個(gè)節(jié)點(diǎn) 4 CPU/8GB(48 美元/月),自動(dòng)擴(kuò)展器最大配置為 2 至 4 個(gè)節(jié)點(diǎn)。選擇不同的節(jié)點(diǎn)類型,你可以從 doctl compute 中查看更多選項(xiàng)。
請(qǐng)?jiān)L問 How to Set Up a DigitalOcean Managed Kubernetes Cluster (DOKS) 獲取更多詳情。
安裝和配置 OpenEBS 動(dòng)態(tài) NFS Provisioner
本節(jié)介紹如何使用 Helm 安裝 NFS 配置器。如果你想使用 DigitalOcean Kubernetes 一鍵安裝,請(qǐng)?zhí)^本節(jié),使用 DigitalOcean Kubernetes 1-Click Apps?安裝 NFS 配置器。
每次使用持久化卷(PersistentVolume)作為 Kubernetes 有狀態(tài)應(yīng)用程序的一部分時(shí),都會(huì)配置一個(gè)新的 DigitalOcean 塊存儲(chǔ)卷。StorageClass 資源會(huì)告訴 Kubernetes 可用的底層存儲(chǔ)類型。DigitalOcean 默認(rèn)使用 "塊存儲(chǔ)"(do-block-storage)。
下面的命令列出了 Kubernetes 集群的可用存儲(chǔ)類:
kubectl get sc
輸出結(jié)果類似于:
Output
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
do-block-storage (default) dobs.csi.digitalocean.com Delete Immediate true 24h
DigitalOcean 塊存儲(chǔ)卷(Block Storage Volumes)是由單個(gè)節(jié)點(diǎn)以讀寫方式(RWO)掛載的。其他節(jié)點(diǎn)不能掛載同一個(gè)卷。持久卷(PersistentVolume)的數(shù)據(jù)內(nèi)容不能被多個(gè) Pod 同時(shí)訪問。
水平 Pod 自動(dòng)擴(kuò)展(HPA)用于擴(kuò)展動(dòng)態(tài) StatefulSet 中的 WordPress Pod,因此 WordPress 需要一個(gè)被許多節(jié)點(diǎn)(RWX)掛載為讀寫器的卷。
NFS(網(wǎng)絡(luò)文件系統(tǒng))是在塊存儲(chǔ)上提供 RWX 卷的常用解決方案。該服務(wù)器在 RWX 模式下提供持久卷申領(lǐng)(PVC),以便多個(gè)網(wǎng)絡(luò)應(yīng)用程序能以共享的方式訪問數(shù)據(jù)。
OpenEBS 動(dòng)態(tài) NFS Provisioner 允許用戶創(chuàng)建一個(gè) NFS PV,在用戶選擇的后端存儲(chǔ)之上為每個(gè) PV 設(shè)置一個(gè)新的內(nèi)核 NFS 實(shí)例。
接下來,你將使用以下命令在 Kubernetes 集群上安裝 OpenEBS 動(dòng)態(tài) NFS Provisioner:
首先,克隆 container-blueprints 倉庫。然后,將目錄更改為你本地副本中的 DOKS-wordpress 子文件夾:
git clone https://github.com/digitalocean/container-blueprints.git
cd container-blueprints/DOKS-wordpress
接下來,添加 Helm 倉庫:
helm repo add openebs-nfs https://openebs.github.io/dynamic-nfs-provisioner
helm repo update
然后,打開并檢查倉庫中提供的 assets/manifests/openEBS-nfs-provisioner-values.yaml
文件:
nfsStorageClass:backendStorageClass: "do-block-storage"
注意:上面顯示的覆蓋值將 backendStorageClass
的默認(rèn)值更改為 do-block-storage
。請(qǐng)?jiān)L問 openebs nfs provisioner helm values 了解完整的 values.yaml
文件和更多詳細(xì)信息。
最后,使用 Helm 安裝圖表:
helm install openebs-nfs openebs-nfs/nfs-provisioner --version 0.9.0 \--namespace openebs \--create-namespace \-f "assets/manifests/openEBS-nfs-provisioner-values.yaml"
注意:使用的是特定版本的 Helm 圖表。在本例中,選擇了 0.9.0 版本,該版本對(duì)應(yīng)應(yīng)用程序的 0.9.0 版本。一般來說,鎖定特定版本是一種好的做法。這有助于獲得可預(yù)測(cè)的結(jié)果,并允許通過 Git 進(jìn)行版本控制。
你可以通過以下方式驗(yàn)證 openEBS 的部署狀態(tài):
helm ls -n openebs
輸出結(jié)果類似于(注意 STATUS 列的值為 "deployed"):
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
openebs-nfs openebs 1 2022-05-09 10:58:14.388721 +0300 EEST deployed nfs-provisioner-0.9.0 0.9.0
NFS 配置器需要一個(gè)塊存儲(chǔ)設(shè)備來創(chuàng)建 NFS 服務(wù)器所需的磁盤容量。接下來,你將配置 DigitalOcean 提供的默認(rèn) Kubernetes Storage Class (do-block-storage
) 作為 NFS 配置器的后端存儲(chǔ)。在這種情況下,任何使用新創(chuàng)建的 Storage Class 的應(yīng)用程序,都可以在 DigitalOcean 卷上通過 OpenEBS NFS 配置器使用共享存儲(chǔ)(NFS)。
接下來,打開并檢查倉庫中提供的 sc-rwx-values.yaml
文件:
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: rwx-storageannotations: openebs.io/cas-type: nsfrwxcas.openebs.io/config: |- name: NSFServerTypevalue: "kernel"- name: BackendStorageClassvalue: "do-block-storage"
provisioner: openebs.io/nfsrwx
reclaimPolicy: Delete
上述配置的解釋:
provisioner
- 定義了用于配置 PV 的存儲(chǔ)類(例如 openebs.io/nfsrwx)reclaimPolicy
- 動(dòng)態(tài)配置的卷會(huì)在用戶刪除相應(yīng)的 PersistentVolumeClaim 時(shí)自動(dòng)刪除
有關(guān) openEBS 的更多信息,請(qǐng)?jiān)L問 OpenEBS 文檔。
通過 kubectl 應(yīng)用:
kubectl apply -f assets/manifests/sc-rwx-values.yaml
通過執(zhí)行以下命令驗(yàn)證是否創(chuàng)建了 StorageClass:
kubectl get sc
輸出結(jié)果類似于:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
do-block-storage (default) dobs.csi.digitalocean.com Delete Immediate true 107m
openebs-kernel-nfs openebs.io/nfsrwx Delete Immediate false 84m
rwx-storage openebs.io/nfsrwx Delete Immediate false 84m
現(xiàn)在,你有了一個(gè)名為 rwx-storage
的新 StorageClass,可以在 DigitalOcean Block Storage 上動(dòng)態(tài)配置共享卷。
配置 WordPress MySQL 托管數(shù)據(jù)庫
在本節(jié)中,你將創(chuàng)建一個(gè)專用的 MySQL 數(shù)據(jù)庫,例如 DigitalOcean 的托管數(shù)據(jù)庫用于 WordPress。這是必要的,因?yàn)槟愕?WordPress 安裝將位于 Kubernetes 集群內(nèi)的單獨(dú)服務(wù)器上。(可觀看視頻教程了解如何快速配置數(shù)據(jù)庫)
默認(rèn)情況下,WordPress Helm 圖表在集群內(nèi)的單獨(dú) pod 上安裝 MariaDB 并將其配置為默認(rèn)數(shù)據(jù)庫。在決定使用托管數(shù)據(jù)庫還是默認(rèn)的 MariaDB 之前,你應(yīng)該考慮以下幾個(gè)方面:
- 使用托管數(shù)據(jù)庫服務(wù)時(shí),你只需決定數(shù)據(jù)庫服務(wù)器的初始大小即可。此外,自動(dòng)化方面也具有吸引力。執(zhí)行更新、運(yùn)行遷移和創(chuàng)建備份都是自動(dòng)完成的。有關(guān)托管數(shù)據(jù)庫的更多信息,請(qǐng)參閱這篇文章。使用托管數(shù)據(jù)庫會(huì)產(chǎn)生額外費(fèi)用。
- 使用默認(rèn)的 MariaDB Helm 圖表安裝時(shí),需要注意 DB pods(數(shù)據(jù)庫應(yīng)用容器)是臨時(shí)的,因此它們可能會(huì)經(jīng)常重啟或失敗。特定的管理任務(wù)如備份或擴(kuò)展需要更多的手動(dòng)工作和設(shè)置來實(shí)現(xiàn)這些目標(biāo)。使用 MariaDB 安裝不會(huì)產(chǎn)生任何額外費(fèi)用。
如果你不想使用外部數(shù)據(jù)庫,請(qǐng)?zhí)较乱徽?- 配置 Redis 數(shù)據(jù)庫。
首先,創(chuàng)建 MySQL 托管數(shù)據(jù)庫:
doctl databases create wordpress-mysql --engine mysql --region nyc1 --num-nodes 2 --size db-s-2vcpu-4gb
本教程中的示例使用一個(gè)主節(jié)點(diǎn)和一個(gè)從節(jié)點(diǎn),2 個(gè) CPU/4 GB(100 美元/月)。有關(guān)可用大小的列表,請(qǐng)?jiān)L問:DigitalOcean API 參考。
輸出結(jié)果類似于以下內(nèi)容(STATE 列應(yīng)顯示 online):
Output
ID Name Engine Version Number of Nodes Region Status Size
2f0d0969-a8e1-4f94-8b73-2d43c68f8e72 wordpress-mysql-test mysql 8 1 nyc1 online db-s-1vcpu-1gb
要完成 MySQL 的設(shè)置,需要數(shù)據(jù)庫 ID。你可以運(yùn)行以下命令來打印你的 MySQL 數(shù)據(jù)庫 ID:
doctl databases list
接下來,創(chuàng)建 WordPress 數(shù)據(jù)庫用戶:
doctl databases user create 2f0d0969-a8e1-4f94-8b73-2d43c68f8e72 wordpress_user
輸出結(jié)果類似于以下內(nèi)容(密碼將自動(dòng)生成):
Name Role Password
wordpress_user normal *******
默認(rèn)情況下,新用戶可以獲得整個(gè)數(shù)據(jù)庫的全部權(quán)限。一般來說,最好的安全做法是將新用戶的權(quán)限限制在 WordPress 數(shù)據(jù)庫內(nèi)。你可以按照 DigitalOcean 提供的如何修改 MySQL 數(shù)據(jù)庫中的用戶權(quán)限指南來完成這項(xiàng)任務(wù)。
接下來,創(chuàng)建主要的 WordPress 數(shù)據(jù)庫:
doctl databases db create 2f0d0969-a8e1-4f94-8b73-2d43c68f8e72 wordpress
輸出結(jié)果類似于以下內(nèi)容(密碼將自動(dòng)生成):
Name
wordpress
最后,你需要在 MySQL 數(shù)據(jù)庫和 Kubernetes 集群 (DOKS) 之間設(shè)置可信源:
首先,提取 Kubernetes 集群 ID:
doctl kubernetes cluster list
輸出結(jié)果類似于以下內(nèi)容:
Output
ID Name Region Version Auto Upgrade Status Node Pools
c278b4a3-19f0-4de6-b1b2-6d90d94faa3b k8s-cluster nyc1 1.21.10-do.0 false running basic
最后,限制傳入連接:
doctl databases firewalls append 2f0d0969-a8e1-4f94-8b73-2d43c68f8e72 --rule k8s:c278b4a3-19f0-4de6-b1b2-6d90d94faa3b
注意:
2f0d0969-a8e1-4f94-8b73-2d43c68f8e72
:表示數(shù)據(jù)庫 IDc278b4a3-19f0-4de6-b1b2-6d90d94faa3b
:表示 Kubernetes ID
請(qǐng)?jiān)L問如何保護(hù) MySQL 托管數(shù)據(jù)庫集群了解更多詳細(xì)信息。
配置 Redis 數(shù)據(jù)庫
遠(yuǎn)程字典服務(wù)器(Redis)是一種內(nèi)存、持久、鍵值數(shù)據(jù)庫,也稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。Redis 的緩存機(jī)制與 MySQL 或 MariaDB 結(jié)合使用時(shí),可以加快 WordPress 數(shù)據(jù)庫查詢的速度。Redis 允許你在內(nèi)存中緩存和存儲(chǔ)數(shù)據(jù),以實(shí)現(xiàn)高性能的數(shù)據(jù)檢索和存儲(chǔ)。使用 Redis,可以將 MySQL 數(shù)據(jù)庫查詢處理的數(shù)據(jù)存儲(chǔ)在 Redis 緩存實(shí)例中,以便快速檢索。
安裝和配置 Redis 實(shí)例有兩種方式。使用 DigitalOcean 的托管數(shù)據(jù)庫服務(wù)或通過 Helm 圖表安裝。以下將探討這兩種選項(xiàng)。
配置 Redis DO 托管數(shù)據(jù)庫
在本節(jié)中,你將使用 DigitalOcean 創(chuàng)建一個(gè) Redis 數(shù)據(jù)庫。如果不想使用托管數(shù)據(jù)庫,請(qǐng)?zhí)料乱还?jié) - 配置 Redis Helm 圖。
在決定使用托管數(shù)據(jù)庫還是 Helm 安裝的數(shù)據(jù)庫之前,你應(yīng)該考慮以下幾個(gè)方面:
- 使用托管數(shù)據(jù)庫服務(wù)時(shí),你只需決定數(shù)據(jù)庫服務(wù)器的初始大小即可。此外,自動(dòng)化方面也具有吸引力。執(zhí)行更新、運(yùn)行遷移和創(chuàng)建備份都是自動(dòng)完成的。使用托管數(shù)據(jù)庫會(huì)產(chǎn)生額外費(fèi)用。
- 使用 Redis Helm 圖表安裝時(shí),需要注意 DB pods(數(shù)據(jù)庫應(yīng)用容器)是臨時(shí)的,因此它們可能會(huì)經(jīng)常重啟或失敗。特定的管理任務(wù)如備份或擴(kuò)展需要更多的手動(dòng)工作和設(shè)置來實(shí)現(xiàn)這些目標(biāo)。使用 Redis 安裝不會(huì)產(chǎn)生任何額外費(fèi)用。
首先,創(chuàng)建 Redis 托管數(shù)據(jù)庫:
doctl databases create wordpress-redis --engine redis --region nyc1 --num-nodes 1 --size db-s-1vcpu-1gb
本教程中的示例使用一個(gè)節(jié)點(diǎn),1 個(gè) CPU/1 GB(10 美元/月)。有關(guān)可用大小的列表,請(qǐng)?jiān)L問API 文檔。
輸出結(jié)果類似于以下內(nèi)容(STATE 列應(yīng)顯示 online):
Output
ID Name Engine Version Number of Nodes Region Status Size
91180998-7fe2-450c-b353-492d8abcddad wordpress-redis redis 6 1 nyc1 creating db-s-1vcpu-1gb
接下來,你需要在 Redis 數(shù)據(jù)庫和 Kubernetes 集群 (DOKS) 之間設(shè)置可信源:
- 首先,提取 Kubernetes 集群 ID:
doctl kubernetes cluster list
輸出結(jié)果類似于以下內(nèi)容:
Output
ID Name Region Version Auto Upgrade Status Node Pools
c278b4a3-19f0-4de6-b1b2-6d90d94faa3b k8s-cluster nyc1 1.21.10-do.0 false running basic
- 最后,限制傳入連接:
doctl databases firewalls append 2f0d0969-a8e1-4f94-8b73-2d43c68f8e72 --rule k8s:c278b4a3-19f0-4de6-b1b2-6d90d94faa3b
請(qǐng)?jiān)L問如何保護(hù) Redis 托管數(shù)據(jù)庫集群了解更多詳細(xì)信息。
配置 Redis Helm 圖表
在本節(jié)中,你將使用 Bitnami Redis Helm 圖表在 Kubernetes 集群中創(chuàng)建一個(gè) Redis 數(shù)據(jù)庫。
首先,添加 Helm 倉庫,并列出可用的圖表:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update bitnami
接下來,打開并檢查倉庫中提供的 assets/manifests/redis-values.yaml
文件:
master:persistence:enabled: truestorageClass: rwx-storageaccessModes: ["ReadWriteMany"]size: 5Gi
auth:enabled: truepassword: <YOUR_REDIS_PASSWORD_HERE>architecture: standalone
上述配置的解釋:
master.persistance
塊 - 啟用 Redis 主節(jié)點(diǎn)上的持久性,使用 PVC 并將 PV 存儲(chǔ)類設(shè)置為之前創(chuàng)建的存儲(chǔ)類auth
塊 - 啟用并設(shè)置密碼認(rèn)證,密碼由用戶設(shè)置architecture
- Redis 架構(gòu)。獨(dú)立的 Redis StatefulSet。Redis 主服務(wù)指向主節(jié)點(diǎn),可以在此執(zhí)行讀寫操作。
注意:大多數(shù)覆蓋項(xiàng)可以自定義。請(qǐng)?jiān)L問 redis helm values 了解更多詳細(xì)信息。
最后,使用 Helm 安裝圖表:
helm upgrade redis bitnami/redis \--atomic \--create-namespace \--install \--namespace redis \--version 17.0.5 \--values assets/manifests/redis-values.yaml
使用的是特定版本的 Redis Helm 圖表。在本例中,選擇了 17.0.5 版本,該版本對(duì)應(yīng) Redis 的 7.0.4 版本。一般來說,鎖定特定版本是一種好的做法。這有助于獲得可預(yù)測(cè)的結(jié)果,并允許通過 Git 進(jìn)行版本控制。
檢查 Helm 發(fā)布狀態(tài):
helm ls -n redis
輸出結(jié)果類似于(注意 STATUS 列的值為 "deployed"):
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
redis redis 1 2022-06-02 08:45:38.617726 +0300 EEST deployed redis-17.0.5 7.0.4
驗(yàn)證 Redis 是否正常運(yùn)行:
kubectl get all -n redis
輸出結(jié)果類似于(所有 Redis pods 應(yīng)為 UP 和 RUNNING 狀態(tài)):
NAME READY STATUS RESTARTS AGE
pod/redis-master-0 1/1 Running 0 2m24sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/redis-headless ClusterIP None <none> 6379/TCP 2m25s
service/redis-master ClusterIP 10.245.14.50 <none> 6379/TCP 2m25sNAME READY AGE
statefulset.apps/redis-master 1/1 2m26s
安裝 WordPress
部署 Helm 圖表
在本節(jié)中,你將使用 Bitnami WordPress Helm 圖表在 Kubernetes 集群中安裝 WordPress。
最重要的 Helm 圖表值是:
externalDatabase
- 配置 WordPress 使用外部數(shù)據(jù)庫(例如 DigitalOcean 托管的 MySQL 數(shù)據(jù)庫)。mariadb.enabled
- 配置 WordPress 使用集群內(nèi)數(shù)據(jù)庫(例如 MariaDB)。
首先,添加 Helm 倉庫,并列出可用的圖表:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update bitnami
接下來,打開并檢查倉庫中提供的 assets/manifests/wordpress-values.yaml
文件:
# WordPress 服務(wù)類型
service:type: ClusterIP# 啟用使用持久卷聲明的持久性
persistence:enabled: truestorageClassName: rwx-storageaccessModes: ["ReadWriteMany"]size: 5GivolumePermissions:enabled: true# Prometheus 導(dǎo)出器 / 指標(biāo)配置
metrics:enabled: false# 允許的自動(dòng)更新級(jí)別。允許值:major, minor 或 none。
wordpressAutoUpdateLevel: minor# 用于生成 WordPress URL 的方案
wordpressScheme: https# WordPress 憑據(jù)
wordpressUsername: <YOUR_WORDPRESS_USER_NAME_HERE>
wordpressPassword: <YOUR_WORDPRESS_USER_PASSSWORD_HERE># 外部數(shù)據(jù)庫詳細(xì)信息
externalDatabase:host: <YOUR_WORDPRESS_MYSQL_DB_HOST_HERE>port: 25060user: <YOUR_WORDPRESS_MYSQL_DB_USER_NAME_HERE>password: <YOUR_WORDPRESS_MYSQL_DB_USER_PASSWORD_HERE>database: <YOUR_WORDPRESS_MYSQL_DB_NAME_HERE># 禁用 MariaDB
mariadb:enabled: falsewordpressExtraConfigContent: |define( 'WP_REDIS_SCHEME', '<REDIS_SCHEME>' );define( 'WP_REDIS_HOST', '<REDIS_HOST>' );define( 'WP_REDIS_PORT', <REDIS_PORT> );define( 'WP_REDIS_PASSWORD', '<REDIS_PASSWORD>');define( 'WP_REDIS_DATABASE', 0 );
大多數(shù)覆蓋項(xiàng)可以自定義。請(qǐng)?jiān)L問 wordpress helm values 了解更多詳細(xì)信息。使用托管 Redis DO 數(shù)據(jù)庫時(shí),WP_REDIS_SCHEME
參數(shù)需要設(shè)置為 tls
,而使用 helm 安裝的 Redis 數(shù)據(jù)庫時(shí)需要設(shè)置為 tcp
。對(duì)于 helm 安裝的 Redis 數(shù)據(jù)庫,可以通過以下命令獲取 WP_REDIS_HOST
參數(shù)值:
kubectl exec -i -t <REDIS_POD> --namespace redis -- hostname -i
最后,使用 Helm 安裝圖表:
helm upgrade wordpress bitnami/wordpress \--atomic \--create-namespace \--install \--namespace wordpress \--version 15.0.11 \--values assets/manifests/wordpress-values.yaml
使用的是特定版本的 WordPress Helm 圖表。在本例中,選擇了 15.0.11 版本,該版本對(duì)應(yīng) WordPress 的 6.0.1 版本。一般來說,鎖定特定版本是一種好的做法。這有助于獲得可預(yù)測(cè)的結(jié)果,并允許通過 Git 進(jìn)行版本控制。
檢查 Helm 發(fā)布狀態(tài):
helm ls -n wordpress
輸出結(jié)果類似于(注意 STATUS 列的值為 "deployed"):
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
wordpress wordpress 1 2022-03-22 14:22:18.146474 +0200 EET deployed wordpress-15.0.11 6.0.1
驗(yàn)證 WordPress 是否正常運(yùn)行:
kubectl get all -n wordpress
輸出結(jié)果類似于(所有 WordPress pods 應(yīng)為 UP 和 RUNNING 狀態(tài)):
NAME READY STATUS RESTARTS AGE
pod/wordpress-6f55c9ffbd-4frrh 1/1 Running 0 23hNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/wordpress ClusterIP 10.245.36.237 <none> 80/TCP,443/TCP 23hNAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/wordpress 1/1 1 1 23hNAME DESIRED CURRENT READY AGE
replicaset.apps/wordpress-6f55c9ffbd 1 1 1 23h
驗(yàn)證 wordpress
命名空間下創(chuàng)建的 PVC 和 openebs
命名空間下關(guān)聯(lián)的 OpenEBS 卷:
kubectl get pvc -A
輸出結(jié)果類似于(注意 WordPress PVC 的 RWX 訪問模式,以及之前通過 OpenEBS NFS provisioner 定義的新存儲(chǔ)類):
NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
openebs nfs-pvc-2b898be6-19f4-4e52-ab9b-10e73ce7d82f Bound pvc-b253c0eb-b02b-46a6-ae88-9a7dd2b71377 5Gi RWO do-block-storage 10m
openebs nfs-pvc-4ce1c2a8-ee65-420f-a722-50f4e50c60a7 Bound pvc-2f2c9dd8-807d-4919-aac1-ab1af69e24c7 5Gi RWO do-block-storage 3m22s
redis redis-data-redis-master-0 Bound pvc-2b898be6-19f4-4e52-ab9b-10e73ce7d82f 5Gi RWX rwx-storage 10m
wordpress wordpress Bound pvc-4ce1c2a8-ee65-420f-a722-50f4e50c60a7 5Gi RWX rwx-storage 3m22s
驗(yàn)證集群中創(chuàng)建的關(guān)聯(lián) PV:
kubectl get pv
輸出結(jié)果類似于:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-2b898be6-19f4-4e52-ab9b-10e73ce7d82f 5Gi RWX Delete Bound redis/redis-data-redis-master-0 rwx-storage 12m
pvc-2f2c9dd8-807d-4919-aac1-ab1af69e24c7 5Gi RWO Delete Bound openebs/nfs-pvc-4ce1c2a8-ee65-420f-a722-50f4e50c60a7 do-block-storage 4m48s
pvc-4ce1c2a8-ee65-420f-a722-50f4e50c60a7 5Gi RWX Delete Bound wordpress/wordpress rwx-storage 4m48s
pvc-b253c0eb-b02b-46a6-ae88-9a7dd2b71377 5Gi RWO Delete Bound openebs/nfs-pvc-2b898be6-19f4-4e52-ab9b-10e73ce7d82f do-block-storage 12m
你還可以創(chuàng)建其他 pods 以展示 NFS provisioner 的能力,方法是打開 wordpress-values.yaml
文件并添加 replicaCount
行,設(shè)置為所需的副本數(shù)。
...
replicaCount: 3
...
使用 helm upgrade
命令應(yīng)用更改:
helm upgrade wordpress bitnami/wordpress \--atomic \--create-namespace \--install \--namespace wordpress \--version 15.0.11 \--values assets/manifests/wordpress-values.yaml
驗(yàn)證更改是否已應(yīng)用。注意增加的副本數(shù)和 pods 數(shù)量:
kubectl get all -n wordpress
輸出結(jié)果類似于:
NAME READY STATUS RESTARTS AGE
pod/wordpress-5f5f4cf94c-d7mqb 1/1 Running 0 2m58s
pod/wordpress-5f5f4cf94c-qkxdq 1/1 Running 0 3m38s
pod/wordpress-5f5f4cf94c-zf46h 1/1 Running 0 87sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/wordpress ClusterIP 10.245.151.58 <none> 80/TCP,443/TCP 35mNAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/wordpress 3/3 3 3 35mNAME DESIRED CURRENT READY AGE
replicaset.apps/wordpress-5f5f4cf94c 3 3 3 35m
replicaset.apps/wordpress-798789f994 0 0 0 19m
我們還可以檢查 pods 部署的位置:
kubectl get all -n wordpress -o wide
輸出結(jié)果類似于(注意 pods 部署在不同的節(jié)點(diǎn)上):
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/wordpress-5f5f4cf94c-d7mqb 1/1 Running 0 4m7s 10.244.0.206 basicnp-cwxop <none> <none>
pod/wordpress-5f5f4cf94c-qkxdq 1/1 Running 0 4m47s 10.244.1.84 basicnp-cwxol <none> <none>
pod/wordpress-5f5f4cf94c-zf46h 1/1 Running 0 2m36s 10.244.0.194 basicnp-cwxop <none> <none>
使用 Let's Encrypt 證書確保流量安全
Bitnami WordPress Helm?圖表通過 cert-manager 內(nèi)置了對(duì) Ingress 路由和證書管理的支持。這使得使用包括 Let's Encrypt 在內(nèi)的各種證書提供商的證書來配置 TLS 支持變得容易。
安裝 Nginx Ingress Controller
首先,添加 Helm 倉庫,并列出可用的圖表:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update ingress-nginx
接下來,使用 Helm 安裝 Nginx Ingress Controller:
helm install ingress-nginx ingress-nginx/ingress-nginx --version 4.1.3 \--namespace ingress-nginx \--create-namespace
接下來,通過運(yùn)行以下命令檢查 Helm 安裝是否成功:
helm ls -n ingress-nginx
輸出結(jié)果類似于(注意 STATUS 列的值為 "deployed"):
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
ingress-nginx ingress-nginx 1 2022-02-14 12:04:06.670028 +0200 EET deployed ingress-nginx-4.1.3 1.2.1
最后,列出 DigitalOcean 賬戶中的所有負(fù)載均衡器資源,并打印 IP、ID、名稱和狀態(tài):
doctl compute load-balancer list --format IP,ID,Name,Status
輸出結(jié)果類似于(應(yīng)該包含為 Nginx Ingress Controller 創(chuàng)建的新負(fù)載均衡器資源,狀態(tài)應(yīng)為健康):
IP ID Name Status
45.55.107.209 0471a318-a98d-49e3-aaa1-ccd855831447 acdc25c5cfd404fd68cd103be95af8ae active
為 Nginx Ingress Controller 配置 DNS
在此步驟中,你將使用你擁有的域名在 DigitalOcean 賬戶中配置 DNS。然后,你將為 WordPress 創(chuàng)建域名 A 記錄。
首先,請(qǐng)發(fā)出以下命令以創(chuàng)建新域(例如 bond-0.co):
doctl compute domain create bond-0.co
注意:你需要確保你的域名注冊(cè)商已配置為指向 DigitalOcean 名稱服務(wù)器。請(qǐng)?jiān)L問 如何設(shè)置 DigitalOcean 名稱服務(wù)器 獲取更多信息。
接下來,你將為 WordPress 應(yīng)用程序添加所需的 A 記錄。首先,需要確定由 Nginx 部署創(chuàng)建的負(fù)載均衡器外部 IP:
kubectl get svc -n ingress-nginx
輸出結(jié)果類似于(注意 ingress-nginx-controller 服務(wù)的 EXTERNAL-IP 列值):
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.245.109.87 45.55.107.209 80:32667/TCP,443:31663/TCP 25h
ingress-nginx-controller-admission ClusterIP 10.245.90.207 <none> 443/TCP 25h
然后,添加記錄(請(qǐng)相應(yīng)替換 <>
占位符)。你可以根據(jù)需要更改 TTL 值:
doctl compute domain records create bond-0.co --record-type "A" --record-name "wordpress" --record-data "<YOUR_LB_IP_ADDRESS>" --record-ttl "30"
提示:如果你的賬戶中只有一個(gè)負(fù)載均衡器,請(qǐng)使用以下代碼片段:
LOAD_BALANCER_IP=$(doctl compute load-balancer list --format IP --no-header)
doctl compute domain records create bond-0.co --record-type "A" --record-name "wordpress" --record-data "$LOAD_BALANCER_IP" --record-ttl "30"
觀察和結(jié)果:
列出 bond-0.co 域的可用記錄:
doctl compute domain records list bond-0.co
輸出結(jié)果類似于:
Output
ID Type Name Data Priority Port TTL Weight
311452740 SOA @ 1800 0 0 1800 0
311452742 NS @ ns1.digitalocean.com 0 0 1800 0
311452743 NS @ ns2.digitalocean.com 0 0 1800 0
311452744 NS @ ns3.digitalocean.com 0 0 1800 0
311453305 A wordpress 45.55.107.209 0 0 30 0
安裝 Cert-Manager
首先,添加 Jetstack Helm 倉庫并列出可用的圖表:
helm repo add jetstack https://charts.jetstack.io
helm repo update jetstack
接下來,使用 Helm 安裝 Cert-Manager:
helm install cert-manager jetstack/cert-manager --version 1.8.0 \--namespace cert-manager \--create-namespace \--set installCRDs=true
最后,通過運(yùn)行以下命令檢查 Cert-Manager 安裝是否成功:
helm ls -n cert-manager
輸出結(jié)果類似于(STATUS 列應(yīng)顯示 "deployed"):
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
cert-manager cert-manager 1 2021-10-20 12:13:05.124264 +0300 EEST deployed cert-manager-v1.8.0 v1.8.0
為 WordPress 配置生產(chǎn)就緒的 TLS 證書
首先,需要一個(gè)集群頒發(fā)者來獲取最終的 TLS 證書。打開并檢查倉庫中提供的 assets/manifests/letsencrypt-issuer-values-values.yaml
文件:
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:name: letsencrypt-prodnamespace: wordpress
spec:acme:# 你必須將此電子郵件地址替換為你自己的。# Let's Encrypt 將使用此地址與您聯(lián)系有關(guān)證書到期和賬戶相關(guān)的問題。email: <YOUR-EMAIL-HERE>server: https://acme-v02.api.letsencrypt.org/directoryprivateKeySecretRef:# 用于存儲(chǔ)賬戶私鑰的 Secret 資源。name: prod-issuer-account-key# 添加一個(gè)單一的挑戰(zhàn)解決器,使用 nginx 進(jìn)行 HTTP01 驗(yàn)證solvers:- http01:ingress:class: nginx
通過 kubectl 應(yīng)用:
kubectl apply -f assets/manifests/letsencrypt-issuer-values.yaml
為了確保 WordPress 流量安全,打開之前創(chuàng)建的 wordpress-values.yaml
文件,并在末尾添加以下設(shè)置:
# 啟用 WordPress 的 Ingress 記錄生成
ingress:enabled: truecertManager: truetls: falsehostname: <YOUR_WORDPRESS_DOMAIN_HERE>annotations:kubernetes.io/ingress.class: "nginx"cert-manager.io/cluster-issuer: "letsencrypt-prod"extraTls:- hosts:- <YOUR_WORDPRESS_DOMAIN_HERE>secretName: wordpress.local-tls
通過 helm 升級(jí):
helm upgrade wordpress bitnami/wordpress \--create-namespace \--namespace wordpress \--version 15.0.11 \--timeout 10m0s \--values assets/manifests/wordpress-values.yaml
這會(huì)自動(dòng)通過 cert-manager 創(chuàng)建一個(gè)證書。然后,你可以通過運(yùn)行以下命令驗(yàn)證你是否已成功獲取證書:
kubectl get certificate -n wordpress wordpress.local-tls
如果成功,輸出的 READY 列應(yīng)顯示 True:
NAME READY SECRET AGE
wordpress.local-tls True wordpress.local-tls 24h
現(xiàn)在,你可以使用之前配置的域名訪問 WordPress。你將通過安裝過程的引導(dǎo)。
啟用 WordPress 監(jiān)控指標(biāo)
在本節(jié)中,你將學(xué)習(xí)如何啟用指標(biāo)來監(jiān)控 WordPress 實(shí)例。
首先,打開之前在本教程中創(chuàng)建的 wordpress-values.yaml
文件,并將 metrics.enabled
字段設(shè)置為 true:
# Prometheus 導(dǎo)出器 / 指標(biāo)配置
metrics:enabled: true
使用 Helm 應(yīng)用更改:
helm upgrade wordpress bitnami/wordpress \--create-namespace \--namespace wordpress \--version 15.0.11 \--timeout 10m0s \--values assets/manifests/wordpress-values.yaml
接下來,端口轉(zhuǎn)發(fā) wordpress 服務(wù)以檢查可用的指標(biāo):
kubectl port-forward --namespace wordpress svc/wordpress-metrics 9150:9150
現(xiàn)在,打開 Web 瀏覽器并導(dǎo)航到 localhost:9150/metrics
,查看所有 WordPress 指標(biāo)。
最后,你需要配置 Grafana 和 Prometheus 來可視化你的新 WordPress 實(shí)例暴露的指標(biāo)。請(qǐng)?jiān)L問 如何安裝 Prometheus 監(jiān)控堆棧 了解如何安裝和配置 Grafana 和 Prometheus。
配置 WordPress 插件
插件是 WordPress 網(wǎng)站的構(gòu)建模塊。無論你是需要添加聯(lián)系表單、改善 SEO、提高網(wǎng)站速度、創(chuàng)建在線商店,還是提供電子郵件訂閱等功能,插件都能為你的網(wǎng)站帶來重要功能。
以下是一些推薦的插件:
- Contact Form by WPForms:允許你為你的網(wǎng)站創(chuàng)建精美的聯(lián)系表單、反饋表單、訂閱表單、付款表單以及其他類型的表單。
- MonsterInsights:是 WordPress 上最好的 Google Analytics 插件。它可以“正確”地將你的網(wǎng)站與 Google Analytics 連接起來,這樣你就可以清楚地看到人們?nèi)绾伟l(fā)現(xiàn)和使用你的網(wǎng)站。
- All in One SEO:幫助你從搜索引擎獲得更多的訪問量。雖然 WordPress 本身是 SEO 友好的,但使用 SEO 最佳實(shí)踐可以大幅增加你的網(wǎng)站流量。
- SeedProd:是 WordPress 上最好的拖放式頁面生成器。它允許你輕松定制網(wǎng)站設(shè)計(jì),并創(chuàng)建自定義頁面布局,而無需編寫任何代碼。
- LiteSpeed Cache:是一款多功能網(wǎng)站加速插件,具有獨(dú)有的服務(wù)器級(jí)緩存和優(yōu)化功能集合。
- UpdraftPlus:簡(jiǎn)化了備份和恢復(fù)。將文件和數(shù)據(jù)庫備份到云端,并一鍵恢復(fù)。
- Query Monitor:WordPress 的開發(fā)者工具面板。它可以調(diào)試數(shù)據(jù)庫查詢、PHP 錯(cuò)誤、鉤子和操作。
更多插件請(qǐng)?jiān)L問 WordPress 插件。
提高 WordPress 性能
CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))是加快 WordPress 網(wǎng)站速度的一種簡(jiǎn)單方法。CDN 是一種服務(wù)器設(shè)置,通過優(yōu)化媒體文件的傳輸請(qǐng)求來提高網(wǎng)頁的加載速度。當(dāng)訪問者遠(yuǎn)離服務(wù)器位置時(shí),大多數(shù)網(wǎng)站會(huì)面臨延遲問題。使用 CDN 可以通過在提供靜態(tài)內(nèi)容(如圖像、CSS、JavaScript 和視頻流)時(shí)卸載 Web 服務(wù)器來加快內(nèi)容交付速度。緩存靜態(tài)內(nèi)容的另一個(gè)好處是最小化延遲。CDN 是優(yōu)化網(wǎng)站并改善全球用戶體驗(yàn)的可靠解決方案。
配置 NitroPack 插件
NitroPack 是一款用于優(yōu)化網(wǎng)站速度和性能的插件。
接下來,你將為你的 WordPress 實(shí)例配置 NitroPack 插件。
注意:通過 WordPress Helm 圖表值文件(wordpress-values.yaml)配置的管理員密碼在嘗試登錄 WordPress 管理員控制臺(tái)時(shí)會(huì)失敗。要更改密碼,你需要連接到數(shù)據(jù)庫并重置它。首先,如果你不熟悉 DigitalOcean 管理的數(shù)據(jù)庫,請(qǐng)閱讀 如何連接到 MySQL 數(shù)據(jù)庫集群。然后,按照 WordPress 支持網(wǎng)站上的 重置 WordPress 用戶密碼 文章進(jìn)行操作。
請(qǐng)按照以下步驟為你的 WordPress 實(shí)例配置 NitroPack 插件:
- 通過以下鏈接在你的 Web 瀏覽器中打開 WordPress 安裝的管理員控制臺(tái)(確保相應(yīng)替換
<YOUR_WORDPRESS_DOMAIN_HERE>
占位符):
https://<YOUR_WORDPRESS_DOMAIN_HERE>/wp-admin
- 當(dāng)被要求時(shí),請(qǐng)使用 WordPress 管理員憑據(jù)登錄。
- 點(diǎn)擊插件菜單項(xiàng),然后打開“添加新”子菜單。
- 搜索 NitroPack 插件,然后在結(jié)果頁面中點(diǎn)擊“立即安裝”按鈕。安裝完成后,點(diǎn)擊“激活”按鈕。你應(yīng)該能看到插件添加到你的插件列表中。
- 點(diǎn)擊插件名稱下的設(shè)置鏈接。在接下來的頁面中,點(diǎn)擊“連接到 NitroPack”按鈕。接下來,你將被重定向到登錄或創(chuàng)建一個(gè)新的 NitroPack 賬戶。
- NitroPack.io 儀表板頁面應(yīng)打開,顯示與計(jì)劃、優(yōu)化頁面等相關(guān)的信息。
接下來,請(qǐng)按照以下步驟將你的網(wǎng)站與 NitroPack 連接:
- 導(dǎo)航至 NitroPack,使用配置插件時(shí)創(chuàng)建的賬戶登錄。
- 點(diǎn)擊“添加新網(wǎng)站”菜單項(xiàng),然后填寫網(wǎng)站 URL 和網(wǎng)站名稱?,F(xiàn)在,點(diǎn)擊“免費(fèi)訂閱”選項(xiàng),然后點(diǎn)擊“繼續(xù)”按鈕。
- 如果你的域名托管在 Cloudflare 上,你將被提示將你的 Cloudflare 賬戶與 NitroPack 賬戶連接。
- 你應(yīng)該可以看到儀表板上的緩存信息。
注意:安裝 NitroPack 后你可能會(huì)看到以下信息:Could not turn on the WP_CACHE constant in wp-config.php.
這是由于 wp-config.php 文件的權(quán)限限制。要解決此問題,你需要使用 kubectl SSH 進(jìn)入 WordPress 容器:
kubectl exec --stdin --tty <your_wordpress_pod> -n wordpress -- /bin/bash
導(dǎo)航到容器內(nèi)的 /bitnami/wordpress
目錄并運(yùn)行以下命令更改權(quán)限:
chmod 0644 wp-config.php
重啟插件主頁應(yīng)解決該錯(cuò)誤。
你還可以查看這篇文章了解 NitroPack 是否正在為訪問者提供優(yōu)化頁面。
配置 Cloudflare
Cloudflare 是一家提供內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)、DNS、DDoS 保護(hù)和安全服務(wù)的公司。Cloudflare 是加快和增強(qiáng) WordPress 網(wǎng)站安全性的好解決方案。
注意:配置此項(xiàng)需要一個(gè) Cloudflare 賬戶。如果你沒有,請(qǐng)?jiān)L問 Cloudflare 網(wǎng)站 并注冊(cè)一個(gè)免費(fèi)賬戶。如果 WordPress 安裝是使用其他注冊(cè)商(如 GoDaddy)購買的域名配置的,你需要將其自定義名稱服務(wù)器更改為指向 Cloudflare 名稱服務(wù)器。
請(qǐng)按照以下步驟配置 Cloudflare 以配合你的 WordPress 網(wǎng)站:
- 使用你的賬戶登錄 Cloudflare 儀表板,并點(diǎn)擊“+添加站點(diǎn)”。
- 輸入 WordPress 網(wǎng)站的域名,然后點(diǎn)擊“添加站點(diǎn)”按鈕。
- 在計(jì)劃選擇頁面中,點(diǎn)擊“免費(fèi)計(jì)劃”下的“開始使用”按鈕。
- 在“查看 DNS 記錄”頁面,點(diǎn)擊“添加記錄”按鈕并添加 A 記錄。
- 為記錄選擇一個(gè)名稱,并確保輸入的 IPv4 地址是 DigitalOcean 負(fù)載均衡器的地址,然后點(diǎn)擊“繼續(xù)”按鈕。
- 在下一頁,你將被要求刪除域名注冊(cè)商中的任何自定義名稱服務(wù)器,并添加 Cloudflare 的名稱服務(wù)器。使用你的管理員賬戶登錄域名注冊(cè)商并更改自定義名稱服務(wù)器。
- 點(diǎn)擊“完成,檢查名稱服務(wù)器”按鈕。
- 在下一頁,Cloudflare 提供了一些配置建議,可以跳過,稍后處理。點(diǎn)擊“跳過建議”鏈接。
當(dāng)站點(diǎn)在 Cloudflare 上激活時(shí),將發(fā)送電子郵件通知你。在 Cloudflare 賬戶中,你可以查看分析頁面,獲取有關(guān) WordPress 網(wǎng)站的 Web 流量信息。
處理名稱服務(wù)器更新可能需要最多 24 小時(shí)完成。
配置 Redis 對(duì)象緩存
WordPress 會(huì)進(jìn)行多次 MySQL 查詢,而 Redis 對(duì)象緩存可以優(yōu)化 WordPress 數(shù)據(jù)庫的使用。Redis 對(duì)象可用于存儲(chǔ)發(fā)送到 MySQL 服務(wù)器的特定查詢的請(qǐng)求輸出緩存。
接下來,你將為你的 WordPress 實(shí)例配置 Redis 對(duì)象緩存插件。
請(qǐng)按照以下步驟配置 Redis 對(duì)象緩存,使其與你的 WordPress 網(wǎng)站配合使用:
- 在瀏覽器中通過以下鏈接打開 WordPress 安裝的管理員控制面板(確保相應(yīng)替換
<YOUR_WORDPRESS_DOMAIN_HERE>
占位符):
plaintext https://<YOUR_WORDPRESS_DOMAIN_HERE>/wp-admin
- 當(dāng)被要求時(shí),請(qǐng)使用 WordPress 管理員憑據(jù)登錄。
- 點(diǎn)擊插件菜單項(xiàng),然后打開“添加新”子菜單。
- 搜索 Redis 對(duì)象緩存插件,然后在結(jié)果頁面中點(diǎn)擊“立即安裝”按鈕。安裝完成后,點(diǎn)擊“激活”按鈕。你應(yīng)該能看到插件概述頁面。
- 點(diǎn)擊“啟用對(duì)象緩存”按鈕。插件應(yīng)連接到 Redis 集群,并顯示“已連接”狀態(tài)。
升級(jí) WordPress
由于 WordPress 如此受歡迎,它經(jīng)常成為惡意利用的目標(biāo),因此,保持它的最新版本是非常重要的。你可以通過 helm 升級(jí)命令升級(jí) WordPress。
首先,更新 helm 倉庫:
helm repo update
接下來,將 WordPress 升級(jí)到新版本:
helm upgrade wordpress bitnami/wordpress \--atomic \--create-namespace \--install \--namespace wordpress \--version <WORDPRESS_NEW_VERSION> \--timeout 10m0s \--values assets/manifests/wordpress-values.yaml
將 <WORDPRESS_NEW_VERSION>
替換為新版本號(hào)。
結(jié)論
在本指南中,你學(xué)習(xí)了如何使用 Helm 和外部 MySQL 數(shù)據(jù)庫,以 Kubernetes 方式安裝 WordPress。你還學(xué)習(xí)了如何將 WordPress 升級(jí)到新版本,以及在出錯(cuò)時(shí)如何回滾到之前的版本。
如果你想了解有關(guān) Kubernetes 和 Helm 的更多信息,請(qǐng)查看我們社區(qū)頁面的 DO Kubernetes 部分。
感謝你與 DigitalOcean 社區(qū)一起學(xué)習(xí)。查看我們的 計(jì)算、存儲(chǔ)、負(fù)載均衡、DDoS 和 托管數(shù)據(jù)庫 產(chǎn)品,了解更多產(chǎn)品信息。中國區(qū)用戶需要技術(shù)支持,或需要咨詢更多產(chǎn)品方案或場(chǎng)景,比如程序化廣告、跨境電商,可聯(lián)系 DigitalOcean 中國區(qū)獨(dú)家戰(zhàn)略合作伙伴卓普云。