Nginx配置修改后出现too many redirects错误 求排查思路
问题根因
你当前的配置存在明确的循环重定向逻辑:
- 80端口的server块会将所有
cigars-rec.com的HTTP请求301跳转到同路径的HTTPS地址 - 443端口的server块处理HTTPS请求时,根路径
location /的proxy_pass配置为http://cigars-rec.com,相当于又把请求转回了当前域名的80端口 - 两步逻辑形成死循环,自然触发
too many redirects错误
修复方案
你已经提前定义了指向业务服务的upstream规则,直接修改443 server块下的根路径代理配置即可:
# 原错误配置注释 # proxy_pass http://cigars-rec.com; # 修改为如下配置 proxy_pass http://cr2-cigar-recommender;
修改后执行nginx -s reload重载配置即可生效。
通用重定向问题排查建议
- 本地测试重定向链路可以使用
curl -I https://cigars-rec.com命令,直观查看每一步的跳转地址和状态码,快速定位循环节点 - 代理场景下如果后端服务也配置了HTTPS跳转规则,需要添加
X-Forwarded-Proto头告知后端当前请求的协议,避免后端强制跳转HTTPS导致循环,配置示例:proxy_set_header X-Forwarded-Proto $scheme; - 排查时优先清理本地浏览器缓存,301跳转属于永久缓存,避免缓存的旧跳转逻辑干扰排查结果
内容的提问来源于stack exchange,提问作者chefnewman
相关产品推荐
相关产品推荐

