我有一项服务和一个带有 kubernetes nginx 入口控制器的入口资源。我想要/student
我的 url 的路径,用于转到应用程序的根目录并匹配以下的任何其他 url 段student
.
例如:http://example.com/student/ver应该匹配/ver
我的申请路线。
然而,我的入口总是用/student
为其他 url 段添加前缀的 url 路径。如果我打电话http://example.com/student/ver,我的应用程序被使用相同的 url (student/ver
).
我的入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
name: ingress-resource
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: lesson-streaming
servicePort: 80
path: /student
我花了好几天的时间来解决这个问题,但一次都没有成功。
Edit:
入口更改为以下内容 - 不是我的要求说的http 404
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/rewrite-target: /$2
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
name: ingress-resource
namespace: default
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: lesson-streaming
servicePort: 80
path: /student(/|$)(.*)
您可以按照link使用rewrite-target
正确注释并保留正确的密钥nginx.ingress.kubernetes.io/rewrite-target
.
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: rewrite
namespace: default
spec:
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /something(/|$)(.*)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)