当前位置:

首页 > 硬件相关 > NGINX Ingress 控制器 v5.4.0 中的 CORS 策略:适用于 VirtualServer 和 Ingress 的模式

NGINX Ingress 控制器 v5.4.0 中的 CORS 策略:适用于 VirtualServer 和 Ingress 的模式

本文目录

    从NGINXIngress控制器v5.4.0起,CORS行为可通过Policy资源统一定义,再复用至VirtualServer和Ingress。创建含spec.cors的Policy后,通过spec.policies或nginx.org/policies注释关联,确保配置一致、可跨服务复用,且CORS逻辑与路由隔离,便于审核维护。

    从NGINX Ingress控制器v5.4.0开始,CORS行为可以通过Policy资源统一定义,然后复用在VirtualServer和Ingress上。简单来说,就是先创建一个包含spec.cors的Policy,再通过spec.policies或nginx.org/policies注释把它关联到流量资源上。

    从NGINX Ingress控制器(NIC)v5.4.0起,你可以在Policy资源中一次性定义CORS行为,然后应用到VirtualServer和Ingress两种流量路径上。

    本文重点介绍:

    • NGINX Ingress控制器中CORS策略的工作原理。
    • 如何在VirtualServer和Ingress上配置使用。

    为什么要使用CORS政策?

    很多团队一开始都是每个资源单独配置CORS,结果很快就发现配置不一致、难以维护。用专门的Policy来管理CORS,好处很明显:

    • 允许的源、方法、头部有了单一的真实来源,不会出现口径不一的问题。
    • 跨服务和命名空间可以重复使用,省去重复劳动。
    • 审核更清晰,CORS行为与路由逻辑完全隔离,改动时不用担心误伤。

    NGINX Ingress控制器中CORS策略的工作原理

    整体流程分三步:

    1. 创建一个Policy资源,配置spec.cors。
    2. 在定义流量时把它连上去:
      • 对于VirtualServer,通过spec.policies(也可以在路由/分流策略级别覆盖)。
      • 对于Ingress,通过nginx.org/policies注释。
    3. NGINX Ingress控制器自动渲染出对应的NGINX CORS配置,为预检请求和实际跨域请求返回正确的头部。

    CORS政策示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    apiVersion: k8s.nginx.org/v1
    kind: Policy
    metadata:
    name: cors-policy
    spec:
    cors:
    allowOrigin:
    - https://app.example.com
    allowMethods:
    - GET
    - POST
    - PUT
    - OPTIONS
    allowHeaders:
    - Content-Type
    - Authorization
    - X-Requested-With
    exposeHeaders:
    - X-Total-Count
    - X-Page-Size
    allowCredentials: true
    maxAge: 86400

    引用CORS政策的VirtualServer示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    apiVersion: k8s.nginx.org/v1
    kind: VirtualServer
    metadata:
    name: webapp
    spec:
    host: webapp.example.com
    policies:
    - name: cors-policy
    upstreams:
    - name: webapp
    service: webapp-svc
    port: 80
    routes:
    - path: /test
    action:
    pass: webapp

    CORS政策在Ingress下的引用示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: cafe-ingress
    annotations:
    nginx.org/policies: "cors-policy"
    spec:
    ingressClassName: nginx
    rules:
    - host: cafe.example.com
    http:
    paths:
    - path: /tea
    pathType: Prefix
    backend:
    service:
    name: tea-svc
    port:
    number: 80

    需要记住的重要行为:

    • CORS政策可以同时作用于VirtualServer和Ingress。
    • 在VirtualServer中,路由/分流策略级别的policy会覆盖规范级别的同类型policy。
    • 如果使用了allowCredentials: true,那么allowOrigin必须明确指定具体的源,不能使用通配符*。

    预防大多数问题的生产检查

    上线前,务必验证以下几点:

    • 对于未允许的源,不应返回Access-Control-Allow-Origin头部。
    • 当allowCredentials: true时,只使用显性来源(不要用*)。
    本文内容来源于网友投稿,如有侵权请联系删除。
    作者最新文章
    硬件相关
    相关文章 更多
    笔记本加内存条后无法开机怎么办及解决方法
    笔记本加内存条后无法开机怎么办及解决方法

    笔记本加装新内存后遇到黑屏或无法开机?不要慌张,本文通过重新插拔、清洁金手指、单根测试等具体操作步骤,帮你快速判断是安装失误还是硬件不兼容,并给出相应解决办法。

    电脑主机前置usb不能用怎么解决排查修复教程
    电脑主机前置usb不能用怎么解决排查修复教程

    针对电脑主机前置USB接口无法识别设备的问题,本文提供一套基于因果逻辑的排查流程。涵盖检查机箱内部USB针脚连接、验证BIOS中USB控制器状态、更新芯片组驱动以及排除供电不足等常见原因,帮助用户快速恢复接口功能。

    无线鼠标充不进电解决办法及故障排查步骤
    无线鼠标充不进电解决办法及故障排查步骤

    遇到无线鼠标充不进电的问题,不要急于更换设备。本文详解从清理接口氧化层、更换数据线到检测电池电压的完整排查流程,帮助你判断是临时故障还是硬件损坏。

    蓝牙游戏手柄连接教程吃鸡
    蓝牙游戏手柄连接教程吃鸡

    想知道如何用蓝牙手柄玩吃鸡游戏?本文详细讲解手机蓝牙手柄的连接步骤、主流映射软件的使用方法以及实战中的键位布局技巧,助你提升射击手感,同时解析外设玩家的匹配机制与注意事项。

    游戏手柄蓝牙连接为何每次都要重连原因排查与解决方法
    游戏手柄蓝牙连接为何每次都要重连原因排查与解决方法

    本文深入分析游戏手柄蓝牙频繁断开且需重连的根本原因,涵盖电池电压检测、操作系统电源管理策略及驱动冲突。通过具体的系统设置调整和固件更新步骤,解决蓝牙握手失败问题,恢复手柄的稳定连接状态。

    显示器画面模糊抖动怎么解决及排查方法教程
    显示器画面模糊抖动怎么解决及排查方法教程

    遇到显示器画面模糊或抖动时,可通过检查视频连接线、调整系统分辨率与刷新率、更新显卡驱动等步骤进行排查和修复。

    小米智能门锁换电池后怎么开机
    小米智能门锁换电池后怎么开机

    小米智能门锁更换新电池后无法开机或屏幕不亮?本文详解电池极性检查、金属触点清洁及强制重启方法,帮你快速解决供电问题,让门锁恢复正常使用。

    电视机声音怎么连接到外置音响
    电视机声音怎么连接到外置音响

    想让电视声音更震撼?本文详解如何通过HDMI ARC、光纤、蓝牙和3.5mm接口将电视连接至外置音响,包含具体设置步骤与常见问题排查,助你轻松打造家庭影院。

    打印机加墨水后打印不出颜色的原因及解决方法
    打印机加墨水后打印不出颜色的原因及解决方法

    解决打印机加墨水后打印无色的问题,涵盖墨盒芯片计数器重置、喷头气锁排除方法以及驱动程序颜色设置检查,帮助用户快速恢复彩色打印功能。

    显示器无信号但主机正常工作原因排查与解决方法
    显示器无信号但主机正常工作原因排查与解决方法

    面对主机运转正常但显示器无信号的困境,本文通过场景化分析,指导用户从线缆检查、输入源切换、内存金手指清洁到显卡重新插拔,逐步排除故障,恢复显示。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    macOS软件
    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    Mac软件 更多
    photoshop
    photoshop
    Windows、macOS 、 iPad

    Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

    Blender
    Blender
    Windows、macOS 和 Linux

    Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

    灵活计算器
    灵活计算器
    macOS/iOS/Android

    灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

    WINDOWS 更多
    3dmax(3ds max)
    3dmax(3ds max)
    Windows

    Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

    photoshop
    photoshop
    Windows、macOS 、 iPad

    Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

    Blender
    Blender
    Windows、macOS 和 Linux

    Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。