我在两个Ubuntu Server虚拟机上使用PHP 5.4.9在云端“托管”了Windows Azure和Magento Enterprise,在很多不同的域/子域下,这意味着很多页面意味着大量的爬行机器人。 70%的流量必须是机器人爬行。
几周前,我们开始遇到一个奇怪的问题,即用户开始看到其他用户的帐号。我们激活了会话验证(检查IP /用户代理)。如果会话不匹配,则会使用新的session_id重定向到主页。
在任何时候我们都会存储50k会话(机器人会话仅持续2分钟),96%是机器人会话。
由于某些未知原因,我们正在获取已经提供给其他用户或机器人的会话,我们没有更改与会话相关的Magento代码,PHP是生成session_id的代码。会话存储在Redis中,但我们尝试将它们存储在MySQL和具有相同问题的文件中。
欢迎任何想法。
答案 0 :(得分:0)
如果你正在使用Redis和Magento,那么你需要启用Cm_Redis模块。它包含在CE1.8和EE1.13中,但您需要为早期版本下载它。
如果您使用的EE低于1.13,请尝试使用Collin Mollenhour(Cm_RedisSession中的CM)中的此模块。
https://github.com/colinmollenhour/Cm_RedisSession
我意识到你有或没有Redis的问题,但如果你遇到会话问题的唯一地方是Magento,那么你似乎有配置问题。使用此模块启用Redis可能有所帮助。
答案 1 :(得分:0)
在我的情况下,最终并不是redis。基本上尝试检查所有的php请求(包括ajax的)标头,并尝试找出会话cookie请求标头值与响应标头cookie值不同的错误。
注意:对于登录/注册请求,此行为很好。除此之外,它不应该发生(在我的情况下,captha请求是错误的。)