运行 Redis作为Redmine的外部缓存服务器

Running Redis as an external cache server for Redmine

我有 2 pods 的 Redmine 部署了 Kubernetes 由于这个问题会话管理问题正在发生所以一些用户因此无法登录所以我想出了存储Redis 服务器与 Kubernetes(集中式)的 pods 缓存。
我在位置的 Redmine pod 中提供以下配置。 /opt/bitnami/redmine/config/application.rb

配置

config.cache_store = :redis_store, {
  host: "redis-headless.redis-namespace",  #service name of redis 
  port: 6379,
  db: 0,
  password: "xyz",
  namespace: "redis-namespace"
}, {
  expires_in: 90.minutes
}

但这并没有像预期的那样工作。在我做错的地方需要帮助。

Redmine 不会在其缓存中存储任何会话数据。因此,将您的两个 Redmines 配置为使用相同的缓存将无济于事。

默认情况下,Redmine 将用户会话存储在发送到用户浏览器的签名 cookie 中,没有任何服务器本地会话存储。由于会话 cookie 是用私钥签名的,因此您需要确保使用相同会话的所有安装也使用相同的应用程序机密(以及代码和数据库)。

根据您设置 Redmine 的方式,此机密通常存储在 config/initializers/secret_token.rbconfig/secrets.yml(相对于您的 Redmine 安装目录)中。确保你在两个 Redmines 上使用相同的秘密。