【发布时间】:2020-07-25 20:56:51
【问题描述】:
我有一个服务和一个带有 kubenetes nginx 入口控制器的入口资源。我希望我的 url 的 /student 路径转到应用程序的根目录并匹配 student 之后的任何其他 url 段。
例如: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
我花了几天时间,但一次没有成功。
编辑:
入口更改为以下 - 不是我的请求说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(/|$)(.*)
【问题讨论】:
-
@Charlie 你成功了吗?
-
@kitt 抱歉——没用
-
@Charlie 你的注释键不正确,应该是
nginx.ingress.kubernetes.io/rewrite-target -
@kitt 效果很好。请提供此作为答案。我会接受的。
标签: node.js nginx kubernetes kubernetes-ingress nginx-ingress