curl -sI http://example.com/ | grep -i location curl -sI -H 'X-Forwarded-Proto: http' https://example.com/
浏览器直接提示重定向次数过多,抓包能看到 http 先跳到 https 又被弹回 http,来回十几次之后页面就彻底打不开了。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:CDN 回源固定走 80 端口,源站这边又强制 HTTPS,两边都把对方的请求当成 http 处理,跳转就在边缘节点和源站之间来回弹,谁都停不下来这个循环。
这次卡住的地方就在「HTTPS 跳转死循环」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
处理上按这个顺序:先用 curl 不带跟随参数请求一次,确认这次跳转到底是 CDN 边缘发出的还是源站发出的;把回源协议改成 HTTPS 并跟随 443,别让边缘节点继续用 80 端口回源;源站读取 X-Forwarded-Proto 判断一次,已经走 https 的请求直接放行别再跳。
确认没问题再收工,curl 跟随后只出现一次 301,浏览器能正常落到 https 页面,整个流程不再来回循环。
