Jus*_*zer 5 linux nginx proxy load-balancing hash
我有两台独立的 Nginx 机器。该域使用循环 DNS 并具有两个 A 记录,每个 A 记录对应两个前端 Nginx 服务器。
两个 Nginx 服务器都使用ip_hash指令并代理请求到相同的后端服务器。
前往第一个 Nginx 服务器的 IP 地址是否始终会路由至与前往另一个 Nginx 服务器的相同 IP 地址相同的后端服务器?
Nginx 服务器不知道彼此有自己的 ip_hash 表。所以特定的服务器会根据自己的ip_hash池将流量路由到后端。前端 Nginx 服务器之间的任何一致性都纯属偶然。
现在在实践中,这可能不是什么问题,因为客户端的 DNS 在会话期间不太可能发生更改。结果,它们将到达相同的前端服务器并被路由到相同的后端服务器。
另一种方法是使用 HAProxy 之类的东西,它可以平衡许多指标,例如作为 URL 参数。您的应用程序可以设置一个参数以确保客户端被路由到同一后端。当然,使用分布式工具在后端标准化数据是首选,但这对于遗留应用程序来说可能具有挑战性。