NGINX Ingress 控制器 v5.4.0 中的 CORS 策略:适用于 VirtualServer 和 Ingress 的模式
作者:RiverSoul
时间:2026-07-27
浏览:0
从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策略的工作原理
整体流程分三步:
- 创建一个Policy资源,配置
spec.cors。 - 在定义流量时把它连上去:
- 对于VirtualServer,通过
spec.policies(也可以在路由/分流策略级别覆盖)。 - 对于Ingress,通过
nginx.org/policies注释。
- 对于VirtualServer,通过
- 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时,只使用显性来源(不要用*)。
作者最新文章
微软推出Project Zenith:面向Windows 11开发者的AI硬件加速方案
2026-09-08 18:15
打破流量垄断,让平台经济释放普惠红利
2026-09-08 18:07
Arm AGI CPU详解:136核Neoverse V3,3nm双芯粒架构与AI数据中心部署
2026-09-08 17:18
Windows安装Docker教程:启用WSL2并运行第一个容器验证
2026-09-04 09:26
PDF转Word操作指南:在线与本地转换方法及格式检查
2026-09-03 16:03
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































