Virtualbox 中的 Ubuntu - 使用本地 IP 地址时 WEBrick Web 服务器非常慢

Virtualbox 中的 Ubuntu - 使用本地 IP 地址时 WEBrick Web 服务器非常慢

我正在使用 Ubuntu (Lucid Lynx) 学习 Ruby On Rails。我在 VirtualBox 中运行 Ubuntu(主机是 Windows 7 Ultimate),使用桥接网络。

当我运行我的 Rails 应用程序并使用 localhost:3000 将浏览器指向它时,该应用程序会立即响应并且我的页面会在一两秒内呈现。

但是,如果我使用 10.0.0.5:3000 (其中 10.0.0.5 是我使用报告的 IP 地址ifconfig),我的 rails 应用程序的响应是难以置信慢 – 服务器可能需要 30 秒或更长时间才能响应并呈现页面。

Firefox 和 Chrome 都会发生这种情况。此外,当我从主机访问 Rails 应用程序(在 IE 中测试它)时,我得到的响应同样很慢。

知道可能发生了什么吗?我尝试使用两个不同的路由器,并在两个不同的网络(工作和家庭)上进行操作,结果相同。

大家干杯!

答案1

尝试运行

sudo service avahi-daemon stop

还可以尝试设置 WEBrick /usr/lib/ruby//webrick/config.rb

:DoNotReverseLookup => true

另请参阅:“Stackoverflow WEBrick 远程桌面速度很慢”

答案2

这是 WEBrick 的问题,使用其他 Web 服务器时没有问题。

我尝试了 Mongrel 和 Thin 与 Ruby on Rails 3.0.x,两者都运行良好。

我建议使用 Mongrel - 只需将其添加到你的 Gemfile 中:

gem "mongrel"

或者您可以将其设置为仅用于开发和测试,而不会中断生产:

group :test, :development do
  gem "mongrel"
end

现在以与之前相同的方式启动服务器,并启动 Mongrel 而不是 WEBrick。

如果您更喜欢 Thin,则需要使用 启动服务器thin start或者 WEBrick 将启动。

答案3

我在 VirtualBox 和 VMware 下都遇到过同样的问题。不确定问题是什么... 它表现得好像 Rails 服务器正在查找某个必须超时的内容?Rails 服务器在日志中报告渲​​染时间很快,但响应每个请求需要很长时间。在一个特定的 Ubuntu 实例上(在 VirtualBox 和 VMware 下都试过)在 Rails 2.3.8 和 Rails 3.0.3 中都发生了这种情况。我在另一个机器上安装了另一个 Ubuntu VM,没有出现这个问题...

经过一段时间的沮丧追求后,我的解决方案是在开发模式下使用 Phusion Passenger 和 Apache。

答案4

这个真的很奇怪。我发现,如果我从 putty 启动 rails 服务器,响应速度会比从 VirtualBox 窗口启动时快得多……

相关内容