gpt4 book ai didi

ruby - 使用 passenger + nginx 设置的 ruby​​ 应用程序上的 session 随机丢失

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:47 25 4
gpt4 key购买 nike

我们有一个在 passenger + nginx 设置上运行的 sinatra 应用程序,目前我们面临 session 随机丢失的问题。我们还尝试禁用乘客的智能产卵,但没有成功。服务器负载和内存使用情况也很好。

但我们能够通过在 nginx 配置中设置 passenger_max_pool_size 1; 来解决这个问题。

为什么当池大小大于 1 时会发生此问题?
由于 passenger 无法生成新实例,此配置是否会导致我们的应用出现任何性能问题?

nginx 站点启用配置

 server {
listen 8082;
server_name 0.0.0.0;
root /home/deploy/manager/current/app/public;
passenger_ruby /usr/local/rvm/gems/ree-1.8.7-2012.02/wrappers/ruby;
passenger_enabled on;

}

最佳答案

您需要确保指定一个 session 密码,否则每次进程启动时都会自动生成一个,从而清除所有现有 session 。

例如:

use Rack::Session::Cookie, :key => 'rack.session', :path => '/', :secret => 'yoursessionsecretgoeshere'

编辑:池大小为 1 时没有问题,因为您只有一个进程在运行。如果您重新启动该过程,如果您没有 secret 集,您可能会看到 session 中断。

关于ruby - 使用 passenger + nginx 设置的 ruby​​ 应用程序上的 session 随机丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47404812/

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