也许有人知道该怎么做。我试图上传大于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;
UWSGI选项:
harakiri 60
harakiri 1800
socket-timeout 1800
chunked-input-timeout 1800
http-timeout 1800
当我上传大(近4Gb)文件时,它上传~2-2.2Gb并因错误而停止:
[uwsgi-body-read] Timeout reading 4096 bytes. Content-Length: 3763798089 consumed: 2147479552 left: 1616318537
我应该使用哪种参数?
答案 0 :(得分:0)
最终解决我问题的方法是设置:
uwsgi.ini
http-timeout = 1200
socket-timeout = 1200
nginx_site.conf
proxy_read_timeout 1200;
proxy_send_timeout 1200;
client_header_timeout 1200;
client_body_timeout 1200;
uwsgi_read_timeout 20m;
在遇到类似的大文件(> 1Gb)问题后,我从github issue和stackoverflow thread以及更多其他信息中收集了更多信息。最终发生的事情是python / uwsgi花了太长时间来处理大文件,而nginx停止监听uwsgi导致504错误。因此,增加http和套接字通信的超时时间最终解决了它。