记一次使用又拍云 CDN 出现无限重定向问题
- 陈大剩
- 2025-08-29 23:50:29
- 12
问题现象
在为博客部署又拍云 CDN 后遇到了一个诡异问题:网站无法正常访问,浏览器提示”重定向次数过多”错误。
通过开发者工具调试发现,问题的根源是 favicon.ico
文件陷入了无限重定向循环。奇怪的是,只有这个文件出现问题,其他页面和资源都能正常访问。
排查过程
查看访问日志
通过查看服务器访问日志发现,favicon.ico
持续产生 301 重定向响应,但初步无法确定具体原因。
尝试禁用 CDN 缓存
怀疑是又拍云 CDN 缓存机制导致的问题,于是将 favicon.ico
添加到 CDN 的不缓存规则中。然而设置完成后,重定向问题依然存在。
清除浏览器缓存
CDN 设置无效后,尝试清除浏览器中 301 永久重定向的缓存。清除缓存后问题仍然存在,使用其他设备访问也出现相同现象,说明问题并非出在本地缓存。
禁用强制 HTTPS 重定向
考虑到服务器开启了强制 HTTPS 访问功能,怀疑可能是 HTTPS 重定向机制引起的循环。在宝塔面板中关闭强制 HTTPS 访问后,重定向问题消失,这表明问题确实与 HTTPS 重定向有关。
问题根因分析
既然关闭强制 HTTPS 访问能够解决重定向问题,说明问题确实与 HTTPS 重定向机制有关。
但这里有个疑点:为什么只有 https://www.it927.com/favicon.ico
会出现问题?明明访问的也是 HTTPS 协议的 URL。
联系技术支持
由于自行排查陷入困境,决定联系又拍云技术支持。经过客服半小时的深入排查,终于找到了问题的真正原因:自动 WebP 作图功能。
虽然客服没有告诉我具体原因,我猜测可能原因如下:
- 又拍云的自动 WebP 作图功能在处理图片时,会通过 HTTP(80端口) 回源获取原始文件
- 服务器检测到 HTTP 请求后,触发强制 HTTPS 重定向,返回 301 状态码
- 又拍云收到 301 响应后,按照重定向指令再次请求,但仍然使用 HTTP 协议
- 形成无限循环:HTTP 请求 → 301 重定向 → HTTP 请求 → 301 重定向…
总结
这次问题排查虽然耗时较长,但收获颇丰,同时在使用又拍云 CDN 时,我遇到过许多坑,也探索了很多新奇的玩法,后续有时间和大家专程说说。
好在又拍云 CDN 是白嫖的,那还要啥自行车呢?希望这次排查经验能帮助遇到类似问题的开发者快速定位和解决问题。