如何在Mac OS X Lion上消除localhost/virtualhost的慢速解析/加载(2-3秒滞后)?

Ada*_*ies 92 dns macos localhost virtualhost osx-lion

由于建立在Mac OS X Lion的(2012年1月购买的全新的MacBook Air),我的开发环境中,我注意到,解决到虚拟主机是很慢的(约3秒)第一次,但之后快速只要我会继续定期加载它.

如果我让它保持原状几分钟然后重新加载,那么第一次重装(再次)是非常缓慢的; 似乎正在缓存某些东西.

如下所示,我没有使用.local TLD.

我的设置:Apache 2 - MySQL - PHP安装并启用 - 添加了几个虚拟主机,其中一个是我为localhost创建的

我的/ etc/hosts:

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost
127.0.0.1       myproject.dev
::1             myproject.dev
fe80::1%lo0     myproject.dev
Run Code Online (Sandbox Code Playgroud)

我在username.conf中的虚拟主机设置:

NameVirtualHost *:80

<Directory "/Users/myusername/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /Users/myusername/Dropbox/dev_envs/
</VirtualHost>
<VirtualHost *:80>
    ServerName myproject.dev
    DocumentRoot /Users/myusername/Dropbox/dev_envs/myprojectname
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Jer*_*unn 155

我有完全相同的问题,它让我疯了!

将localhost的所有主机文件条目放入一行,如下所示:

127.0.0.1 localhost myproject.dev myotherproject.dev
::1 localhost
fe80::1%lo0 localhost
Run Code Online (Sandbox Code Playgroud)

对我来说就像一个魅力.看起来好像是Lion中的一个bug.

  • 这个修复对我有用但我达到了11个站点的限制,之后它开始运行甚至更慢!现在,我已将事情拆分为两个主机条目(具有相同的IP地址),似乎一切正常. (5认同)
  • OS X 10.9,仍然是一个问题,它已经让我疯了好几个小时了!太棒了,谢谢你的回答! (2认同)
  • 这仅起作用,因为您是在其他localhost设备路由之前输入主机条目。如果您的Web服务器正在查看127.0.0.1,则这些主机需要位于/ etc / hosts文件的HEAD处才能进行快速查找。我有几十行127.0.0.1行,只有当我将它们移到/ etc / hosts文件的TOP时,它们才能为我快速解决。 (2认同)

Cle*_*ing 66

对于以".local"结尾的网站,还有另一个问题10.7.*到10.8.4,导致五秒钟的查找.细节和解决方案由Bram(us)Van Damme提供,链接如下:

http://www.bram.us/2011/12/12/mamp-pro-slow-name-resolving-with-local-vhosts-in-lion-fix/

"默认情况下,以.local结尾的任何主机名都被视为Bonjour主机,而不是通过查询"网络"偏好设置中的DNS服务器条目.

要解决此问题(无需重命名每个vhost),您需要为/ etc/hosts文件中的每个vhost添加IPv6条目:"

::1 mysite.local
fe80::1%lo0 mysite.local
127.0.0.1 mysite.local
Run Code Online (Sandbox Code Playgroud)


Fle*_*nch 24

我也有同样的问题,也是在Lion上.

奇怪的是,我的解决方案与杰里米相反.我在/ etc/hosts中的一行上有一大堆someproject.dev条目.第一次在任何一个网站上加载一个网站就像一分钟左右一样.如果我在5秒钟左右再次使用它它会非常快,但是更长,它会再花一分钟.我怀疑各种各样的东西,mysql连接,Ruby版本,Rails错误,Apache,Phusion Passenger.直到我终于看到控制台并意识到正在尝试进行DNS查找.

所以,我把所有这些都放在了单独的行上:

127.0.0.1 localhost

127.0.0.1 myproject.dev

127.0.0.1 myotherproject.dev
Run Code Online (Sandbox Code Playgroud)

突然间,一切都很快.我的两台机器都一样.


Ara*_*ram 12

为IPv6 :: 1指定相同的主机帮助了我.

127.0.0.1 something.local.mydomain.org
::1 something.local.mydomain.org
Run Code Online (Sandbox Code Playgroud)


use*_*664 8

确保将IP v6条目放在localhost不在行中

::1 localhost
Run Code Online (Sandbox Code Playgroud)

IP v6条目单独行

fe80::1%lo0 here and_here
Run Code Online (Sandbox Code Playgroud)

现在有时真的很快,但是很少有例外,旧的滞后回来了.然而,它们可能基于其他原因.


con*_*t47 7

在OSX El Capitan上,对我有用的是在IPv4条目的正上方创建一个重复的IPv6条目

fe80::1%lo0 demo.test.dev
127.0.0.1   demo.test.dev
Run Code Online (Sandbox Code Playgroud)