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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM