ruby-on-rails - tutorial - ruby on rails教程第4版




为什么我要将unicorn或thin而不是WEBrick用于开发目的? (3)

我最近发现有些人更喜欢使用unicorn_rails而不是默认的WEBrick作为开发Rails应用程序的Web服务器。

我知道如果我想在生产中使用独角兽,那么在开发中尝试它是有道理的,但由于配置在生产中是不同的,它甚至是相关的吗?

使用thinunicorn而不是WEBrick开发Rails应用程序(例如速度或其他一些功能),是否有任何真正的,有形的优势? 或者这仅仅是个人偏好的问题?


尽可能密切地开发生产环境非常重要。 它有助于确保应用程序在部署到生产环境时按预期工作,而不是在运行时遇到错误。

通过在复制生产环境的Build服务器上使用Continuous Testing,可以缓解此问题。 即使您没有在相同的环境中积极开发,持续测试也可以让您了解应用程序是否以预期的方式运行。

至于速度,在开发模式下运行Rails应用程序的性能将抵消各种Web服务器带来的任何好处。


我个人的经验是,在一个相当大的Rails应用程序(许多宝石,路线等)中,WEBrick在我的开发环境中比Unicorn和Thin(OS X)更快。 但你应该自己测量它,你的机器中的应用程序可以看到(我使用ab测试并使用Chrome的开发人员工具)。

但是在生产和开发中使用相同的服务器是一个非常好的主意。


除了已经提供了相当好的概述的其他答案之外,还有一个技术原因你可能想要考虑在WEBrick上使用独角兽:

WEBrick不支持子域。 对HTTPS的支持相当苛刻

因此,如果您有使用子域的SaaS应用程序,或者您只是想拥有admin / api / ...子域,那么WEBrick就不是一个选项。 有适用于Mac OS X的POW ,但这对Linux开发人员不起作用。





unicorn