2025教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理

Cloudflare使用Workers和Pages部署网站反向代理

使用 Cloudflare Workers 和 Pages 进行网站反向代理是一个非常实用的方法,可以帮助你加速访问、绕过限制或隐藏源站地址。以下是一个简洁的教程,教你如何利用这两者实现反向代理功能。整个过程无需自己托管服务器,利用 Cloudflare 的边缘计算能力即可完成。

教你如何使用 Cloudflare Workers和Pages配置网站反向代理-1

Cloudflare 不仅仅是一个 CDN 服务商,而是一个高性能、低延迟、安全可靠的全球网络平台。

借助其遍布全球的边缘计算架构,Cloudflare 能够高效加速静态与动态内容的分发,同时提供精准的缓存策略以优化带宽使用。此外,其内置的无限 DDoS 保护机制可有效抵御各类网络攻击,确保业务的稳定性与安全性。

今天,我们将利用 Cloudflare Workers 与 Cloudflare Pages 搭建高效的反向代理服务,以充分发挥 Cloudflare 在分布式计算与边缘网络加速方面的优势。

配置网站反向代理前的准备

Cloudflare账户

如果还没有账户,请访问Cloudflare进行注册!

Cloudflare账户注册过程相对简单,可以使用谷歌账号、苹果账号或自定义的Email进行注册。

教你如何使用 Cloudflare Workers和Pages配置网站反向代理-1

推荐使用Google进行注册,Google账户几乎覆盖所有国外的热门网站,都可以使用Google账户进行登录,如果你还没有谷歌账户的话,赶紧去注册一个吧!

激活域名

需要将域名转移到Cloudflare上面,如果你还不会在Cloudflare中激活域名的话,下面教你如何激活域名。

需要更新您的名称服务器来激活 Cloudflare。

在Cloudflare后台添加新域名,将域名输入,默认选择快速扫描DNS记录,点击继续!

教你如何使用 Cloudflare Workers和Pages配置网站反向代理-1

选择免费计划,域名添加成功!

教你如何使用 Cloudflare Workers和Pages配置网站反向代理-1

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

接下来登录到你的域名注册的网站上,进入后台后,找到并关闭 DNS 安全 (DNSSEC) 设置,如果默认是关闭的请无视,您以后可以通过 Cloudflare 重新启用。

将您当前的名称服务器替换为 Cloudflare 分配的名称服务器。

注意:每个域名都会分配不同的名称服务器,删除掉多余名称服务器,在名称服务器1和名称服务器2中填写Cloudflare 名称服务器。

下面以namesilo为例:

教你如何使用 Cloudflare Workers和Pages配置网站反向代理-1

在后台点击域名,进入域名操作页面,编辑名称服务器。将名称服务器里的内容删除掉。

教你如何使用 Cloudflare Workers和Pages配置网站反向代理-1

修改名称服务器后,保存即可。个别地区生效时间较晚,暂时不需要理会生效时间。

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

在Cloudflare后台,如果域名状态是活动状态,就表示已经生效了,如果名称服务器没有生效或者修改错误,会显示名称服务器无效。

GitHub账户

如果还没有账户,请访问GitHub进行注册!

教你如何使用 Cloudflare Workers和Pages配置网站反向代理-1

在GitHub上创建账户,只能使用电子邮件注册,建议使用Gmail进行注册。

在邮箱中接收验证码,填写完毕后,账户注册成功!

使用Workers和Pages部署网站反向代理Proxy

接下来我们使用Workers和Pages部署网站反向代理,有两种方式来部署网站的反向代理,下面来实践一下部署过程。

注意事项

  • Workers 方式: 复制 _worker.js ,在 Cloudflare 保存并部署。
  • Pages 方式: Fork 仓库,在 Cloudflare 连接 GitHub 一键部署。
  • Workers vs Pages:Workers 更适合纯动态代理,Pages 适合混合静态内容和动态功能。如果只是简单反向代理,Workers 更直接。
  • 免费配额:Cloudflare 提供每天 10 万次 Workers 请求,Pages 也有类似的限制,足够个人使用,但大规模流量可能需要付费计划。
  • 国内访问:workers.dev 和 pages.dev 在中国大陆可能被限制,建议绑定自定义域名。
  • 安全性:确保目标网站允许代理访问,避免违反服务条款。

使用 Cloudflare Workers 实现反向代理

Cloudflare Workers 是运行在 Cloudflare 全球边缘节点上的无服务器脚本,可以轻松处理 HTTP 请求并将其转发到目标网站。

第一步:注册并登录 Cloudflare

如果你还没有 Cloudflare 账号,先去官网注册一个,然后登录。

第二步:创建一个 Worker

在 Cloudflare 仪表盘中,点击左侧计算(Workers)下面的 "Workers 和 Pages",然后选择 "快速开始"。

教你如何使用 Cloudflare Workers和Pages配置Proxy 网站反向代理-1给你的 Worker 起个名字(默认会生成一个类似 yourname.workers.dev 的域名)。

名字填写完毕后,点击部署,接下来进入部署页面中

教你如何使用 Cloudflare Workers和Pages配置Proxy 网站反向代理-1点击编辑代码,进入到 Worker 编辑器中,删除默认代码,粘贴以下简单反向代理脚本。

