Apache-2.2
在 Mac OS X Lion 上解析到虛擬主機非常慢
自從升級到 Mac OS X Lion(來自 Snow Leopard)後,我注意到解析到虛擬主機非常慢(大約 3 秒之間)。我發現了一些可以解決此問題的技巧(例如,不使用 .local TLD),但它們不適用於我的設置。
我的設置非常簡單: - Apache 2(Lion 附帶) - 啟用 PHP - 添加了一些虛擬主機 - 安裝了 Mail 和 SMTP Pear 包
Apache 的 hosts 文件如下所示:
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 上的設置基本相同,但 Apache 解析虛擬主機的性能明顯不同。我執行 Mac OS X Lion 10.7.2,但在執行 10.7.1 時問題已經存在。
這似乎是一個小問題,但是當您每天訪問數百次虛擬主機時,您可以想像這會浪費大量時間。
長時間的 DNS 超時幾乎總是 IPv6 問題的標誌。
您需要到 apache 的 IPv6 連接嗎?
如果沒有,我建議改變
<VirtualHost *:80>
進入
<VirtualHost 0.0.0.0:80>
或者完全禁用 IPv6 連接。
我剛才也遇到了這個。
這會將網路配置中的 IPv6 設置為關閉…
# 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.
而不是在 Resolving project.local 上掛 5 秒。