我有一台带有 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)。由于 Apache 中的错误(错误 https://issues.apache.org/bugzilla/show_bug.cgi?id=51747),需要配置 FcgidMaxRequestInMem
编辑 fcgid.conf 文件,这取决于你的 linux 版本可能位于/etc/httpd/conf.d/或/etc/apache2/mods-available/
将 FcgidMaxRequestLen 和 FcgidMaxRequestInMem 设置为相同的值,然后重新启动 Apache。
关于linux - nginx 502 Bad Gateway 大文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29734047/