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

AKS集群Nginx Ingress下Django CSRF Cookie未正常下发问题排查

解决方案

1. 新增Ingress核心注解(解决Set-Cookie透传和协议识别问题)

在你现有Ingress的metadata.annotations下添加以下配置,替换原有错误的全局rewrite规则:

# 替换原有全局rewrite-target注解,避免/api前缀被错误重写
nginx.ingress.kubernetes.io/rewrite-target: /$2
# 强制透传后端返回的Set-Cookie头到客户端
nginx.ingress.kubernetes.io/proxy-pass-headers: "Set-Cookie"
# 统一Cookie路径配置,避免路径不匹配导致浏览器拒收
nginx.ingress.kubernetes.io/session-cookie-path: /
# 传递访问协议给后端,让Django识别HTTPS请求
nginx.ingress.kubernetes.io/configuration-snippet: |
  proxy_set_header X-Forwarded-Proto $scheme;

2. 确认Django侧配套配置

确保你的Django settings.py中已经添加以下配置:

# 替换为你的实际访问域名
CSRF_COOKIE_DOMAIN = "你的Ingress绑定的域名"
CSRF_COOKIE_SECURE = True
# 允许前端JS读取CSRF Token(dj-rest-auth依赖)
CSRF_COOKIE_HTTPONLY = False
# 替换为你的前端实际访问地址,多个用逗号分隔
CSRF_TRUSTED_ORIGINS = ["https://你的Ingress绑定的域名"]
# 识别Ingress传递的HTTPS协议标识
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

3. 完整修正后的Ingress配置参考

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: basic-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod
    # 修正rewrite规则,适配前后端不同路径
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    kubernetes.io/ingress.allow-http: "true"
    # 新增透传和协议配置
    nginx.ingress.kubernetes.io/proxy-pass-headers: "Set-Cookie"
    nginx.ingress.kubernetes.io/session-cookie-path: /
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header X-Forwarded-Proto $scheme;
spec:
  tls:
  - hosts:
    - XXXXX
    secretName: tls-secret
  rules:
  - host: XXXXXXXX
    http:
      paths:
      - path: /()(.*)
        pathType: Prefix
        backend:
          service:
            name: frontend
            port:
              number: 80
      - path: /api(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: backend
            port:
              number: 8080

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:06:07