先上图: 分布式后,会员登录会遇到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专做这个网站。就是用这个配置就可实现跨越同步登陆的问题。 在日后的日子里要把“记住密码”这个功能也加上去。
|