多台服务器 session如何解决

2016-07-07 15:02 来源:www.chinab4c.com 作者:ecshop专家

2台应用服务器。想共享ecshop session.怎么解决?
cls-session.php
ecshop session 是不是根据用户的cookies来查询esc_sessi**表,从而判断用户是否登录等

echsop session是不写session 文件的吗?

回答:
session写入数据库 当然可以多服务器共享会话

2台服务器是在同个局域网内。
可以直接用内网IP访问

现在我2台服务器共用一个mysql数据库,也就是共用一个session表,可是。为什么不能登录?
如果我只用一台服务器。那就可以。

2台服务器是都可以用内网IP访问的,而且是共用一个数据库
可是2台服务器用户都不能登陆,如果只用一台的话。那就可以?

如果是开负载均衡,那么一台和两台其实是一样的,用户只是访问其中的一台,并不会同时访问两台。

我采用的是nginx代理。2台服务器轮询的方式
2台服务器是共用一台数据库服务器的
所以表肯定是用同一个。但是就是登陆不了?

我想了解一下ecshop是怎么验证session? 好像没有写session 文件

cls_session.php
line:137
  1. return sprintf('%08x', crc32(!empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] . ROOT_PATH . $ip . $session_id : ROOT_PATH . $ip . $session_id));
复制代码
你自己输出一下看 两个服务器有什么不同, 问题可能出在这里

ROOT_PATH
2台服务器的程序目录不一样。
难道是这个原因?如果是的话。我直接在gen_session_key这个函数里。把ROOT_PATH改了。是否可以?

搞定了。我直接修改其中一台服务器的ROOT_PATH

谢谢你们