ruby-on-rails - Phusion乘客 :Why passenger still kills rails process after set passenger_min_instances = 1?

标签 ruby-on-rails nginx passenger

我们的 rails 3.2 应用程序(部署在 passenger/nginx 上)使用 gem ruoteruote Worker(负责写入数据库)需要始终保持运行,ruote 才能正常工作。我们所做的是通过在 nginx.conf 中设置来保持至少一个实例始终运行:

passenger_min_instances 1;

但是,在大约 5 分钟 空闲时间后,ruote Worker 停止响应。重启nginx后,ruote worker又开始工作。我们不知道是什么乘客杀死了导致这个问题的。 在此处输入代码我们还需要在乘客中设置什么才能保持ruote worker 始终运行

最佳答案

这指定给定应用程序应存在的最小应用程序进程数。如果您想避免网站长时间闲置后启动时间过长,则应将此选项设置为非零值。

请注意,此选项不会在 Nginx 启动期间预启动应用程序进程。它只是确保首次访问应用程序时:

  1. 至少会生成给定数量的进程。

  2. 即使在空闲清理进程时,也会保留给定的进程数量(请参阅passenger_pool_idle_time)。

如果您想在 Nginx 启动期间预启动应用程序进程,那么您应该使用passenger_pre_start指令,可能与passenger_min_instances结合使用。乍一看,这种行为似乎有悖常理,但 Passenger_pre_start 解释了其背后的基本原理。

关于ruby-on-rails - Phusion乘客 :Why passenger still kills rails process after set passenger_min_instances = 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20625886/

相关文章:

ruby-on-rails - 没有要加载的文件 - Rails 3.2 中的 bundle 程序/设置与 Passenger

ruby-on-rails - 有没有办法避免自动更新 Rails 时间戳字段?

Docker compose 环境变量未在 nginx 中获取

nginx - 找到nginx版本了吗?

nginx - 如何将GET参数放在nginx重写规则中?

mysql - 如何更改或设置 "Passenger Pool Idle Time"?

ruby-on-rails - Rails 4 - 我如何自动检测用户的位置并将其显示在网络应用程序上?

ruby-on-rails - Ruby - string[i] = string[i].ord 错误

ruby-on-rails - RSPEC 测试名称错误 - 未定义的局部变量或方法

ruby-on-rails - ActionView::Template::Error(不兼容的字符编码:UTF-8 和 ASCII-8BIT)