Workers-Proxy 是一个轻量级的 Javascript 应用程序. 它可以作为客户端从其他服务器请求资源.
部署在 Cloudflare Workers 这个用于搭建无服务器应用程序的平台上, 用户可以无需购买服务器或配置 Web 服务器 (例如 Nginx 或 Apache) 而搭建反向代理.
此外, 关键性能, 例如延迟或可用性, 将会被优化, 因为无服务器应用将会被部署在 Cloudflare 的全球网络上. 该网络由 位于 90 个国家的 200 个城市中的数据中心组成.
通过配置地区和 IP 过滤器, 你可以根据法律规定在部分国家和地区停用反向代理服务. 借助移动端跳转工具, 你可以根据用户的设备来分发不同的网站.
Reverse-Proxy Project (该示例在部分地区不可用.)
-
创建一个新的项目.
wrangler generate my-workers-proxy https://github.com/Siujoeng-Lau/Workers-Proxy
- 配置 该项目的
wrangler.toml
文件来准备部署你的项目.
wrangler config
- 构建并部署于 Cloudflare Workers.
wrangler build
wrangler publish
-
转到 Cloudflare Workers, 注册或登录 Cloudflare 账号, 为 Workers 设置子域名, 创建新的 Worker.
-
自定义 'src/index.js', 将代码复制到在线编辑器中, 替换默认代码.
-
更改 Worker 名称, 保存代码并部署, 测试反向代理是否符合需求.
-
检查域名是否接入 Cloudflare.
-
跳转到域名的控制面板, 选择 'Workers' 页面, 点击 'Add Route'.
-
在
Route
中输入 https://<domain-name>/*
并且选择刚创建的 Worker. -
为自定义域名添加 CNAME DNS 记录. 在 DNS 页面中, 在 'Name' 区域输入自定义域名的子域名 (或者 @), 在 'Target' 区域输入 Worker 的二级域名, 将代理状态选择为 '代理'.
在 'index.js' 文件顶部有一些常量.
为了自定义 Workers-Proxy 反向代理, 请根据需求编辑这些常量.
// 代理网站.
const upstream = 'www.google.com'
// 代理网站的目录.
const upstream_path = '/'
// 手机用户代理网站.
const upstream_mobile = 'www.google.com'
// 屏蔽国家和地区.
const blocked_region = ['CN', 'KP', 'SY', 'PK', 'CU']
// 屏蔽 IP 地址.
const blocked_ip_address = ['0.0.0.0', '127.0.0.1']
// 源站是否开启 HTTPS.
const https = true
// 文本替换.
const replace_dict = {
'$upstream': '$custom_domain',
'//google.com': ''
}