首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx : ip_hash的算法

Nginx : ip_hash的算法
EN

Server Fault用户
提问于 2011-10-31 05:42:43
回答 1查看 2.3K关注 0票数 0

来自我的两个amazon节点的请求进入同一个后端节点。我想弄清楚为什么?

通过谷歌搜索,我发现“散列是使用客户端地址的C类网络地址完成的”。

如果可能的话,有人能解释一下ip_hash背后的算法吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2011-10-31 06:07:03

最简单的答案是:缘由是巧合。哈希算法使它最终在同一个桶中结束,它试图解决的问题是“确保同一个客户端总是与同一个后端对话,但仍然试图在我的后端保持一个相当均匀的分布”。

它和其他IP哈希算法是一样的。在一个非常基本的层面上:

  1. 你看一下与你联系的同侪的IP地址。
  2. 您散列它-这样做会给您一个相当随机的数字(但是,对于相同的地址总是一样的)-比IP地址更随机,这取决于您的用户可能是非常顺序的。
  3. 通过执行hash % backends选择后端

您通过这样做所完成的任务是相当均衡地扩展您的客户端--但是您应该能够期望客户端对每个请求保持相同的后端对话。例如,如果您将会话数据存储在每台服务器上,这是非常有用的。

如果您只想将负载分散到后端,并且在应用程序的范围内没有任何需要担心的事情;Robin是一个更好的选择--您将得到更均匀的传播(尽管在大多数情况下,ip_hash工作得很好)--而且由于不花费时间散列客户端地址,它将消耗更少的资源。

票数 5
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/326249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档