我在 Windows 7 上运行 VirtualBox 4.1.6,这台机器运行速度很快,内存为 12G。我有一个运行 Ubuntu 11 的虚拟机,我使用 ruby 1.9.3 和 rails 3 在该虚拟机上进行 rails 开发。当我运行 WebBrick 服务器并尝试从主机操作系统 (Windows 7) 浏览网站时,页面返回之前有很长的延迟,后续请求也是如此。在虚拟机内访问服务器很快。我以桥接模式运行,但尝试了其他一些选项,似乎没有帮助。
我可以从主机 ping 客户操作系统,没有任何明显的延迟。我还尝试从主机连接到客户机上运行的 Apache 服务器,发现连接速度很快。尝试在非标准端口 (8080) 上运行 Apache,它仍然很快,所以不要认为它是特定于端口的。尝试使用 -b 启动 WebBrick 以绑定到 0.0.0.0 和绑定到 eth0 的实际 IP 地址。查看 WebBrick 控制台,延迟似乎发生在 WebBrick 看到请求之前。
看起来该问题与 WebBrick 有关,但我不太清楚该如何解释,因为我不是网络专家。有什么诊断方法可以尝试吗?
答案1
我通过在 WebBrick 配置文件中将 DoNotReverseLookup 设置为 true 来修复此问题。请参阅这关联..