我有一个部署到Heroku的Sinatra应用程序。
我想通过puma.rb
配置文件配置Puma以拥有多个工作人员,但自述文件中的两个示例仅显示如何将“服务器名称”传递给Procfile
,但它没有' t显示如何传递配置:
方法1
bundle exec ruby app.rb -s puma
方法2
require 'sinatra'
configure { set :server, :puma }
这里列出的所有方法都遇到了同样的问题:https://github.com/puma/puma/issues/13#issuecomment-7391148
我的配置位于puma.rb
:
workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['THREAD_COUNT'] || 5)
threads threads_count, threads_count
如果有帮助的话,这是我的config.ru
:
require './app'
run Sinatra::Application
我实际上尝试在Procfile
中执行此操作:
bundle exec puma -c puma.rb
哪个在本地工作得很好但在生产中死了,但没有生成日志所以我不知道出了什么问题。
答案 0 :(得分:1)
答案 1 :(得分:1)
我解决了这个问题(问题是我错过了puma.rb
配置中的其余代码)
<强> Procfile 强>
web: bundle exec puma -C puma.rb
<强> puma.rb 强>
workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['THREAD_COUNT'] || 5)
threads threads_count, threads_count
rackup DefaultRackup
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'development'
<强> config.ru 强>
require './app'
run Sinatra::Application