简介
虽然是一个烂大街的技术。Workers
每天提供免费的 10万
次请求而不计算流量,个人完全是够够够用了。
众所周知,pixiv
的图片伺服器网域为 i.pximg.net
,因为有盗连保护,只要 Referer
是空值或不是来自 pixiv
的网域就会返回 403
。
反向这个代理只需要将 i.pximg.net
更换为搭建的反向代理 pixiv.anyfan.top
就可以使用,
例如:
- pixiv网站上的原始链接(直接打开或在其他网站使用会返回403):
https://i.pximg.net/img-original/img/2020/07/15/00/00/08/82978874_p0.jpg - 反向代理后(就正常了):
https://pixiv.a-f.workers.dev/img-original/img/2020/07/15/00/00/08/82978874_p0.jpg
实现步骤
域名验证
登陆cloudflare,之后把你的域名使用Cloudflare解析(这个过程我觉得没必要详细讲了,如果嫌国内解析慢的,可以在通过验证后在转移到国内)
创建Workers
打开你的域名管理页面,点击上面的 Workers
,再点击 管理 Workers
,进入Workers管理页面。
点击 创建 Workers
进入脚本编辑器,删除掉里面所有的代码,粘贴下面的代码进去。
addEventListener("fetch", event => {
let url = new URL(event.request.url);
url.hostname = "i.pximg.net";
let request = new Request(url, event.request);
event.respondWith(
fetch(request, {
headers: {
'Referer': 'https://www.pixiv.net/'
}
})
);
});
注:左上脚的 pixiv.a-f.workers.dev
为你设置的项目域名
Workers配置路由
再次回到域名管理页面,找到 Workers
,再点击 添加路由
,参考如图。
DNS解析
配置 dns
解析,参考如图。
如果你的解析不在cloudflare,像我解析设置在阿里云,没有像cloudflare一样页面缓存,所以还要将此解析指定到cloudflare。参考下图。(当然你也可以像上一步一样直接设置 CHAME
解析,但是访问相同图片可能会浪费请求次数。)
注:kay.ns.cloudflare.com
为cloudflare的DNS解析服务器,可能有所不同。可以在域名管理页查看。
问题:在设置 CDN
时候,众所周知 cloudflare
除了在国内都挺快的,于是我就想设置国内的 CDN
缓存,但是图片总是返回 ERR_CONTENT_LENGTH_MISMATCH
,很是懊恼头秃,可能是因为2级缓存的原因,目前没有较好的解决方法。
5 条评论
佬,把你给的代码直接复制过去报错了是怎么回事?
Uncaught SyntaxError : Unexpected token '}' at worker . js :14( Code :10021)
确定复制正确了?一共13行代码,怎么会在14行报错。还有就是国内阻断了workers.dev域名,现在是不能直接访问的。
用的是手机,直接复制过去的,我也不清楚为什么会有第14行,所以把第14行删了就行了吗?
请问如何才能反代pixiv整个网站?
我记得GitHub上有很多利用cloudflare workers的项目,其中就包括proxy。不过目前workers.dev在大陆基本处于不可访问的状态。如果您仅仅是自用学习的话可以考虑使用第三方app。