#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
флагом, и пользователи, у которых были проблемы, больше не делают.