入口路由-基于路径的路由到其他React应用

Vij*_*van 5 openshift reactjs kubernetes kubernetes-ingress

我在Openshift中独立部署了不同的React应用及其后端服务。其中有一个应用程序,用户可以使用此应用程序中提供的链接登录并导航到其他应用程序。

目前,每个应用程序的链接都直接指向react应用程序的“ Openshift Route”(类似于Kube Ingress)。

但是,对于生产区域,我们必须更改其工作方式。例如,存在一个公开领域apps.mydomain.com。我们应该以这种方式加载应用程序上每个应用程序的链接,apps.mydomain.com/reactapp1应该加载reactapp1和reactapp2 apps.mydomain.com/reactapp2等等。

因此,有一个配置了路径的Ingress

rules:
- host: apps.mydomain.com
  http:
    paths:
      - backend:
          serviceName: home
          servicePort: 8080
        path: /
      - backend:
          serviceName: react-app-1
          servicePort: 8080
        path: /reactapp1
      - backend:
          serviceName: app-1-api
          servicePort: 8080
        path: /app1/api
      - backend:
          serviceName: react-app-2
          servicePort: 8080
        path: /reactapp2
      - backend:
          serviceName: app-2-api
          servicePort: 8080
        path: /app2/api
Run Code Online (Sandbox Code Playgroud)

当我点击该网址时,https://apps.mydomain.com它将加载home应用程序,登录后,单击该应用程序链接后,该应用程序将不会加载。尽管我可以看到浏览器标题已更改为导航的应用程序,但出现此错误Uncaught SyntaxError: Unexpected token <

经过大量搜索之后,我发现如果需要从根目录而不是根目录部署React应用程序,则必须对其进行不同的配置。

我想念什么?我在哪里做错了?进入或响应应用程序构建?我可以在同一个域中使用不同的Ingress,但对每个react-app及其后端api使用不同的路径吗?

Vas*_*pov -1

我认为使用 Openshift Router 不可能解决这个问题(请参阅此问题)。

使用 Nginx Ingress 可以使用注释轻松完成nginx.ingress.kubernetes.io/rewrite-target: /