我如何使用入口更改 URI。 app-root 和 rewrite-target 不起作用

How I can change the URI with ingress. app-root and rewrite-target not wok

我对 nginx Ingress 有疑问。我们在不同的命名空间中有规则并且测试应用程序工作正常。

现在我们想通过入口访问一个新的应用程序,但是对于这个我们需要另一个 URL 规则:

f.e。规则路径:/app/app-function

幸运的是,应用程序向我显示了它获取的 URI。该应用程序从入口获取路径,我需要将其更改为某些内容。 我尝试了 app-root 和 rewrite-target 但我在 URI 中看不到任何变化。

在下面粘贴我的 yaml 文件。你有什么主意吗?我也在主规则中尝试过,但没有任何反应。但是主规则在入口命名空间中...

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: rule-app
  namespace: pilot
  annotations:
    nginx.org/mergeable-ingress-type: "minion"
    nginx.ingress.kubernetes.io/rewrite-target: "/test"
    #nginx.ingress.kubernetes.io/enable-rewrite-log: "true"

spec:
  ingressClassName: "nginx"
  rules:
  - host: "Host"
    http:
      paths:
      - path: /app/app-function
        pathType: Prefix
        backend:
          service:
            name: new-app
            port:
              number: 8080

谢谢 Vit,我用你的 tipp 找到了解决方案。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: rule-app
  namespace: pilot
  annotations:
    nginx.org/mergeable-ingress-type: "minion"
    nginx.org/rewrites: "serviceName=new-app rewrite=/test"
spec:
  ingressClassName: "nginx"
  rules:
  - host: "Host"
    http:
      paths:
      - path: /app/app-function
        pathType: Prefix
        backend:
          service:
            name: new-app
            port:
              number: 8080