1

我们有一个刚刚上线的网络应用程序。由于这用于多个公司网络,因此出现了一个特殊问题。

用户可以登录系统,但公司网络后面的用户会间歇性地登录/查看其他用户的个人资料。本质上,会话正在发生冲突。

这些是服务器上的当前设置:

$config['sess_cookie_name']     = 'cisession';
$config['sess_expiration']      = 72000;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

我们在亚马逊上,位于 LAMP 堆栈上的负载均衡器后面。

我们真的很努力,欢迎任何指点。谢谢!

4

1 回答 1

1

我不知道这是否会为您解决问题,但是我遇到了两个客户端的类似问题,这些客户端位于限制 HTTP 标头大小的代理后面。这通常不是问题,但是 Codeigniters 会话处理程序中有一个错误,它cookies:为每个会话变量写入一个新条目,而不是一次性完成所有这些。如果您设置了很多会话变量,这会导致 HTTP 标头变得臃肿,并且可能会在某些网络上导致问题。

我的建议是下载Live HTTP HeadersFirefox 并在使用该会话的页面上检查您网站的标题。如果您发现 的多个条目cookies:,则可能会导致您的问题。

为了解决这个问题,我建议使用您自己的会话库。试试 Dariusz Debowczyk的 Session Class,看看会发生什么。它为我修好了。

另一种选择是联系网络管理员以检查他们正在使用哪种代理(一些旧版本的 squid 代理给我的 codeigniters 会话带来了问题)以及他们是否对 HTTP 标头的大小施加了限制。

于 2013-09-13T14:26:57.290 回答