站点接入负载均衡后,浏览器提示重定向次数过多。外层访问明明是 HTTPS,源站却一直收到 HTTP,于是 Magento 每次都重定向到 HTTPS;代理再以 HTTP 回源,循环就形成了。
先用响应头画出循环
curl -I https://shop.example.com/
curl -IL --max-redirs 10 https://shop.example.com/记录每次 Location、主机名和协议。如果在 www 与裸域之间来回,查 canonical host;同一 URL 不断 301/302,查协议识别与 Cookie。不要一开始就关闭所有 HTTPS 强制设置。
外层代理要明确传递原始协议
负载均衡或 nginx 通常通过 X-Forwarded-Proto 告诉应用客户端使用 HTTPS。源站与 Magento 必须信任正确的头,而且只能信任受控代理来源,避免客户端伪造。
同时检查 secure/unsecure Base URL、Use Secure URLs 与 offloader header。多层代理每层追加或覆盖头的方式要一致,否则某些节点识别 HTTPS、某些识别 HTTP,会随机循环。
缓存可能继续保存错误重定向
CDN 或 Varnish 缓存 301 后,即使源站修好,外部仍可能循环。先绕过缓存验证源站,再精确清理错误对象。浏览器也会长期记忆 301,测试时用 curl 更可靠。
修复后验证首页、后台、登录、静态资源和支付回跳,确认 Location 始终使用预期域名和 HTTPS。Base URL 与 nginx 不是二选一:代理传递事实,Magento 使用事实,两边必须一致。

