【发布时间】:2021-07-05 22:15:34
【问题描述】:
在使用 minikube ingress 时,我必须写 nginx.ingress.kubernetes.io/rewrite-target: /$1。我一直在努力理解为什么我们需要这个注解以及如何使用它。
我知道doc 表示以下内容:
在某些情况下,后端服务中暴露的 URL 与 Ingress 规则中指定的路径不同。如果不进行重写,任何请求都将返回 404。将注释 nginx.ingress.kubernetes.io/rewrite-target 设置为服务预期的路径。
但我无法确切了解the exposed URL in the backend service differs from the specified path in the Ingress rule 的确切含义。我无法清楚地理解这个想法。
此外,在尝试使用服务执行入口文件时:
代码 1:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: example-namespace
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: myexample.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
代码 2:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: example-namespace
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myexample.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
代码 3:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: example-namespace
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: myexample.com
http:
paths:
- path: /index
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
上述3个代码sn-ps中的每一对在上面提到的rewrite-target和path方面到底有什么区别?
PS:我是 minikube 的新手,并试图弄清楚事情的确切运作方式。请帮忙。
【问题讨论】:
标签: nginx kubernetes minikube nginx-ingress