如何部署靜態WordPress網站

總覽

在本教程中,我們將利用Workers Sites將WordPress網站遷移到Cloudflare Workers 。與直接公開WordPress網站相比,為WordPress網站提供靜態版本具有許多優勢。儘管WordPress非常強大且易於使用,但不斷發現的新漏洞使WordPress成為黑客攻擊的明顯目標。由於WordPress是基於PHP構建的,因此您網站的每個傳入請求都會在伺服器上重新生成新的響應-對於大多數網站而言,這是不必要的,並且當您的網站收到大量流量時會導致擴展問題。

我們將使用免費的WordPress插件WP2Static,它會生成WordPress網站的完全靜態(HTML,CSS和JS)版本。使用牧馬人,我們會將網站發布給Cloudflare Workers。Wrangler內置的Workers Sites功能包括支持直接在Cloudflare的CDN中服務和緩存您的網站,使用戶可以快速安全地查看您的網站。

先決條件

本教程假定您是:

  • WordPress網站上的管理員帳戶,以及
  • 能夠在網站上安裝WordPress插件。

建立

首先,我們將安裝WP2Static插件將您的WordPress網站導出到zip文件。在您的WordPress管理員中,導航至「添加插件」頁面,默認情況下為/wp-admin/plugin-install.php。在搜索欄中,搜索WP2Static並確認將要安裝的結果插件與下面的插件匹配。

wordpress-install-plugin

選擇插件上的「安裝」,完成安裝後,選擇「激活」。

導出您的WordPress網站

當您的應用程序刷新時,您應該在側欄中看到一個名為WP2Static的新部分。導航到該部分,我們將開始您的第一個靜態WordPress導出。

從頁面上的「您將在哪裡託管..」下拉列表中,選擇「 ZIP存檔(.zip)」。WP2Static支持多種不同的導出類型,包括手動和自動導出。為了簡化部署,我們建議您選擇「允許離線使用」,這將使WordPress導出中的所有URL相對於/logo.pnghttps://mysite.com/logo.png,並將減少根據主題和WordPress設置可能發生的資產錯誤的數量。

現在是時候做我們的第一次出口!選擇「開始靜態站點導出」(可能需要一些時間),完成後,將ZIP文件保存在某個位置,以備日後使用。

wordpress-export

創建工人項目

準備好我們網站的導出後,就可以開始部署它了。為此,我們將使用牧馬人,Cloudflare Workers的命令行工具。如果您尚未安裝和配置牧馬人,請查看我們的入門指南。

一旦安裝並配置了Wrangler,我們就可以創建一個新項目,以將我們的靜態WordPress網站部署到Workers。要生成新的項目運行:

生成一個新項目$ wrangler generate --site wp-static

--site標誌表示我們要部署一個靜態站點,即我們的靜態WordPress站點。

移植WordPress網站

新生成的wp-static目錄將包含三件事:

  1. 一個public目錄,表示要部署到工人的站點。這將是您的WordPress網站的位置。
  2. 一個workers-site目錄,其中包含工人腳本,它將為你的網站內容。在本教程中,我們將不會更改此文件夾中的任何內容。
  3. 一個wrangler.toml文件,其中包含我們wp-static文件的配置詳細信息。在部署項目之前,我們將使用一些信息填充此文件。

使用Workers Sites部署網站時,您的靜態代碼(HTML,CSS和JavaScript)將上傳到Workers KV。這些文件的位置默認情況下是public上述文件夾。

打開從WordPress靜態導出下載的ZIP文件,然後將ZIP的內容提取到該public文件夾中:

將文件複製到公共目錄$ cp -R ~/Downloads/wp-static-html-output-<some-tag>/ ./public

您的目錄結構應如下所示:

列出wp-static中的文件$ tree wp-static├── public│   ├── 2018│   ├── 2019│   ├── 404.html│   └── # More exported WordPress files├── workers-site│   ├── index.js│   ├── node_modules│   └── # More Workers script files└── wrangler.toml

部署中

要預覽和部署我們的應用程序,我們需要填寫wrangler.toml-該項目的配置文件。大多數文件已預先填寫,但是您需要指定您account_id的應用程序以及部署位置。使用您的Cloudflare帳戶ID填寫account_id欄位wrangler.toml

使用Wrangler的預覽功能,我們可以快速將網站版本上傳到Cloudflare Workers預覽服務,並確保靜態導出看起來像我們期望的那樣。運行wrangler preview將上傳您的靜態站點並在瀏覽器窗口中預覽。

當您的網站在Wrangler的預覽中看起來正確時,您可以繼續將項目發布到域中。有關如何執行此操作的指南,請參閱入門指南

wordpress-demo

局限性

WordPress網站中有一些可用的功能在靜態網站環境中不受支持:

  • WordPress表格
  • WordPress評論
  • 任何鏈接到/wp-admin或類似的「內部」 WordPress路由

結論

將WordPress網站部署到Workers可以提高網站的性能,安全性和成本。在提供網站的靜態版本後,您可以通過實時WordPress安裝執行許多操作:

  • 將WordPress安裝移至私有URL或子域,並通過將Workers應用程序部署到您的域來提供站點的靜態版本。請參閱部署到域以了解更多信息!
  • 在本地運行WordPress實例,或將您現在隱藏的WP實例放在Cloudflare Access之類的東西後面只允許訪問您的貢獻者。這對WordPress網站及其內容的攻擊媒介數量產生了巨大影響。
  • 將您的WordPress託管計劃降級為更便宜的計劃。由於您的WordPress實例的內存和帶寬要求現在要小得多,因此您通常可以以更便宜的計劃來託管它,或者轉而使用共享託管。您的Cloudflare Workers計劃按請求計價,並且由於您可以在您的帳戶上託管多達30個站點,因此,服務大量的靜態WordPress網站可能比Workers便宜一個數量級。

我們對Workers和WordPress的未來感到非常興奮,我們很想聽聽您與他們合作的內容!

相關文章