在 AWS 上使用 Redis 作为 session_store 实现多个 Rails / Unicorn 服务器之间的会话持久化

在 AWS 上使用 Redis 作为 session_store 实现多个 Rails / Unicorn 服务器之间的会话持久化

我有 2 个 nginx EC2 实例,它们以循环负载平衡配置指向 2 个 Unicorn EC2 实例。这两个 nginx 实例是 Elastic Load Balancer。

两个 Unicorn 实例都配置了 Redis session_store,它采用主/从配置,并在主实例上附加了弹性 IP。

我尝试在负载均衡器上配置会话粘性,但每次刷新页面时会话都会丢失。

我正在使用 redis-store gem 进行 session_store 配置和 redis 支持。

有人知道为什么这不起作用吗?

答案1

我找到了答案。在 nginx 配置文件的位置部分,我必须添加两个额外的代理参数:

proxy_next_upstream     error timeout invalid_header http_500;
proxy_connect_timeout   2;

相关内容