7

Наши разработчики используют либо Docker, либо VirtualBox (с Vagrant) для локального тестирования своего кода (и проблема возникает с обоими). Чтобы облегчить это, мы изменим /etc /hosts, чтобы он указывал на правильный IP-адрес. Например,

local.test.company.com 10.200.10.1

Некоторые из наших разработчиков работают на Linux, а некоторые на macOS Sierra (10.12.3). На Mac запросы к local.test.company.com в Chrome (и других браузерах) часто занимают много времени (до минуты и более). (Проблема не возникает в Ubuntu Linux.) В это время "значок загрузки" на вкладке - это серый значок, вращающийся влево. Как только он меняется на синий значок, вращающийся вправо, он заканчивается очень быстро. Медленное время загрузки может стать настоящей проблемой для наших разработчиков, которые часто обновляют сайт во время разработки.

Исходя из этого вопроса, кажется, что Chrome тратит целую минуту на разрешение сайта. Это не имеет смысла для меня - сайт в /etc /hosts должен разрешиться немедленно. Некоторые разработчики могут воспроизводить это поведение очень последовательно. Другие видят это периодически или не видят вообще, и я не смог понять, почему.

Почему запросы к local.test.company.com долго обрабатываются в веб-браузере?

Или, что я могу сделать, чтобы "отладить" эту проблему и выяснить, что занимает так много времени?


Дополнительные примечания

  • Поведение продолжает происходить с Chrome в "режиме инкогнито" с включенным "отключить кеш".
  • ping немедленно разрешает local.test.company.com.

3 ответа3

7

У меня была та же проблема в Chrome 64.0.3282.167 на macOS High Sierra (10.13.3), и этот ответ StackOverflow решил ее для меня:

https://stackoverflow.com/a/10200111/318359

Цитата:

Поместите все записи файла hosts для localhost в одну строку следующим образом:

127.0.0.1 localhost myproject.dev myotherproject.dev 
::1 localhost
2

Вы пробовали запустить dtruss на chrome, чтобы посмотреть, что он делает, когда зависает?

https://opensourcehacker.com/2011/12/02/osx-strace-equivalent-dtruss-seeing-inside-applications-what-they-do-and-why-they-hang/

0

В конце концов я понял это. Как оказалось, Chrome не обязательно разрешается, когда круг вращается влево. Круг на Chrome вращается влево при загрузке данных и вправо при загрузке данных.

Я понял это путем отладки приложения PHP, которое запускалось в Chrome. PHP отвечает на запрос Chrome, круг в Chrome продолжает вращаться влево до первого оператора print в PHP. То есть до тех пор, пока сервер не отправит первый байт данных обратно клиенту.

Итак, в целом, это не было проблемой с разрешением DNS вообще. С DNS все было в порядке, наше веб-приложение просто не отправляло данные обратно так быстро, как мы думали (из-за приостановки в отладчике или по другим причинам).

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