Apache-2.2

在 Mac OS X Lion 上解析到虛擬主機非常慢

  • September 16, 2014

自從升級到 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 秒。

引用自:https://serverfault.com/questions/321386