【问题标题】:Default nginx client_max_body_size默认 nginx client_max_body_size
【发布时间】:2015-04-13 03:21:27
【问题描述】:

我一直收到 nginx 错误:

413 Request Entity Too Large

我已经能够将我的 nginx.conf 文件的服务器部分中的client_max_body_size 更新为 20M,这已经解决了这个问题。但是,默认的nginxclient_max_body_size是什么?

【问题讨论】:

    标签: nginx


    【解决方案1】:

    client_max_body_size 指令的默认值为 1 MiB

    它可以在httpserverlocation 上下文中设置——就像在most cases 中一样, 这个嵌套块中的指令优先于祖先块中的相同指令

    摘自ngx_http_core_module documentation

    Syntax:   client_max_body_size size;
    Default:  client_max_body_size 1m;
    Context:  http, server, location
    

    设置客户端请求正文的最大允许大小,在 “Content-Length”请求头字段。如果请求中的大小 超过配置值,出现 413 (Request Entity Too Large) 错误 被退回给客户。请注意,浏览器不能 正确显示此错误。将大小设置为 0 禁用检查 客户端请求正文大小。

    别忘了reload configuration 通过nginx -s reloadservice nginx reload 前面带有sudo(如果有)的命令。

    【讨论】:

    • 请注意,在运行nginx -s reload 应用配置更改之前,您应该使用nginx -t 测试您的配置。它不能保证你的配置是正确的,但它会捕获语法错误或无效值。
    • 可以,但无论如何,nginx -s reload 不会应用语法错误的配置,而是会报错。
    • Nginx 支持该指令的 maximum 值是多少?文档中没有任何内容。 Apache supports 2GB max.
    • @DanDascalescu,最大值取决于off_t 类型大小(请参阅ngx_http_core_module.h)。对于 64 位可执行文件off_t size is 64 bit,最大值应为 2^63 字节。
    【解决方案2】:

    Pooja Mane 的回答对我有用,但我必须将 client_max_body_size 变量放在 http 部分中。

    【讨论】:

      【解决方案3】:

      你可以在nginx配置文件中增加body size

      sudo nano /etc/nginx/nginx.conf

      client_max_body_size 100M;

      重启 nginx 以应用更改。

      sudo 服务 nginx 重启

      【讨论】:

      • 设置为 0 表示无限
      【解决方案4】:

      Nginx client_max_body_size 的默认值为 1MB

      您可以通过三种不同的方式更新此值

      1。设置在影响所有服务器块(虚拟主机)的http 块中。

      http {
          ...
          client_max_body_size 100M;
      }
      

      2。在server 块中设置,这会影响特定的站点/应用程序。

      server {
          ...
          client_max_body_size 100M;
      }
      

      3。在location 块中设置,它会影响站点/应用程序下的特定目录(上传)。

      location /uploads {
          ...
          client_max_body_size 100M;
      }
      

      欲了解更多信息click here

      【讨论】:

      • M是大写还是小写有关系吗?即 100m 与 100M
      • @AdamHughes,我认为它不区分大小写。
      【解决方案5】:

      您必须增加nginx.conf 文件中的client_max_body_size。这是基本步骤。但是,如果您的后端 laravel 那么您还必须在 php.ini 文件中进行一些更改。这取决于你的后端。下面我提到了文件位置和条件名称。

      sudo vim /etc/nginx/nginx.conf.
      

      打开文件后将其添加到 HTTP 部分。

      client_max_body_size 100M;
      

      【讨论】:

        猜你喜欢
        • 2018-02-20
        • 2012-02-21
        • 2017-01-02
        • 2011-06-24
        • 2011-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-05
        相关资源
        最近更新 更多