使用CFworkers路由加速网站
在上一篇文章中, 我们使用了 Workers 路由来代理 xxxx.Vercel.app , 但实际上, Workers 并不只能代理这个, 他可以代理大部分的网站
- 创建 Workers
还是老样子, 创建 Workers, 清除其中的代码, 粘贴下面代码的上去1
2
3
4
5
6
7
8
9
10
11export 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
16addEventListener('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);
}