【问题标题】:Nginx: 413 entity too large - file does not reach the applicationNginx:413 实体太大 - 文件没有到达应用程序
【发布时间】:2013-04-25 02:13:31
【问题描述】:

我在 wsgi 应用程序中使用 Nginxuwsgi。当我尝试上传图像时,有时应用程序无法获取图像并且曾经出现错误413 entity too large

我通过添加client_max_body_size 4M; 解决了这个问题,我的Nginx conf 看起来像:

//Add sample Nginx Server
//Block here

错误停止显示,但文件仍未到达应用程序。我不明白它适用于某些计算机,它也适用于某些计算机。

【问题讨论】:

  • 我认为你所做的是正确的。但还要检查您的目录权限和 Nginx 日志以获取失败信息。
  • 错误日志中绝对没有错误我想知道为什么..他们有权限,因为我说它适用于某些客户端,但它不能适用于某些..我已经尝试过几乎所有的浏览器结果是随机的,不一致的..
  • 能否添加您在问题中使用的示例 Nginx 配置(主要是服务器块)?
  • 服务器块是 server { listen 127.0.0.1:22989; client_max_body_size 4M; client_body_buffer_size 128k;

标签: python-2.7 nginx wsgi uwsgi


【解决方案1】:

如果您在尝试上传时遇到 413 Request Entity Too Large 错误,您需要增加 nginx.conf 或任何其他配置文件中的大小限制。在服务器部分添加client_max_body_size xxM,其中xx 是您希望允许的大小(以兆字节为单位)。

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        client_max_body_size 20M;
        listen       80;
        server_name  localhost;

        # Main location
        location / {
            proxy_pass         http://127.0.0.1:8000/;
        }
    }
}

【讨论】:

    【解决方案2】:

    这意味着最大文件大小大于上传大小。见client_max_body_size

    所以尝试使用而不是使用固定值。

    server {
         [...]
         client_max_body_size 0;
         [...]
    }
    

    值 0 将禁用最大上传检查,但我建议使用固定值,例如 3M10M 等。

    【讨论】:

    • 加 1 用于告诉如何禁用最大上传检查。
    • 此参数可以添加到httpserverlocation上下文中。
    猜你喜欢
    • 2015-01-25
    • 2017-08-28
    • 2015-08-12
    • 2016-04-30
    • 2016-05-27
    • 2016-08-27
    • 2021-06-29
    • 2019-12-13
    • 2019-09-02
    相关资源
    最近更新 更多