K8S跨域CORS: Access-Control-Allow-Origin multiple values问题解决方案

1. 背景介绍

按照云服务器以域名形式访问机房Kubernetes集群服务之解决方案-优快云博客

部署的k8s平台

2. CORS报错

/app/chart-view/1.0.1/index.html#/chart/home/1953010081653735426:1 Access to XMLHttpRequest at 'https://hao-test.lmzf.com/zy/proxy/open-api/hunan/medianode/queryMaintainIndicator?indicator=FAULTY_DEVICE&startDate=2025-08-01&endDate=2025-08-04' from origin 'https://day-test.lmzf.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

3. 解决方案

3.1 nginx代理配置

注意:不需要添加如下配置项:

        add_header 'Access-Control-Allow-Origin'  'https://*.lmzf.com';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Content-Type';

3.1.1 nginx转发完整配置文件如下:

server {
    listen 443 ssl;
    server_name hao-test.lmzf.com;

    ssl_certificate    /etc/nginx/ssl/lmzf.com.pem;
    ssl_certificate_key   /etc/nginx/ssl/lmzf.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;


    location / {
        proxy_pass https://2.2.2.2:32532;  # 指向Kubesphere网关的节点端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

3.2 应用路由配置

3.2.1 新增配置项入口【编辑yaml】

3.2.2 新增配置项

  nginx.ingress.kubernetes.io/enable-cors: 'true'
  nginx.ingress.kubernetes.io/cors-allow-origin: 'https://*.lmzf.com'

3.2.3 应用路由Ingress完整文件如下

kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: hao-test
  namespace: lmzf
  creationTimestamp: '2025-08-12T12:41:05Z'
  annotations:
    kubesphere.io/alias-name: 页面网关
    kubesphere.io/creator: admin
    nginx.ingress.kubernetes.io/cors-allow-methods: 'GET, POST, OPTIONS'
    nginx.ingress.kubernetes.io/enable-cors: 'true'
    nginx.ingress.kubernetes.io/cors-allow-origin: 'https://*.lmzf.com'
    nginx.ingress.kubernetes.io/proxy-body-size: 50m
    nginx.ingress.kubernetes.io/proxy-connect-timeout: 300s
    nginx.ingress.kubernetes.io/proxy-pass-headers: Authorization
    nginx.ingress.kubernetes.io/proxy-read-timeout: 300s
    nginx.ingress.kubernetes.io/proxy-send-timeout: 300s
spec:
  ingressClassName: kubesphere-router-cluster
  tls:
    - hosts:
        - hao-test.lmzf.com
      secretName: hao-test.lmzf.com
  rules:
    - host: hao-test.lmzf.com
      http:
        paths:
          - path: /
            pathType: ImplementationSpecific
            backend:
              service:
                name: gateway-biz
                port:
                  number: 8088

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值