У меня есть веб-сервер, работающий на моей локальной машине, и когда я выполняю запрос 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
позже в цепочке распознавателей?