中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

自己做的網(wǎng)站怎么掛廣告上海百度推廣開戶

自己做的網(wǎng)站怎么掛廣告,上海百度推廣開戶,安慶市建設(shè)銀行網(wǎng)站,政府網(wǎng)站 電子政務(wù)建設(shè)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 是專為每個(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é)論

前提條件

要完成本教程,你需要:

  1. Helm,用于管理 WordPress、Nginx Ingress Controller 和 Cert-Manager 的發(fā)布和升級(jí)。
  2. Doctl CLI,用于管理 DigitalOcean 資源。
  3. Kubectl CLI,用于與 Kubernetes API 交互。
  4. 基本的 Kubernetes 知識(shí)。
  5. 配置一個(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ù)庫 ID
  • c278b4a3-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è)置可信源:

  1. 首先,提取 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

  1. 最后,限制傳入連接:

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 插件:

  1. 通過以下鏈接在你的 Web 瀏覽器中打開 WordPress 安裝的管理員控制臺(tái)(確保相應(yīng)替換 <YOUR_WORDPRESS_DOMAIN_HERE> 占位符):

https://<YOUR_WORDPRESS_DOMAIN_HERE>/wp-admin 

  1. 當(dāng)被要求時(shí),請(qǐng)使用 WordPress 管理員憑據(jù)登錄。

  1. 點(diǎn)擊插件菜單項(xiàng),然后打開“添加新”子菜單。
  2. 搜索 NitroPack 插件,然后在結(jié)果頁面中點(diǎn)擊“立即安裝”按鈕。安裝完成后,點(diǎn)擊“激活”按鈕。你應(yīng)該能看到插件添加到你的插件列表中。
  3. 點(diǎn)擊插件名稱下的設(shè)置鏈接。在接下來的頁面中,點(diǎn)擊“連接到 NitroPack”按鈕。接下來,你將被重定向到登錄或創(chuàng)建一個(gè)新的 NitroPack 賬戶。
  4. NitroPack.io 儀表板頁面應(yīng)打開,顯示與計(jì)劃、優(yōu)化頁面等相關(guān)的信息。

接下來,請(qǐng)按照以下步驟將你的網(wǎng)站與 NitroPack 連接:

  1. 導(dǎo)航至 NitroPack,使用配置插件時(shí)創(chuàng)建的賬戶登錄。
  2. 點(diǎn)擊“添加新網(wǎng)站”菜單項(xiàng),然后填寫網(wǎng)站 URL 和網(wǎng)站名稱?,F(xiàn)在,點(diǎn)擊“免費(fèi)訂閱”選項(xiàng),然后點(diǎn)擊“繼續(xù)”按鈕。
  3. 如果你的域名托管在 Cloudflare 上,你將被提示將你的 Cloudflare 賬戶與 NitroPack 賬戶連接。
  4. 你應(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)站:

  1. 使用你的賬戶登錄 Cloudflare 儀表板,并點(diǎn)擊“+添加站點(diǎn)”。
  2. 輸入 WordPress 網(wǎng)站的域名,然后點(diǎn)擊“添加站點(diǎn)”按鈕。
  3. 在計(jì)劃選擇頁面中,點(diǎn)擊“免費(fèi)計(jì)劃”下的“開始使用”按鈕。
  4. 在“查看 DNS 記錄”頁面,點(diǎn)擊“添加記錄”按鈕并添加 A 記錄。
  5. 為記錄選擇一個(gè)名稱,并確保輸入的 IPv4 地址是 DigitalOcean 負(fù)載均衡器的地址,然后點(diǎn)擊“繼續(xù)”按鈕。
  6. 在下一頁,你將被要求刪除域名注冊(cè)商中的任何自定義名稱服務(wù)器,并添加 Cloudflare 的名稱服務(wù)器。使用你的管理員賬戶登錄域名注冊(cè)商并更改自定義名稱服務(wù)器。
  7. 點(diǎn)擊“完成,檢查名稱服務(wù)器”按鈕。
  8. 在下一頁,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)站配合使用:

  1. 在瀏覽器中通過以下鏈接打開 WordPress 安裝的管理員控制面板(確保相應(yīng)替換 <YOUR_WORDPRESS_DOMAIN_HERE> 占位符):

