Kubernetes Nginx入口控制器缺少路径
我对Nginx入口控制器有两个定义。它们中的每一个都路由到web应用程序(托管在nginx上的React应用程序)和web api(.Net Core)的服务 第一个工作正常,但它很复杂,因为我需要在etc文件中为每个指定的主机添加条目以使其工作:Kubernetes Nginx入口控制器缺少路径,kubernetes,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,我对Nginx入口控制器有两个定义。它们中的每一个都路由到web应用程序(托管在nginx上的React应用程序)和web api(.Net Core)的服务 第一个工作正常,但它很复杂,因为我需要在etc文件中为每个指定的主机添加条目以使其工作: apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-nginx-controller annotations: kubernetes.io/in
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-nginx-controller
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: testapp-web-dev
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: testapp-portal-web-service
port:
number: 80
- host: testapp-api-dev
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: testapp-portal-api-service
port:
number: 80
我决定修改它,使其具有具有多个路径的单个主机,所以在etc文件中只有一个条目。但它不起作用。第一个请求被正确路由到http://testapp//testapp-web-dev 但每隔一天
请求失败,即舱单请求转到http://testapp/manifest.json 但它应该去http://testapp/testapp-web-dev/manifest.json.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-nginx-controller
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: testapp
http:
paths:
- path: /testapp-web-dev(/|$)(.*)
pathType: Prefix
backend:
service:
name: testapp-portal-web-service
port:
number: 80
- path: /testapp-api-dev(/|$)(.*)
pathType: Prefix
backend:
service:
name: testapp-portal-api-service
port:
number: 80
尝试了几个不同的url重写,但没有成功。如果要保留请求的路径,需要删除
nginx.ingres.kubernetes.io/rewrite-target:/$2
注释。
根据:
在此入口定义中,(.*)
捕获的任何字符都将被删除
分配给占位符$2
,然后在中用作参数
重写目标注释
i、 例如,注释正在重定向http://testapp/testapp-web-dev/manifest.json
至http://testapp/manifest.json