2017-07-19 62 views
0

我有一个部署到Heroku的Sinatra应用程序。如何将配置文件传递给Puma&Sinatra?

我想通过puma.rb配置文件配置Puma以拥有多个worker,但自述文件中的两个示例仅显示如何将“服务器名称”传递给Procfile,但它不显示如何传递配置:

方法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

我解决了这个问题,因为这样的(问题是我缺少的代码在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 
相关问题