如何重写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(/|$)(.*)

最佳答案

我解决了
通过更改路径:

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

关于nginx - Kubernetes Nginx入口路由路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62324353/

10-12 23:37