6

我有一个托管在服务器机器上的 Rails 应用程序(运行 Webrick)。当我登录这台机器并访问应用程序(通过 localhost:3000)时,应用程序运行顺利。但是当我尝试从另一台机器(通过主机名:3000)访问应用程序时,应用程序运行速度非常慢。

我不确定如何调试问题;有什么理由会这样吗?我也有类似 SQL Server 数据库托管在同一台服务器机器上的东西,并且从其他机器访问数据库工作正常。

更新添加:服务器机器,以及我尝试从中访问它的其他机器,都在公司 Intranet 上。

4

5 回答 5

14

以下答案对我有用。请注意,如果您正在运行 rvm,则答案在底部。

Webrick 的响应速度很慢。如何加快速度?

查找文件/usr/lib/ruby/1.9.1/webrick/config.rb并进行编辑。

换行

:DoNotReverseLookup => nil,

:DoNotReverseLookup => true,

rvm 文件是~/.rvm/rubies/ruby-your-version/lib/ruby/your-version/webrick/config.rb

于 2011-06-14T18:29:30.777 回答
4

最明显的答案是问题不在于rails,而在于您的域托管(即您的DNS 超级慢)。

尝试加载不同的应用程序(可能是 Sinatra “hello world”),看看它是否表现出相同的症状。
如果是 - 你的域名提供商是罪魁祸首。

如果问题仍然存在,请增加日志的详细程度并检查是否有任何 SQL 查询是明显的瓶颈。

此外,问题可能出在 Webrick 上。它只是不适合生产,如果几个人同时使用该应用程序可能会很慢。尝试使用不同的服务器。Apache 是一个合理的选择:http ://www.modrails.com/

于 2011-04-12T20:54:47.353 回答
3

我迟到了,但你可以使用 Thin 而不是 Webrick。

只需添加到 Gemfile

gem 'thin'
于 2013-01-10T12:50:35.913 回答
1

Webrick 不是世界上最快的,我相当肯定它不是用于生产,而是用于本地测试。当您连接到另一台机器时,它是在本地网络上还是通过互联网?

于 2011-04-12T20:56:41.920 回答
1

查看您的 rails 日志文件中列出的响应时间。如果它们对于本地和远程访问是相同的,那么您就知道您的问题出在堆栈中的其他地方(DNS、路由、软件防火墙等)

问题很可能不是rails本身。

于 2011-04-13T03:03:51.293 回答