zoukankan      html  css  js  c++  java
  • Nginx 第三方模块的安装以及一致性哈希算法的使用

    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

  • 相关阅读:
    HDU 1176 免费馅饼(DP)
    微通道的兵锋 阿里将血腥
    head first c<11>在根据网络编程
    ZOJ 3795 Grouping(Tarjan收缩点+DAG)
    【设计和算法分析】3、二进制搜索
    杨:联想的创新将成为打造最酷的助推力的重要器件
    android 如何将电话簿SDN数字和其他普通的数字混合在一起?
    redhat6.3已安装was6.1你可以不弹出安装程序
    Android属于查询执行情况的电话号码
    table在 点击线条颜色
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/5844843.html
Copyright © 2011-2022 走看看