如何处理同一入口中的子路由和根路由



我有一个入口处理 2 种不同服务的流量:

rules:
- http:
paths:
- path: /stats
backend:
serviceName: info-dashboard
servicePort: 80
- path: /*
backend:
serviceName: portal
servicePort: 80

我也有info-dashboard的URL重写规则。将流量发送到服务时重写/stats -> /。因为后端服务背后的应用期望其终结点命中以/开头,而不是/stats

因此,问题是在 LB 上点击/stats是可以的,但后续调用失败(例如,自动应用程序调用以获取 JavaScript 和其他逻辑)。他们失败是因为他们尝试从/加载,这是一个不同的应用程序。

该应用程序是下一个.js应用程序。所以,我也尝试设置一个basePath。但问题仍然存在。

实际上,如果我从 LB 中删除/stats -> /重定向规则,任何点击/stats只会将我定向到入口上的另一个应用程序 -portal.我很困惑为什么以及如何工作。

我在设置中缺少某些内容吗?

从 k8s-ingress 的角度来看,一切都很好。看起来问题出在您的info-dashboard应用程序上,该应用程序"不知道"它在代理后面运行。要解决此问题,您的应用程序应使用某种指向/stats的 basePath/rootPath 标志(取决于您的应用程序)进行配置,以便它可以按配置命/stats

相关内容

  • 没有找到相关文章

最新更新