我想创建一个无状态服务器,以便如果任何服务器停机,负载均衡器可以将请求重定向到其他服务器。但是,如果会话是在一台服务器上创建的,并且它停滞了,那么如何保存它。我正在使用mysqlstore将会话保存在数据库中,但是对于每台服务器,它会在数据库中创建一个新记录,因此会话ID不会跨不同的服务器所以,需要一种使服务器无状态的机制。如何在nodejs中跨服务器共享会话?
0
A
回答
1
我猜你正在使用express-session
,因为它没有其他说明。
你在mysqlstore的正确轨道上。解决Node的单线程问题的方法是消除express-session
,然后加密会话数据并将其放入客户端Cookie中。然后,您可以在GET请求上解密会话数据,并使用cookie中的隔离键在数据库中对其进行验证(如果不存在,则创建新的会话/ cookie对)。
为此,最流行的Node.js中间件是cookie-session.
伟大的文档,以及。
https://github.com/expressjs/cookie-session
作为一个侧面说明,因为它听起来就像你在一个非常可扩展的地方,现在有多个服务器,这是值得开沟express-session
反正。 express-session
使用MemoryStore,它存在内存泄漏的已知问题。很好用于较小的项目,但可能应该重新考虑更大的项目。
相关问题
- 1. 在rails服务器和php服务器之间共享会话
- 2. 如何跨子域共享symfony2会话
- 3. 在共享服务器上安装nodejs
- 4. Node.js - 如何在http服务器和网络服务器之间共享会话?
- 5. Web服务中的会话共享
- 6. 共享会话使用会话状态服务器
- 7. 跨多个WCF服务共享会话托管在同一台机器上
- 8. 在Angular2中跨服务共享数据
- 9. WCF服务之间的共享会话
- 10. 会话在同一服务器上的多个域上共享
- 11. 在同一台服务器上的域之间共享会话
- 12. 与Symfony 2.8在ovh共享服务器上丢失的会话
- 13. Node.js Express - 在不同服务器上共享Passport会话
- 14. 跨节点应用共享Redis会话
- 15. 跨域的PHP共享会话
- 16. Tomcat6.0.20上的跨域共享会话
- 17. rails 4共享会话跨子域
- 18. 如何在本地IIS跨端口共享会话?
- 19. 跨多个客户端服务器请求和多个服务器之间共享会话
- 20. 如何在java服务器上共享套接字连接会话
- 21. 如何使用web服务共享Web应用程序会话
- 22. 状态服务器不共享会话的IIS 7.5服务器场
- 23. 共享会话
- 24. 共享会话
- 25. ASP.NET会话ID - 跨服务器唯一
- 26. 检查跨服务器的会话
- 27. 与erlang服务器共享导轨会话
- 28. Amazon EC2多个服务器共享会话状态
- 29. 服务器端共享会话的场景是什么?
- 30. 2台服务器之间的共享会话
根据定义,无状态应用程序不会维护会话。会话是状态。你确定你问的是正确的问题吗? – Paul
如果服务器出现故障,您不必担心重定向。 AWS ELB自动将其标记为不健康,并将流量发送到连接到负载平衡器的另一台运行状况服务器。 – error2007s
使用应用程序控制会话粘性http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-sticky-sessions.html#enable-sticky-sessions-application – error2007s