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

如何在Nginx Ingress中基于自定义Header实现HTTPS条件重定向?

实现Nginx Ingress条件式HTTPS重定向配置

针对你的EKS架构(用户 -> CloudFront -> ALB -> EKS Nginx Ingress),要实现CloudFront通过HTTP连接ALB,同时对非CloudFront的HTTP请求强制重定向到HTTPS,可按以下两步配置:

一、给CloudFront请求添加自定义Header

在CloudFront分发中配置自定义源请求头,标记来自CloudFront的请求:

  • 登录AWS控制台,进入目标CloudFront分发
  • 切换到Behaviors标签,编辑目标行为
  • 找到Origin Request Headers区域,点击Add Custom Header
  • 设置Header名称(例如X-CloudFront-Request)和固定值(例如true),保存更改

二、配置Nginx Ingress实现条件重定向

需要关闭全局的强制HTTPS重定向,添加基于自定义Header的条件判断规则,以下两种方式任选:

方式1:单Ingress资源配置(推荐)

修改你的Ingress YAML,通过annotations插入自定义Nginx规则:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: your-ingress-resource
  annotations:
    # 关闭默认的全局HTTPS重定向
    nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    # 插入条件重定向规则
    nginx.ingress.kubernetes.io/configuration-snippet: |
      if ($http_x_cloudfront_request != "true") {
        return 301 https://$host$request_uri;
      }
spec:
  rules:
  - host: your-domain.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: your-backend-service
            port:
              number: 80

说明:当请求不包含指定的CloudFront自定义Header时,会触发301重定向到HTTPS;来自CloudFront的请求因带Header,直接返回HTTP响应。

方式2:全局ConfigMap配置(适用于所有Ingress)

如果所有Ingress都需要此规则,可修改Nginx Ingress Controller的ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-ingress-controller
  namespace: kube-system # 根据你的Ingress Controller命名空间调整
data:
  force-ssl-redirect: "false"
  ssl-redirect: "false"
  server-snippet: |
    if ($http_x_cloudfront_request != "true") {
      return 301 https://$host$request_uri;
    }

修改后等待Ingress Controller自动重载配置即可。

验证配置

  • 直接访问ALB的HTTP端点:应被重定向到HTTPS
  • 通过CloudFront访问:请求会携带自定义Header,Nginx直接返回HTTP响应(CloudFront会将其转换为HTTPS返回给用户)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 03:36:29