【问题标题】:Django + Channels + Daphne + Caddy + Admin File Upload = 413 ErrorDjango + Channels + Daphne + Caddy + 管理文件上传 = 413 错误
【发布时间】:2019-02-04 20:45:10
【问题描述】:

我有一个使用 Caddy 在生产中部署的 Django Web 应用程序。我使用 Caddy 作为指向 daphne 的反向代理,它指向我的 Django 应用程序。但是,当我尝试在生产环境中将 5MB 文件上传到 django 管理门户时,出现 413 错误。在调试模式下,当我只使用 Django(没有 caddy 或 daphne)时,我没有收到此错误。有人有想法么?这是我的 Caddyfile 和相关文件:

0.0.0.0:2015
on startup daphne peptidedb.asgi:application &

header / {
  -Server

    # be sure to plan & test before enabling
    # Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"

    Referrer-Policy "same-origin"
    X-XSS-Protection "1; mode=block"
    X-Content-Type-Options "nosniff"

    # customize for your app
    #Content-Security-Policy "connect-src 'self'; default-src 'none'; font-src 'self'; form-action 'self'; frame-ancestors 'none'; img-src data: 'self'; object-src 'self'; style-src 'self'; script-src 'self';"
    X-Frame-Options "DENY"
}

proxy / localhost:8000 {
    transparent
    websocket
    except /static
}

limits 750000000

log / stdout "{combined}"

errors stdout

asgi.py

import os

from channels.routing import get_default_application
import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "peptidedb.settings")
django.setup()
application = get_default_application()

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "peptidedb.settings")

application = get_wsgi_application()

【问题讨论】:

  • 我在生产环境中使用过 Django 通道,但使用的是 NGINX、supervisor、Daphne、asgi.py 和 redis。在这种情况下,对于大文件,它们没有任何问题。
  • 有趣。我不确定我的 413 错误是从哪里来的。某处设置了任意文件限制。由于上述原因,我已经排除了 Django 和 Caddy。

标签: django python-3.x django-channels caddy daphne


【解决方案1】:

看起来当 Django 应用部署了频道、Daphne 和 caddy 时,此设置在 settings.py 中生效

DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 # value in bytes

我必须在我的设置文件中添加此设置,然后我的较大文件上传工作。奇怪的是,当应用程序仅在调试模式下使用 Django 部署时,我不需要此设置。我想知道我的应用程序在 docker 容器内运行时是否无法(权限?大小?)将大文件写入/流式传输到磁盘,因为这是正常的 Django 行为(而不是写入内存)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    相关资源
    最近更新 更多