【问题标题】:Kubernetes nginx ingress route pathsKubernetes nginx 入口路由路径
【发布时间】:2020-06-11 21:01:47
【问题描述】:

如何重写 URI 并将其发送到两个不同的服务? 使用 Azure 中的此示例。它将所有流量路由到https://demo.azure.com/ 上的“aks-helloworld”。但是,如果 url 是:https://demo.azure.com/hello-world-two,则流量将发送到服务“ingress-demo”。这可以。

问题是当我请求https://demo.azure.com/hello-world-two/test 时。 如何在“ingress-demo”服务上请求处理程序“/test”?

从逻辑上讲,您会想到这样写:
/hello-world-two/*

/*
然后这会将请求发送到正确的服务。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-world-ingress
  namespace: ingress-basic
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  tls:
  - hosts:
    - demo.azure.com
    secretName: aks-ingress-tls
  rules:
  - host: demo.azure.com
    http:
      paths:
      - backend:
          serviceName: aks-helloworld
          servicePort: 80
        path: /(.*)
      - backend:
          serviceName: ingress-demo
          servicePort: 80
        path: /hello-world-two(/|$)(.*)

【问题讨论】:

    标签: nginx kubernetes nginx-ingress


    【解决方案1】:

    我解决了, 通过更改路径:

          - backend:
              serviceName: ingress-demo
              servicePort: 80
            path: /hello-world-two/?(.*)
    

    【讨论】:

      猜你喜欢
      • 2020-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      相关资源
      最近更新 更多