概述

在本教程中,我们将使用 Workers Sites将 WordPress 网站迁移到 Cloudflare Workers。与直接公开您的 WordPress 网站相比,为您的 WordPress 网站提供静态版本有很多优势。尽管 WordPress 非常强大且易于使用,但不断发现新的漏洞使 WordPress 成为黑客的明显目标。由于 WordPress 是基于 PHP 构建的,因此您网站的每个传入请求都会在服务器上重新生成一个新响应 - 对于大多数网站来说,这是不必要的,并且当您的网站收到大量流量时,可能会导致扩展问题。

我们将使用免费的 WordPress 插件WP2Static ,它生成一个完全静态的(HTML、CSS 和JS) 版本。使用Wrangler,我们会将站点发布到 Cloudflare Workers。 Wrangler 的内置 Workers Sites 功能包括支持直接在 Cloudflare 的 CDN 中提供和缓存您的站点,从而允许用户快速安全地查看您的站点。

先决条件

本教程假设您是:

  • 您的 WordPress 站点的管理员帐户,并且
  • 能力在网站上安装 WordPress 插件。

构建

首先,我们将安装WP2Static该插件将您的 WordPress 网站导出到一个 zip 文件。在您的 WordPress 管理员中,导航到添加插件页面,默认情况下为 /wp-admin/plugin-install.php。在搜索栏中,搜索 WP2Static 并确认将安装的结果插件与下面的插件匹配。

插件上选择“安装”,安装完成后完成后,选择“激活”。

导出您的 WordPress 网站

当您的应用程序刷新时,您应该会在边栏中看到一个名为 WP2Static 的新部分。导航到该部分,我们将开始您的第一个静态 WordPress 导出。

从页面上的“Where will you host..”下拉列表中选择“ZIP Archive (.zip)”。 WP2Static 支持多种不同的导出类型,包括手动和自动导出。为了简化部署,我们建议您选择“允许离线使用”,这将使 WordPress 中的所有 URL 导出relative /logo.pnghttps://mysite.com/logo.png , 并将减少根据主题和 WordPress 设置可能发生的资产错误的数量。

现在是时候进行第一次导出了!选择“开始静态站点导出”(这可能需要一些时间),完成后,将 ZIP 文件保存在某个地方以备后用。

创建一个工作项目

一旦我们的网站导出准备就绪,我们就可以开始部署它了。为此,我们将使用 Wrangler打开外部链接,Cloudflare Workers 的命令行工具。如果您尚未安装和配置 Wrangler,请查看我们的 入门 指南。

安装和配置 Wrangler 后,我们可以创建一个新项目来将我们的静态 WordPress 站点部署到 Workers。生成新项目运行:

生成新项目$ 牧马人生成--site wp-static

这个--site 标志表示我们要部署一个静态站点,我们的静态 WordPress 站点。

移植 WordPress 网站

新生成的wp-static目录会包含三个东西:

  1. A public 目录,表示要部署给工作人员的站点。这将是您的 WordPress 网站的位置。
  2. 一个 workers-site 目录,其中包含将为您的站点内容提供服务的工作脚本。在本教程中,我们不会更改此文件夹中的任何内容。
  3. 一个 wrangler.toml 文件包含我们的wp-static 文件的详细信息。在部署项目之前,我们将使用一些信息填充此文件。

使用 Workers Sites 部署网站时,您的静态代码(HTML、CSS 和 JavaScript)将上传到 Workers KV。这些文件的位置默认是上面的 public 文件夹。

打开WordPress静态导出下载的ZIP文件,然后将ZIP的内容解压到这个public文件夹:

复制文件到public目录 span class="CodeBlock--rows">$ cp -R ~/Downloads/wp-static - html-output-/ ./public

你的目录结构应该是这样的this Show:

列出wp-static中的文件$ 树wp-static span class="CodeBlock--row">├── public│ ├── 2018│ ├── 2019│ ├ ── 404.html│ └── # 更多导出的 WordPress 文件├── workers-site│ ├── index.js│ ├── node_modules│ └── # More Workers 脚本文件└ ── wrangler.toml

Deploying

要预览和部署我们的应用,我们需要填写< code class="InlineCode"> wrangler.toml - 配置这个项目的文件。大多数文件都是预填充的,但您需要指定您的account_idapp 及其部署位置。填写account_id字段wrangler.toml.

使用 Wrangler 的预览功能,我们能够快速将我们网站的一个版本上传到 Cloudflare Workers 预览服务,并确保静态导出看起来像我们预期的那样。运行 wrangler preview 将上传您的静态网站并在浏览器窗口中预览。

当您的网站在 Wrangler 的预览中看起来正确时,您可以继续将您的项目发布到域中。有关如何执行此操作的指导,请参阅入门指南

限制

WordPress 网站中有一些功能在静态网站环境中不受支持:

  • WordPress 表单
  • WordPress 评论
  • 任何链接到/wp-admin或类似的“内部”WordPress 路由

结论

将WordPress站点部署到Workers可以提高站点性能和安全性以及成本。在为您的网站提供静态版本后,您可以使用实时 WordPress 安装执行许多操作:

  • 将您的 WordPress 安装移动到私有 URL 或子域,并通过 Workers 将应用程序部署到您的域中,以服务于站点的静态版本。请参阅 部署到域 以了解更多信息!
  • 在本地运行您的 WordPress 实例,或将您现在隐藏的 WP 实例放在类似 Cloudflare Access 的东西上span>背后的东西只允许访问你的贡献者。这对 WordPress 网站及其内容的攻击媒介数量产生了巨大影响。
  • 将您的 WordPress 托管计划降级为更便宜的计划。由于您的 WordPress 实例的内存和带宽要求现在小得多,您通常可以以更便宜的计划托管它,或切换到共享托管。您的 Cloudflare Workers 计划按请求定价,并且由于您可以在您的帐户上托管多达 30 个站点,因此为大量静态 WordPress 站点提供服务可能比 Workers 便宜一个数量级。

我们对 Workers 和 WordPress 的未来感到非常兴奋,我们很想听听您与他们合作的成果!