5

У меня есть веб-сервер, работающий на моей локальной машине, и когда я выполняю запрос cURL против него, используя адрес localhost он выполняется очень быстро. Однако, когда я добавляю /etc /hosts как

127.0.0.1 test.local

и затем выполните тот же запрос cURL:

curl -I http://test.local:3002/images/logo.png

это задерживает на твердые 2-3 секунды. Смена запроса cURL обратно на localhost снова не дает задержки.

Это воспроизводимо каждый раз.

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

Я попытался создать фиктивный сервис через netcat который просто возвращает HTTP/1.0 200 OK поэтому я могу гарантировать, что проблема на самом деле не в моем веб-сервере. Опять же, без разницы: localhost работает быстро, как и следовало ожидать, и test.local задерживается.

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

Это возможно? OS X Lion как-то обращается к моим /etc/hosts позже в цепочке распознавателей?

2 ответа2

6

Хорошо, я понял это. Я нашел этот комментарий в сообщении в блоге:

Дело в том, что Lion по-разному обрабатывает домен .local, поскольку он зарезервирован для некоторых функций многоадресной DNS (используется Bonjour). Единственный способ решить эту проблему - использовать другой домен верхнего уровня для хостов разработки (например, .dev). Это хорошо работает для меня, надеюсь, это будет полезно для других!

Переключение моего домена разработки в конец .dev работает нормально.

tl; dr - не использовать .local для разработки доменов в Lion.

1

OSX Lion имеет эту известную ошибку. Прежде чем использовать записи в /etc /hosts, он будет обращаться к DNS-серверу. Такое поведение встречается только у OSX-льва и не встречается у снежного барса или даже у тигра.

Возможные варианты:

  • Установить DNSMasq
  • Ждите патча от macosx
  • Используйте снежного барса в настоящее время

Также см. Http://www.justincarmony.com/blog/2011/07/27/mac-os-x-lion-etc-hosts-bugs-and-dns-resolution/ для получения более подробной информации. Там все хорошо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .