如何将配置文件传递给 Puma & Sinatra?
How to pass config file to Puma & Sinatra?
我有一个部署到 Heroku 的 Sinatra 应用程序。
我想通过 puma.rb
配置文件配置 Puma 以拥有多个 worker,但自述文件中的两个示例仅显示如何将 'server name' 传递给 Procfile
,但是它没有显示如何传递配置:
方法一
bundle exec ruby app.rb -s puma
方法二
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
它在本地运行完美,但在生产中就死机了,但没有生成日志,所以我不知道出了什么问题。
尝试大写 C
而不是 c
bundle exec puma -C puma.rb
我这样解决了问题(问题是我缺少 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
我有一个部署到 Heroku 的 Sinatra 应用程序。
我想通过 puma.rb
配置文件配置 Puma 以拥有多个 worker,但自述文件中的两个示例仅显示如何将 'server name' 传递给 Procfile
,但是它没有显示如何传递配置:
方法一
bundle exec ruby app.rb -s puma
方法二
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
它在本地运行完美,但在生产中就死机了,但没有生成日志,所以我不知道出了什么问题。
尝试大写 C
而不是 c
bundle exec puma -C puma.rb
我这样解决了问题(问题是我缺少 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