在Django服务器上出现了413 Payload Too Large错误

12

当我们尝试上传大文件到Django后端时,我的团队一直收到413错误:413 Payload too large

我们无法确定最大可接受的文件大小-它似乎在1-3MB范围内波动。

我们排除的问题:

  • 这不是Web服务器配置问题,因为我们在本地运行Django服务器(没有Web服务器)

  • 我们认为这不是应用程序服务器配置问题,因为此问题发生在多个应用程序服务器上(./manage.py runserverdaphne -p 8000 topknott.asgi:application

  • 这不是Django模型上的字段问题,因为它看起来很正常:photo = models.ImageField(blank=True)

有谁能发现我们遗漏了什么?


你的前面有nginx吗? - William R. Marchand
不,我没有 - 它在我的本地机器上运行。 (./manage.py runserver) - NattyP
在 Django 代码库中,我没有看到任何与“413”相关的命中。您是否正在使用第三方文件存储引擎?无论如何,请尝试调整 FILE_UPLOAD_MAX_MEMORY_SIZE 设置。 - Kevin Christopher Henry
3个回答

16

4
如果您的团队正在使用Django Channels,那么在2.1.7中引入了一段代码,导致意外出现了413错误(在这里讨论过)。然而,这个问题已经在2.3.0中得到了修复。

1
据我所知,runserver或daphne永远不会返回413。看起来你在Python服务器前面有NGINX。
您可以在nginx.conf中的服务器块中使用client_max_body_size更改限制。
    server {
        client_max_body_size 20M;
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass         http://127.0.0.1:8000/;
        }
    }

5
我在本地机器上运行Django服务器,这意味着Python服务器前面没有Web服务器(如NGINX)。 - NattyP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接