1、首先在https://www.nginx.com/resources/wiki/modules/consistent_hash/官網(wǎng)下載ngx_http_upstream_consistent_hash
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了淮安免費建站歡迎大家使用!
2、解壓unzip master.zip 得到ngx_http_consistent_hash-master文件夾
3、重新編譯nginx
先用/Data/apps/nginx/sbin/nginx -V 看一下原來的編譯選項 還用原來的編譯選項進行安裝先停掉nginx服務(wù)
./configure --prefix=/Data/apps/nginx --with-pcre=/usr/local/src/pcre-8.00 --with-zlib=/usr/local/src/zlib-1.2.11 --add-module=/usr/local/src/ngx_http_consistent_hash-master
加上ngx_http_consistent_hash的選項之后 make && make install
4、nginx 配置一組memcached上游服務(wù)器
通過memcached_pass指令指定服務(wù)器組
并且通過error_page 404 = /callback.php指定沒有加載到緩存的時候的回調(diào)頁面 在回調(diào)頁面中也以一致性哈希的方式讀取和設(shè)置緩存。如果裝的是memcache擴展
upstream memcacheserver {
consistent_hash $request_uri;
server 127.0.0.1:11211;
server 127.0.0.1:11212;
server 127.0.0.1:11213;
}
server {
listen 7000;
server_name 47.93.5.10;
root /Data/sijunjie/web;
index index.html;
location / {
default_type text/html;
set $memcached_key "$uri?$args";
memcached_pass memcacheserver;
error_page 404 = /callback.php;
}
location ~ \.php$ {
root /Data/sijunjie/web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
5、配置php
extension=/Data/apps/php/lib/php/extensions/no-debug-non-zts-20131226/memcache.so
memcache.hash_strategy=consistent(這個指令會使用一致性哈希方式分布key)這樣就可以和nginx保持一致了
6、callback.php里面的處理存取 由于第5步配置了一致性哈希的分布 這里添加的三臺服務(wù)器和nginx中保持一致。
$memcache = new Memcache();
$memcache->addServer('127.0.0.1', 11211);
$memcache->addServer('127.0.0.1', 11212);
$memcache->addServer('127.0.0.1', 11213);