我的Web应用程序生产部署位于负载均衡器后面的2台服务器上。
我正在使用带有会话进行身份验证的护照(本地策略)。
当应用程序在一台服务器上运行时,一切正常,但在生产中,一台服务器无法识别其他服务器建立的cookie /会话(每个请求都会被randomally发送到另一台服务器,我无法控制它) 。
结果 - 在尝试访问需要身份验证的页面时(即使我登录后),我被重定向到登录页面。
如何让两台服务器创建一个他们都识别的会话cookie (显然我对快速会话中间件使用了相同的秘密)。
谢谢,
阿龙
答案 0 :(得分:1)
选项1
将负载均衡器配置为始终将相同的ip路由到同一台计算机。改变网络的用户可能会遇到问题。
选项二
使用运行数据库的第三台计算机并设置express.session(以及任何其他数据库连接)以将该计算机用作存储。 This question/answer提到了如何使用mongoose / mongodb。
我认为这是更常见的解决方案,但如果您不需要第三台机器,当然会更昂贵。