Назад | Перейти на главную страницу

Поиск DNS для URL-адреса локального веб-сервера MAMP занимает 5+ секунд

Я запускаю MAMP в OS X 10.7. Я настроил виртуальный хост в Apache, вот так:

<Directory "/sites/example.com/">
Allow From All
AllowOverride All
</Directory>
<VirtualHost *:80>
    ServerName "example.local"
    ServerAlias "www.example.local"
    DocumentRoot "/sites/example.com"
</VirtualHost>

В / etc / hosts я добавил это:

127.0.0.1 example.local

Все работает нормально, может быть, неделю или две назад было очень быстро. Я не уверен, что изменилось, но теперь часть запроса DNS Lookup занимает более 5 секунд почти каждый раз, когда страница загружается, как сообщает Firebug и Chrome.

Проверка локального адреса выглядит неплохо:

->ping example.local
PING example.local (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.073 ms

Вот что показывает Chrome:

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

Любая помощь будет оценена по достоинству!

Хорошо, example.local обычно является адресом mDNS (Zeroconf), поэтому существует большая вероятность того, что ваша конфигурация mDNS каким-то образом сломалась, и для этого требуется несколько секунд, чтобы тайм-аут, прежде чем он вернется к /etc/hosts.

Почему бы просто не добавить localhost как ServerAlias и просто получить к нему доступ через это имя? В противном случае, по крайней мере, используйте домен, у которого нет домена верхнего уровня, который имеет другое значение для вашей системы.

Юо также может использовать домены, в которых нет .something, поэтому просто example без .local. Как упоминалось здесь http://www.justincarmony.com/blog/2011/07/27/mac-os-x-lion-etc-hosts-bugs-and-dns-resolution/ похоже, OSX использует .local для Bonjour.

Я тестировал, используя только пример без .local, и, похоже, он решает эту проблему.

У меня была эта проблема с сайтами, отличными от .local, при использовании AJAX. Мне удалось исправить это, добавив следующие строки в / etc / hosts

::1 slow-site.url      
fe80::1%lo0 slow-site.url

над основным блоком сайтов для каждого сайта-нарушителя, где "slow-site.url" равно "example.local" или что-то еще.

это IPv6-адрес - подробнее здесь:

https://superuser.com/questions/241642/what-is-the-relevance-of-fe801lo0-localhost-in-etc-hosts