2017-07-19 104 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 
相關問題