我正在运行ThreadPool rainbows + nginx(unix socket)
在大文件上传时,我在nginx错误日志中得到以下内容(应用程序日志中没有任何内容):
readv() failed (104: Connection reset by peer) while reading upstream
浏览器收到回复:
413 Request Entity Too Large
为什么会这样?
答案 0 :(得分:2)
ECONNRESET
(由对等方重置连接)错误意味着后端应用程序不正确地关闭了连接。如果后端应用程序死亡,通常会发生这种情况。由于分段错误,或被OOM killer杀死。要找出确切的原因,您必须检查后端日志(如果有)和/或系统日志。
答案 1 :(得分:1)
也许您将client_max_body_size
设置到您的nginx.conf
,将身体的大小限制为1Mb,例如
client_max_body_size 1M;
在这种情况下,您需要将其删除以允许上传超过1M的文件。
答案 2 :(得分:1)
原来,Rainbows有一个名为client_max_body_size
的配置选项,默认为1 MB
选项为documented here
如果启用此选项,Rainbows将413
以静默方式请求大量请求。除非你在它前面运行一些东西,否则你可能不会知道它正在破裂。
Rainbows! do
# let nginx handle max body size
client_max_body_size nil
end