我的Ingress上已經有很多域,有很多路徑,因為這是一個有很多微服務的環境。
我怎樣才能以某種方式編輯我的ingress,當有人訪問路徑/servicex時,它將得到/serviceb,例如
我目前的入口如下(為了簡單起見,我省略了其他主機的一些路徑)
apiVersion: networking.k8s.io/v1
種類: Ingress
metadata: Ingress
名稱: main-ingress
注釋:
nginx.ingress.kubernetes.io/ssl-redirect: "true"/span>
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"/span>
nginx.ingress.kubernetes.io/proxy-body-size: "100m"。
nginx.ingress.kubernetes.io/max-worker-connectionions: "0"
nginx.ingress.kubernetes.io/max-worker-open-files: "0"
nginx.ingress.kubernetes.io/client-header-buffer-size: "4k"
spec:
tls:/span>
- 主機:
- subdomain-a.domain.com
- 子域-b.domain.com
- 子域-c.domain.com
- 子域-d.domain.com
- 子域-e.domain.com
secretName: domain-com-secret
規則:
- host:/span> subdomain-a.domain.com
http:
路徑:
- path: /
pathType: Prefix
后端:
服務:
名稱: 默認服務
port:
編號: 80
- path: /serviceb
pathType: Prefix
后端:
服務:
name: b-service
port:
編號: 80
- path: /servicec
pathType: Prefix[/span]。
后端: 前綴
服務:
name: cervice
port:
number: 80
- path: serviced
pathType: Prefix
后端: 前綴
服務:
name: d-service
埠:
number: 80
- path: /servicee >。
pathType: Prefix[/span]。
后端: 前綴
服務:
name: e-service
埠:
編號: 80
- path: /servicee >。
pathType: Prefix[/span]。
后端: 前綴
服務:
name: e-service
埠:
編號: 80
- path: /servicef
pathType: Prefix
后端: 前綴
服務:
name: f-service
埠:
號碼: 80
- path: /serviceg >。
pathType: Prefix
后端:
服務:
name: g-service
埠:
編號: 80
- host:subdomain-b.domain.com
< tons of other rules >
- host:/span> subdomain-c.domain.com
< tons of other rules >
- host:/span> subdomain-d.domain.com
< tons of other rules >
- host:/span> subdomain-e.domain.com
< tons of other rules[/span> >/span>
換句話說,如果用戶輸入以下任何一項,我們希望獲得對/serviceb的訪問:
- https://subdomain-a.domain.com/serviceb -> 這里不需要做什么,因為我們已經涵蓋了這一點
- https://subdomain-a.domain.com/servicex -> 這應該被轉化為https://subdomain-a.domain.com/serviceb
我查看了重寫選項,但在我看來,如果我添加注釋nginx.ingress.kubernetes.io/rewrite-target。/servicex/$2,然后嘗試做一些事情:
- path: /serviceb(/|$)(.*)
pathType: Prefix
后端:
服務:
name: serviceb
埠:
號碼: 80
這行不通,因為首先,我們已經有了這個路徑,其次,我認為注釋將適用于整個事情,這將損害所有其他的路線。
提前感謝,任何幫助都是值得贊賞的
。uj5u.com熱心網友回復:
NGINX ingress與NGINX中幾乎一樣。在大多數情況下,內置的注釋可以幫助你在NGINX中配置標準的操作。
但是,如果你在NGINX中配置了標準的操作,那么你就可以在NGINX中配置標準的注釋。
然而,如果你遇到了像你這樣的定制,你也可以通過這兩個注釋自由輸入服務器或配置片段。
nginx.ingress.kubernetes.io/server-snippet和nginx.ingress.kubernetes.io/configuration-snippet。
在該代碼段內,您可以像普通的 NGINX 一樣做任何您想做的事情。
從你的回復中抓取配置,供其他人參考。
nginx.ingress.kubernetes.io/configuration-snippet: |-
重寫 ^(/servicex)(.*) /serviceb$2 最后。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319492.html
標籤:
