【发布时间】:2018-08-06 07:49:16
【问题描述】:
这是我的情况,我在 kubernetes (ingress) 上,有两个 docker 镜像:一个专用于 web,第二个用于 api。
在下一个配置下(在消息末尾):/web 将显示将调用/api 的前端,那里一切正常。
但/ 是 404,因为没有定义任何内容,我无法在入口配置中找到一种方法来告诉 / 应该重定向到 /web
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: dev-ingress
annotations:
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- demo.com
secretName: tls-secret
rules:
- host: demo.com
http:
paths:
- path: /api
backend:
serviceName: api-app
servicePort: 8080
- path: /web
backend:
serviceName: web-app
servicePort: 80
【问题讨论】:
-
您可以使用 rewrite-target 但您需要将入口分成两部分。如果您创建两个名称不同但主机和路径不同的入口,我相信这应该可行。这听起来可能效率较低,但它只是指定路由规则的另一种方式。
-
或者如果它也适用于您的 /api,则只需删除 rewrite-target 。我认为你只需要区分一个需要重写目标而另一个不需要。
-
如果 cmets 没有帮助,请随时告诉我。
-
@RyanDawson 我将它传递给团队,一旦他们尝试,我会通知你。非常感谢您的帮助
-
@ChristianSaiki 现已发布作为答案 - 希望这会有所帮助
标签: kubernetes kubernetes-ingress