如图所示,url_hash根ip_hash的区别就在于计算hash值从 hash(ip)到了hash(url),但是这样也导致了一个问题如果 一个url例如 [domain]/account 大量过来,那么一台服务器也可能出现撑不住的问题,这个时候我们可以采取采用 两台tomcat,一台nginx的配置,这台nginx上游再配置一个tomcat集群这样做。
团队中做一个项目,使用Django开发多个应用,如app1、app2等,均采用docker镜像部署到k8s环境中,整体架构为:
常规处理方案:
此种方案简单清晰,对于api接口及静态页面(如django中的admin管理台页面)不会产生任何问题,因为一个app对应一个域名,从逻辑上看是一对一的访问,app之间互相隔离。
有了这些问题,那么我们就尝试用url前缀去识别路由分发,实现通过url前缀进行反向代理,而不是通过域名去反向代理。
比如/A/xxx这种url就路由到app1,/B/xxx这种url就路由到app2,依次类推。
刚开始配置还是很简单的,nginx配置如下:
此配置大概意思是当匹配到带/A/这种前缀的url时,就将请求路由到app1_addr:app1_port/中。具体location指令请参考nginx手册。
api接口访问正常,但在请求 >
这个不能重写,IP与域名之间基本都是通过DNS来转换的。 也就是需要DNS服务器和本地Host解析来做转换。 如果是外部用户访问还要做端口映射。你的前面是内部IP地址。 端口部分还要进行转换(有些防火墙或者路由器不具备),或者本地变更,或者代理
以上就是关于nginx 负载均衡之url_hash,least_conn全部的内容,包括:nginx 负载均衡之url_hash,least_conn、k8s部署nginx的url反向代理初探、请问nginx怎么重写某个目录的url等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)