在上一篇文章中, 我们使用了 Workers 路由来代理 xxxx.Vercel.app , 但实际上, Workers 并不只能代理这个, 他可以代理大部分的网站

  • 创建 Workers

还是老样子, 创建 Workers, 清除其中的代码, 粘贴下面代码的上去

1
2
3
4
5
6
7
8
9
10
11
export default {
async fetch(request, env) {
let url = new URL(request.url);
if (url.pathname.startsWith('/')) {
url.hostname = 'xxx.vercel.app' //修改为自己的网站
let new_request = new Request(url, request);
return fetch(new_request);
}
return env.ASSETS.fetch(request);
},
};

粘贴上去后是11行, 如果有多余几行就把这几行删除

其实可以将这个看成 Nginx 反代

  • 配置 Workers 路由

设置 -> 触发器 -> 路由, 点击添加路由

路由填 my.domain.com/* (你要访问的域名)
区域填 domain.com

点击添加就行了

  • 配置 DNS

找到 DNS 配置页, 添加 CNAME 记录, 记录名称为之前设置的路由, 目标为 cloudflare.182682.xyz 代理状态关闭, 点击保存即可

  • 总结

只需 Workers 代理网站, 并添加路由, 添加 CNAME 记录, 记录目标为使用了 Cloudflare 的网站, 即可享受该网站的访问速度

  • 2024.7.25更新

昨天, 我在搭建影视网站时, 决定用 Workers 路由加速一下, 然后用上这个代码时发现域名重定向了

大概就是我访问上面的 my.domain.com 时, 会重定向到 www.example.com 就失去了加速效果

但是我发现好像只有在一个主域名上的才会重定向, 也就是说当反代的域名为 www.1.com 时, Workers 路由为 my.1.com 时才会出现上面的情况

如果你域名很多, 那么换个路由即可, 如果你不想换路由, 那么就把代码改成下面的代码 (GPT帮我写的, 我不会写,有问题去找GPT)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
const url = new URL(request.url);
if (url.hostname === 'my.domain.com') { //你的workers路由
url.hostname = 'www.example.com'; //被反代的域名
let newRequest = new Request(url, {
method: request.method,
headers: request.headers
});
return await fetch(newRequest);
}
return fetch(request);
}