plaintext https://<YOUR_WORDPRESS_DOMAIN_HERE>/wp-admin

  1. 當(dāng)被要求時(shí),請(qǐng)使用 WordPress 管理員憑據(jù)登錄。
  2. 點(diǎn)擊插件菜單項(xiàng),然后打開“添加新”子菜單。
  3. 搜索 Redis 對(duì)象緩存插件,然后在結(jié)果頁面中點(diǎn)擊“立即安裝”按鈕。安裝完成后,點(diǎn)擊“激活”按鈕。你應(yīng)該能看到插件概述頁面。
  4. 點(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)略合作伙伴卓普云。

http://www.risenshineclean.com/news/3441.html

相關(guān)文章:

  • 東莞廣告公司有哪些長沙seo優(yōu)化公司
  • 北京多用戶商城網(wǎng)站建設(shè)百度愛采購優(yōu)化排名軟件
  • 幫人做網(wǎng)站一個(gè)多少錢網(wǎng)站在線推廣
  • 免費(fèi)企業(yè)網(wǎng)站模板psd站長之家是干什么的
  • 南通快速建站公司公司建網(wǎng)站多少錢
  • 南寧建設(shè)廳網(wǎng)站是什么效果好的關(guān)鍵詞如何優(yōu)化
  • 百度指數(shù)官網(wǎng)入口網(wǎng)站在線優(yōu)化檢測(cè)
  • 百度地圖排名怎么優(yōu)化優(yōu)化營商環(huán)境發(fā)言材料
  • 東莞網(wǎng)站包年優(yōu)化百度圖片識(shí)別在線使用
  • 政府網(wǎng)站的做東莞關(guān)鍵詞排名提升
  • app圖標(biāo)制作seo門戶
  • 國家質(zhì)檢總局網(wǎng)站品牌建設(shè)河南省干部任免最新公示
  • wordpress 分享到朋友圈開封seo公司
  • 簡(jiǎn)述電子商務(wù)網(wǎng)站開發(fā)的基本原則網(wǎng)站下載
  • 珠海建設(shè)網(wǎng)站的公司簡(jiǎn)介百度一下你就知道百度首頁
  • wordpress被百度收錄百度自然排名優(yōu)化
  • 自己做網(wǎng)站還是找網(wǎng)站建設(shè)公司好網(wǎng)站公司
  • 如何分析網(wǎng)站功能seo全稱英文怎么說
  • 網(wǎng)站注冊(cè)免費(fèi)網(wǎng)絡(luò)輿情報(bào)告
  • 便宜電商網(wǎng)站建設(shè)關(guān)鍵詞林俊杰在線聽免費(fèi)
  • 做網(wǎng)站好多錢免費(fèi)網(wǎng)站代理訪問
  • 制作網(wǎng)站參考案例廣州優(yōu)化疫情防控舉措
  • 杭州怎么做網(wǎng)站今日新聞?lì)^條熱點(diǎn)
  • wordpress 插件 支付搜索引擎關(guān)鍵詞優(yōu)化有哪些技巧
  • 離石做網(wǎng)站的公司做網(wǎng)絡(luò)推廣可以通過哪些渠道推廣
  • 門戶網(wǎng)站的建設(shè)思路百度網(wǎng)站排名怎么提高
  • 企業(yè)免費(fèi)網(wǎng)站系統(tǒng)下載地址百度競(jìng)價(jià)推廣什么意思
  • wordpress原始分頁共seo關(guān)鍵詞優(yōu)化費(fèi)用
  • 相冊(cè) wordpressaso如何優(yōu)化
  • c 做網(wǎng)站簡(jiǎn)單嗎百度推廣怎么添加關(guān)鍵詞