深刻意识到,很多以前自己认为无解的问题并不是真的无解,只是自己的知识面不够而无法意识到问题的核心所在罢了。
总结就一个字:菜
by:神代綺凛
本文原作者为:神代綺凛的 [Pixiv] Nginx 真·反代P站 次作者:losquare的 使用宝塔面板快速部署 pixiv 反向代理
本人经过简化 加入自己的理解所完成
警告:
《中华人民共和国计算机信息网络国际联网管理暂行规定》,其中规定了“计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网。”如违反上述规定,公安机关会责令停止联网,给予警告,可以并处15000元以下的罚款;有违法所得的,没收违法所得。
本文仅在技术层面进行探讨,所有内容仅供交流学习,请勿做出违反国家法律的行为!
所需资源:
- 一台能够访问pixiv的主机
- 宝塔面板(推荐)、
- 一个域名(二级也行)
- 注意 后续均已example.com来对域名进行指代
泛域名解析
如果你使用了一个顶级域名专门做反代:
example.com
*.example.com
*.pximg.example.com
根据原作者的意思
- exmpe.com
- 随意,你可以放点自己的东西做一些伪装或者说明,或者直接 301 到www.example.com
- *.exmpe.com
- 用于反代对齐 *.pixiv.net
- *.pximg.example.com
- 用于反代对齐*.pximg.net,其实该域名中的pximg也可以替换成其他的字符串,只要不与P站的二级域名服务产生冲突即可
如果你用了个正在使用的域名且不想被影响使用:
pixiv.example.com
*.pixiv.example.com
*.pximg.example.com
则可以这样做解析,后续配置进行替换即可
建立新站点
在宝塔面板中建立两个新站点
第一个站点:
example.com
*.example.com
第二个站点:
pximg.exmple.com
*.pximg.exmple.com
分别用来作为主站反代与图片反代
参考图:
对泛域名申请ssl证书
依次对域名进行申请,这里要注意的是泛域名只能使用dns进行解析。
如果使用的域名是阿里云dns 或者cf的dns 等等被宝塔所支持接口的dns那会方便很多。
如果没有,那么我们可以进行手动解析。
首先勾选 DNS 验证,勾选泛解析域名,选择手动解析,然后点击开始申请,根据弹窗,前往你的 DNS 供应商处添加一条 TXT 记录(注意:再次期间不要关闭网页),等待数分钟确保解析生效后,方可点击确认按钮完成证书申请。
修改配置文件
准备:
# *.example.com
server
{
server_name ~^([^.]+)\.example\.com$;
set $domain $1;
resolver 8.8.8.8;
location ~ .*
{
proxy_set_header Host $domain.pixiv.net;
proxy_set_header Referer "https://www.pixiv.net";
proxy_cookie_domain pixiv.net example.com;
proxy_pass https://$domain.pixiv.net;
proxy_ssl_server_name on;
proxy_set_header Accept-Encoding "";
proxy_redirect https://accounts.pixiv.net/ https://accounts.example.com/;
sub_filter "i-cf.pximg.net" "i.example.com";
sub_filter "pixiv.net" "example.com";
sub_filter "pximg.net" "pximg.example.com";
# 防止错误上报暴露站点
sub_filter "js_error.php" "block_js_error";
# 防止谷歌服务暴露站点,同时也可以加快网站加载
sub_filter "www.google" "block_google";
sub_filter_once off;
sub_filter_types *;
}
}
这段是给 *.example.com 所使用
# *.pximg.example.com
server
{
server_name ~^([^.]+)\.pximg\.example\.com$;
set $domain $1;
resolver 8.8.8.8;
location ~ .*
{
proxy_set_header Host $domain.pximg.net;
proxy_set_header Referer "https://www.pixiv.net";
proxy_pass https://$domain.pximg.net;
proxy_ssl_server_name on;
proxy_set_header Accept-Encoding "";
sub_filter "i-cf.pximg.net" "i.example.com";
sub_filter "pixiv.net" "example.com";
sub_filter "pximg.net" "pximg.example.com";
# 防止错误上报暴露站点
sub_filter "js_error.php" "block_js_error";
# 防止谷歌服务暴露站点,同时也可以加快网站加载
sub_filter "www.google" "block_google";
sub_filter_once off;
sub_filter_types *;
}
}
这段是给 *.pximg.example.com 所使用
注意:直接输入是没有用的 需要对所使用的域名做一个适配
写入:
在站点修改中找到配置文件项 在#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 上方加入
加入方式 如图:
保存 修改完成
访问 www.你的域名
注意 必须加上"www."不然会出现502报错
或者可以尝试将域名301重定向到www.域名
登入解决方案
其实原作者应该已经通过proxy_cookie_domain解决 但是在我这里并不生效。。。
所以我采用的登入方案是采用EditThisCookie对源站cookie进行导出替换域名实现
下载安装完后 同时开启反代站和源站 开启 EditThisCookie 将源站的信息复制到反代站中
注意需要点上绿色的锁
刷新网站,这时候就可以正常使用了
Comments NOTHING