Как я могу устранить медленное разрешение/загрузку localhost/virtualhost (2-3-секундное отставание) на Mac OS X Lion?
С момента создания моей среды разработки в Mac OS X Lion (новый MacBook Air, приобретенный в январе 2012 года), я заметил, что разрешение на виртуальный хост происходит очень медленно (около 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
Моя настройка виртуального хоста в 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>
Ответы
Ответ 1
У меня была такая же проблема, и это сводило меня с ума!
Поместите все записи файлов хостов для localhost в одну строку следующим образом:
127.0.0.1 localhost myproject.dev myotherproject.dev
::1 localhost
fe80::1%lo0 localhost
Работала для меня как шарм. Похоже на ошибку в Lion.
Ответ 2
Еще одна проблема 10.7. * до 10.8.4 для сайтов, заканчивающихся на ".local", что вызывает пять секунд поиска. Подробная информация и решетовое решение Брам (нами) Ван Дамм по следующей ссылке:
http://www.bram.us/2011/12/12/mamp-pro-slow-name-resolving-with-local-vhosts-in-lion-fix/
"По умолчанию любое имя хоста, заканчивающееся на .local, рассматривается как хост Bonjour, а не путем запроса записей DNS-сервера в настройках сети.
Чтобы устранить эту проблему (без переименования каждого vhost), вам нужно добавить записи IPv6 для каждого из ваших vhosts в файле /etc/hosts: "
::1 mysite.local
fe80::1%lo0 mysite.local
127.0.0.1 mysite.local
Ответ 3
У меня была та же проблема, также на 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
И вдруг все снова стало быстрым. То же самое на обеих моих машинах.
Ответ 4
Указание того же хоста для IPv6:: 1 помогло мне.
127.0.0.1 something.local.mydomain.org
::1 something.local.mydomain.org
Ответ 5
Убедитесь, что записи IP v6 не указаны в строке с localhost
::1 localhost
записи IP v6 идут в отдельной строке
fe80::1%lo0 here and_here
Это иногда очень быстро, но есть редкие исключения, когда старые отставания возвращаются. Однако они могут основываться на других причинах.
Ответ 6
В OSX El Capitan для меня работала двойная запись IPv6 прямо над записью IPv4 таким образом
fe80::1%lo0 demo.test.dev
127.0.0.1 demo.test.dev
Ответ 7
Обеспечение того, чтобы имена хостов были определены в начале файла, сделало меня для меня отличным.
По умолчанию строка 127.0.0.1 localhost уже находится в начале, просто добавьте свои записи в одну строку.
Ответ 8
У меня была такая же проблема и, наконец, я понял, что у меня была одна и та же запись хоста дважды в одной строке:
например.
127.0.0.1 localhost host1 host2 host3 host4 host5 host1 host6
Я удалил второй экземпляр того же хоста (в примере выше - host1) - и все сразу ускорилось.
Чувствовал себя немного глупо, когда я это обнаружил, но когда у вас есть 10 длинных имен хостов в одной строке, и вы часто добавляете/удаляете их, их можно игнорировать.
Ответ 9
Трюк, который сделал это для меня, заключался в добавлении
127.0.0.1 locahost
в первой строке файла хоста.
Из всех моих виртуальных хостов только те, которые используют базу данных, были медленными. Я верю, потому что процесс поиска "localhost" для подключения к базе данных замедлил работу, поскольку я добавил только адреса для своих виртуальных хостов, а не "localhost". Теперь все это мгновенно.:)
Ответ 10
Я тоже столкнулся с этой связкой. У меня есть куча vhosts, определенных на двух строках: одна для IPv4 и одна для IPv6. Перемещение хоста, которое я пытался разрешить, чтобы быть первым в списке, ускорило его.
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
Ответ 11
У меня была такая же проблема, и я обнаружил, что это вызвано включением IPv6 в моей локальной сети, но не правильно настроенным IPv6 между моей сетью и моим провайдером. По-видимому, DNS-сервер IPv6 имеет приоритет перед DNS IPv4, когда клиент получает оба. Потребовалось пару секунд (при каждой попытке), чтобы клиент обнаружил, что DNS IPv6 недоступен или отсутствует, а затем возвращается к DNS IPv4.
Ответ 12
Примечание. Я использую Windows и XAMPP, однако, исследуя проблему, у многих людей была такая же проблема на Windows и Mac. Отвечайте за ссылку для тех, кто находит этот вопрос, поскольку я потратил часы, пытаясь найти решение, которое работает для меня:
Я пробовал много решений для одной и той же проблемы, включая размещение всех хостов в одной строке, удаление избыточных хостов и виртуальных хостов, а также включение строк IPv6 - ни один из них не был успешным.
Единственное решение, которое до сих пор работало для меня, - это комбинация всех решений:
- Изменение домена, который я использую из mysite. Локальный для mysite. dev. Вдохновленный ответом @Cleverlemming.
- Включая строки IPv6.
- Удаление избыточных виртуальных хостов и хостов (я прокомментировал их).
В моем файле hosts мои хосты в настоящее время находятся в отдельных строках, и до сих пор проблема кажется исправленной.
Удачи всем, кто пытается решить эту проблему, и если у кого-то есть какая-либо информация, добавьте, пожалуйста, сделайте это - это, кажется, проблема, затронутая многими людьми без какой-либо одной известной причины или решения.
Ответ 13
В моем случае замедление произошло из-за того, что некоторые записи в /etc/hosts больше не использовались в моих виртуальных хостах conf.