CouchDB群集身份验证

CouchDB群集身份验证,couchdb,Couchdb,我能够设置一个包含3个节点的Couchdb集群,并使用HAProxy在这三个节点之间进行负载平衡。我添加了两个数据库、两个文档,一切都按预期进行 我的问题是身份验证,我通过cookie使用身份验证,问题是cookie似乎只在发出cookie的节点中有效,其他两个节点告诉我我没有所需的授权 我知道HAProxy中的“sticky session”配置,但我不想使用它,因为我的应用程序需要,单个客户端负载必须通过所有三个couchdb节点进行平衡,因此必须对所有三个节点使用cookie 我也知道使用

我能够设置一个包含3个节点的Couchdb集群,并使用HAProxy在这三个节点之间进行负载平衡。我添加了两个数据库、两个文档,一切都按预期进行

我的问题是身份验证,我通过cookie使用身份验证,问题是cookie似乎只在发出cookie的节点中有效,其他两个节点告诉我我没有所需的授权

我知道HAProxy中的“sticky session”配置,但我不想使用它,因为我的应用程序需要,单个客户端负载必须通过所有三个couchdb节点进行平衡,因此必须对所有三个节点使用cookie

我也知道使用基本身份验证可以解决我的问题,但我不想在客户端保留密码


那么,有没有办法使节点a发布的cookie在节点B和节点C中有效?假设所有3个节点都有相同的用户和相同的管理员凭据(相同的用户名、密码)。

是,它们的配置必须相同,以尊重彼此发布的cookie。如果未设置密码,则每个节点将随机分别生成该密码,从而导致它们拒绝来自其他节点的cookie。

是的,它们的配置必须相同,以尊重彼此发布的cookie。如果您没有设置机密,则每个节点都会随机分别生成该机密,从而导致它们拒绝来自其他节点的cookie。

我现在面临完全相同的问题,下面的答案(尽管是文档状态)对我不起作用。你解决过这个问题吗?在这种情况下,我遇到的问题是:我在测试设置中使用
COUCHDB_user
COUCHDB_PASS
环境变量设置管理员用户。这将为每个节点创建一个新的salt,使会话仅对单个节点有效。相反,我在ini文件中指定了我的管理员用户,并使loadbalanced集群正常工作。我现在面临完全相同的问题,下面的答案(尽管这是docs的状态)对我不起作用。你解决过这个问题吗?在这种情况下,我遇到的问题是:我在测试设置中使用
COUCHDB_user
COUCHDB_PASS
环境变量设置管理员用户。这将为每个节点创建一个新的salt,使会话仅对单个节点有效。相反,我在ini文件中指定了我的管理员用户,并使loadbalanced集群正常工作。