WEBcluster,Howeverload balancing,sessionsynchronizeproblem,UserLogin,Login 。BecauseIPserver。PHPBlog[http://blog.phpha.com /]solution。
、databasesynchronizesession
serversessionsynchronize,If,:
1)databasewebserversession,,databasefileserver,Userwebserver,databasechecksession,sessionsynchronize。
2)sessiondatabase,Ifmysqlcluster,mysqlnode,sessiondatasynchronize。
Description:databasesynchronizesession,database,database,Ifsessiondatabase,。,,session,database
、cookiesynchronizesession
sessionfileserver,cookiefileclient,Implementationsynchronize?,User sessioncookie,cookie。webserverA,sessioncookie, webserverB,,webserverBserversession,If,clientcookie session,If,Descriptionsession,Ifcookie,cookiesessoinsynchronizewebserverB, Implementationsessionsynchronize。
Description:Implementation,,database,HoweverIfclientcookie,sessionsynchronize,;cookieSecurity,Although,However。
、memcachesynchronizesession
memcachedistributed,IfFunctions,sessionsynchronize。webservermemory,”memory”,serversessoin”memory”,。
:synchronizesession,database,Securitycookie,sessionmemory,file。
:memcachememory,,,memcachememory,memory,If,out of memory。
、Summary
,
,system,Recommendation;
,,Security;
,,Recommendation
、webclustermemcachesynchronizesession
1)webcluster
Startmemcachedprocess,server
- /usr/local/bin/memcached –d –m 1024 –c 3000 –u uenucom –p 12000 –P ./memcached.pid
- /usr/local/bin/memcached –d –m 1024 –c 3000 –u uenucom –p 13000 –P ./mem.pid
2)phpConfiguration
- vi /usr/local/php/lib/php.ini
- session.save_handler = "memcache"
- memcache.hash_strategy = "consistent"
- session.save_path = "tcp://127.0.0.1:13000?weight=10,tcp://127.0.0.1:12000"
Description:,sessionmemcache;,memcachehashconsistent;,session;
3)apache
phpinfo
- session
- Session Supportenabled
- Registered save handlersfiles user sqlite memcache
- Registered serializer handlersphp php_binary
Next
- session.save_pathtcp://127.0.0.1:13000,tcp://127.0.0.1:12000
4)Testing
a)filesession.php
- php
- session_start();
- $_SESSION['username'] = "abcabc";
- echo session_id();
- ?>
b)sessionfile
- php
- $mem = new Memcache;
- $mem->addServer("127.0.0.1″,12000) or die ("Could not add server 12000″);
- $mem->addServer("127.0.0.1″,13000) or die ("Could not add server 13000″);
- $val = $mem->get('qp0mrob2ovcqle3u4lbr4obsa5');
- echo $val;
- ?>
c)
- username|s:6:"abcabc";
Original URL: http://blog.phpha.com/archives/790.html