Issues | Pull requests | 贡献者
Workers-Proxy 是基于 Cloudflare Workers 的轻量级 Javascript 反向代理.
用户无需购买主机并配置 Web 服务器 (例如 Nginx 或 Apache) 即可在 Cloudflare 的全球网络上部署反向代理.
- 搭建网站镜像
- 通过 Cloudflare 的全球网络加速前端资源访问
- 增加安全性, 隐藏网站的真实 IP 地址
- 屏蔽特定地区或 IP 地址
- 将移动设备用户转发到不同网站
GitHub (该示例在部分地区无法使用)
University of California, Los Angeles (UCLA)
-
创建一个新的项目.
wrangler generate my-workers-proxy https://github.com/Berkeley-Reject/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://<自定义域名>/*
并且选择刚创建的 Worker. -
为自定义域名添加 CNAME DNS 记录. 在 DNS 页面中, 在 'Name' 区域输入自定义域名的子域名 (或者 @), 在 'Target' 区域输入 Worker 的二级域名 (例如 test.workers.dev), 将代理状态选择为 '代理'.
在 '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 disable_cache = false
// 文本替换
const replace_dict = {
'$upstream': '$custom_domain',
'//google.com': ''
}
如果被反代的网站使用其他域名的静态资源时, 可以部署多个 Workers-Proxy 并配置文本替换.
- www.google.com 使用位于 www.gstatic.com 的静态资源
- 部署 Workers-Proxy A, 用于代理 www.gstatic.com
- 部署 Workers-Proxy B, 用于代理 www.google.com
- 配置 Workers-Proxy B 的文本替换:
const replace_dict = {
'$upstream': '$custom_domain',
'www.gstatic.com': '<Workers-Proxy A 的域名>'
}