Node.js connect.session与节点azure一起工作吗

Node.js connect.session与节点azure一起工作吗,node.js,azure,connect,everyauth,Node.js,Azure,Connect,Everyauth,我开始在azure上使用node.js开发应用程序。我使用everyauth提供身份验证,因为我想支持许多不同的身份验证方法。我计划部署到Azure。我遇到的潜在问题是everyauth需要connect.session助手。在运行多个实例时,这是否适用于azure?或者我需要其他会话提供程序吗?我从未在Azure上使用过Node.js,但是: 埃维雅思 查看everyauth的文档,有一种针对Windows Azure ACS进行身份验证的方法。请参阅中标题为“设置Windows Azure访

我开始在azure上使用node.js开发应用程序。我使用everyauth提供身份验证,因为我想支持许多不同的身份验证方法。我计划部署到Azure。我遇到的潜在问题是everyauth需要connect.session助手。在运行多个实例时,这是否适用于azure?或者我需要其他会话提供程序吗?

我从未在Azure上使用过Node.js,但是:

埃维雅思 查看
everyauth
的文档,有一种针对Windows Azure ACS进行身份验证的方法。请参阅中标题为“设置Windows Azure访问控制服务(ACS)身份验证”的部分。这里没有关于它不能在Azure上工作的注释,所以我可以由此推断,您可以在Azure上使用它

连接azure 还有一个名为的项目,它似乎正在使用
connect.session
,因此我再次推断它将在Azure上工作

联系Azure支持 如果你已经是客户,你可以

试试看
因此,如果你有Azure环境设置,我肯定会说它值得一试。

这是前一段时间提出的问题,但我想我还是会尝试一个答案。连接会话似乎依赖cookies来维护会话。Azure具有不同的负载平衡策略,具体取决于您使用的内容:

  • WebRole/WorkerRole-LB没有任何关联性,因此来自客户端的请求可能会在不同的后端实例中结束。这将取消会话管理连接正在执行的任何操作。这是分布式云架构的一个副作用:您不希望任何后端节点成为真相的来源,因为它可能会崩溃。因此,您需要做的是找出如何将connect的cookie存储外部化,并让所有后端共享它。这样,无论哪个后端接收到请求,它都会知道会话

  • 网站-在这种情况下,LB实际上会尝试将客户端连接固定到给定的后端实例,因此基于cookie的会话可以在没有任何更改的情况下工作。如上所述,您正在牺牲故障切换


谢谢你看这个。设置测试环境的问题是,如果它是一个问题,那么这种问题只会偶尔出现。如果Azure将会话存储在本地,而您不总是访问同一台机器(没有粘性会话),这将是一个问题。此外,我目前正在测试环境中工作,在不得不安装实时服务器之前,我不想安装实时服务器。connect azure可能很有用,它将默认会话提供程序替换为表存储,因此如果默认提供程序不起作用,我可能会使用它。