自升级到Mac OS X Lion(来自Snow Leopard)后,我注意到parsing为虚拟主机非常慢(约3秒钟之间)。 我发现了一些提示(例如,不使用.local顶级域名),可能会解决这个问题,但不适用于我的设置。
我的设置很简单: – Apache 2(Lion附带) – 启用PHP – 添加了几个虚拟主机 – 安装了Mail和SMTP Pear包
Apache的主机文件如下所示:
127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost 127.0.0.1 tbi.dev 127.0.0.1 www.tbi.dev 127.0.0.1 test1.tbi.dev 127.0.0.1 test2.tbi.dev 127.0.0.1 psa.dev 127.0.0.1 snd.dev
Apache的虚拟主机文件如下所示:
<VirtualHost *:80> DocumentRoot "/Users/Bart/Sites/tbi" ServerName tbi.dev </VirtualHost> <VirtualHost *:80> DocumentRoot "/Users/Bart/Sites/tbi" ServerName tbi.dev ServerAlias *.tbi.dev www.tbi.dev </VirtualHost> <VirtualHost *:80> DocumentRoot "/Users/Bart/Sites/psa" ServerName psa.dev </VirtualHost> <VirtualHost *:80> DocumentRoot "/Users/Bart/Sites/sandbox" ServerName snd.dev </VirtualHost>
该设置与我在Snow Leopard上的设置基本相同,但是Apacheparsing虚拟主机的性能明显不同。 我运行的是Mac OS X Lion 10.7.2,但运行10.7.1时已经存在这个问题。
这可能看起来像一个小问题,但是当你每天访问一个虚拟主机几百次,那么这将大大浪费你所能想象的时间。
长时间的DNS超时几乎总是IPv6问题的标志。
你需要IPv6连接到Apache?
如果没有,我build议改变
<VirtualHost *:80>
成
<VirtualHost 0.0.0.0:80>
或完全禁用IPv6连接。
我也碰到过这个。
这会将networkingconfiguration中的IPv6设置为closures…
# list all network interfaces to get their names networksetup -listallnetworkservices # disable the one you want, in my case it's WiFi networksetup -setv6off Wi-Fi
但是..不幸的是,这并没有解决我的DNS解决问题(也许在系统重新启动后)。 真正帮助的是将ipv6样式的IP添加到/ etc / hosts中,如下所示:
# my original /etc/hosts ... 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost 127.0.0.1 project.local # adding this solved resolving: fe80::1%lo0 project.local
wget http://project.local现在即时显示
Resolving project.local... 127.0.0.1 Connecting to project.local|127.0.0.1|:80... connected.
而不是悬挂5秒解决project.local。
在MacOSX Lion .local
域已被“保留”用于多播DNSparsing器(bonjour)。
这意味着查找任何以.local结尾的域将导致/ etc / hosts 之前的 mDNS查找(最多5秒)。
修正:
.dev
) 看看这个博客 ,看看是否有帮助,特别突出问题#2:
显然,terminal和一些BSD Unix工具正确地使用/etc/resolv.conf,并正确地命令/ etc / hosts,然后是DNS服务器。 但是,OS X Lion上的所有其他应用程序,包括所有的应用程序,都是这样做的!
有用。
我使用这个解决scheme
## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost6 fe80::1%lo0 localhost
同样的小牛队。
当我把我的本地主机定义放到/etc/hosts
的开头时解决了,如下所示:
127.0.0.1 localhost project1.dev project2.dev 127.0.0.1 project3.dev project4.dev 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost
我会尝试改变:
::1 localhost fe80::1%lo0 localhost
至
::1 localhost6 fe80::1%lo0 localhost6