Время ожидания загрузки истекает через 30 секунд для пользователей с медленными соединениями

#nginx #kubernetes #gunicorn #nginx-ingress #filesaver.js

#nginx #kubernetes #gunicorn #nginx-вход #filesaver.js

Вопрос:

На нашем портале есть несколько файлов, которые для меня не такие большие: 50-80 МБ. При моем домашнем подключении загрузка этих файлов занимает менее 10 секунд. Я тестировал других пользователей, и они испытывают то же самое.

Однако в офисе соединение ужасное. Эти файлы даже не загружаются, потому что, как только время загрузки достигает примерно 30-35 секунд, даже если загрузка выполняется (просто невероятно медленно), это вызывает не описательную ошибку в Инструменты разработчика > Сеть и останавливает загрузку. В журналах не видно ничего, что указывало бы, почему загрузка прекращена.

Большая проблема в том, что теперь у нас есть несколько конечных пользователей с плохим Интернетом, которые также сталкиваются с той же проблемой.

Итак, я пытаюсь выяснить, что мы можем сделать с нашей стороны. Очевидно, что мы не можем сказать им: «Ну, просто улучшите интернет-сервис». Похоже, что с нашей стороны может быть что-то сделано, чтобы сохранить загрузку до ее завершения. Что это такое, я не совсем уверен, и именно в этом я ищу помощь. Возможно, это настройка по умолчанию в зависимости где-то в нашем стеке.

  • ReactJS FE, который использует FileSaver.js для загрузки
  • Django будет использовать встроенную загрузку Django
  • nginx-ingress для контроллера входа трафика в кластер Kubernetes
  • FE используется nginx для обслуживания FE
  • BE используется gunicorn для обслуживания BE

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

Я думаю, что проблема где-то с nginx-ingress , nginx , и / или FileSaver.js , поэтому исследую их.

Комментарии:

1. Вот как я бы отлаживал: (1) Проверьте журналы gunicorn, время ожидания gunicorn и какой тип рабочего вы используете? Вы видите, что у каких-либо работников истекает время ожидания в журналах gunicorn? Gunicorn по умолчанию timeout is 30 и, скорее всего, причина ошибки. (2) Если на шаге 1 ошибки нет. и запрос обрабатывается нормально при тайм-ауте запроса, тогда я пойду и проверю конфигурацию тайм-аута nginx. Посмотрите на конструктивные соображения Gunicorn: тайм-аут и тип работника

Ответ №1:

Согласно Саурабху, настройка timeout сделала свое дело. Теперь я просто запускаю веб-сервер с -t 300 флагом, и пользователи, у которых были проблемы, больше не делают.