Nginx子域名portal.therohankumar.com重定向过多问题求助
子域名重定向过多问题排查方案
核心排查方向
1. 先检查Cloudflare的SSL/TLS模式
这是重定向循环最常见的诱因:
- 登录Cloudflare后台,进入域名的「SSL/TLS」→「概述」页面
- 确保模式设置为Full或Full (strict),绝对不能用「Flexible」
- 「Flexible」模式下,Cloudflare和你的服务器之间用HTTP通信,但你的Nginx 80端口会强制把所有HTTP请求跳转到HTTPS,直接形成循环:用户→Cloudflare(HTTPS)→服务器(HTTP)→Nginx跳HTTPS→Cloudflare(HTTPS)→服务器(HTTP)...无限往复
2. 检查GoCD服务器的重定向配置
GoCD自身的HTTPS强制规则可能和Nginx冲突:
- 找到GoCD的
server.properties配置文件(通常在/etc/go-server/或GoCD安装目录下) - 添加或修改以下配置,让GoCD信任Nginx传递的
X-Forwarded-Proto头,识别外部已经是HTTPS请求:server.use_ssl=false server.secure=true server.xforwarded=true - 重启GoCD服务,让配置生效
3. 清理缓存并测试
- 用浏览器无痕模式访问子域名,避免旧缓存的重定向规则干扰
- 用curl命令查看重定向链,确认循环点:
如果输出里反复出现curl -v https://portal.therohankumar.com301 Moved Permanently,且跳转目标在HTTP和HTTPS之间切换,就说明是SSL模式或GoCD配置的问题
4. 验证SSL证书覆盖范围
你的子域名用的是主域名的证书,需要确认证书是**通配符证书(*.therohankumar.com)**或者包含portal.therohankumar.com的SAN证书。如果证书不包含子域名,Cloudflare会终止SSL连接,间接导致重定向异常。可以用以下命令查看证书信息:
openssl s_client -connect portal.therohankumar.com:443
5. 临时排查HSTS影响
主域名配置了Strict-Transport-Security且包含includeSubDomains,会强制所有子域名使用HTTPS。如果之前子域名的HTTPS配置有问题,浏览器缓存的HSTS规则可能导致异常:
- 临时注释主域名Nginx配置里的HSTS头:
# add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; - 重启Nginx,用无痕模式测试子域名,正常后再恢复HSTS配置(记得重启Nginx)
内容的提问来源于stack exchange,提问作者Rohan Kumar
相关产品推荐
相关产品推荐

