php web分布式后,memcache存session实现多域名跨域登录

先上图:


分布式后,会员登录会遇到session不统一的情况。所以我们就要找到一个地方让网站分布式的机器可以读到同一个session。方法有3个:

1.nfs将文件同步 (在各子机上配上这个软件就可以了,实现文件共享)

2.mysql (读同一个数据库,程序需添加,而且耗IO,最不建议使用)

3.memcache(将session存在内存,读写速度快,机子挂了神马都没有了,不过还是建议用这个)

php如何将session存入memcache?

1.在各需要会员session的机子中,php.ini都配上这个。


[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
;session.cookie_domain = ".a.com"  不知道为什么在这里配起不了作用,要在php代码上写ini_set('session.cookie_domain','.a.com');才起作用
;session.cookie_path = "/"
;session.cookie_lifetime = "1800"
;session.use_trans_sid = "1"<span style="white-space:pre">	</span>
session.save_handler = memcache

; Argument passed to save_handler.  In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
;
; The path can be defined as:
;

session.save_path = "tcp://192.168.1.17:11211"


2.在网站应用中,在sessio_start()前写上

ini_set('session.cookie_domain','.a.com');
session_start()


就这样就可以了,我用多bulutu.a.com,myweb.a.com这两个个域名分布在不同的机子上做轮询,用另外一台机子做abc.a.com专做这个网站。就是用这个配置就可实现跨越同步登陆的问题。

在日后的日子里要把“记住密码”这个功能也加上去。


你可能感兴趣的:(数据库,程序,store,神马,会员登录)