如何在Rails 3中设置Thin作为默认服务器

34

在开发中,我一直使用thin -V start启动Thin。

但是,我希望将Thin设置为默认选项,而不是WEBrick,并且可以使用rails s命令启动它。

在Rails 3中有没有办法将Thin设置为默认选项而不是WEBrick?

如果不可能,请问是否至少有一种方式可以在测试环境下自动启动Thin?


1
gem 'thin' 添加到您的 Gemfile 中,看看是否有效? - Devin M
4个回答

46

我在Github的rack代码库上发送了一个pull request,它已经被接受: https://github.com/rack/rack/commit/b487f02b13f42c5933aa42193ed4e1c0b90382d7

在不久的将来,我们可以通过在Gemfile中添加gem 'thin',然后使用rails s命令启动应用程序来使用Thin服务器。

需要注意的是这可能只是一个临时措施。

我选择了Thin服务器,因为Mongrel当前没有维护,并且似乎没有其他服务器替代Mongrel合适。


15
从 Rails 3.2.0.rc2 开始,也就是昨天发布的版本,当你的 Gemfile 文件中有 gem 'thin' 这行时,rails s 命令会调用 Thin。耶! - Tsutomu
1
实际上,即使我们尝试使用 gem 'webrick',group: :development 将 WEBrick 设置为开发默认值,rails s 现在也会调用 Thin。顺便说一下,我正在 Debian 上使用 Ruby 1.9.3-p327 和 Rails 3.2.12。 - MarkDBlackwell
1
@MarkDBlackwell 你说得对。这是自 mongrel 时代以来 rack 的行为。如果你已经安装了第一优先级的服务器库(目前是 thin),即使 Gemfile 没有包含 gem 'thin'rack 也会选择它而不是 WEBrick。 - Tsutomu

14

或者你可以使用foreman,特别是当你的网络应用程序变得更加复杂时(后台工作程序、处理调度的时钟进程等)。

thin 为例,您需要在Rails应用程序中创建一个Procfile文件,并填写以下内容:

web: bundle exec rails server thin -p $PORT

那么就只需:

foreman start

启动你的服务器。


8
你可以使用 rails server thin 来运行 Rails3,并使用 thin 作为服务器。
有关更多选项,请参阅 rails server -h 的输出。

这比仅仅输入“rails s”要多打几个字符,但我很喜欢它。 - Luke Cowell
您可以使用别名来缩短它。 - Anatoly
@LukeCowell 你仍然可以使用 rails s thin - Deepak Mahakale

4
在Gem文件中使用:gem 'thin'
运行bundle install
然后运行rails s,它将会把thin作为你项目的默认服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接