it-swarm.com.ru

Как устранить медленное разрешение / загрузку localhost / virtualhost (с задержкой в ​​2-3 секунды) в Mac OS X Lion?

С тех пор, как я установил свою среду разработки на Mac OS X Lion (совершенно новый MacBook Air, приобретенный в январе 2012 года), я заметил, что разрешение на виртуальный хост в первый раз очень медленное (около 3 секунд), но после этого быстро, пока Я продолжаю загружать его регулярно.

Если я оставлю его нетронутым на пару минут, а затем перезагрузлю снова, первая перезагрузка будет (снова) мучительно медленной; Кажется, что-то кешируется.

Как видно ниже, я не использую домен .local.

Моя установка: 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>
90
Adam Gries

У меня была точно такая же проблема, и это сводило меня с ума!

Поместите все записи файла hosts для localhost в одну строку следующим образом:

127.0.0.1 localhost myproject.dev myotherproject.dev
::1 localhost
fe80::1%lo0 localhost

Работал как шарм для меня. Похоже, ошибка в Lion.

149
Jeremy Dunn

Есть еще одна проблема с 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 Host, а не путем запроса записей DNS-сервера в настройках сети.

Чтобы решить эту проблему (без необходимости переименовывать каждый vhost), вам нужно добавить записи IPv6 для каждого из ваших vhosts в ваш файл/etc/hosts: "

::1 mysite.local
fe80::1%lo0 mysite.local
127.0.0.1 mysite.local
64
Cleverlemming

У меня была такая же проблема, также на Lion.

Странно, но мое решение было противоположно решению Джереми. У меня была целая куча записей someproject.dev в одной строке в/etc/hosts. Загрузка сайта на любом из них в первый раз заняла целую минуту или около того. Если бы я использовал его снова в течение 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

И вдруг все снова стало быстро. То же самое на обеих моих машинах.

24
Flemming Funch

Определение того же хоста для IPv6 :: 1 мне помогло.

127.0.0.1 something.local.mydomain.org
::1 something.local.mydomain.org
12
Aram

Убедитесь, что записи IP v6 не совпадают с localhost

::1 localhost

записи IP v6 идут отдельной строкой

fe80::1%lo0 here and_here

Сейчас это действительно очень быстро, но есть редкие исключения, когда старые лаги возвращаются. Однако они могут основываться на других причинах.

8
user902664

В OSX El Capitan для меня работало создание дублированной записи IPv6 прямо над записью IPv4, вот так

fe80::1%lo0 demo.test.dev
127.0.0.1   demo.test.dev
7
concept47

Обеспечение того, чтобы имена хостов были определены в начале файла, помогло мне. По умолчанию строка 127.0.0.1 localhost уже находится в начале, просто добавьте свои записи в той же строке.

3
Erik

У меня была та же проблема, и я обнаружил, что она вызвана включением IPv6 в моей локальной сети, но не правильно настроил IPv6 между моей сетью и провайдером. Очевидно, что DNS-сервер IPv6 имеет приоритет перед DNS IPv4, когда клиенту предоставляется и то, и другое. Потребовалось несколько секунд (при каждой попытке), чтобы клиент обнаружил, что DNS IPv6 недоступен или отсутствует, а затем вернулся к DNS IPv4.

1
Finn Espen Gundersen

У меня была такая же проблема, и в конце концов я понял, что у меня дважды была одна и та же запись Host:

например.

127.0.0.1 localhost Host1 Host2 Host3 Host4 Host5 Host1 Host6

Я удалил второй экземпляр того же хоста (в примере выше - Host1) - и все сразу ускорилось.

Чувствовал себя немного глупо, когда я обнаружил это, но когда у вас есть 10 длинных имен хостов в одной строке и вы часто добавляете/удаляете, это может быть легко упущено.

1
Aaron

Примечание: я использую Windows и XAMPP, однако при исследовании этой проблемы у многих людей была такая же проблема на Windows и Mac. Ответьте для справки для любого, кто найдет этот вопрос, поскольку я часами пытался найти решение, которое работает для меня:

Я пробовал много решений для той же проблемы, включая размещение всех хостов на одной линии, удаление избыточных хостов и виртуальных хостов, а также включение строк IPv6 - ни один из них один не был успешным ,.

Единственное решение, которое до сих пор , похоже, работало для меня, это комбинация всех решений:

  • Изменение домена, который я использую, с mysite. локального на mysite. dev , Вдохновленный ответ @ Cleverlemming.
  • Включая линии IPv6.
  • Удаление лишних виртуальных хостов и хостов (я их закомментировал).

В моем файле hosts мои хосты в настоящее время находятся на отдельных строках, и до сих пор проблема, похоже, исправлена.

Удачи всем, кто пытается решить эту проблему, и если у кого-то есть какая-либо информация для добавления, пожалуйста, сделайте это - похоже, эта проблема затронула многих людей, у которых нет ни одной известной причины или решения.

0
Robert Deniszczyc

Уловка, которая сделала это для меня, была добавлением

127.0.0.1 locahost

в первой строке файла Host.

Из всех моих виртуальных хостов только те, которые использовали базу данных, работали медленно. Я полагаю, это потому, что процесс поиска "localhost" для соединения с базой данных замедлил процесс, поскольку я добавил адреса только для своих виртуальных хостов, а не "localhost". Теперь все снова быстро. :)

0
D. Marti

Я тоже наткнулся на эту кучу. У меня есть куча 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
0
Alex Dunae