You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker中Caddy与Nginx配置引发NS_ERROR_REDIRECT_LOOP重定向循环问题

重定向循环问题排查与解决

问题根源分析

Caddy 2默认会自动启用HTTPS,并将所有HTTP请求重定向到HTTPS。但你的后端Nginx+Angular应用无法感知外部是HTTPS请求,导致返回跳转到HTTP的响应,进而触发HTTPS↔HTTP的循环跳转。另外你的Nginx配置存在语法错误,可能加重了异常行为。

具体修复步骤

1. 修复Nginx配置的语法错误

你的nginx.conf中server_name行末尾缺少分号,这会导致Nginx启动失败或行为异常,先修正:

server_name ${HOTEL_CLIENT_NAME};

2. 修改Caddyfile,添加转发头告知后端HTTPS状态

Caddy反向代理时需要传递X-Forwarded-Proto等头,让后端知道用户实际是通过HTTPS访问的,避免后端返回HTTP重定向:

hotel.luluflu.com {
    reverse_proxy hotel-client:80 {
        header_up X-Forwarded-Proto {scheme}
        header_up X-Forwarded-For {remote_host}
        header_up X-Forwarded-Port {server_port}
    }
}

3. 检查Angular应用配置

  • 构建Angular时确保--base-href使用相对路径/或正确的HTTPS地址,不要硬编码HTTP前缀:
    ng build --base-href /
    
  • 检查应用内部的环境配置,确认没有强制跳转到HTTP的逻辑(比如environment.prod.ts中的apiUrl或baseUrl是否为HTTPS)。

4. 验证Caddy自动HTTPS状态

查看Caddy容器日志,确认SSL证书已正常申请或生成。如果是本地测试场景,可以临时添加tls internal使用自签证书:

hotel.luluflu.com {
    tls internal
    reverse_proxy hotel-client:80 {
        header_up X-Forwarded-Proto {scheme}
        header_up X-Forwarded-For {remote_host}
        header_up X-Forwarded-Port {server_port}
    }
}

内容的提问来源于stack exchange,提问作者Morty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:52:33