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

K8s用Ingress Nginx部署Ghost博客出现too many redirects错误如何解决?

问题根因

你遇到的重定向死循环是两层反向代理的协议识别逻辑冲突导致的:

  • 外层Nginx已经完成SSL卸载,将HTTPS请求转为HTTP请求发往K8s集群内的Ingress Nginx
  • 默认配置下Ingress Nginx不信任外层代理传过来的X-Forwarded-Proto头,会判断当前请求是HTTP协议,自动触发跳转到HTTPS地址的逻辑
  • 跳转后的请求再次走外层Nginx转HTTP进集群,循环往复就触发了too many redirects错误
修复方案

1. 修改Ingress配置增加注解

在Ingress的metadata.annotations段增加以下两个配置,关闭Ingress侧的自动SSL跳转,同时开启对外层代理头的信任:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-blog
  annotations:
    # 关闭Ingress侧的HTTP自动跳HTTPS,跳转逻辑已经在外层Nginx实现
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    # 信任外层代理传递的X-Forwarded-*头,正确识别原始请求协议
    nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
spec:
  rules:
  - host: my-blog.com
    http:
      paths:
      - backend:
          service:
            name: my-blog
            port:
              number: 2368
        path: /
        pathType: Prefix

2. 可选补充配置

如果修改Ingress后仍然有问题,可以在Ghost的Deployment环境变量中增加NODE_ENV=production,确保Ghost正确读取代理传递的协议头判断请求来源,你当前配置的url: https://my-blog.com是正确的,不需要修改。

3. 外层Nginx配置无需改动

你当前外层Nginx已经配置了proxy_set_header X-Forwarded-Proto https;,头传递逻辑正确,不需要调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:57:04