【问题标题】:Unicorn web server questions独角兽网络服务器问题
【发布时间】:2014-03-14 19:30:05
【问题描述】:

我最近在我的Gemfile 中发现了这一行:

# Use unicorn as the app server
# gem 'unicorn'

我有 2 个问题。

  1. 为什么我要使用独角兽而不是默认的WEBrick

  2. 如何让它工作?我取消注释该行,运行bundle install,然后运行rails server,它仍然启动WEBrick

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 unicorn webrick


【解决方案1】:

为什么您会使用 Unicorn 而不是 WEBrick?

  1. Unicorn 应该比 WEBrick 快
  2. 您可以生成多个进程
  3. 如果您在生产中使用独角兽。您会希望您的开发环境与生产环境一样接近。

如何在本地运行独角兽?

  1. 在 Gemfile 中取消注释 gem 'unicorn'
  2. config/ 中创建unicorn.rb 文件并添加以下行。如果您愿意,可以增加进程数

    worker_processes 1

  3. 使用以下命令启动独角兽

    unicorn -c config/unicorn.rb

【讨论】:

    【解决方案2】:
    1. 虽然这主要是一个意见答案,但 Unicorn 支持多个“工作”进程通过执行一个 Unicorn 实例来处理并发 Web 请求。您可以运行的工作进程的数量取决于硬件的规格,但通常 3-4 个工作人员对于小型服务器甚至开发机器来说是安全的。您需要多个 WEBrick 进程来处理并发请求。我还发现 Unicorn 比 WEBrick 更快,尤其是在生产应用程序和在 Heroku 上运行的应用程序中。 Heroku 实际上有 some really good documentation 这也适用于 Heroku 之外。

    2. 查看the Unicorn gem documentation 以及上面的 Heroku 文档。 TL;DR - 您将使用命令 unicorn 而不是 rails server 来使用 Unicorn 运行您的应用程序。

    【讨论】:

      【解决方案3】:

      你也可以使用 unicorn_rails gem,它会覆盖默认的 webrick 和 unicorn

      https://github.com/samuelkadolph/unicorn-rails

      【讨论】:

        猜你喜欢
        • 2011-01-27
        • 2013-02-20
        • 2018-11-10
        • 1970-01-01
        • 1970-01-01
        • 2011-08-08
        • 1970-01-01
        • 2012-01-09
        • 1970-01-01
        相关资源
        最近更新 更多