linux - nginx 502 Bad Gateway 大文件上传

标签 linux nginx proxy

我有一台带有 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/

相关文章:

linux - 不使用 Fuse 挂载到本地目录。

linux - 如何安装sublime text 3,在centos7中启动时已经与终端分离

nginx - docker nginx 部署入口点

c# - 为什么我的 C# AJAX 请求在 HTTP 下可以正常工作,而在 HTTPS 下却失败?

proxy - influxdb 代理或 influxdb 从其他 influxdb 获取数据

ssl - 使用代理的 https 请求

Linux使用grep打印文件名和前n个字符

linux - 合并/合并多个 PDF 文件

docker - Nginx 容器不使用 nginx.conf 除非我重新启动容器

Git http.proxy 设置