工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆

nginx_upstream_hash 增加一致性hash

url hash是用于提高squid命中率的一种架构算法

nginx_upstream_hash 介绍
Nginx_upstream_hash 是nginx 的一个第三方模块,支持采用nginx 内部的各种变
量作hash,然后针对生成的hash 值,用求余的方式分布到后端( backend)服务器上,
达到负载均衡的目的。就是说每个后端服务器只保存一份cache,不会造成cache 空间的
浪费。

为什么需要在nginx_upstream_hash 上增加一致性hash 功能?
因为nginx_upstream_hash 内部的算法采用hash 求余的方式选择后端的服务器,当
你要增加服务器的时候,整个服务器群的cache 都会受到影响,产生瞬间的后端负载,对
业务造成影响。通过增加一致性hash 功能,只影响部分后端服务器。保证了业务的平稳运
行。对系统的扩展带来了便利。

具体的操作方法
1、补丁下载地址:
https://bbs.be10.com/code/upstream_hash/nginx.path

https://bbs.be10.com/code/upstream_hash/upstream_hash.path

#为nginx 打补丁
cd nginx-0.7.17
patch -p1 < ../nginx.path
#为ngixn_upstream_hash 打补丁
cd nginx_upstream_hash-0.3
patch -p1 < ../upstream_hash.path
2、为系统增加ketama 的md5 库
下载ketama-0.1.1.tar.bz2
cd ketama/libketama
gcc -fPIC -O3 -c md5.c
gcc -shared -o libmd5.so md5.o
cp libmd5.so /usr/local/lib
cp md5.h /usr/local/include
编辑/etc/ld.so.conf
添加一行/usr/local/lib
运行ldconfig
为系统增加用户自定义的动态库路径,要不nginx 运行的时候可能报错

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):