Unicorn网络服务器问题

时间:2014-03-14 19:30:05

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

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

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

我有2个问题。

  1. 为什么我要在默认WEBrick上使用独角兽?

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

3 个答案:

答案 0 :(得分:3)

您使用Unicorn而不是WEBrick的原因是什么?

  1. Unicorn应该比WEBrick
  2. 更快
  3. 您可以产生多个流程
  4. 如果您在生产中使用独角兽。您希望您的开发环境与生产一样接近。
  5. 如何在本地运行独角兽?

    1. 取消注释Gemfile中的gem 'unicorn'
    2. unicorn.rb中创建config/文件并添加以下行。如果您想

      ,可以增加进程数

      worker_processes 1

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

      unicorn -c config/unicorn.rb

答案 1 :(得分:1)

  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运行您的应用。

答案 2 :(得分:1)

你也可以使用unicorn_rails gem来代替默认的webrick和unicorn

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