vagrant 的网络配置为 NAT 和 HOST-ONLY,在 host 里使用 host-only 的 ip 访问 guest 里启的 webrick,访问首页都需要超过 15 秒,但是在 vagrant 里 wget host 里启动的 webrick 却很快,这会是什么原因导致的呢?网上搜了很多资料都说修改 webrick 的代码 DoNotReverseLookUp,经尝试无效。
你的工程目录是不是挂载的,如果是就把工程目录移到 guest 机器的其他目录。启动就会很快。
#1 楼 @xds2000 试了下,确实...但是这样用 vagrant 的意义在哪里呢 - -
http://docs-v1.vagrantup.com/v1/docs/troubleshooting.html 里面提到过这个问题。个人认为替换掉 WebRick 应该是个很好的解决方法
@xdada 这是个 Bug。目前临时解决方案是开 nfs,挂上虚拟机的目录,速度就会提高。但这是绕过问题,作者说还要想想。
#3 楼 @chunlea 那个文档上建议的修改 webrick 的 config 里:DoNotReverseLookUp => true 我尝试过无效,而且我也有尝试用 thin 替换 webrick,效果一样,从 shared folder 移动代码到虚拟磁盘里问题就解决了,所以应该不是你提到的这个. #4 楼 @xds2000 我也搜到说用 nsf 替换,只不过刚启动时报错 requested NFS version or transport protocol is not supported 还在尝试 使用 nsf 问题解决,那么这个应该是 virtualbox 的问题,而不是 vagrant 的问题吧?我把 virtualbox 更新到最新 4.3.4, 并更新了 guest additions 也不行。
:DoNotReverseLookUp => true
@xdada 你可以@一下 vagrant 作者,他有过结论在这个问题上。
#6 楼 @xds2000 是看到这么个 issue 似乎无解.. https://github.com/mitchellh/vagrant/issues/71
@xdada 不是无解,是 mitchellh 说的,还没解决。
#8 楼 @xds2000 Although this is an upstream VirtualBox problem, tickets remain unclosed after more than 2 years 这是 mitchellh4 年前说的,6 年了,标记成 solved 后问题还存在...这个希望很渺茫了吧...
@xdada 是的,这就是社区的魅力。当有问题出现时,你才会感到痛。但一般你不会再前进一步,尝试去解决它。大家只能等,知道大家都感到痛苦了,哪位大神受不了了,估计半个小时就能搞定,然后世界就 Happy 了,大家都狂欢了。这位大神也许就是你,只要你去做。
gem 'thin' 飞快