Ruby on rails 104:对等方重置连接:nginx+;彩虹&x2B;超过1MB的上传

Ruby on rails 104:对等方重置连接:nginx+;彩虹&x2B;超过1MB的上传,ruby-on-rails,nginx,unicorn,unix-socket,rainbows,Ruby On Rails,Nginx,Unicorn,Unix Socket,Rainbows,我正在运行ThreadPool rainbows+nginx(unix套接字) 在上传大文件时,我在nginx错误日志中得到以下信息(应用程序日志中没有任何内容): 浏览器接收到响应: 413 Request Entity Too Large 为什么会发生这种情况 在nginx中,在http和服务器级别(以防万一)都设置了“client_max_body_size 80M;” nginx通过unix套接字与rainbows通信(上游套接字+位置@proxy\u pass) 我在其他日志中没有

我正在运行ThreadPool rainbows+nginx(unix套接字)

在上传大文件时,我在nginx错误日志中得到以下信息(应用程序日志中没有任何内容):

浏览器接收到响应:

413 Request Entity Too Large
为什么会发生这种情况

  • 在nginx中,在http和服务器级别(以防万一)都设置了“client_max_body_size 80M;”
  • nginx通过unix套接字与rainbows通信(上游套接字+位置@proxy\u pass)
  • 我在其他日志中没有看到任何内容。我查过:
    • 彩虹原木
    • 工头日志
    • 应用程序日志
    • dmesg和/var/log/messages
  • 上载大小大于1 MB的文件时会发生这种情况

EconReset(对等方重置连接)错误意味着后端应用程序不干净地关闭了连接。如果后端应用程序死亡(例如,由于分段错误)或被终止,通常会发生这种情况。为了找出确切的原因,您必须检查后端日志(如果有)和/或系统日志。

可能您在
nginx.conf
中设置了
客户端最大体大小
,将体大小限制为1Mb,例如

client_max_body_size 1M;

在这种情况下,您需要将其删除,以允许上载超过1M的文件。

结果是Rainbows有一个名为
client\u max\u body\u size
的配置选项,默认为1MB 选择是

如果此选项处于启用状态,Rainbows将以静默方式
413
处理大型请求。你可能不知道它坏了,除非你在它前面跑些什么

Rainbows! do
  # let nginx handle max body size
  client_max_body_size nil 
end

通常
dmesg
甚至
dmesg | grep oom-i
都有帮助。我在日志中没有看到任何内容。我已经检查过:rainbows日志(没有请求记录)、foreman日志(没有请求记录)和应用程序日志(没有请求记录)。我可以100%地重现这个问题(总是在上传超过1MB时)。是的。我已经检查了dmesg和/var/log/messages。还有什么我可以看的吗?指令应该会有帮助。现在你已经编辑了你的答案。以前它是一个问题,应该作为评论而不是答案发布。是的,我设置了它,但我使用小写字母
m
(设置为80m)。这可能是个问题吗?将在今天晚些时候使用大写字母进行尝试
Rainbows! do
  # let nginx handle max body size
  client_max_body_size nil 
end