我在nginx后面有一个Artifactory,上传大于4 GB的文件失败。我可以肯定这是nginx的错,因为如果文件从本地主机上传到本地,则不会发生任何问题。
nginx的设置有client_max_body_size和client_body_timeout足够大的并非是一个问题。
尽管如此,当通过curl上传大文件(> 4 GB)时,大约半分钟后它仍然失败。我收到的唯一错误消息是HTTP 500 Internal Server Error,没有任何内容写入nginx的错误日志。
就我而言,问题是在根目录上安装的磁盘空间不足。我的磁盘/home容量很大,但是剩下的容量只有4 GB /。我假设nginx将传入的请求正文保存在那里,并且在它填满之后,请求被关闭了。
我固定的方式是将这些行添加到nginx.conf文件中(并非所有行都是必需的):
http {
(...)
client_max_body_size 100G;
client_body_timeout 300s;
client_body_in_file_only clean;
client_body_buffer_size 16K;
client_body_temp_path /home/nginx/client_body_temp;
}
Run Code Online (Sandbox Code Playgroud)
最后一行是重要的部分-我告诉nginx在/home空间中摆弄其文件。
| 归档时间: |
|
| 查看次数: |
2718 次 |
| 最近记录: |