nginx上传client_max_body_size问题

2024-05-22

我正在运行 nginx/ruby-on-rails,并且有一个简单的多部分表单来上传文件。 一切正常,直到我决定限制要上传的文件的最大大小。 为此,我设置了 nginxclient_max_body_size to 1m(1MB),并且当该规则被破坏时,预计会出现 HTTP 413(请求实体太大)状态响应。

问题问题是,当我上传 1.2 MB 文件时,浏览器没有显示 HTTP 413 错误页面,而是挂起一段时间,然后终止并显示“页面加载时连接已重置”消息。

我已经尝试了 nginx 提供的几乎所有选项,但似乎没有任何效果。有人对此有什么想法吗?

这是我的 nginx.conf:

worker_processes  1;
timer_resolution  1000ms;
events {
    worker_connections  1024;
}

http {
    passenger_root /the_passenger_root;
    passenger_ruby /the_ruby;

    include       mime.types;
    default_type  application/octet-stream;

    sendfile           on;
    keepalive_timeout  65;

    server {
      listen 80;
      server_name www.x.com;
      client_max_body_size 1M;
      passenger_use_global_queue on;
      root /the_root;
      passenger_enabled on;

      error_page 404 /404.html;
      error_page 413 /413.html;    
    }    
}

Thanks.


**Edit**

环境/UA:Windows XP/Firefox 3.6.13


当客户端通知 nginx 将发送比实际大小更大的正文时,nginx 会“快速失败”client_max_body_size通过发送 413 响应并关闭连接。

大多数客户端在发送整个请求正文之前不会读取响应。由于 nginx 关闭了连接,客户端将数据发送到关闭的套接字,从而导致 TCP RST。

如果您的 HTTP 客户端支持,处理此问题的最佳方法是发送Expect: 100-Continue标头。 Nginx 从 1.2.7 开始正确支持这一点,并将回复413 Request Entity Too Large响应而不是100 Continue if Content-Length超过最大体型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx上传client_max_body_size问题 的相关文章

随机推荐

  • 使用 Python Pandas 获取多个值来制作表格

    使用我的代码 我可以将两个 Excel 数据库连接到 1 中 问题是它只显示收入列 而不显示列展示次数 为了更清楚 我留下了代码和示例 我尝试过 df1 df1 pivot index Cliente columns Fecha value
  • Tomcat 基本 URL 重定向

    使用tomcat 如何获取请求http www mydomain example重定向到http www mydomain example somethingelse index jsp 我什至没有设法获得要显示的index htmlhtt
  • 使用 Wt C++ 框架的经验? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有人严重地用过Wt 效果好吗 您是否遇到过某些限制 或者优点 Wt http www webtoolkit eu wt是一个用于开
  • 将 XML 文档插入到另一个 XML 文档上的特定节点 (java)

    我有一个 XML1
  • Windows 7 - 来自 cmd 的 pydoc

    好吧 我正经历过这样的时刻 让我怀疑自己使用计算机的能力 这不是我想象中在我的第一篇 SO 帖子中提出的问题 但这里是 自从我在中断 10 年之后一直希望重新开始编程以来 我就开始学习 Zed 的新书 艰难地学习 Python 而 Pyth
  • 使用 Python37 运行时通过 Cloud Functions 生成缩略图

    我有一个由 Firebase 存储触发的 Google Cloud 函数 我想生成缩略图 虽然 Node js 文档有一个使用 ImageMagick 的示例 https cloud google com functions docs tu
  • 如何拦截全局资源加载?

    背景 我需要使用翻译 SDK Lokalise 文档here https docs lokalise com en articles 3487109 lokalise android sdk 2 0 beta 旨在从其服务器加载字符串资源
  • 简单循环的速度[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我用Java做了一个简单的循环只是为了测试速度 与 C 中的相同循环相比 它需要更多的时间 20亿次迭代大约需要6 5秒当它被执行时
  • 您可以使用未命名的命名空间来隐藏标头中的常量吗?

    我在头文件的命名空间中包含一些内联函数 目前无法将它们移动到 cpp 文件中 其中一些内联函数使用魔术常量 例如 Foo h namespace Foo const int BAR 1234 inline void someFunc Do
  • 如何授予 SQL Server 代理访问权限以便能够写入/修改系统文件?

    我的工作有一个存储过程 运行 BCP 来查询一些数据 如果我单独运行 QUERYOUT 命令 它就会起作用 但是 如果我尝试在作业中运行它 它会创建文件但 挂起 并且数据永远不会放入文件中 这会永远挂起 所以我通常终止 BCP exe 我的
  • 向 Laravel 的 Mailer 添加新的传输驱动程序

    我需要向 Laravel 的邮件包添加一个新的传输驱动程序 以便我可以通过默认情况下不支持的外部服务 Mailjet 发送电子邮件 编写传输驱动程序不会成为问题 但我找不到一种方法来连接并添加新的驱动程序 以便我可以继续正常使用 Larav
  • 将空行添加到文字输出 RMarkdown

    再会 我正在尝试使用导出到 Word 文档的 rmarkdown 文件创建会议摘要提交 我正在尝试找到一种在输出的word文档中插入空行的方法 我发现可以通过在 Markdown 文件末尾添加两个空格来插入换行符 但是 当您只需要一个空行时
  • Plotly:使用循环添加轨迹

    I just learn Plotly and I am trying to make my python code better This is my dataframe 为了形象化 这是我的代码 但我认为它可以通过 For 循环来完成
  • ASP MVC 3 RequireHttps 属性将所有链接更改为 https

    我有一个 ASP MVC 3 网站 其中包含反馈表并且应该需要 SSL 现在 我在名为 ContactUs 的控制器内有一个名为 反馈 的操作 负责查看和处理反馈 当我使用 RequireHttps 该操作上的属性 效果很好 并将 URL
  • Flask SQLAlchemy 无法在 venv 中设置属性错误[重复]

    这个问题在这里已经有答案了 我正在学习身份验证功能Flask SQLAlchemy 因此构建非常基本的应用程序 用户 属性 姓名 电子邮件和密码 能够注册和登录 重定向到虚拟个人资料页面 仅此而已 令人费解的行为是 如果我使用虚拟环境 我所
  • 如何让 TypeScript 从 node_modules 捆绑第 3 方库?

    我想要使 用 TypeScript 编译器node modules firebase firebase d ts检查我的代码并捆绑node modules firebase firebase js到我从 firebase 导入内容的一些文件
  • 将多个 Future[Seq] 连接成一个 Future[Seq]

    如果没有 Future 这就是我将所有较小的 Seq 组合成一个大 Seq 的方式flatmap category getCategoryUrlKey id Int Seq Meta main method val appDomains S
  • Python for ios解释器[重复]

    这个问题在这里已经有答案了 可能的重复 iOS 上的 Python 或 Ruby 解释器 https stackoverflow com questions 4772591 python or ruby interpreter on ios
  • 实体类型处于“影子状态”意味着什么?

    在我的 ASP NET Core 1 0 MVC6 EF7 Web 应用程序中 我添加了一个迁移 该迁移添加了新的相关表 和相应的模型 我有以下模型快照 DbContext typeof ApplicationDbContext parti
  • nginx上传client_max_body_size问题

    我正在运行 nginx ruby on rails 并且有一个简单的多部分表单来上传文件 一切正常 直到我决定限制要上传的文件的最大大小 为此 我设置了 nginxclient max body size to 1m 1MB 并且当该规则被