我在 docker 中运行一个带有 nginx 的 django 应用程序。我可以使用库通过 API 下载文件requests
。当我想下载一个 55 MB 的文件时,连接突然中断,下载无法完成。
我尝试像这样调整 nginx 配置,但下载仍然没有成功:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
use epoll;
multi_accept off;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
send_timeout 7200;
keepalive_timeout 7200;
fastcgi_read_timeout 7200;
proxy_read_timeout 7200;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
我也尝试将工人设置得更高,但文档中不建议这样做。我设置了
send_timeout 7200;
keepalive_timeout 7200;
fastcgi_read_timeout 7200;
proxy_read_timeout 7200;
非常高,所以服务器不会关闭连接。但下载到 27 MB 后仍然中断。
是否有任何配置会导致这种情况?
非常感谢您的帮助。提前致谢。
编辑:我可以在浏览器中使用快速互联网连接下载文件。但是当连接速度很慢时,它就会中断。但我也需要能够使用较慢的连接下载文件。
EDIT2:实时跟踪日志时,我收到 [CRITICAL] WORKER TIMEOUT (pid:18) 。这与 nginx 有关吗?