设为首页 收藏本站
查看: 3167|回复: 0

[经验分享] nginx+PHP+memcached+MySQL+ip-hash做memcached集群

[复制链接]

尚未签到

发表于 2018-10-7 14:48:42 | 显示全部楼层 |阅读模式
  1、nginx与memcached整合
  #安装memcached支持的事务库libevent
wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz  
tar zxf libevent-2.0.22-stable.tar.gz
  
cd libevent-2.0.22-stable
  
./configure --prefix=/usr/local/libevent
  
make && make install
  
echo $?
  
cd ..
  #接下来安装memcached:
wget http://www.memcached.org/files/memcached-1.4.35.tar.gz  
tar zxf memcached-1.4.35.tar.gz
  
cd memcached-1.4.35
  
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
  
make && make install
  
echo $?
  
cd ..
  #运行memcached
  [root@nginx ~]# /usr/local/memcached/bin/memcached -d -u nobody -vv
  #配置nginx配置文件nginx.conf,定位user的uri交给memcached做缓存
  #添加location定位:
location ~* user {  
                set $memcached_key "$uri"; #设置memcached的key为uri
  
                memcached_pass 192.168.146.132:11211; #链接memcached
  
                error_page 404 /callback.php; #错误定位
  
        }
  #加载nginx配置

  nginx -s>  #在memcached中写入一条URI数据,测试整合是否成功
[root@nginx ~]# telnet 192.168.146.132 11211  
Trying 192.168.146.132...
  
Connected to 192.168.146.132.
  
Escape character is '^]'.
  
add /user1.html 0 0 7
  
iamlisi
  
STORED
  
quit
  #访问http://192.168.146.132/user1.html如能看到iamlisi,那么nginx与memcache整合成功了!
  2、整合PHP与memcahced
  #安装PHP扩展模块memcache
wget http://pecl.php.net/get/memcache-2.2.7.tgz  
tar zxvf memcache-2.2.7.tgz
  
cd memcache-2.2.7
  
/usr/local/php/bin/phpize
  
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
  
make && make install
  
echo $?
  
cd ..
  pkill php-fpm   #杀死php-fpm进程
  php-fpm   #启动php-fpm
  http://192.168.146.132/test.php能看到memcache模块就成功了
  #测试PHP与memcached
vim /usr/local/nginx/html/callback.php  
php
  #访问http://1982.168.146.132/user2.html 此uri在memcached中不存在,就会回调到callback.php处理请求,结果如下:
Array  
(
  
    [USER] => nobody
  
    [HOME] => /
  
    [FCGI_ROLE] => RESPONDER
  
    [SCRIPT_FILENAME] => /usr/local/nginx/html/callback.php
  
    [QUERY_STRING] =>
  
    [REQUEST_METHOD] => GET
  
    [CONTENT_TYPE] =>
  
    [CONTENT_LENGTH] =>
  
    [SCRIPT_NAME] => /callback.php
  
    [REQUEST_URI] => /user2.html
  
    [DOCUMENT_URI] => /callback.php
  
    [DOCUMENT_ROOT] => /usr/local/nginx/html
  
    [SERVER_PROTOCOL] => HTTP/1.1
  
    [REQUEST_SCHEME] => http
  
    [GATEWAY_INTERFACE] => CGI/1.1
  
    [SERVER_SOFTWARE] => nginx/1.12.1
  
    [REMOTE_ADDR] => 192.168.146.1
  
    [REMOTE_PORT] => 14187
  
    [SERVER_ADDR] => 192.168.146.132
  
    [SERVER_PORT] => 80
  
    [SERVER_NAME] => localhost
  
    [REDIRECT_STATUS] => 200
  
    [HTTP_HOST] => 192.168.146.132
  
    [HTTP_CONNECTION] => keep-alive
  
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
  
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
  
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
  
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
  
    [HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8
  
    [PHP_SELF] => /callback.php
  
    [REQUEST_TIME] => 1503552110
  
)
  3、使用PHP让memcached链接MySQL查询key与value并存入memcached,
  #接下来我们写个PHP程序,链接数据库,让memcached找不到的uri就回调给PHP,然后PHP去链接数据库,查找数据后给memcached:
cat html/callback.php  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-614433-1-1.html 上篇帖子: mysql 5.7 rpm方式从下载到安装 下篇帖子: mysql共享锁与排他锁
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表