• 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

  • 相关阅读:
    自考毕业答辩总结
    【项目经验】navicat工具 SQLServer数据库迁移MySQL
    【项目经验】EasyUI Tree
    Django框架基础(一)
    前端相关内容补充
    web框架前戏---web框架的本质
    web框架前戏---基础简介及Django安装配置
    sqlAchemy前戏
    mysql基础(五)之pymysql
    mysql基础(四)之索引
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/5844843.html
Copyright © 2020-2023  润新知