这是我的网络应用:
class Front < Sinatra::Base
configure do
set :server, :puma
end
get '/' do
'Hello, world!'
end
end
Run Code Online (Sandbox Code Playgroud)
我这样开始(不建议使用Rack):
Front.start!
Run Code Online (Sandbox Code Playgroud)
这是Puma的配置对象,我不知道如何传递给它:
require 'puma/configuration'
Puma::Configuration.new({ log_requests: true, debug: true })
Run Code Online (Sandbox Code Playgroud)
说真的,怎么样?
配置与运行puma服务器的方式紧密相关.
标准的运行方式puma- pumaCLI命令.为了配置puma配置文件config/puma.rb或config/puma/<environment>.rb应该提供(参见示例).
但是你问过如何将Puma::Configuration对象传递给puma.我想知道为什么你需要它,但AFAIK你需要puma在你的应用程序代码中以编程方式运行服务器Puma::Launcher(参见源代码)
conf = Puma::Configuration.new do |user_config|
user_config.threads 1, 10
user_config.app do |env|
[200, {}, ["hello world"]]
end
end
Puma::Launcher.new(conf, events: Puma::Events.stdio).run
Run Code Online (Sandbox Code Playgroud)
user_config.app可以是任何可调用对象(与Rack接口兼容),如Sinatra应用程序.
希望它有用.
小智 5
您想传递一个对象还是只是传递一个一般配置?对于最后一个选项,这是可能的,但 Puma 无论如何都不会记录任何内容(我不确定,但似乎您完全担心 Puma 的日志设置)。
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'bundler/inline'
gemfile(true) do
gem 'sinatra'
gem 'puma'
gem 'openssl'
end
require 'sinatra/base'
class Front < Sinatra::Base
configure do
set :server, :puma
set :server_settings, log_requests: true, debug: true, environment: 'foo'
end
get '/' do
'Hello, world!'
end
end
Front.start!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |