我在Appfog上运行了node.js的多个实例。因为我使用engine.io,所以我需要粘性会话。当我创建多个实例时,engine.io(使用http长轮询)无法正常工作 - 此外,passport.js身份验证也失败了。我假设这是由于会话亲和力不当造成的。我将会话cookie密钥设置为:jsessionid基于此处的cloudfoundry文章:http://blog.cloudfoundry.com/2013/01/24/scaling-real-time-apps-on-cloud-foundry-using-node-js-and-redis。从服务器日志开始,在engine.io poll / write请求期间,jsessionid cookie在服务器端正确显示。 AppFog负载均衡器是否根据请求中的“jsessionid”cookie使用会话亲和性?
附加说明:如果我清除客户端cookie并访问该站点,则在重新启动实例之前,passport和engine.io似乎都在工作。
答案 0 :(得分:0)
我想我已经使用http://blog.cloudfoundry.com/2013/01/中给出的信息解决了这个问题。基本上,jsessionid在服务器重启后对于会话亲和性变得无效,我们必须刷新会话。