Common SESSION Synchronization Mechanisms in Web Clusters

             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

  1. /usr/local/bin/memcached d m 1024 c 3000 u uenucom p 12000 P ./memcached.pid
  2. /usr/local/bin/memcached d m 1024 c 3000 u uenucom p 13000 P ./mem.pid

2)phpConfiguration

  1. vi /usr/local/php/lib/php.ini
  2. session.save_handler = "memcache"
  3. memcache.hash_strategy = "consistent"
  4. session.save_path = "tcp://127.0.0.1:13000?weight=10,tcp://127.0.0.1:12000"

Description:,sessionmemcache;,memcachehashconsistent;,session;
3)apache
phpinfo

  1. session
  2. Session Supportenabled
  3. Registered save handlersfiles user sqlite memcache
  4. Registered serializer handlersphp php_binary

Next

  1. session.save_pathtcp://127.0.0.1:13000,tcp://127.0.0.1:12000

4)Testing
a)filesession.php

  1. php
  2. session_start();
  3. $_SESSION['username'] = "abcabc";
  4. echo session_id();
  5. ?>

b)sessionfile

  1. php
  2. $mem = new Memcache;
  3. $mem->addServer("127.0.0.1″,12000) or die ("Could not add server 12000″);
  4. $mem->addServer("127.0.0.1″,13000) or die ("Could not add server 13000″);
  5. $val = $mem->get('qp0mrob2ovcqle3u4lbr4obsa5');
  6. echo $val;
  7. ?>

c)

  1. username|s:6:"abcabc";

Original URL: http://blog.phpha.com/archives/790.html

Leave a Comment

Your email address will not be published.