0

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

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

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

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

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

谢谢,

阿隆

4

1 回答 1

1

选项1

将负载均衡器配置为始终将相同的 ip 路由到同一台机器。对于更改网络的用户来说可能会有问题。

选项二

使用第三台运行数据库的机器并设置 express.session(以及与此相关的任何其他数据库连接)以将该机器用作存储。这个问题/答案提到了如何使用 mongoose/mongodb。

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

于 2013-03-20T10:22:54.463 回答