Mac OS X Lionで開発環境をセットアップしてから(2012年1月に購入した新しいmacbook air)、仮想ホストへの解決が最初は非常に遅い(約3秒)が、その後は高速であることに気づいた定期的に読み込みを続けます。
数分間そのままにして、再度リロードすると、最初のリロードは(再び)痛みを伴います。何かがキャッシュされているようです。
以下に示すように、.local TLDは使用していません。
私のセットアップ:Apache 2-MySQL-PHPインストールおよび有効化-ローカルホスト用に作成した仮想ホストをいくつか追加
私の/ 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
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>
私はまったく同じ問題を抱えていて、それが私を夢中にさせていました!
Localhostのすべてのホストファイルエントリを次のように1行に入力します。
127.0.0.1 localhost myproject.dev myotherproject.dev
::1 localhost
fe80::1%lo0 localhost
私にとって魅力のように働いた。 Lionのバグのようです。
「.local」で終わるサイトには別の10.7。*〜10.8.4の問題があり、5秒のルックアップが発生します。詳細と解決策は、次のリンクのBram(us)Van Dammeから提供されました。
http://www.bram.us/2011/12/12/mamp-pro-slow-name-resolving-with-local-vhosts-in-lion-fix/
「デフォルトでは、.localで終わるホスト名は、ネットワーク設定でDNSサーバーエントリを照会するのではなく、Bonjourホストとして扱われます。
この問題を修正するには(各vhostの名前を変更せずに)、/ etc/hostsファイルの各vhostにIPv6エントリを追加する必要があります。
::1 mysite.local
fe80::1%lo0 mysite.local
127.0.0.1 mysite.local
ライオンでも同じ問題がありました。
奇妙なことに、私の解決策はジェレミーの反対でした。/etc/hostsの1行に、いくつかのproject.devエントリがたくさんありました。それらのいずれかに初めてサイトをロードすることは、1分ほどのように永遠にかかりました。 5秒以内に再び使用すると、非常に高速でしたが、はるかに長くなり、1分かかりました。 mysql接続、Rubyバージョン、Railsバグ、Apache、Phusion Passenger。 DNSルックアップが試行されていました。
だから、私はそれらのすべてを別々の行に置きます:
127.0.0.1 localhost
127.0.0.1 myproject.dev
127.0.0.1 myotherproject.dev
そして突然、すべてが再び元気になりました。両方のマシンで同じです。
IPv6 :: 1に同じホストを指定すると助かりました。
127.0.0.1 something.local.mydomain.org
::1 something.local.mydomain.org
Localhostの行にないIP v6エントリを必ず配置してください
::1 localhost
iP v6エントリは別の行に移動します
fe80::1%lo0 here and_here
現在は非常に高速な場合もありますが、古いラグが戻ってくる例外はまれです。ただし、他の理由に基づいている可能性があります。
OSX El Capitanでうまくいったのは、IPv4エントリのすぐ上に重複するIPv6エントリを作成することでした
fe80::1%lo0 demo.test.dev
127.0.0.1 demo.test.dev
ホスト名がファイルの先頭で定義されていることを確認すると、私にとって違いが生じました。デフォルトでは、行127.0.0.1 localhostはすでに先頭にあります。同じ行にエントリを追加するだけです。
同じ問題があり、LANでIPv6を有効にしているが、ネットワークとISPの間でIPv6が正しく構成されていないことが原因であることがわかりました。クライアントに両方が与えられた場合、IPv6 DNSサーバーがIPv4 DNSより優先されるようです。クライアントがIPv6 DNSが到達不能または欠落していることを確認し、その後IPv4 DNSにフォールバックするまで、(試行ごとに)数秒かかりました。
私はこの同じ問題を抱えていて、最終的に同じホストエントリが同じ行に2回あることに気付きました。
例えば.
127.0.0.1 localhost Host1 Host2 Host3 Host4 Host5 Host1 Host6
同じホストの2番目のインスタンス(上記の例ではHost1)を削除しましたが、すぐに速度が上がりました。
私がこれを発見したとき、少しばかげたことを感じましたが、同じ行に10個の長いホスト名があり、頻繁に追加/削除する場合、それは簡単に見落とされる可能性があります。
注:私はWindowsとXAMPPを使用していますが、多くの人がWindowsとMacで同じ問題を抱えています。私に役立つソリューションを見つけるために何時間も費やしてきたので、この質問を見つけた人への参照用の回答:
すべてのホストを1行にする、冗長ホストと仮想ホストを削除する、IPv6行も含むなど、同じ問題に対して多くの解決策を試しました-これらのaloneはどれも成功しませんでした。
これまでのところが機能しているように見える唯一のソリューションは、すべてのソリューションの組み合わせです:
私のホストファイルでは、私のホストは現在別の行にあり、これまでのところ問題は修正されているようです。
この問題を解決しようとする人に幸運を祈ります。追加する情報がある場合は、これを行ってください。これは、単一の既知の原因や解決策がない多くの人々に影響する問題のようです。
私のためにそれをしたトリックは追加することでした
127.0.0.1 locahost
hostファイルの最初の行。
すべての仮想ホストから、データベースを使用しているものだけが低速でした。 「localhost」ではなく仮想ホストのアドレスのみを追加したため、データベース接続の「localhost」を検索するプロセスが遅くなったためだと思います。これで、すべてが再び元気になりました。 :)
私もこれに遭遇しました。 IPv4用とIPv6用の2行で定義された多数のvhostがあります。ホストを移動して、リストの最初に表示されるように解決しようとしていました。
127.0.0.1 faster.example.dev Host1.example.dev Host2.example.dev Host3.example.dev Host4.example.dev Host5.example.dev Host6.example.dev
::1 faster.example.dev Host1.example.dev Host2.example.dev Host3.example.dev Host4.example.dev Host5.example.dev Host6.example.dev