我有两台独立的Nginx机器。域使用循环DNS,并且有两个A记录,一个用于两个前端Nginx服务器。
两个Nginx服务器都使用ip_hash
指令和对同一个后端服务器的代理请求。
到第一个Nginx服务器的IP地址是否总是被路由到同一个后端服务器,与另一个Nginx服务器的IP地址相同?
这可能会有所帮助:用于ip的ip是什么?_哈希粘稠的会话?
发布于 2013-05-29 19:09:49
Nginx服务器使用自己的ip_hash表彼此不知道。因此,特定的服务器将根据自己的ip_hash池将流量路由到后端。前端Nginx服务器之间的任何一致性都要归功于偶然。
现在,在实践中,这可能不是什么问题,因为客户端的DNS不太可能在会话期间更改。因此,它们将命中同一个前端服务器,并被路由到同一个后端服务器。
另一种方法是使用类似于HAProxy的东西,它可以在许多度量上取得平衡,例如作为一个URL参数。您的应用程序可以设置一个参数,以确保客户端被路由到同一个后端。当然,使用分布式工具来规范后端的数据是首选的,但是对于遗留应用程序来说,这可能是一项挑战。
发布于 2013-06-05 17:41:01
根据医生的说法:
散列的关键是客户端的类C网络地址或整个IPv6 6地址。
所以,从理论上讲,这应该是可行的。
另一个可能出现的问题是,当你的一个后端失败时。Nginx并没有对客户端接下来的后端做出任何承诺。
但是,是的,HAProxy ftw。
https://serverfault.com/questions/511763
复制相似问题