如何在rackup配置文件中设置服务器运行的相关选项?

2026-04-11 14:281阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计702个文字,预计阅读时间需要3分钟。

如何在rackup配置文件中设置服务器运行的相关选项?

我正在尝试配置服务器选项,比如I.E.端口、主机等,但在config.ru文件中找不到如何做到这一点的任何信息。我已经尝试将配置选项放入哈希中,然后执行:configure { set :server, config[:server][:handler].to }

我正在尝试设置服务器选项I.E.端口,主机等,但我在config.ru文件中找不到任何关于如何做到这一点.

我已经尝试将配置选项放入哈希,然后执行:

configure { set :server, config[:server][:handler].to_sym } Rack::Handler.default.run(App, config[:server])

还尝试过:

Rack::Handler::pick(['puma']).run App, config[:server]

乃至:

configure { set :server, config[:server].delete(:handler).to_sym }

这样处理程序将不会在服务器配置哈希中仍然…

没有骰子.

config hash是:

{ :handler => "puma", :host => "127.0.0.1", :port => 3000, :threads => "0:16", :verbose => true }

但是哈希配置只是被忽略了,我将端口设置为3000但是应用程序默认加载8080.

如何在rackup配置文件中设置服务器运行的相关选项?

还有关于没有运行命令存在的错误(很明显,我没有使用它).

所以解决这个问题也很不错.

我确信有一个正确的方法可以做到这一点,但为什么它很难找到它记录?我已经在谷歌中完成了尽可能多的搜索术语,但是没有任何完全正确的回复.

它没有很好地记录,因为大多数人不会做你想做的事情. :-)人们通常将他们的Puma配置存储在 config/puma.rb中,或者在命令行上传递它,例如:在Procfile中.

我将在这里假装你的应用程序是一个Sinatra应用程序或类似的东西.尝试在Sinatra configure {}块中设置这些选项的主要问题是,当rackup运行类并执行这些语句时,设置端口和线程池大小已经太晚了.至于缺少运行方法,我想你只想在config.ru中运行App.不确定你要去那里.

您可以通过在文件顶部添加Puma来告诉rackup使用Puma:

#\ -s Puma

如果要设置端口或任何其他rackup选项,可以这样做:

#\ -s Puma -p 3000

或者,对于Puma特定的选项:

#\ -s Puma -p 3000 -O Threads=0:16 -O Verbose=true

这(大部分)记录在Puma的README here和here中.

另一个选择是完全跳过rackup和config.ru,只需在Sinatra应用程序中构建所有内容:

require 'sinatra/base' require 'puma' class App < Sinatra::Application configure do set :server, :puma set :port, 3000 set :server_settings, :Threads => '0:16', :Verbose => true end run! if $0 == app_file end

然后你可以像任何普通的Ruby脚本一样运行你的应用程序,例如ruby app.rb.

在一天结束时,我强烈建议您探索创建Puma配置文件并使用它.它更简单,更清洁,更易理解.如果您需要从环境或其他方法或过程的结果中提取Puma设置,您可以在那里执行此操作.祝你好运.

本文共计702个文字,预计阅读时间需要3分钟。

如何在rackup配置文件中设置服务器运行的相关选项?

我正在尝试配置服务器选项,比如I.E.端口、主机等,但在config.ru文件中找不到如何做到这一点的任何信息。我已经尝试将配置选项放入哈希中,然后执行:configure { set :server, config[:server][:handler].to }

我正在尝试设置服务器选项I.E.端口,主机等,但我在config.ru文件中找不到任何关于如何做到这一点.

我已经尝试将配置选项放入哈希,然后执行:

configure { set :server, config[:server][:handler].to_sym } Rack::Handler.default.run(App, config[:server])

还尝试过:

Rack::Handler::pick(['puma']).run App, config[:server]

乃至:

configure { set :server, config[:server].delete(:handler).to_sym }

这样处理程序将不会在服务器配置哈希中仍然…

没有骰子.

config hash是:

{ :handler => "puma", :host => "127.0.0.1", :port => 3000, :threads => "0:16", :verbose => true }

但是哈希配置只是被忽略了,我将端口设置为3000但是应用程序默认加载8080.

如何在rackup配置文件中设置服务器运行的相关选项?

还有关于没有运行命令存在的错误(很明显,我没有使用它).

所以解决这个问题也很不错.

我确信有一个正确的方法可以做到这一点,但为什么它很难找到它记录?我已经在谷歌中完成了尽可能多的搜索术语,但是没有任何完全正确的回复.

它没有很好地记录,因为大多数人不会做你想做的事情. :-)人们通常将他们的Puma配置存储在 config/puma.rb中,或者在命令行上传递它,例如:在Procfile中.

我将在这里假装你的应用程序是一个Sinatra应用程序或类似的东西.尝试在Sinatra configure {}块中设置这些选项的主要问题是,当rackup运行类并执行这些语句时,设置端口和线程池大小已经太晚了.至于缺少运行方法,我想你只想在config.ru中运行App.不确定你要去那里.

您可以通过在文件顶部添加Puma来告诉rackup使用Puma:

#\ -s Puma

如果要设置端口或任何其他rackup选项,可以这样做:

#\ -s Puma -p 3000

或者,对于Puma特定的选项:

#\ -s Puma -p 3000 -O Threads=0:16 -O Verbose=true

这(大部分)记录在Puma的README here和here中.

另一个选择是完全跳过rackup和config.ru,只需在Sinatra应用程序中构建所有内容:

require 'sinatra/base' require 'puma' class App < Sinatra::Application configure do set :server, :puma set :port, 3000 set :server_settings, :Threads => '0:16', :Verbose => true end run! if $0 == app_file end

然后你可以像任何普通的Ruby脚本一样运行你的应用程序,例如ruby app.rb.

在一天结束时,我强烈建议您探索创建Puma配置文件并使用它.它更简单,更清洁,更易理解.如果您需要从环境或其他方法或过程的结果中提取Puma设置,您可以在那里执行此操作.祝你好运.