gpt4 book ai didi

ruby-on-rails - 当 session 存储在 memcached (Rails) 中时,用户会获取其他用户的 session

转载 作者:行者123 更新时间:2023-12-03 22:30:54 31 4
gpt4 key购买 nike

在 Memcached 中存储我的 session 时,我遇到了一个非常奇怪的问题。有时,一些用户会占用其他用户的 session 。例如。 John 以 Maria 的身份登录,Maria 以 Chris 的身份登录,依此类推。

我使用 Rails 2.3.4,但在早期版本的 Rails 中也出现了同样的问题。我只使用一台 Memcache 服务器,它在同一台机器上运行。调试这个的问题是我无法重现它。

如果有人能指导我如何解决这个问题或调试它,我会很高兴。如果您使用 Memcached 进行 session 并分享您的示例配置,我也会很高兴。

这些是我的配置:

# memcache options
memcache_options = {
:c_threshold => 10_000,
:compression => false,
:debug => false,
:namespace => 'app_prod',
:readonly => false,
:urlencode => false,
}
memcache_servers = ['localhost:11211']

CACHE = MemCache.new(memcache_options)
CACHE.servers = memcache_servers

config.cache_store = :mem_cache_store, memcache_servers, memcache_options
config.action_controller.session_store = :mem_cache_store
config.action_controller.session = {
:session_key => '_appname',
:cache => CACHE,
# :expires => 10,
# :session_expires => 10,
:secret => '5391aaaaaaaaaa56f8e8234beb638b97b32bbbbbbbbbbcc9dcae2beccccccccc89e8b508328def001a368da0678b061eb0e9d5a82a5ac94c8d35bd31a9a49e1'
}

先感谢您,
斯坦

最佳答案

我已经看到了这一点,发现调试起来非常困难。

如果您使用的是乘客,您可能需要考虑使用保守的方法来生成新服务器。

默认方法让服务器共享一个单独的套接字到内存缓存。

文档更详细地讨论了它。
http://www.modrails.com/documentation/Users%20guide%20Apache.html#_example_1_memcached_connection_sharing_harmful

关于ruby-on-rails - 当 session 存储在 memcached (Rails) 中时,用户会获取其他用户的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1524187/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com