[英]Kubernetes Nginx Ingress removing part of URL
我正在Kubernetes中(在AKS上)部署一個簡單的應用程序,該應用程序位於使用Nginx的Ingress后面,並使用Nginx掌舵圖進行了部署。 我有一個問題,由於某種原因,Nginx似乎沒有將完整的URL傳遞給后端服務。
例如,我的Ingress是使用http://app.client.com的URL設置的,並且/ app1g的路徑為http://app.client.com/app1可以正常工作。 但是,如果我嘗試轉到http://app.client.com/app1/service1,而我最終只訪問了http://app.client.com/app1 ,則該路徑后似乎剝奪了所有內容。
我的入口看起來像這樣:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
creationTimestamp: "2019-04-03T12:44:22Z"
generation: 1
labels:
chart: app-1.1
component: app
hostName: app.client.com
release: app
name: app-ingress
namespace: default
resourceVersion: "1789269"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/app-ingress
uid: 34bb1a1d-560e-11e9-bd46-9a03420914b9
spec:
rules:
- host: app.client.com
http:
paths:
- backend:
serviceName: app-service
servicePort: 8080
path: /app1
tls:
- hosts:
- app.client.com
secretName: app-prod
status:
loadBalancer:
ingress:
- {}
如果我移植到該服務並直接點擊該服務,它將起作用。
所以我找到了答案。 從Nginx v0.22.0開始,您似乎需要使用捕獲組來捕獲請求URI中的任何子字符串。 在0.22.0之前,僅使用nginx.ingress.kubernetes.io/rewrite-target: /
用於任何子字符串。 現在沒有。 我需要修改入口才能使用此功能:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
creationTimestamp: "2019-04-03T12:44:22Z"
generation: 1
labels:
chart: app-1.1
component: app
hostName: app.client.com
release: app
name: app-ingress
namespace: default
resourceVersion: "1789269"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/app-ingress
uid: 34bb1a1d-560e-11e9-bd46-9a03420914b9
spec:
rules:
- host: app.client.com
http:
paths:
- backend:
serviceName: app-service
servicePort: 8080
path: /app1/?(.*)
tls:
- hosts:
- app.client.com
secretName: app-prod
status:
loadBalancer:
ingress:
- {}
刪除此行應該可以解決您的問題:
nginx.ingress.kubernetes.io/rewrite-target: /
重寫目標注釋將完全按照其說明:重寫您的命中“ /”位置的請求。 有關重寫target,請參見nginx-ingress文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.