gpt4 book ai didi

ruby-on-rails - VirtualBox 下 Ubuntu 11.10 上的 Rails 3.1 非常慢

转载 作者:行者123 更新时间:2023-12-03 00:31:31 25 4
gpt4 key购买 nike

我在 Windows7 上有 VirtualBox 和 Ubuntu 11.10。我在 webrick (rails s) 上运行 Rails 3.1,并从 Windows 上的浏览​​器访问 VirtualBox 的 IP 地址 (192.168.2.xxx:3000)。此时我面临着麻烦 - 页面加载非常非常慢,在 Rails 控制台上我看到它响应文件(css、js、图像)的速度有多慢:每个最多 5 秒!但是:如果我在 Ubuntu 中使用 0.0.0.0:3000 - 它就完美了。

问题出在哪里?到哪里寻找解决方案?

最佳答案

如上所述,这似乎是另一个问题的重复,尽管该问题特别提到了 webrick 和远程桌面连接,但我没有寻找这两个问题,因为我不知道它特定于 webrick。

所以我认为应该注意的是,这不是虚拟机或 BIOS 设置或类似内容的错误配置。这完全是一个webrick问题。其他服务如果不尝试进行反向 DNS 查找,则可以正常工作。

该问题源于 Webrick 尝试执行反向 DNS 查找的默认设置,当查找失败时,该设置会出现问题,因为它在我的本地计算机上往往会始终如一地执行。

有几种方法可以解决这个问题。

破解/etc/hosts

第一个方法是破解/etc/hosts,以便您的客户端计算机拥有一个条目。破解 /etc/hosts 是半高级的,但基本上相当于找出主机的 IP 地址是什么,并向您的 /etc/hosts 文件添加一行。这需要根级权限。

  • 获取您的 IP 地址 - 当您发出请求时,将在 Rails 控制台中看到该地址,并且看起来如下所示:Started GET "/"for 10.0.2.2 at Tue Aug 21 11:33:23 -0700 2012 - 在本例中,IP 地址为 10.0.2.2。
  • /etc/hosts 中添加一行以标识该 IP 地址:10.0.2.2 Nerdmaster

一切都应该好起来!

禁用守护进程

这似乎对某些 ubuntu 用户有效:

服务 avahi-daemon 停止

鉴于您正在终止一项服务,可能还有其他应用程序存在问题。这可能是最好的临时措施,而不是永久措施,但我对这项服务知之甚少,所以不要相信我的话:)

这也需要根级权限。

破解 webrick

我真的很鄙视对核心 Ruby 代码进行黑客攻击,每次更新我都必须重新黑客攻击,但这就是很多人所做的:

  • 找到您的webrick/config.rb
    • 如果您运行的是普通 Ruby,它可能位于 /usr/lib/ruby/[version]/webrick/config.rb
    • 如果您使用 RVM,则必须找到适当的 ruby​​ 目录,例如/home/username/.rvm/rubies/[版本]/lib/ruby/[版本]/webrick/config.rb
    • 我不知道 Jack 关于 rbenv 等其他选项
    • 最坏的情况,请尝试find/-type d -name "webrick"
  • 使用您最喜欢的编辑器进行编辑(显然是 vim)
    • 查找 :DoNotReverseLookup => nil
    • nil 更改为 true
    • 如果您没有看到此设置,则可能需要使用上面的 /etc/hosts 技巧。

如果您不使用 rvm 或类似的东西,这将需要根级权限。

不要使用 webrick

我认为这不是一个真正的解决方案,因为 webrick 有时是您最好的(或至少是最快的)选择,但您可以尝试不同的服务器。 Thin 和 mongrel 似乎有很好的支持,并且根据其他有此问题的人所说,似乎没有进行反向 DNS 查找。我没有尝试过这些方法,所以我不确定它们有多好。

这可以在没有根级权限的情况下完成。

关于ruby-on-rails - VirtualBox 下 Ubuntu 11.10 上的 Rails 3.1 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8670080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com