ruby - 如何使用 Puma 或 Unicorn 启动一个最小的 ruby​​ 应用程序?

标签 ruby unicorn thin puma

我有一个在 Thin 上运行的非常基本的 ruby​​ 示例,但我想知道如何将此示例转换为使用 Unicorn 或 Puma 作为 HTTP 服务器。这是我现在的代码:

require 'rack'

class HelloWorld
  def talk()
    return "Hello World!"
  end
end

class SomeServer
  def start(server_object, port)
    app = proc do |env|
      [ 200, {"Content-Type" => "text/html"}, [server_object.talk()] ]
    end

    Rack::Handler::Thin::run(app, :Port => port)
  end
end

SomeServer.new.start(HelloWorld.new, 3000)

这运行得很好,但我不知道如何使用 Puma 或 Unicorn 来运行它。我找到的关于这两者的大多数在线文档都是针对 Rails 应用程序的。我如何通过这个简单的程序利用这些服务器的多线程功能?

最佳答案

使用 sinatra

所以要逐步安装 sinatra 和 puma gems

gem install sinatra

gem install puma

然后创建一个文件myapp.rb

require 'sinatra'
configure { set :server, :puma }

get '/' do
  "Hello World!"
end

然后运行文件

ruby myapp.rb

默认情况下 sinatra 监听 4567 所以去 localhost:4567 您可以配置 puma 以监听特定端口或使用配置文件做很多其他事情阅读 documentation

关于ruby - 如何使用 Puma 或 Unicorn 启动一个最小的 ruby​​ 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22849809/

相关文章:

sql - Activerecord 将具有相同列值的行合并为一个

jquery - 如何让 jQuery 与 PhantomJS、Poltergeist 和 Capybara 一起工作

ruby-on-rails - unicorn 未能在 USR2 信号上产生 worker

ruby - 为什么 Ruby 在 windows server 上比在 windows dev 机器上运行慢得多?

ruby-on-rails - 如何调试/修复随机发生的 Redis::TimeoutError?

arrays - 如何将嵌套数组转换为散列或 JSON 值作为数组

ruby-on-rails - 如何使用 Unicorn 进行滚动重启?

ruby - Unicorn 认为什么是 "fast"和 "slow"请求?

ruby - Puma 登录到哪里

ruby - 使用 thin 时如何选择证书颁发机构文件?