memcache实现php会话保持
admin
2023-06-21 09:42:33
0

memcache实现php会话保持

实验目标:

实现通过haproxy轮询调度(RR)反代至两台lamp时,用户会话ID保持不变。

 

版本:

haproxy-1.5.4-3.el6.x86_64yum安装

memcached-1.4.15-9.el7_2.1.x86_64yum安装

LAMPhttpd-2.4.9mariadb-5.5.36-linux-x86_64php-5.4.26,都是编译安装。

phpmemcache扩展模块:memcache-2.2.7,编译安装


PHP安装:(其他安装略过)

 编译成php-fpm

./configure --prefix=/usr/local/php-5.2.26 --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php-5.2.26 --with-bz2


memcache 扩展模块安装

tar xf memcache-2.2.7.tgz
cd memcache-2.2.7	
    /usr/local/php-5.2.26/bin/phpize 
    Configuring for:
    PHP Api Version:         20100412
    Zend Module Api No:      20100525
    Zend Extension Api No:   220100525
./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
make && make install

 上述安装完后会有类似以下的提示:

Installing shared extensions:    /usr/local/php-5.2.26/lib/php/extensions/no-debug-non-zts-20100525/memcache.so

 编辑/etc/php.ini,在“Dynamic Extensions”相关的位置添加如下一行来载入memcache扩展:

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so


httpd虚拟机配置:(只展示其中一台的配置)

cat /etc/httpd-2.4.9/extra/httpd-vhosts.conf:
	
		DocumentRoot "/www/test1.com"
		ErrorLog "logs/dummy-test1.com-error_log"
		CustomLog "logs/dummy-test1.com-access_log" common
	
		require all granted
	
		ProxyRequests Off
		ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.30:9000/www/test1.com/$1
	


httpd启用PHP及启动导入虚拟机配置:

启动以下两个模块:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

修改:

DirectoryIndex index.php index.html

添加:

Include /etc/httpd-2.4.9/extra/httpd-vhosts.conf
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php


测试phpmemcache的连接是否成功:

cat /www/test1/01.php:
connect("192.168.1.25", 11211)  or die("Could not connect");

	$version = $mem->getVersion();
	echo "Server's version: ".$version."
\n"; $mem->set('hellokey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server"); echo "Store data in the cache (data will expire in 600 seconds)
\n"; $get_result = $mem->get('hellokey'); cho "$get_result is from memcached server."; ?>

访问此01.php,出现“Hello World is from memcached server”时,说明表memcache与php连接成功。


修改/etc/php.ini,把会话保存到memcache中。

session.save_handler = memcache
session.save_path="tcp://192.168.1.25:11211"


haproxy配置:

frontend  main *:80
    default_backend             app
 
backend app
    balance    roundrobin
    server app1 192.168.1.13:80 check
    server app2 192.168.1.30:80 check


测试会话保存是否成功:

192.168.1.13lamp)的测试脚本:/www/test1.com/02.php

 192.168.1.13 web server";
?>

192.168.1.30lamp)的测试脚本:/www/test1.com/02.php

 192.168.1.30 web server"
?>

区别在于最后一行print 显示lamp本身的IP地址。

浏览器访问02.php

memcache实现php会话保持

memcache实现php会话保持



相关内容

热门资讯

科学家揭示癌基因调控新机制及他... 新华社哈尔滨5月28日电(记者杨思琪、王祚)记者从哈尔滨工业大学获悉,该校生命科学和医学学部胡颖教授...
原创 “... 当各大互联网巨头正借着AI与自动化的名义,挥舞裁员大刀狂欢时,有人却反向狂奔,硬生生砸碎了这套冷冰冰...
高能物理盛宴已过,物理规律是不... 先聊一个扎心的真相:人类近现代三百年的科学爆发史,本质上是一场天才撑起的宇宙探索盛宴。 我们如今享...
原创 最... 小红书正式出手抢B站(哔哩哔哩,简称B站)的蛋糕。 5月26日,小红书在杭州举办首届“RED新生代创...
1400亿Agent入场,“流... 衡宇 发自 杭州 量子位 | 公众号 QbitAI 昨天在支付宝AI生态大会现场,有别于大多数“技术...
韩国股市涨至熔断 ,SK海力士... 分析认为,就当前基本面轨迹而言,估值修复叠加韩国折价改善,海力士和三星“越涨越便宜”的判断尚未失效 ...
月薪7000的抽卡师,只是AI... 「核心提示」 AI抽卡师,用一年时间从AI魔法师到流水线工人。 作者 | 高泽 编辑 | 邢...
加大管控力度,八部门扩大电器电... 工业和信息化部、生态环境部、市场监督管理总局、海关总署、国家疾控局等八部门近日更新发布《电器电子产品...
奥普浴霸怎么接线 正常情况下奥普浴霸都有三个开关,所以大家在接线的时候要先确定一下每个开关的作用,然后大家在接线的时候...
问一问奥普风暖浴霸怎么样 摘要:你好,这位网友,奥普风暖浴霸是非常不错的浴霸哦。传统的浴霸都是灯暖型的那种灯,其实是有紫外线伤...