nginx 502 Bad Gateway 大文件上传

nginx 502 Bad Gateway on big file uploading

我有一个带有 apache 网络服务器和 nginx 作为代理的服务器。如果我想上传一个 150MB 的文件,它可以毫无问题地工作。但是,如果我尝试上传 350MB 的文件(或更大,我必须上传最多 2GB 的文件),我会收到 nginx 502 Bad Gateway 错误。

我正在使用 plesk,我将这些指令添加到 nginx 配置以进行测试:

proxy_buffer_size   256k;
proxy_buffers   8 512k;
proxy_busy_buffers_size   512k;
fastcgi_buffers 8 512k;
fastcgi_buffer_size 512k;

我也增加了 client_max_body_size 指令。

我总是收到这个错误:

2015/04/19 11:36:09 [error] 31924#0: *43126352 upstream prematurely closed connection while reading response header from upstream, client: x.x.x.x, server: example.com, request: "POST /uptest HTTP/1.1", upstream: "http://x.x.x.x:7080/uptest", host: "example.com", referrer: "http://example.com/uptest"

我应该改变什么?

FcgidMaxRequestLen或FcgidMaxRequestInMem指令不够大,导致很多情况下触发限制(http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html). FcgidMaxRequestInMem is required to configure due to bug in Apache (bug https://issues.apache.org/bugzilla/show_bug.cgi?id=51747)

编辑 fcgid.conffile,这取决于您的 linux 版本可能位于 /etc/httpd/conf.d/ 或 /etc/apache2/mods-available/

将 FcgidMaxRequestLen 和 FcgidMaxRequestInMem 设置为相同的值,然后重新启动 Apache。