两个服务器上的Passport会话

时间:2013-03-20 10:11:10

标签: node.js passport.js

我的Web应用程序生产部署位于负载均衡器后面的2台服务器上。

我正在使用带有会话进行身份验证的护照(本地策略)。

当应用程序在一台服务器上运行时,一切正常,但在生产中,一台服务器无法识别其他服务器建立的cookie /会话(每个请求都会被randomally发送到另一台服务器,我无法控制它) 。

结果 - 在尝试访问需要身份验证的页面时(即使我登录后),我被重定向到登录页面。

如何让两台服务器创建一个他们都识别的会话cookie (显然我对快速会话中间件使用了相同的秘密)。

谢谢,

阿龙

1 个答案:

答案 0 :(得分:1)

选项1

将负载均衡器配置为始终将相同的ip路由到同一台计算机。改变网络的用户可能会遇到问题。

选项二

使用运行数据库的第三台计算机并设置express.session(以及任何其他数据库连接)以将该计算机用作存储。 This question/answer提到了如何使用mongoose / mongodb。

我认为这是更常见的解决方案,但如果您不需要第三台机器,当然会更昂贵。

相关问题