上一篇 下一篇 分享链接 返回 返回顶部

1Panel防盗链配置:放行微信支付宝回调

发布人: 发布时间:22小时前 阅读量:14

为什么防盗链会影响微信支付宝回调?

网站启用防盗链后,服务器会检查HTTP请求中的Referer字段,拒绝来自非白名单域名的请求。但微信支付宝回调属于服务器间通信,通常不携带Referer或Referer为最终用户页面,若防盗链规则过严,会导致支付结果无法正常通知,出现订单状态不更新等问题。

在1Panel中设置防盗链白名单

1Panel提供图形化站点管理,可在Nginx配置中自定义防盗链规则。以下为通用配置步骤,具体路径可能因版本略有差异。

1. 进入站点配置文件

在1Panel控制台,找到目标网站,进入站点配置文件,编辑对应server块或location块。

2. 添加valid_referers规则

在location内加入以下内容:

location ~* \.(gif|jpg|png|css|js|png|webp)$ {
    valid_referers none blocked server_names
                  yourdomain.com
                  wx.qq.com
                  alipay.com
                  *.alipay.com;
    if ($invalid_referer) {
        return 403;
    }
}

重点说明

  • none:允许不携带Referer的请求(微信支付回调通常为空)。
  • blocked:允许被代理修改后无标准Referer的请求。
  • server_names:允许本机域名。
  • 添加wx.qq.comalipay.com及其子域名,确保微信和支付宝回调来源被识别为合法。

3. 仅限制静态资源,避免影响API

支付回调地址往往指向php、jsp、do等动态接口,建议将防盗链作用域限制在图片、CSS、JS等静态文件,而不要对所有URL启用,否则可能误伤回调接口。

使用1Panel的防盗链插件/扩展

若1Panel已提供防盗链插件(视安装版本而定),可直接在插件设置中将微信、支付宝域名加入信任列表。填写时注意:

  • 域名不要带协议,例如alipay.com,无需填写https://
  • 如有多个回调域名,可分别添加。
  • 开启“允许空Referer”选项,以兼容服务器回调。

配置完成后如何验证?

  1. 使用浏览器访问站点静态资源,确认正常显示。
  2. 检查1Panel的Nginx错误日志,看是否有403记录。
  3. 使用Curl模拟无Referer请求:
    curl -I -H 'Referer:' 你的资源链接
    若返回200则配置成功。
  4. 尝试发起一笔小额支付,确认回调日志被服务器接收。

注意事项

  • 不要将微信支付回调IP段强行加入IP白名单,IP可能变动,域名白名单更可靠。
  • 如果你的网站使用CDN或反向代理,需确保Nginx能拿到原始Host和Referer,必要时配置set_real_ip_from
  • 修改配置后,务必在1Panel中重载Nginx使规则生效。

合理配置防盗链既能防止资源盗用,又不影响支付回调,是保障业务连续性的关键一步。建议在变更后持续观察支付订单状态,直至确认所有回调均正常处理。

目录结构
全文
企业微信 企业微信
微信公众号 微信公众号
服务热线: 400-790-1688
电子邮箱: 3310008520@qq.com