前言:为什么选择Nginx?

目前,现有的方案中最流行的是Cloudflare Worker反代pixiv的i.pximg.net。这个方法是很好,但是woker的请求还是有限的(虽然每日10w次的请求个人使用其实绰绰有余了),而且容易出现pixiv找上门然后被封号的问题,因此把这种重要的资源掌握在自己手里还是非常有必要的。然后为什么是nginx?因为好用,而且也有现成的方案。其中应用最早且最流行的是“Mashiro”白猫大佬的nginx反代pixiv工具,但是本篇nginx反代和白猫大佬的反代项目无关,这里只是给大家讲一个现状以及市面上的好用案例。

第一步:准备一个能够顺利连上pixiv的服务器

这步看起来像是废话但是却非常关键。最好的办法就是服务器肉身离境,或者就使用“魔法”,亦或是使用白猫大佬的项目然后再想办法修改nginx的config。“幻梦”这边就直接使用魔法了。

第二步:进入你的1panel面板

标题已经写了,这个是使用1panel面板部署nginx反代,我都看到宝塔面板的反代教程了(虽然那个教程是全局反代,而且因为pixiv的升级已经过期了)我们1panel什么时候才能站起来。

确定应用商店中安装好了Openresty

  1. 在网站中创建一个反代服务,主域名后面可以更具需求添加端口号如:example.com:8848

  2. 协议选https ,代理地址为i.pximg.net

  3. 确定保存

  1. 为你的反代域名申请一个ssl证书

  2. 主域名填刚刚反代服务写的主域名,如example.com

  3. acme账户省事就选Let's Encrypt

  4. 验证方式选择dns,dns账号更具你的dns解析服务商提供的API进行填写

  5. 勾选自动续签

  6. 勾选跳过DNS校验

  7. 确认,等待完成证书完成申请

  1. 网站选项卡点击刚刚部署的网站example.com

  2. 选择HTTPS,启用https。

  3. ssl选项选择已有证书,acme账户选择刚刚申请的Let's Encrypt账户或者别的账户

  4. 证书选择刚刚申请的证书

  5. 保存

  1. 继续选择反向代理

  2. 点击编辑

  3. 开启缓存

  4. 开启回源SNI

  5. proxy_ssl_name 填写i.pximg.net

  6. 后端代理地址选择https 填写i.pximg.net (默认情况下已填好),后端域名填写i.pximg.net

  7. 确定

  1. 先不要走,还是反向代理的选项内,点击源文

  2. 增加一条proxy_set_header Referer "https://www.pixiv.net/";

  3. 最后源文大致如下

location ^~ / {
    proxy_pass https://i.pximg.net; 
    proxy_set_header Host i.pximg.net; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection $http_connection; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_set_header X-Forwarded-Port $server_port; 
    proxy_set_header Referer "https://www.pixiv.net/";
    proxy_http_version 1.1; 
    add_header X-Cache $upstream_cache_status; 
    proxy_ssl_server_name on; 
    proxy_ssl_name i.pximg.net; 
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" ) {
        expires 1m; 
    }
    proxy_ignore_headers Set-Cookie Cache-Control expires; 
    proxy_cache proxy_cache_panel; 
    proxy_cache_key $host$uri$is_args$args; 
    proxy_cache_valid 200 304 301 302 10m; 
    add_header Strict-Transport-Security "max-age=31536000"; 
}
  1. 到这里还没有结束,1.0版本的1panel有一个bug,非默认443端口情况下在配置文件内不会在端口号后自动添加ssl。此时访问必定是打不开的。

  2. 点击配置文件

  3. listen 端口号 后面添加ssl

  4. 保存并重载

第三步:验证你的服务

  1. 访问你的域名如:example.com:8848

  2. 如果出现imgaz.pixiv.net 的文字基本上就说明大功告成了。

  3. 来随便找一张图试试吧。在你的域名后添加/img-original/img/2025/07/10/12/00/03/132525075_p0.jpghttps://example.com:8848/img-original/img/2025/07/10/12/00/03/132525075_p0.jpg

  4. 如果顺利打开就说明没有问题,打开很慢或者打不开,请检查能否顺利访问pixiv.net

  5. 如果出现421错误,请检查反向代理中是否开启SNI回源,以及proxy_ssl_name是否填写正确。

  6. 如果出现403错误,请检查反向代理源文中是否添加proxy_set_header Referer "https://www.pixiv.net/"; 并且顺利保存重载。

成果展示

之后想要不被其他人使用可以开启防盗链功能,顺便还可以套一个cdn。

接下来怎么用就看各位的创意了。