172 похожих чатов

Здравствуйте. Пытаюсь загрузить большой файл (4гб) с фронтенда функцией fetch через

nginx в actix-web используя библиотеку actix-multipart. Локальная сеть, в nginx выставляен таймаут в 20 минут, всем участникам выставлен максимальный размер файла в 100гб. Почему-то запрос падает с ошибкой 504 timeout. Actix пишет в лог загадочный "Error in response: Incomplete". Где вообще искать проблему?

13 ответов

7 просмотров

А в логах nginx что?

Steel-Sword Автор вопроса

Если убрать всякий мусор, то такое 2023/09/05 12:08:50 [debug] 184974#184974: *1 http run request: "/url" 2023/09/05 12:08:50 [debug] 184974#184974: *1 http upstream check client, write event:1, "/url" 2023/09/05 12:08:50 [debug] 184974#184974: *1 http upstream request: "//url" 2023/09/05 12:08:50 [debug] 184974#184974: *1 http upstream send request handler 2023/09/05 12:08:50 [debug] 184974#184974: *1 http upstream send request 2023/09/05 12:08:50 [debug] 184974#184974: *1 http upstream send request body 2023/09/05 12:08:50 [debug] 184974#184974: *1 tcp_nopush 2023/09/05 12:08:50 [debug] 184974#184974: *1 writev: 693 of 693 2023/09/05 12:08:50 [debug] 184974#184974: *1 sendfile: @0 2147479552 2023/09/05 12:08:50 [debug] 184974#184974: *1 sendfile: 2147479552 of 2147479552 @0 2023/09/05 12:29:00 [debug] 184974#184974: *1 http upstream request: "/url" 2023/09/05 12:29:00 [debug] 184974#184974: *1 http upstream send request handler 2023/09/05 12:29:00 [debug] 184974#184974: *1 http next upstream, 4 2023/09/05 12:29:00 [debug] 184974#184974: *1 free rr peer 1 4 2023/09/05 12:29:00 [error] 184974#184974: *1 upstream timed out (110: Unknown error) while sending request to upstream, client: 192.168.123.127, server: _, request: "POST /url", host: "192.168.9.252", referrer: "http://192.168.9.252/ui/map" 2023/09/05 12:29:00 [debug] 184974#184974: *1 finalize http upstream request: 504 2023/09/05 12:29:00 [debug] 184974#184974: *1 finalize http proxy request 2023/09/05 12:29:00 [debug] 184974#184974: *1 close http upstream connection: 17 2023/09/05 12:29:00 [debug] 184974#184974: *1 http finalize request: 504, "/url" a:1, c:1 2023/09/05 12:29:00 [debug] 184974#184974: *1 http special response: 504, "/url" 2023/09/05 12:29:00 [debug] 184974#184974: *1 HTTP/1.1 504 Gateway Time-out^M

А у Актикса есть свой таймаут?

Steel-Sword Автор вопроса
Lev Khoroshansky
А у Актикса есть свой таймаут?

Я хз. Гуглил, ничего не нашёл. Есть какой-то keep-alive, но немного непохоже на таймаут, щас разбираюсь

Steel-Sword Автор вопроса
Lev Khoroshansky
А у Актикса есть свой таймаут?

Keep-Alive Actix Web keeps connections open to wait for subsequent requests. keep alive connection behavior is defined by server settings. Duration::from_secs(75) or KeepAlive::Timeout(75): enables 75 second keep-alive timer. KeepAlive::Os: uses OS keep-alive. None or KeepAlive::Disabled: disables keep-alive. Есть что-то такое. Но я не понимаю, что это

Скорее всего в nginx / таймауте

Steel Sword
Keep-Alive Actix Web keeps connections open to wai...

Wireshark-ом запишите трафик

Steel Sword
Keep-Alive Actix Web keeps connections open to wai...

Это для сценариев, когда ты много запросов шлёшь, чтобы заново TCP подключения на каждый запрос не создавать

Steel-Sword Автор вопроса
Nero-sama 🇷🇺
Скорее всего в nginx / таймауте

location /url { client_max_body_size 100000M; proxy_read_timeout 20m; proxy_connect_timeout 20m; proxy_send_timeout 20m; proxy_set_header Host $host; proxy_pass http://127.0.0.1:10001; }

Steel-Sword Автор вопроса

сервер дропает коннекшн видимо

Steel-Sword Автор вопроса
Bro Etiket
сервер дропает коннекшн видимо

Я копался вчера целый день, в итоге понял, что это nginx чёто мутит, пошёл в чат по nginx, там предложили попробовать отключить proxy_request_buffering (он включен по умолчанию), и всё заработало. Проблема была в том, что пока nginx ждал весь файл, чтобы забуферить его, срабатывал таймаут

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет. Я верно понимаю, что в определении класса Монад m — зафиксирован (к тому же поскольку это моноид в категории эндофункторов). Т.е. используя байнд я не могу перемещать...
Arseny
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта