发布于2026-07-27 阅读(0)
扫一扫,手机访问
从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两种流量路径上。
本文重点介绍:
很多团队一开始都是每个资源单独配置CORS,结果很快就发现配置不一致、难以维护。用专门的Policy来管理CORS,好处很明显:
整体流程分三步:
spec.cors。spec.policies(也可以在路由/分流策略级别覆盖)。nginx.org/policies注释。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
|
需要记住的重要行为:
allowCredentials: true,那么allowOrigin必须明确指定具体的源,不能使用通配符*。上线前,务必验证以下几点:
Access-Control-Allow-Origin头部。allowCredentials: true时,只使用显性来源(不要用*)。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9