(高级)NGINX集群模式配置相关内容

NGINX upstream一致性哈希模块

需求

近期公司上线某项目,需要根据参数id进行一致性hash,实现将同一参数的请求发送到同一节点上,由于我们使用nginx来做代理,所以这个任务到运维这里,首先就要思考用nginx怎么实现,最后调研了一下,nginx需要安装一个第三方模块ngx_http_consistent_hash 来实现根据请求参数实现一致性hash。
一致性hash用于对hash算法的改进,后端服务器在配置的server的数量发生变化后,同一个upstream server接收到的请求会的数量和server数量变化之间会有变化。尤其是在负载均衡配置的upstream server数量发生增长后,造成产生的请求可能会在后端的upstream server中并不均匀,有的upstream server负载很低,有的upstream server负载较高,这样的负载均衡的效果比较差,可能对upstream server造成不良的影响。由此,产生了一致性hash算法来均衡。

安装方式

github 下载地址:https://github.com/replay/ngx_http_consistent_hash
下载zip 包即可 ,编译到nginx
在nginx 编译参数中添加 –add-module=ngx_http_consistent_hash-master 的解压目录即可

配置方式

该模块可以根据配置参数采取不同的方式将请求均匀映射到后端机器,比如:

consistent_hash $remote_addr 可以根据客户端ip映射
consistent_hash $request_uri 根据客户端请求的url映射
consistent_hash $根据客户端携带的参数进行映射

配置示例:根据客户端携带的参数进行hash

如我需要根据传入的documentId进行一致性hash,将documentId相同的值始终转发到同一台服务器,配置方式如下:

upstream http-co-web {
    consistent_hash $arg_documentId;
    server 后端服务器地址;
    server 后端服务器地址;
}

NGINX Session 共享问题与

https://www.cnblogs.com/qianjinyan/p/8921413.html
https://blog.csdn.net/tuesdayma/article/details/81387862

分布式集群时钟同步问题

https://blog.csdn.net/ChenjCarryOn/article/details/104735473

分布式调度问题

https://blog.csdn.net/shadow_zed/article/details/99170221

LVS+Keepalived+Nginx实现高可用

https://blog.csdn.net/lupengfei1009/article/details/86514445

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值