У мене на локальній машині працює веб-сервер, і коли я виконую запит 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
пізніше в распознавателя ланцюга?
hosts
(::1 test.local
), це вирішить проблему.