记录 Nginx upstream prematurely closed connection while reading response header from upstream, for large requests 问题
在网上找了一大推球用没有;
上方案
第一种可能
#在代理上加上
location / {
#根据 NGINX 文档,连接超时不能超过 75 秒“定义与代理服务器建立连接的超时。应该注意,这个超时通常不能超过 75 秒
#虽然说不超过75秒,但是我实际写的 数值 都比这两个大 你也可以设置大一些
proxy_read_timeout 3000s;
proxy_connect_timeout 750s;
proxy_pass http://xxx;
}
第二种可能
还有一种可能就是 下载尝试从 Nginx 代理的服务器下载 2GB 文件时文件流太大导致出问题;
语法:proxy_max_temp_file_size 大小;
默认值:proxy_max_temp_file_size 1024m;
上下文:http, server, location
当启用来自代理服务器的响应缓冲,并且整个响应不适合由 proxy_buffer_size 和 proxy_buffers 指令设置的缓冲区时,可以将部分响应保存到临时文件中。该指令设置临时文件的最大大小。一次写入临时文件的数据大小由 proxy_temp_file_write_size 指令设置。
零值禁用对临时文件的响应的缓冲。
此限制不适用于将缓存或存储在磁盘上的响应。
症状:
下载被强制停止在 1GB 左右,
Nginx 声称上游关闭了连接,但没有代理服务器正在返回完整内容。
解决方案:
proxy_max_temp_file_size代理位置增加,4096m并开始发送完整内容。
location / {
#在加上这个试一下
proxy_max_temp_file_size 4096m;
}