phusion passenger 是否使用 fork ?如果是这样,我应该在哪里设置 after_fork 配置,as recommended by Heroku for unicorn(re:使用 Rails 设置 PostGIS)?

来自 Heroku 的文档:

此外,如果在重新建立连接的地方使用 unicorn 或任何其他进程分支代码 ,请确保也将适配器覆盖为 postgis。例如:

# unicorn.rb
after_fork do |server, worker|
  if defined?(ActiveRecord::Base)
    config = Rails.application.config.database_configuration[Rails.env]
    config['adapter'] = 'postgis'
    ActiveRecord::Base.establish_connection(config)
  end
end

最佳答案

是的,Phusion Passenger 会 fork ,几乎和 Unicorn 的做法一模一样。 Unicorn 的默认行为 ( preload_app off ) 与 Phusion 乘客的“直接生成”相同(不是 Phusion 乘客的默认行为)。 Unicorn 的 preload_app on 与 Phusion Passenger 的“智能生成”相同(Phusion Passenger 中的默认设置)。资料来源:

  • passenger_spawn_method documentation
  • Appendix C: Spawning methods explained

  • 后者还教你如何安装后叉钩。

    10-08 16:20