结合Cloudflare DNS代理使用Google Cloud负载均衡时的重定向问题求助
解决Cloudflare+GCP负载均衡部署React应用的重定向循环问题
核心原因分析
- Cloudflare开启代理后,HTTP→HTTPS的重定向规则与GCP负载均衡的同类规则冲突,形成循环重定向
- 404页面的重定向问题源于React单页应用的路由特性,和GCS存储桶默认404行为不匹配,叠加重定向规则后触发异常
分步解决方案
1. 统一HTTPS重定向逻辑(解决Cloudflare代理后的循环)
- 将Cloudflare的SSL/TLS加密模式设为「严格」,保证端到端HTTPS链路
- 关闭GCP负载均衡中配置的HTTP到HTTPS重定向规则:
- 进入GCP负载均衡控制台,找到目标HTTP(S)负载均衡器
- 删除HTTP转发规则内的重定向配置
- 在Cloudflare的「规则」→「页面规则」中添加规则:
- 匹配URL:
*your-domain.com/* - 开启「始终使用HTTPS」选项
- 匹配URL:
2. 修复404页面的重定向异常(无论是否开启Cloudflare代理)
- 配置GCS存储桶的自定义404页面:
- 进入GCS控制台,找到对应存储桶的「网站配置」
- 将「404页面」设置为
index.html(React单页应用所有路由需指向入口文件)
- 调整GCP负载均衡的后端路径规则:
- 确保负载均衡后端服务指向GCS存储桶时,所有路径都转发到
index.html - 验证负载均衡服务账号拥有存储桶对象的访问权限
- 确保负载均衡后端服务指向GCS存储桶时,所有路径都转发到
3. 额外排查动作
- 检查Cloudflare「缓存规则」,确认无导致重定向的误配置
- 清除浏览器缓存及Cloudflare全局缓存(控制台「缓存」→「清除缓存」→「清除全部」)
- 确认DNS记录:开启代理时显示橙色云朵,关闭时为灰色,且记录指向GCP负载均衡的公网IP
内容的提问来源于stack exchange,提问作者Anay
相关产品推荐
相关产品推荐

