Запрос ресурса веб-страницы в Chrome почти на минуту остановился - PullRequest
2 голосов
/ 23 марта 2019

Ресурс в моем веб-приложении занимает около минуты после долгой остановки.Это происходит последовательно.Как показано ниже, только 3 запроса на этой странице фактически попадают на сам сервер, остальные - в кэш-память или память.Эта проблема возникает только в Chrome, и Safari, и Firefox такого поведения не демонстрируют.

Я реализовал предложение Cache-Control: no-store в этом вопросе SO, но проблема сохраняется. запрос долго останавливался, иногда в chrome

Ниже также приведен пример того, как выглядит ответ, когда он, наконец, приходит.

Мое приложение размещенов AWS за сетевым балансировщиком нагрузки, который подключается к экземпляру EC2, на котором запущено nginx, и к самому приложению.

Есть идеи, что вызывает это?

Network tab Response

Ответы [ 3 ]

1 голос
/ 14 июня 2019

Я столкнулся с точно такой же проблемой.Мы используем Elastic Beanstalk с балансировщиком сетевой нагрузки (NLB) с терминацией TLS на NLB.

Обратная связь, полученная от службы поддержки AWS:

Эта проблема может возникать при подключении клиентав прослушиватель TLS на Network Load Balancer и не отправляет данные сразу после завершения квитирования TLS.Коренная причина - крайний случай в обработке новых соединений.Обратите внимание, что это происходит только в том случае, если Целевая группа для прослушивателя TLS настроена на использование протокола TCP без включенного Proxy Protocol v2

Сейчас они работают над исправлением этой проблемы.Каким-то образом эту проблему можно заметить только при использовании браузера Chrome.

Тем временем у вас есть два варианта решения:

  • включить Proxy Protocol v2 в целевой группе ИЛИ
  • настроить целевую группу на использование протокола TLS для маршрутизации трафика к целям
1 голос
/ 02 апреля 2019

Я вижу две вещи, которые могут быть ответственны за задержки:

1) Использование CDN
Если медленно загружаемые ресурсы загружаются из CDN (сети доставки контента), выследует попытаться загрузить их на сервер и доставить напрямую.
Особенно, если вы используете http2, это может быть значительным приростом в скорости, но также и с http1.У меня нет опыта работы с AWS, поэтому я не знаю, как там все работает по умолчанию.
На скриншоте не ясно видно, загружаются ли ресурсы из CDN, но, поскольку речь идет о скриптах, я думаю, что это разумное предположение.

2) Планировщик ресурсов Chrome
Общее описание: https://blog.chromium.org/2013/04/chrome-27-beta-speedier-web-and-new.html
Возможно или даже вероятно, что этот планировщик изменился с момента публикации статьи, но, по крайней мере, показанна вашем скриншоте.
Я думаю, что если вы оптимизируете страницу с помощью https://www.webpagetest.org и инструментов Chrome Web, вы сможете решить любые проблемы с планировщиком, а также другие проблемы, связанные со скоростью и, возможно, другие проблемы.Вот ссылка: https://developers.google.com/web/tools/

РЕДАКТИРОВАТЬ
3) Proxy-Issue
В целом, возможно, что Chrome имеет проблемы или причины длязадержка из-за прокси-сервера.Детали не могут быть известны до блокировки в лог-файлах, возможно, вам нужно настроить, чтобы лог-файлы даже создавались и чтобы уровня лога было достаточно, чтобы сообщать вам о любых проблемах (уровень Warning или даже Info).

0 голосов
/ 02 апреля 2019

После просмотра журналов chrome net-export кажется, что я столкнулся с этой проблемой: https://bugs.chromium.org/p/chromium/issues/detail?id=447463.

У меня все еще нет решения, как решить проблему, хотя,

...