例如
- host: "domain.com"
http:
paths:
- path: /?(.*) # want to rewrite this with /$1
backend:
serviceName: RELEASE-NAME-svcname1
servicePort: 80
- path: /test/?(.*) # want to skip rewrite
backend:
serviceName: RELEASE-NAME-svcname2
servicePort: 80
有什么方法可以在一个入口中处理这个问题吗?
有没有办法在单个入口中处理这一问题?
不是在单个入口资源中,不是,但它可以与单个入口控制器一起正常工作。
您需要创建两个独立的Ingress资源的原因是,您可以将注释应用于其中一个,而不能应用于另一个;在最终发出的nginx.conf 中,整个集群中的所有Ingress资源都统一在一起,然后按虚拟主机分组
...
metadata:
name: ingress-svc-1
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
...
- host: "domain.com"
http:
paths:
- path: /?(.*) # want to rewrite this with /$1
backend:
serviceName: RELEASE-NAME-svcname1
servicePort: 80
---
...
metadata:
name: ingress-svc-2
spec:
...
- host: "domain.com"
http:
paths:
- path: /test/?(.*)
backend:
serviceName: RELEASE-NAME-svcname2
servicePort: 80