可以单独将Puma作为网络服务器运行吗?

时间:2020-05-17 00:45:53

标签: ruby puma

我跟随the instruction

gem install puma
puma

但是它无法启动Web服务器,并且应该寻找config.ru。 Puma是否必须与Rack and Rails一起使用? Puma可以作为独立的Web服务器运行吗?

2 个答案:

答案 0 :(得分:1)

是否可以在没有机架的情况下将Puma作为Web服务器运行?

否。

像Thin和Unicorn这样的PUMA是机架式服务器。 Rack实际上只是一个基本的通用网关接口,除非您想build a server from scratch out of curiosity,否则我真的看不到为什么不使用Rack就想在Ruby中构建任何类型的Web应用程序。

构建basic hello world app with rack很简单:

# config.ru
run ->(env) { [200, {"Content-Type" => "text/html"}, ["Hello World!"]] }

Puma必须和Rack and Rails一起使用吗?

对于我所知道的任何Rack服务器,Rails都不是必需的。

答案 1 :(得分:1)

是的。有点。

如果您想知道,您不必安装机架 gem。但也许这是因为 Puma 包含它自己的机架构建器/处理程序。

https://medium.com/@lfv89/rackless-ruby-servers-why-not-a9f8430067dd

这是实际的代码片段:

/puma-5.1.1/lib/puma/configuration.rb:328

  begin
    require 'rack'
    require 'rack/builder'
  rescue LoadError
    # ok, use builtin version
    return Puma::Rack::Builder
  else
    return ::Rack::Builder
  end