【发布时间】:2020-09-29 23:56:04
【问题描述】:
我正在尝试使用 docker 容器设置本地 nginx 负载平衡 IDS(使用混合模型和 HTTPS)。
如果我将 IDS 缩放到 1,我可以成功登录。
当我扩展到 2 个或更多时,使用循环式平衡,我在尝试登录时被重定向到登录页面。
初始登录尝试命中 IDS1,然后登录的第二个请求部分命中 IDS2,返回以下错误:No endpoint entry found for request path: /Account/Login [IdentityServer4.Hosting.EndpointRouter]
我已验证两个 IDS 都已启动并正在运行,如果我点击发现文档,我可以看到 nginx 轮询它,并且每次都得到成功的结果。
编辑:我不再收到错误消息,但是当我尝试登录进入 IDS2 的登录的第二个请求部分时,我仍然表现得好像我不在登录过程中并带我进入登录页面。
【问题讨论】:
-
有点不相关,但您在两个服务中是否拥有相同的 DataProtection 密钥和签名密钥?
-
@ToreNestenius 所以更新了这个问题,这个错误不再发生(我在启动时的配置中更改了 app.UseIdentityServer() 的顺序。但它背后的真正问题仍在发生(IDS2 认为您根本没有登录并重定向回登录)。
-
@ToreNestenius 至于你关于 DataProtection 密钥的问题,我目前只使用 IdentityServer.AddSignedCredential(certificate) 添加 X509Certificate2,我目前不使用 .AddDataProtection()。
-
希望我下面的回答是可以接受的。 :-)
标签: asp.net-core nginx https load-balancing identityserver4