Sinatra 使用 Thin 而不是 Puma
Sinatra is using Thin instead of Puma
我正在构建一个需要线程化的 Sinatra 应用程序,因为我正在使用 sucker-punch 进行作业,我想使用 Puma 服务器来完成它,尽管我以前从未使用过它。
出于某种原因,当我启动我的应用程序时,它会运行 Thin。
我卸载了 Thin,它使用 Puma,这很好,但是如果再次发生这种情况,我该如何阻止它在以后使用 Thin?
我用 rackup
开始我的应用程序,我的主 app.rb 文件中有:
class App < ::Sinatra::Base
configure do
set :show_exceptions, true
set :root, Info[:root]
set :threaded, true
set :server, :puma
Tilt.register Tilt::ERBTemplate, 'html.erb'
enable :logging
use Rack::CommonLogger, Log.file
if ENV['APP_ENVIRONMENT'] == 'PROD'
set :environment, :production
set :bind, '0.0.0.0', HOST
set :show_exceptions, false
end
end
end
只是 运行 它与 bundle exec
。这可确保可用的 gem 仅是您的 Gemfile 中指定的 gem。
所以,即使你安装了 thin,但你的 Gemfile 上有 puma,它也会选择 puma。
您需要在 config.ru
rackup 文件中设置您的服务器。在此文件中,您可以设置
Rack::Handler.get('puma').run App.new
文档在“Module: Rack::Handler”中可用。
然而,更好的方法是 运行 Puma 明确:
bundle exec puma config.ru
或按照@matt 的建议:
rackup -s puma
我正在构建一个需要线程化的 Sinatra 应用程序,因为我正在使用 sucker-punch 进行作业,我想使用 Puma 服务器来完成它,尽管我以前从未使用过它。
出于某种原因,当我启动我的应用程序时,它会运行 Thin。
我卸载了 Thin,它使用 Puma,这很好,但是如果再次发生这种情况,我该如何阻止它在以后使用 Thin?
我用 rackup
开始我的应用程序,我的主 app.rb 文件中有:
class App < ::Sinatra::Base
configure do
set :show_exceptions, true
set :root, Info[:root]
set :threaded, true
set :server, :puma
Tilt.register Tilt::ERBTemplate, 'html.erb'
enable :logging
use Rack::CommonLogger, Log.file
if ENV['APP_ENVIRONMENT'] == 'PROD'
set :environment, :production
set :bind, '0.0.0.0', HOST
set :show_exceptions, false
end
end
end
只是 运行 它与 bundle exec
。这可确保可用的 gem 仅是您的 Gemfile 中指定的 gem。
所以,即使你安装了 thin,但你的 Gemfile 上有 puma,它也会选择 puma。
您需要在 config.ru
rackup 文件中设置您的服务器。在此文件中,您可以设置
Rack::Handler.get('puma').run App.new
文档在“Module: Rack::Handler”中可用。
然而,更好的方法是 运行 Puma 明确:
bundle exec puma config.ru
或按照@matt 的建议:
rackup -s puma