办公室公网 IPv4 已写入 var/.maintenance.ip,同一台电脑通过公司网络访问仍是 503。查看 Nginx 日志才发现,请求实际以 IPv6 到达源站。

先确认 Magento 看到的地址

tail -f /var/log/nginx/access.log
cat var/.maintenance.ip
bin/magento maintenance:status

不要照抄“查询 IP”网站的结果。站点经过 CDN 或负载均衡时,源站可能看到代理地址;双栈网络还会优先使用 IPv6。白名单中的 203.0.113.10 与 ::ffff:203.0.113.10 也不是同一个字符串。

处理顺序

  1. 从站点访问日志确认真实客户端地址;
  2. 让受信代理正确覆盖真实地址 Header,不能信任任意来源;
  3. 用 bin/magento maintenance:allow-ips 地址 写入;
  4. 分别用 IPv4、IPv6 和手机网络复测。

如果运维层也配置了维护页,Magento 的白名单不会越过 Nginx 或 CDN 的拦截。此时应先判断 503 由哪一层返回,再改对应规则。