Nginx负载均衡之ip_hash

这篇具有很好参考价值的文章主要介绍了Nginx负载均衡之ip_hash。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原理: 通过哈希值和ip进行运算,得出一个哈希字符串,一个值。分发的时候进行判断请求之前是否和哈希绑定过。有的话则优先分配 匹配到对应哈希值的服务器上。

什么是ip_hash?

  • ip_hash是根据用户请求过来的ip,然后映射成hash值,然后分配到一个特定的服务器里面;
  • 使用ip_hash这种负载均衡以后,可以保证用户的每一次会话都只会发送到同一台特定的Tomcat里面,它的session不会跨到其他的tomcat里面去的;
  • 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

hash算法原理
第一步,根据客户端IP计算得到一个数值。

hash1 = (hash0 * 113 + addr[0]) % 6271;
hash2 = (hash1 * 113 +addr[1]) % 6271;
hash3 = (hash2 * 113 + addr[2]) % 6271;

hash3就是计算所得的数值,它只和初始数值hash0以及客户端的IP有关。

第二步,根据计算所得数值,找到对应的后端。

w = hash3 % total_weight; 
while (w >= peer->weight) { 
w -= peer->weight; 
peer = peer->next;
 p++;
  }

total_weight为所有后端权重之和。遍历后端链表时,依次减去每个后端的权重,直到w小于某个后端的权重。选定的后端在链表中的序号为p。因为total_weight和每个后端的weight都是固定的,所以如果hash3值相同,则找到的后端相同。

如何在nginx里使用ip_hash?
Nginx负载均衡之ip_hash
直接添加ip_hash关键字即可,后续同一ip的访问将只会请求同一个服务器。

—————分割线 😃—————

使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
ip_hash算法的原理很简单,根据请求所属的客户端IP计算得到一个数值,然后把请求发往该数值对应的后端。
所以同一个客户端的请求,都会发往同一台后端,除非该后端不可用了。ip_hash能够达到保持会话的效果。文章来源地址https://www.toymoban.com/news/detail-415800.html

到了这里,关于Nginx负载均衡之ip_hash的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx一般轮询、加权轮询、ip_hash等负载均衡模式配置介绍

    目录 一.负载均衡含义简介 二.nginx负载均衡配置方式 准备三台设备: 2.190均衡服务器,2.191web服务器1,2.160web服务器2,三台设备均安装nginx,两台web服务器均有网页内容 upstream内参数 1.一般轮询负载均衡 (1)含义 (2)配置 (3)测试 2.加权轮询负载均衡 (1)含义 (2)配置

    2024年02月13日
    浏览(57)
  • nginx配置负载均衡--实战项目(适用于轮询、加权轮询、ip_hash)

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月08日
    浏览(41)
  • Nginx使用场景&&Nginx基础&&Nginx的负载均衡策略&&Nginx配置文件&&Nginx+Tomcat集群示例&&Nginx部署静态网站&&根据Tomcat容器实际IP修改Nginx配置

    目录 1. Nginx使用场景 2. Nginx中的进程 2.1 Nginx中的多进程模型 2.2 多进程模式的优点: 2.3 缓存 3. Ngnix的负载均衡策略 3.1 轮询法 3.2 加权轮询 3.3 原地址哈希 3.4 最小连接数法 3.5 Fair 3.6 url_hash 3. Nginx配置文件 4. Nginx+tomcat 集群示例 4.1 下载镜像 4.2 在宿主机中创建需要挂载的目录

    2024年02月04日
    浏览(54)
  • 【Nginx】Nginx负载均衡

    ❤️ 完整使用方式和介绍可以查看 Nginx官方文档 → Nginx官方 Using nginx as HTTP load balancer 如下图: round-robin — requests to the application servers are distributed in a round-robin fashion, 以循环模式分发对服务器的请求,写法如下: upstream 块,定义了一组服务,后边跟这一组服务的名称:my

    2024年02月12日
    浏览(71)
  • NGINX负载均衡及LVS-DR负载均衡集群

    原理 : 1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链 3. IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群 服务进

    2024年02月13日
    浏览(49)
  • nginx的各种负载均衡策略与各种负载均衡策略如何配置

    Nginx支持多种负载均衡策略,每种策略都有其特定的适用场景和配置方式。以下是一些常见的Nginx负载均衡策略及其配置方法: 这是Nginx的默认策略,每个请求按顺序依次分发到不同的服务器上。 配置示例: 在轮询的基础上,为后端服务器分配不同的权重,权重越高,接收的

    2024年04月09日
    浏览(46)
  • nginx自定义负载均衡及根据cpu运行自定义负载均衡

    转载请注明出处: 在Nginx中,可以通过配置文件自定义负载均衡策略。具体步骤如下: 首先,在Nginx配置文件中定义一个upstream模块,并设置负载均衡策略和后端服务器列表,例如: 其中,myapp是一个自定义的upstream名称,backend1.example.com、backend2.example.com、backend3.example.com是后

    2023年04月16日
    浏览(49)
  • nginx负载均衡的实现

    1、 安装nginx https://blog.csdn.net/qq_50247813/article/details/126550316 2、 修改配置文件,配置后端服务器 2.1、有3台后端服务需要实现负载均衡 172.17.0.2:80 172.17.0.3:80 172.17.0.4:80 2.2、修改配置文件,使用代理的方式实现负载均衡(默认轮询) 设置代理名字为myweb,代理到myweb实现负载 3、

    2023年04月16日
    浏览(40)
  • Nginx 如何实现负载均衡?

    Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。由于其具有丰富的功能和出色的性能,Nginx 广泛应用于 Web 开发、负载均衡、反向代理等场景。在负载均衡方面,Nginx 可以实现基于轮询、IP_HASH、URL_HASH 和其他算法的负载均衡。本文将详细介绍

    2024年01月18日
    浏览(40)
  • nginx反向代理、负载均衡

         

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包