Pixiv 的图床(i.pximg.net or imgaz.pixiv.net)在直接访问时会出现 403 Forbidden 错误(即防盗链),可以通过搭建 Pixiv 图床的反向代理来解决这个问题。有两种方案可供选择,分别是本地 Web 服务器(Nginx / Apache 等)进行反向代理以及 Cloudflare Workers。不过由于免费帐户的 Cloudflare Workers 有每天 100,000 次的请求上限,可能存在不够的情况,所以建议使用可以访问 Pixiv 图床的服务器进行反向代理。当然,如果使用 Cloudflare Workers 搭建后只给一两个人使用是没有任何问题的。
Web 服务器反向代理
首先,需要一台能访问到 Pixiv 图床的服务器,此处不过多赘述。下面为 Nginx 的最简单的配置示例,可以根据需要进行修改。
server {
# 监听地址&域名
listen 443 ssl http2;
server_name your.domain.com;
# SSL 证书配置
ssl_certificate /path/to/ssl_certificate.crt;
ssl_certificate_key /path/to/ssl_certificate.key;
access_log off;
location / {
proxy_cache pximg;
proxy_pass https://i.pximg.net;
proxy_set_header Host i.pximg.net;
proxy_set_header Referer "https://www.pixiv.net/";
}
}
上面的片段适用于 Nginx Web 服务器,有关 Nginx 配置的更多信息,请查阅 nginx documentation。
在服务器磁盘空间充足时,可以考虑启用缓存,此时示例配置为:
proxy_cache_path /path/to/cache levels=1:2 keys_zone=pximg:10m max_size=10g inactive=7d use_temp_path=off;
server {
# 监听地址&域名
listen 443 ssl http2;
server_name your.domain.com;
# SSL 证书配置
ssl_certificate /path/to/ssl_certificate.crt;
ssl_certificate_key /path/to/ssl_certificate.key;
access_log off;
location / {
proxy_cache pximg;
proxy_pass https://i.pximg.net;
proxy_cache_revalidate on;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_lock on;
add_header X-Cache-Status $upstream_cache_status;
proxy_set_header Host i.pximg.net;
proxy_set_header Referer "https://www.pixiv.net/";
proxy_cache_valid 200 7d;
proxy_cache_valid 404 5m;
}
}
Nginx 的配置较为繁琐,如果你也这么觉得,可以考虑使用 Cloudflare Workers。
Cloudflare Workers
在 Cloudflare 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/',
'User-Agent': 'Cloudflare Workers'
}
})
);
});
完成部署后,你可以使用自定义域名或者 Cloudflare 提供的 Workers 域名来进行访问(可能会被一些不可抗力因素阻断),建议使用自定义域名。
第三方反向代理
如果你不想自己部署,也可以使用以下第三方的 Pixiv 反向代理服务:
- i.pixiv.re
- i.pixiv.nl
- i.pixiv.cat
有关这三个反向代理域名(实际上指向了同一个服务),请参阅 Pixiv圖片代理。
此站点提供的 Pixiv 反向代理:
api.gloxina.com/pixiv/