Art*_*ult 5 upload file-upload nginx uwsgi
也许有人知道该怎么做。我正在尝试上传大于 3Gb 的文件。没问题,如果我使用以下配置上传高达 2Gb 的文件:
nginx:
client_max_body_size 5g;
client_body_in_file_only clean;
client_body_buffer_size 256K;
proxy_read_timeout 1200;
keepalive_timeout 30;
uwsgi_read_timeout 30m;
Run Code Online (Sandbox Code Playgroud)
UWSGI 选项:
harakiri 60
harakiri 1800
socket-timeout 1800
chunked-input-timeout 1800
http-timeout 1800
Run Code Online (Sandbox Code Playgroud)
当我上传大(几乎 4Gb)文件时,它上传 ~ 2-2.2Gb 并停止并出现错误:
[uwsgi-body-read] Timeout reading 4096 bytes. Content-Length: 3763798089 consumed: 2147479552 left: 1616318537
Run Code Online (Sandbox Code Playgroud)
我应该使用哪些参数?
最终解决我的问题的是设置:
uwsgi.ini
http-timeout = 1200
socket-timeout = 1200
Run Code Online (Sandbox Code Playgroud)
nginx_site.conf
proxy_read_timeout 1200;
proxy_send_timeout 1200;
client_header_timeout 1200;
client_body_timeout 1200;
uwsgi_read_timeout 20m;
Run Code Online (Sandbox Code Playgroud)
在偶然发现大文件(> 1Gb)的类似问题后,我从github 问题和stackoverflow 线程等收集了更多信息。最终发生的情况是 python / uwsgi 处理大文件花费的时间太长,并且 nginx 停止监听 uwsgi 导致 504 错误。因此增加http和socket通信的超时时间最终解决了这个问题。
归档时间: |
|
查看次数: |
5799 次 |
最近记录: |