K8S(rancher)Nginx Ingress Controller 负载均衡多路径问题解决方案
背景
通过一个域名指向多个服务
- 二级路区分
- 类型tomcat部署方式
问题
路径请求存在问题
- 不是理想中的请求路径
解决方案
网上资源
- 大部分文档写着
- nginx.ingress.kubernetes.io/rewrite-target=/
- 问题没得到解决
- 是按照二级路径区分转发到了服务上,但是所以的请求都是 / 根路径
解决方案一
使用域名前缀方案
- 微服务名称-项目名称-公司-com
- 通过域名直接解析到微服务
- 该请求路径直接是到微服务路径
- 注意: 不要设置 nginx.ingress.kubernetes.io/rewrite-target=/
- 该请求路径直接是到微服务路径
解决方案二
请求路径截取方案
- 通过通配符的方式,设置占位符,截取指定路径Url
- 示例
- /d/(.*) -- iptest服务路径
- nginx.ingress.kubernetes.io/rewrite-target=/$1
- 原理
- Nginx 路径重写功能原理
配置方式截图
备注
- 一个问题可以有多个解决方案。
- 使用哪种解决方案取决自己实际情况。
- 推荐使用
- 只有一个服务暴露的可以使用方案一
- 集成模型系统可以使用方案一
- 一个中心(项目)下N那个服务,可以使用方案二