如何在不带斜杠的情况下重写目标上下文路径?

时间:2019-02-04 14:16:09

标签: kubernetes-ingress nginx-ingress

我正在尝试解决kubernetes nginx ingress中的上下文路由
当我输入上下文路径时 /foo/bar 在应用程序控制器中收到 /bar 这是正确的
但是当我在应用程序控制器中输入/foobar时收到/bar,但它不应该路由。

我尝试/foo//?(.*)是正确的,但是如果我输入/foo(不带斜杠),则会出现错误404

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - host: hello.info
    http:
      paths:
      -  backend:
           serviceName: hello-svc
           servicePort: 80
         path: /foo/?(.*)

所以我希望/foo/foo//
/foo/bar转到/bar
/foobar得到一个error 404
/foo/bar/hello应该转到/bar/hello

1 个答案:

答案 0 :(得分:1)

尝试使用此注释:

npm

以及配置中的以下路径:

nginx.ingress.kubernetes.io/rewrite-target: /$2