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