教你如何使用 Cloudflare Workers和Pages配置Proxy 网站反向代理-1

第三步:创建反向代理脚本

创建一个自定义的java脚本,下面是反向代理脚本示例:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  const url = new URL(request.url);
  // 将请求转发到的目标网站
  const targetHost = 'example.com'; // 替换为你要代理的域名
  url.hostname = targetHost;

  // 创建新的请求
  const newRequest = new Request(url, request);
  return await fetch(newRequest);
}

这个脚本会把所有发送到你 Worker 的请求转发到 example.com。

第四步:保存部署

点击 右上角的蓝色按钮"部署",你的 Worker 就上线了。你可以通过 https://your-worker-name.yourname.workers.dev 访问它。

第五步:配置域名

由于workers.dev的域名在国内无法访问,你需要配置新的域名。

在配置选项下面的域和路由菜单中,点击添加。

教你如何使用 Cloudflare Workers和Pages配置Proxy 网站反向代理-1

选择自定义域,然后输入域名后保存。这时候域名就添加成功了,可以使用新域名访问了。

到这里,使用Cloudflare Workers实现反向代理的功能就已经实现了,是不是很简单。接下来还可以使用Pages部署网站反向代理。

使用 Cloudflare Pages部署网站反向代理

Cloudflare Pages 是一个静态网站托管平台,结合 Git 仓库自动化部署,适合快速上线前端项目。它最近新增了 Functions 功能(本质上是 Workers 的变种),允许在边缘执行动态代码。

Cloudflare Pages 主要用于托管静态网站,但结合 Functions(基于 Workers 的功能),也可以实现反向代理。

下面开始使用 Cloudflare Pages 部署反向代理。

第一步:创建 Pages 项目

在 Cloudflare 仪表盘的 "Workers 和 Pages" 中,点击创建,然后选择 "Pages",点击 "连接到Git"。

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1
连接你的 GitHub 或 GitLab 仓库(可以创建一个简单的空的静态项目,例如只有一个 index.html)。

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

第二步:连接到存储库

这里以GitHub为例,首先需要在GitHub上创建一个项目。

在 Github 上建立仓库并添加代码,登录 Github 后,如下图所示,点击创建存储库,建立一个名为 Cloudflare Pages 的私库。

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

注意,这里创建新的存储库要选择私人的,否则是任何人都可以访问的。

接下来创建新文件,点击 creating a new file 创建新文件,创建文件。

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

下面创建一个名为_worker.js 的文件,然后复制以下代码,在第五行单引号里改成你想要反代的网站,然后保存,提交更改。

反向代理的js代码,注意域名中不要加https,http等字符。

export default {
  async fetch(request, env) {
    let url = new URL(request.url);
    if (url.pathname.startsWith('/')) {
      url.hostname = '反代地址'
      let new_request = new Request(url, request);
      return fetch(new_request);
    }
    return env.ASSETS.fetch(request);
  },
};

 

返回到Cloudflare Pages页面后, 选择 GitHub 后点击 "连接 GitHub" 按钮。

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

页面跳转至 Github ,点击 Install & Authorize 按钮。

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

输入密码进行连接,连接成功后,返回到Cloudflare Pages

教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

选择存储库后,点击开始设置。

设置构建和部署页面可以修改项目名称,或者默认即可,最后点击保存并部署。

很多人在开始部署的时候显示失败。

这是因为Cloudflare Pages 的构建系统版本升级成了v2,在项目的设置选项中,将构建系统版本修改成v1,然后重新部署就可以成功了!

2025教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

部署成功后,你可以在自定义域中绑定独立的域名。

2025教你如何使用 Cloudflare Workers和Pages配置Proxy网站反向代理-1

到这里Cloudflare Pages反向代理就设置完了,是不是很简单!

Workers 和 Pages 部署反向代理的区别和优缺点对比

选择 Workers 的场景:

需要强大的反向代理功能,例如:

  • 修改所有类型的响应内容(HTML、XML、JSON 等)。
  • 处理复杂的替换规则或动态路由。
  • 精确控制响应头或缓存策略。

对性能要求高,希望在服务端完成所有逻辑。

项目涉及边缘计算或需要全球低延迟响应。

选择 Pages 的场景:

反向代理需求简单,例如仅代理 HTML 并做少量替换。

  • 项目主要是静态网站,只需简单的反向代理或重定向。
  • 不希望额外成本,只依赖免费额度。
  • 开发团队熟悉前端开发,倾向于静态文件部署。

应用多条内容替换规则(包括标题、URL、图片等)。以下是对比后的建议:

  • Workers:
    优势:可以完美实现你的脚本,直接在服务端完成所有替换,支持正则表达式和多种内容类型,性能和用户体验更好。
    推荐理由:你的需求涉及复杂的替换规则(多条正则匹配)和 URL 重写,Workers 更适合。
  • Pages:
    限制:只能通过客户端 JS 实现替换,性能较差,且无法处理非 HTML 内容或响应头。
    适用性:如果预算有限且只代理 HTML,可以勉强使用,但体验不如 Workers。

推荐方案:使用 Cloudflare Workers。它能完整实现你的反向代理和内容替换需求,且性能和灵活性更优。

5/5 - (1 vote)

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注