Nginx 第三方模块的安装以及一致性哈希算法的使用

第三方模块安装方法总结:

以ngx_http_php_memcache_standard_balancer-master为例

1:解压 到 path/ngx_module

 

配置:add_module=后面写的就是被解压之后的模块的位置

./configure --prefix=/xxx/xxx --add_module=/path/ngx_module

编译 安装

Make && make instal

 

需要一致性哈希算法,来统一nginx和php的mc算法,使得二者的算法同步

wget 一致性哈希算法的zip

解压

 

通过-V来查看一下nginx编译时候的选项(这一步只是看到了这个命令,所以记录下来,不是必要的)

重新编译nginx   因为之前编译过,可以先make clean一下

编译之前最好先把nginx进程杀死

在nginx中做集群与负载均衡,步骤都是一样的

Upstream {}模块 把多台服务器加入到一个组

然后 memcached_pass, fastcgi_pass, proxy_pass ==> upstream组

 

默认的负载均衡的算法:

是设置计数器,轮流请求N台服务器.

可以安装第3方模式,来利用uri做hash等等.

 

如http://wiki.nginx.org/NginxHttpUpstreamConsistentHash

这个模块就是用一致性hash来请求后端结节,并且其算法,与PHP中的memcache模块的一致性hash算法,兼容.

 

安装该模块后:

Nginx.conf中

 

upstream memserver {

    #拿什么当做哈希的参数,这里拿request_uri当做哈希的参数,这样把这个uri通过哈希算法来算,是落在哪一台服务器上,这样nginx就把某一个uri哈希到某一台server上了。

        consistent_hash $request_uri;

        server localhost:11211;

        server localhost:11212;

    }

 

在PHP.ini中,如下配置

memcache.hash_strategy = consistent

默认的是standard,就是求余

这样: nginx与PHP即可完成对memcached的集群与负载均衡算法.

启动memcached

进行访问,观察,memcached是否起了作用。

 

 

不能用localhost,不好用,要写IP

posted on 2016-09-06 10:43  Mr.He多多指教  阅读(3609)  评论(0编辑  收藏  举报