使用Nginx上传大文件经常遇到各种失败的情况,主要由于两个方面
1.
Nginx 默认设置 “client_max_body_size” 为 1M。如果上传文件大于这个值的话,会报错,相关 HTTP 状态码为 423 (“Request Entity Too Large”). 你可以将值设为 0
以禁用此功能.
2.
如果要上传大于 4GB 的文件,默认情况下 Nginx 会把整个文件存在一个临时文件中,然后发给上游服务器,有些应用可能会出现兼容性问题等导致出错。在 Nginx 配置文件中设置以下内容能解决这个问题(以Seafile作为上游服务器为例):
location /seafhttp {
... ...
proxy_request_buffering off;
}