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

如何在GKE的kubernetes_ingress_v1中配置HTTP自动重定向到HTTPS

实现GKE Ingress HTTP自动重定向到HTTPS

你当前的GKE Ingress已支持HTTP和HTTPS访问,要实现HTTP请求自动重定向至HTTPS,只需在Ingress的元数据中添加特定注解,让GKE Ingress控制器处理重定向逻辑。

修改后的Terraform配置

resource "kubernetes_ingress_v1" "ingress" {
  wait_for_load_balancer = true
  metadata {
    name = "ingress"
    # 添加重定向所需的注解
    annotations = {
      # 强制将HTTP请求重定向到HTTPS
      "kubernetes.io/ingress.force-ssl-redirect" = "true"
      # 可选:若要完全禁用HTTP访问(直接拒绝而非重定向),可添加下面一行
      # "kubernetes.io/ingress.allow-http" = "false"
    }
  }
  spec {
    default_backend {
      service {
        name = kubernetes_service.frontend_service.metadata[0].name
        port {
          number = 80
        }
      }
    }
    rule {
      http {
        path {
          backend {
            service {
              name = kubernetes_service.api_service.metadata[0].name
              port {
                number = 80
              }
            }
          }
          path = "/api/*"
        }

        path {
          backend {
            service {
              name = kubernetes_service.api_service.metadata[0].name
              port {
                number = 80
              }
            }
          }
          path = "/api"
        }
      }
    }
    tls {
      secret_name = "tls-secret"
    }
  }
  depends_on = [kubernetes_secret_v1.tls-secret, kubernetes_service.frontend_service, kubernetes_service.api_service]
}

关键说明

  • kubernetes.io/ingress.force-ssl-redirect: "true":该注解会让GKE的Ingress控制器自动拦截所有HTTP请求,并返回301重定向到对应的HTTPS地址。
  • 确保你的TLS密钥tls-secret已正确配置并关联到Ingress,这是重定向生效的前提(Ingress需先支持HTTPS才能完成重定向)。
  • 若你希望直接拒绝HTTP请求而非重定向,可添加kubernetes.io/ingress.allow-http: "false"注解,但这会导致HTTP请求直接返回拒绝响应,而非重定向到HTTPS。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 05:24:17