前言

本教程根据 神代綺凜 的文章 Nginx 真·反代P站 恢复直接访问 加之我的个人理解改编。

本教程通过使用宝塔面板部署以达到简化步骤的目的,并补充了一些实践中发现细节。

正文

配置示例

在这里展示出我配置时的环境示例
仅供参考

域名:

  • *.pxing.test.qixiv.tk
  • *.test.qixiv.tk

服务器环境:
centos 7_64 bit
宝塔版本号6.8.9

友情提示

关于服务器:

首先,你的服务器必须在国外!尽管我想推荐初学者使用 vultr 的 vps ,但需要注意的是,pixiv 似乎屏蔽了 vultr 所有以 45.* 开头的IP地址。此外,如果你有公开镜像的意向,为了防止 pixiv 律师函警告,你可能需要选择抗投诉服务器。

关于域名:

就我个人观点而言,域名随意,如果你没有,那可以用 freenom 的免费域名将就一下,也不是问题,但由于 freenom 自带的 DNS 服务对泛解析的支持不太良好,你可能需要另行更换 DNS服务商。

事前准备

在一切开始之前,你需要准备好一个域名,以及一台装有宝塔面板的服务器。我们假设你已经知道怎么获取这些东西,如果你不知道,请自行百度。

解析你的域名

需要使用哪些域?

在反代时我们需要用到以下几个域

如果你愿意使用一个船新域名专门反代:

example.com
*.example.com 
*.pximg.example.com
  • example.com
    随意,你可以放点自己的东西做一些伪装或者说明,或者直接 301 到 www.example.com
  • *.example.com
    用于反代对齐*.pixiv.net
  • *.pximg.example.com
    用于反代对齐*.pximg.net,其实该域名中的pximg也可以替换成其他的字符串,只要不与P站的二级域名服务产生冲突即可

如果你想用一个自己正在使用的域名反代并且不想影响该域名的其他服务:

pixiv.example.com 
*.pixiv.example.com 
*.pximg.example.com

各自作用同上,在后续配置上灵性修改即可

修改配置文件

在进行服务器上的操作之前,我们先要在本地进行一些处理。

有两段 nginx 的配置文件需要被预先修改一下。我们需要将其中的示例域名替换为自己的域名。

第一段是给 *.example.com 用的

    server_name ~^([^.]+)\.example\.com$;

    set $domain $1;

    resolver 8.8.8.8;

    location ~ .*
    {
        proxy_set_header Host $domain.pixiv.net;
        proxy_cookie_domain pixiv.net example.com;
        proxy_pass https://$domain.pixiv.net;
        proxy_set_header Accept-Encoding "";

        sub_filter "pixiv.net" "example.com";
        sub_filter "pximg.net" "pximg.example.com";
        sub_filter_once off;
        sub_filter_types *;
    }

第二段是给 *.pximg.example.com 用的

    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_set_header Accept-Encoding "";

        sub_filter "pixiv.net" "example.com";
        sub_filter "pximg.net" "pximg.example.com";
        sub_filter_once off;
        sub_filter_types *;
    }

新建站点

接下来,在宝塔面板里新建两个站点,同样依照以下格式替换你的域名。之所以不只添加泛解析域名,是因为...宝塔不让。

第一个站点:

example.com
*example.com

第一个站点的图片示例(仅供参考)

2019-09-24_133137.png

第二个站点:

pximg.example.com
*.pximg.example.com

第二个站点的图片示例(仅供参考)

2019-09-24_1330538.jpg

新建完之后的效果(仅供参考)

2019-09-24_133055.png

申请泛域名ssl证书

依次用宝塔的 ssl 申请功能申请泛域名的 ssl 证书。
进入宝塔的 lets encrypt 免费 ssl 证书申请界面。
首先勾选 DNS 验证,勾选泛解析域名,选择手动解析,然后点击开始申请,根据弹窗,前往你的 DNS 供应商处添加一条 TXT 记录(注意:再次期间不要关闭网页),等待数分钟确保解析生效后,方可点击确认按钮完成证书申请。

两个站点的 SSL 设置完之后的效果(仅供参考)

2019-09-24_133212_1.png

2019-09-24_13330 _1.png

修改nginx配置文件

最后,我们需要修改nginx的配置文件,将上面的两段配置文件分别配置入两个站点中。

第一步,替换原本配置文件中以 server_name 开头的那一行为你修改完毕后的配置文件中的以 server_name 开头的那一行。

第二步,将除了以 server_name 开头的那一行之外的剩下的文本插入原有配置文件的
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 这一行的上方,请注意,这个位置很重要,不要弄错了。

直接文字描述可能不是很好理解,所以在这里给出两个站点配置文件的示例,需要修改的部分已经黄色高亮标出。
因为是截图出自是我自己的配置文件,所以直接把代码抄过去是没用的,记得按照上面的教程进行修改哦!!!

pximgtestqixivtk.png

testqixivtk.png

修改完毕,保存。

访问 www.你的反代域名

注意:要加 “www.” 不然会502报错

注意2:在使用反代登录PIXIV账号时可能出现“需要网站所有者处理的错误:网站密钥的网域无效”的情况,在此给出原教程博主 神代綺凜 的解答

2019-09-24_141755.png

开始享受直连 p 站的喜悦吧。

最后修改:2020 年 09 月 30 日 08 : 31 PM