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

标签 ruby kubernetes redis redmine

我有 2 个使用 Kubernetes 部署的 Redmine pod,由于 session 管理问题正在发生,所以一些用户因此无法登录,所以我想出了将两个 pod 的缓存存储在带有 Kubernetes 的 Redis 服务器(集中式)。
我在 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 不会在其缓存中存储任何 session 数据。因此,将两个 Redmine 配置为使用相同的缓存不会有帮助。

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

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

关于ruby - 运行 Redis 作为 Redmine 的外部缓存服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59268404/

相关文章:

ruby - 为什么在数组 O(1) 中查找?

kubernetes - Minikube启动失败: "node ' minikube' not found"

nginx - 使用Ingress Kubernetes公开流量

node.js - 如何向redis服务器发出post请求

ruby - 如何运行显示一些信息的 ruby​​ shell 脚本,然后要求输入并进入后台?

javascript - Ruby 的 splat 运算符在 JavaScript 中的等价物是什么?

ruby - 无法安装 bson_ext 1.8.2 gem

kubernetes - 如何处理可突发 k8s pod 的 CPU 争用?

php - 如何模拟一个类并覆盖一个方法

linux - 如何在与 ubuntu 中默认端口 6379 不同的端口上启动 redis-server