我有一个入口处理 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
。