【问题标题】:Unicorn web server questions独角兽网络服务器问题
【发布时间】:2014-03-14 19:30:05
【问题描述】:
我最近在我的Gemfile 中发现了这一行:
# Use unicorn as the app server
# gem 'unicorn'
我有 2 个问题。
为什么我要使用独角兽而不是默认的WEBrick?
如何让它工作?我取消注释该行,运行bundle install,然后运行rails server,它仍然启动WEBrick
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-4
unicorn
webrick
【解决方案1】:
为什么您会使用 Unicorn 而不是 WEBrick?
- Unicorn 应该比 WEBrick 快
- 您可以生成多个进程
- 如果您在生产中使用独角兽。您会希望您的开发环境与生产环境一样接近。
如何在本地运行独角兽?
- 在 Gemfile 中取消注释
gem 'unicorn'
-
在config/ 中创建unicorn.rb 文件并添加以下行。如果您愿意,可以增加进程数
worker_processes 1
-
使用以下命令启动独角兽
unicorn -c config/unicorn.rb
【解决方案2】:
虽然这主要是一个意见答案,但 Unicorn 支持多个“工作”进程通过执行一个 Unicorn 实例来处理并发 Web 请求。您可以运行的工作进程的数量取决于硬件的规格,但通常 3-4 个工作人员对于小型服务器甚至开发机器来说是安全的。您需要多个 WEBrick 进程来处理并发请求。我还发现 Unicorn 比 WEBrick 更快,尤其是在生产应用程序和在 Heroku 上运行的应用程序中。 Heroku 实际上有 some really good documentation 这也适用于 Heroku 之外。
查看the Unicorn gem documentation 以及上面的 Heroku 文档。 TL;DR - 您将使用命令 unicorn 而不是 rails server 来使用 Unicorn 运行您的应用程序。