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