我为什么要使用独angular兽或瘦,而不是WEBrick的发展目的?
我最近发现,有些人更喜欢使用unicorn_rails
而不是默认的WEBrick作为开发Rails应用程序的Web服务器。
我知道如果我想在生产中使用独angular兽,在开发过程中尝试一下可能是有意义的,但是由于configuration在生产中是不同的,它甚至是相关的吗?
使用thin
或unicorn
代替WEBrick来开发Rails应用程序(比如速度或其他function)有什么实际的,有形的优势? 或者这只是个人喜好的问题?
尽可能地接近生产环境是非常重要的。 它有助于确保应用程序在部署到生产环境中时按预期工作,而不是在运行时绊倒错误。
通过在复制生产环境的生成服务器上使用“连续testing”,可以缓解此问题。 即使您没有在相同的环境中进行积极的开发,持续testing也能让您了解应用程序以预期的方式运行。
就速度而言,在开发模式下运行Rails应用程序的性能会否定各种Web服务器带来的好处。
除了其他的答案已经给出了一个非常好的概述,还有一个技术原因,你可能要考虑使用独angular兽的WEBrick:
WEBrick不支持子域名。 支持HTTPS是相当棘手的实施 。
所以如果你有一个使用子域名的SaaS应用程序,或者你只是想拥有admin / api / …子域名,那么WEBrick不是一个选项。 Mac OS X有POW ,但这对于Linux开发者来说不起作用。
我个人的经验是,当使用远程机器(ubuntu,4核心,8G mem,通过VPN连接 – > ssh)作为你的开发环境(和我一样)时,Unicorn比WEBrick要快得多 – 我看到sub-1秒页面加载时间与独angular兽,而WEBrick需要3至5秒或更多。 我不知道为什么,可能还有更多与我的networking有关的事情,但这是我个人看到的。
我没有使用Thin进行开发,因为我读过它需要额外的gem来允许在开发模式下重新加载类(我无法亲自validation其准确性)。 另外,我对Unicorn更加熟悉,并将其用于生产。
我个人的经验是,WEBrick在我的开发环境中比在一个相当大的Rails应用程序(大量的gem,路线等)中的独angular兽和瘦(OS X)更快。 但是你应该自己测量一下,用你的机器上的应用程序来看(我使用ab进行testing并使用Chrome的开发工具)。
然而,在生产和开发中使用相同的服务器是一个非常好的主意。